summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am3
-rw-r--r--aclocal.in26
-rw-r--r--m4/internal/ac-config-macro-dirs.m415
-rwxr-xr-xt/aclocal-acdir.sh3
4 files changed, 35 insertions, 12 deletions
diff --git a/Makefile.am b/Makefile.am
index 065500f90..34abc5a49 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -255,7 +255,8 @@ dist_am_DATA = \
## Automake-provided m4 macros. ##
## ------------------------------ ##
-dist_automake_ac_DATA = \
+nobase_dist_automake_ac_DATA = \
+ m4/internal/ac-config-macro-dirs.m4 \
m4/amversion.m4 \
m4/ar-lib.m4 \
m4/as.m4 \
diff --git a/aclocal.in b/aclocal.in
index 1e56649b6..76b556a6b 100644
--- a/aclocal.in
+++ b/aclocal.in
@@ -48,12 +48,12 @@ use File::Path ();
# Support AC_CONFIG_MACRO_DIRS also with older autoconf.
# FIXME: To be removed in Automake 1.14, once we can assume autoconf
# 2.70 or later.
-# NOTE: This variable deliberately contain no newlines.
+# FIXME: keep in sync with 'internal/ac-config-macro-dirs.m4'.
my $ac_config_macro_dirs_fallback =
- "m4_ifndef([AC_CONFIG_MACRO_DIRS], [" .
- "m4_defun([_AM_CONFIG_MACRO_DIRS], [])" .
- "m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS(\$@)])" .
- "])";
+ 'm4_ifndef([AC_CONFIG_MACRO_DIRS], [' .
+ 'm4_defun([_AM_CONFIG_MACRO_DIRS], [])' .
+ 'm4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])' .
+ '])';
# We do not operate in threaded mode.
$perl_threads = 0;
@@ -726,23 +726,27 @@ sub trace_used_macros ()
my %files = map { $map{$_} => 1 } keys %macro_seen;
%files = strip_redundant_includes %files;
- my $early_m4_code = "";
# When AC_CONFIG_MACRO_DIRS is used, avoid possible spurious warnings
# from autom4te about macros being "m4_require'd but not m4_defun'd";
# for more background, see:
# http://lists.gnu.org/archive/html/autoconf-patches/2012-11/msg00004.html
# as well as autoconf commit 'v2.69-44-g1ed0548', "warn: allow aclocal
# to silence m4_require warnings".
- $early_m4_code .= "m4_define([m4_require_silent_probe], [-])";
- # Support AC_CONFIG_MACRO_DIRS also with older autoconf.
- # FIXME: To be removed in Automake 1.14, once we can assume autoconf
- # 2.70 or later.
- $early_m4_code .= $ac_config_macro_dirs_fallback;
+ my $early_m4_code .= "m4_define([m4_require_silent_probe], [-])";
my $traces = ($ENV{AUTOM4TE} || '@am_AUTOM4TE@');
$traces .= " --language Autoconf-without-aclocal-m4 ";
$traces = "echo '$early_m4_code' | $traces - ";
+ # Support AC_CONFIG_MACRO_DIRS also with older autoconf.
+ # Note that we can't use '$ac_config_macro_dirs_fallback' here, because
+ # a bug in option parsing code of autom4te 2.68 and earlier will cause
+ # it to read standard input last, even if the "-" argument is specified
+ # early.
+ # FIXME: To be removed in Automake 1.14, once we can assume autoconf
+ # 2.70 or later.
+ $traces .= "$automake_includes[0]/internal/ac-config-macro-dirs.m4 ";
+
# All candidate files.
$traces .= join (' ',
(map { "'$_'" }
diff --git a/m4/internal/ac-config-macro-dirs.m4 b/m4/internal/ac-config-macro-dirs.m4
new file mode 100644
index 000000000..530e655c3
--- /dev/null
+++ b/m4/internal/ac-config-macro-dirs.m4
@@ -0,0 +1,15 @@
+# Support AC_CONFIG_MACRO_DIRS with older autoconf. -*- Autoconf -*-
+# FIXME: To be removed in Automake 1.14, once we can assume autoconf
+# 2.70 or later.
+# FIXME: keep in sync with the contents of the variable
+# '$ac_config_macro_dirs_fallback' in aclocal.in.
+
+# Copyright (C) 2012 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS],
+[m4_defun([_AM_CONFIG_MACRO_DIRS],[])]dnl
+[m4_defun([AC_CONFIG_MACRO_DIRS],[_AM_CONFIG_MACRO_DIRS($@)])])
diff --git a/t/aclocal-acdir.sh b/t/aclocal-acdir.sh
index 59182bbf5..944604b44 100755
--- a/t/aclocal-acdir.sh
+++ b/t/aclocal-acdir.sh
@@ -21,6 +21,9 @@
. test-init.sh
mkdir am sys
+# FIXME: remove in Automake 1.14.
+mkdir am/internal
+: > am/internal/ac-config-macro-dirs.m4
cat >> configure.ac <<'END'
MY_MACRO