From ab2d33e635f85f8f215b7e8f14571ec6360d2243 Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Tue, 29 Aug 2017 21:15:14 +0200 Subject: aclocal: Support ACLOCAL_AUTOMAKE_DIR environment variable * bin/aclocal.in: Reset '@automake_includes' and '@system_includes' in for build environment. Allow setting '@automake_includes' with ACLOCAL_AUTOMAKE_DIR environment variable. (parse_arguments): Ignore 'dirlist' when '@system_includes' is empty. * doc/automake.texi (aclocal Options): Document ACLOCAL_AUTOMAKE_DIR. * bin/wrap-aclocal.in: Remove extra command line options. * pre-inst-env.in: Set ACLOCAL_AUTOMAKE_DIR and ACLOCAL_PATH environment variables. * t/ax/test-defs.in: Adapt. * t/ansi2knr-no-more.sh (warn_rx): Likewise. --- bin/aclocal.in | 12 +++++++++++- bin/wrap-aclocal.in | 7 ------- doc/automake.texi | 5 +++++ pre-inst-env.in | 6 ++++++ t/ansi2knr-no-more.sh | 2 +- t/ax/test-defs.in | 4 ++-- 6 files changed, 25 insertions(+), 11 deletions(-) diff --git a/bin/aclocal.in b/bin/aclocal.in index abd352376..738996f39 100644 --- a/bin/aclocal.in +++ b/bin/aclocal.in @@ -1111,7 +1111,7 @@ sub parse_arguments () } # Finally, adds any directory listed in the 'dirlist' file. - if (open (DIRLIST, "$system_includes[0]/dirlist")) + if (@system_includes && open (DIRLIST, "$system_includes[0]/dirlist")) { while () { @@ -1146,6 +1146,16 @@ sub parse_ACLOCAL_PATH () ################################################################ +# Don't refer to installation directories from the build environment +if (exists $ENV{"AUTOMAKE_UNINSTALLED"}) + { + @automake_includes = (); + @system_includes = (); + } + +@automake_includes = ($ENV{"ACLOCAL_AUTOMAKE_DIR"}) + if (exists $ENV{"ACLOCAL_AUTOMAKE_DIR"}); + parse_WARNINGS; # Parse the WARNINGS environment variable. parse_arguments; parse_ACLOCAL_PATH; diff --git a/bin/wrap-aclocal.in b/bin/wrap-aclocal.in index 2fcccb4a2..e6e4782d2 100644 --- a/bin/wrap-aclocal.in +++ b/bin/wrap-aclocal.in @@ -16,11 +16,4 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -BEGIN -{ - use strict; - unshift @ARGV, - '--automake-acdir=@abs_top_srcdir@/m4', - '--system-acdir=@abs_top_srcdir@/m4/acdir'; -} require '@abs_top_builddir@/bin/aclocal'; diff --git a/doc/automake.texi b/doc/automake.texi index 1f0b7e581..dbe222d20 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -3221,6 +3221,11 @@ overridden using the @env{AUTOM4TE} environment variable. Look for the automake-provided macro files in @var{dir} instead of in the installation directory. This is typically used for debugging. +@vindex ACLOCAL_AUTOMAKE_DIR +The environment variable @env{ACLOCAL_AUTOMAKE_DIR} provides another +way to set the directory containing automake-provided macro files. +However @option{--automake-acdir} takes precedence over it. + @item --system-acdir=@var{dir} @opindex --system-acdir Look for the system-wide third-party macro files (and the special diff --git a/pre-inst-env.in b/pre-inst-env.in index 880012cce..f285ca62c 100644 --- a/pre-inst-env.in +++ b/pre-inst-env.in @@ -32,4 +32,10 @@ export AUTOMAKE_UNINSTALLED AUTOMAKE_LIBDIR="$abs_top_srcdir/lib" export AUTOMAKE_LIBDIR +ACLOCAL_AUTOMAKE_DIR="$abs_top_srcdir/m4" +export ACLOCAL_AUTOMAKE_DIR + +ACLOCAL_PATH="$abs_top_srcdir/m4/acdir" +export ACLOCAL_PATH + exec "$@" diff --git a/t/ansi2knr-no-more.sh b/t/ansi2knr-no-more.sh index f9128022b..8c13cd0a3 100644 --- a/t/ansi2knr-no-more.sh +++ b/t/ansi2knr-no-more.sh @@ -32,7 +32,7 @@ $ACLOCAL -Wnone 2>stderr && { cat stderr >&2; exit 1; } cat stderr >&2 grep "^configure\\.ac:5:.*$warn_rx" stderr -cat aclocal.sav "$am_automake_acdir"/obsolete.m4 > aclocal.m4 +cat aclocal.sav "$am_top_srcdir"/m4/obsolete.m4 > aclocal.m4 $AUTOCONF -Wnone 2>stderr && { cat stderr >&2; exit 1; } cat stderr >&2 grep "^configure\\.ac:5:.*$warn_rx" stderr diff --git a/t/ax/test-defs.in b/t/ax/test-defs.in index b4a690fc6..8cace053b 100644 --- a/t/ax/test-defs.in +++ b/t/ax/test-defs.in @@ -55,13 +55,13 @@ case ${am_running_installcheck:=no} in ;; no) am_amdir=$am_top_srcdir/lib/am - am_automake_acdir=$am_top_srcdir/m4 + am_automake_acdir="" am_bindir=$am_top_builddir/bin am_datadir=$am_top_srcdir am_docdir=$am_top_srcdir/doc am_pkgvdatadir=$am_top_srcdir/lib am_scriptdir=$am_top_srcdir/lib - am_system_acdir=$am_top_srcdir/m4/acdir + am_system_acdir="" ;; *) echo "$me: variable 'am_running_installcheck' has invalid" -- cgit v1.2.1