]> git.ipfire.org Git - thirdparty/automake.git/log
thirdparty/automake.git
2 years agotests: Fix 'type defaults' error in link_cond due to main not being properly declared
Frédéric Bérat [Mon, 12 Dec 2022 07:05:53 +0000 (08:05 +0100)] 
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.

2 years agodirstamp: switch to a pattern rule
Mike Frysinger [Thu, 12 Jan 2023 03:07:22 +0000 (22:07 -0500)] 
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).

2 years agodirstamp: use append too instead of truncate
Mike Frysinger [Thu, 12 Jan 2023 02:40:04 +0000 (21:40 -0500)] 
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

2 years agorm: convert more cases to am__rm_f
Mike Frysinger [Wed, 4 Jan 2023 02:46:38 +0000 (21:46 -0500)] 
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).

2 years agodoc: overriding targets doesn't mean third-party Makefiles.
Karl Berry [Mon, 9 Jan 2023 01:56:40 +0000 (17:56 -0800)] 
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.

2 years agocheck: drop unused trs_list variable
Mike Frysinger [Wed, 4 Jan 2023 04:30:29 +0000 (23:30 -0500)] 
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.

2 years agodepend: trim spurious leading tab
Mike Frysinger [Wed, 4 Jan 2023 02:07:45 +0000 (21:07 -0500)] 
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%.

2 years agomaint: make update-copyright
Mike Frysinger [Wed, 4 Jan 2023 07:00:14 +0000 (02:00 -0500)] 
maint: make update-copyright

2 years agomaint: Update files from upstream with 'make fetch'
Mike Frysinger [Wed, 4 Jan 2023 06:57:06 +0000 (01:57 -0500)] 
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.

2 years agotest: avoid apostrophe in test document.
Karl Berry [Mon, 12 Dec 2022 22:50:33 +0000 (14:50 -0800)] 
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.

2 years agodoc: typo in HACKING changes.
Kelvin M. Klann [Thu, 6 Oct 2022 21:08:55 +0000 (14:08 -0700)] 
doc: typo in HACKING changes.

* HACKING: allow backward compatibilities again.

2 years agodistcheck: more .NOTPARALLEL.
Karl Berry [Sun, 2 Oct 2022 01:23:39 +0000 (18:23 -0700)] 
distcheck: more .NOTPARALLEL.

* t/backcompat.sh: add .NOTPARALLEL.
* t/subdir-add2-pr46.sh: likewise.
(Maybe the problem is more general?)

2 years agomaint: Update files from upstream with 'make fetch' + help2man.
Karl Berry [Sat, 1 Oct 2022 22:24:54 +0000 (15:24 -0700)] 
maint: Update files from upstream with 'make fetch' + help2man.

* INSTALL: update with make fetch.

2 years agomaint: Update files from upstream with 'make fetch' + help2man.
Karl Berry [Sat, 1 Oct 2022 22:03:16 +0000 (15:03 -0700)] 
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.

2 years agomaintcheck: placate maintainer-check and grep 3.8.
Karl Berry [Sat, 1 Oct 2022 21:59:51 +0000 (14:59 -0700)] 
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.

2 years agomore HACKING tweaks
Karl Berry [Sat, 1 Oct 2022 16:19:57 +0000 (09:19 -0700)] 
more HACKING tweaks

2 years agoaclocal: protect against Perl undefined warnings.
Karl Berry [Sat, 1 Oct 2022 16:02:15 +0000 (09:02 -0700)] 
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.

2 years agodoc: rearrange NEWS.
Karl Berry [Wed, 28 Sep 2022 17:17:35 +0000 (10:17 -0700)] 
doc: rearrange NEWS.

* NEWS: reclassify bugs vs. features.

2 years agopython: better Python compilation portability.
Zack Weinberg [Wed, 28 Sep 2022 17:12:24 +0000 (10:12 -0700)] 
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.

2 years agoforgot NEWS update
Karl Berry [Wed, 28 Sep 2022 16:08:20 +0000 (09:08 -0700)] 
forgot NEWS update

2 years agodist: ignore "silly rename" files from nfs/afs/smb.
Zack Weinberg [Wed, 28 Sep 2022 16:06:40 +0000 (09:06 -0700)] 
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.

2 years agoautomake: do not use -Q with emacs invocations.
Richard Hopkins [Wed, 28 Sep 2022 01:04:20 +0000 (18:04 -0700)] 
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.

