* Changes other than bug fixes must be mentioned in NEWS. Important
bug fixes should be mentioned in NEWS, too.
- ================================================================
+ ============================================================================
= Naming
-* We've adopted the convention that internal AC_SUBSTs should be
- named with a leading 'am__', and internally generated targets
- should be named with a leading 'am--'. This convention, although
- in place from at least February 2001, isn't yet universally used.
- But all new code should use it.
+* Internal make variables and functions should be named following patterns
+ like 'am.tty-colors' or 'am.dist.files'.
- We used to use '_am_' as the prefix for an internal AC_SUBST.
- However, it turns out that NEWS-OS 4.2R complains if a Makefile
- variable begins with the underscore character. Yay for them.
- I changed the target naming convention just to be safe.
+* Internal AC_SUBSTs should be named with a leading 'am__'.
+
+* Private make targets should be named with a leading 'am--'.
+
+* WARNING! This convention, introduced recently (since July 2012),
+ isn't yet universally used. But all new code should use it,
+ except in those situation where that would cause spurious
+ conflicts with mainline Automake.
- ================================================================
+ ============================================================================
= Editing '.am' files
* Always use $(...) and not ${...}
# Complete %transform with global options.
# Note that %transform goes last, so it overrides global options.
- %transform = ( 'MAINTAINER-MODE'
- => $seen_maint_mode ? subst ('MAINTAINER_MODE_TRUE') : '',
-
- 'XZ' => !! option 'dist-xz',
- 'LZIP' => !! option 'dist-lzip',
- 'BZIP2' => !! option 'dist-bzip2',
- 'COMPRESS' => !! option 'dist-tarZ',
- 'GZIP' => ! option 'no-dist-gzip',
- 'SHAR' => !! option 'dist-shar',
- 'ZIP' => !! option 'dist-zip',
-
- 'INSTALL-INFO' => ! option 'no-installinfo',
- 'INSTALL-MAN' => ! option 'no-installman',
- 'CK-NEWS' => !! option 'check-news',
-
+ %transform = ( 'INSTALL-MAN' => ! option 'no-installman',
- 'HAVE-MANS' => !! var ('MANS'),
-
'SUBDIRS' => !! var ('SUBDIRS'),
'TOPDIR_P' => $relative_dir eq '.',
# Test to make sure AC_CONFIG_AUX_DIR works correctly.
# This test tries without an explicit call to AC_CONFIG_AUX_DIR;
# the config auxdir should be implicitly defined to '.' since
-# the install-sh, mkinstalldirs, etc., scripts are in the top-level
+# the install-sh, py-compile, etc., scripts are in the top-level
# directory.
- # Keep this in sync with sister tests auxdir6.test and auxdir7.test.
+ # Keep this in sync with sister tests 'auxdir6.sh' and 'auxdir7.sh'.
. ./defs || exit 1
# Check that wildcards in EXTRA_DIST are honoured.
# Suggested by observations from Braden McDaniel.
- # See also sister test 'extra11.test', that check a similar usage
+ # See also sister test 'extra11.sh', that checks a similar usage
# with the involvement of the $(wildcard) GNU make builtin.
-required=GNUmake
. ./defs || exit 1
echo AC_OUTPUT >> configure.ac
# Test that AC_FC_SRCEXT(f9x) works as intended:
# - $(FCFLAGS_f) will be used
- # Cf. fort1.test and link_f90_only.test.
+ # Cf. 'fort1.sh' and 'link_f90_only.sh'.
+required=gfortran # Required only in order to run ./configure.
. ./defs || exit 1
mkdir sub
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Check that automake lex support ensures that lex-generated C
-# files use correct "#line" directives. Try also with the
+# files use correct "#line" directives.
# 'subdir-object' option enabled.
- # See also sister test 'yacc-line.test'.
+ # See also sister test 'yacc-line.sh'.
required='cc lex'
. ./defs || exit 1
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Checks for .c files derived from non-distributed .l sources.
- # The test 'yacc-nodist.test' does similar checks for yacc-generated
-# The test 'lex-pr204.sh' does similar check with AM_MAINTAINER_MODE
-# enabled.
-# The tests 'yacc-nodist.sh' and 'yacc-pr204.sh' does similar checks
-# for yacc-generated .c and .h files.
++# The test 'yacc-nodist.sh' does similar checks for yacc-generated
+# .c and .h files.
required='cc lex'
. ./defs || exit 1
# Check parallel-tests features:
# - empty TESTS
- # See parallel-tests10.test for a similar issue.
-# BSD make will expand '$(TESTS:=.log)' to '.log' unless overridden.
+ # See 'parallel-tests10.sh' for a similar issue.
. ./defs || exit 1
-cat >> configure.ac << 'END'
-AC_OUTPUT
-END
-cat > Makefile.am << 'END'
-TESTS =
-END
+echo AC_OUTPUT >> configure.ac
+
+echo TESTS = > Makefile.am
$ACLOCAL
$AUTOCONF
# Check that remake rules works from subdirectories, even using
# 'GNUmakefile' as makefiles name. This obviously requires GNU
# make.
- # See also the other similar tests 'remake-subdir*.test', and the
- # related test 'aclocal5.test'
+ # See also the other similar tests 'remake-subdir*.sh', and the
+ # related test 'aclocal5.sh'
-required=GNUmake
. ./defs || exit 1
magic1='::MagicString::One::'
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Check silent-rules mode for C++.
# This test should work with generic C++ compilers; keep it in sync with
- # sister test 'silentcxx-gcc.test', which requires the GNU C++ compiler
+ # sister test 'silentcxx-gcc.sh', which requires the GNU C++ compiler
# and forces the use of gcc depmode.
required=c++
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Test that automake works around a bug of Solaris Make. The bug is the
-# following. If we have a Makefile containg a file inclusion like this:
+# If we have a Makefile containing a file inclusion like this:
+#
# include .//foo.mk
-# Solaris make fails with a message like:
+#
+# Solaris 10 make fails with a message like:
+#
# make: ... can't find '/foo.mk': No such file or directory
# make: fatal error ... read of include file '/foo.mk' failed
-# (even if the file 'foo.mk' exists). The error disappear by collapsing
-# the repeated slash '/' characters into a single one.
#
-# See also sister "grepping" test 'subobj11b.sh', and related test
-# 'subobj11c.sh'.
+# (even if the file 'foo.mk' exists). Our dependency tracking support
+# code used to generate include directives like that sometimes, thus
+# causing spurious failures.
+#
+# GNU make shouldn't suffer from that Solaris make bug, but we check
+# the problematic setup anyway -- better safe than sorry.
- #
required=cc
. ./defs || exit 1
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Make sure proper suffix rules for C compilation are produced, and
+# Make sure proper pattern rules for C compilation are produced, and
# only once.
- # See also related test 'suffix2.test'.
+ # See also related test 'suffix2.sh'.
. ./defs || exit 1
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Make sure proper suffix rules for C compilation are produced,
+# Make sure proper pattern rules for C compilation are produced,
# and only once, even for libtool libraries.
- # See also related test 'suffix.test'.
+ # See also related test 'suffix.sh'.
-required=libtoolize
. ./defs || exit 1
# Custom test drivers: try the "recheck" functionality with test protocols
# that allow multiple testcases in a single test script. In particular,
-# check that this still works when we override $(TESTS) and $(TEST_LOGS)
-# at make runtime.
-# See also related tests 'test-driver-custom-multitest-recheck.sh' and
-# 'parallel-tests-recheck-override.sh'.
+# check that this still works when we override $(TESTS) at make runtime.
- # See also related tests 'test-driver-custom-multitest-recheck.test'.
++# See also related tests 'test-driver-custom-multitest-recheck.sh'.
. ./defs || exit 1
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
--# Check that automake yacc support ensures that yacc-generated C
- # files use correct "#line" directives.
- # See also sister test 'lex-line.test'.
-# files use correct "#line" directives. Try also with the
-# 'subdir-object' option enabled.
++# Check that automake yacc support ensures that yacc-generated
++# C files use correct "#line" directives.
+ # See also sister test 'lex-line.sh'.
required='cc yacc'
. ./defs || exit 1
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Checks for .c and .h files derived from non-distributed yacc sources.
- # The test 'lex-nodist.test' does similar checks for lex-generated .c
- # files.
-# The test 'yacc-pr204.sh' does similar check with AM_MAINTAINER_MODE
-# enabled.
-# The tests 'lex-nodist.sh' and 'lex-pr204.sh' does similar checks
-# for lex-generated .c files.
++# The test 'lex-sh.test' does similar checks for lex-generated '.c'
required='cc yacc'
. ./defs || exit 1