From 8e80a0b40d69edb1c4ccaa7cf392eb56498598a7 Mon Sep 17 00:00:00 2001 From: Ben Elliston Date: Thu, 29 Oct 1998 00:53:33 +0000 Subject: [PATCH] 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 . --- ChangeLog | 7 ++++ autoreconf.in | 89 +++++++++++++++++++++++++++++++++++++---------- autoreconf.sh | 89 +++++++++++++++++++++++++++++++++++++---------- bin/autoreconf.in | 89 +++++++++++++++++++++++++++++++++++++---------- 4 files changed, 217 insertions(+), 57 deletions(-) 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 - -- 2.47.2