2 years agoautomake: load -l bytecomp for Emacs.
Richard Hopkins [Mon, 26 Sep 2022 16:04:59 +0000 (09:04 -0700)] 
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.

2 years agoautomake: silent make output for Emacs byte compilation.
Richard Hopkins [Mon, 26 Sep 2022 15:57:43 +0000 (08:57 -0700)] 
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.

2 years agodoc: typo in depcomp.
Karl Berry [Sun, 18 Sep 2022 21:11:15 +0000 (14:11 -0700)] 
doc: typo in depcomp.

* lib/depcomp: obsosete -> obsolete. Report from anonymous.

3 years agocompile: look for clang-cl.
Alexander Neumann [Tue, 26 Jul 2022 00:49:53 +0000 (17:49 -0700)] 
compile: look for clang-cl.

* lib/compile: check for clang-cl, calling func_cl_wrapper.
* THANKS: add new contributor.

3 years agofix: autoreconf fails due to .m4 files added but not installed
Jim Meyering [Tue, 24 May 2022 06:20:37 +0000 (23:20 -0700)] 
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

3 years agodeps: create empty file instead of dummy file.
Jan Engelhardt [Mon, 23 May 2022 20:47:02 +0000 (13:47 -0700)] 
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.

3 years agodoc: refer to automake manual in all man pages
Mike Frysinger [Sun, 13 Mar 2022 05:12:23 +0000 (00:12 -0500)] 
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.

3 years agoautomake: fall back gracefully when texinfo inputs don't exist
Mike Frysinger [Fri, 25 Feb 2022 03:25:45 +0000 (22:25 -0500)] 
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.

3 years agom4: handle id failures when checking ustar support
Mike Frysinger [Fri, 25 Feb 2022 03:20:53 +0000 (22:20 -0500)] 
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.

3 years agom4: rework silent-rules macros to avoid double expansion
Mike Frysinger [Mon, 21 Feb 2022 00:06:55 +0000 (19:06 -0500)] 
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.

3 years agotests: make silent-custom regex a little more robust
Mike Frysinger [Thu, 24 Feb 2022 05:52:08 +0000 (00:52 -0500)] 
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.

3 years agopy-compile: fix optimized compiling for Python 3.5+
Mike Frysinger [Sun, 6 Feb 2022 06:25:59 +0000 (01:25 -0500)] 
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+.

3 years agomanual: mention LT_INIT
Mike Frysinger [Wed, 23 Feb 2022 05:44:11 +0000 (00:44 -0500)] 
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.

3 years agoautomake: allow required files to be in subdirs
Mike Frysinger [Mon, 21 Feb 2022 04:30:39 +0000 (23:30 -0500)] 
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.

3 years agotests: fix yacc C++ tests with some C++ compilers
Mike Frysinger [Sun, 20 Feb 2022 19:28:11 +0000 (14:28 -0500)] 
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.

3 years agotests: log autoconf & libtool version
Mike Frysinger [Sun, 20 Feb 2022 18:56:24 +0000 (13:56 -0500)] 
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.

3 years agoautomake: support embedded \# in variable appends
Mike Frysinger [Sun, 20 Feb 2022 18:28:48 +0000 (13:28 -0500)] 
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.

