summaryrefslogtreecommitdiff
path: root/Makefile.am
Commit message (Collapse)AuthorAgeFilesLines
* tests: implement is_newest as an auxiliary script, not shell functionStefano Lattarini2012-06-221-1/+1
| | | | | | | | | | | This will allow to also use it in the makefile recipes used in our test cases. * t/ax/test-init.sh (is_newest): Remove. * t/ax/is_newest: New script. * Makefile.am (EXTRA_DIST): Add it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* tests: automatic re-execution works for non-POSIX shells tooStefano Lattarini2012-06-221-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some inferior shells are too greedy in parsing their input. If a non-POSIX Bourne shell (like Solaris 10 /bin/sh) was used to launch one of our test scripts, it would fail unconditionally, because it unexpectedly saw some (by it) unsupported constructs, notwithstanding such constructs being placed *after* the code implementing automatic test re-execution with a better shell. In conclusion, the shell bailed out like this: $ /bin/sh t/ar.sh $ t/ar.sh: syntax error at line 257: `is_newest_files=$' unexpected By moving all the potentially problematic code in a separate file, to be sourced only after the code for automatic re-execution with a better shell, we ensure that inferior shell cannot see such code by mistake. * defs: All code after automatic shell re-execution moved out ... * t/ax/test-init.sh: ... to this new file. * syntax-checks.mk (xdefs): Add it. * Makefile.am (dist_check_DATA): Add it. Also move in 'defs' from a less explicit 'check_DATA' declaration. (nodist_check_DATA): Move in 'defs-static' from a less explicit 'check_DATA' declaration. (check_DATA): Remove. * t/self-check-sanity.sh: Remove, it was actually too hacky and brittle, sanity-checking situations we don0t actually care about. * t/list-of-tests.mk: Adjust. * t/self-check-explicit-skips.sh: Adjust, and fix a botched heading comments while we are at it. * t/self-check-reexec.tap: Adjust. * t/self-check-cleanup.tap: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* maintcheck: fix a spurious failureStefano Lattarini2012-06-011-1/+1
| | | | | | | * Makefile.am (test_subdirs): Add 't/perf'. Fix spurious failure of the 'maintainer-check-list-of-tests' target. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* release: remove overly picky checkStefano Lattarini2012-05-191-3/+0
| | | | | | | | | * Makefile.am (git-tag-release): Do not check that the version number NEWS is updated w.r.t. $(VERSION); given the new way we manage NEWS, that would cause gratuitous spurious failures. * HACKING: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* tests: use 'parallel-tests' Automake option by defaultStefano Lattarini2012-05-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will help our transition from 'serial-tests' to 'parallel-tests' as the default test suite driver enabled by a TESTS assignment in the input Makefile.am. Note that that change of default will only take place in master, though. * defs: Pass the 'parallel-tests' option to the AM_INIT_AUTOMAKE invocation in the created 'configure.ac' stub, unless the variable 'am_serial_tests' is set to "yes". Don't pay attention anymore to the 'am_parallel_tests' variable, that's obsolete now. * defs-static.in: Warn if the 'am_serial_tests' variable is set in the environment; conversely, don't warn anymore about 'am_parallel_tests' being set in the environment. * Makefile.am (AM_TESTS_ENVIRONMENT): Nullify the 'am_serial_tests' variable instead of the now-obsolete 'am_parallel_tests' one. * syntax-checks.mk (sc_tests_obsolete_variables): Also warn against uses of 'am_parallel_tests', which is now deprecated in favor of 'am_serial_tests'. Similarly, if a use of 'parallel_tests' is seen, suggest using 'am_serial_tests' instead, not 'am_parallel_tests'. * gen-testsuite-part: Now that we use the 'parallel-tests' by default in our tests, we need to completely change the logic and semantics of generation of sibling tests for those tests that check the Automake generated testsuite harness itself. Do that, and give a complete explanation of the new logic and semantics in the relevant comments. * t/README: Update. * Lots of test cases: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* Merge branch 'testsuite-saner-shell' into maintStefano Lattarini2012-05-071-2/+2
|\ | | | | | | | | | | | | | | | | * testsuite-saner-shell: tests: fix a spurious failure with dash test defs: fix indentation (cosmetic change) tests: remove obsolete uses of $sh_errexit_works configure: search a sturdy POSIX shell to be used in the testsuite tests: shell running test scripts is now named AM_TEST_RUNNER_SHELL
| * tests: shell running test scripts is now named AM_TEST_RUNNER_SHELLStefano Lattarini2012-05-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is just a preparatory refactoring for future changes. * configure.ac (AM_TEST_RUNNER_SHELL): New variable, defined to $SHELL', and AC_SUBST'd. * Makefile.am (LOG_COMPILER): Redefine from $(SHELL) to $(AM_TEST_RUNNER_SHELL). * defs: Adjust to use $AM_TEST_RUNNER_SHELL instead of $CONFIG_SHELL and/or $SHELL, where appropriate. Minor opportunistic changes. * t/self-check-explicit-skips.sh: Likewise. * t/self-check-sanity.sh: Likewise. * t/self-check-tap.sh: Likewise. * t/self-check-cleanup.tap: Likewise. * t/self-check-dir.tap: Likewise. * t/self-check-env-sanitize.tap: Likewise. * t/self-check-exit.tap: Likewise. * t/self-check-me.tap: Likewise. * t/self-check-reexec.tap: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | fixup: distribute t/READMEStefano Lattarini2012-05-061-1/+1
|/ | | | | | | | | | Since commit v1.11-2128-g8e02441 of 2012-04-06, "maint: no more make recursion in Automake's build system" we haven't been distributing the testsuite README file in our release tarballs. Oops. * Makefile.am (EXTRA_DIST): Add 't/README'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* bootstrap: consistently use correct copyright yearStefano Lattarini2012-05-011-2/+3
| | | | | | | | | | | | | | | | Suggested by Peter Johansson in the discussion about automake bug#11356: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11356#41> * boostrap.sh (dosubst): Don't initialize the substituted value for the release year from the current year (using `date +%Y`); instead, do it through ... ($RELEASE_YEAR): ... this new statically-defined variable. To ensure it won't get out-of-sync, it will be automatically updated ... * Makefile.am (update-copyright): ... by this target's recipe. Since are at it, fix a botched output redirection for an error message, i.e., use ">&2" instead of ">&1". Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* fixup: avoid unconditional re-bootstrapping on "make dist"Stefano Lattarini2012-04-281-2/+2
| | | | | | | | | | | | | | | | | | | | | Since our 'bootstrap' script is distributed, the 'distdir' target depends on it. But in our GNUmakefile, we also have a 'bootstrap' target declared .PHONY, which when called re-bootstrap the Automake distribution. Thus, whenever we run "make dist", GNU make sees it must remake the 'bootstrap' target (as it is a dependency of the 'distdir' target), and thus ends up re-bootstrapping all the package (because of the .PHONY 'bootstrap' target in GNUmakefile). We fix this issue by renaming our bootstrap script to 'bootstrap.sh'. * bootstrap: Renamed ... * bootstrap.sh: ... to this. * GNUmakefile (bootstrap): Adjust. * Makefile.am (EXTRA_DIST): Likewise. (autodiffs): Likewise. * HACKING: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* build: ensure release year in copyright notice is up-to-dateStefano Lattarini2012-04-281-1/+5
| | | | | | | | | | | | | | | | | | | | | From a suggestion by Eric Blake. See automake bug#11356. This is a follow-up to previous patch 'v1.12-12-gb99b5be'. * configure.ac (RELEASE_YEAR): New AC_SUBST'd variable, should hold the value of the current year. * Makefile.am (update-copyright): Be sure to also update the definition of 'RELEASE_YEAR' in configure.ac. * lib/Automake/Config.in ($RELEASE_YEAR): New exported variable, initialized from the value substituted for '@RELEASE_YEAR@'. (@EXPORT): Add it. * automake.in, aclocal.in: Use '$RELEASE_YEAR' (which will be substituted at make time) instead of hard-coding the release year. This should ensure the copyright range in the version message and in the generated files (Makefile.in and aclocal.m4) are automatically kept up-to-date. * bootstrap (dosubst): Update, also substitute '@RELEASE_YEAR@'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* build: avoid too greedy rebuilds in the testsuiteStefano Lattarini2012-04-261-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The autogenerated makefile fragment 't/testsuite-part.am' used to depend on the list of *all* the hand-written files. This was technically correct, since that makefile fragment was (and still is) generated by the script 'gen-testsuite-part', which scans all the hand-written files to detect implicit dependencies and to decide for which tests a further wrapper test should be generated. However, the presence of such a dependency implied that, whenever *any* test case was modified (no matter how slightly), the 't/testsuite-part.am' file was rebuilt, and since that is included by our 'Makefile.am', the 'Makefile.in' file was rebuilt as well by automake. In order to do so, automake scanned our 'configure.ac' file, which requires the latest Autoconf version (2.69 at the time of writing), and the casual user can easily lack that on his machine (and that should be allowed, as automake currently supports any autoconf version >= 2.62). The described situation could hinder in-field testing or debugging by users (even experienced ones) that are not automake developers; see for example automake bug#11347. So we drop the explicit dependency of 't/testsuite-part.am' on the hand-written test cases. (As an aside, note that this has already been done in Automake-NG, albeit for other reasons; see the commit 'v1.11b-129-g1690aca' of 2012-04-23, "[ng] build: define $(TESTS) through a wildcard"). This is not a serious regression in the faithfulness of the Automake build systems, since it unfortunately already had several undeclared dependencies; e.g., 'Makefile.in' should depend on the automake script, and 'aclocal.m4' should depend on the aclocal script (but this isn't possible, as it would mean that distributed files depend on ones generated at make time). Similarly, 'Makefile.in' should depend on some of the 'lib/am/*.am' files, but does not. Currently, the workaround to get a faithful and correct rebuild is to run ./bootstrap && ./config.status --recheck && make clean all and the present commit does not change that. * Makefile.am ($(srcdir)/t/testsuite-part.am): Don't depend on 't/list-of-tests.mk' nor on '$(handwritten_TESTS)' anymore. ($(generated_TESTS)): Likewise, and don't depend on 'Makefile.am' either. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* build: generate doc/*.1 files; include help2manJim Meyering2012-04-121-11/+14
| | | | | | | | | | | | | | | | | 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.
* build: avoid parallel build failuresJim Meyering2012-04-121-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* maint: simplify generation of files with @substed@ stuffStefano Lattarini2012-04-081-103/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | 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. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* maint: no more make recursion in Automake's build systemStefano Lattarini2012-04-061-10/+189
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* tests: rename 'tests/' => 't/', '*.test' => '*.sh'Stefano Lattarini2012-04-061-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. * tests/: Rename ... * t/: ... to this. * t/*.test: Rename ... * t/*.sh: ... to this. * t/.gitignore: Removed as obsolete. * t/defs: Adjust. * t/gen-testsuite-part: Likewise. * t/list-of-tests.mk: Likewise. * t/ccnoco.sh: Likewise. * t/ccnoco3.sh: Likewise. * t/self-check-cleanup.tap: Likewise. * t/self-check-dir.tap: Likewise. * t/self-check-me.tap: Likewise. * t/self-check-reexec.tap: Likewise. * README: Likewise. * bootstrap: Likewise * configure.ac: Likewise. * Makefile.am: Likewise. * .gitignore: Likewise. * syntax-check.mk: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* maint: remove most recursion in automake's own build systemStefano Lattarini2012-04-051-30/+384
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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). See also commit v1.11-769-gfeeb7f6 of 28-03-2012. * contrib/Makefile.am, lib/Makefile.am, m4/Makefile.am, doc/Makefile.am: Removed, their content merged ... * Makefile.am: ... here, with required adjustments and few other "opportunistic" changes. (SUBDIRS): Update. * configure.ac (AC_CONFIG_FILES): Likewise. * .gitignore: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* maint: reorganize the source tree and make it less clutteredStefano Lattarini2012-03-281-11/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * TODO: Move ... * old/TODO: ... here. This is done because this file is quite outdated, and today TODO and wishlist items are better handled though the debbugs tracker. * ChangeLog.00: Move ... * old/ChangeLog.00: ... here. * ChangeLog.01: Move ... * old/ChangeLog.01: ... here. * ChangeLog.02: Move ... * old/ChangeLog.02: ... here. * ChangeLog.03: Move ... * old/ChangeLog.03: ... here. * ChangeLog.04: Move ... * old/ChangeLog.04: ... here. * ChangeLog.09: Move ... * old/ChangeLog.09: ... here. * ChangeLog.11: Move ... * old/ChangeLog.11: ... here. * ChangeLog.96: Move ... * old/ChangeLog.96: ... here. * ChangeLog.98: Move ... * old/ChangeLog.98: ... here. * tests/ChangeLog-old: Move ... * old/ChangeLog-tests: .. here. * tests/Makefile.am (EXTRA_DIST): Adjust. * Makefile.am (EXTRA_DIST): Likewise. * .autom4te.cfg: New file, instructing the autotools to place the autom4te cache directory in '.autom4te.cache' rather than in 'autom4te.cache'. * .gitignore: Adjust. * Makefile.am (maintainer-clean-local): Remove the '.autom4te.cache' directory. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* build: do not quote `like this', as per GCS recommendationStefano Lattarini2012-02-231-6/+6
| | | | | | | | | | | This patch converts the files implementing the automake's own build system to the use of new quoting format 'like this' or "like this" rather than `like this'. * bootstrap, configure.ac, syntax-checks.mk, Makefile.am, lib/Makefile.am, m4/Makefile.am, syntax-checks.mk: Update quoting format throughout, in comments and diagnostic. Some minor related rewordings and reformatting since we are at it.
* tests: "make installcheck" shouldn't run the testsuite twiceStefano Lattarini2012-02-211-4/+0
| | | | | | | | * Makefile.am (installcheck-local): Remove. The "installcheck" target provided by automake is already a recursive target, so there's no need to have an 'installcheck-local' recipe that manually recurse into 'tests/'. In fact, such a manual recursion was causing the testsuite to be run twice by "make installcheck".
* maint: support amending the generated ChangeLog, and fix a typoPeter Rosin2012-02-171-1/+4
| | | | | | | | | | * Makefile.am (gitlog_to_changelog_options): Add support for amending the generated ChangeLog. (EXTRA_DIST): Update. * .git-log-fix: New file with things to amend to the generated ChangeLog, starting with a fix for a typo in v1.11-1963-g3b369e6 "maint: use AC_PACKAGE_BUGREPORT to avoid duplication" from yesterday.
* update-copyright: don't touch COPYING and INSTALLStefano Lattarini2012-02-161-1/+1
| | | | | | | | | Reported by Peter Rosin. * update-copyright: Also exclude the COPYING and INSTALL files found in the top-level directory. * COPYING, INSTALL: Revert update of copyright years done in today's commit 'v1.11-1948-g641a5a4'.
* maint: run "make update-copyright"Stefano Lattarini2012-02-161-3/+1
|
* Merge branch 'maint'Stefano Lattarini2012-02-161-1/+5
|\ | | | | | | | | * maint: update-copyright: don't touch files synced from external packages
| * update-copyright: don't touch files synced from external packagesStefano Lattarini2012-02-161-1/+5
| | | | | | | | | | | | * Makefile.am (update-copyright): Do not update copyright years of files synced from external packages, as given by the '$(FETCHFILES)' variable. Silence the recipe since we are at it.
* | maint: prefer $(GIT) over hard-coded "git" in maintainer recipesStefano Lattarini2012-02-151-5/+5
| | | | | | | | | | * Makefile.am (update-copyright, autodiffs): Use '$(GIT)' instead of hard-coding 'git'.
* | Merge branch 'maint'Stefano Lattarini2012-02-151-1/+12
|\ \ | |/ | | | | | | * maint: maint: add a rule to use gnulib's update-copyright
| * maint: add a rule to use gnulib's update-copyrightJim Meyering2012-02-141-1/+12
| | | | | | | | | | | | | | * lib/update-copyright: New file, from gnulib. * Makefile.am (FETCHFILES): Add update-copyright to the list. (fetch): Fetch it. (update-copyright): New rule.
* | docs: move chapter on automake history out of main manualStefano Lattarini2012-02-121-31/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The chapter on Automake history, while certainly interesting and even fascinating, does not truly pertain to a reference manual, so move it out from there and into its own dedicated file. This change is made more advisable and pressing by the fact that such and "Automake history" chapter hasn't been updated since the 1.9.6 release, so it has been becoming less faithful and useful since then. * doc/history.texi: New, manual on the history of the automake package; extracted from ... * doc/automake.texi: ... this file, with related adjustments. * doc/Makefile.am (info_TEXINFOS): Add 'history.texi'. (history_TEXINFOS): New, list included file 'fdl.texi'. * Makefile.am (release-stats): Remove as obsolete. * HACKING (Release Procedure): Don't advise anymore to run the "release-stats" target and to update the manual with its output. * NEWS: Update. * .gitignore: Likewise.
* | Merge branch 'maint'Stefano Lattarini2012-01-311-23/+60
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * maint: tests: do not assume the object file extension is .o tests: avoid spurious failure of 'transform2.test' on Cygwin tests: avoid spurious failure of deleted-am.test with FreeBSD make tests: avoid possibly undeserved PASS from check8.test warnings: more precise category and message for one warning release: revamp rules to tag and upload the releases amversion: add missing dependency hacking: update advice w.r.t. synced files hacking: don't reference ChangeLog anymore + Extra non-trivial edits: * tests/suffix8.tap: Copy in (by hand) the modifications done to 'suffix8.test' on maint, i.e., the addition of an explicit '.y_.obj:' suffix rule to Makefile.am.
| * release: revamp rules to tag and upload the releasesStefano Lattarini2012-01-251-25/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The older Makefile rules used to create and tag the releases were based on an approach we now consider flawed: they over-mechanized some delicate operations that are better performed manually *and* double-checked by a developer, and at the same time they did not run enough safety checks. * Makefile.am (GIT, version_rx, stable_version_rx, beta_version_rx, match_version, git_must_have_clean_workdir, determine_release_type): New variables. (git-release, git-dist): Remove, they are superseded by ... (git-tag-release, git-upload-release): ... these new targets.
| * hacking: update advice w.r.t. synced filesStefano Lattarini2012-01-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | * HACKING: Update and improve advices and explanations about files in the automake repository that are now owned by automake, but mirrored from other upstreams. Also, don't list these files explicitly, rather point the reader to the $(FETCHFILES) variable in Makefile.am. * Makefile.am (FETCHFILES): Don't state that "there should be a lot more here", as this is not true anymore today. Only 'COPYING' must be synced by hand.
* | maintcheck: fix real and spurious warningsStefano Lattarini2012-01-301-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lib/Makefile.am (install-data-hook): Correctly quote $(DESTDIR) occurrences. * Makefile.am (install-exec-hook, uninstall-hook): Likewise. (autodiffs): Prefer '$(am__cd)' to plain 'cd', where warranted. * doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Likewise. Also, prefer using AC_SUBST'd $(abs_top_builddir) over obtaining it at runtime from $(top_builddir). * syntax-check.mk (sc_mkinstalldirs): Tweak to whitelist known harmless occurrences of the checked-against usages. (sc_no_for_variable_in_macro): Likewise. * tests/CheckListOfTests.am (maintainer-check-list-of-tests): Tweak to avoid spuriously triggering the 'sc_no_for_variable_in_macro' maintainer check. Prefer '$(am__cd)' to plain 'cd' when warranted.
* | build: require GNU make in order to run the maintainer checksStefano Lattarini2012-01-301-568/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is not a real regression in portability, since most maintainer check rules already assumed GNU grep, and were anyway only meant to run on the developers' systems (where we can safely assume the presence of GNU make). This change will allow us to take advantage, in future changes, of more GNU make features, thus simplifying or optimizing some of our maintainer rules. * GNUmakefile: New, including 'Makefile' and 'syntax-checks.mk'. * configure.ac (AC_CONFIG_LINKS): Link it in the builddir. * Makefile.am (EXTRA_DIST): Distribute 'GNUmakefile' and 'syntax-checks.mk'. Move all syntax-check rules and auxiliary variables into ... * syntax-checks.mk: ... this new file, with some adjustments.
* | maintcheck: refactor rules checking '*.am' filesStefano Lattarini2012-01-301-19/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A small refactoring in our syntax-check to avoid code duplication and to ensure more uniform checking. This change introduces some new failures in syntax-check rules (both real and spurious), that will be fixed in follow-up changes and code reorganizations. * Makefile.am (ams): New variable, holding the list of all the '*.am' fragments in he automake source tree. (sc_no_brace_variable_expansions): Use it. (sc_rm_minus_f): Likewise. (sc_no_for_variable_in_macro): Likewise. (sc_mkinstalldirs): Likewise. (sc_pre_normal_post_install_uninstall): Likewise. (sc_cd_in_backquotes): Likewise. (sc_cd_relative_dir): Likewise. (sc_tests_make_without_am_makeflags): Likewise. (sc_tests_plain_egrep_fgrep): Likewise. (sc_mkdir_p): Likewise.
* | Merge branch 'maint'Stefano Lattarini2012-01-211-7/+3
|\ \ | |/ | | | | | | | | | | | | * maint: fixup: distribute 'contrib/multilib/multi.m4' multilib: deprecate, will be moved to contrib fixlet: flags for Fortran77 compiler are in FFLAGS, not F77FLAGS cosmetics: fix a botched comment in a maintainer check
| * multilib: deprecate, will be moved to contribStefano Lattarini2012-01-211-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As of 2012-01-17, according to Google codesarch, almost no active package is using the 'multilib' feature offered by automake. The only major exception seems to be GCC... But on a closer look, it become clear that GCC basically carries its own version of multilib support. In fact, Automake syncs its 'config-ml.in' and 'symlink-tree' scripts from GCC; and the GCC repository contains a version of the 'multi.m4' file that is *more* updated than the one in the automake repository (the former having being modified the last time in 2008, the latter only in 2006). The 'multilib' feature was anyway hardly documented at all, only being briefly cited in the manual as an "obscure feature", "still experimental", that was only for users "familiar with multilibs" and which "can debug problems they might encounter". We expect such users to be motivated and knowledgeable enough to make the minor adjustments required to start using the contrib version of multilib, if they really need to. * NEWS (Future backward incompatibility): Update. * doc/automake.texi: Deprecate multilib support. State that it will be removed from automake core in the next major release. * m4/multi.m4 (AM_ENABLE_MULTILIB): Deprecate. If called, now gives a proper warning in the 'obsolete' category (while still retaining its former behaviour for the rest). * tests/multilib.test: Update. * contrib/multilib/multi.m4: New, verbatim copy of the earlier version of multi.m4, without the new deprecation warning. * Makefile.am (fetch): Don't sync the 'config-ml.in' file nor the 'symlink-tree' script from GCC SVN repository anymore. (FETCHFILES): Adjust. (WGET_GCC): Remove, it's not needed anymore.
| * cosmetics: fix a botched comment in a maintainer checkStefano Lattarini2012-01-191-1/+2
| | | | | | | | | | * Makefile.am (sc_tests_make_without_am_makeflags): Adjust botched description of this check.
* | build: simplify our top-level "recheck" targetStefano Lattarini2012-01-181-14/+3
| | | | | | | | | | | | | | * Makefile.am (recheck): Now that all the test scripts are in the 'tests/' directory, its recipe can be greatly simplified, as we don't need to deal with recursion in multiple subdirectories anymore.
* | Merge branch 'maint'Stefano Lattarini2012-01-181-15/+3
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | * maint: cosmetics: move CheckListOfTests.am into tests/ tests: move all under the same hierarchy ('tests/' directory) gitlog-to-changelog: update from upstream changelog: don't cluster multiple entries under the same "date line" + Extra non-trivial edits: * tests/Makefile.am (XFAIL_TESTS): Update with the xfailing tests that were in 'lib/Automake/tests'. Add proper "FIXME" comment.
| * tests: move all under the same hierarchy ('tests/' directory)Stefano Lattarini2012-01-181-14/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This simplifies the organization of the Automake source tree and reduces the (lamentably high) number of Makefiles in the Automake build system by one. It also makes the maintainer check that verifies the consistency of list of tests more self-contained and simpler. Finally, it might be a first step forward the transition to a non-recursive build system for automake (if we ever decide to go down that road fully some day). * lib/Automake/tests: All the '*.pl' tests in here moved ... * tests/pm: ... into this new directory. * lib/Automake/tests/Makefile.am: Remove, its meaningful contents moved ... * tests/Makefile.am: ... here, with obvious adjustments. (test_subdirs): New variable, for the sake of the recipe of 'maintainer-check-list-of-tests'. * CheckListOfTests (maintainer-check-list-of-tests): Enhance its recipe to make it able to deal with test script residing in subdirectories. * Makefile.am (maintainer-check-list-of-tests): Simplified. (TEST_SUBDIRS): Remove, no more needed. * tests/list-of-tests.mk (perl_TESTS): New variable, lists the '.pl' tests just moved into 'tests/pm'. (handwritten_TESTS): Add the contents of '$(perl_TESTS)'. * lib/Automake/Makefile.am (SUBDIRS): Remove. * configure.ac (AC_CONFIG_FILES): Update. * .gitignore: Adjust.
| * changelog: don't cluster multiple entries under the same "date line"Stefano Lattarini2012-01-171-1/+2
| | | | | | | | | | | | | | | | | | * lib/gitlog-to-changelog: Synced from gnulib. The new version has a new option '--no-cluster', that disables clustering of adjacent commit messages under the same "date line". * Makefile.am (gitlog_to_changelog_options): Add '--no-cluster'. Also add a proper '--format' specification to ensure we have a blank line between the summary line and the commit message body.
* | Merge branch 'maint'Stefano Lattarini2012-01-171-1/+1
|\ \ | |/ | | | | | | * maint: fixup: contrib: really integrate in automake build system
| * fixup: contrib: really integrate in automake build systemStefano Lattarini2012-01-171-1/+1
| | | | | | | | | | * configure.ac (AC_CONFIG_FILES): Add 'contrib/Makefile'. * Makefile.am (SUBDIRS): Add 'contrib'.
* | Merge branch 'maint'Stefano Lattarini2012-01-161-29/+8
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * maint: recheck: fix interaction with "make -n" vala: avoid potential useless remakes (minor bugfix) vala: enhance tests recheck: behave better with non-GNU make check: separate .log -> .html conversion from core testsuite harness docs: deprecate .log -> .html conversion by parallel-tests tests: list some forgotten test cases in $(TESTS) maintcheck: consistency of list of test scripts build: explicitly declare some targets as .PHONY maint: remove obsolete/broken maintainer targets build: improve silencing of automake build system tests: move list of tests in its own Makefile fragment + Extra non-trivial edits: * tests/parallel-tests2.test: Obvious edits to merge the slightly inconsistent enhancements to coverage done in master with those done in maint. * lib/am/check.am (check-TESTS, recheck): Sweeping and rather complex changes to merge the considerable divergences between maint and master in a way that is meaningful and, where possible, retains the semantic changes from both maint and master.
| * maintcheck: consistency of list of test scriptsStefano Lattarini2012-01-161-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is basically a backport of commit 'v1.11-358-g7b6ab07' and its follow-ups. The possibility of easily checking that the list of test scripts listed in a Makefile equals that of the tests on the filesystem has proved itself so useful that it's worth taking the annoyance of backporting it to maint. * CheckListOfTests.am: New file, backported from master (commit 'v1.11-1736-g083a75b') with minor adjustments. (maintainer-check-list-of-tests): New target, check for consistency between the list of tests defined in the including Makefile and the list of tests on the filesystem. (clean-maintcheck-testslist-tmp): New rule, to clean up temporary files that might be left around by the rules associated with the previous target. (clean-local): Depend on it. * lib/Automake/tests/Makefile.am: Include `CheckListOfTests.am'. * tests/Makefile.am: Likewise. * Makefile.am (maintainer-check-list-of-test): New target, calling recursively into `tests/' and `lib/Automake/tests/', using ... (TEST_SUBDIRS): ... this new variable. (maintainer-check): Added dependency from the new target `maintainer-check-list-of-tests'.
| * build: explicitly declare some targets as .PHONYStefano Lattarini2012-01-151-1/+4
| | | | | | | | | | * Makefile.am (fetch, git-dist, git-release, maintainer-check): Declare as ".PHONY".
| * maint: remove obsolete/broken maintainer targetsStefano Lattarini2012-01-151-21/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.am (git-diff): Remove. First, we don't distribute diffs between an automake version and the next one anyway, so this target is pointless. Moreover, its recipe has been broken for quite a long time now, always generating an empty diff due to the spurious '$(PACKAGE)' argument that was passed to the "git diff" invocation. (path-check): Remove. The 'pathchk' program running in this check complains about any file with name longer than 14 characters, which is a ridiculously low limit for today standards. Also, we already had several test scripts (no less than 195!) that were exceeding that limit, and nobody ever complained (not even on MinGW/MSYS nor Cygwin).
| * build: improve silencing of automake build systemStefano Lattarini2012-01-151-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | In this change, we continue the silencing of the automake build system that has been started in commit v1.11-642-g17542c3, but which has been left incomplete there for an (absent-mindness) mistake. * Makefile.am (INSTALL): Silence the recipe. (automake, aclocal): Likewise, and improve them a little since we are at it. * lib/Automake/Makefile.am (Config.pm): Likewise.