]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
1998-10-29 Alexandre Oliva <oliva@dcc.unicamp.br>
authorBen Elliston <bje+keyword+gnu.7caf74@air.net.au>
Thu, 29 Oct 1998 00:53:33 +0000 (00:53 +0000)
committerBen Elliston <bje+keyword+gnu.7caf74@air.net.au>
Thu, 29 Oct 1998 00:53:33 +0000 (00:53 +0000)
* 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>.

ChangeLog
autoreconf.in
autoreconf.sh
bin/autoreconf.in

index 54e6393c4f8d03ce7c7a06dd01c82ca0d5b02ed6..01821072234eb84649e896a8ec26f763dbdcca63 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+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)
index 781c3454c1d06dec66f84da640a44682434ec4fa..022e1a5f57f4a04b8c6bca3ac94612b19e398189 100644 (file)
 
 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
-
index 781c3454c1d06dec66f84da640a44682434ec4fa..022e1a5f57f4a04b8c6bca3ac94612b19e398189 100644 (file)
 
 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
-
index 781c3454c1d06dec66f84da640a44682434ec4fa..022e1a5f57f4a04b8c6bca3ac94612b19e398189 100644 (file)
 
 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
-