From: Ben Elliston Date: Thu, 29 Oct 1998 00:53:33 +0000 (+0000) Subject: 1998-10-29 Alexandre Oliva X-Git-Tag: autoconf-2-13-rc1~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8e80a0b40d69edb1c4ccaa7cf392eb56498598a7;p=thirdparty%2Fautoconf.git 1998-10-29 Alexandre Oliva * autoreconf.sh: Support several automake command line options, and run aclocal and automake when needed. Also, create stamp files just like automake's Makefiles would do for config headers. Additional contributions from Tom Tromey . --- diff --git a/ChangeLog b/ChangeLog index 54e6393c..01821072 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +1998-10-29 Alexandre Oliva + + * autoreconf.sh: Support several automake command line options, + and run aclocal and automake when needed. Also, create stamp files + just like automake's Makefiles would do for config headers. + Additional contributions from Tom Tromey . + 1998-10-24 Matthew D. Langston * acgeneral.m4 (AC_LANG_FORTRAN77): Remove [] (i.e. the m4 quotes) diff --git a/autoreconf.in b/autoreconf.in index 781c3454..022e1a5f 100644 --- a/autoreconf.in +++ b/autoreconf.in @@ -19,12 +19,15 @@ usage="\ Usage: autoreconf [-f] [-h] [--help] [-m dir] [--macrodir=dir] - [-l dir] [--localdir=dir] [--force] [--verbose] [--version]" + [-l dir] [--localdir=dir] [--force] [--verbose] [--version] + [--cygnus] [--foreign] [--gnits] [--gnu] [-i] [--include-deps]" localdir= verbose=no show_version=no force=no +automake_mode=--gnu +automake_deps= test -z "$AC_MACRODIR" && AC_MACRODIR=@datadir@ @@ -54,6 +57,10 @@ while test $# -gt 0; do force=yes; shift ;; --version | --vers*) show_version=yes; shift ;; + --cygnus | --foreign | --gnits | --gnu) + automake_mode=$1; shift ;; + --include-deps | -i) + automake_deps=$1; shift ;; --) # Stop option processing. shift; break ;; -*) echo "$usage" 1>&2; exit 1 ;; @@ -111,6 +118,45 @@ while read dir; do aclocal=$dots$localdir/aclocal.m4 ;; esac + # Regenerate aclocal.m4 if necessary. FIXME: if aclocal searches + # nonstandard directories, we need to deal with that here. The + # easiest way is to move this info into configure.in. + run_aclocal=no + if test -f "$aclocal" && + grep 'generated automatically by aclocal' $aclocal > /dev/null + then + run_aclocal=yes + else + if test -f `echo $aclocal | sed 's,/[^/]*,,;s,^$,.,'`/acinclude.m4 + then + run_aclocal=yes + fi + fi + if test $run_aclocal = yes + then + if test $force = no && + ls -lt configure.in $aclocal \ + `echo $aclocal | sed 's,/[^/]*,,;s,^$,.,'`/acinclude.m4 | + sed 1q | + grep 'aclocal\.m4$' > /dev/null + then + : + else + test $verbose = yes && echo running aclocal in $dir, creating $aclocal + aclocal --output=$aclocal -I `echo $aclocal | sed 's,/[^/]*,,;s,^$,.,'` + fi + fi + + # Re-run automake if required. Assumes that there is a Makefile.am + # in the topmost directory. + if test -f Makefile.am + then + amforce= + test $force = no && amforce=--no-force + test $verbose = yes && echo running automake`test x"$amforce" = x || echo " ($amforce)"` in $dir + automake $amforce $automake_mode $automake_deps + fi + test ! -f $aclocal && aclocal= if test $force = no && test -f configure && @@ -123,31 +169,36 @@ while read dir; do $autoconf $macrodir_opt $localdir_opt fi - if grep AC_CONFIG_HEADER configure.in >/dev/null; then - template=`sed -n '/AC_CONFIG_HEADER/{ -s%[^#]*AC_CONFIG_HEADER(\([^)]*\).*%\1% -s%^ *\([^ ][^ ]*\) .*$%\1% -t here -: here -s%.*:%% -t colon -s%$%.in% -: colon -p -q -}' configure.in` - if test ! -f $template || grep autoheader $template >/dev/null; then + if grep 'A[CM]_CONFIG_HEADER' configure.in >/dev/null; then + templates=`sed -n '/A[CM]_CONFIG_HEADER/ { + s%[^#]*A[CM]_CONFIG_HEADER[ ]*(\([^)]*\).*%\1% + p + q + }' configure.in` + tcount=`set -- $templates; echo $#` + template=`set -- $templates; echo $1 | sed ' + s/.*:// + t colon + s/$/.in/ + : colon + s/:.*// + '` + stamp=`echo $template | sed 's,/[^/]*$,,;s,^$,.,`/stamp-h`test "$tcount" -gt 1 && echo "$tcount"`.in + if test ! -f "$template" || grep autoheader "$template" >/dev/null; then if test $force = no && test -f $template && - ls -lt $template configure.in $aclocal | sed 1q | - grep "$template$" > /dev/null + ls -lt $template configure.in $aclocal $stamp 2>/dev/null \ + `echo $localdir_opt | sed 's/--localdir=// + s%\(.\)$%\1/%'`acconfig.h | + sed 1q | egrep "$template$|$stamp$" > /dev/null then : else test $verbose = yes && echo running autoheader in $dir - $autoheader $macrodir_opt $localdir_opt + $autoheader $macrodir_opt $localdir_opt && + { test $verbose != yes || echo touching $stamp; } && + touch $stamp fi fi fi ) done - diff --git a/autoreconf.sh b/autoreconf.sh index 781c3454..022e1a5f 100644 --- a/autoreconf.sh +++ b/autoreconf.sh @@ -19,12 +19,15 @@ usage="\ Usage: autoreconf [-f] [-h] [--help] [-m dir] [--macrodir=dir] - [-l dir] [--localdir=dir] [--force] [--verbose] [--version]" + [-l dir] [--localdir=dir] [--force] [--verbose] [--version] + [--cygnus] [--foreign] [--gnits] [--gnu] [-i] [--include-deps]" localdir= verbose=no show_version=no force=no +automake_mode=--gnu +automake_deps= test -z "$AC_MACRODIR" && AC_MACRODIR=@datadir@ @@ -54,6 +57,10 @@ while test $# -gt 0; do force=yes; shift ;; --version | --vers*) show_version=yes; shift ;; + --cygnus | --foreign | --gnits | --gnu) + automake_mode=$1; shift ;; + --include-deps | -i) + automake_deps=$1; shift ;; --) # Stop option processing. shift; break ;; -*) echo "$usage" 1>&2; exit 1 ;; @@ -111,6 +118,45 @@ while read dir; do aclocal=$dots$localdir/aclocal.m4 ;; esac + # Regenerate aclocal.m4 if necessary. FIXME: if aclocal searches + # nonstandard directories, we need to deal with that here. The + # easiest way is to move this info into configure.in. + run_aclocal=no + if test -f "$aclocal" && + grep 'generated automatically by aclocal' $aclocal > /dev/null + then + run_aclocal=yes + else + if test -f `echo $aclocal | sed 's,/[^/]*,,;s,^$,.,'`/acinclude.m4 + then + run_aclocal=yes + fi + fi + if test $run_aclocal = yes + then + if test $force = no && + ls -lt configure.in $aclocal \ + `echo $aclocal | sed 's,/[^/]*,,;s,^$,.,'`/acinclude.m4 | + sed 1q | + grep 'aclocal\.m4$' > /dev/null + then + : + else + test $verbose = yes && echo running aclocal in $dir, creating $aclocal + aclocal --output=$aclocal -I `echo $aclocal | sed 's,/[^/]*,,;s,^$,.,'` + fi + fi + + # Re-run automake if required. Assumes that there is a Makefile.am + # in the topmost directory. + if test -f Makefile.am + then + amforce= + test $force = no && amforce=--no-force + test $verbose = yes && echo running automake`test x"$amforce" = x || echo " ($amforce)"` in $dir + automake $amforce $automake_mode $automake_deps + fi + test ! -f $aclocal && aclocal= if test $force = no && test -f configure && @@ -123,31 +169,36 @@ while read dir; do $autoconf $macrodir_opt $localdir_opt fi - if grep AC_CONFIG_HEADER configure.in >/dev/null; then - template=`sed -n '/AC_CONFIG_HEADER/{ -s%[^#]*AC_CONFIG_HEADER(\([^)]*\).*%\1% -s%^ *\([^ ][^ ]*\) .*$%\1% -t here -: here -s%.*:%% -t colon -s%$%.in% -: colon -p -q -}' configure.in` - if test ! -f $template || grep autoheader $template >/dev/null; then + if grep 'A[CM]_CONFIG_HEADER' configure.in >/dev/null; then + templates=`sed -n '/A[CM]_CONFIG_HEADER/ { + s%[^#]*A[CM]_CONFIG_HEADER[ ]*(\([^)]*\).*%\1% + p + q + }' configure.in` + tcount=`set -- $templates; echo $#` + template=`set -- $templates; echo $1 | sed ' + s/.*:// + t colon + s/$/.in/ + : colon + s/:.*// + '` + stamp=`echo $template | sed 's,/[^/]*$,,;s,^$,.,`/stamp-h`test "$tcount" -gt 1 && echo "$tcount"`.in + if test ! -f "$template" || grep autoheader "$template" >/dev/null; then if test $force = no && test -f $template && - ls -lt $template configure.in $aclocal | sed 1q | - grep "$template$" > /dev/null + ls -lt $template configure.in $aclocal $stamp 2>/dev/null \ + `echo $localdir_opt | sed 's/--localdir=// + s%\(.\)$%\1/%'`acconfig.h | + sed 1q | egrep "$template$|$stamp$" > /dev/null then : else test $verbose = yes && echo running autoheader in $dir - $autoheader $macrodir_opt $localdir_opt + $autoheader $macrodir_opt $localdir_opt && + { test $verbose != yes || echo touching $stamp; } && + touch $stamp fi fi fi ) done - diff --git a/bin/autoreconf.in b/bin/autoreconf.in index 781c3454..022e1a5f 100644 --- a/bin/autoreconf.in +++ b/bin/autoreconf.in @@ -19,12 +19,15 @@ usage="\ Usage: autoreconf [-f] [-h] [--help] [-m dir] [--macrodir=dir] - [-l dir] [--localdir=dir] [--force] [--verbose] [--version]" + [-l dir] [--localdir=dir] [--force] [--verbose] [--version] + [--cygnus] [--foreign] [--gnits] [--gnu] [-i] [--include-deps]" localdir= verbose=no show_version=no force=no +automake_mode=--gnu +automake_deps= test -z "$AC_MACRODIR" && AC_MACRODIR=@datadir@ @@ -54,6 +57,10 @@ while test $# -gt 0; do force=yes; shift ;; --version | --vers*) show_version=yes; shift ;; + --cygnus | --foreign | --gnits | --gnu) + automake_mode=$1; shift ;; + --include-deps | -i) + automake_deps=$1; shift ;; --) # Stop option processing. shift; break ;; -*) echo "$usage" 1>&2; exit 1 ;; @@ -111,6 +118,45 @@ while read dir; do aclocal=$dots$localdir/aclocal.m4 ;; esac + # Regenerate aclocal.m4 if necessary. FIXME: if aclocal searches + # nonstandard directories, we need to deal with that here. The + # easiest way is to move this info into configure.in. + run_aclocal=no + if test -f "$aclocal" && + grep 'generated automatically by aclocal' $aclocal > /dev/null + then + run_aclocal=yes + else + if test -f `echo $aclocal | sed 's,/[^/]*,,;s,^$,.,'`/acinclude.m4 + then + run_aclocal=yes + fi + fi + if test $run_aclocal = yes + then + if test $force = no && + ls -lt configure.in $aclocal \ + `echo $aclocal | sed 's,/[^/]*,,;s,^$,.,'`/acinclude.m4 | + sed 1q | + grep 'aclocal\.m4$' > /dev/null + then + : + else + test $verbose = yes && echo running aclocal in $dir, creating $aclocal + aclocal --output=$aclocal -I `echo $aclocal | sed 's,/[^/]*,,;s,^$,.,'` + fi + fi + + # Re-run automake if required. Assumes that there is a Makefile.am + # in the topmost directory. + if test -f Makefile.am + then + amforce= + test $force = no && amforce=--no-force + test $verbose = yes && echo running automake`test x"$amforce" = x || echo " ($amforce)"` in $dir + automake $amforce $automake_mode $automake_deps + fi + test ! -f $aclocal && aclocal= if test $force = no && test -f configure && @@ -123,31 +169,36 @@ while read dir; do $autoconf $macrodir_opt $localdir_opt fi - if grep AC_CONFIG_HEADER configure.in >/dev/null; then - template=`sed -n '/AC_CONFIG_HEADER/{ -s%[^#]*AC_CONFIG_HEADER(\([^)]*\).*%\1% -s%^ *\([^ ][^ ]*\) .*$%\1% -t here -: here -s%.*:%% -t colon -s%$%.in% -: colon -p -q -}' configure.in` - if test ! -f $template || grep autoheader $template >/dev/null; then + if grep 'A[CM]_CONFIG_HEADER' configure.in >/dev/null; then + templates=`sed -n '/A[CM]_CONFIG_HEADER/ { + s%[^#]*A[CM]_CONFIG_HEADER[ ]*(\([^)]*\).*%\1% + p + q + }' configure.in` + tcount=`set -- $templates; echo $#` + template=`set -- $templates; echo $1 | sed ' + s/.*:// + t colon + s/$/.in/ + : colon + s/:.*// + '` + stamp=`echo $template | sed 's,/[^/]*$,,;s,^$,.,`/stamp-h`test "$tcount" -gt 1 && echo "$tcount"`.in + if test ! -f "$template" || grep autoheader "$template" >/dev/null; then if test $force = no && test -f $template && - ls -lt $template configure.in $aclocal | sed 1q | - grep "$template$" > /dev/null + ls -lt $template configure.in $aclocal $stamp 2>/dev/null \ + `echo $localdir_opt | sed 's/--localdir=// + s%\(.\)$%\1/%'`acconfig.h | + sed 1q | egrep "$template$|$stamp$" > /dev/null then : else test $verbose = yes && echo running autoheader in $dir - $autoheader $macrodir_opt $localdir_opt + $autoheader $macrodir_opt $localdir_opt && + { test $verbose != yes || echo touching $stamp; } && + touch $stamp fi fi fi ) done -