Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| c8fcdede | 2023-12-27 06:52:50 | maint: avoid a racy distcheck failure * lib/am/distdir.am (am__remove_distdir): Use ";" not "&&" after the chmod-running find, so that a failing find doesn't cause the entire rule to fail. This could happen when a directory like doc/automake.t2d being processed by find is concurrently deleted by another rule. | ||
| 5eb995c3 | 2023-12-26 14:26:20 | doc: typos in NEWS. From https://lists.gnu.org/archive/html/automake/2023-12/msg00037.html. * NEWS: typos. | ||
| 01b62818 | 2023-12-25 15:42:34 | test: silent-defaults.sh rerun autotools each time. Follow-up to https://bugs.gnu.org/32868. * t/silent-defaults.sh: rerun $ACLOCAL && $AUTOMAKE for each trial, else test failed. (Why it has always succeeded before now, and/or what has changed, I don't know.) Remake the cache for each trial, for reliability. Echo trial description. * doc/automake.texi (Silent Rules): tweak text. (Unsilencing Automake): new node. Mention make --debug=p to completely unsilence rules. | ||
| 354b7e47 | 2023-12-25 15:40:25 | test: self-announce leading installcheck/protocol/PATH information. * t/ax/am-test-lib.sh (am_extra_info): self-announce where the initial reports on installcheck, test protocol, and PATH come from. Apparently this doesn't disturb the tests. If other people don't like the extra verbiage, no problem to remove. | ||
| 0249be1e | 2023-12-25 15:38:15 | test: force long sleep with explicit cache variable setting. From https://bugs.gnu.org/67670. * t/ax/test-defs.in: when MTIME_RESOLUTION is set to 1 because automake/autom4te do not support subsecond-mtime, also set am_cv_sleep_fractional_seconds=false. Otherwise the random parallel test failures from given bug and others return. * m4/sanity.m4 (_AM_SLEEP_FRACTIONAL_SECONDS): reformat. (_AM_FILESYSTEM_TIMESTAMP_RESOLUTION): elide "the" in AC_CACHE_CHECK. * t/amassign.sh: end with :. * HACKING: more on debugging tests. * NEWS: update. | ||
| 6a2d079b | 2023-12-24 15:02:30 | doc: typos from codespell. Report and patch: https://bugs.gnu.org/68003. * bin/automake.in: typo from codespell. * configure.ac: likewise. * t/dist-auxdir-many-subdirs.sh: likewise. * t/instmany-mans.sh: likewise. * t/instmany-python.sh: likewise. * t/instmany.sh: likewise. * t/nostdinc.sh: likewise. * t/parallel-tests-fork-bomb.sh: likewise. * t/rm-f-probe.sh: likewise. * t/tap-basic.sh: likewise. * t/test-driver-custom-multitest.sh: likewise. * t/txinfo-vtexi3.sh: likewise. | ||
| f033898f | 2023-12-24 14:56:50 | doc: update location of FETCHFILES variable. Report and patch: https://bugs.gnu.org/68004. * HACKING: FETCHFILES has been moved: Makefile.am -> maintainer/maint.mk. | ||
| aa55e07c | 2023-12-24 08:56:30 | maint: email in THANKS for Zack Weinberg. * THANKS (Zack Weinberg): update from zackw@panix.com to zack@owlfolio.org, per Zack. | ||
| 448fd777 | 2023-12-24 08:55:04 | test: do not leave files as mode zero. Follows up on https://bugs.gnu.org/67868. * t/dist-with-unreadable-makefile-fails.sh: chmod u+rw at end. Also follow usual pattern of ending tests with :, not explicit exit. * t/tap-bad-prog.tap: chmod u+r at end (since only r removed). | ||
| 9ab5c03e | 2023-12-24 08:45:50 | warn: avoid "only used once" warning for subsecond_mtime. * bin/automake.in (version): uselessly use $Automake::FileUtils::subsecond_mtime a second time to avoid Perl warning. | ||
| 8f43e75d | 2023-12-23 10:44:03 | doc: more on help2man and "Errors with distclean". This fixes (the rest of) https://bugs.gnu.org/67891. * doc/automake.texi (Errors with distclean): make a subsection of "Checking the Distribution". Contrast help2man usage examples of Autoconf (includes man pages in distribution) and Automake (no man pages, distributes the help2man script instead). (Checking the Distribution): convert subheadings to subsections. * doc/local.mk: also mention autoconf vs. automake approaches here, and point to the manual. (checklinkx): en passant, remove unused checklinkx exclude. | ||
| 352d5f6f | 2023-12-22 15:52:26 | maint: sync autoconf Channels.pm and ChannelsDefs.pm. Patch from https://bugs.gnu.org/67971. The changes address <https://savannah.gnu.org/support/?110872>, about m4_warn code/documentation consistency. It should be impossible to reach report_bad_channel from code in Automake. * lib/Automake/Channels.pm (msg): If the channel argument is invalid, don't crash; report the mistake and use the `syntax' channel. (report_bad_channel): New function for reporting invalid channels. * lib/Automake/ChannelDefs.pm (usage): Clarify that the list of warning categories is exhaustive, and that ``all'', ``none'', ``no-CATEGORY'', and ``error'' are not warning categories. | ||
| 3cc3e282 | 2023-12-21 18:19:36 | maint: tweak announcement text again. * maintainer/maint.mk (announcement): "(instead of replying to this mail)," | ||
| 95c0aa18 | 2023-12-21 15:46:43 | automake: avoid unnecessary use of \K. This fixes (part of) https://bugs.gnu.org/67891 and follows up on https://bugs.gnu.org/55025. * bin/automake.in (generate_makefile) <posix>: avoid use of \K when removing comment and blank lines before a .POSIX target, since Solaris 10 has perl 5.8.4, and \K was added in 5.10. | ||
| 90ef1189 | 2023-12-20 14:12:34 | doc: typo in tap-driver.sh. * lib/tap-driver.sh: to not too. | ||
| 5883fcb1 | 2023-12-20 08:20:26 | maint: post-release administrivia. * configure.ac (AC_INIT): now 1.16j, since 1.16i pretest was released (on 2023-12-18). * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). | ||
| 80b72e67 | 2023-12-18 14:20:55 | maint: announcement text tweaks. * HACKING: mention DEVEL_SNAPSHOT=1 for us. * NEWS: tweak text. * maintainer/maint.mk (announcement): tweak text, ls -l ./announcement as a clue as to where the result is. | ||
| 31a4eb47 | 2023-12-17 08:42:35 | dist: more forcefully deal with mode 0 directories created by tests. From https://bugs.gnu.org/67868. * lib/am/distdir.am (am__remove_distdir): make directories readable and searchable, not just writable. (Also typo.) * t/local.mk (clean-local-check): ensure directories are at least mode 700 * t/uninstall-fail.sh: restore reasonable permissions of the mode 0 $inst/share directory at the end. | ||
| 5c8dce80 | 2023-12-13 10:17:49 | doc: checklinkx tweaks. * HACKING: mention checklinkx to check for broken links. * contrib/checklinkx: mention us in version info; use warnings instead of -w. | ||
| 72ab19f5 | 2023-12-11 09:08:37 | maint: Update files from upstream with 'make fetch'. * lib/INSTALL: update with make fetch. * lib/config.guess: Update. * lib/config.sub: Likewise. * lib/gendocs.sh: Likewise. * lib/gendocs_template: Likewise. * lib/texinfo.tex: Likewise. * lib/update-copyright: Likewise. | ||
| 0fbca7e7 | 2023-12-10 15:12:00 | doc: add advice to list Yacc/Lex generated sources in BUILT_SOURCES. For https://bugs.gnu.org/62791. * doc/automake.texi (Yacc and Lex): it seems to be necessary to list the generated C source file for a Yacc/Lex file, as well as the header file, in BUILT_SOURCES. | ||
| 0d88793d | 2023-12-10 15:05:40 | doc: NEWS entry for OBJC[XX] tags. This helps https://bugs.gnu.org/67539. * NEWS: update; forgot to commit with prior code change. | ||
| 38f2f397 | 2023-12-10 09:57:53 | automake: pass OBJC and OBJCXX tags to libtool. This helps https://bugs.gnu.org/67539. * bin/automake.in <register_language>: pass libtool_flag of OBJC and OBJCXX for the respective languages. | ||
| cfdb83d4 | 2023-12-10 09:50:51 | automake: again revise file mtime resolution support. This patch is from https://bugs.gnu.org/67670. In order for the Automake testsuite to be able to use sub-second delays to control whether certain files are considered newer than others, five(!) separate pieces of software all need to cooperate: automake itself, autoconf's internal `autom4te' utility, the Perl interpreter and its libraries, the sleep(1) shell utility, and finally the filesystem hosting the build directory. The existing tests for this are a combination of inadequate and incorrect. This patch, in conjunction with a patch just committed to Autoconf trunk, https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=39d96e6fff7ceae63b823872602caf4d255a38c8 should make everything much more robust, as follows: - _AM_FILESYSTEM_TIMESTAMP_RESOLUTION is completely rewritten. It no longer looks for autom4te at all, because this macro is invoked unconditionally from AM_INIT, so *every* project that uses Automake would get this test that's only relevant to Automake's own testsuite. Also, it tries sleeping for as little as one millisecond (smaller delays consistently get rounded up to 1ms on my computer and I expect that's universal), it should accurately detect FAT's two-second resolution now, and it should not be tripped up anymore by running at precisely the moment that will make a 0.1s sleep cross a 1s boundary (this may sound unlikely but it used to cause a couple of test failures *every time* I ran the automake testsuite on a network filesystem that only supported 1s resolution). - In support of the above, the test for working ls -t moved from AM_SANITY_CHECK to _AM_FILESYSTEM_TIMESTAMP_RESOLUTION. This allowed me to simplify the test for $srcdir/configure being older than a freshly created file. - If automake is capable of reading high-resolution file modification timestamps from the operating system, it prints `Features: subsecond-mtime' as the second line of --version output. (We can't just assume this works for sufficiently new automake, because it depends on whether the Perl interpreter provides this capability, and that's not a simple question of which version of Perl you have, either.) - The Autoconf patch mentioned above adds the same annotation to the output of autom4te --version. - Finally, t/ax/test-defs.in looks for the `Features: subsecond-mtime' string from both automake and autom4te and resets the sleep time to one second if it's not there. There might be a better place to put this, somewhere it'll execute every time the *overall testsuite* is invoked rather than once for each test, but I couldn't find one. Tested on x86-64-linux with development automake and development autoconf. Previous discussion: - https://lists.gnu.org/archive/html/automake/2023-03/msg00000.html - https://lists.gnu.org/archive/html/automake/2023-04/msg00002.html - https://lists.gnu.org/archive/html/automake/2023-12/msg00005.html - https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64756 * m4/sanity.m4 (_AM_FILESYSTEM_TIMESTAMP_RESOLUTION): Rewrite for greater reliability. Don't probe autom4te at all here. Check for working ls -t here. (AM_SANITY_CHECK): Do not cache the result. Do not check for working `ls -t' here. Disentangle control flow in the loop probing the relative ages of build and source directory. * lib/Automake/FileUtils.pm: Sync from autoconf. * bin/automake.in (version): Include `Features: subsecond-mtime' in the output if $Automake::FileUtils::subsecond_mtime is true. * configure.ac: Rename the substitution variable MODIFICATION_DELAY to MTIME_RESOLUTION. * t/ax/test-defs.in: Require both $AUTOMAKE and $AUTOM4TE to report support for high-resolution timestamps before setting $sleep to delay for less than one second. * NEWS: Update info. | ||
| 668e8a20 | 2023-12-02 21:50:45 | Simplify recent $PERL check * configure.ac: Don’t spin off subprocesses to check $PERL. | ||
| f2b10583 | 2023-12-02 14:53:12 | configure: better check for the perl patch containing whitespace. More for https://bugs.gnu.org/62896. * configure.ac: quote "$PERL" and check directly with grep. | ||
| fac41f94 | 2023-12-02 14:33:30 | doc: autoconf portability link, python NEWS. More for https://bugs.gnu.org/67268. * doc/automake.texi (Usage of Conditionals): link to Autoconf's Limitations of Builtins, e.g., https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.71/html_node/Limitations-of-Builtins.html * NEWS: Python version preferences are not just miscellaneous. | ||
| 6b4304c1 | 2022-01-26 06:36:32 | python: prioritize python 3.x over 2.x Since Python 2.x went EOL years ago, stop searching for it before any of the Python 3 versions. * m4/python.m4: Move python2 after all python3 versions. * NEWS: Mention update in version search. | ||
| 94f4bad7 | 2023-11-24 09:31:18 | compile: support libtool .lo, needed for Xapian on Windows. * lib/compile (func_cl_wrapper):handle *.lo like *.o. | ||
| fba903e6 | 2023-11-23 09:35:09 | missing et al.: mention automake home page and gnu.org/gethelp. * lib/compile: in --help message, include automake home page and gnu.org/gethelp, following automake --help. * lib/depcomp: likewise. * lib/install-sh: likewise. * lib/mdate-sh: likewise. * lib/missing: likewise. * lib/mkinstalldirs: likewise. * lib/py-compile: likewise. * lib/ylwrap: likewise. | ||
| 68db06db | 2023-11-23 09:13:38 | missing: add autoreconf, autogen and perl as supported programs. From: https://lists.gnu.org/archive/html/automake-patches/2015-08/msg00000.html * lib/missing: add autoreconf, autogen and perl as supported programs, potentially especially useful from bootstrap scripts. Alphabetize. * NEWS: mention. * THANKS: new contributor. | ||
| f68b2784 | 2023-11-21 09:44:55 | contrib: remove test-driver.scm, maintained elsewhere. * contrib/test-driver.scm: remove. Original patch and discussion: https://lists.gnu.org/archive/html/automake-patches/2016-05/msg00000.html Suggestion from guile-devel in 2023 that it's been updated outside of Automake, and merging would not be especially helpful: https://lists.gnu.org/archive/html/guile-devel/2023-11/msg00036.html | ||
| 8cdbdda5 | 2023-11-21 08:30:00 | automake: make the ARFLAGS default 'cr' instead of 'cru'. In some GNU/Linux distributions people started to compile 'ar' binary with --enable-deterministic-archives (binutils project). That, however, in combination with our previous long time working default AR_FLAGS=cru causes warnings on such installations: ar: `u' modifier ignored since `D' is the default (see `U') The 'u' option (at least with GNU binutils) did small optimization during repeated builds because it instructed 'ar' to not open/close unchanged *.o files and to rather read their contents from old archive file. However, its removal should not cause a big performance hit for usual workflows. Distributions started using --enable-deterministic-archives knowing that it would disable the 'u', just to rather have a bit more deterministic builds. Also, to justify this change a bit more, keeping 'u' in ARFLAGS could only result in many per-project changes to override Automake's ARFLAGS default, just to silence such warnings. Fixes bug#20082. Reported by Eric Blake. * bin/automake.in (handle_libraries): Use 'ARFLAGS=cr' by default. * doc/automake.texi (Building a library): Mention the changed ARFLAGS default. (@c LocalWords): Replace 'cru' with 'cr'. * m4/ar-lib.m4 (AM_PROG_AR): Cut out 'cru' string into separate ARFLAGS variable with new default 'cr'. * NEWS: Document. | ||
| 4adfd131 | 2023-11-19 06:55:04 | doc: typos in tap-driver.sh. * lib/tap-driver.sh: fix typos. | ||
| f4b5d415 | 2023-11-18 18:25:16 | doc: mention shell operators preferred over `test` options. * doc/automake.texi (Usage of Conditionals): mention that shell operators (&&, ||, ()) are preferred over `test` options (-a, -o, \(\)). Idea and POSIX url reference from Michael Stapelberg, https://lists.gnu.org/archive/html/automake-patches/2016-10/msg00002.html | ||
| 458bc6ad | 2023-11-15 10:37:22 | tests: give input file to sed. * t/posixtarget.sh: sed ... Makefile | grep, not sed ... | grep Makefile, to avoid waiting forever on stdin. | ||
| d5d5707d | 2023-11-15 10:35:40 | m4: use AS_IF instead of ! builtin. * m4/sanity.m4: Switch `if !` to AS_IF. | ||
| 5c85c782 | 2023-11-01 22:20:05 | fix: syntax error in sanity.m4 * m4/sanity.m4 (_AM_FILESYSTEM_TIMESTAMP_RESOLUTION): Fix syntax error from preceding change: add a missing double quote. | ||
| cfb00bd3 | 2023-11-01 18:05:53 | doc: more NEWS on fractional seconds. * NEWS: fixed autom4te is not yet released. | ||
| 581e0ae4 | 2023-11-01 18:03:36 | doc: references for non-fractional timestamps. The non-fractional fix from Bogdan fixes https://bugs.gnu.org/64756, discussed earlier in a long thread on automake in 2023-03 and 2023-04; references in the bug. Jacob Bachmeyer contributed to the analysis and fixes. * m4/sanity.m4: | ||
| a1c34d1f | 2023-11-01 17:41:53 | doc: add bug numbers to NEWS. * NEWS: add some bug numbers. | ||
| b6fa7311 | 2023-11-01 17:40:47 | m4: fall back to non-fractional timestamps with older autom4te. * m4/sanity.m4 (_AM_FILESYSTEM_TIMESTAMP_RESOLUTION): if HiRes is not present in Autom4te/FileUtils.pm, do not consider fractional sleeps. | ||
| 7d727188 | 2023-11-01 17:36:01 | m4: syntax fix for lex change. * m4/lex.m4: dnl caused "fiif" in output. | ||
| df85c29c | 2023-11-01 09:25:21 | doc: tiny Texinfo cleanups. * doc/automake.texi (Public macros): Missed @var usage. (Dependencies): "The Autoconf Manual" in cross-manual xref. | ||
| c889fedb | 2023-11-01 09:22:46 | tests: add new test for AM_PROG_LEX arguments. See https://bugs.gnu.org/65600 and https://bugs.gnu.org/65730 and https://lists.gnu.org/archive/html/automake/2023-07/msg00007.html. * t/lex-args.sh: New test. * t/list-of-tests.mk (handwritten_tests): Add it. | ||
| edd08396 | 2023-11-01 09:18:57 | m4: update invocation of AC_PROG_LEX. * m4/lex.m4: Pass on any arguments given to AC_PROG_LEX. * doc/automake.texi: Describe this. * NEWS: Mention this. * THANKS: New contributor. | ||
| 2d91e57b | 2023-10-30 10:14:51 | doc: user conditional for dependency tracking. * doc/automake.texi (Automatic dependency tracking): Describe basing a conditional for dependency tracking on the shell variable enable_dependency_tracking. Mentioned by Nick Bowler. https://lists.gnu.org/archive/html/automake/2023-09/msg00004.html * HACKING: Capitalization. | ||
| b2d0fee3 | 2023-10-06 08:28:19 | tests: add test for new posix option. See https://bugs.gnu.org/55025. * t/posixtarget.sh: New test. * t/list-of-tests.mk (handwritten_tests): Add it. * t/README: mention using existing tests as a basis. | ||
| 1c618bce | 2023-10-06 08:18:33 | automake: new option posix to emit .POSIX target first. This patch is from https://bugs.gnu.org/55025. * lib/Automake/Options.pm (_is_valid_easy_option): declare new option "posix". * bin/automake.in (generate_makefile): if the "posix" option is present, add a .POSIX special target as the first non-comment line in the Makefile.in files. * NEWS: mention this. * doc/automake.texi: likewise. | ||
| 80714ea0 | 2023-08-29 11:00:41 | tests: avoid implicit function declarations. This patch is from https://bugs.gnu.org/59993 (v2 part 2). * t/c-demo.sh: This patch is related to an effort to prepare Automake for future GCC/Clang versions which set c99 as default standard to be used. C99 requires that functions be properly declared before use. This is true for both user functions and standard functions, e.g., printf. * t/cond35.sh: Likewise. * t/dist-vs-built-sources.sh: Likewise. * t/lex-clean.sh: Likewise. * t/lex-multiple.sh: Likewise. * t/lex-nodist.sh: Likewise. * t/ltcond2.sh: Likewise. * t/ltconv.sh: Likewise. * t/subobj-clean-lt-pr10697.sh: Likewise. * t/subobj-clean-pr10697.sh: Likewise. * t/tags-pr12372.sh: Likewise. * t/yacc-basic.sh: Likewise. * t/yacc-clean.sh: Likewise. * t/yacc-nodist.sh: Likewise. This patch is from https://bugs.gnu.org/59993. | ||
| c1f34ffe | 2023-08-28 18:32:53 | tests: don't try to prevent flex from including unistd.h. This patch is from https://bugs.gnu.org/59994. * t/cond35.sh: This patch is related to an effort to prepare Automake for future GCC/Clang versions which set c99 as default standard to be used. In the current version of flex, not having unistd.h leads to implicit function declarations that are not compatible with C99. A future version of flex will (hopefully) make the "NO_UNISTD" flag a no-op, and include unistd.h by default. Also, while flex-dedicated tests had this macro set, yacc tests did not, despite their use of flex. For consistency, all the yacc/flex related tests now have the "--never-interactive" option set in AM_LFLAGS, and do not try define an isatty function. * t/lex-clean-cxx.sh: Likewise. * t/lex-clean.sh: Likewise. * t/lex-depend-cxx.sh: Likewise. * t/lex-depend.sh: Likewise. * t/lex-header.sh: Likewise. * t/lex-lib-external.sh: Likewise. * t/lex-lib.sh: Likewise. * t/lex-libobj.sh: Likewise. * t/lex-line.sh: Likewise. * t/lex-multiple.sh: Likewise. * t/lex-nodist.sh: Likewise. * t/lex-noyywrap.sh: Likewise. * t/lex-pr204.sh: Likewise. * t/lex-subobj-nodep.sh: Likewise. * t/lex3.sh: Likewise. * t/lex5.sh: Likewise. * t/lexvpath.sh: Likewise. * t/silent-lex.sh: Likewise. * t/silent-many-languages.sh: Likewise. * t/silent-yacc-headers.sh: Likewise. * t/silent-yacc.sh: Likewise. * t/subpkg-yacc.sh: Likewise. * t/suffix10.tap: Likewise. * t/yacc-auxdir.sh: Likewise. * t/yacc-basic.sh: Likewise. * t/yacc-bison-skeleton-cxx.sh: Likewise. * t/yacc-bison-skeleton.sh: Likewise. * t/yacc-clean-cxx.sh: Likewise. * t/yacc-clean.sh: Likewise. * t/yacc-cxx-grepping.sh: Likewise. * t/yacc-cxx.sh: Likewise. * t/yacc-d-basic.sh: Likewise. * t/yacc-d-cxx.sh: Likewise. * t/yacc-d-vpath.sh: Likewise. * t/yacc-deleted-headers.sh: Likewise. * t/yacc-depend.sh: Likewise. * t/yacc-depend2.sh: Likewise. * t/yacc-dist-nobuild-subdir.sh: Likewise. * t/yacc-dist-nobuild.sh: Likewise. * t/yacc-dry.sh: Likewise. * t/yacc-grepping.sh: Likewise. * t/yacc-grepping2.sh: Likewise. * t/yacc-headers-and-dist-pr47.sh: Likewise. * t/yacc-line.sh: Likewise. * t/yacc-misc.sh: Likewise. * t/yacc-mix-c-cxx.sh: Likewise. * t/yacc-nodist.sh: Likewise. * t/yacc-pr204.sh: Likewise. * t/yacc-subdir.sh: Likewise. * t/yacc-vpath.sh: Likewise. * t/yacc-weirdnames.sh: Likewise. * t/yflags-cmdline-override.sh: Likewise. * t/yflags-cxx.sh: Likewise. * t/yflags-d-false-positives.sh: Likewise. * t/yflags-force-conditional.sh: Likewise. * t/yflags-force-override.sh: Likewise. * t/yflags-var-expand.sh: Likewise. * t/yflags.sh: Likewise. | ||
| 6c10512c | 2023-08-28 06:11:39 | tests: avoid implicit function declaration in t/depcomp.sh. This patch is from https://bugs.gnu.org/60962. * t/ax/depcomp.sh: save and restore sub/subfoo.h, so its declaration will be seen, as required by C99. * THANKS: add Frédéric. | ||
| 43a53bdf | 2023-08-09 18:07:44 | maint: Ineiev in THANKS. * THANKS: add Ineiev. | ||
| 56766ede | 2023-08-09 18:07:00 | automake: portability warning for dollar-escaped dollar signs. This bug and fix was posted at https://lists.gnu.org/archive/html/automake/2023-08/msg00003.html. * lib/Automake/Variable.pm (scan_variable_expansions): rewrite scan_variable_expansions regex to handle dollar-escaped dollar signs. * t/dollarvar2.sh: test it. | ||
| 80d755f9 | 2023-08-05 17:58:10 | doc: missing docdir and lispdir in _DATA description. This changes fixes https://bugs.gnu.org/65032. * doc/automake.texi (Data): add docdir and lispdir, index doc_DATA and lisp_DATA. | ||
| dbdfa65c | 2023-07-20 18:03:27 | automake: disable GNU make's internal pattern rules, for speed. From https://bugs.gnu.org/64743. * lib/am/footer.am: Disable GNU make's internal pattern rules. * lib/Automake/Rule.pm (_conditionals_for_rule): Add special handling for these pattern rules from footer.am. (define): Likewise. * t/nodep.sh: Update test to avoid matching the new %:: rules. * t/fnoc.sh: Update test to avoid matching the new %:: SCCS rule. * NEWS: Mention this. * doc/automake.texi (Suffixes): Likewise. (Doc changes written by Karl.) | ||
| 683400c3 | 2023-07-14 08:50:51 | automake: set test delays to am_cv_filesystem_timestamp_resolution. This patch is from https://bugs.gnu.org/60808. * configure.ac: Set test delays to am_cv_filesystem_timestamp_resolution, instead of hardwiring 5sec on DJGPP and 2sec elsewhere. This speeds up test runs significantly, informally as much 30%. | ||
| 5c85a9d3 | 2023-07-13 15:32:34 | texi: assume .texi.in generates .texi. This change refines the fix for https://bugs.gnu.org/54063. * bin/automake.in (scan_texinfo_file): if .texi doesn't exist, but .texi.in exists, read the latter for the Texinfo source. Use the @setfilename argument, if present, to generate rules. * t/txinfo-no-texi-but-texi-in.sh: new test. * t/list-of-tests.mk (handwritten_tests): add it. * doc/automake.texi (Texinfo): document this. * NEWS: mention this. (Doc changes written by Karl.) | ||
| 65ad31d8 | 2023-07-09 09:57:15 | tests: avoid some SunOS declaration conflicts. This change: finishes fixing https://bugs.gnu.org/34151 and https://bugs.gnu.org/30612 and https://bugs.gnu.org/42393; fixes https://bugs.gnu.org/44795 and https://bugs.gnu.org/49755; partially fixes https://bugs.gnu.org/45205 and https://bugs.gnu.org/55073. Still open: https://bugs.gnu.org/15256; * t/lex-clean-cxx.sh: test __cplusplus, __sun, and __EXTERN_C__ before using extern "C" for the yylex decl, as explained at https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45205#13. * t/lex-depend-cxx.sh: likewise. * t/yacc-cxx.sh: "using" std::exit, std::free, std::malloc. * t/yacc-d-cxx.sh: likewise. * t/yacc-mix-c-cxx.sh: likewise. * NEWS: mention this. | ||
| c5f08e89 | 2023-07-06 18:27:36 | python: generalize tests. This change finishes fixing https://bugs.gnu.org/30556. * t/python-prefix.sh: use $PYTHON if set, not hardwiring "python". * t/python-virtualenv.sh (get-pyexecdir): new make target; use it instead of hardwiring $py_site. | ||
| ab347652 | 2023-07-05 08:59:29 | python: support noinst_PYTHON preceding foo_PYTHON. This change fixes https://bugs.gnu.org/24507. * lib/am/python.am (am__pep3147_tweak): remove conditional on %?INSTALL%. * t/python-pr10995.sh: test with make uninstall. | ||
| 4bd4640e | 2023-07-01 08:34:55 | automake: do not warn that POSIX variables are non-POSIX. This change fixes https://bugs.gnu.org/9587. * lib/Automake/Variable.pm (_VARIABLE_PATTERN_EXTRA_POSIX): new variable for $(*D) and the like. (_VARIABLE_PATTERN): use it. * t/vars3.sh: update test. * NEWS: mention this. POSIX spec (currently): https://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html | ||
| 8859f820 | 2023-06-29 17:59:48 | doc: discuss setting uid/gid information in tarballs. In response to https://bugs.gnu.org/19615. * doc/automake.texi (Basics of Distribution): give example of specifying the TAR_OPTIONS (environment) variable used by GNU tar. | ||
| 4e86c7ed | 2023-06-28 10:00:56 | maint: Update files from upstream with 'make fetch'. * lib/INSTALL: update with make fetch. * lib/config.guess: Update. * lib/config.sub: Likewise. * lib/gitlog-to-changelog: Likewise. * lib/texinfo.tex: Likewise. * lib/update-copyright: Likewise. | ||
| a456dfd6 | 2023-06-27 18:10:38 | doc: discuss workaround for V=99 failing. In response to https://bugs.gnu.org/20077. * doc/automake.texi (Tricks For Silencing Make): state and discuss workarounds for the limitation of $(V) only being settable to 0 or 1. | ||
| 7db4d7d1 | 2023-06-24 18:31:29 | doc: bring a few examples up to date. * doc/automake.texi (Built Sources Example): use @kbd for typed commands; show current output. (Checking the Distribution): refer to Third-Party Makefiles for the do-nothing dvi target example. Other small wording tweaks throughout. * HACKING: consistently omit $ prompt. Say a bit more about versions of Autoconf. Describe actual current status of branches (only master in use). Give some topic examples. "rerun" not "re-run". Other small wording tweaks throughout. | ||
| d4da6e96 | 2023-06-23 17:51:43 | test: avoid sometime-race condition for dist-no-built-sources test. * t/dist-no-built-sources.sh: rm the dist .tar.gz and .tar generated after inspecting, to avoid it being considered up to date on the second time through the loop. | ||
| 226b6131 | 2023-06-08 14:33:14 | depcomp spelling fix * lib/depcomp: Fix spelling in comment. Originally reported by Josh Soref <jsoref@gmail.com> in: https://lists.gnu.org/r/bug-gnulib/2023-06/msg00057.html | ||
| 5b87f66c | 2023-05-29 17:54:07 | doc: improve NAME string for man pages. This change fixes https://bugs.gnu.org/62853 and https://bugs.gnu.org/62854. * doc/local.mk (update_mans): move $(AM_V_GEN): to calls; include --name="$${HELP2MAN_NAME}". (-%D%/aclocal-$(APIVERSION).1, %D%/automake-$(APIVERSION).1): set HELP2MAN_NAME in environment to pass to help2man. | ||
| 7f33a3b8 | 2023-05-27 18:10:11 | configure: exit explicitly if the path to perl contains spaces. This change ameloriates https://bugs.gnu.org/62896. * configure.ac: exit explicitly if the result of AC_PATH_PROG for perl contains spaces, since shebang lines cannot support such paths. * THANKS (Bogdan): add. | ||
| e5168045 | 2023-05-27 17:59:51 | doc: HACKING bug merge; doc/local.mk help2man update hints. * HACKING: give bug merge example. * doc/local.mk: how to update help2man manually; fix checklinkx sleep comment. | ||
| ae8d12e3 | 2023-05-27 17:55:15 | maint: Update files from upstream with 'make fetch' + help2man. * lib/INSTALL: update with make fetch. * lib/config.guess: Update. * lib/config.sub: Likewise. * lib/gendocs.sh: Likewise. * lib/gnupload: Likewise. * lib/texinfo.tex: Likewise. * lib/update-copyright: Likewise. * doc/help2man: now 1.49.1. | ||
| c04c4e88 | 2023-03-29 18:07:10 | Port py-compile to Python 2.6- * lib/py-compile: Port to Python 2.6 and earlier, which lack importlib. | ||
| 844c71e5 | 2023-03-29 18:05:25 | do not assume GNU tar in test * t/dist-no-built-sources.sh: Don’t assume GNU Tar’s ability of decompressing tarballs. Solaris 10 ‘tar’ doesn’t do that. | ||
| 794464f0 | 2023-02-08 23:30:00 | Remove parentheses around test argument lists This works around a parser bug in Perl 5.6.2. * t/pm/General.pl: Remove parentheses on argument lists. Copyright-paperwork-exempt: yes | ||
| 62b3ff7b | 2023-02-08 23:07:26 | Improve test for blocked signals This fixes ERRORs reported by: * t/parallel-tests-interrupt.tap * t/self-check-exit.tap * t/self-check-is-blocked-signal.tap * t/tap-signal.tap * t/ax/am-test-lib.sh (is_blocked_signal): Revise Perl code to more closely follow documented interfaces where available. This also works around bugs and limitations of the POSIX module in Perl 5.6. Copyright-paperwork-exempt: yes | ||
| 16fa11bf | 2023-03-29 11:48:02 | Port 'make check' to platforms lacking libtool * t/get-sysconf.sh: Don’t fail if libtoolize is missing. | ||
| e1b3b704 | 2023-03-28 20:29:02 | configure: recommend perl 5.10 or better * configure.ac (PERL): Recommend perl 5.10 or better, since 5.10 has higher-resolution timestamps. | ||
| efce8539 | 2023-02-07 22:42:59 | Gracefully degrade if Time::HiRes is not available Copyright-paperwork-exempt: yes | ||
| 0e127700 | 2023-02-07 22:39:29 | Revert "maint: require perl 5.010 or later" This reverts commit 4e3744a15c4d8bdb46c11ead2fb56c5f591b714b. Copyright-paperwork-exempt: yes | ||
| 0901ccdd | 2023-03-01 15:03:30 | doc: tweak old NEWS about ACLOCAL_AMFLAGS. * NEWS: any ACLOCAL_AMFLAGS deprecation will be in a major release (the hypothetical 2.0), not sooner. * NEWS-2.0: developers who don't wish to be maintainers are also welcome and needed. | ||
| 4f5a624d | 2023-02-28 15:14:07 | dirstamp: revert change of Jan 11 2023. Fixes (hopefully) automake bug https://bugs.gnu.org/61867. * bin/automake.in: restore explicit per-directory pattern rules, since evidently @D is not supported on BSD-derived makes, whatever POSIX says. That is, revert this commit: https://git.savannah.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=55f8fcfd08cbf15d65d61dd2db934b6c3171cf06 | ||
| 01bf65da | 2023-02-02 14:17:52 | Use higher-resolution file timestamps * lib/Automake/FileUtils.pm (mtime): Return higher-resolution file timestamps. This isn’t perfect, but it’s better than what we had. Code change taken from Autoconf to partially fix a race <https://bugs.gentoo.org/show_bug.cgi?id=782985>. | ||
| 4e3744a1 | 2023-02-02 14:13:24 | maint: require perl 5.010 or later This is needed for better treatment of high-res timestamps. | ||
| 6d6fc91c | 2022-12-12 07:32:13 | tests: depcomp: ensure make_ok() fails when run_make fails While running automake tests with -std-gnu=c99, the compiler report errors which lead to make to fail. Yet, these failures are ignored during the tests, which considers them to be successful as stderror is check for one specific pattern. If make fails, investigation should be made to discover why, whatever the reason for the failure is. * t/ax/depcomp.sh: Make make_ok fail when make fails. | ||
| 7fd1d064 | 2023-01-13 04:02:57 | distdir/emacs: avoid `test -d` with MKDIR_P We don't need to do the `test -d ... || mkdir ...` dance when we have the MKDIR_P helper, so simplify this code a bit. * lib/am/distdir.am: Use $(MKDIR_P). * lib/am/lisp.am: Drop redundant `test -d`. | ||
| c9479c29 | 2023-01-12 20:31:31 | tests: rework gettext to only check 'external' behavior The gettext project deprecated non-external use back in 2010 with the 0.18 release, and made it fatal with the 0.20 release in 2019. With that version, calling AM_GNU_GETTEXT() fails, which means all Automake tests are now skipped. The t/gettext-macros.sh helper probes gettext as such: >+ autopoint --force > autopoint: *** AM_GNU_GETTEXT without 'external' argument is no longer supported in version 0.21.1 > autopoint: *** Stop. > ... >+ aclocal-1.16 -Werror -Wno-syntax -I m4 --install > aclocal-1.16: warnings are treated as errors > configure.ac:4: warning: macro 'AM_GNU_GETTEXT' not found in library > configure.ac:5: warning: macro 'AM_GNU_GETTEXT_VERSION' not found in library >+ echo skip_all_ "couldn't find or get gettext macros" Since t/gettext-macros.sh generates a helper that all other gettext tests use to see if gettext is available, all they get skipped. Rework our existing tests to only check the 'external' gettext mode. This should work with older versions, and we don't really need to keep track of old non-external mode since it's been deprecated for so long. * t/gettext-basics.sh: Use external gettext mode, and adjust tests. * t/gettext-config-rpath.sh: Likewise. * t/gettext-macros.sh: Likewise. * t/gettext-pr381.sh: Likewise. * t/subdir-cond-gettext.sh: Likewise. | ||
| 9067b181 | 2023-01-13 00:09:06 | tests: disable git log pager usage When running this code locally, the git log call can trigger a pager depending on the local settings, which in turn forces the test to be interactive. Run git with --no-pager to force disable it. * t/get-sysconf.sh: Run git with --no-pager. | ||
| 34c5008d | 2023-01-03 22:38:22 | tests: change `sort|uniq` to `sort -u` These are equivalent, but more performant. We already use `sort -u` elsewhere in the codebase, so nothing new here really. * t/add-missing.tap: Change `sort|uniq` to `sort -u`. * t/CheckListOfTests.am: Likewise. | ||
| 2a9908da | 2022-12-12 08:05:53 | tests: Fix 'type defaults' error in link_cond due to main not being properly declared This is related to an effort to prepare Automake for future GCC/Clang versions which set c99 as default standard to be used. Not properly declaring main as "int main(...)" is rejected since c99. * t/link_cond.sh: Add (void) to main definition. | ||
| 55f8fcfd | 2023-01-11 22:07:22 | dirstamp: switch to a pattern rule We can leverage $(@D) to generate a single pattern rule for all dirstamp rules. This saves many lines in the output -- normally we create 2 rules (or 6 lines) per subdir, and projects that use subdirs tend to use them quite a bit. In the most extreme & unlikely case (1 subdir, no depdir support), the line count is the same. In every other case, it's always a win. Looking at a few real world projects, the line deltas: * GNU libgloss: +3 -66 * GNU newlib: +3 -714 * GNU sim: +3 -138 There shouldn't be any concerns about portability with $(@D) because: (0) This has been in POSIX (and beyond) for decades, (1) We only generate this rule iff we know the dirstamp is in a subdir (so we'd never have a case where $(@D) would expand to the cwd, and that is where a few implementations are known to be buggy), (2) We already rely on $(@D) in our depdir code, and have since 2014 (the Automake 1.16 release). | ||
| 054b02ce | 2023-01-11 21:40:04 | dirstamp: use append too instead of truncate We changed the depfiles logic to use >> (append) instead of > (truncate) due to it being slightly faster & nicer to the disk. Do the same with the dirstamp files as we only need the files to exist -- we don't care about their content, and we never put anything in them ourselves. If someone else were to, we clean them up normally with `make clean`. Simple test case on my Linux 6.1 w/ext4 on SSD: @: > foo.txt for (i = 0; i < 1000000; ++i) close(open("foo.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666)); -> 769 msec @: >>foo.txt for (i = 0; i < 1000000; ++i) close(open("foo.txt", O_WRONLY|O_CREAT|O_APPEND, 0666)); -> 2 sec | ||
| f15852df | 2023-01-03 21:46:38 | rm: convert more cases to am__rm_f Fixes automake bug https://bugs.gnu.org/10828. Clean up a few more cases where we were doing `test ... || rm ...` to avoid calling `rm -f` without arguments by leveraging am__rm_f. These were harder to find in the source due to their constructed nature. The clean programs rules in particular were much more complicated than they needed to be. This logic boiled down to two things: delete the list of programs, and then delete the list without the exeext suffix, but only if the list of programs is non-empty. The check-TESTS rule was converted to am__rm_f, but a simplification was missed where the $list variable is inlined. * bin/automake.in: Delete test -z logic and always call am__rm_f. * contrib/check-html.am: Use $(am__rm_f) helper. * doc/automake.texi: Update examples to match current behavior. * lib/am/check.am: Inline $list variable. * lib/am/progs.am: Rewrite rule to use $(am__rm_f). | ||
| 2c0a22f9 | 2023-01-08 17:56:40 | doc: overriding targets doesn't mean third-party Makefiles. Fixes automake bug https://bugs.gnu.org/60607. * doc/automake.texi (dvi and distcheck): simply show dvi: as an example of a do-nothing Makefile (xref to Extending), instead of cross-referencing the complicated method in Third-Party Makefiles. (Clean, Extending): wording tweaks. | ||
| efc7dc40 | 2023-01-03 23:30:29 | check: drop unused trs_list variable When the code that used this variable was removed, the variable itself was left behind. Clean that up now too. * lib/am/check.am: Delete trs_list. | ||
| 2cb09ea9 | 2023-01-03 21:07:45 | depend: trim spurious leading tab These vars are replaced with a list of remove commands that are joined with a \n and each line always has a leading \t inserted. That means the literal tab here before the var leads to 2 tabs included in the output. While not functionally a problem, it can be a bit confusing when reading the output as it implies something is amiss. Trimming the tab also aligns with the other .am files which don't include it. * lib/am/depend.am: Delete tab before %DISTRMS%. | ||
| 34bdde96 | 2023-01-04 02:00:14 | maint: make update-copyright | ||
| 2418a6c2 | 2023-01-04 01:57:06 | maint: Update files from upstream with 'make fetch' Pulls some 2023 copyright updates. * lib/config.guess: Update. * lib/config.sub: Likewise. * lib/gendocs.sh: Likewise. * lib/gendocs_template: Likewise. * lib/gitlog-to-changelog: Likewise. * lib/gnupload: Likewise. * lib/texinfo.tex: Likewise. * lib/update-copyright: Likewise. | ||
| ed1368e8 | 2022-12-12 14:50:33 | test: avoid apostrophe in test document. From automake patch https://bugs.gnu.org/59989 (though a different solution), suggestion by Frederic Berat. * t/txinfo-include.sh: avoid apostrophes in test document, since Texinfo 7.0 turns them into UTF-8 by default. | ||
| 63216e55 | 2022-10-06 14:08:55 | doc: typo in HACKING changes. * HACKING: allow backward compatibilities again. |