Hash :
27136dfe
Author :
Date :
2012-03-31T16:39:32
init: warn against obsolete usage of AM_INIT_AUTOMAKE Support for the two- and three-arguments invocation forms of the AM_INIT_AUTOMAKE macro, as in: AM_INIT_AUTOMAKE($PACKAGE, $VERSION) or: AM_INIT_AUTOMAKE($PACKAGE, $VERSION, NODEFINE) will be removed in the next major Automake release (1.13). Such usages have already been deprecated in the documentation starting from commit v1.11-2015-ge99690a of 23-02-2012 "docs, news: document planned removal of obsolete macros and features". We now start giving runtime warnings as well (in the 'obsolete' category). * NEWS: Update. * m4/init.m4 (AM_INIT_AUTOMAKE): Report the two- and three-arguments form invocation. * automake.in (scan_autoconf_traces): Likewise. * doc/automake.texi: Minor adjustments. Add an @anchor to the location where it's described how to modernize outdated invocation of AM_INIT_AUTOMAKE, so that it can be referenced from automake warning/error messages. * t/aminit-moreargs-deprecation.sh: New test. * tests/list-of-tests.mk: Add it. * tests/ac-output-old.tap: Adjust by calling automake with the warnings in the 'obsolete' category disabled. * t/backcompat.test: Likewise. * t/backcompat3.test: Likewise. * t/backcompat5.test: Likewise. * t/backcompat6.test: Likewise. * t/version.test: Likewise. * t/version2.test: Likewise. * t/pr2.test: Modernize style of AC_INIT and AM_INIT_AUTOMAKE invocations, and use proper m4 quoting. * t/pr87.test: Likewise. * t/confsub.test: Likewise. * t/install2.test: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
#! /bin/sh
# Copyright (C) 2010-2012 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Backward-compatibility test: try to build and distribute a package
# using obsoleted forms of AC_INIT, AM_INIT_AUTOMAKE and AC_OUTPUT.
# This script can also serve as mild stress-testing for Automake.
# See also the similar test 'backcompat5.test'.
required=cc
am_create_testdir=empty
. ./defs || Exit 1
# Anyone doing something like this in a real-life package probably
# deserves to be killed.
cat > configure.in <<'END'
dnl: Everything here is *deliberately* underquoted!
AC_INIT(quux.c)
PACKAGE=nonesuch-zardoz
VERSION=nonesuch-0.1
AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
AC_SUBST(one,1)
two=2
AC_SUBST(two, $two)
three=3
AC_SUBST(three)
AC_PROG_CC
AC_CONFIG_HEADERS(config.h:config.hin)
AM_CONDITIONAL(CROSS_COMPILING, test "$cross_compiling" = yes)
AC_OUTPUT(Makefile foo.got:foo1.in:foo2.in:foo3.in)
END
echo @one@ > foo1.in
echo @two@ > foo2.in
echo @three@ > foo3.in
cat >config.hin <<'END'
#undef PACKAGE
#undef VERSION
END
cat >> Makefile.am <<'END'
bin_PROGRAMS = foo
foo_SOURCES = quux.c
check-local:
test x'$(PACKAGE)' = x'nonesuch-zardoz'
test x'$(VERSION)' = x'nonesuch-0.1'
if ! CROSS_COMPILING
./foo
## Do not anchor the regexps w.r.t. the end of line, because on
## MinGW/MSYS, grep may assume LF line endings only, while our
## 'foo' program may generate CRLF line endings.
./foo | grep '^PACKAGE = nonesuch-zardoz!'
./foo | echo '^VERSION = nonesuch-0\.1!'
endif
END
cat > quux.c <<'END'
#include <config.h>
#include <stdio.h>
int main (void)
{
printf("PACKAGE = %s!\nVERSION = %s!\n", PACKAGE, VERSION);
return 0;
}
END
$ACLOCAL
$AUTOMAKE -Wno-obsolete --add-missing
$AUTOCONF
./configure
cat >foo.exp <<'END'
1
2
3
END
diff foo.exp foo.got
$MAKE
$MAKE check
distdir=nonesuch-zardoz-nonesuch-0.1
$MAKE distdir
test -f $distdir/quux.c
test ! -f $distdir/foo.got
$MAKE distcheck
: