Index: autoconf-2.63/bin/autoreconf.in =================================================================== --- autoconf-2.63.orig/bin/autoreconf.in 2008-12-31 17:39:01.000000000 +0000 +++ autoconf-2.63/bin/autoreconf.in 2008-12-31 17:43:38.000000000 +0000 @@ -76,6 +76,7 @@ -i, --install copy missing auxiliary files --no-recursive don't rebuild sub-packages -s, --symlink with -i, install symbolic links instead of copies + -x, --exclude=STEPS steps we should not run -m, --make when applicable, re-run ./configure && make -W, --warnings=CATEGORY report the warnings falling in CATEGORY [syntax] @@ -136,6 +137,13 @@ # Recurse into subpackages my $recursive = 1; +# Steps to exclude +my @exclude; +my @ex; + +my $uses_gettext; +my $configure_ac; + ## ---------- ## ## Routines. ## ## ---------- ## @@ -153,6 +161,7 @@ 'B|prepend-include=s' => \@prepend_include, 'i|install' => \$install, 's|symlink' => \$symlink, + 'x|exclude=s' => \@exclude, 'm|make' => \$run_make, 'recursive!' => \$recursive); @@ -162,6 +171,8 @@ parse_WARNINGS; parse_warnings '--warnings', @warning; + @exclude = map { split /,/ } @exclude; + # Even if the user specified a configure.ac, trim to get the # directory, and look for configure.ac again. Because (i) the code # is simpler, and (ii) we are still able to diagnose simultaneous @@ -255,6 +266,11 @@ { my ($aclocal, $flags) = @_; + @ex = grep (/^aclocal$/, @exclude); + if ($#ex != -1) { + return; + } + # aclocal 1.8+ does all this for free. It can be recognized by its # --force support. if ($aclocal_supports_force) @@ -368,7 +384,10 @@ } else { - xsystem_hint ("autopoint is needed because this package uses Gettext", "$autopoint"); + @ex = grep (/^autopoint$/, @exclude); + if ($#ex == -1) { + xsystem_hint ("autopoint is needed because this package uses Gettext", "$autopoint"); + } } @@ -532,16 +551,17 @@ { $libtoolize .= " --ltdl"; } - xsystem_hint ("libtoolize is needed because this package uses Libtool", $libtoolize); - $rerun_aclocal = 1; + @ex = grep (/^libtoolize$/, @exclude); + if ($#ex == -1) { + xsystem_hint ("libtoolize is needed because this package uses Libtool", $libtoolize); + $rerun_aclocal = 1; + } } else { verb "$configure_ac: not running libtoolize: --install not given"; } - - # ------------------- # # Rerunning aclocal. # # ------------------- # @@ -572,7 +592,10 @@ # latter runs the former, and (ii) autoconf is stricter than # autoheader. So all in all, autoconf should give better error # messages. - xsystem ($autoconf); + @ex = grep (/^autoconf$/, @exclude); + if ($#ex == -1) { + xsystem ("$autoconf"); + } # -------------------- # @@ -593,7 +616,10 @@ } else { - xsystem ($autoheader); + @ex = grep (/^autoheader$/, @exclude); + if ($#ex == -1) { + xsystem ("$autoheader"); + } } @@ -610,7 +636,10 @@ # We should always run automake, and let it decide whether it shall # update the file or not. In fact, the effect of `$force' is already # included in `$automake' via `--no-force'. - xsystem ($automake); + @ex = grep (/^automake$/, @exclude); + if ($#ex == -1) { + xsystem ("$automake"); + } } @@ -634,7 +663,10 @@ } else { - xsystem ("$make"); + @ex = grep (/^make$/, @exclude); + if ($#ex == -1) { + xsystem ("$make"); + } } } }