+1998-10-29 Alexandre Oliva <oliva@dcc.unicamp.br>
+
+ * 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 <tromey@cygnus.com>.
+
1998-10-24 Matthew D. Langston <langston@SLAC.Stanford.EDU>
* acgeneral.m4 (AC_LANG_FORTRAN77): Remove [] (i.e. the m4 quotes)
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@
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 ;;
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 &&
$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
-
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@
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 ;;
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 &&
$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
-
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@
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 ;;
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 &&
$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
-