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+.
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.
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.
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.
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`.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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>.
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.
Jim Meyering [Mon, 26 Jul 2021 04:59:59 +0000 (21:59 -0700)]
version 1.16.4
* configure.ac (AC_INIT): Bump version number to 1.16.4.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
* NEWS: Record release version.
* t/check12.sh: Consistently use the directory name, testsuite/,
for all DejaGnu tests, and always use recursive make to run
DejaGnu, for backward and forward compatibility.
* t/dejagnu3.sh: Likewise.
* t/dejagnu4.sh: Likewise.
* t/dejagnu5.sh: Likewise.
* t/dejagnu6.sh: Likewise.
* t/dejagnu7.sh: Likewise.
* t/dejagnu-absolute-builddir.sh: Likewise.
* t/dejagnu-relative-srcdir.sh: Likewise.
* t/dejagnu-siteexp-extend.sh: Likewise.
* t/dejagnu-siteexp-useredit.sh: Likewise.
* NEWS: mention this.
* THANKS: new contributor.
* bin/automake.in (define_per_target_linker_variable): Use
AM_V_${target}_LINK if defined as the verbose variable name for
custom link commands.
* doc/automake.texi (Program and Library Variables): Document the new
variable.
* t/link_override.sh: Add extra checks for silent make rules.
* NEWS: Mention this.
* THANKS: new contributor.
* maintainer/syntax-checks.mk (toupper): Tighten the regexp
to avoid a new false-match in t/python-prefix.sh.
* t/instmany-python.sh: Use run_make in place of some $MAKE uses.
* t/python-prefix.sh: Likewise.
* t/python-vars.sh: Likewise.
Jim Meyering [Mon, 12 Jul 2021 01:34:22 +0000 (18:34 -0700)]
no-dist-built-sources: fix-up
* bin/automake.in (preprocess_file): Process new option here,
(handle_dist): ... not here.
* lib/Automake/Options.pm (_is_valid_easy_option):
Remove pure-dist.
* lib/am/distdir.am: Don't factor out the duplicate-looking
$(MAKE)... command. Otherwise, many dist-using tests would fail
for me, e.g., t/aclocal-amflags.sh.
Jim Meyering [Sun, 11 Jul 2021 20:42:16 +0000 (13:42 -0700)]
test: disable use of ksh in a test that would otherwise hang
* t/tests-environment-fd-redirect.sh: This test would hang when
using ksh93 from Fedora 34 and CentOS 8. Comments demonstrate
the issue reported as https://github.com/ksh93/ksh/issues/316
dist: add new "dist-no-built-sources" automake option.
Fixes automake bug https://debbugs.gnu.org/49317.
* bin/automake.in: implement new option "no-dist-built-sources" to
omit the dependency of distdir on $(BUILT_SOURCES). (Allison's
original patch used the option name dist-pure; trivially renamed.)
* lib/am/distdir.am (distdir) [DIST_BUILT_SOURCES]: conditionalize
the dependency.
* lib/Automake/Options.pm (_is_valid_easy_option): list it.
* doc/automake.texi (List of Automake options): document it.
* NEWS: mention it.
* t/dist-no-built-sources.sh: test it.
* t/list-of-tests.mk (handwritten_TESTS): add it.
Karl Berry [Fri, 2 Jul 2021 01:21:51 +0000 (18:21 -0700)]
dist: accept .md versions for README et al.
This change was suggested by madmurphy; some ideas were taken
from the patch he provided.
https://lists.gnu.org/archive/html/automake-patches/2021-06/msg00005.html
* bin/automake.in (@toplevelmd_ok): new global, listing the files
for which we will accept .md versions.
(@common_files): remove those files from there.
(handle_dist): check for .md if non-.md is absent.
(handle_minor_options): check for README-alpha.md.
(check_gnu_standards): accept .md version if present.
(check_gnits_standards): likewise.
(usage): output list of .md-accepted files.
* doc/automake.texi (Basics of Distribution): document.
* t/toplevelmd.sh: new test.
* t/list-of-tests.mk (handwritten_tests): add it.
* NEWS: mention new feature.
Karl Berry [Tue, 8 Jun 2021 01:09:25 +0000 (18:09 -0700)]
doc: --always-make doesn't work.
* doc/automake.texi (Rebuilding): the GNU Make option
--always-make does not work with Automake.
Report from Johan Persson,
https://lists.gnu.org/archive/html/automake/2021-06/msg00002.html.
Also, use "GNU Make" (capital M) more consistently.
Joshua Root [Tue, 18 May 2021 22:11:59 +0000 (15:11 -0700)]
python: use Python's sys.prefix and sys.exec_prefix
for PYTHON_PREFIX and PYTHON_EXEC_PREFIX; new configure options
--with-python_prefix and --with-python_exec_prefix to set explicitly.
This change fixes https://bugs.gnu.org/35322.
* m4/python.m4 (AM_PATH_PYTHON): use Python's sys.prefix and
sys.exec_prefix for PYTHON_PREFIX and PYTHON_EXEC_PREFIX,
instead of $prefix and $exec_prefix. But use a variable
reference to ${prefix} if it is contained within sys.prefix;
similarly for exec_prefix. Also support new configure options
to set explicitly.
(PYTHON_PREFIX, PYTHON_EXEC_PREFIX): AC_SUBST these.
(am_cv_python_pythondir): use our new $am_cv_python_prefix,
substituting ${PYTHON_PREFIX}.
(am_cv_python_pyexecdir): likewise.
* doc/automake.texi (Python): PYTHON_PREFIX, PYTHON_EXEC_PREFIX,
document new approach.
* t/instmany-python.sh: set PYTHON_PREFIX as needed.
* t/python-vars.sh (PYTHON_EXEC_PREFIX, PYTHON_PREFIX): also set from
Python's sys.{exec_,}prefix; use ${PYTHON_{EXEC,}PREFIX} instead
of ${exec_,}prefix.
Karl Berry [Tue, 23 Feb 2021 02:23:16 +0000 (18:23 -0800)]
doc: a_LDFLAGS always overrides AM_LDFLAGS.
This change addresses https://bugs.gnu.org/34925.
* doc/automake.texi (Program and Library Variables): document
that using a_LDFLAGS at all, even in the false branch of a
conditional, means that AM_LDFLAGS is ignored.