kc3-lang/automake/Makefile.am

Branch :


Log

Author Commit Date CI Message
f859f346 2013-05-24 00:44:59 tests: new convenience target 'check-parallel' To force the test scripts to invoke make in parallel mode. This should enhance coverage of use cases (make concurrency) that are becoming more and more important with today multicore fast machines. * Makefile.am (check-parallel): New .PHONY target. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
361430c0 2013-05-16 14:18:55 tests: use perl, not find+rm, to remove temporary directories The File::Path::rmtree function from perl, if used right, is more reliable and more portable of our past idiom: find $dirs -type d ! -perm -700 -exec chmod u+rwx {} ';'; rm -rf $$dirs || exit 1 at least of the face of unreadable dirs/files and other similar permission issues (and we have those in our test directories). In fact, this change fixes some spurious failures seen in "make distcheck" on Solaris 10. * t/ax/deltree.pl: New. * Makefile.am (EXTRA_DIST): Add it. (clean-local-check): Use it. * t/ax/test-lib.sh (rm_rf_): Use it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
ce70cf4b 2013-05-09 11:57:20 build: move automake and aclocal in 'bin' subdir * automake.in: Rename ... * bin/automake.in: ... like this. * aclocal.in: Rename ... * bin/aclocal.in: ... like this. * Makefile.am: Move parts that dealt with the building/distribution of aclocal and Automake .. * bin/Makefile.inc): ... in this new included fragment. Adjust as needed, and make deliberate use of the '%D%' substitution. * lib/gen-perl-protos: Move ... * bin/gen-perl-protos: ... here. * bootstrap.sh, configure.ac, maintainer/rename-tests, t/wrap/aclocal.in, t/wrap/automake.in, doc/Makefile.inc, t/ax/tap-setup.sh, .gitignore: Adjust. * maintainer/syntax-checks.mk: Likewise, and enhance a little. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c8f106c7 2013-05-09 11:17:47 build: break up monolithic Makefile.am in subdir-specific fragments This is convenient to do, now that we have improved "relative directory" support with the '%reladir%' (a.k.a. '%D%') and '%canon_reladir%' (a.k.a. '%C%') Automake-time substitutions for included makefile fragments. This move also satisfy our philosophy of using new Automake features in our own build system, as a way of facilitating early discovery of possible bugs or interface warts. * Makefile.am: Break up ... * doc/Makefile.inc, lib/Automake/Makefile.inc, lib/Makefile.inc, lib/am/Makefile.inc, m4/Makefile.inc, t/Makefile.inc): ... in this new included fragments. Adjust as needed, and make deliberate use of the '%D%' substitution. * contrib/t/local.am: Rename ... * contrib/t/Makefile.inc: ... like this. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2d3a2e36 2013-05-04 11:50:10 Merge branch 'branch-1.13.2' into maint * branch-1.13.2: maint: targets and recipes to simplify testing on real-world packages build: preparatory refactoring build: tiny reduction in code duplication make flags analysis: handle more options with args make flags analysis: use simpler variable names make flags analysis: whitespace changes make flags analysis: embed in a subshell make flags analysis: be more robust make flags analysis: cater to GNU make 3.83 (still unreleased as of now) tests: expose weaknesses in make flags analysis tests: improve debugging output in checks on make flags analysis make flags analysis: refactor, to reduce code duplication tests: avoid one tricky use of "make -e" tests: avoid a spurious error with Solaris make subdirs: don't return false positives for the '-k' option's presence header-vars: recognize more make flags ('-k' in particular) header-vars: simplify how make flags are determined tests: remove dead code from t/make-dryrun.tap header-vars: new variable $(am__running_with_option) tests: expose bug#12554 (false positives for presence of '-k' make option)
eddba1cc 2013-05-03 21:02:42 build: preparatory refactoring No semantic change intended. This change will be required by a later patch. * Makefile.am (setup_autotools_paths): New. ($(srcdir)/doc/amhello-1.0.tar.gz): Use it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
dc3cdb1d 2013-05-03 20:56:02 build: tiny reduction in code duplication The code was only duplicated two times, but we are soon going to need a third occurrence, and that would be one to much. * Makefile.am (extend_path): New. (update_mans): Use it instead of copying & pasting its contents. ($(srcdir)/doc/amhello-1.0.tar.gz): Likewise, and minor related adjustments. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
283ded7f 2013-02-04 23:04:18 build: auto-generate perl subroutines prototypes for automake and aclocal This will allow us to avoid either using the '&foo' invocation form when invoking a subroutine before its definition, or having to maintain the list of prototypes by hand (with the risk of having it become incomplete or fall out-of-sync when future edits to the automake and aclocal scripts are done). * Makefile.am (automake, aclocal): Automatically generate a list of prototypes by looking at the subroutines definitions. * bootstrap.sh: Likewise, when generating the temporary automake and aclocal scripts used for bootstrapping. * automake.in: Add a placeholder that will be tracked by the new recipes and substituted with the computed prototypes. Remove existing prototypes, that are now superfluous. Some adjustments required by the new, more comprehensive prototypes declarations. * aclocal.in: Likewise. * maintainer/syntax-checks.mk (sc_diff_automake, sc_diff_aclocal): Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6d9e9dd4 2013-02-04 19:34:03 refactor: rip module Automake::Language out of automake script This is just a preparatory patch in view of future changes. * lib/Automake/Language.pm: New module, ripped out from ... * automake.in: ... here. Related adjustments. * Makefile.am (dist_perllib_DATA): List the new module. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
63fe125a 2013-01-21 14:52:37 Merge branch 'branch-1.13.2' into maint That branch is for the "emergency" bug-fixing release 1.13.2. * branch-1.13.2: maint: update copyright in files generated by automake and aclocal tests: avoid a spurious failure when running inside Emacs tests: make two new test executable m4: rename an m4 file to a more appropriate name NEWS: update w.r.t. recent documentation fixes compat: reinstate AM_CONFIG_HEADER and AM_PROG_CC_STDC docs: parallel-tests is no longer experimental docs: serial-tests are not deprecated, just discouraged NEWS: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14 Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
18cb8eb2 2013-01-18 13:39:38 m4: rename an m4 file to a more appropriate name * m4/obsolete-err.m4: Rename ... * m4/obsolete.m4: ... like this. * Makefile.am (dist_automake_ac_DATA): Adjust. * t/ansi2knr-no-more.sh: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
b670a66a 2013-01-11 18:26:03 tests: can fake a compiler not grasping "-c -o" -- globally in all tests The ability to easily do so will be quite important in upcoming changes about C compilation handling and semantics of the 'subdir-objects' option. Refer to the extensive discussion about automake bug#13378 for more details: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378>. See also commit 'v1.13.1-34-g744cd57' of 2013-01-08, "coverage: compile rules used "-c -o" also with losing compilers". * t/ax/cc-no-c-o.in: New, a "C compiler" that chokes when the '-c' and '-o' options are passed together to it on the command line. * Makefile.am (t/ax/cc-no-c-o): Generate this script from it. (noinst_SCRIPTS, CLEANFILES): Add it. (EXTRA_DIST): Add 't/ax/cc-no-c-o.in'. (check-cc-no-c-o): New target, runs the whole testsuite with 'cc-no-c-o' as the C compiler (bot GNU and non-GNU). * .gitignore: Update. * t/ccnoco.sh: Use the new script instead of duplicating it. * t/ccnoco3.sh: Likewise. * t/ccnoco4.sh: Likewise. * t/self-check-cc-no-c-o.sh: New testsuite self-check. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
dbe3eea4 2013-01-10 23:40:26 Rename 'maint/' -> 'maintainer/', for Git's sake Otherwise, Git gets confused by the fact that a directory ('maint') is named like a branch, and forces me to tweak the command line to resolve the ambiguity for it. * maint/: Rename ... * maintainer/: ... like this. * Makefile.am, GNUmakefile: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
fa0fc1bf 2013-01-04 10:23:36 Merge branch 'plans' into maint * plans: plans: add the "PLANS" directory Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> Conflicts: Makefile.am
da0dfbe7 2013-01-03 12:54:07 tests: move runtest.in away from the top-lever directory Not only this leaves the top-lever directory less cluttered, but helps in keeping the testsuite-related files more "centralized". * runtest.in: Move ... * t/ax/runtest.in: ... here. While at it, add customary '@configure_input@' comment line. * Makefile.am (runtest, EXTRA_DIST): Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
6d80cc2d 2013-01-03 12:23:51 maint: move more maintainer files in the 'maint/' subdir * maint.mk: Move ... * maint/maint.mk: ... here. * syntax-checks.mk: Move ... * maint/syntax-checks.mk: ... here. * Makefile.am: Adjust. * GNUmakefile: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
5fdf7587 2013-01-03 12:03:37 plans: add the "PLANS" directory Individual files or sub-directories about future and on-going development plans in Automake will be added in follow-up commits. This new set of documents is meant to help ensure a more controlled and smooth development and evolution for Automake, in several ways. - Having the plans clearly spelled out should will avoid messy roadmaps with no clear way forward or with muddy or ill-defined aims or purposes; a trap this is too easy to fall into. - Keeping planned changes cooking and re-hashed for a while should ensure rough edges are smoothed up, transitions are planned in a proper way (hopefully avoiding debacles like the AM_MKDIR_PROG_P deprecation and the AM_CONFIG_HEADER too-abrupt removal), and "power users" have more chances of getting informed in due time, thus having all the time to prepare for the changes or raise objections against them. - Having the plans clearly stated and registered in a "centralized" location should make it more difficult to them to slip through the cracks, getting forgotten or (worse) only half-implemented. - Even for discussions and plans registered on the Bug Tracker as well, a corresponding entry in the PLANS directory can help in keeping main ideas summarized, and consensus and/or objections registered and easily compared. Motivation: <http://blog.flameeyes.eu/2013/01/autotools-mythbuster-automake-pains> Not a flatting picture for us (and maybe a little too harsh), but basically true and even spot-on in some regards. * PLANS/README: New. * Makefile.am (EXTRA_DIST): Distribute the whole PLANS directory. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
c3186313 2013-01-02 21:08:27 maint: add some of my maintainer-specific scripts They are likely not general enough for widespread use, but they are useful nonetheless. In the best-case scenario, they will start to be used by other people, and thus accordingly improved and made more general and flexible. In the worst case scenario, well, I still get to keep them in a centralized, blessed place, simplifying the deployment and use of them; so still a win for me :-) * maint/am-ft: New script. * maint/am-xft: Likewise. * maint/rename-tests: Likewise. * Makefile.am (EXTRA_DIST): Add them. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
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>