java: allow both JAVA and nobase_JAVA in the same Makefile.am
* automake.in (handle_java): Also strip `nobase_' from the given
prefix, when needed.
* tests/java-clean.test: Update and extend.
* tests/java-compile-install.test: Likewise.
* tests/java-no-duplicate.test: Likewise.
* tests/java-sources.test: Likewise.
* tests/java-noinst.test: Likewise.
* tests/java-mix-dist-nodist.test: Renamed to ...
* tests/java-mix.test: ... this, and extended.
* tests/java-nobase.test: New test, still xfailing due to
unrelated issues.
* tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
* tests/defs.in: Sanity check: abort if any of `parallel_tests'
or `required' is in the environment.
($sed_unindent_prog): Initialize to empty, to avoid interferences
from the environment.
* tests/self-check-me-in-env.test: Renamed to ...
* tests/self-check-env-sanitize.test: ... this, and extended.
* tests/Makefile.am (TESTS): Update.
(TESTS_ENVIRONMENT): Unset variables `parallel_tests' and
`required'. Adjust comments.
tests: don't allow `$me' to be overridden from the environment
* tests/defs.in: Sanity check: abort if $me is in the environment.
* tests/self-check-me-in-env.test: New test.
* tests/Makefile.am (TESTS_ENVIRONMENT): Unset variable `me'.
(TESTS): Update.
java: allow both dist_JAVA and nodist_JAVA in the same Makefile.am
Fixes automake bug#8434.
* automake.in (handle_java): Strip `dist_' and `nodist_' from
the given prefix. Define a new internal Makefile variable
`am__java_sources'. Related adjustments.
* lib/am/java.am (JAVAC, JAVAROOT, CLASSPATH_ENV): Define only the
first time this am file is processed.
(class%DIR%.stamp): Stamp file renamed ...
(class%NDIR%.stamp): ... to this, so that the `dist_' and `nodist_'
prefixes are stripped from the name of the stampfile. Adjust
declaration of dependencies by using the new automake-generated
internal variable `$(am__java_sources)'. In the rule, use `$@'
as the name of the target, rather than hard-coding it.
* tests/java.test: Update and extend.
* tests/java-no-duplicate.test: New test.
* tests/java-mix-dist-nodist.test: Likewise.
* tests/java-compile-and-install.test: Likewise.
* tests/java-clean.test: Likewise.
* tests/java-sources.test: Likewise.
* tests/Makefile.am (TESTS): Update.
* tests/depcomp8b.test: Add the `--enable-dependency-tracking'
option to the ./configure invocation, so that slower dependency
extractors are not rejects.
* tests/depcomp8b.test: Likewise. Also ...
(foo.c): ... since we are at it, fix spacing to be consistent
with GNU coding standards.
maintainer check: quote literal `$' in Makefile rule
* Makefile.am (sc_tests_PATH_SEPARATOR): Escape literal `$'
character in double-quoted string. Fix a bug in which the rule
emitted an erroneously empty substring in its error message.
test defs: define default $distdir (help reducing duplication)
* tests/defs.in ($distdir): New variable, might be used in
testcases checking distribution-related features.
* tests/pr9.test: Use it.
* tests/subdir9.test: Likewise.
* tests/vtexi3.test: Add comment explaining why we redefine
$distdir in this test.
depcomp: fix bugs in tests and in the depcomp script
* lib/depcomp (gcc): Remove duplicated `-e' from sed invocation.
* tests/depcomp10.test: Make it executable. Fix a blunder that
has left part of an intended comment not prefixed by `#', thus
causing shell syntax errors. In this same comment, break a
too-long reported error message on multiple lines, for clarity.
Add reference to the relevant bug report. Add a comment which
explains why the test result 'skipped' if the first "make" call
fails. Add other useful comments.
* tests/depcomp9.test: Slightly improve comments.
* lib/depcomp: Be sure to remove VPATH-prefixed object from
dependency output when creating stub rule.
* tests/depcomp10.test: New test.
* tests/Makefile.am (TESTS): Update.
* NEWS: Update.
Report by Bruno Haible.
test defs: fix 'javac' requirement for older JDK versions
The Java compiler from JDK 1.5 (and presumably earlier versions)
cannot handle the `-version' option by itself; and while it does
print the version number, it then errors out with an usage error:
$ javac -version
javac 1.5.0_22
javac: no source files
Usage: javac <options> <source files>
...
Luckily, adding the `-help' option to the `javac' invocation
seems to fix this problem.
* tests/defs.in (javac): Pass also the `-help' option to the
`javac' program. Add a comment explaining why it is needed.
java: check_JAVA does not cause compilation by "make all" anymore
Fixes automake bug#8234.
* automake.in (handle_java): Make stamp of class files built from
java sources in $(check_JAVA) a dependency of `check' target, not
`all' target.
* tests/java-check.test: New test.
* tests/Makefile.am (TESTS): Update.
* NEWS: Update.
* THANKS: Update.
coverage: more on java support: EXTRA_ and noinst_ prefixes
* tests/java-extra.test: New test, checking support for the
prefix `EXTRA_' with the JAVA primary.
* tests/java-noinst.test: New test, checking support for the
prefix `noinst_' with the JAVA primary.
* tests/Makefile.am (TESTS): Update.
* lib/depcomp [makedepend]: Remove any VPATH prefix from the
object file name, so a rebuild doesn't attempt to update the
.Po files in the source tree.
* tests/depcomp9.test: New test.
* tests/Makefile.am (TESTS): Update.
* NEWS: Update.
Create subdirs for generated sources even when not dep tracking.
* automake.in (handle_single_transform): If $object is derived
and lands in subdir, be sure to output a dirstamp dependency.
* tests/yacc5.test: Avoid falsely matching the dirstamp
dependency when grepping for a rule.
* tests/lex-subobj-nodep.test: New test.
* tests/Makefile.am (TESTS): Update.
* THANKS: Update.
Report by Ignacy Gawedzki.
* doc/automake.texi (@menu): Rename title for entry 'configure'
from "Scanning configure.ac or configure.in" to the more precise
"Scanning configure.ac, using aclocal".
(@detailmenu): Adjust.
(@node configure): Adjust, and extend @cindex calls accordingly.
* THANKS: Update.
* tests/aclocal6.test: Move checks related to "maintainer-clean"
functionalities into ...
* tests/maintclean-vpath.test: ... this new test.
* tests/maintclean.test: Update heading comments. Extend to also
test subdirs. Remove useless disabling of YACC. Fix m4 quoting
in configure.in. Add a trailing `:' command.
* tests/Makefile.am (TESTS): Update.
maintcheck: look for problematic names of testcases
The configure.in stub created by default by `tests/defs' obtains
the first argument of AC_INIT from the test name, and this can
cause some supported autoconf versions to fail with a spurious
error if that test name contains the name of an m4 or m4sugar
builtin or macro (e.g., `defn' or `m4_undefine').
This change add a maintainer check that warns about test names
which are possibly problematic in this regard.
* Makefile.am (sc_test_names): New maintainer-check target.
(syntax_check_rules): Add it.
(m4_builtins): New helper variable.
(TESTS): Updated according to the following renamings.
* tests/include.test: Renamed ...
* tests/hdr-vars-defined-once.test: ... to this.
* tests/sinclude.test: Renamed ...
* tests/m4-inclusion.test: ... to this, and simplified
accordingly.
* tests/include2.test: Renamed ...
* tests/dist-included-parent-dir.test: ... to this, for
consistency.
* tests/alloca.test: Make grepping of automake stderr stricter,
add a trailing `:' command; also, add AC_PROG_CC to configure.in,
and create a dummy alloca.c file, to ensure that we fail for the
proper reason.
* tests/alloca2.test: Likewise. Also, look for LT_INIT, not
AC_PROG_LIBTOOL, in the error message (bug introduced with commit v1.11-315-gd51e7b7 "libtool: suggest LT_INIT if LTLIBRARIES
primary is used").
* tests/comments-in-var-defn.test: The configure.in stub created
by default, which has the AC_INIT first argument obtained by the
test name, causes autoconf 2.62 to fail with a spurious error
message like: "configure.in:1: error: defn: undefined macro:".
Thus, to prevent this, the test is renamed to ...
* tests/comments-in-var-def.test: ... this.
* tests/Makefile.am (TESTS): Updated.
Peter Rosin [Tue, 1 Mar 2011 07:25:24 +0000 (08:25 +0100)]
test defs: unindent without temporary file
* tests/defs.in (commented_sed_unindent_prog): Commented Sed program
that strips the "proper" amount of leading whitespace.
(unindent): Lazily strip comments from the above program and use it
to unindent without using a temporary file.
libtool: suggest LT_INIT if LTLIBRARIES primary is used
When the LTLIBRARIES primary was used, but $(LIBTOOL) wasn't
defined, automake suggested to add a call to AC_PROG_LIBTOOL
in configure.ac. But that macro is deprecated since Libtool
version 1.9b (2004-08-29), in favor of the newer LT_INIT. So
suggest the use of this latter macro instead.
* lib/Automake/Variable.pm (%_am_macro_for_var): Pair 'LIBTOOL'
with 'LT_INIT', not with 'AC_PROG_LIBTOOL'.
* libtool4.test: Adjust and extend. Also, add a call to macro
AC_PROG_CC in configure.in, to help ensuring that automake does
not fail for the wrong reasons.
* ltinit.test: New test, ensure that automake's libtool support
works with LT_INIT-based interface.
tests: tempdirs with restrictive permissions are cleaned correctly
Before this change, the removal of a temporary test directory
containing subdirectories with restrictive permissions (such as
'r--r--r--') could fail.
* tests/defs: Ensure that all the subdirectories of a temporary
test directory have the 'read', 'write' and 'execute' bits set,
before trying to remove it with `rm -rf'.
* tests/Makefile.am (clean-local-check): Likewise.
tests: tweak few tests on simple and parallel test drivers
* tests/check-exported-srcdir.test: Improve heading comments.
* tests/check-tests-in-builddir.test: Likewise. Also, unset the
`FOO_EXIT_STATUS' variable, so that any pre-existing value in the
environment won't risk to interfere with the test.
* doc/automake.texi (Simple Tests): Document that automatic
recognition of a capable terminal attached to stdout can fail
with some make implementation when running in parallel mode,
thus causing colored test output not to be automatically
activated when it should.
Ralf Wildenhues [Sun, 23 Jan 2011 10:26:50 +0000 (11:26 +0100)]
tests: avoid instspc.test failures due to make's whitespace trimming
* tests/instspc.test: Prepend './' when passing the test
characters, to avoid leading whitespace characters to be trimmed
from macros set from environment variables. Fixes testsuite
failures with HP-UX, IRIX, and Tru64/OSF make.
coverage: test semantics of "dummy" per-target flags
* tests/specflg-dummy.test: New test, ensuring that even "dummy"
per-target flags triggers the use of renamed objects.
* tests/Makefile.am (TESTS): Update.
* tests/defs.in ($IFS): Define to <space>, <tab>, <newline>.
($sp): New variable, holding a single whitespace character.
($tab): New variable, holding a tabulation character.
($nl): New variable, holding a newline character.
Ralf Wildenhues [Sat, 22 Jan 2011 17:20:41 +0000 (18:20 +0100)]
tests: fix VPATH auto-expansion workarounds.
* tests/parallel-tests8.test, tests/suffix13.test:
Ensure $< is not surrounded by white space, to prevent Solaris
make from applying automatic VPATH text expansion.
Ralf Wildenhues [Sat, 22 Jan 2011 12:46:27 +0000 (13:46 +0100)]
tests: avoid fn99*.test failures due to buggy AIX 5.3 cp -R.
* tests/fn99.test, tests/fn99subdir.test: Skip if an initial
`cp -R' of the subdir tree already fails; AIX 5.3 cp messes
up its internal memory when copying this tree.
Ralf Wildenhues [Wed, 19 Jan 2011 20:50:02 +0000 (21:50 +0100)]
install-sh: avoid Tru64 sh `test' operator precedence issues.
* lib/install-sh: Protect file names and directory components
that consist of `=', `(', `)', or `!'. Move protection as early
as possible, to avoid errors such as with Tru64 sh `test -z ='.
* tests/instsh2.test: Extend test to cover more possibilities.
Fixes 1.12 instspc-equal-install.test failure on Tru64/OSF 5.1.
Ralf Wildenhues [Wed, 19 Jan 2011 18:46:27 +0000 (19:46 +0100)]
Allow _AM_DEPENDENCIES to be used later in configure.
* m4/depend.m4 (_AM_DEPENDENCIES): Remove a previously existing
conftest.dir before recreating it.
Fixes bug#7864.
Report by Eric Blake, from report by Scott McCreary against M4.
Ralf Wildenhues [Sun, 16 Jan 2011 21:27:37 +0000 (22:27 +0100)]
tests: allow double-colon spy.test to work with HP-UX make.
* tests/spy.test: Fix comment typos. Ensure prerequisites we
do not want to depend on are strictly older than the target.
Also test with a target out of date wrt. more than one rule.
Ralf Wildenhues [Sun, 16 Jan 2011 12:48:17 +0000 (13:48 +0100)]
parallel-tests: work around Tru64/OSF 5.1 sh read bugs.
* lib/am/check.am ($(TEST_SUITE_LOG), recheck, recheck-html):
Test file readability before redirecting input from it, to avoid
exiting Tru64/OSF 5.1 sh which treats read as special builtin.
* tests/parallel-tests-unreadable-log.test: New test.
* tests/Makefile.am (TESTS): Update.
* NEWS: Update.
Ralf Wildenhues [Sat, 15 Jan 2011 13:54:51 +0000 (14:54 +0100)]
docs: ensure example are separated with empty lines in the input
* doc/automake.texi (Extending aclocal, Emacs Lisp, Rebuilding)
(API Versioning, Renamed Objects, Multiple Outputs): Add empty
lines before `@example' and after `@end example' lines, so info
output is rendered correctly, and a following @noindent honored.
Report by Stefano Lattarini.
* tests/txinfo.test ($required): Add 'makeinfo'.
* tests/txinfo8.test: Create a dummy 'textutils.info' file, so
that make won't try to run makeinfo (which could be unavailable)
to build it.
Found by NixOS Hydra, reported by Ralf Wildenhues.
Ralf Wildenhues [Thu, 13 Jan 2011 19:21:39 +0000 (20:21 +0100)]
Avoid testsuite failures due to Autoconf Fortran change.
Autoconf v2.68-21-g727ce95 causes AC_F77_LIBRARY_LDFLAGS to
require computing the canonical host name. Ensure config.guess
and config.sub files are present for respective checks.
* tests/compile_f_c_cxx.test: Add stub files.
* tests/flibs.test: Likewise.
* tests/fort4.test: Use $AUTOMAKE -a for installing files.
* doc/automake.texi (Yacc and Lex): Document that automake
recognizes '-d' in AM_YFLAGS only if it's not clustered with
other options.
From a report by Юрий Пухальский.
tests: work around a texi+cygnus bug causing a spurious XFAIL
* tests/txinfo5b.test: New test, like txinfo5.test but calling
automake with the `-Wno-override' option to work around a bug
in the texinfo + cygnus interaction.
* tests/txinfo5.test: Update heading comments.
* tests/Makefile.am (TEST): Updated.
Merge branch 'maint' of ssh://git.sv.gnu.org/srv/git/automake into maint
Apparently I messed up doing a previous 'git pull', so that the "latest"
maint I've merged into master (and pushed!) wasn't a fast-forward from
origin/maint. Yay for me. This merge should help cleaning up the mess.
Improve, extend and tweak tests on Texinfo support.
* tests/instdir-texi.test: Add a call to `ls -l' after that to
`make', for debugging. When looking for required tools, do not
redirect the output of "$tool --help" to /dev/null, and do not
uselessly run it in a subshell.
* tests/txinfo.test: Rewritten to run autoconf, ./configure and
make. All checks moved into Makefile.am.
* tests/txinfo8.test: Likewise, and modernize the generated
configure.in.
* tests/txinfo2.test: Moved checks into Makefile.am, and other
minor improvements.
* tests/txinfo5.test: Enable `errexit' shell flag, and related
changes. Add trailing `:' command.
* tests/txinfo6.test: Likewise, and make grepping of generated
Makefile.in stricter.
* tests/txinfo7.test: Enable `errexit' shell flag, and related
changes. Add trailing `:' command. Do not add unnecessary stuff
to Makefile.am.
* tests/txinfo9.test: Verify that more targets which are expected
to be generated only once really are. Make grepping less strict,
to avoid exposing too much internal details. More minor changes.
* tests/txinfo16.test: Add trailing `:'. Prefer cat over echo
for appending to configure.in. Updated/fixed heading comments.
* tests/txinfo23.test: Likewise, and extended a little by making
it check that no info file is created in the $(srcdir).
* tests/txinfo24.test: Likewise.
* tests/txinfo25.test: Likewise.
* tests/txinfo18.test: Add trailing `:'. Prefer cat over echo
for appending to configure.in. Also, check that index files are
cleaned also by "make clean", not only by "make distclean".
* tests/txinfo22.test: Prefer `$me' over hard-coded test name,
and added trailing `:' command. This testcase also used to check
that automake ignores in-line comments when using variables, but
preserves them in the output; these checks (added in commit
"Release-1-7f-4-g9177ef8") do not really pertain to this test,
so they have been moved ...
* tests/comments-in-var-defn.test: ... into this new test.
* tests/txinfo4.test: Escape literal dots in grep regexps. Add
trailing `:' command.
* tests/txinfo29.test: Likewise. Relax grepping of generated
Makefile.in w.r.t. whitespaces. Prefer `cat' over `echo' to
append to configure.in.
* tests/txinfo3.test: Likewise.
* tests/vtexi.test: Improve grepping of Makefile.in (sometimes
make it stricter, sometimes laxer). Move `set -e' setting just
after the inclusion of ./defs. De-uglify a sed command. Other
minor cosmetic improvements.
* tests/vtexi2.test: Make grepping of Makefile.in stricter. Add
trailing `:' command.
* tests/vtexi3.test: New test on version.texi support.
* tests/vtexi4.test: Likewise.
* tests/Makefile.am (TESTS): Updated.
Ralf Wildenhues [Sun, 9 Jan 2011 11:06:24 +0000 (12:06 +0100)]
Add test coverage for deleted header files.
* tests/depcomp6.test, tests/depcomp7.test: Update tests to
also check for the deleted header bug. If no dependency
tracking mechanism could be found, SKIP rather than exit
successfully. Use GNU style spacing and ANSI C prototypes.
docs: how to work around checks on invalid primary/directory couples
* doc/automake.texi (Uniform): Document the blessed idiom which can
be used to work around automake checks on invalid primary/directory
couples (such as `lib_PROGRAMS' or `doc_LIBRARIES').
Work around a bug in file-inclusion mechanism of Solaris make.
* automake.in (handle_single_transform): In the name of the
dependency file: collapse multiple slash characters into a single
one.
* tests/subobj11a.test: New test.
* tests/subobj11b.test: Likewise.
* tests/subobj11c.test: Likewise.
* tests/depcomp8a.test: Likewise.
* tests/depcomp8b.test: Likewise.
* tests/Makefile.am (TESTS): Updated.
* NEWS: Updated.
Report by Stefano Lattarini, quick fix by Ralf Wildenhues, final
patch and tests by Stefano Lattarini.