--- ac-wrapper-4.pl.orig 2004-10-06 02:54:30.726290600 +0200 +++ ac-wrapper-4.pl 2004-10-06 02:48:35.909230992 +0200 @@ -15,31 +15,26 @@ # # Executes the correct autoconf version. # -# - defaults to autoconf-2.13 -# - runs autoconf-2.5x if it exists and... -# - envvar WANT_AUTOCONF is set to `2.5' +# - defaults to autoconf-2.5x +# - runs autoconf-2.13 if it exists and... +# - envvar WANT_AUTOCONF is set to `2.1' # -or- -# - configure.ac is present +# - `configure.in' contains AC_PREREQ and the value's 2 first letters +# are stringwise equal to '2.1' # -or- -# - `configure.in' contains AC_PREREQ and the value's 3 first letters -# are stringwise greater than '2.13' -# -or- -# - `configure' is already present and was generated by autoconf greater than +# - `configure' is already present and was generated by autoconf equal to # '2.13' -# -or- -# - `Makefile.in' was generated by automake-1.6 or superior, which -# specifically needs autoconf-2.5x # #use MDK::Common; sub cat_ { local *F; open F, $_[0] or return; my @l = ; wantarray ? @l : join '', @l } sub ac_version { - return ((@versions = cat_(shift) =~ /^\s*\[?AC_PREREQ\(\[?([^\)]{3}[0-9]?)[^\)]*\]?\)/mg) ? ((sort @versions)[-1]) : ''); + return ((@versions = cat_(shift) =~ /^\s*\[?AC_PREREQ\(\[?([^\)]{2}[0-9]?)[^\)]*\]?\)/mg) ? ((sort @versions)[-1]) : ''); } -my $binary = "$0-2.13"; -my $binary_new = "$0-2.5x"; +my $binary_old = "$0-2.13"; +my $binary = "$0-2.5x"; # Autoconf is really getting out of hand, so rather start supporting # WANT_AUTOCONF = "2.5" the like. Unfortunately it override the old @@ -52,20 +47,17 @@ } } -if ($ENV{WANT_AUTOCONF} ne '2.1') { - if ((! -x $binary) # handle stuff like autom4te, where only 2.5x have the binary - || (-x $binary_new # user may have only 2.13 - && (($ENV{WANT_AUTOCONF} eq '2.5') - || -r 'configure.ac' - || ac_version('configure.in') gt '2.13' - || (cat_('configure') =~ /^# Generated by Autoconf (\S+)/m ? $1 : '') gt '2.13' - || (cat_('Makefile.in') =~ /^# Makefile\.in generated by automake (\S+)/ ? $1 : '') ge '1.6' - || ac_version('aclocal.m4') gt '2.13'))) { - $ENV{WANT_AUTOCONF} = '2.5'; # to prevent further "cats" and to enhance consistency (possible cwd etc) - $binary = $binary_new; - } else { - $ENV{WANT_AUTOCONF} = '2.1'; # for further consistency - } +if ($ENV{WANT_AUTOCONF} ne '2.5') { + if ((-x $binary_old + && (($ENV{WANT_AUTOCONF} eq '2.1') + || ac_version('configure.in') eq '2.1' + || (cat_('configure') =~ /^# Generated automatically using autoconf version (\S+)/m ? $1 : '') eq '2.13' + || ac_version('aclocal.m4') eq '2.1'))) { + $ENV{WANT_AUTOCONF} = '2.1'; # to prevent further "cats" and to enhance consistency (possible cwd etc) + $binary = $binary_old; + } else { + $ENV{WANT_AUTOCONF} = '2.5'; # for further consistency + } } # Set AUTOM4TE to the proper version (bug #40983).