lib

Branch


Log

Author Commit Date CI Message
Karl Berry 9075f2e0 2025-09-20T14:48:47 ylwrap: trivial shell fixes. * lib/ylwrap: exit if cd fails, quote args to test, doc typos.
Karl Berry 9b92240a 2025-06-25T14:16:03 mdate-sh: ignore $SOURCE_DATE_EPOCH (again). * lib/mdate-sh: pay no attention to SOURCE_DATE_EPOCH. The previous change (2025-05-15) was a misunderstanding; looking at SOURCE_DATE_EPOCH causes spurious makeinfo rebuilds: https://lists.gnu.org/archive/html/automake/2025-06/msg00021.html * t/mdate5.sh: remove check for this. * t/txinfo-vtexi4.sh: likewise. * doc/automake.texi (Texinfo): remove mention of this. * NEWS: update.
Bruno Haible 5feae5cf 2025-06-20T18:06:20 automake: improve debuggability of installcheck failures. From https://bugs.gnu.org/78850. * lib/am/progs.am (installcheck-%DIR%PROGRAMS): Show the cause of each failure. * lib/am/scripts.am (installcheck-%DIR%SCRIPTS): Likewise. * NEWS: mention this.
Karl Berry 9e56f198 2025-06-19T14:42:06 maint: secondary updates from make fetch. * lib/gendocs.sh: update with make fetch. * lib/gitlog-to-changelog: likewise. * lib/gnupload: likewise. * lib/texinfo.tex: likewise. * lib/update-copyright: likewise.
Collin Funk 167f018c 2025-06-19T14:39:42 maint: silence 'time-stamp' warnings with bleeding-edge Emacs. * contrib/tap-driver.pl: Use "%Y" instead of "%:y" for the 'time-stamp-format' local variable. * lib/compile: Likewise. * lib/depcomp: Likewise. * lib/install-sh: Likewise. * lib/mdate-sh: Likewise. * lib/missing: Likewise. * lib/mkinstalldirs: Likewise. * lib/py-compile: Likewise. * lib/tap-driver.sh: Likewise. * lib/test-driver: Likewise. * lib/ylwrap: Likewise.
Karl Berry 252023ff 2025-05-23T08:54:17 maint: secondary updates from make fetch. * maintainer/maint.mk (git-sv-host): switch to cgit.git.savannah.gnu.org/cgit, since https://git.savannah.gnu.org has become unreliable, due to AI crawler bombardment. (SV_GIT_CF, SV_GIT_GL): update. https://lists.gnu.org/archive/html/savannah-hackers-public/2025-05/msg00040.html * lib/INSTALL: update with make fetch. * lib/gendocs.sh: likewise.
Jose Marchesi 110f6376 2025-05-21T09:49:46 automake: algol68: rename A68C and A68CFLAGS back to A68 and A68FLAGS. From https://bugs.gnu.org/78518, discussion at 78481 (both automake-patches). * bin/automake.in: Rename A68C and A68CFLAGS to A68 and A68FLAGS. * doc/automake.texi: Likewise. * configure.ac: Rename GNU_A68C and GNU_A68FLAGS to GNU_A68 and GNU_A68FLAGS. * lib/Automake/Variable.pm: Likewise. * t/a68-demo.sh: Likewise.
Karl Berry b78b7061 2025-05-20T09:17:04 mdate-sh: support $SOURCE_DATE_EPOCH. From https://bugs.gnu.org/77805. * lib/mdate-sh: if $SOURCE_DATE_EPOCH is set, use it instead of the mtime of any file. Debian was removing @value{UPDATED}, etc., from manuals because of varying output. Try date --date, then date -r, then perl gmtime, then fall back to the file's mtime. Also, warn if more than one file argument is given. (mon_to_month): factor out conversion of Jan to January. * t/mdate5.sh: test it. * doc/automake.texi (Texinfo): mention it. * NEWS: mention it.
Reuben Thomas 939d256c 2025-05-03T09:31:41 tap: fix typo in usage message. * lib/tap-driver.sh: The usage message was missing a hyphen in '--log-file'.
Karl Berry 94802547 2025-04-28T15:42:52 automake: algol68: also rename [AM_]A68FLAGS to [AM_]A68CFLAGS. From https://bugs.gnu.org/78033 (automake-patches). * bin/automake.in (a68): change link and compile values. * lib/Automake/Variable.pm: likewise rename. * configure.ac: likewise rename. * doc/automake.texi: likewise rename.
Jose Marchesi 282b016e 2025-04-24T15:07:41 automake: algol68: rename A68 to A68C and AM_PROG_A68 to AM_PROG_A68C. From https://bugs.gnu.org/78033 (automake-patches). While upstreaming the Algol 68 autoconf support it was pointed out that the shell variable A68 should be renamed to A68C and that the macro AC_PROG_A68 should be renamed to AC_PROG_A68C. This is to be more consistent to the support for other languages like Go. This patch updates the Automake side. The Algol 68 code snippets are also updated to use modern stropping, which is the stropping regime now used by default by ga68. * bin/automake.in (a68): change config_vars, libtool_tags et al. * lib/Automake/Variable.pm: likewise rename. * doc/automake.texi: likewise rename. * t/a68-demo.sh: likewise modify.
Reuben Thomas 60e0e0e1 2025-04-18T14:20:05 doc: fix whitespace typo in comment. * lib/am/check.am: remove a spurious space after a hyphen.
Karl Berry 6613adf2 2025-04-11T08:23:23 maint: secondary updates from make fetch. * lib/texinfo.tex: update with make fetch.
Karl Berry 94cb76a1 2025-03-13T14:39:59 dist: document bzip3 support. More from https://bugs.gnu.org/73795 (automake-patches). * doc/automake.texi (The Types of Distributions): add item for bzip3. Analogous changes throughout. * lib/am/distdir.am (dist-bzip3): bzip3 does not read any envvars; don't set BZIP2.
Karl Berry 32833cbe 2025-02-25T09:39:18 maint: secondary updates from make fetch. * lib/texinfo.tex: update with make fetch.
Bogdan ba3a673d 2025-02-24T10:30:42 dist: correct sense of no-dist-built-sources option. Primarily from https://bugs.gnu.org/69908. * bin/automake.in (preprocess_file) <DIST_BUILT_SOURCES>: make the option name be "no-dist-built-sources", per Options.pm and automake.texi; then set it with a single !. * lib/am/distdir.am (distdir) [DIST_BUILT_SOURCES]: insert the dependency on $(BUILT_SOURCES) when DIST_BUILT_SOURCES is true, not false; i.e., sense was reversed. * t/dist-no-built-sources.sh: edit the test configure.ac in the no-dist-built-sources case. Rename the testopt value to match the Automake option. * NEWS: mention this.
Richard Hansen 40396ebd 2025-02-03T18:26:58 tap: include malformed output in error message to aid with debugging * lib/tap-driver.sh: If the line that should contain the test script's exit status is not an integer (which would indicate a bug with the driver, not the code under test), include the line in the error message to help with debugging.
Richard Hansen 2657b484 2025-02-03T18:26:57 tap: new `--stderr-prefix' option to prefix test script's stderr * lib/tap-driver.sh: Add a new `--stderr-prefix' option to instruct the TAP driver to prefix each line of the test script's standard error with the given string. This is useful when `--merge' is enabled and standard error lines might be confused with test results. * doc/automake.texi: Document the new `--stderr-prefix' option. * t/tap-stderr-prefix.tap: New test. * t/list-of-tests.mk (handwritten_TESTS): Add it.
Richard Hansen e8df4cd3 2025-02-03T18:26:56 tap: minimize stderr redirection to just the test script * lib/tap-driver.sh: Keep driver stderr separate from test script stderr to aid with debugging (e.g., `set -x').
Richard Hansen 68091961 2025-02-03T18:26:55 tap: close fd 3 before invoking the test script * lib/tap-driver.sh: Close file descriptor 3 before invoking the test script to avoid potential conflicts with the test script.
Kamila Szewczyk 735a386e 2025-02-21T09:38:52 dist: add bzip3 support. From https://bugs.gnu.org/73795 (automake-patches). * bin/automake.in (handle_dist): add bzip3 support. https://github.com/kspalaiologos/bzip3 * lib/Automake/Options.pm (_is_valid_easy_option): likewise. * lib/am/distdir.am (dist-bzip3): likewise. * t/dist-formats.tap: likewise. * t/dist-bzip3.sh: new test. * t/list-of-tests.mk (handwritten_TESTS): add it. * NEWS: mention this. * THANKS: add Kamila.
Karl Berry 0ea7ef97 2025-02-09T09:36:24 python: restore more compatible behavior for $PYTHON. For https://bugs.gnu.org/74434. * lib/py-compile: if $PYTHON -V does not include the string "python" (case-insensitive), consider the support intentionally disabled and exit successfully, unless PYTHON is set to false, in which case exit unsuccessfully. This is closer to the old behavior. Mention this in the help message. * t/py-compile-env.sh: add test for PYTHON=:. * NEWS: mention this. (And, en passant, add some past bug#s and clarify that only RCS/SCCS pattern rules were disabled, not all.)
Bruno Haible 3fbc3f90 2025-02-03T14:18:16 compile: Improve support for C++ compilations on MSYS2. * lib/compile (func_file_conv): Use 'cygpath -w', not 'cygpath -m' (c:\... vs. c:/... resp.). * lib/ar-lib (func_file_conv): Likewise.
Bruno Haible 5b9821de 2025-02-03T14:16:42 compile: Distinguish various MinGW, MSYS, MSYS2 environments correctly. * lib/compile (func_file_conv): Use not only "uname -s", but also $MSYSTEM and the presence of cygpath, in order to distinguish the original MinGW and MSYS2. * lib/ar-lib (func_file_conv): Likewise.
Bruno Haible 03c4c309 2025-02-03T14:15:35 compile: Simplify, no need for nonexistent $file_conv=msys case, * lib/compile (func_file_conv): Remove unnecessary |msys, added on 2019-11-11. * lib/ar-lib (func_file_conv): Likewise.
Jose Marchesi bbb06167 2025-02-02T10:11:24 Add support for the Algol 68 programming language. * bin/automake.in: Call register_language for Algol 68. (resolve_linker): handle A68LINK. (%_am_macro_for_cond): Add entry for am__fastdepGA68. * configure.ac: Look for ga68 and set GNU_GA68 and GNU_A68FLAGS if found. * lib/Automake/Variable.pm (%_ac_macro_for_var): Add entries for GA68 and GA68FLAGS. * t/a68-demo.sh: New test. * doc/automake.texi (Algol 68 Support): New section. * NEWS: Add entry for Algol 68.
Karl Berry fc1c3f65 2025-01-31T09:20:47 automake: just use warnings, with no => FATAL. Per Perl recommendation: https://perldoc.perl.org/warnings#Fatal-Warnings Suggested by Collin Funk: https://lists.gnu.org/archive/html/automake/2025-01/msg00003.html And in the Perl discussion: https://github.com/Perl/perl5/issues/22954#issuecomment-2622966302 * bin/aclocal.in: just use warnings, not making them fatal. * bin/automake.in: * contrib/tap-driver.pl: * gen-testsuite-part: * lib/Automake/ChannelDefs.pm: * lib/Automake/Channels.pm: * lib/Automake/Condition.pm: * lib/Automake/Config.in: * lib/Automake/Configure_ac.pm: * lib/Automake/DisjConditions.pm: * lib/Automake/FileUtils.pm: * lib/Automake/General.pm: * lib/Automake/Getopt.pm: * lib/Automake/Item.pm: * lib/Automake/ItemDef.pm: * lib/Automake/Language.pm: * lib/Automake/Location.pm: * lib/Automake/Options.pm: * lib/Automake/Rule.pm: * lib/Automake/RuleDef.pm: * lib/Automake/VarDef.pm: * lib/Automake/Variable.pm: * lib/Automake/Version.pm: * lib/Automake/Wrap.pm: * lib/Automake/XFile.pm: * t/ax/deltree.pl: * t/ax/extract-testsuite-summary.pl: * t/check-fd-redirect.sh: * t/tap-signal.tap: * t/tests-environment-fd-redirect.sh: * t/testsuite-summary-count-many.sh:
Paul Eggert 61075eab 2025-01-01T14:31:02 maint: make update-copyright
Paul Eggert 8da33f8f 2025-01-01T14:28:48 make fetch
Collin Funk cee9ca0a 2024-12-03T14:56:53 lib scripts: Make time-stamp after-save-hooks buffer-local. From https://bugs.gnu.org/74661. * contrib/tap-driver.pl: Add time-stamp-line-limit so Emacs updates the timestamp. Pass optional arguments to 'add-hook'. * lib/tap-driver.sh: Likewise. * lib/compile: Pass optional arguments to 'add-hook'. * lib/depcomp: Likewise. * lib/install-sh: Likewise. * lib/mdate-sh: Likewise. * lib/missing: Likewise. * lib/mkinstalldirs: Likewise. * lib/py-compile: Likewise. * lib/test-driver: Likewise. * lib/ylwrap: Likewise.
Karl Berry 24b02193 2024-10-16T14:34:11 doc: doubled words in source comments. Fixes https://bugs.gnu.org/73828 and https://bugs.gnu.org/73829. * lib/Automake/Item.pm: repeated "that". * lib/Automake/Variable.pm: repeated "by". Reports from Bjarni Ingi Gislason. Other English fixes en passant.
Karl Berry 3f9888e2 2024-09-10T15:44:57 automake: recognize all-numeric MAJ.MIN.MICROa.ALPHA versions better. * HACKING: more doc on version numbers. * configure.ac (AC_INIT): 1.17.0.91, since we want (I guess) to retain odd numbers for development and even numbers for pretests. * m4/amversion.m4 (AM_AUTOMAKE_VERSION): 1.17.0.91 (auto-update). (AM_SET_CURRENT_AUTOMAKE_VERSION): likewise. * lib/Automake/Options.pm (_process_option_list): recognize four-part numeric versions as Automake options. * lib/Automake/Version.pm (split): recognize four-part numeric versions. * t/pm/Version.pl (@tests, @bad_versions): update test to check (not reject) four-part numeric versions.
Karl Berry 9719ecd7 2024-07-08T15:04:48 automake: info about Automake and Libtool being in different prefixes. In response to https://bugs.gnu.org/71847. * doc/automake.texi (Libtool library used but LIBTOOL is undefined): new node. Tweak aclocal section. * lib/Automake/Variable.pm (require_variables): refer to the new node in the message for LT_INIT. * maintainer/maint.mk (announcement) <AO>: new fn; use it to output a link to the new node for test releases only. * HACKING: mention M-x texinfo-master-menu, et al. * doc/amhello/README: mention that the package is named amhello.
Karl Berry 7a506f58 2024-07-08T10:18:16 maint: secondary updates from make fetch. * lib/gendocs.sh: update with make fetch. * lib/gitlog-to-changelog: likewise. * lib/gnupload: likewise. * lib/update-copyright: likewise.
Karl Berry b020a9ca 2024-06-30T13:26:51 automake: avoid Perl-level warning on empty variable $(). https://lists.gnu.org/archive/html/automake/2024-06/msg00085.html * lib/Automake/Variable.pm (scan_variable_expansions): recognize and do nothing if the variable name is empty: $(). * t/varempty.sh: new test. * t/list-of-tests.mk (handwritten_TESTS): add it.
Karl Berry 2b0b37e9 2024-06-20T13:34:46 test-driver: rm spurious blank line. * lib/test-driver (print_usage): remove spurious blank line. Report from Bruno, https://lists.gnu.org/archive/html/automake/2024-06/msg00075.html
Karl Berry d7326376 2024-06-19T09:43:18 maint: secondary updates from make fetch. * lib/gendocs.sh: update with make fetch. * lib/gitlog-to-changelog: likewise.
Karl Berry cde0e3bb 2024-06-19T09:41:22 doc: rewrite subsecond NEWS entry, sanity.m4 "make" testing wrong, etc. * m4/sanity.m4 (_AM_FILESYSTEM_TIMESTAMP_RESOLUTION): mention that testing of "make" is wrong here; but $(MAKE) is not available? Do some special pleading that it won't matter in practice; we'll see. https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html (AM_SANITY_CHECK): use $[]* instead of $[*]2 to avoid the confusing apparent (but not) use of shell arrays; the square brackets are parsed off by m4. * lib/am/check.am (output_system_information): en passant, mention that $(AWK) should always be defined since AC_PROG_AWK is part of AM_INIT_AUTOMAKE nowadays. * NEWS: rewrite subsecond NEWS entry:workaround, more references.
Karl Berry 1696d6d7 2024-06-19T08:59:18 lib scripts: add "(GNU Automake)" to --version output, etc. * lib/ar-lib: add "(GNU Automake)" to --version output, and the "Report bugs" block to --help. * lib/compile: likewise. * lib/depcomp: likewise. * lib/install-sh: likewise. * lib/mdate-sh: likewise. * lib/missing: likewise. * lib/mkinstalldirs: likewise. * lib/py-compile: likewise. * lib/tap-driver.sh: likewise. * lib/test-driver: likewise. * lib/ylwrap: likewise. * t/py-compile-usage.sh: update --version pattern.
Collin Funk 6cb69ad8 2024-06-17T14:44:28 test: Improve output of system information in test-suite.log. Fixes https://bugs.gnu.org/71421. * lib/am/check.am ($(TEST_SUITE_LOG): Use $(AWK) instead of 'awk'. Remove an extra space in uname output. Start the line with "System information", and other sections with "Distribution information". * NEWS: add reference to #71421.
Bruno Haible a2d56238 2024-06-17T10:06:25 automake: allow omitting logs of skipped tests from test-suite.log. * doc/automake.texi (Parallel Test Harness): Describe the contents of test-suite.log. Mention IGNORE_SKIPPED_LOGS. (Command-line arguments for test drivers): Document the --collect-skipped-logs option. * lib/test-driver (print_usage): Document --collect-skipped-logs. (collect_skipped_logs): New variable. (gcopy): Use collect_skipped_logs. * lib/am/check.am (am__common_driver_flags): Add the contents of am__collect_skipped_logs. (am__check_pre): Set am__collect_skipped_logs. * t/parallel-tests-without-skipped-logs.sh: New file, based on t/parallel-tests-no-color-in-log.sh. * t/list-of-tests.mk (handwritten_TESTS): Add it. * NEWS: Mention the change.
Yves Orton f3752617 2024-06-15T18:18:35 automake: sort keys for reproducibility. Fixes https://bugs.gnu.org/25629. * bin/aclocal.in: sort keys for reproducibility. * bin/automake.in: likewise. * contrib/tap-driver.pl: likewise. * lib/Automake/Channels.pm: likewise. * lib/Automake/Condition.pm: likewise. * lib/Automake/DisjConditions.pm: likewise. * lib/Automake/Getopt.pm: likewise. * lib/Automake/Rule.pm: likewise. * THANKS: Add Yves. * NEWS: mention this.
Paul Eggert 1d35638b 2024-06-07T08:41:45 maint: spelling and whitespace fixes Most of these spelling fixes are just to comments and documentation. However, some affect tests as follows: * t/cond36.sh (tparse.h): Fix misspelling of dependency. * t/disthook.sh: Fix misspelling of file. * t/help3.sh: Fix misspelling of long option. * t/instdir-ltlib.sh: Fix misspellings of macro names. This causes the test to fail, so someone with libtool expertise needs to look into this. * t/tap-no-spurious-numbers.sh (highno): Fix misspelling of shell var.
Karl Berry 61357c93 2024-05-31T08:58:23 maint: secondary updates from make fetch. * doc/help2man: restore copyright list as in upstream. * lib/gendocs.sh: update with make fetch. * lib/texinfo.tex: likewise.
Karl Berry b5311796 2024-05-29T18:16:01 missing: shellcheck disable=SC2006,SC2268 From Jacob Bachmeyer, in thread around https://lists.gnu.org/archive/html/automake-patches/2022-01/msg00014.html * lib/missing: disable shellcheck warnings about `...`. We must support pre-POSIX shells in Automake. (scriptversion=2024-05-29.18)
Mark Wooding 0d49ecb2 2024-05-21T09:54:35 doc: test-driver option args are separate words. For https://bugs.gnu.org/70638. As now mentioned in the manual, the description of the test-driver command-line interface has been wrong since 2011 when it was first added. The manual, and the driver usage messages themselves, have consistently shown option arguments joined to the option name with `=' characters, while the implementation of Automake has always provided option arguments in the following argument word, and the provided test drivers only accepted option arguments in the following argument word. Because Automake has never used the `=' syntax, there can't possibly be a working driver which actually follows the specification as written, so, despite the fierce language of the manual, we agreed that changing the specification was the right approach. The `test-driver' program's usage message has already been fixed (#22445), but the full extent of the problem wasn't noticed at that time. * doc/automake.texi (Command-line arguments for test drivers): Fix the table of options to show arguments passed as separate words; add footnote explaining this rather sorry situation. * doc/automake.texi (Use TAP with the Automake test harness): Remove `=' from documentation of `--diagnostic-string', because that was never acceptable either. * lib/tap-driver.sh: Fix usage message. * contrib/tap-driver.pl: Change usage message to match the defined protocol. (This implementation parses options using Perl's `Getopt::Long' module, so it accepts the `=' syntax as specified, but this program isn't actually used.)
Karl Berry 70127e61 2024-02-03T08:38:49 test: make bug-reporting message on test failure more explicit. From https://bugs.gnu.org/68855. * NEWS: mention this. * lib/am/check.am ($(TEST_SUITE_LOG)) <please_report>: new fn, new wording. * t/ax/test-defs.in (failure_footer_text): new wording. (failure_footer_text_colorized): add red. * t/ax/tap-summary-aux.sh (failure_footer): use failure_footer_text*. * t/tap-doc2.sh: change grep. * t/testsuite-summary-color.sh: likewise. * t/testsuite-summary-count-many.sh: likewise. * t/testsuite-summary-count.sh: likewise. * t/testsuite-summary-reference-log.sh: likewise.
Karl Berry d550b6ee 2024-01-27T18:07:48 test: output system information after summary report. From https://bugs.gnu.org/68746. * lib/am/check.am ($(TEST_SUITE_LOG)) <output_system_information>: new shell fn, called inline to write basic os information into test-suite.log. Also, question (do not change) the ".. contents:: :depth: 2" line; what is this for?
Karl Berry 05856fd6 2024-01-27T10:59:15 maint: secondary updates from make fetch. * INSTALL: updated from make distcheck. * maintainer/maint.mk (fetch): update top-level INSTALL if we update lib/INSTALL. * lib/gendocs.sh: update with make fetch.
Karl Berry 248edc44 2024-01-24T15:47:59 maint: Update files from upstream with 'make fetch'. * lib/INSTALL: update with make fetch. * lib/config.guess: likewise. * lib/config.sub: likewise. * lib/gitlog-to-changelog: likewise. * lib/update-copyright: likewise.
Karl Berry 5bb9bb42 2024-01-24T15:43:24 doc: typo for Channels.pm, mention files for which we are the master. * HACKING: mention files for which we are the master. * lib/Automake/ChannelDefs.pm: typo for Automake::Channels; mention that we hold the master copy of this. * lib/Automake/Channels.pm: update/add text for master copy notice. * lib/Automake/Configure_ac.pm: likewise. * lib/Automake/FileUtils.pm: likewise. * lib/Automake/Getopt.pm: likewise. * lib/Automake/XFile.pm: likewise.
Paul Eggert b80b5c47 2024-01-01T11:29:06 maint: make update-copyright
Paul Eggert 0d0926ef 2024-01-01T11:27:31 maint: make fetch
Bruno Haible 21ac1161 2023-12-30T15:37:05 dist: Use -9 instead of --best, and only for gzip, to pacify Alpine. From https://bugs.gnu.org/68151. * lib/am/distdir.am (GZIP_ENV): Set to -9, not --best, since Alpine does not support --best. (distcheck): Don't use GZIP_ENV when invoking gzip for decompression, since Alpine does not support -1..-9 with decompression. * doc/automake.texi (The Types of Distributions): Document the change. * NEWS: mention this. (En passant, add more change links.)
Jim Meyering c8fcdede 2023-12-27T06: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.
Zack Weinberg 352d5f6f 2023-12-22T15: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.
Dave Hart 90ef1189 2023-12-20T14:12:34 doc: typo in tap-driver.sh. * lib/tap-driver.sh: to not too.
karl 31a4eb47 2023-12-17T08: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.
Karl Berry 72ab19f5 2023-12-11T09: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.
Zack Weinberg cfdb83d4 2023-12-10T09: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.
Olly Betts 94f4bad7 2023-11-24T09:31:18 compile: support libtool .lo, needed for Xapian on Windows. * lib/compile (func_cl_wrapper):handle *.lo like *.o.
Karl Berry fba903e6 2023-11-23T09: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.
Alex Vong 68db06db 2023-11-23T09: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.
Jakub Wilk 4adfd131 2023-11-19T06:55:04 doc: typos in tap-driver.sh. * lib/tap-driver.sh: fix typos.
Vincent Lefevre 1c618bce 2023-10-06T08: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.
Jan Engelhardt 56766ede 2023-08-09T18: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.
Bruno Haible dbdfa65c 2023-07-20T18: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.)
Bogdan ab347652 2023-07-05T08: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.
Bogdan 4bd4640e 2023-07-01T08: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
Karl Berry 4e86c7ed 2023-06-28T10: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.
Paul Eggert 226b6131 2023-06-08T14: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
Karl Berry ae8d12e3 2023-05-27T17: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.
Paul Eggert c04c4e88 2023-03-29T18:07:10 Port py-compile to Python 2.6- * lib/py-compile: Port to Python 2.6 and earlier, which lack importlib.
Jacob Bachmeyer efce8539 2023-02-07T22:42:59 Gracefully degrade if Time::HiRes is not available Copyright-paperwork-exempt: yes
Jacob Bachmeyer 0e127700 2023-02-07T22:39:29 Revert "maint: require perl 5.010 or later" This reverts commit 4e3744a15c4d8bdb46c11ead2fb56c5f591b714b. Copyright-paperwork-exempt: yes
Paul Eggert 01bf65da 2023-02-02T14: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>.
Paul Eggert 4e3744a1 2023-02-02T14:13:24 maint: require perl 5.010 or later This is needed for better treatment of high-res timestamps.
Mike Frysinger 7fd1d064 2023-01-13T04: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`.
Mike Frysinger f15852df 2023-01-03T21: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).
Mike Frysinger efc7dc40 2023-01-03T23: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.
Mike Frysinger 2cb09ea9 2023-01-03T21: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%.
Mike Frysinger 34bdde96 2023-01-04T02:00:14 maint: make update-copyright
Mike Frysinger 2418a6c2 2023-01-04T01: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.
Karl Berry 2a1e6f74 2022-10-01T15:03:16 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/texinfo.tex: Likewise. * doc/help2man: now 1.49.1.
Zack Weinberg 13fb472c 2022-09-28T10:12:24 python: better Python compilation portability. This change is per automake thread: https://lists.gnu.org/archive/html/automake/2022-09/msg00002.html * lib/py-compile: Test directly for availability of importlib.util.cache_from_source. Untangle logic for when to generate -O and -OO bytecode. Reformat embedded Python fragments.
Zack Weinberg 5615016c 2022-09-28T09:06:40 dist: ignore "silly rename" files from nfs/afs/smb. This change is per automake thread: https://lists.gnu.org/archive/html/automake/2022-09/msg00002.html * lib/am/distdir.am (distcleancheck_listfiles): filter "silly rename" files (.nfs* .smb* .__afs*), unavoidably created by deleting files that are still open in some process on network file systems.
Richard Hopkins d4801dff 2022-09-26T09:04:59 automake: load -l bytecomp for Emacs. * lib/am/lisp.am (.el.elc): Require the bytecomp library so byte-compile-dest-file-function can be used when available.
Richard Hopkins bee2ab12 2022-09-26T08:57:43 automake: silent make output for Emacs byte compilation. * lib/am/lisp.am: Use $(AM_V_GEN) in .el.elc rule. * NEWS: mention this. * THANKS: add new contributor.
Karl Berry 023189d4 2022-09-18T14:11:15 doc: typo in depcomp. * lib/depcomp: obsosete -> obsolete. Report from anonymous.
Alexander Neumann 5f3e37da 2022-07-25T17:49:53 compile: look for clang-cl. * lib/compile: check for clang-cl, calling func_cl_wrapper. * THANKS: add new contributor.
Jan Engelhardt f9fdcdfd 2022-05-23T13:47:02 deps: create empty file instead of dummy file. This change is per an automake thread, see both before and after: https://lists.gnu.org/archive/html/automake/2022-05/msg00006.html * lib/am/depend.am ($(am__depfiles_remade)): create empty files for dependencies instead of files with a line '# dummy'. Turns out this is noticeably faster. * THANKS: update Jan's email address. * NEWS: mention this.
Mike Frysinger bde43d04 2022-02-06T01:25:59 py-compile: fix optimized compiling for Python 3.5+ Fixes automake bug https://bugs.gnu.org/38043. Split the optimized compilation logic into a new section. This avoids trying to support multiple versions of major versions in a single script as it gets harder to verify new changes don't break old versions as time goes on. Now for Python 3.5+, compile with -O0 (which is "higher" than -O). * NEWS: Mention fix. * THANKS: Add Michal Górny. * lib/py-compile: Add new section for compiling Python 3.5+.
Mike Frysinger 8abf0894 2022-02-20T13:28:48 automake: support embedded \# in variable appends Fixes automake bug https://bugs.gnu.org/7610. Use of \# is not portable. POSIX does not provide any way of retaining the # marker in variables. There is wide spread support for \# though in GNU & BSD Make implementations. Today, with plain variable assignments, Automake leaves the line alone: foo = blah\#blah This will leave it to the implementation to decide what to do. But if you try to append to it, Automake follows POSIX and strips it: foo = blah\#blah foo += what -> foo = blah\ what Instead, let's issue a portability warning whenever \# is used, even if it isn't being appended, and do not strip the \# when appending. Now: foo = blah\#blah foo += what -> warning: escaping \# comment markers is not portable -> foo = blah\#blah what * NEWS: Mention change in \# handling. * lib/Automake/VarDef.pm: Do not strip # if escaped. * lib/Automake/Variable.pm: Warn if \# is used. * t/comment12.sh: New test. * t/comments-escaped-in-var.sh: New test. * t/list-of-tests.mk: Add comment12.sh & comments-escaped-in-var.sh.
Mike Frysinger 38da1d90 2022-02-17T04:35:03 python: use xargs -n when uninstalling files Fixes automake bug https://bugs.gnu.org/53340. If the system has xargs, then utilize it to uninstall files to stay within long command line limits. If the system doesn't have xargs, fall back to running the remove command one at a time. Since every reasonable system should have `xargs -n`, and POSIX requires it, the fallback probably rarely gets used, so don't bother optimizing. * lib/am/inst-vars.am: Use am__xargs_n to call rm -f on the files. * lib/am/python.am: Drop am__base_list and for loop and let the am__uninstall_files_from_dir break up the long command lines. * m4/init.m4: Call _AM_PROG_XARGS_N. * m4/xargsn.m4: New test for `xargs -n`.
Mike Frysinger 3099097d 2022-02-17T03:50:55 rm: handle -f w/no arguments gracefully Fixes automake bug https://bugs.gnu.org/10828. Delete the configure check that would abort if `rm -f` does not work, and delete the plans to make this a hard requirement in the future. Instead, test to see if `rm -f` fails w/out arguments. If it does, define am__rm_f such that it always passes at least the "" argument when deleting files. If it doesn't fail, then we can omit the "". Then go through lib/am/ and update places where we use the pattern `test -z ... || rm -f ...` and replace with $(am__rm_f). * NEWS: Mention support for `rm -f` w/out arguments. * PLANS/rm-f-without-args.txt: Remove. * lib/am/check.am: Use new $(am__rm_f) helper. * lib/am/clean.am: Likewise. * lib/am/header-vars.am: Likewise. * lib/am/inst-vars.am: Likewise. * lib/am/libs.am: Likewise. * lib/am/ltlib.am: Likewise. * lib/am/progs.am: Likewise. * lib/am/texinfos.am: Likewise. * m4/init.m4: Delete `rm -f` checks and call _AM_PROG_RM_F. * m4/rmf.m4: Define new _AM_PROG_RM_F macro. * t/rm-f-probe.sh: Update test.
Mike Frysinger 6097de0a 2022-02-15T22:25:35 python: fix exit status handling with uninstall The st variable is set at the top of this shell script, and then here is a pipeline where it tries to update it in the subshell. But since setting variables in a subshell doesn't propagate back up, it doesn't actually work. Have the final subshell in the pipeline manage its own exit status and exit with that so that the final status of the pipeline is the right value. * lib/am/python.am: Fix final subshell exit status passing.
Mike Frysinger 5c9e117c 2022-02-08T00:39:40 elisp: run emacs with --no-site-file Fixes automake bug https://bugs.gnu.org/21547. If users have interactive site file logic, the lispdir probing can hang, as can the compilation of elisp files. Use --no-site-file to disable loading any of that possible user logic. * NEWS: Note emacs --no-site-file change. * doc/automake.texi: Run emacs with --no-site-file. * lib/am/lisp.am: Likewise. * m4/lispdir.m4: Likewise.
Mike Frysinger 24a28a24 2022-02-07T23:29:13 ar-lib: ignore -nologo option We already invoke $AR with -NOLOGO all the time, so we can ignore the option entirely if the user specifies it. * lib/ar-lib: Ignore -NOLOGO.
Mike Frysinger 5b99315c 2022-02-06T01:24:52 py-compile: fix display when compiling multiple files The compilation steps print the filename as it runs, but forgets to add a space after it, so they all get squashed together: $ ./py-compile 1.py 2.py 3.py Byte-compiling python modules... 1.py2.py.3.py * lib/py-compile: Add missing write.
Mike Frysinger 8b2d281d 2022-02-06T00:22:50 py-compile: drop support for Python 0.x & 1.x Python 2.0 was released in 2000. There's really no way for us to check those old versions, so let's just drop them. No one will miss them. * NEWS: Note Python version support removal. * lib/py-compile: Abort if major version 0 or 1 is found. * t/py-compile-env.sh: Rework slightly to handle new version probing.