3 years agopython: use xargs -n when uninstalling files
Mike Frysinger [Thu, 17 Feb 2022 09:35:03 +0000 (04:35 -0500)] 
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`.

3 years agorm: handle -f w/no arguments gracefully
Mike Frysinger [Thu, 17 Feb 2022 08:50:55 +0000 (03:50 -0500)] 
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.

3 years agoNEWS: fix typo in fix-timestamp.sh script name
Mike Frysinger [Mon, 21 Feb 2022 00:54:38 +0000 (19:54 -0500)] 
NEWS: fix typo in fix-timestamp.sh script name

As pointed out by Eric Blake.

* NEWS: Fix typo.

3 years agopython: fix exit status handling with uninstall
Mike Frysinger [Wed, 16 Feb 2022 03:25:35 +0000 (22:25 -0500)] 
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.

3 years agom4: speed up filesystem modification checks
Mike Frysinger [Sat, 12 Feb 2022 08:41:06 +0000 (03:41 -0500)] 
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.

3 years agom4: cache build env sanity checks
Mike Frysinger [Sat, 12 Feb 2022 07:12:42 +0000 (02:12 -0500)] 
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.

3 years agoelisp: run emacs with --no-site-file
Mike Frysinger [Tue, 8 Feb 2022 05:39:40 +0000 (00:39 -0500)] 
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.

3 years agoar-lib: ignore -nologo option
Mike Frysinger [Tue, 8 Feb 2022 04:29:13 +0000 (23:29 -0500)] 
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.

3 years agotests: do not assume AM_MAKEINFOHTMLFLAGS is used in non-html targets
Mathieu Lirzin [Fri, 19 Jan 2018 15:30:32 +0000 (16:30 +0100)] 
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.

3 years agopy-compile: fix display when compiling multiple files
Mike Frysinger [Sun, 6 Feb 2022 06:24:52 +0000 (01:24 -0500)] 
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.

3 years agomanual: document Python version support status
Mike Frysinger [Sun, 6 Feb 2022 06:23:47 +0000 (01:23 -0500)] 
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.

3 years agopy-compile: drop support for Python 0.x & 1.x
Mike Frysinger [Sun, 6 Feb 2022 05:22:50 +0000 (00:22 -0500)] 
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.

3 years agopy-compile: handle filenames with whitespace
Mike Frysinger [Sun, 6 Feb 2022 04:43:38 +0000 (23:43 -0500)] 
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.

3 years agopy-compile: clean up usage info
Mike Frysinger [Sun, 6 Feb 2022 04:01:31 +0000 (23:01 -0500)] 
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.

3 years agomaint: include versioned manual in update
Mike Frysinger [Mon, 31 Jan 2022 07:30:11 +0000 (02:30 -0500)] 
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.

3 years agoAM_PROG_AR: require before AC_PROG_AR
Mike Frysinger [Mon, 31 Jan 2022 07:40:14 +0000 (02:40 -0500)] 
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.

3 years agomaint: Update files from upstream with 'make fetch'
Mike Frysinger [Sun, 30 Jan 2022 10:59:19 +0000 (05:59 -0500)] 
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.

3 years agomaint: only sync the manual subdir
Mike Frysinger [Fri, 28 Jan 2022 11:59:25 +0000 (06:59 -0500)] 
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.

3 years agotexi: define new AM_TEXI2FLAGS variable
Mike Frysinger [Mon, 24 Jan 2022 08:08:13 +0000 (03:08 -0500)] 
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.

3 years agotexi: pass automatic -I to dvi & pdf generation
Mike Frysinger [Mon, 24 Jan 2022 07:53:13 +0000 (02:53 -0500)] 
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.

3 years agotests: remove spurious +x bits
Mike Frysinger [Thu, 27 Jan 2022 09:54:17 +0000 (04:54 -0500)] 
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.

3 years agotests: add coverage for nobase_ and dist_ prefixes
Mike Frysinger [Wed, 19 Jan 2022 08:31:07 +0000 (03:31 -0500)] 
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.

3 years agopython: add 3.10 - 3.15 to the version search list
Mike Frysinger [Wed, 26 Jan 2022 11:33:19 +0000 (06:33 -0500)] 
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.

3 years agoprogs, libs: support _RANLIB overrides
Mike Frysinger [Wed, 19 Jan 2022 10:14:47 +0000 (05:14 -0500)] 
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.

3 years agotests: add _AR override coverage
Mike Frysinger [Wed, 19 Jan 2022 10:11:17 +0000 (05:11 -0500)] 
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.

3 years agotests: clear autotools env vars
Mike Frysinger [Mon, 24 Jan 2022 06:02:41 +0000 (01:02 -0500)] 
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.

3 years agoaclocal: add m4 search path info to --help
Mike Frysinger [Thu, 20 Jan 2022 07:03:23 +0000 (02:03 -0500)] 
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.

3 years agotests: fix quoting in eval
Mike Frysinger [Mon, 24 Jan 2022 05:57:30 +0000 (00:57 -0500)] 
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.

3 years agodoc: singular/plural agreement, since it's easy.
Karl Berry [Sun, 23 Jan 2022 22:27:11 +0000 (14:27 -0800)] 
doc: singular/plural agreement, since it's easy.

* HACKING: singular/plural agreement.
* t/README: likewise.

3 years agoTHANKS: fix sorting
Mike Frysinger [Sun, 23 Jan 2022 03:30:54 +0000 (22:30 -0500)] 
THANKS: fix sorting

* THANKS: Sort a bunch of names.

3 years agobuild: fix ChangeLog generation in external build directory
Zack Weinberg [Fri, 21 Jan 2022 19:57:30 +0000 (14:57 -0500)] 
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.

3 years agobuild: fix race in parallel builds
Mike Frysinger [Tue, 18 Jan 2022 09:47:09 +0000 (04:47 -0500)] 
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.

3 years agolib: drop unused shell variables
Pavel Raiskup [Mon, 30 Jul 2018 13:02:35 +0000 (15:02 +0200)] 
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.

3 years agogitignore: drop redundant config.h.in~ rule
Mike Frysinger [Sun, 12 Dec 2021 04:34:25 +0000 (23:34 -0500)] 
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.

3 years agodoc: use gender-neutral pronouns in t/README
Matthew Leeds [Sun, 8 Apr 2018 21:07:32 +0000 (16:07 -0500)] 
doc: use gender-neutral pronouns in t/README

* t/README: s/him/them/

3 years agotests: fix py-compile-basedir.sh: missing "test"
Jim Meyering [Tue, 18 Jan 2022 10:00:22 +0000 (02:00 -0800)] 
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.

3 years agomaint: make update-copyright
Jim Meyering [Wed, 12 Jan 2022 22:15:12 +0000 (14:15 -0800)] 
maint: make update-copyright

3 years agodoc: %reldir% and %canon_reldir% do not expand to the empty string.
Bruno Haible [Sun, 19 Dec 2021 02:26:46 +0000 (18:26 -0800)] 
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}".)

3 years agoconfigure: skip kcc on case-insensitive filesystems; add clang++.
Mike Frysinger [Mon, 13 Dec 2021 02:08:06 +0000 (18:08 -0800)] 
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.

3 years agomaint: update .gitignore.
Mike Frysinger [Mon, 13 Dec 2021 02:01:03 +0000 (18:01 -0800)] 
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

3 years agom4: replace AC_DIAGNOSE with m4_warn
Mike Frysinger [Sun, 12 Dec 2021 06:07:39 +0000 (01:07 -0500)] 
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.

3 years agodejagnu: add support for silent builds with site.exp.
Mike Frysinger [Sun, 28 Nov 2021 01:43:00 +0000 (17:43 -0800)] 
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.

3 years agodoc: rearrange Multiple Outputs node.
Karl Berry [Fri, 5 Nov 2021 01:17:39 +0000 (18:17 -0700)] 
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.

3 years agoconfig headers: add support for silent builds
Mike Frysinger [Sun, 31 Oct 2021 16:52:43 +0000 (12:52 -0400)] 
config headers: add support for silent builds

* lib/am/remake-hdr.am (%STAMP%): Use $(AM_V_at) and $(AM_V_GEN).
(%CONFIG_HIN%): Likewise.

3 years agodoc: correct @node placement for new subsubsection.
Karl Berry [Tue, 2 Nov 2021 01:24:25 +0000 (18:24 -0700)] 
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.

3 years agomaint: Post-release administrivia
Jim Meyering [Mon, 4 Oct 2021 03:25:27 +0000 (20:25 -0700)] 
maint: Post-release administrivia

* configure.ac (AC_INIT): Bump version number to 1.16i.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").

3 years agoversion 1.16.5 v1.16.5
Jim Meyering [Mon, 4 Oct 2021 02:47:14 +0000 (19:47 -0700)] 
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.

3 years agomaint: don't use obsolescent "egrep"
Jim Meyering [Mon, 4 Oct 2021 03:06:35 +0000 (20:06 -0700)] 
maint: don't use obsolescent "egrep"

* maintainer/syntax-checks.mk (sc_perl_local): Use grep -E
in place of "egrep".

3 years agomaint: remove trailing white space from a few files
Jim Meyering [Mon, 4 Oct 2021 02:48:31 +0000 (19:48 -0700)] 
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.

3 years agodoc: show "RUNNING: <testname>" example using [AM_]TESTS_ENVIRONMENT.
Karl Berry [Wed, 29 Sep 2021 01:27:57 +0000 (18:27 -0700)] 
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.

3 years agodoc: tweak Yacc/Lex text; subnode for the yacc linking hack.
Karl Berry [Tue, 28 Sep 2021 21:59:22 +0000 (14:59 -0700)] 
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).

3 years agomaint: Update files from upstream with 'make fetch'.
Karl Berry [Mon, 27 Sep 2021 01:19:43 +0000 (18:19 -0700)] 
maint: Update files from upstream with 'make fetch'.

* lib/config.sub: Update.

3 years agomaint: Post-release administrivia
Jim Meyering [Mon, 20 Sep 2021 02:40:32 +0000 (19:40 -0700)] 
maint: Post-release administrivia

* configure.ac (AC_INIT): Bump version number to 1.16h.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").

3 years agomaint: adjust version for snapshot
Jim Meyering [Mon, 20 Sep 2021 01:38:59 +0000 (18:38 -0700)] 
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").

3 years agopython: only use Python's sys.* values if the new option
Karl Berry [Sun, 19 Sep 2021 22:12:27 +0000 (15:12 -0700)] 
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.

3 years agodoc: update NEWS for yyerror const arg; update THANKS.
Karl Berry [Sat, 18 Sep 2021 18:08:24 +0000 (11:08 -0700)] 
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.

3 years agotests: let yacc's yyerror take its argument as a const string
Akim Demaille [Sat, 11 Sep 2021 08:06:13 +0000 (10:06 +0200)] 
tests: let yacc's yyerror take its argument as a const string

Some of yacc error messages are const strings; it makes no sense for
yyerror to take a 'char *', it should be a 'const char *' as POSIX now
requires.

Fixes all the failures reported by Kiyoshi Kanazawa.
<https://lists.gnu.org/r/bug-bison/2021-09/msg00005.html>
See bug#50469 <https://debbugs.gnu.org/50469>.

* t/cond35.sh, t/silent-many-languages.sh, t/silent-yacc-headers.sh,
* t/silent-yacc.sh, t/subpkg-yacc.sh, t/suffix10.tap, t/yacc-basic.sh,
* t/yacc-clean.sh, t/yacc-d-basic.sh, t/yacc-d-vpath.sh,
* t/yacc-deleted-headers.sh, t/yacc-depend.sh, t/yacc-depend2.sh,
* t/yacc-dist-nobuild-subdir.sh, t/yacc-dist-nobuild.sh, t/yacc-dry.sh,
* t/yacc-line.sh, t/yacc-misc.sh, t/yacc-mix-c-cxx.sh, t/yacc-nodist.sh,
* t/yacc-pr204.sh, t/yacc-subdir.sh, t/yacc-vpath.sh,
* t/yflags-cmdline-override.sh, t/yflags-force-override.sh
(yyerror): From 'char *' to 'const char *'.
Enforce consistency: prefer '{}' to '{ return; }'.

3 years agoautomake: consistently depend on install-libLTLIBRARIES.
Jan Engelhardt [Fri, 10 Sep 2021 22:45:29 +0000 (15:45 -0700)] 
automake: consistently depend on install-libLTLIBRARIES.

Report and patch:
https://lists.gnu.org/archive/html/automake/2021-08/msg00016.html

* bin/automake.in (generate_makefile): depend on
install-libLTLIBRARIES for all PROGRAMS and LTLIBRARIES,
such as install-pkglibLTLIBRARIES.
* NEWS: mention this.

3 years agoautomake: fatal error on second AM_INIT_AUTOMAKE.
Nick Bowler [Wed, 18 Aug 2021 01:26:42 +0000 (18:26 -0700)] 
automake: fatal error on second AM_INIT_AUTOMAKE.

This change addresses https://bugs.gnu.org/50046.
Patch posted:
https://lists.gnu.org/archive/html/automake-patches/2021-08/msg00000.html

* m4/init.m4: Make attempts to expand AM_INIT_AUTOMAKE more than
once a fatal error at m4 time.

4 years agomaint: Update doc/help2man.
Karl Berry [Mon, 9 Aug 2021 01:04:01 +0000 (18:04 -0700)] 
maint: Update doc/help2man.

* doc/help2man: update to 1.48.24

4 years agomaint: Update doc/help2man.
Karl Berry [Sun, 8 Aug 2021 00:59:40 +0000 (17:59 -0700)] 
maint: Update doc/help2man.

* doc/help2man: update to 1.48.2.