Log

Author Commit Date CI Message
Frédéric Bérat 6d6fc91c 2022-12-12T07: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.
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 c9479c29 2023-01-12T20: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.
Mike Frysinger 9067b181 2023-01-13T00: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.
Mike Frysinger 34c5008d 2023-01-03T22: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.
Frédéric Bérat 2a9908da 2022-12-12T08: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.
Mike Frysinger 55f8fcfd 2023-01-11T22: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).
Mike Frysinger 054b02ce 2023-01-11T21: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
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).
Karl Berry 2c0a22f9 2023-01-08T17: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.
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 ed1368e8 2022-12-12T14: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.
Kelvin M. Klann 63216e55 2022-10-06T14:08:55 doc: typo in HACKING changes. * HACKING: allow backward compatibilities again.
Karl Berry 7ae28351 2022-10-01T18:23:39 distcheck: more .NOTPARALLEL. * t/backcompat.sh: add .NOTPARALLEL. * t/subdir-add2-pr46.sh: likewise. (Maybe the problem is more general?)
Karl Berry 77c0e3e3 2022-10-01T15:24:54 maint: Update files from upstream with 'make fetch' + help2man. * INSTALL: update with make fetch.
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.
Karl Berry 92fcf10f 2022-10-01T14:59:51 maintcheck: placate maintainer-check and grep 3.8. * maintainer/syntax-checks.mk (sc_rm_minus_f): no \ before - (diagnosed by grep 3.8). * t/comment12.sh: use $(...) instead of `...`. * t/comments-escaped-in-var.sh: use AUTOMAKE_fails and grep for expected warning message. * t/list-of-tests.mk (handwritten_TESTS): add t/py-compile-files.sh. * t/subdir-add2-pr46.sh (.NOTPARALLEL): add; showed up with parallelized internal make. Seems unreproducible.
Karl Berry 96fd38d7 2022-10-01T09:19:57 more HACKING tweaks
Karl Berry 7191c6b4 2022-10-01T09:02:15 aclocal: protect against Perl undefined warnings. * bin/aclocal.in (usage): check that envvars (ACLOCAL_AUTOMAKE_DIR, ACLOCAL_PATH) are defined before printing values. * HACKING: describe running scripts from checkout, et al.
Karl Berry e0d24592 2022-09-28T10:17:35 doc: rearrange NEWS. * NEWS: reclassify bugs vs. features.
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.
Karl Berry 8a4ecd4f 2022-09-28T09:08:20 forgot NEWS update
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 cea8158f 2022-09-27T18:04:20 automake: do not use -Q with emacs invocations. This change is for https://bugs.gnu.org/58102. (By the way, the previous two commits were for bugs 58026 (silent .elc compilation) and 58025 (load bytecomp), respectively, but I forgot to mention them.) * m4/lispdir.m4 (AM_PATH_LISPDIR): omit -Q option. Also (from karl), use -no-site-file (one hyphen) for consistency with the other options. * NEWS: mention this. * doc/automake.texi (Hard-Coded Install Paths): likewise.
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.
Jim Meyering 208f103f 2022-05-23T23:20:37 fix: autoreconf fails due to .m4 files added but not installed * m4/local.mk (dist_automake_ac_DATA): Add both rmf.m4 and xargsn.m4. Building grep from "make maintainer-clean" state, failed like this: configure.ac:41: warning: _AM_PROG_RM_F is m4_require'd but not\ m4_defun'd configure.ac:41: warning: _AM_PROG_XARGS_N is m4_require'd but not\ m4_defun'd configure:5058: error: possibly undefined macro: _AM_PROG_RM_F configure:5059: error: possibly undefined macro: _AM_PROG_XARGS_N
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 fee9a828 2022-03-13T00:12:23 doc: refer to automake manual in all man pages Fixes automake bug https://bugs.gnu.org/54363. There is no "aclocal" manual as it's all integrated into the automake manual, so have all the help2man calls force automake as the manual. * doc/local.mk: Use --info-page=automake for man pages.
Mike Frysinger ff230b29 2022-02-24T22:25:45 automake: fall back gracefully when texinfo inputs don't exist Fixes automake bug https://bugs.gnu.org/54063. The function scanning for @setfilename will fall back to a default value if the input doesn't have one defined. But we need to handle the case where the file doesn't even exist before falling back. * bin/automake.in: Scan /dev/null for @setfilename if input doesn't exist. * t/list-of-tests.mk: Add txinfo-no-setfilename-no-inputs.sh. * t/txinfo-no-setfilename-no-inputs.sh: New test.
Mike Frysinger ce3bbbb4 2022-02-24T22:20:53 m4: handle id failures when checking ustar support Fixes automake bug https://bugs.gnu.org/20713. If `id` fails, display a specific warning message to the user. * m4/tar.m4: Check $am_uid & $am_gid if they're unknown.
Mike Frysinger d747a66a 2022-02-20T19:06:55 m4: rework silent-rules macros to avoid double expansion Fixes automake bug https://bugs.gnu.org/32868. The AM_SILENT_RULES macro defines all the silent-rules related setup. It's also called by users to change the default verbosity level. This leads to a quirk where automake calls it, expands the full context, and then users call it, and it's fully expanded again. Instead, let's rename AM_SILENT_RULES to _AM_SILENT_RULES and move the initialization logic to late in the configure stage. This allows the user-centric AM_SILENT_RULES call to expand into a single line to set the default verbosity. * m4/init.m4: Switch to _AM_SILENT_RULES. * m4/silent.m4: Rename AM_SILENT_RULES to _AM_SILENT_RULES. Delay evaluation of AM_SILENT_RULES to the end. Define new AM_SILENT_RULES to set default rules verbosity. * t/silent-defaults.sh: New tests. * t/list-of-tests.mk: Add t/silent-defaults.sh.
Mike Frysinger a61eaf68 2022-02-24T00:52:08 tests: make silent-custom regex a little more robust Fixes automake bug https://bugs.gnu.org/32800. Have the regex match the entire path with word boundaries on both sides. This should reduce false positives when the full cwd happens to match parent directories. * t/silent-custom.sh: Update the header output regex.
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 d5dc4e0a 2022-02-23T00:44:11 manual: mention LT_INIT The AC_PROG_LIBTOOL macro name is the old/deprecated one, so include LT_INIT here too to avoid confusing people who have switched. * doc/automake.texi: Add LT_INIT after AC_PROG_LIBTOOL.
Mike Frysinger c62e7230 2022-02-20T23:30:39 automake: allow required files to be in subdirs Fixes automake bug https://bugs.gnu.org/20300. The internal method for caching path lookups expects the $filename to only be a filename. If it's actually a subdir/file itself, then the cache logic gets confused, and it never matches. This manifests as AC_REQUIRE_AUX_FILE([subdir/file]) claiming that the subdir/file path doesn't exist even when it does. Before we process any required files, since we already construct the full path locally, reset the dir & file inputs to the final values. * bin/automake.in: Split dir & file name back out from the constructed required file path. * t/auxdir-subsubdir.sh: New test. * t/list-of-tests.mk: Add t/auxdir-subsubdir.sh.
Mike Frysinger 13ae585a 2022-02-20T14:28:11 tests: fix yacc C++ tests with some C++ compilers Fixes automake bug https://bugs.gnu.org/20031. The C++ standard does not require symbols be placed into the global namespace, just in the std namespace. The GNU implementation will place symbols in both. For our specific code, we don't care either. Unfortunately, it looks like generated flex code assumes that some stdlib.h symbols (free, malloc, exit) are in the global namespace, even when compiling for C++. So when we include <cstdlib> but not <stdlib.h>, we might not get the symbols in the global namespace. We can workaround this by including stdlib.h in these tests without invalidating the point of the tests in general. * t/yacc-cxx.sh: Include stdlib.h. * t/yacc-d-cxx.sh: Likewise. * t/yacc-mix-c-cxx.sh: Likewise.
Mike Frysinger 2cd42b7c 2022-02-20T13:56:24 tests: log autoconf & libtool version Having these in the sysconf log can be helpful when triaging test failures from users. * t/get-sysconf.sh: Log autoconf & libtoolize version.
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 31237ca4 2022-02-20T19:54:38 NEWS: fix typo in fix-timestamp.sh script name As pointed out by Eric Blake. * NEWS: Fix typo.
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 720a1153 2022-02-12T03:41:06 m4: speed up filesystem modification checks The current code sleeps at least 1 second to make sure the generated files are strictly newer than the source files. It does this for a few reasons: POSIX only guarantees that `sleep` accept integers, and filesystems have a history (c.f. Windows) of bad timestamp resolution. For the first part, we can easily probe sleep to see if it accepts a decimal number with a fractional part -- just run `sleep 0.001`. For the second part, we can create two files and then run sleep in a loop to see when one is considered newer than the other. For many projects, this 1 second delay is largely amortized by the rest of the configure script. Autoconf lends itself to being both large & slow. But in projects with many smallish configure scripts with many cached vars, the time to rerun is dominated by this single sleep call. For example, building libgloss against a compiler with many (60+) multilib configurations, we see: [Using sleep 1] $ time ./config.status real 2m28.164s user 0m33.651s sys 0m9.083s [Using sleep 0.1] $ time ./config.status real 0m39.569s user 0m33.517s sys 0m8.969s And in case anyone wonders, going below 0.1s doesn't seem to make a statistically significant difference, at least in this configuration. It appears to be within "noise" limits. [Using sleep 0.001] $ time ./config.status real 0m39.760s user 0m33.342s sys 0m9.080s * NEWS: Mention updated timestamp checking. * m4/sanity.m4: Determine whether `sleep` accepts fractional seconds. Determine (roughly) the filesystem timestamp resolution. Use this to sleep less when waiting for generated file timestamps to update.
Mike Frysinger be55eaaa 2022-02-12T02:12:42 m4: cache build env sanity checks When rerunning configure in an existing build dir, cache the previous results about environment settings. There should be no need to retest these in a dir that has already been configured. * m4/sanity.m4: Cache sanity results.
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.
Mathieu Lirzin 79d03908 2018-01-19T16:30:32 tests: do not assume AM_MAKEINFOHTMLFLAGS is used in non-html targets Fixes automake bug https://bugs.gnu.org/30172. Since AM_MAKEINFOHTMLFLAGS overrides AM_MAKEINFOFLAGS only for html targets, make sure we restore the hacked up makefile before testing the non-html formats. This normally doesn't cause a problem for most people, but if their tex install doesn't work correctly, texi2dvi will fallback to running $MAKEINFO and using invalid flags in the process. * THANKS: Add Mathieu Lirzin. * t/txinfo-many-output-formats.sh: Restore Makefile.am after testing html targets. * t/txinfo-many-output-formats-vpath.sh: Likewise.
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 8ff90705 2022-02-06T01:23:47 manual: document Python version support status Clarify to users what versions of Python are supported and until when. This will make it easier for us to decide what versions to support. * doc/automake.texi: Add Supported Python versions section.
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.
Mike Frysinger 8a913c26 2022-02-05T23:43:38 py-compile: handle filenames with whitespace The list of files is put into a string and then split on whitespace. Fix the way the list of files are passed to the compile script. * lib/py-compile: Pass files as arguments, not as a string. * t/py-compile-files.sh: New test.
Mike Frysinger faa1d2c5 2022-02-05T23:01:31 py-compile: clean up usage info Include the full summary of options in the output. * lib/py-compile: Update usage output. * t/py-compile-usage.sh: Update test to match new output.
Mike Frysinger c54a2154 2022-01-31T02:30:11 maint: include versioned manual in update When publishing the updated manual, include the versioned copy too, and have their index.html link to the full version index. * maintainer/maint.mk: Copy manual to manual/$(VERSION)/, and insert index-full.html link into index.html.
Mike Frysinger d096d4e6 2022-01-31T02:40:14 AM_PROG_AR: require before AC_PROG_AR The new autoconf AC_PROG_AR macro has similar logic to what we have in AM_PROG_AR, but less than what we need (since autoconf doesn't support the MS archiver), so make sure we are run before AC_PROG_AR. * m4/ar-lib.m4: Call AC_BEFORE for AC_PROG_AR.
Mike Frysinger 8d9daa99 2022-01-30T05:59:19 maint: Update files from upstream with 'make fetch' * 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.
Mike Frysinger 1c03d045 2022-01-28T06:59:25 maint: only sync the manual subdir This code only updates files under manual/, so no need to checkout the entire site first. * maintainer/maint.mk: Only checkout $(PACKAGE)/manual tree.
Mike Frysinger c1b799a0 2022-01-24T02:53:13 texi: pass automatic -I to dvi & pdf generation Fixes automake bug https://bugs.gnu.org/23599. When generating info/html pages, automake adds -I flags to source dirs that contain the texi files, but it doesn't do this for dvi or pdf formats. Instead, automake has been relying on texi2dvi to use makeinfo for expanding macros, and it hasn't done that by default in a long time. Since adding --expand to the texi2dvi call is undesirable (due to bad and unpredictable BEHAVIOR), pass those automatic -I flags directly to TEXI2DVI & TEXI2PDF so they work regardless of --expand behavior. We have to keep the MAKEINFO= setting around as texi2dvi might itself fall back to it if the version of tex is old or broken. * bin/automake.in: Add comment about $makeinfoflags usage. * doc/automake.texi: Mention automatic -I subdir flags. * lib/am/texibuild.am: Pass %MAKEINFOFLAGS% to TEXI2DVI & TEXI2PDF. * t/txinfo-subdir-pr343.sh: Check for -I subdir usage.
Mike Frysinger 9daa34db 2022-01-24T03:08:13 texi: define new AM_TEXI2FLAGS variable To provide a bit more flexibility when invoking TEXI2DVI & TEXI2PDF, and provide a bit of symmetry with .info & .html generation, provide a AM_TEXI2FLAGS setting that is passed to all TEXI2xxx invocations. * doc/automake.texi: Mention new AM_TEXI2FLAGS setting. * lib/am/texibuild.am: Pass $(AM_TEXI2FLAGS) to TEXI2DVI & TEXI2PDF. * NEWS: Mention AM_TEXI2FLAGS. * t/txinfo-many-output-formats.sh: Check for AM_TEXI2FLAGS.
Mike Frysinger 560216a4 2022-01-27T04:54:17 tests: remove spurious +x bits None of these files are (or can be) executed directly, so drop the spurious +x permission bit. None of the other tests do this either. * t/built-sources-install-exec.sh: Remove +x bit. * t/ccnoco-deps.sh: Likewise. * t/ccnoco-lib.sh: Likewise. * t/ccnoco-lt.sh: Likewise. * t/perf/cond.sh: Likewise. * t/perf/testsuite-recheck.sh: Likewise. * t/perf/testsuite-summary.sh: Likewise. * t/python-prefix.sh: Likewise. * t/tags-lisp-space.sh: Likewise. * t/test-extensions-empty.sh: Likewise.
Mike Frysinger 58d06e07 2022-01-19T03:31:07 tests: add coverage for nobase_ and dist_ prefixes From automake bug https://bugs.gnu.org/14245. We have tests that check nobase_ and nodist_ interaction, but not nobase_ and dist_. We had a report against automake 1.12 that this combo did not work. It seems to work now, but lets include a test to make sure we don't regress. Based on Daiki Ueno's example, but fixed up to pass against master. * t/list-of-tests.mk: Add t/nobase-dist.sh. * t/nobase-dist.sh: New test.
Mike Frysinger 930a9a73 2022-01-26T06:33:19 python: add 3.10 - 3.15 to the version search list Fixes automake bug https://bugs.gnu.org/53530. Based on the cadence of Automake releases, add the current Python release (3.10), the current Python development (3.11), and then 4 more versions on top of that. It doesn't hurt to check for a few extra versions here since this is the fallback logic when the main `python` and `python3` programs aren't found. * m4/python.m4: Add python3.10 - python3.15. * NEWS: Mention new Python versions.
Mike Frysinger 975ea4d9 2022-01-19T05:14:47 progs, libs: support _RANLIB overrides Much like we have per-target support for _AR and _LINK, add an _RANLIB override too. This allows selection of specific ranlib tools in case a non-standard archiver tool was forced. * bin/automake.in: Check for _RANLIB per-target settings. * doc/automake.texi: Document _RANLIB override. * lib/am/library.am: Change $(RANLIB) to $(%XLIBRARY%_RANLIB). * t/list-of-tests.mk: Add ranlib_override.sh. * t/ranlib_override.sh: New test. * NEWS: Mention new feature.
Mike Frysinger 6d0dde1f 2022-01-19T05:11:17 tests: add _AR override coverage There were no tests for per-target _AR settings, so add some. * t/ar_override.sh: New test. * t/list-of-tests.mk: Add ar_override.sh.
Mike Frysinger cd995fe6 2022-01-24T01:02:41 tests: clear autotools env vars Fixes automake bug https://bugs.gnu.org/16714. The testsuite will try and retain these env vars when recursively running itself, but doesn't distinguish between vars coming from the env where the tests were launched. This breaks if the user happens to `export ACLOCAL=alocal` before `make check`. This gets a little more confusing in that the Makefile appears to export these already: ACLOCAL = ".../automake/pre-inst-env" aclocal-1.16 In reality, while those are set in the make execution environment, they aren't exported into the process environment, so children (i.e. shell processes in make rules) don't have them set. That's why tests work for most people today. However, if the user has first exported "ACLOCAL" in the parent make environment (regardless of value), then make's value will reset the process environment, and then that will leak into the children. That's why we see errors that look like the makefile env vars are leaking for these people. At any rate, the fix is to update the test harness to clear these vars that the test suite relies upon, especially the ones that are also set in the Makefiles. That includes AUTOUPDATE even though it currently isn't used inside any of the tests. * t/local.mk: Add ACLOCAL, AUTOCONF, AUTOHEADER, AUTOMAKE, and AUTOUPDATE to the env unset list. * t/ax/runtest.in: Likewise.
Mike Frysinger 4c2c73bf 2022-01-20T02:03:23 aclocal: add m4 search path info to --help Add a short summary to --help of the current paths that will be searched. Make sure to omit this from the man page when running help2man since pre-inst-env specifically clears some and others to the current build directory. * bin/aclocal.in: Include m4 search paths in usage. * doc/local.mk: Run help2man with AUTOMAKE_HELP2MAN=true.
Mike Frysinger ec1a20a3 2022-01-24T00:57:30 tests: fix quoting in eval We need to escape the quotes so eval sees them when expanding the variable value, not when quoting the variable name itself. * t/local.mk: Escape quotes to eval.
Karl Berry b64df48b 2022-01-23T14:27:11 doc: singular/plural agreement, since it's easy. * HACKING: singular/plural agreement. * t/README: likewise.
Mike Frysinger a4e22a7b 2022-01-22T22:30:54 THANKS: fix sorting * THANKS: Sort a bunch of names.
Zack Weinberg 8813fac0 2022-01-21T14:57:30 build: fix ChangeLog generation in external build directory When gitlog-to-changelog is run in a build directory that is neither the same as, nor a subdirectory of, the source directory, it needs a --srcdir option or it will fail to generate the changelog. For instance $ git clone https://git.savannah.gnu.org/git/automake.git … $ (cd automake && ./bootstrap) $ mkdir b-automake $ cd b-automake $ ../automake/configure … $ make dist … GEN ChangeLog gitlog-to-changelog:../s-automake/.git-log-fix: unused entry: 22729165f6bb902daeb8a4d8e7cb06982390f327 gitlog-to-changelog:../s-automake/.git-log-fix: unused entry: 3b369e6bbe0fb6d7359398935706c87dd9375cb6 make[2]: *** [../automake/maintainer/maint.mk:48: ChangeLog] Error 1 * maintainer/maint.mk (gitlog_to_changelog_options): Add --srcdir option.
Mike Frysinger 5d022858 2022-01-18T04:47:09 build: fix race in parallel builds As reported by Hongxu Jia: > The automake-$(APIVERSION) is a hardlink of automake, if it is > created later than update_mans executing, there is a failure > [snip] > |: && mkdir -p doc && ./pre-inst-env /usr/bin/env perl ../automake-1.16.1/doc/help2man --output=doc/aclocal-1.16.1 aclocal-1.16 > |help2man: can't get `--help' info from aclocal-1.16 > |Try `--no-discard-stderr' if option outputs to stderr > Makefile:3693: recipe for target 'doc/aclocal-1.16.1' failed > [snip] > > The automake_script is required by update_mans and update_mans > invokes automake-$(APIVERSION) rather than automake to generate > doc, so we should assign `automake-$(APIVERSION)' to automake_script. > > The same reason to tweak aclocal_script. However, rather than update the _script variables to point to the hardlinked copies of the programs, we can have the help2man steps run the existing scripts directly. This makes the relationship a bit more explicit and avoids implicit dependencies on names. * doc/local.mk: Pass $(aclocal_script) and $(automake_script) to $(update_mans). * THANKS: Add Hongxu Jia.
Pavel Raiskup 5fefc4a6 2018-07-30T15:02:35 lib: drop unused shell variables Detected by ShellCheck. * lib/depcomp: Drop never used $digits. * lib/ylwrap: Drop --basedir and $basedir, seems like that was old C&P error from 210797967a.
Mike Frysinger e2b3c48d 2021-12-11T23:34:25 gitignore: drop redundant config.h.in~ rule Since we're ignoring all *~ files, we don't need this explicit one. * .gitignore: Delete config.h.in~ rule.
Matthew Leeds 928288cb 2018-04-08T16:07:32 doc: use gender-neutral pronouns in t/README * t/README: s/him/them/
Jim Meyering ae8fb001 2022-01-18T02:00:22 tests: fix py-compile-basedir.sh: missing "test" Prompted by a patch from Thomas Deutschmann <whissi@gentoo.org>, via https://lists.gnu.org/r/automake-patches/2022-01/msg00001.html: commit v1.16.1-26-gb279a0d46 ("tests: in python tests, do not require .pyo files (for python3)") was missing a `test` call. Reported to Gentoo at https://bugs.gentoo.org/715040. * t/py-compile-basedir.sh: Rather than just adding the missing "test", rewrite using a case statement, to avoid some duplication.
Jim Meyering 6c8ff6a8 2022-01-12T14:15:12 maint: make update-copyright
Bruno Haible 40f4b5dd 2021-12-18T18:26:46 doc: %reldir% and %canon_reldir% do not expand to the empty string. This change fixes https://bugs.gnu.org/52500. * doc/automake.texi (Include): correct wrong text. (Along the way, correct plain-text "Makefile" to "@file{Makefile}".)
Mike Frysinger 5112a1fe 2021-12-12T18:08:06 configure: skip kcc on case-insensitive filesystems; add clang++. This change fixes https://bugs.gnu.org/21336. * configure.ac: Skip KCC check on case-insensitive filesystems; on macOS 10.10 and later, a kerberos tool named "kcc" is installed. Add clang++ to the C++ search list, as with current autoconf.
Mike Frysinger bed9e25e 2021-12-12T18:01:03 maint: update .gitignore. * .gitignore: ignore *~ .# and (from Zack Weinberg, autosave files) .*.sw[op] \#*#, closer to matching Autoconf. https://lists.gnu.org/archive/html/automake-patches/2021-12/msg00005.html https://lists.gnu.org/archive/html/automake-patches/2021-12/msg00010.html
Mike Frysinger 6156cd86 2021-12-12T01:07:39 m4: replace AC_DIAGNOSE with m4_warn AC_DIAGNOSE was marked obsolete with autoconf-2.62 in 2008. * m4/obsolete.m4: Change AC_DIAGNOSE to m4_warn.
Mike Frysinger a320a092 2021-11-27T17:43:00 dejagnu: add support for silent builds with site.exp. * lib/am/dejagnu.am (site.exp): Use $(AM_V_GEN) and merge all independent shell calls into one.
Karl Berry 948c5fa4 2021-11-04T18:17:39 doc: rearrange Multiple Outputs node. This change fixes https://bugs.gnu.org/48188. * doc/automake.texi (Multiple Outputs): move GNU pattern rule approach to the front, since it is probably best if GNU make can be assumed. Suggestion from Frank Heckenbach. Also, remove one of the examples that did not work, per Paul Smith.
Mike Frysinger b7868119 2021-10-31T12:52:43 config headers: add support for silent builds * lib/am/remake-hdr.am (%STAMP%): Use $(AM_V_at) and $(AM_V_GEN). (%CONFIG_HIN%): Likewise.
Karl Berry f4ac56ee 2021-11-01T18:24:25 doc: correct @node placement for new subsubsection. This change addresses https://bugs.gnu.org/51532. * doc/automake.texi (Linking Multiple Yacc Parsers): unfortunately I misplaced the @node after the @subsection; correct that.
Jim Meyering abe72f96 2021-10-03T20:25:27 maint: Post-release administrivia * configure.ac (AC_INIT): Bump version number to 1.16i. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
Jim Meyering 18416d64 2021-10-03T19:47:14 version 1.16.5 * configure.ac (AC_INIT): Bump version number to 1.16.5. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). * NEWS: Record release version.
Jim Meyering 5389f111 2021-10-03T20:06:35 maint: don't use obsolescent "egrep" * maintainer/syntax-checks.mk (sc_perl_local): Use grep -E in place of "egrep".
Jim Meyering 524d9961 2021-10-03T19:48:31 maint: remove trailing white space from a few files * NEWS: Remove trailing white space. * NEWS-2.0: Likewise. * contrib/checklinkx: Likewise. * doc/local.mk (chlx_args): Likewise. * m4/python.m4: Likewise. * t/test-extensions-empty.sh: Likewise.
Karl Berry 6f842a90 2021-09-28T18:27:57 doc: show "RUNNING: <testname>" example using [AM_]TESTS_ENVIRONMENT. This change addresses https://bugs.gnu.org/49309. * doc/automake.texi (Testsuite Environment Overrides): new subsubsection, separating out [AM_]TESTS_ENVIRONMENT description. Add example to get "RUNNING: <testname>" when a test starts.
Karl Berry 80ad99a6 2021-09-28T14:59:22 doc: tweak Yacc/Lex text; subnode for the yacc linking hack. * doc/automake.texi (Alternative): remove obsolete footnote. (Yacc and Lex): tweak wording, more consistent capitalization. (Linking Multiple Yacc Parsers): new subsection. Also add @shortcontents. Also update texinfo-master-menu (for the first time in ages).
Karl Berry 4e53bb67 2021-09-26T18:19:43 maint: Update files from upstream with 'make fetch'. * lib/config.sub: Update.
Jim Meyering 90bf665a 2021-09-19T19:40:32 maint: Post-release administrivia * configure.ac (AC_INIT): Bump version number to 1.16h. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
Jim Meyering 49d55448 2021-09-19T18:38:59 maint: adjust version for snapshot * configure.ac (AC_INIT): Bump version number to 1.16g for snapshot. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
Karl Berry 56387843 2021-09-19T15:12:27 python: only use Python's sys.* values if the new option --with-python-sys-prefix is specified; otherwise, return to previous behavior of using the GNU ${prefix} and ${exec_prefix}. * doc/automake.texi (Python): document the new behavior. * m4/python.m4 (AM_PATH_PYTHON): conditionalize use of Python's sys.* values on the new option --with-python-sys-prefix. * t/python-prefix.sh: doc update. * t/python-vars.sh: test both GNU and Python prefix values. * NEWS: mention this.
Karl Berry 00517c1c 2021-09-18T11:08:24 doc: update NEWS for yyerror const arg; update THANKS. * THANKS: update with missed recent committer. * NEWS: mention yyerror decl in our tests now uses const.