the `${infodir}/dir' file, by exporting the new environment variable
`AM_UPDATE_INFO_DIR' to the value "no".
- - For programs and libraries, automake now detects EXTRA_foo_DEPENDENCIES
- and adds them to the normal list of dependencies, but without
- overwriting the foo_DEPENDENCIES variable, which is normally computed
- by automake.
-
-Bugs fixed in 1.11.0a:
+Bugs fixed in 1.11.2:
+ * Bugs introduced by 1.11.2:
+
+ - Automake now correctly recognizes the prefix/primary combination
+ `pkglibexec_SCRIPTS' as valid.
+
* Bugs introduced by 1.11:
- - The `parallel-tests' test driver works around a GNU make 3.80 bug with
- trailing white space in the test list (`TESTS = foo $(EMPTY)'), and
- does not report spurious successes when used with concurrent FreeBSD
- make (e.g., "make check -j3").
+ - The parallel-tests driver no longer produces erroneous results with
+ Tru64/OSF 5.1 sh upon unreadable log files.
+
+ - The `parallel-tests' test driver does not report spurious successes
+ when used with concurrent FreeBSD make (e.g., "make check -j3").
- When the parallel-tests driver is in use, automake now explicitly
rejects invalid entries and conditional contents in TEST_EXTENSIONS,
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# Run the tests with the shell detected at configure time.
+LOG_COMPILER = $(SHELL)
+
+TEST_EXTENSIONS = .test .tap
+TEST_LOG_COMPILER = $(LOG_COMPILER)
+TAP_LOG_COMPILER = $(LOG_COMPILER)
+
+TAP_LOG_DRIVER = AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/lib/tap-driver.sh
+
+AM_TAP_LOG_DRIVER_FLAGS = --merge --comments
+## Avoid spurious TAP diagnostic. We use an awful indirection with a
+## shell command substitution here, since the string needs to contain
+## `#' characters, and these can't be escaped portably in a make macro
+## definition.
+## FIXME: this is quite inefficient though, as it adds one extra fork
+## FIXME: per TAP test script; this is OK for the moment, since we have
+## FIXME: few such scripts, but might become an issue in the future.
+## Keep this in sync with the definition of $diag_string_ in tests/defs.
+AM_TAP_LOG_DRIVER_FLAGS += --diagnostic-string `printf '\043%%\043\n'`
+
+EXTRA_DIST = ChangeLog-old
+
+TESTS = ## Will be updated later.
+
XFAIL_TESTS = \
all.test \
-auxdir2.test \
cond17.test \
-dist-auxfile.test \
-dist-auxfile-2.test \
gcj6.test \
+override-conditional-2.test \
java-nobase.test \
+ objext-pr10128.test \
pr8365-remake-timing.test \
lex-subobj-nodep.test \
remake-am-pr10111.test \
#! /bin/sh
- # Copyright (C) 2002, 2007, 2010, 2011 Free Software Foundation, Inc.
-# Copyright (C) 2002, 2007, 2010, 2012 Free Software Foundation, Inc.
++# Copyright (C) 2002, 2007, 2010, 2011, 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
$ACLOCAL
$AUTOCONF
-$AUTOMAKE --copy --add-missing
+$AUTOMAKE -Wno-extra-portability --copy --add-missing
- ./configure --prefix "`pwd`/inst"
+ # We pass '--libdir' explicitly, to avoid spurious failures due to users
+ # or distributions possibly overriding '${libdir}' in their $CONFIG_SITE
+ # file (for example, defining it to '${prefix}/lib64' on 64-bit systems,
+ # as is the case with openSUSE 12.1). See automake bug#10426.
+ cwd=`pwd` || Exit 99
+ ./configure --prefix "$cwd/inst" --libdir "$cwd/inst/lib"
$MAKE
#! /bin/sh
- # Copyright (C) 2002, 2007, 2008, 2009, 2010, 2011 Free Software
-# Copyright (C) 2002, 2007, 2008, 2009, 2010, 2012 Free Software
++# Copyright (C) 2002, 2007, 2008, 2009, 2010, 2011, 2012 Free Software
# Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
libtoolize
$ACLOCAL
$AUTOCONF
-$AUTOMAKE --copy --add-missing
+$AUTOMAKE -Wno-extra-portability --copy --add-missing
- ./configure --prefix "`pwd`/inst"
+ # We pass '--libdir' explicitly, to avoid spurious failures due to users
+ # or distributions possibly overriding '${libdir}' in their $CONFIG_SITE
+ # file (for example, defining it to '${prefix}/lib64' on 64-bit systems,
+ # as is the case with openSUSE 12.1). See automake bug#10426.
+ cwd=`pwd` || Exit 99
+ ./configure --prefix "$cwd/inst" --libdir "$cwd/inst/lib"
-$MAKE V=1 >stdout || { cat stdout; Exit 1; }
+# A rule in the Makefile should create subdir.
+test ! -d subdir
+$MAKE >stdout || { cat stdout; Exit 1; }
cat stdout
+test -d subdir
grep 'liba.la .*-rpath .*lib' stdout
grep 'liba.la .*-rpath .*lib/subdir' stdout && Exit 1
--- /dev/null
- prefixes_ok='bin sbin libexec pkgdata'
+#! /bin/sh
+# Copyright (C) 2011 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/>.
+
+# Not all primaries/directories combinations are valid.
+# Automake should flag them as errors.
+# Originated from PR/294, extended later (following bug #7647) to
+# cover more cases.
+# See also test `primary-prefix-valid-couples.test'.
+
+. ./defs || Exit 1
+
+plan_ "later"
+
+oIFS=$IFS # Saved for later.
+
+: > ar-lib
+: > ltmain.sh
+: > texinfo.tex
+: > elisp-comp
+: > py-compile
+: > config.guess
+: > config.sub
+
+cat >> configure.in <<'END'
+AC_PROG_CC
+AM_PROG_AR
+AC_PROG_RANLIB
+AC_SUBST([LIBTOOL], [:]) dnl So that we don't have to require Libtool.
+AM_PROG_GCJ
+AM_PATH_PYTHON
+AM_PATH_LISPDIR
+END
+
+$ACLOCAL || fatal_ "aclocal failure"
+
+# Please keep this list in sync with the list of "Directory Variables"
+# in the GNU Coding Standards and with the list additional directory
+# variables provided by autoconf and/or automake (pkgdatadir, pkglibdir,
+# ...). See also the hash `%standard_prefix' in the automake script.
+prefixes='bin data dataroot doc dvi exec html include info lib libexec
+ lisp locale localstate man man1 man2 man3 man4 man5 man6 man7
+ man8 man9 oldinclude pdf pkgdata pkginclude pkglib pkglibexec
+ ps sbin sharedstate sysconf'
+# Please keep this list in sync with the list of primaries documented in
+# the Automake manual (see the "The Uniform Naming Scheme" section).
+primaries='PROGRAMS LIBRARIES LTLIBRARIES LISP PYTHON JAVA SCRIPTS DATA
+ HEADERS MANS TEXINFOS'
+
+# Use files, not variables, to hold the list of all the possible
+# prefix_PRIMARY couples and the list of those couples valid for
+# automake, to avoid having unreadable very verbose traces.
+
+set +x # Don't be overly verbose.
+
+for prefix in $prefixes; do
+ for primary in $primaries; do
+ echo ${prefix} ${primary}
+ done
+done >all.list
+
+for primary in $primaries; do
+ prefixes_ok=''
+ case $primary in
+ LIBRARIES|LTLIBRARIES)
+ prefixes_ok='lib pkglib'
+ ;;
+ PROGRAMS)
+ prefixes_ok='bin sbin libexec pkglibexec'
+ ;;
+ SCRIPTS)
++ prefixes_ok='bin sbin libexec pkglibexec pkgdata'
+ ;;
+ DATA)
+ prefixes_ok='data dataroot pkgdata doc html dvi pdf ps
+ sysconf sharedstate localstate lisp'
+ ;;
+ HEADERS)
+ prefixes_ok='include oldinclude pkginclude'
+ ;;
+ LISP)
+ prefixes_ok='lisp'
+ ;;
+ PYTHON)
+ prefixes_ok='python'
+ ;;
+ JAVA)
+ prefixes_ok='java'
+ ;;
+ MANS)
+ # FIXME: Here we'd like to have:
+ # prefixes_ok='man man1 man2 man3 man4 man5 man6 man7 man8 man9'
+ # but Automake currently fails on that, as it allows the MANS
+ # primary to be coupled to any prefix.
+ # See also Automake bug#7656.
+ # We should dig out how automake had come to behave this way, and
+ # if such a behaviour can be safely changed.
+ prefixes_ok=$prefixes
+ ;;
+ TEXINFOS)
+ # FIXME: Here we'd like to have:
+ # prefixes_ok='info'
+ # but Automake currently fails on that, as it allows the use of
+ # `foo_TEXINFOS' to declare extra Texinfo sources for the `foo'
+ # Texinfo manual, as in e.g.:
+ # info_TEXINFOS = foo.texi
+ # foo_TEXINFOS = gpl.texi
+ # See also Automake bug#7657.
+ prefixes_ok=$prefixes
+ ;;
+ *)
+ fatal_ "unrecognized primary '$primary'"
+ ;;
+ esac
+ for prefix in $prefixes_ok; do
+ echo ${prefix}_${primary}
+ done
+done >allow.list
+
+# `html_TEXINFOS' is not yet supported, and might never be.
+grep -v '^html TEXINFOS$' all.list | awk '{print NR, $0}' > t
+mv -f t all.list
+
+# For debugging.
+echo '=== all.list ==='
+cat all.list
+echo '=== allow.list ==='
+cat allow.list
+
+# Create the Makefile.am.
+while read lineno prefix primary; do
+ test -n "$prefix" && test -n "$primary" && test 0 -lt $lineno \
+ || fatal_ "internal error in 'all.list'"
+ pfx='' ext=''
+ case $primary in
+ LTLIBRARIES) pfx=lib ext=la;;
+ LIBRARIES) pfx=lib ext=a;;
+ MANS) ext=man;;
+ HEADERS) ext=h;;
+ JAVA) ext=java;;
+ PYTHON) ext=py;;
+ LISP) ext=el;;
+ TEXINFOS) ext=texi;;
+ esac
+ test -z "$ext" || ext=.$ext
+ if test $primary = TEXINFOS; then
+ echo @setfilename foo$lineno.info > foo$lineno.texi
+ fi
+ echo ${prefix}_${primary} = ${pfx}foo${lineno}${ext}
+done <all.list >Makefile.am
+
+# For debugging.
+echo '=== Makefile.am ==='
+cat Makefile.am
+
+set -x # Restore shell xtraces from now on.
+
+AUTOMAKE_fails \
+ -d "'automake -a' error out on mismatched prefix/primary couples" \
+ -- --add-missing
+
+while read lineno prefix primary; do
+ test -n "$prefix" && test -n "$primary" && test 0 -lt $lineno \
+ || fatal_ "internal error in 'all.list'"
+ grep "^${prefix}_${primary}$" allow.list >/dev/null && continue
+ errmsg_rx=".*${prefix}dir.* not a legitimate directory .*$primary"
+ command_ok_ \
+ "mismatched prefix/primary in ${prefix}_${primary}" \
+ grep "^Makefile\\.am:$lineno: $errmsg_rx" stderr
+done <all.list
+
+# Check that automake really failed only for the expected reason(s).
+grep -v 'dir.* not a legitimate directory' stderr && Exit 1
+
+# Check that the same failures are present without the `--add-missing'
+# option.
+mv stderr stderr.old
+AUTOMAKE_fails -d "automake error out on mismatched prefix/primary couples"
+command_ok_ "... and with the same diagnostic of 'automake -a'" \
+ diff stderr.old stderr
+
+: