diff options
-rw-r--r-- | Makefile.am | 3 | ||||
-rw-r--r-- | aclocal.in | 26 | ||||
-rw-r--r-- | m4/internal/ac-config-macro-dirs.m4 | 15 | ||||
-rwxr-xr-x | t/aclocal-acdir.sh | 3 |
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 |