aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'am-wrapper.pl')
-rwxr-xr-xam-wrapper.pl29
1 files changed, 25 insertions, 4 deletions
diff --git a/am-wrapper.pl b/am-wrapper.pl
index 83e926e..33e30da 100755
--- a/am-wrapper.pl
+++ b/am-wrapper.pl
@@ -17,13 +17,21 @@
# Executes the correct autoconf version.
#
# - defaults to automake-1.4
+# - runs automake-1.8 if it exists and...
+# - envvar WANT_AUTOMAKE is set to `1.8'
+# -or-
+# - `Makefile.in' was generated by automake-1.8 or superior, which
+# specifically needs automake-1.8
+# -or_
+# - 'aclocal.m4' contain AM_AUTOMAKE_VERSION, specifying the use of 1.8
# - runs automake-1.7 if it exists and...
# - envvar WANT_AUTOMAKE is set to `1.7'
# -or-
# - `Makefile.in' was generated by automake-1.7 or superior, which
# specifically needs automake-1.7
-# -or_
-# - 'aclocal.m4' contain AM_AUTOMAKE_VERSION, specifying the use of 1.7
+# -or-
+# - 'aclocal.m4' contain AM_AUTOMAKE_VERSION, specifyint the use of 1.7
+# -or-
# - runs automake-1.6 if it exists and...
# - envvar WANT_AUTOMAKE is set to `1.6'
# -or-
@@ -59,6 +67,7 @@ my $binary = "$0-1.4";
my $binary_1_5 = "$0-1.5x";
my $binary_1_6 = "$0-1.6x";
my $binary_1_7 = "$0-1.7x";
+my $binary_1_8 = "$0-1.8x";
# Automake is really getting out of hand, so rather start supporting
# WANT_AUTOMAKE = "1.7" the like. Unfortunately it override the old
@@ -78,7 +87,14 @@ if ($ENV{WANT_AUTOMAKE} eq "") {
# 1.5, and then stay with it for a bit (those 1.4 die hards ..), only have
# the 'configure.ac' test for 1.5 ...
if ($ENV{WANT_AUTOMAKE} ne '1.4') {
- if (-x $binary_1_7 # user may not have _1_7 ...
+ if (-x $binary_1_8 # user may not have _1_8 ...
+ && (($ENV{WANT_AUTOMAKE} eq '1.8')
+ || (cat_('Makefile.in') =~ /^# Makefile\.in generated by automake (\S+)/ ? $1 : '') ge '1.8'
+ || (cat_('aclocal.m4') =~ /^# aclocal.m4 generated automatically by aclocal (\S+)/ ? $1 : '') ge '1.8'
+ || (cat_('aclocal.m4') =~ /^\s*\[?AM_AUTOMAKE_VERSION\(\[?([^\)]{3})[^\)]*\]?\)/m ? $1 : '') ge '1.8')) {
+ $ENV{WANT_AUTOMAKE} = '1.8'; # to prevent further "cats" and to enhance consistency (possible cwd etc)
+ $binary = $binary_1_8;
+ } elsif (-x $binary_1_7 # user may not have 1.7 ...
&& (($ENV{WANT_AUTOMAKE} eq '1.7')
|| (cat_('Makefile.in') =~ /^# Makefile\.in generated by automake (\S+)/ ? $1 : '') ge '1.7'
|| (cat_('aclocal.m4') =~ /^# aclocal.m4 generated automatically by aclocal (\S+)/ ? $1 : '') ge '1.7'
@@ -108,7 +124,12 @@ if ($ENV{WANT_AUTOMAKE} ne '1.4') {
$ENV{WANT_AUTOMAKE} = '1.5'; # to prevent further "cats" and to enhance consistency (possible cwd etc)
$binary = $binary_1_5;
} else {
- $ENV{WANT_AUTOMAKE} = '1.4'; # for further consistency
+ if (-r 'configure.in' || -r 'configure.ac') {
+ $ENV{WANT_AUTOMAKE} = '1.4'; # for further consistency
+ } else {
+ $ENV{WANT_AUTOMAKE} = '1.8';
+ $binary = $binary_1_8;
+ }
}
}