* configure.ac (AC_INIT): Bump version number to 1.11e, as per
HACKING suggestion.
* NEWS: Likewise.
* m4/amversion.m4: Likewise (autoupdated by ./bootstrap).
* t/aclocal-install-fail.sh: Do not set the 'errexit' shell flag,
as it is already set by './defs'.
* t/aclocal-install-mkdir.sh: Likewise.
* t/aclocal-no-install-no-mkdir.sh: Likewise.
* t/aclocal-verbose-install.sh: Likewise.
* t/instdir-no-empty.sh: Likewise.
* t/link_cond.sh: Likewise.
* t/python-pr10995.sh: Likewise.
* t/vala-vapi.sh: Likewise.
tests: avoid spurious failures when cross-compiling
* t/parallel-tests-recheck-depends-on-all.sh: Skip the test
when cross-compiling.
* t/vala-vapi.sh: Skip tests that do not make sense when
cross-compiling.
* t/yacc-basic.sh: Likewise.
* t/yacc-cxx.sh: Likewise.
* syntax-checks.mk (ams): The previous change 'v1.11b-36-g127adfb' solved
one problem in the definition of this variable, but also caused it contain
the names of all the left-behind 't/*.dir' temporary test directories.
Fix that.
* master:
maintainer-check: do not hang
parallel-tests: 'recheck' must depend on 'all'
vala tests: building libraries, and more on '.vapi' files
automake: fix botched call to 'check_user_variables'
vala: cleanup rules are better and more complete now
vala tests: check headers generation
vala tests: remove redundant libtool requirements and usages
vala tests: some enhancements
vala tests: few adjustments and improvements
build: use latest help2man, but without locale support
* syntax-checks.mk (ams): The definition of this variable was invoking
the 'find' utility in an incorrect way, which resulted into the variable
being empty, thus reducing coverage in some maintainer check and making
other hang. Fix this.
When a developer experience one or more failures in the testsuite, a good
workflow is for him to modify its program's sources to fix the bug thus
revealed, run "make recheck" to verify that the change has indeed solved
the testsuite failures previously experienced, and then run "make check"
to verify that the change has not introduced any new failure or regression.
Unfortunately, this apparently natural workflow couldn't have worked until
now, since the Automake-provided 'recheck' target (which didn't depend on
'all') wouldn't have causes the program to be recompiled, and the failed
tests would have thus been run with the older, buggy version of the
program, failing the same way as before.
* lib/am/check.am (recheck): Depend on 'all'.
* t/parallel-tests-recheck-depends-on-all.sh: New test.
* t/list-of-tests.mk: Add it.
* NEWS: Update.
automake: fix botched call to 'check_user_variables'
* automake.in (lang_vala_finish_target): The 'check_user_variables' function
takes an array, not an array ref, as argument; adjust its call accordingly.
* t/vala-headers.sh: New test, checking use of 'valac' options for
header generation (e.g., '-H', '--vapi', ...) in '$(..._VALAFLAGS)'.
* t/list-of-tests.mk: Add it.
[ng] parallel-tests: don't cater to VPATH rewrites
GNU make doesn't do VPATH rewrites a' la' Solaris make, but does VPATH
rewrites for the '$<' automatic variable. Take advantage of these facts
to simplify the recipes of the parallel testsuite harness.
* lib/am/check.am: Don't include 'inst-vars.am'
(am__check_pre): Simplify and adjust.
(am__set_TESTS_bases): Likewise.
(check-TESTS): Likewise.
* lib/am/check2.am (am__runtest): Don't bother setting the 'p' shell
variable, it's not needed anymore.
[ng] parallel-tests: reduce code duplication a little
Use more GNU make features and built-ins, and less automake-time
pre-processing, in order to reduce code duplication and improve
clarity.
* lib/am/check2.am: Define a new custom make function 'am__runtest', used
to simplify rules in here, and reduce code duplication among them.
* automake.in (handle_per_suffix_test): Update and simplify accordingly.
As a result, the automake-defined 'LOG_COMPILE' variables are not defined
anymore, which we should mention ...
* NG-NEWS: ... in here.
* t/test-extensions.sh: Adjust outdated grepping checks.
[ng] parallel-tests: remove workaround for BSD make
When BSD make is run in parallel mode, it apparently strips any
leading directory component from the automatic variable '$*' (of
course, against what POSIX mandates). In order to avoid this
behaviour from breaking the parallel-tests driver, we added an
hacky workaround in commit v1.11-1982-ge1606b3 of 18-02-2012.
Now that we assume GNU make, this workaround is not needed anymore,
so let's remove it.
* lib/check2.am (am__set_b): Remove its definition and its uses.
[ng] dry run: only use GNU make builtins to determine whether running dry
* lib/am/header-vars.am (am__make_dryrun): only use GNU make builtins to
determine whether make is being running in "dry mode".
* t/nodep.sh: Adjust grepping checks to avoid spurious failures.
* t/vala4.sh: Don't run 'libtoolize', it's not truly required.
($required): Don't require 'libtoolize'.
(configure.ac): Don't invoke 'AC_PROG_LIBTOOL'.
* t/vala-mix.sh ($required): Require 'cc'.
Avoid some calls to 'framework_failure_', they were only useful when
this test was xfailing (to ensure it wasn't failing for the wrong
reasons).
Ensure the stamp file is created in the source directory.
Some make implementations (especially Solaris make) have some problems
in '.PHONY' support, and this has had the consequence that mainstream
Automake hadn't been able to fully take advantage of the '.PHONY'
semantics to simplify some of its idioms or recipes. Since we now
want to assume and take advantage of such semantics, we add a new "spy"
test case verifying that they truly hold GNU make, to avoid unwelcome
surprises.
* t/spy-phony.sh: New test.
* t/list-of-tests.mk: Add it.
[ng] build: simplify rules for ChangeLog generation
The pre-existing rules used an hacky indirection, only to work
around a Solaris make bug in '.PHONY' support. GNU make does
not suffer of this bug, so we can simplify our rules accordingly.
* Makefile.am (am--changelog-regen-hook): Remove this dummy target.
(.PHONY, ChangeLog): Do not depend on it.
(.PHONY): Depend directly on 'ChangeLog' instead.
Remove outdated comments.
Jim Meyering [Sun, 15 Apr 2012 16:44:50 +0000 (18:44 +0200)]
build: use latest help2man, but without locale support
* doc/help2man: Update to latest (1.40.8), but built with
--disable-nls, which elides the less-portable locale-related
code, and with the "use 5.008" manually changed to "use 5.006".
Thanks to Brendan O'Dea for the tips.
* THANKS: Update Brendan's address.
[ng] tests: prefer to grep make stderr for expected diagnostic
Few make implementations, like BSD's, can print diagnostic from make or
its spawned recipes on stdout rather than on stderr. Some of our tests
had been relaxed to cater for this. Now that we assume GNU make, there
is no reason to be this "sloppy" anymore.
* t/uninstall-fail.sh: Expect diagnostic from make and its recipes
to be on stderr, not possibly also on stdout.
* t/lisp3.sh: Likewise.
* t/test-missing.sh: Likewise.
* t/test-missing2.sh: Likewise.
* t/distcheck-pr10470.sh: Likewise.
* t/distcheck-pr9579.sh: Likewise.
* t/dist-missing-am.sh: Likewise.
* t/dist-missing-included-m4.sh: Likewise.
* t/dist-missing-m4.sh: Likewise.
* t/deleted-am.sh: Likewise.
* t/deleted-m4.sh: Likewise.
* t/distcheck-configure-flags-am.sh: Likewise.
* t/distcheck-configure-flags-subpkg.sh: Likewise.
* t/distcheck-configure-flags.sh: Likewise.
* t/yacc-dist-nobuild.sh: Likewise. Also, be stricter in matching
expected make diagnostic.
[ng] tests: remove some workarounds for non-GNU make
* t/makej2.sh: Adjust heading comments. Don't check whether $MAKE
groks the '-j' option: GNU make is assured to do so.
* t/check-concurrency-bug9245.sh: Likewise. Fix botched indentation
since we are at it.
* t/remake4.sh: Adjust heading comments.
* t/parallel-tests6.sh: Likewise.
* t/deleted-am.sh: Remove extra '$sleep' call required to work around
a bug of FreeBSD make.
* t/colon6.test: Remove a workaround needed by HP-UX make.
* t/spy.test: Likewise. Uncomment the part of the checks that still
wasn't portable to BSD make.
[ng] tests: remove stale workarounds for non-GNU make
* t/yacc-depend2.sh: Remove now-irrelevant comment about
the fact that this test fails with FreeBSD make.
* t/silent8.sh: Remove useless workaround for NetBSD make.
* t/tap-signal.tap: Likewise.
* t/posixsubst-ldadd.sh: Remove useless workaround for
FreeBSD make.
* t/posixsubst-libraries.sh: Likewise.
* t/posixsubst-ltlibraries.sh: Likewise.
* t/posixsubst-sources.sh: Likewise.
* t/posixsubst-tests.sh: Likewise.
* t/distcheck-outdated-m4.sh: Remove workaround for
extra-verbose make implementations (like Solaris make).
* t/distcheck-missing-m4.sh: Likewise.
* t/tap-color.sh: Likewise.
* t/color.test (test_no_color): Likewise.
* t/color2.test (test_no_color): Likewise.
Remove redundant check that parallel make does nor redirect
output to temporary files or named pipes.
* t/tap-color.sh: Likewise.
* t/tap-doc.sh: Do not post-process make output to strip
extra lines printed bu Sun dmake..
* t/tap-doc2.sh: Remove stray comment.
* t/yacc-mix-c-cxx.sh: Just assume that "make -jN" can
run make in parallel mode.
* t/tap-more.sh: Likewise.
* t/dist-formats.tap: Likewise.
* t/yacc-line.sh: Avoid workaround to cater for the
Solaris XPG4 make inability to chain suffix rules.
* t/lex-line.sh: Likewise.
* master:
build: use slightly older help2man, for improved portability
tests: avoid spurious failure when 'install-info' program is unavailable
install: shell parameter expansions can be used in directory names
test defs: more environment cleanups
test defs: unset 'AM_UPDATE_INFO_DIR' environment variable
build: generate doc/*.1 files; include help2man
build: avoid parallel build failures
Jim Meyering [Fri, 13 Apr 2012 15:58:04 +0000 (17:58 +0200)]
build: use slightly older help2man, for improved portability
Fixes automake bug#11235
* doc/help2man: Downgrade to help2man-1.36.4, so that it does
not require Locale/gettext.pm, which is not available on a
default Fedora 16 installation. Reported by Stefano Lattarini.
install: shell parameter expansions can be used in directory names
Fixes automake bug#11232.
GNU automake used to support shell parameter expansion and command
substitutions in installation directories, but that was inadvertently
broken by commit v1.11-759-g368f1c4 "install: don't create empty dirs
when an empty 'foo_PRIMARY' is used" of 18-03-2012, where shell quoting
of generated MKDIR_P command was changed from double to single quotes
in 3 places, while some 21 other places still use double quotes for
generated MKDIR_P commands.
* lib/am/data.am: Use double quotes for generated "mkdir -p" commands.
* lib/am/libs.am: Likewise.
* lib/am/ltlib.am: Likewise.
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* defs (SH_LOG_COMPILER, SH_LOG_COMPILE, SH_LOG_FLAGS,
AM_SH_LOG_FLAGS, SH_LOG_DRIVER, SH_LOG_DRIVER_FLAGS,
AM_SH_LOG_DRIVER_FLAGS): Unset these variable to avoid
potential interferences from the environment.
test defs: unset 'AM_UPDATE_INFO_DIR' environment variable
* defs (AM_UPDATE_INFO_DIR): Unset, to be sure to avoid unduly
interferences from the environment. See also automake bug#11204.
* THANKS: Add entry for David Fang.
Jim Meyering [Thu, 12 Apr 2012 13:07:19 +0000 (15:07 +0200)]
build: generate doc/*.1 files; include help2man
This change is required to avoid making a distributed file depend
on a generated (non-distributed) one. The preceding change
introduced one such dependency, with the distributed doc/*.1
depending on the generated aclocal and automake files. Here,
we avoid the problem by generating the doc/*.1 files rather than
distributing them.
* doc/help2man: New file, version 1.37.1.
* Makefile.am (EXTRA_DIST): Add doc/help2man.
(man1_MANS): Rename from $(dist_man1_MANS). Remove $(srcdir) prefix.
(CLEANFILES): Add these files here, rather than to
$(MAINTAINERCLEANFILES), since we are no longer distributing them.
(update_mans): Use doc/help2man, not $(HELP2MAN).
* configure.ac: Don't test for help2man, now that we bundle it.
Jim Meyering [Wed, 11 Apr 2012 19:25:48 +0000 (21:25 +0200)]
build: avoid parallel build failures
A parallel build would fail when two concurrent sub-make processes
tried to build lib/Automake/Config.pm. The loser would complain that
grep: lib/Automake/Config.pm-t: No such file or directory
chmod: cannot access `lib/Automake/Config.pm-t': No such file or\
directory
make[1]: *** [lib/Automake/Config.pm] Error 1
* Makefile.am (update_mans): Don't build lib/Automake/Config.pm here.
Instead, depend on it from the two rules that use it:
($(srcdir)/doc/aclocal-$(APIVERSION).1): Depend on it.
($(srcdir)/doc/automake-$(APIVERSION).1): Likewise.
[ Note that technically, the above is incorrect, since it makes those
distributed doc/*.1 files depend on generated aclocal and automake.
That problem is addressed by the following commit. ]
However, that was not enough, since even then, a parallel build
would still fail, now with this:
help2man: can't get `--help' info from automake-1.11a
Try `--no-discard-stderr' if option outputs to stderr
make: *** [doc/automake-1.11a.1] Error 1
a subsequent "make -j3" would create the missing file.
That was because help2man would invoke t/wrap/aclocal.in and
t/wrap/automake.in, each of which would require aclocal and
automake, yet those two files weren't guaranteed to be created.
Add explicit dependencies:
($(srcdir)/doc/aclocal-$(APIVERSION).1): Depend on aclocal.
($(srcdir)/doc/automake-$(APIVERSION).1): Depend on automake.
news: remove older entry for "future backward incompatibilities"
* NEWS (New in 1.11.4): Remove subsection about "Future backward
incompatibilities"; they are now either documented changes for the
upcoming 1.12 release, or re-casted as planned future backward
incompatibilities for the next 1.13 release.
* automake.in (lang_vala_finish_target): Return early if the
current '_SOURCES' variable does not contain any '.vala' nor
'.vapi' source. Otherwise, the vala compiler will be called
without arguments, causing an error.
* tests/vala-mix.test: Enhance to catch the fixed bug.
Issue introduced in commit 'v1.11-696-g51f61df' of 27-02-2012,
"vala: fix 'valac' calls for projects with mixed Vala/C", which
fixed automake bug#10894.
* automake.in (lang_vala_finish_target): Also recognize '.vapi'
as an extension for vala input files.
* tests/list-of-tests.mk (XFAIL_TESTS): Remove 'vala-vapi.test'.
* master:
self checks: avoid spurious failures when keep_testdirs=yes
fixup: some weaknesses in a self-check test case
maintcheck: avoid yet more spurious failures (2)
maintcheck: avoid yet more spurious failures (1)
hacking: fixlets w.r.t. the release procedure
maintcheck: fix spurious failures
maint: version bump after beta release
Beta release 1.11b (will become 1.12)
sync: some auxiliary files synced from upstream
hacking: described new branching policy for 1.12 an later
vala tests: avoid spurious failure with older GObject
self checks: avoid spurious failures when keep_testdirs=yes
* t/self-check-cleanup.tap, t/self-check-dir.tap: Unset the
'keep_testdirs' environment variable, to avoid spurious errors
when the testsuite is run with "keep_testdirs=yes make check".
* t/self-check-cleanup.tap: This test contained several buglets
introduced in the recent row of commits that converted the Automake
build system to a non-recursive setup. Fix them. Since we are at
it, enhance the test to cover also the use of the 'keep_testdirs'
environment variable in order to keep the temporary test directories
around.
Some maintainer checks were too greedy in processing 'Makefile.am'
files, looking for them even in temporary directories left behind
by the test cases, thus causing occasional spurious failures.
* syntax-checks.mk (ams): Ignore 'Makefile.am' files in the
temporary test directories.
The 'sc_tests_makefile_variable_order' maintainer check is too
strict sometimes, blaming automake for outputting out-of-order
variables when this is in fact due to the result of post-processing
of third-party tools or custom test code.
* t/tap-doc2.sh: Ensure the final Makefile.in (that we hack by
hand) is removed, to avoid a spurious maintainer-check failure.
* t/gettext-macros.sh: Ensure that any leftover Makefile.in (that
is generated by gettext/autopoint) is removed, to avoid a spurious
maintainer-check failure.
* HACKING (Release procedure): Do not state that the result of
"make fetch" is woefully incomplete: this is not true anymore today.
Suggest to re-run the testsuite after a "make fetch", in case any
file has been updated.
* syntax-check.mk (sc_mkinstalldirs): Now the 'mkinstalldirs' is
listed in the top-level 'Makefile.am', not in 'lib/Makefile.am';
adjust the "whitelist" accordingly.
(sc_ensure_testsuite_has_run): The 'test-suite.log' file created by
"make check" is now placed in the top-level directory, not in the
't/' subdirectory. Adjust by using '$(TEST_SUITE_LOG)' instead of
an hand-crafted path for the 'test-suite.log' file.
* configure.ac (AC_INIT): Bump version number to 1.11c, as per
HACKING suggestion.
* NEWS: Likewise.
* m4/amversion.m4: Likewise (autoupdated by ./bootstrap).
* master:
vala tests: force the use of automatic dependency tracking
tests: avoid spurious failures in tests on C++ and lex
tests: avoid spurious failures with non-flex 'lex' programs and C++
tests: avoid a spurious failures for shells with busted 'set -e'
maint: simplify generation of files with @substed@ stuff
tests: remove redundant requirement
tests: make two test scripts executable
t/README: update w.r.t. recent overhaul (non-recursive build system)
docs: fix names of relevant test cases in comments
NEWS: automake build systems avoids make recursion
maint: no more make recursion in Automake's build system
tests: rename 'tests/' => 't/', '*.test' => '*.sh'
tests: remove recipes that run tests with 'prove'
tests: move most helper scripts and files into the 'ax' subdirectory
maint: remove most recursion in automake's own build system
tests: fix a spurious failures with non-GNU make
+ Extra non-trivial edits:
* Makefile.am: Remove new uses of 'AM_MAKEFLAGS' throughout.
(dist_automake_ac_DATA): Do not list 'm4/depout.m4' nor
'm4/make.m4'.
* syntax-checks.m4: Use '$(xdefs)' instead of hard-coding the
older paths of 'defs' and 'defs-static.in'. Use 't/README'
instead of 'tests/README'.
* t/instdir-no-empty.sh: Remove uses of 'AM_MAKEFLAGS'.
* tests/depcomp-recover.test: Renamed ...
* t/depcomp-recover.sh: ... to this.
* tests/gmake-vars.test: Renamed ...
* t/gmake-vars.sh: ... to this.
* tests/interp3.test: Renamed ...
* t/interp3.sh: ... to this.
* tests/objdir.test: Renamed ...
* t/objdir.sh: ... to this.
* tests/spy-vpath-rewrite.test: Renamed ...
* t/spy-vpath-rewrite.sh: ... to this.
* tests/vpath-rewrite.test: Renamed ...
* t/vpath-rewrite.sh: ... to this.
* tests/yacc-subobj-nodep.test: Renamed ...
* t/yacc-subobj-nodep.sh: ... to this.
* tests/depcomp-shuffle.sh: Renamed ...
* t/ax/depcomp-shuffle.sh: ... to this, and removed executable bit.
* t/depcomp-shuffle-sub-vpath.sh: Adjust.
* t/depcomp-shuffle-sub.sh: Likewise.
* t/depcomp-shuffle-vpath.sh: Likewise.
* t/depcomp-shuffle.sh: Likewise.
* gen-testsuite-part: Likewise.
* t/list-of-tests.mk: Do not list tests that had been already
removed from the Automake-NG testsuite. Take into account the
renames above.
vala tests: avoid spurious failure with older GObject
* t/vala2.sh: In the 'PKG_CHECK_MODULES' call in 'configure.ac',
don't require gobject >= 2.10, but just >= 2.4: that is enough in
order for the test to pass.
* t/vala3.sh: Likewise.
* t/vala5.sh: Likewise. Also, skip the test instead of failing
if the ./configure invocation fails: that is likely due to the
fact that the GObject library is too old or missing, and that is
not automake's fault.
vala tests: force the use of automatic dependency tracking
* t/vala-mix2.sh: Invoke ./configure with the option
'--enable-dependency-tracking', so that slower dependency
extractors are not rejected. This avoids a spurious failure
at least on Solaris when the Sun C compiler is used.
tests: avoid spurious failures in tests on C++ and lex
This is a follow-up to commit v1.11-2128-g7f2bc63 of 09-04-2012,
"tests: avoid spurious failures with non-flex 'lex' programs and
C++". It is required to avoid a couple of spurious failures on
Solaris and NetBSD systems (at least). See also automake bug#11185.
* t/lex-clean-cxx.sh (parsefoo.lxx): Do not declared the provided
dummy 'isatty' function as 'static', since that might conflict with
a declaration of it as 'extern' pulled in through other system
* t/lex-depend-cxx.sh (joe.ll): Likewise.
* t/README: Update advice, to avoid similar issues in the future.
* rmch:
maint: simplify generation of files with @substed@ stuff
t/README: update w.r.t. recent overhaul (non-recursive build system)
docs: fix names of relevant test cases in comments
NEWS: automake build systems avoids make recursion
maint: no more make recursion in Automake's build system
tests: rename 'tests/' => 't/', '*.test' => '*.sh'
tests: remove recipes that run tests with 'prove'
tests: move most helper scripts and files into the 'ax' subdirectory
tests: avoid spurious failures with non-flex 'lex' programs and C++
This change fixes automake bug#11185.
The commit v1.11-2058-g6f4b08d of 06-03-2012, "tests: explicitly
state that our lexers do not require unistd.h" has broken the tests
'lex-clean-cxx.test' and 'lex-depend-cxx.test' on Solaris, where lex
is not flex and does not understand the "%option never-interactive"
directive. Remove the use of this directive, resorting to defining
a dummy 'isatty()' function instead to keep the flex-generated tests
able to compile also on MinGW/MSYS.
* tests/lex-clean-cxx.test (parsefoo.lxx): Define a dummy 'isatty()'
function.
* tests/lex-depend-cxx.test (joe.ll): Likewise.
* tests/README: Adjust. Fix an unrelated typo since we are at it.
Co-authored-by: Peter Rosin <peda@lysator.liu.se> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid a spurious failures for shells with busted 'set -e'
Some versions of the BSD Korn shell wrongly bail out when the
'errexit' shell flag is active and the left-hand command in a
"&&" list fails and that list is the *last* command of the body
of a "while" or "for" loop.
* tests/install-info-dir.test: Work around that behaviour.
maint: simplify generation of files with @substed@ stuff
Use a proper "config.status --file=-" idiom to do most substitutions
in our generated files, to avoid too much duplications between the
various $(do_subst) commands in Makefile.am and the (explicit or
implicit AC_SUBST) invocation in configure.ac.
From a suggestion by Eric Blake and Federico Simoncelli:
<http://lists.gnu.org/archive/html/automake/2012-01/msg00011.html>
* Makefile.am (do_subst): Rewrite to take advantage of the
"config.status --file=-" idiom.
(generated_file_finalize): New, to help checking that generated
files don't contain unexpanded '@substitutions@', and are made
read-only.
(automake, aclocal): Take advantage of the improved $(do_subst).
Improve comments.
(lib/Automake/Config.pm): Likewise, and of the new variable
$(generated_file_finalize) as well.
($(top_srcdir)/m4/amversion.m4): Likewise.
(defs-static): Likewise, and depend explicitly on 'Makefile'.
(do_subst_t): Remove as obsolete.
* THANKS: Update.
docs: fix names of relevant test cases in comments
* doc/automake.texi: In comments reporting which test(s) check a
given feature/idiom, fix the names of the referenced tests, to
reflect the recent 'tests/foo.test' => 't/foo.sh' "Great Rename".
maint: no more make recursion in Automake's build system
We finally merge testsuite-related part of the Automake build
system with the top-level one. See also yesterday's commit
'v1.11-2124-ga4b0f4b', "maint: remove most recursion in automake's
own build system".
* t/gen-testsuite-part: Move ...
* gen-testsuite-part: ... here, with required adjustments.
* t/defs-static.in: Move ...
* defs-static.in: ... here, with required adjustments. In
particular ...
($testsrcdir, $testbuilddir): Removed.
($top_testsrcdir): Renamed ...
($am_top_srcdir): ... to this.
($top_testbuilddir): Renamed ...
($am_top_builddir): ... to this.
* t/defs: Move ...
* defs: ... here, and adjust as required.
* t/Makefile.am: Merge ...
* Makefile.am: ... in here, with related adjustments and
simplifications.
* bootstrap: Adjust as required.
* syntax-checks.mk: Likewise.
* .gitignore: Likewise.
* t/ax/tap-setup.sh: Likewise.
* t/get-sysconf.sh: Likewise.
* t/help-multilib.sh: Likewise.
* t/multlib.sh: Likewise.
* t/parallel-tests2.sh: Likewise.
* t/self-check-cleanup.tap: Likewise.
* t/self-check-exit.tap: Likewise.
* t/self-check-dir.tap: Likewise.
* t/self-check-explicit-skips.sh: Likewise.
* t/self-check-reexec.tap: Likewise.
* t/self-check-sanity.sh: Likewise.
* t/yacc-d-cxx.sh: Likewise.
When we (soon) convert the Automake testsuite to a non-recursive
make setup, we'll have to fix the entries of $(TESTS) to be
prepended with the subdirectory they are in; this will increase
the length of $(TESTS), and thus increase the possibility of
exceeding the command-line length limits on some systems (most
notably, MinGW/MSYS). See automake bug#7868 for more information.
Thus we rename the 'tests/' subdirectory to 't/', and each 'x.test'
script in there to 'x.sh'; this way, the $(TESTS) entry 'foo.test'
will become 't/foo.sh', which have the same number of characters.
Those recipes has served its purpose by helping us during the
development of TAP support in Automake, to ensure our TAP driver
didn't have gratuitous incompatibilities with the 'prove' test
runner. But they are now unused, out-of-date and bitrotting. So
it's better to just remove them. We can resurrect them at a later
time if the need arises.
* tests/Makefile.am (PROVE, AM_PROVEFLAGS, AM_PROVECMD): Remove
these variables.
(prove, installprove): Remove these targets and their recipe.
(EXTRA_DIST): Don't distribute 'ax/prove-runner' anymore.
* ax/prove-runner: Delete.
maint: remove most recursion in automake's own build system
Recursive make-based build systems tend to be slower, more fragile
and less faithful than "flat" ones. See Peter Miller's article
"Recursive Make Considered Harmful" for more a more in-depth
discussion:
<http://miller.emu.id.au/pmiller/books/rmch/>
While in the case of automake this isn't a big problem (given the
small size of its build systems), it still creates occasional
glitches and annoyances.
With this change, the use of recursion in Automake's own build
system is eliminated *but for the testsuite*. Converting that
is a little more tricky, and better left for a later change (or
series of changes).
* tests/instdir-no-empty.test: Also pass proper AM_MAKEFLAGS to
make invocations that might recurse, to ensure the macro definitions
passed from the command line are properly propagated.
* master:
texinfo: warn about future use of '--tidy'
texinfo: don't clutter the builddir when using modern texi2dvi
hacking: autotools-generated files are not committed anymore
hacking: simplify documentation of bootstrapping process
cosmetics: remove repeated line in comment, fix quoting
cosmetics: remove useless import in automake script
docs: deprecate 'cygnus' mode, help the transition
perl refactor: use modern semantics of 'open'
cosmetics: don't make the generated Config.pm executable
maint: reduce use of recursion in automake build system
news: sync with branch-1.11, fix mis-merges
acinstall: remove, it has never been really used
maint: reorganize the source tree and make it less cluttered
news: we are going to drop 'cygnus' soonish
Starting from the next major release of Automake (likely 1.13) we
want to start passing the '--tidy' option to texi2dvi and texi2pdf
invocations, so that auxiliary TeX-generated files can be kept
around (thus speeding up rebuilding of DVI and PDF output) without
cluttering the build directory too much.
Since the '--tidy' option was introduced in Texinfo 4.9 (as
documented in the Texinfo distribution's NEWS file), this also
means that Makefiles generated by future Automake versions will
require at least that version of Texinfo (at the time of writing
four years and nine months old).
The users should be warned about the planned behavioral change
and the new version requirement it will entail.
See also automake bug#11146.
* NEWS (Planned Backward Incompatibilities): Add entry about use
of the '--tidy' option and requirement of Texinfo 4.9.
texinfo: don't clutter the builddir when using modern texi2dvi
In modern versions of texi2dvi (at least since version 1.135, which
comes with Texinfo 4.13) the '-o' option does not imply anymore the
'--clean' option. As a consequence, lots of TeX-generated auxiliary
files are now left in the build directory by the 'pdf', 'ps' and
'dvi' rules.
This is especially annoying with non-recursive setups having the
'.texi' files in a subdirectory, as in:
info_TEXINFOS = doc/foo.texi
In this case, the stray auxiliary files are left in the top build
directory (since TeX is run from there). See for example:
* lib/am/texibuild.am: Call 'texi2dvi' and 'texi2pdf' with the
'--clean' option. Update comments accordingly.
* tests/txinfo-noclutter.test: New test.
* tests/txinfo18.test: Remove as obsolete, the still relevant parts
of it moved into the new test.
* tests/list-of-tests.mk: Adjust.
* NEWS: Update.
hacking: autotools-generated files are not committed anymore
* HACKING (Working with git) Generated files like 'configure',
'Makefile.in' and 'aclocal.m4' are not committed anymore in our
git repository since some months. Remove obsoleted advices that
assumed they still were.
hacking: simplify documentation of bootstrapping process
* HACKING (Working with git): Do not suggest that, to ensure the
bootstrapping process is performed with the latest autotools, the
developer could explicitly pass $AUTOCONF and $AUTOM4TE in the
environment to the ./bootstrap and ./configure invocations: that
is a little tricky and quite fragile. Instead, suggest to just
put modern-enough version of the autotools early in PATH.
cosmetics: remove repeated line in comment, fix quoting
* automake.in: Drop a repeated line in a comment. In the same
comment, prefer quoting 'like this' rather than `like this'.
Issue introduced in one of the commits that converted from quoting
`like this' to quoting 'like this'.
docs: deprecate 'cygnus' mode, help the transition
Support for "Cygnus-style" trees (so far enabled by the 'cygnus'
option) will be deprecated in one release of the next major series
(1.12.x) and removed in the next major release after that (1.13).
Better to start warning about this in the manual.
* docs/automake.texi: Warn about the oncoming deprecation of the
'cygnus' mode. Suggest some idioms that can be used to retain some
effects of the 'cygnus' option.
* THANKS: Update.
From a suggestion by Joseph S. Myers in automake bug#11034.
* lib/Automake/XFile.pm: Update comments and POD documentation to
suggest a more idiomatic/modern usage.
(open): Be more robust in detecting whether the created file handle
is being opened for writing.
* lib/Automake/FileUtils.pm (update_file, contents): Call the
'Automake::XFile' and 'File::IO' constructors with two arguments
rather than one; this change obsoletes ...
(open_quote): ... this subroutine, which has thus been removed.
(@EXPORT): Drop '&open_quote'.
* maint:
cosmetics: don't make the generated Config.pm executable
maint: reduce use of recursion in automake build system
+ Extra non-trivial extra edits follows.
* lib/Makefile.am (amdir): Deleted this definition, it is already
provided by a proper AC_SUBST in configure.ac.
(dist_am_DATA): Remove 'am/ansi2knr.am', 'am/check-html.am' and
'am/multilib.am'.
(dist_perllib_DATA): Remove 'Automake/Struct.pm'.
maint: reduce use of recursion in automake build system
Recursive make-based build systems tend to be slower, more fragile
and less faithful than "flat" ones. See Peter Miller's article
"Recursive Make Considered Harmful" for more a more in-depth
discussion:
<http://miller.emu.id.au/pmiller/books/rmch/>
While in the case of automake this isn't a big problem (given the
small size of its build systems), it still creates occasional
glitches and annoyances. So, with this change, we start making
less use of make recursion in the Automake's own build system
(future changes will reduce it even more).
* lib/am/Makefile.am, lib/Automake/Makefile.am: Removed, their
content merged ...
* lib/Makefile.am: ... here, with required adjustments.
* configure.ac (AC_CONFIG_FILES): Update.
Accordingly to the git history (see for example the 'README-alpha'
in commit 'Release-1-1e-39-g9beb4ec' of 06-10-1996), the 'acinstall'
script should have been used to install m4 files for aclocal. The
comments in this script report that "... A script is needed to do
this because we want to do serial-number checking; newer versions
of macro files should always be preferred".
But the 'acinstall' script has never been really used: for example,
the entry "actually use acinstall program" was removed (unfixed)
from the TODO file in commit 'Release-1-1k-12-g1201405' of
08-12-1996, and the only citation of 'acinstall' in the manual was
removed in commit 'Release-1-1l-37-g128c3d7' of 19-03-1997, and
never added back. In addition, the last non-trivial edit to the
script (that is, besides updates to the copyright notice) dates
back to 1996.
More importantly, now that aclocal supports the ACLOCAL_PATH
environment variable, installing m4 files directly in the
system-wide acdir is discouraged, and better left only to
distros' package managers (which already have their own way to
do so, with which third-party build systems should not directly
meddle).
* NEWS (Future backward incompatibilities): Support for
"Cygnus-style" trees (so far enabled by the 'cygnus' option)
will be deprecated in the next minor release and removed in
in the next major release.