Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| 0a52679a | 2013-01-01 18:03:53 | build: respect silent rules in generation of "amhello" example tarball * Makefile.am ($(srcdir)/doc/amhello-1.0.tar.gz): Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 7df8b28c | 2012-12-31 18:18:37 | maint: update copyright year for 2013 (in branch maint) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 8e921bf8 | 2012-12-30 10:33:23 | obsolete: better error message if AM_CONFIG_HEADER is used In Automake 1.13, the long-deprecated macro AM_CONFIG_HEADER (deprecated since 2002) has been removed in favour of AC_CONFIG_HEADERS. However, the removal was done without a proper deprecation period, and that caused packages upgrading to Automake 1.13 to fail with very unclear error messages, e.g.: configure.ac:4: warning: macro 'AM_CONFIG_HEADER' not found in library from aclocal, and: configure.ac:4: error: possibly undefined macro: AM_CONFIG_HEADER If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. from autoconf. In an attempt to mitigate this issue, we re-add an AM_CONFIG_HEADER definition that simply raises a *clear* error message when the macro is used. Report by Paolo Bonzini: <http://lists.gnu.org/archive/html/automake/2012-12/msg00039.html> * t/am-config-header-no-more.sh: New test. * t/list-of-tests.mk: Add it. * m4/obsolete-err.m4: New file, contain the new AM_CONFIG_HEADER "error-raising" definition, as well as the definition of the similarly obsolete macros 'AM_C_PROTOTYPES' and 'fp_C_PROTOTYPES', moved in from ... * m4/protos.m4: ... this file, which has thus been removed. * Makefile.am (dist_automake_ac_DATA): Adjust. * t/ansi2knr-no-more.sh: Likewise. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 3b503c42 | 2012-12-19 10:42:56 | cosmetics: comments fixlets in our Makefile * Makefile.am: Prefer '#' comments over '##' ones where it makes sense. Other minor style tweaks to comments about "updated later" variables. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 6179686f | 2012-12-19 10:40:13 | cosmetics: consistency changes in some make recipes * Makefile.am (install-exec-hook, uninstall-hook): Don't use extra quoting in variable assignments. More consistent use of whitespace. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| b8c7e3f7 | 2012-12-14 15:43:27 | Merge branch 'maint' * maint: sync: update files from upstream with "make fetch" gitignore: align with recent changes fixup: add dummy rule for ChangeLog generation in Makefile.am maint: no longer use AM_MAKEFLAGS in maintainer rules maint: use more GNU make features in maintainer rules maint: move maintainer make rules in maint.mk | ||
| 43340dfe | 2012-12-14 14:56:21 | fixup: add dummy rule for ChangeLog generation in Makefile.am So that automake won't complain about the missing ChangeLog. The real rule for ChangeLog generation is now in maint.mk (as it is maintainer-specific). * Makefile.am (ChangeLog): Dummy. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 97947ba4 | 2012-12-14 12:36:16 | maint: move maintainer make rules in maint.mk This is done for two reasons: 1. It will enable us to take advantage of more GNU make features in our maintainer-specific recipes, if we want to (and we probably will). 2. The Makefile.am won't have to be modified each time a maintainer rule needs to be changed or tweaked; this will prevent useless remaking of (in particular) the 't/testsuite-part.am' file. * maint.mk: New, several recipes, rules and variables for maintainer-specific tasks, extracted (with some tweaks) from ... * Makefile.am: ... this file. (EXTRA_DIST): Add 'maint.mk'. * GNUmakefile: Include 'maint.mk' after 'Makefile'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| de736a22 | 2012-12-14 10:43:21 | Merge branch 'maint' * maint: docs: fixlet about xz compression levels and command line options maint: more files excluded in 'update-copyright' maint: adapt 'update-copyright' recipe to the new $(FETCHFILES) format HACKING: update instructions to update the manuals at www.gnu.org maint: add an explicative comment in Makefile maint: factor out the name of the dir where web manuals are generated maint: rename rules to build/upload web manuals cosmetic: minor variable and rules reordering in Makefile.am docs: build the web manuals for CVS in the builddir, not in the srcdir release: automate uploading of web manuals in CVS docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc tests: avoid two spurious failures on FreeBSD tests: improve 'pkg-config' requirement | ||
| 33263a0f | 2012-12-14 09:50:27 | Merge branch 'improve-release-process' into maint * improve-release-process: HACKING: update instructions to update the manuals at www.gnu.org maint: add an explicative comment in Makefile maint: factor out the name of the dir where web manuals are generated maint: rename rules to build/upload web manuals cosmetic: minor variable and rules reordering in Makefile.am docs: build the web manuals for CVS in the builddir, not in the srcdir release: automate uploading of web manuals in CVS docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc tests: avoid two spurious failures on FreeBSD | ||
| a3cf9a8b | 2012-12-13 20:55:17 | maint: more files excluded in 'update-copyright' This will avoid the following spurious warnings when "make update-copyright" is run: .autom4te.cfg: warning: copyright statement not found .git-log-fix: warning: copyright statement not found .gitattributes: warning: copyright statement not found .gitignore: warning: copyright statement not found AUTHORS: warning: copyright statement not found THANKS: warning: copyright statement not found contrib/README: warning: copyright statement not found contrib/multilib/README: warning: copyright statement not found doc/amhello/README: warning: copyright statement not found lib/install-sh: warning: copyright statement not found lib/mkinstalldirs: warning: copyright statement not found m4/acdir/README: warning: copyright statement not found t/README: warning: copyright statement not found * Makefile.am (files_without_copyright): New. (update-copyright): Use it when computing '$exclude_list'. Also, skip any README file. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 6432f117 | 2012-12-13 20:46:09 | maint: adapt 'update-copyright' recipe to the new $(FETCHFILES) format This is a fixup for commit v1.12.5-27-g71ce1b4 of 2012-12-09, "fetch: improve, and reduce code duplication". * Makefile.am (update-copyright): Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 811d4f3d | 2012-12-13 13:22:52 | maint: add an explicative comment in Makefile * Makefile.am (web-manual-update): Here, about a slightly tricky feature of rsync(1) used in the recipe. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| f22f41c1 | 2012-12-13 12:09:32 | maint: factor out the name of the dir where web manuals are generated Just a minor refactoring to reduce duplication; no semantic change is intended. * Makefile.am (web_manual_dir): New. (web-manual, web-manual-update, clean-web-manual): Use it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| af431631 | 2012-12-13 12:02:33 | maint: rename rules to build/upload web manuals The new names are the same used by the similar-purpose rules provided by the 'top/maint.mk' makefile in gnulib (as of commit v0.0-7741-g4a8c422). No need to have gratuitous incompatibilities. * Makefile.am (web-manuals): Rename ... (web-manual): ... like this. (upload-web-manuals): Rename ... (web-manual-update): ... like this. (clean-web-manuals): Rename ... (clean-web-manual): ... like this. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 28d342cd | 2012-12-13 11:54:22 | cosmetic: minor variable and rules reordering in Makefile.am Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 41769ed8 | 2012-12-13 11:39:30 | docs: build the web manuals for CVS in the builddir, not in the srcdir We can do so using the '-I' option of the gendocs.sh script. Inspired by the 'web-manual' rule in the 'top/maint.mk' file provided by gnulib (as of commit v0.0-7741-g4a8c422) as customized by Bison in its 'cfg.mk' file (as of commit v2.6.5-1007-gf5fceda). * Makefile.am (web-manuals): Modify and simplify to take advantage of gendocs.sh's '-I' option. (upload-we-manuals): Accordingly adjust sanity checks and the rsync invocation in the recipe. (clean_texinfo_clutter_cmd): Delete this variable, it's no longer required. (clean-texinfo-clutter): Delete this phony target, it's no longer required. (clean-local): Don't depend on it. * configure.ac: Invoke AC_PROG_LN_S, since we want to use $(LN_S) in the new 'web-manuals' recipe. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| ad35a6ba | 2012-12-13 11:02:59 | release: automate uploading of web manuals in CVS This is partly inspired to the 'gnu-web-doc-update' script from gnulib. Unfortunately, we can't use that script directly, because as of now it assumes a build system integrated with gnulib. * Makefile.am (upload-web-manuals): New .PHONY rule. (RSYNC, CVS, CVSU, CVS_USER, WEBCVS_ROOT): New variables, used by the new rule. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| d7a59576 | 2012-12-09 21:55:32 | Merge branch 'maint' * maint: docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc maintcheck: prefer '$(am__cd)' over plain 'cd' fetch: improve, and reduce code duplication docs: add rule to generate manuals for www.gnu.org docs: copy the 'gendocs.sh' script from Texinfo CVS repository sync: update files from upstream with "make fetch" release: generate a stub for the release announcement release: distinguish major and minor releases tests: avoid two spurious failures on FreeBSD | ||
| d47000c6 | 2012-12-08 21:45:53 | maintcheck: prefer '$(am__cd)' over plain 'cd' In a couple of rules in out own build system, as suggested by the maintainer check 'sc_cd_relative_dir'. * Makefile.am (web-manuals, clean_texinfo_clutter_cmd): Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 71ce1b47 | 2012-12-08 21:15:47 | fetch: improve, and reduce code duplication * Makefile.am (WGET_SV_CVS, WGET_SV_GIT_CF, WGET_SV_GIT_AC, WGET_SV_GIT_GL): Delete. (SV_CVS, SV_GIT_CF, SV_GIT_AC, SV_GIT_GL): New. (fetch): Simplify and enhance. (update-copyright): Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 49fb69d8 | 2012-12-08 20:11:39 | docs: add rule to generate manuals for www.gnu.org Less clerical work to do by hand. * Makefile.am (web-manuals): New rule. (clean_texinfo_clutter): New macro. * clean-web-manuals, clean-texinfo-clutter: New cleaning rules. (clean-local): Depend on them. * .gitignore: Update. * HACKING: Adjust instructions for generation of manuals. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 6e8997d8 | 2012-12-08 19:49:33 | docs: copy the 'gendocs.sh' script from Texinfo CVS repository As well as the 'gendocs_template' file. And enhance the "make fetch" target to keep them synced. It's better than having to fetch these files by hand each time a release is to be made. * Makefile.am (FETCHFILES): List 'gendocs.sh' and 'gendocs_template'. (fetch): Fetch them, into 'lib/'. (EXRA_DIST): Distribute them. * HACKING: Adjust instructions for generation of manuals. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 234a9cad | 2012-12-08 18:45:42 | release: generate a stub for the release announcement It's much better than having to write it my hand each time; after all, most of it is either boilerplate or a cope of NEWS entries. * Makefile.am (determine_release_type): Also set the shell variable '$announcement_type' appropriately. (print-release-type): Print the value of this new variable as well. (announcement): New phony target, generate a files with the same name. The recipe uses the shell variable '$announcement_type'. (CLEANFILES): Clean it. (PACKAGE_MAILINGLIST): New make macro, used when generating the 'announcement' file. * HACKING: Explain how to take advantage of the new convenience target. * .gitignore: Ignore the 'announcement' file. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 24508503 | 2012-12-08 17:26:58 | release: distinguish major and minor releases This is mostly a preparatory change, in view of future improvements in our release process. * Makefile.am (determine_release_type): Also distinguish between major and minor releases, with the help of ... (stable_major_version_rx, stable_minor_version_rx): ... these new macros. (stable_version_rx): Remove, it's obsolete now. (version_rx): Rename ... (base_version_rx): ... like this, and adjust. (print-release-type): New target; helps in debugging the code that determines the release type. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 92bd5d25 | 2012-11-15 16:15:27 | fixup: Automake installation works again By renaming 'dist_automake_ac_DATA' to 'nobase_dist_automake_ac_DATA' in a recent patch, we have broken the Automake installation, since m4 files that were expected to be installed in '${prefix}/aclocal-${APIVERSION}' are now being installed in '${prefix}/aclocal-${APIVERSION}/m4' instead. Fix this mess. * Makefile.am (nobase_dist_automake_ac_DATA): Rename ... (dist_automake_ac_DATA): ... like this. And move 'm4/internal/ac-config-macro-dirs.m4' ... (dist_automake_internal_ac_DATA): ... here. (automake_internal_acdir): New, simply defined to '$(automake_acdir)/internal'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| f0dd2dee | 2012-11-15 12:24:27 | aclocal: AC_CONFIG_MACRO_DIRS: work around autom4te option parsing bugs The autom4te program coming with autoconf 2.68 and earlier had a bug which caused the "-" command line argument (with which we tell it to read some input from from standard input) to aways be pushed at the *end* of the command line, regardless of where the user specified it (that bug was fixed by autoconf commit 'v2.68-120-gf4be358', "getopt: new Autom4te::Getopt module"). This broken semantics conflict with our usage in aclocal, where we need to pass some input to the invoked autom4te program early, and have so far been using the stdin to do so. Now we start using an external file instead. * m4/internal/ac-config-macro-dirs.m4: New file, contain a fallback definition of the AC_CONFIG_MACRO_DIRS macro for older autoconf releases. * aclocal.in (trace_used_macros): When invoking autom4te, use that file instead of "abusing" standard input. * Makefile.am (dist_automake_ac_DATA): Rename ... (nobase_dist_automake_ac_DATA): ... like this. Add 'm4/internal/ac-config-macro-dirs.m4' to it. * t/aclocal-acdir.sh: Adjust to avoid spurious failures. Helped-by: Eric Blake <eblake@redhat.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 153f861b | 2012-10-31 12:41:13 | Merge branch 'maint' * maint: vala tests: source test-init.sh, not ./defs tests: fix a spurious typo-related failure tests: remove spurious leftover use of 'Exit' tests: can check our recipes avoid trailing backslashes vala: improve comments to AM_PROG_VALAC news: update w.r.t. recent vala changes vala: if no proper compiler found, set $(VALAC) to 'valac' vala: AM_PROG_VALAC should not produce an error for tool-old valac docs: document recent changes to AM_PROG_VALAC tests: enhance tests on AM_PROG_VALAC vala: style fixes in vala.m4 vala: add action arguments, for when no proper vala compiler is found Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| aecd1be6 | 2012-10-28 14:02:46 | tests: can check our recipes avoid trailing backslashes This is related to commit v1.11-1704-g254227b of 2012-05-01, "parallel-tests: avoid trailing backslashes in make recipes", and automake bug#10436. Recipes with a trailing backslash character (possibly followed by blank characters only) can cause spurious syntax errors with at least older bash versions (e.g., bash 2.05b), and can be potentially be unportable to other weaker shells. So provide a target that runs the testsuite looking for this kind of breakage (without requiring a real bugged shell). * t/ax/shell-no-trail-bslash.in: New, a "shell" that chokes on '-c' commands having a trailing '\' (possibly followed by whitespace only). * Makefile (t/ax/shell-no-trail-bslash): Generate this script from it. (noinst_SCRIPTS, CLEANFILES): Add it. (EXTRA_DIST): Add 't/ax/shell-no-trail-bslash.in'. (check-no-trailing-backslash-in-recipes): New target, runs the testsuite with 'shell-no-trail-bslash' as the CONFIG_SHELL, to catch possible recipes having a trailing backslash character (possibly followed by * .gitignore: Update. * t/self-check-shell-no-trail-bslash.sh: New testsuite self-check. * t/parallel-tests-trailing-bslash.sh: Remove as obsolete. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| b0f45569 | 2012-10-27 14:23:40 | Merge branch 'maint' * maint: tests: prepare to move ./defs to t/ax/test-init.sh | ||
| 0610fc8e | 2012-10-27 12:59:41 | tests: prepare to move ./defs to t/ax/test-init.sh We don't do this in a sweeping passage, because that would cause endless headaches in the synchronization between the maint, master and ng/master branches. Instead, we setup our framework to allow test scripts to work by sourcing either './defs' or 'test-init.sh', so that we'll be able to make the transition gradual and painless. * t/ax/test-init.sh: New, copied from the previous ./defs file. * defs: Simply work by sourcing the new file. * Makefile.am (dist_noinst_DATA): List the new file. * t/README: Adjust to mandate the sourcing of 'test-init.sh' rather than of './defs'. * t/c-demo.sh: Source 'test-init.sh' instead of ./defs. This is done to verify our new setup actually works. * t/ac-output-old.tap: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| df23dafc | 2012-10-22 16:14:49 | compat: reinstate AM_PROG_MKDIR_P, for gettext Do not remove AM_PROG_MKDIR_P just yet. gettext (latest from git) still AC_REQUIRE's AM_PROG_MKDIR_P via its intl.m4 and po.m4 files, which are pulled into *many* projects. When I try to build one of those projects (coreutils) using the latest from automake.git/master, I see this failure: $ aclocal -I m4 configure.ac:477: warning: AM_PROG_MKDIR_P is m4_require'd \ but not m4_defun'd m4/po.m4:23: AM_PO_SUBDIRS is expanded from... m4/gettext.m4:57: AM_GNU_GETTEXT is expanded from... configure.ac:477: the top level That is because AM_PROG_MKDIR_P was removed (via commit v1.12-20-g8a1c64f) in preparation for the next release of automake. * NEWS: Remove the paragraph that announced the removal of AM_PROG_MKDIR_P. * Makefile.am (dist_automake_ac_DATA): Add m4/mkdirp.m4. * m4/mkdirp.m4: Re-add file. * t/mkdirp-deprecation.sh: Likewise. * t/list-of-tests.mk: Add it. * automake.in: Restore removed code, and adjust comments, s/1.13/1.14/ to reflect new plan for removal. * doc/automake.texi (Obsolete Macros): Restore the section, but now with only one entry: the one for AM_PROG_MKDIR_P. | ||
| 3e472de1 | 2012-08-05 11:06:16 | Merge branch 'elisp-work' * elisp-work: news: document all the recent elisp-related changes and improvements coverage: byte-compiling elisp files in different subdirectories elisp: honour AM_ELCFLAFS and ELCFLAGS in byte-compilation elisp: --batch implies -q, remove -q elisp: support elisp files in subdirectories properly elisp: simplify suffix rules using emacs '-L' option elisp: no need to "absolutize" $(srcdir) and $(builddir) ... elisp: prefer $(builddir) files over $(srcdir) ones elisp: use suffix rules, get rid of 'elisp-comp' script (mostly a rewrite) coverage: elisp path contains $(srcdir) and $(builddir) coverage: emacs lisp files in subdirectories | ||
| e4fbe2ab | 2012-07-30 11:09:27 | Merge branch 'maint' * maint: build: fix build in VPATH setup gen-tests: simplify sourcing of helper shell files | ||
| a38534b1 | 2012-07-30 11:01:09 | build: fix build in VPATH setup * Makefile.am (t/ax/test-defs.sh): Ensure the 't/ax' directory exists, before trying to create 'test-defs.sh' in there. This is required in VPATH builds. Reported-by: Akim Demaille <akim@lrde.epita.fr> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 11927353 | 2012-07-26 18:27:15 | typofix: in a comment in Makefile.am Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 106428fe | 2012-07-26 18:16:47 | Merge branch 'maint' * maint: (38 commits) maintcheck: fixup list of files in $(xdefs) tests: never source test-defs.sh directly, source test-lib.sh instead runtest: sanitize test environment tests: remove an obsolescent self test tests: "am_using_tap=yes" -> "am_test_protocol=tap" tests: protect test libs against multiple inclusion configure: testsuite shell can return early from "dot-sourced" files tests: move sanitization and "Bournification" in the generic test lib tests: source test defs in the generic test lib test defs: no need to re-add $srcdir/t/ax to $PATH tests: split test libs into "generic" and "automake-specific" test setup: move actual calling of testsuite setup in ./defs test setup: merge definitions of function for simple tests test init: refactor: new function 'am_test_setup' test init: refactor: move displaying of debugging info later test init: refactor: new function 'am_setup_testdir' test init: refactor: new function 'am_set_exit_traps' configure: testsuite shell set exit traps in shell functions test init: refactor: new function 'am_exit_trap' test init: refactor: new function 'process_requirements' ... Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| db188c29 | 2012-07-26 11:04:31 | runtest: sanitize test environment * runtest.in: Here, similarly to what is done by AM_TESTS_ENVIRONMENT in Makefile.am, unset variables that should be under the complete control of the test framework, and that could create havoc if inherited from the environment. This remove the need to check against possible environment "pollution" ... * t/ax/test-defs.in: ... in here. * Makefile.am (AM_TESTS_ENVIRONMENT): Add a comment about the need of synchronization with 'runtest.in'. * t/self-check-env-sanitize.tap: Remove as obsolete. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| e82c9156 | 2012-07-26 10:35:09 | tests: "am_using_tap=yes" -> "am_test_protocol=tap" And similarly, "am_using_tap=no" -> "am_test_protocol=none". The new '$am_test_protocol' name is clearer, and will allow the easy addition of further test protocols in the future. This is not truly relevant for automake, but we are trying to make some parts of our testsuite framework as general as possible, in view of a future move to a more generic project like Gnulib. * Makefile.am, t/ax/am-test-lib.sh, t/ax/test-defs.in, t/ax/test-lib.sh, t/self-check-env-sanitize.tap, t/self-check-tap.sh: Adjust. * syntax-checks.mk (sc_tests_obsolete_variables): Add 'am_using_tap' to the list of obsolete variables to check against. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| d8b3c5e4 | 2012-07-26 12:21:40 | tests: protect test libs against multiple inclusion * t/ax/test-lib.sh, t/ax/am-test-lib.sh: Return early if already sourced. Use the witness variables '$test_lib_sourced' and '$am_test_lib_sourced', respectively, for this purpose. * runtest.in, Makefile.am (AM_TESTS_ENVIRONMENT): Unset 'test_lib_sourced' and 'am_test_lib_sourced', to avoid interferences from the environment. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 55fb7140 | 2012-07-25 22:49:02 | tests: split test libs into "generic" and "automake-specific" This is the first step in the quest to merge the generically useful parts of our test suite framework in a more generic project, like Gnulib. Time will tell if we'll succeed, and whether the success will be worth the extra hassle. * t/ax/test-init.sh: Split out ... * t/ax/am-test-lib.sh, t/ax/test-lib.sh: ... into these two tests. * defs, Makefile.am: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 3bb5a901 | 2012-07-25 21:04:30 | test setup: merge definitions of function for simple tests * t/ax/plain-functions.sh: Delete, moving the definitions of ... ($stderr_fileno_): ... this variable ... (warn_, fail_, skip_, skip_all_, fatal_, framework_failure_): ... and these functions ... * t/ax/test-init.sh: ... in here. This allow us to use those functions earlier in this file (instead of having to duplicate their behaviour with inlined code). The TAP-based tests are still able to override these functions later to their TAP-enhanced equivalents when 'tap-functions.sh' is sourced. * Makefile.am (dist_noinst_DATA): Remove 't/ax/plain-functions.sh'. * t/ax/tap-functions.sh: Adjust a comment. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| ecbceb3e | 2012-07-25 18:14:23 | test defs: move in 't/ax/test-defs.sh' We can do so with minimal churn, now that the early setup of $PATH in both 'runtest' and AM_TESTS_ENVIRONMENT allow the '.' built-in to find to-be-sourced shell scripts in 't/ax' automatically, both in in-tree and VPATH builds. With this change, we take another step forward a more rational and "segregated" organization of our testsuite framework. * defs-static.in: Rename ... * t/ax/test-defs.in: ... like this, and adjust. * Makefile.am, syntax-checks.mk, t/README, gen-testsuite-part, t/tests-init.sh, t/ax/tap-setup.sh, t/tap-summary.sh, .gitignore, t/testsuite-summary-color.sh, t/testsuite-summary-count.sh, t/self-check-tap.sh, defs: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 69f0f0a1 | 2012-07-25 23:06:06 | tests: update PATH early from AM_TESTS_ENVIRONMENT and runtest Because the POSIX standards mandate that sourcing a file with ". FILE" will cause FILE (assuming it is a relative containing no slashes) to be looked for in PATH, such a move will allow us to simplify our sourcing of shell testing libraries like (currently) 't/ax/test-init.sh' and 'defs', and to modularize and re-organize them better in the feature, with minimal churn. * runtest.in, Makefile.am (AM_TEST_ENVIRONMENT): Prepend $(abs_srcdir)/t/ax and $(abs_builddir)/t/ax (in that order) to PATH; do so avoiding repetition in the common case of non-VPATH builds. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 2dde586a | 2012-07-25 16:31:17 | build: auxiliary testsuite files/scripts built by "make all" This will allow the developers to run a tests case by hand out of a newly extracted tarball simply doing: $ ./configure && make $ ./runtest t/the-test-case.sh while before this change one has to resort to: $ ./configure && make && make check TESTS= $ ./runtest t/the-test-case.sh or, with some non-GNU makes, even: $ ./configure && make && make check TESTS= AM_MAKEFLAGS="TESTS=" $ ./runtest t/the-test-case.sh This come very handy sometimes, especially when doing one-shot debugging. Admittedly not a big deal, but one less friction in the build system is always nice. * Makefile.am (check_SCRIPTS, dist_check_DATA, nodist_check_DATA): Move their content to ... (noinst_SCRIPTS, dist_noinst_DATA, nodist_noinst_DATA): ... these variables. Adjust comments. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 42d9439d | 2012-07-25 19:06:22 | perf tests: reorganize * t/list-of-tests.mk (handwritten_TESTS): Don't list ($perf_TESTS) in here anymore. * Makefile.am (EXTRA_DIST): Add them explicitly. (perf): New target, run the performance tests and save the logs of the ones with unexpected results in the file 't/perf/test-suite.log', which is thus ... (PERF_TEST_SUITE_LOG): ... defined in this variable ... (CLEANFILES): ... and added to this. (test_subdirs): Remove 't/perf': the tests in there are no more listed in $(TESTS). * t/ax/test-init.sh: Don't explicitly skip "perf" test here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 226be35f | 2012-07-14 21:52:43 | elisp: use suffix rules, get rid of 'elisp-comp' script (mostly a rewrite) Motivated by automake bug#11806. Traditionally, automake byte-compiled emacs-lisp '.el' files by invoking 'elisp-comp' on all of them in a bulk; this involved complex timestamping and file-locking logic. It was also brittle in any slightly-unusual setup, because 'elisp-comp' operated by copying all of the elisp files to be compiled into a temporary sub-directory and compiling them in there, the copying the resulting byte-compile files back in the build directory. This patch removes all of that juggling and chicanery in favour of defining a much simpler '.el.elc' suffix rule. Not only this is simpler, but it also interacts better with "make -jN" calls, which are becoming more and more common and useful on today's increasingly multicore systems. * Makefile.am (dist_script_DATA): Remove 'elisp-comp'. * automake.in (@common_files): Likewise. (handle_emacs_lisp): Do not require 'elisp-comp'. * doc/automake.texi: Remove references to 'elisp-comp'. * lib/am/lisp.am: Define elisp compilation via a suffix rule; this basically amounts to a complete re-write of the lisp byte-compilation rules. * lib/elisp-comp: Remove. * t/add-missing.tap: Remove elisp-comp test. * t/dist-auxdir-many-subdirs.sh: Remove reference to elisp-comp. * t/primary-prefix-invalid-couples.tap: Likewise. * t/primary-prefix-valid-couples.sh: Likewise. * t/lisp4.sh: Remove reference to elc-stamp. * t/lisp5.sh: Likewise. * t/lisp6.sh: Likewise. * t/lisp3.sh: Likewise. Also remove the recompilation check that involves a (message) call. * t/lisp7.sh: Remove check for "Warnings can be ignored". Remove reference to elc-stamp. * t/lisp8.sh: Likewise. * t/lispdry.sh: Remove references to elc-stamp. Acked-by: Stefano Lattarini <stefano.lattarini@gmail.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 7eccbf44 | 2012-07-13 14:58:17 | Merge branch 'maint' * maint: news: mention fixed testsuite weaknesses news: bump, for future 1.12.3 tests: verify the shell test scripts are syntactically valid tests: don't use C instead of C++ compiler on case-insensitive platforms tests: avoid spurious TAP errors on Mac OS X 10.7 tests: fix spurious failure in aclocal7.sh on fast machines Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 9df354ac | 2012-07-11 10:51:15 | tests: verify the shell test scripts are syntactically valid Fixes automake bug#11898. This measure of extra safety is mostly motivated by the fact that some shells (at least some versions of Bash in the 3.x release series, one of which serves as /bin/sh on Mac OS X 10.7, as well as Bash 4.0 and the /usr/xpg4/bin/sh shell from Solaris 10) erroneously exit with exit status 0 upon encountering a syntax error, if an exit trap is sett (as it is in our test scripts). * Makefile.am (check-tests-syntax): New, check that the shell test scripts listed in $(TESTS) are syntactically correct. (.PHONY, check-local): Depend on it. * t/self-check-exit.tap : Remove checks verifying that a script exits with non-zero status upon encountering a syntax error; as explained above, we can't depend on that. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 15b8b62a | 2012-07-07 12:55:29 | Merge branch 'maint' * maint: tests: move 'runtest' into the top-level directory | ||
| ea93d8d0 | 2012-07-07 12:08:05 | tests: move 'runtest' into the top-level directory Move our wrapper script 'runtest' (meant to allow the execution of Automake test cases from the command line) from the 't/ax/' directory to the top-level one. This makes the script easier to find and to invoke. Much more importantly, our DejaGNU-checking test cases won't try anymore to use that script instead of the 'runtest' program provided by DejaGNU (that happened because '$(srcdir)/t/ax/' is automatically added early to the $PATH variable in our test cases), which was causing spurious SKIPs. * t/ax/runtest.in: Move ... * runtest.in: ... here. * Makefile.am, t/README, .gitignore: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| cbd1a604 | 2012-07-07 11:54:28 | Merge branch 'maint' * maint: cosmetics: rename t/ax/test-runner => t/ax/runtest fixup: another "make recheck" failure with BSD make test runner: work correctly in VPATH setups compat: automake should define $(mkdir_p), for backward compatibility coverage: test that AM_PROG_MKDIR_P and $(mkdir_p) still works tests init: don't automatically re-execute tests with a POSIX shell yacc tests: fix spurious failure with parallel make tests: ignore minor 'recheck' regression for BSD make tests: don't clutter the top-level dir with temporary test directories tests: avoid spurious failures when @MKDIR_P@ points to "install-sh -d" lisp: better support of VPATH builds news: fixlets and updates + Extra non-trivial edits: * NEWS: State that $(mkdir_p) is still provided as an alias to $(MKDIR_P), for (partial) backward-compatibility. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 5197aba1 | 2012-07-06 23:42:11 | cosmetics: rename t/ax/test-runner => t/ax/runtest The latter is shorter and clearer. Better to do the rename early, before other developers or contributors begin to get used to the 'test-runner' name. * t/ax/test-runner.in: Rename ... * t/ax/runtest.in: ... like this. * Makefile.am, t/README, .gitignore: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| a5edf3d6 | 2012-07-06 22:17:59 | test runner: work correctly in VPATH setups Due to a "feature" of AC_CONFIG_FILES, because 't/ax/test-runner.in' is in a subdirectory, the '@srcdir@' value that is AC_SUBST'd in it gets tweaked to contain as much '..' components as are the directory components of 't/ax/test-runner'. Because our build system operates in a non-recursive setup, this substitution is wrong; for example, the final 't/ax/test-runner' build in a VPATH builds where the source directory is ".." contains the line: : ${srcdir='../../../t/ax'} instead of the expected (and correct): : ${srcdir='../t/ax'} We solve the issue by building 't/ax/test-runner' with a Makefile recipe instead of config.status substitutions; this is already done for other testsuite-related files, like 'defs-static'. * configure.ac (AC_CONFIG_FILES): Don't build 't/ax/test-runner' anymore. * Makefile.am (t/ax/test-runner): New rule. (EXTRA_DIST): Add 't/ax/test-runner.in'. (CLEANFILES, noinst_SCRIPTS): Add 't/ax/test-runner'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| b6e6409a | 2012-07-06 12:24:33 | tests init: don't automatically re-execute tests with a POSIX shell I've unwittingly broken support for that feature *again* in some of my recent testsuite tweaking. In this case, the re-execution code works correctly when the tests are executed with a POSIX shells, but breaks when they are invoked by an old-style Bourne shells (e.g., /bin/sh on Solaris). It's time to face it: that feature is too much brittle, and too seldom used (because the Makefile takes care of running the tests with the correct shell anyway, so that a breakage is only experienced when running the tests by hand). It just don't remain working for long, not when we often touch the testsuite setup (which we are going to do again when we'll try to move part of our testsuite framework to Gnulib, or a similar project). So, instead of trying to be extra-smart and automatically re-execute the tests with the correct shell, we now offer a simple wrapper script that the user can employ to run the test scripts with the proper shell. And while we are at it, we write this wrapper to also deal with TAP tests in a better way, running them through the prove(1) utility, so that their results are correctly recognized and reported. * t/ax/test-runner.in: New file; the wrapper script we were talking about. * configure.ac (AC_CONFIG_FILES): Process it into 't/ax/test-runner'. * .gitignore: Add 't/ax/test-runner'. * defs: Remove code for automatic re-execution of the scripts with the correct shell. This file now just a very thin layer around 'defs-static' and 't/ax/test-init.sh'. * t/README: Adjust, and remove or fix some imprecise or outdated text in the process (like "... test scripts are written with portability in mind, so that they should run with any decent Bourne-compatible shell ..." ). * Makefile.am (AM_TESTS_ENVIRONMENT): No need to export 'AM_TESTS_REEXEC' to "no" anymore. * t/self-check-explicit-skips.sh: Likewise. * t/self-check-exit.tap: Likewise. * t/self-check-me.tap: Likewise. * t/self-check-dir.tap: Likewise. * t/self-check-reexec.tap: Remove as obsolete. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| bbd19242 | 2012-07-03 23:22:46 | maintcheck: fix spurious failure in 'maintainer-check-list-of-tests' * Makefile.am (test_subdirs): Add 'contrib/t', otherwise we would get a spurious error like: List of tests in Makefile an on filesystem differ + diff -u in-makefile on-filesystem --- tests-in-makefile-list.tmp 2012-07-03 23:07:47.000000000 +0200 +++ tests-on-filesystem-list.tmp 2012-07-03 23:07:47.000000000 +0200 @@ -1,7 +1,3 @@ -contrib/t/help-multilib.sh -contrib/t/multilib.sh -contrib/t/parallel-tests-html-recursive.sh -contrib/t/parallel-tests-html.sh t/ac-output-old.tap t/acloca10.sh t/acloca11.sh make: *** [maintainer-check-list-of-tests] Error 1 Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 51ea4f3f | 2012-07-03 21:56:08 | build: fix cleaning of test directories in contrib (and in t/perf) * Makefile.am (clean-local-check): Update recipe to cater to the fact that some tests using a temporary directory have been placed in other directories that the 't/' directory (for the moment, at least 't/perf' and 'contrib/t'). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| d7d983b0 | 2012-07-02 17:24:24 | tests: tests for stuff in contrib goes in 'contrib/t' * t/help-multilib.sh: Move ... * contrib/t/help-multilib.sh: .. here. Remove a now-obsolete "FIXME" comment. * t/multlib.sh: Move ... * contrib/t/multilib.sh: .. here. Remove a now-obsolete "FIXME" comment. * t/parallel-test2.sh: Move ... * contrib/t/parallel-tests-html.sh: .. here. Remove a now-obsolete "FIXME" comment. * contrib/t/local.am: New, basically defining the list of tests for stuff in 'contrib/'. * t/list-of-tests.mk, Makefile.am: Adjust. * .gitignore: Update. * syntax-checks.mk (xtests): Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 22786e46 | 2012-07-02 15:04:12 | Merge branch 'user-recursive-targets' * user-recursive-targets: recursion: support user-defined recursive targets tests: rename 'recurs*.sh' to 'var-recurs*.sh' tests: minor improvements to 'recurs*.sh' | ||
| 3da1457d | 2012-06-12 14:48:12 | recursion: support user-defined recursive targets The user can now define his own recursive targets that recurse in the directories specified in $(SUBDIRS). That can be done by specifying the name of such targets in invocations of the new 'AM_EXTRA_RECURSIVE_TARGETS' m4 macro. The API goes like this: $ cat configure.ac AC_INIT([pkg-name], [1.0] AM_INIT_AUTOMAKE AM_EXTRA_RECURSIVE_TARGETS([foo]) AC_CONFIG_FILES([Makefile sub/Makefile]) AC_OUTPUT $ cat Makefile.am SUBDIRS = sub foo-local: @echo This will be run by "make foo". $ cat sub/Makefile.am foo-local: @echo This too will be run by a "make foo" issued either in @echo the 'sub/' directory or in the top-level directory. Like for the "default" recursive targets (e.g., 'all' and 'check'), the user-defined recursive targets descend in the $(SUBDIRS) in a depth-first fashion, and process '.' last (unless that is explicitly specified in $(SUBDIRS)). * NEWS, doc/automake.texi: Document the new feature. * automake.in (@extra_recursive_targets): New global variable. (scan_autoconf_traces): Trace macro '_AM_EXTRA_RECURSIVE_TARGETS'. (handle_user_recursion): New subroutine; among other things, it defines the new internal '$(am__extra_recursive_targets)' make variable, and the '*-am', '*-local' and '*-recursive' targets associated with the user-specified user recursive targets. (generate_makefile): Call the new subroutine. * lib/am/subdirs.am (am__recursive_targets): New internal make variable, listing all of '$(RECURSIVE_TARGETS)', '$(RECURSIVE_CLEAN_TARGETS)' and '$(am__extra_recursive_targets)' together. (AM_RECURSIVE_TARGETS): Adjust the definition of this variable ... (.PHONY, .MAKE): ... and the list of dependencies of these special targets to take advantage of the new '$(am__recursive_targets)' variable. ($(am__recursive_targets)): New targets, superseding ... ($(RECURSIVE_TARGETS), $(RECURSIVE_CLEAN_TARGETS)): ... these, and inheriting their rules. This way, the rules to handle recursion for built-in recursive targets (e.g., 'all', 'dvi', 'clean') and for user defined recursive targets are the same. * m4/extra-recurs.m4: New file, contain definition of new macro 'AM_EXTRA_RECURSIVE_TARGETS' and '_AM_EXTRA_RECURSIVE_TARGETS'. These macros are basically dummy, only used for tracing by automake. * m4/Makefile.am (dist_automake_ac_DATA): Update. * t/recurs-user.sh: New test. * t/recurs-user2.sh: Likewise. * t/recurs-user-deeply-nested.sh: Likewise. * t/recurs-user-indir.sh: Likewise. * t/recurs-user-keep-going.sh: Likewise. * t/recurs-user-many.sh: Likewise. * t/recurs-user-no-subdirs.sh: Likewise. * t/recurs-user-no-top-level.sh: Likewise. * t/recurs-user-override.sh: Likewise. * t/recurs-user-phony.sh: Likewise. * t/recurs-user-wrap.sh: Likewise. * t/remake-recurs-user.sh: Likewise. * t/list-of-tests.mk: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| ca9b4d33 | 2012-07-01 10:14:23 | Merge branch 'maint' * maint: parallel-tests: silence an overly verbose recipe tests: fix some uses of 'Exit', where 'exit' should now be used instead maintcheck: test scripts should be executable, check for that | ||
| dc5aff42 | 2012-06-30 23:26:17 | maintcheck: test scripts should be executable, check for that * syntax-checks.mk (sc_tests_executable): Here, in this new check. (syntax_check_rules): Add it. * Makefile.am (dist-hook): Drop, no need to make test cases executable anymore. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 5d99776c | 2012-06-28 18:38:02 | Merge branch 'maint' * maint: tests init: don't bother allowing '$me' to be overridable tests init: typofixes in comments Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 07321606 | 2012-06-28 18:21:33 | tests init: don't bother allowing '$me' to be overridable We once used that feature in our wrapper tests; but now (and probably even since commit 'v1.11-1308-g375f23d' of 2011-09-08, "testsuite: revamp generation of autogenerated tests") it is not needed anymore. By removing it we can simplify our growingly complex testsuite framework a little. * t/ax/test-inist.sh ($me): Do not initialize it here (and only if not already set), instead ... * defs-static.in ($me): ... initialize it here unconditionally. Do not check anymore that $me doesn't come from the environment: that wouldn't cause any problem now. Now that '$me' is defined early, prefer it over 'argv0' in early error messages, both here ... * defs: ... and here. * Makefile.am (AM_TESTS_ENVIRONMENT): Do not bother "nullifying" $me anymore. * t/self-check-env-sanitize.tap: Adjust. * t/self-check-me.tap: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 3b83966e | 2012-06-22 18:55:01 | Merge branch 'maint' * maint: tests: prefer using 'is_newest' over 'ls -t' hacks tests: implement is_newest as an auxiliary script, not shell function tests: fix some spurious failures in VPATH setup tests: work in VPATH setup again | ||
| dc18830f | 2012-06-22 16:18:28 | tests: implement is_newest as an auxiliary script, not shell function 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> | ||
| 062aeb24 | 2012-06-22 14:52:21 | Merge branch 'maint' * maint: tests: automatic re-execution works for non-POSIX shells too tests: use more POSIX shell features our test scripts + Extra non-trivial edits: * t/ax/test-init.sh: Apply the diffs between past versions of 'defs' in maint and in master; i.e., remove handling of $required entries 'texi2dvi-o' and 'makeinfo-html', and adjust to the fact that the parallel testsuite harness is now the default. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 3a1a8c6d | 2012-06-22 11:40:39 | tests: automatic re-execution works for non-POSIX shells too 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> | ||
| e92bd2e7 | 2012-06-02 09:54:17 | Merge branch 'maint' * maint: news: document deprecation of configure.in news: put planned backward compatibilities early sync: update files from upstream with "make fetch" maint: deprecate 'configure.in' as autoconf input maint: post-release minor version bump release: stable release 1.12.1 copyright: update copyright years in a couple of files tests: avoid spurious failures with Solaris 9 cscope program maintcheck: fix a spurious failure perf: beginning of a performance testsuite aclocal: declare function prototypes, do not use '&' in function calls news: support for configure.in will be dropped in future automake versions tests: fix botched heading comments in 'lex-clean-cxx.sh' [ng] maintcheck: some tweaks and fixlets help: fix a typo in the list of warning categories maint: version bump after beta release release: beta release 1.12.0b (will become 1.12.1) release: remove overly picky check Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 9a7a83ba | 2012-06-01 11:49:16 | maintcheck: fix a spurious failure * 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> | ||
| a36a8f6e | 2012-05-19 15:11:36 | release: remove overly picky check * 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> | ||
| 7b6129b9 | 2012-05-18 14:31:36 | Merge branch 'maint' * maint: tests: use 'parallel-tests' Automake option by default doc: fix location of Automake's own test-suite.log file yacc tests: avoid a spurious failure with Sun C++ 5.9 self tests: cater for /bin/ksh symlinked to Zsh tests: fix spurious failures due to dpkg install-info Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 7b142a7b | 2012-05-15 16:12:09 | tests: use 'parallel-tests' Automake option by default 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> | ||
| 12405c9f | 2012-05-08 12:49:36 | Merge branch 'maint' * maint: 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 fixup: distribute t/README init: warn against obsolete usage of AM_INIT_AUTOMAKE Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 33c59ec5 | 2012-05-07 22:11:28 | Merge branch 'testsuite-saner-shell' into maint * 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 | ||
| 21d1b934 | 2011-12-28 13:23:31 | tests: shell running test scripts is now named AM_TEST_RUNNER_SHELL 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> | ||
| 1cab373b | 2012-05-06 13:33:09 | fixup: distribute t/README 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> | ||
| 140ce85e | 2012-05-01 14:04:56 | Merge branch 'maint' * maint: news: fix confusing wording news: fixed weaknesses in build system and testsuite bootstrap: consistently use correct copyright year fixup: remove leftover "TERM=ansi" definition in 't/color.sh' | ||
| c1c27cf1 | 2012-05-01 12:43:22 | bootstrap: consistently use correct copyright year 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> | ||
| 15646710 | 2012-04-29 22:45:00 | Merge branch 'mkdirp-remove' into master * mkdirp-remove: AM_PROG_MKDIR_P: remove as obsolete Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 8a1c64fe | 2012-04-06 11:24:11 | AM_PROG_MKDIR_P: remove as obsolete Support for the obsolescent 'AM_PROG_MKDIR_P' m4 macro (and its output variable '$(mkdir_p)') has in the documentation and with runtime warning since Automake 1.12.1. It's now time to remove it. * automake.in (scan_autoconf_traces): Remove special handling of 'AM_PROG_MKDIR_P'. * m4/mkdirp.m4: Delete. * Makefile.am (dist_automake_ac_DATA): Remove it. * t/mkdirp-deprecation.sh: Delete. * t/list-of-tests.mk: Remove it. * doc/automake.texi: Remove references to the 'AM_MKDIR_P' m4 macro and the '$(mkdir_p)' output variable. * t/gettext-macros.sh: Ensure the gettext-requiring tests will still see the now-removed 'AM_PROG_MKDIR_P' macro as an alias for the 'AC_PROG_MKDIR_P' macro, since even recent versions of gettext uses 'AM_PROG_MKDIR_P' in their '.m4' files. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 83249bd3 | 2012-04-28 10:53:20 | Merge branches 'remove-acdir-option' and 'remove-obsolete-m4' * remove-acdir-option: aclocal: remove the --acdir option * remove-obsolete-m4: m4: delete several obsolete macros Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 5f810d0d | 2012-04-28 10:21:31 | fixup: avoid unconditional re-bootstrapping on "make dist" 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> | ||
| 8ea72c74 | 2012-04-27 16:27:08 | build: ensure release year in copyright notice is up-to-date 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> | ||
| d2ca1685 | 2012-04-06 10:10:12 | m4: delete several obsolete macros Support for several obsolescent macros has already been deprecated, and their removal already announced in the documentation and in the NEWS file. It's now time to finally remove them. * m4/dmalloc.m4 (fp_WITH_DMALLOC): Don't define anymore. * m4/maintainer.m4 (jm_MAINTAINER_MODE): Likewise. * m4/lispdir.m4 (ud_PATH_LISPDIR): Likewise. * m4/protos.m4 (fp_C_PROTOTYPES): Likewise. * m4/ccstdc.m4: Delete file. * m4/header.m4: Likewise. * m4/obsol-gt.m4: Likewise. * m4/obsol-lt.m4: Likewise. * m4/obsolete.m4: Likewise. * Makefile.am (dist_automake_ac_DATA): Don't list the deleted '.m4' files anymore. * t/confh.sh: Use 'AC_CONFIG_HEADERS' instead of the now-removed AM_CONFIG_HEADER. * t/confh.sh: Likewise. * t/confh4.sh: Likewise. * t/confh6.sh: Likewise. * t/confh7.sh: Likewise. * t/confh8.sh: Likewise. * t/confsub.sh: Likewise. * t/stamph2.sh: Likewise. * t/subdir6.sh: Likewise. * t/autohdr2.sh: Remove as obsolete. * t/obsolete.sh: Likewise. * t/list-of-tests.mk. Don't list the deleted test cases anymore. * NEWS: Update. * doc/automake.texi: Likewise. In particular ... (Obsolete Macros): Remove this node altogether. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| ab14841a | 2012-04-26 15:05:05 | build: avoid too greedy rebuilds in the testsuite 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> | ||
| da0f9ab4 | 2012-04-12 15:07:19 | 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. | ||
| 15d4a60b | 2012-04-11 21:25:48 | 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. | ||
| f854b6c0 | 2012-04-06 18:08:39 | 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. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 8e02441b | 2012-04-06 15:20:54 | 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. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> | ||
| 8a5096d1 | 2012-04-06 13:12:25 | tests: rename 'tests/' => 't/', '*.test' => '*.sh' 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> | ||
| a4b0f4b5 | 2012-04-01 11:48:47 | 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). 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> | ||
| e343227a | 2012-03-28 13:15:52 | maint: reorganize the source tree and make it less cluttered * 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> | ||
| 2d951983 | 2012-02-23 19:21:00 | build: do not quote `like this', as per GCS recommendation 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. | ||
| a537fbe6 | 2012-02-21 14:06:25 | tests: "make installcheck" shouldn't run the testsuite twice * 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". | ||
| 72b68766 | 2012-02-17 09:52:07 | maint: support amending the generated ChangeLog, and fix a typo * 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. | ||
| 3614a17d | 2012-02-16 18:53:09 | update-copyright: don't touch COPYING and INSTALL 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'. | ||
| 641a5a4b | 2012-02-16 10:46:23 | maint: run "make update-copyright" | ||
| 957b7200 | 2012-02-16 10:35:19 | Merge branch 'maint' * maint: update-copyright: don't touch files synced from external packages | ||
| db5ddc2b | 2012-02-16 10:33:30 | update-copyright: don't touch files synced from external packages * 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. |