autoreconf.local is a locally modified version of autoreconf that will
authorTheodore Tso <tytso@mit.edu>
Thu, 27 Oct 1994 06:03:53 +0000 (06:03 +0000)
committerTheodore Tso <tytso@mit.edu>
Thu, 27 Oct 1994 06:03:53 +0000 (06:03 +0000)
only rebuild configure files if they need to be (i.e., if configure.in
or aclocal.4 are more recently updated than configure).

reconf has been modified to use it.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@4584 dc483132-0cff-0310-8789-dd5450dbe970

src/util/autoreconf.local [new file with mode: 0644]
src/util/reconf

diff --git a/src/util/autoreconf.local b/src/util/autoreconf.local
new file mode 100644 (file)
index 0000000..d989d0d
--- /dev/null
@@ -0,0 +1,159 @@
+#!/bin/sh
+#
+# This is a hacked up copy of autoreconf from version 1.125 that only 
+# remakes the configure scripts if necessary.
+#
+# autoreconf - remake all Autoconf configure scripts in a directory tree
+# Copyright (C) 1994 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+usage="\
+Usage: autoreconf [-h] [--help] [-m dir] [--macrodir=dir]
+       [-l dir] [--localdir=dir] [--force] [--verbose] [--version]"
+
+localdir=
+verbose=no
+show_version=no
+force=
+
+test -z "$AC_MACRODIR" && AC_MACRODIR=/usr/local/share/autoconf
+
+while test $# -gt 0; do
+  case "$1" in 
+  -h | --help | --h*)
+    echo "$usage"; exit 0 ;;
+      --localdir=* | --l*=* )
+         localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+         shift ;;
+      -l | --localdir | --l*)
+         shift
+         test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+         localdir="${1}"
+         shift ;;
+  --macrodir=* | --m*=* )
+    AC_MACRODIR="`echo \"$1\" | sed -e 's/^[^=]*=//'`"
+    shift ;;
+  -m | --macrodir | --m*)
+    shift
+    test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+    AC_MACRODIR="$1"
+    shift ;;
+  --verbose | --verb*)
+    verbose=yes; shift ;;
+  --force | -f)
+    force=yes; shift ;;
+  --version | --vers*)
+    show_version=yes; shift ;;
+  --)     # Stop option processing.
+    shift; break ;;
+  -*) echo "$usage" 1>&2; exit 1 ;;
+  *) break ;;
+  esac
+done
+
+if test $show_version = yes; then
+  version=`sed -n 's/define.AC_ACVERSION.[     ]*\([0-9.]*\).*/\1/p' \
+    $AC_MACRODIR/acgeneral.m4`
+  echo "Autoconf version $version"
+  exit 0
+fi
+
+if test $# -ne 0; then
+  echo "$usage" 1>&2; exit 1
+fi
+
+#top_autoconf=`echo $0|sed s%autoreconf%autoconf%`
+#top_autoheader=`echo $0|sed s%autoreconf%autoheader%`
+#
+# hack replacements for local krb5 use until this gets integrated into the
+# main autoconf distribution
+top_autoconf=`echo $0|sed s%autoreconf.local%autoconf/autoconf%`
+top_autoheader=`echo $0|sed s%autoreconf.local%autoconf/autoheader%`
+
+# The xargs grep filters out Cygnus configure.in files.
+find . -name configure.in -print |
+xargs grep -l AC_OUTPUT |
+sed 's%/configure\.in$%%; s%^./%%' |
+while read dir; do
+  (
+  cd $dir || continue
+
+  case "$dir" in
+  .) dots= ;;
+  *) # A "../" for each directory in /$dir.
+     dots=`echo /$dir|sed 's%/[^/]*%../%g'` ;;
+  esac
+
+  case "$0" in
+  /*)  autoconf=$top_autoconf; autoheader=$top_autoheader ;;
+  */*) autoconf=$dots$top_autoconf; autoheader=$dots$top_autoheader ;;
+  *)   autoconf=$top_autoconf; autoheader=$top_autoheader ;;
+  esac
+
+  case "$AC_MACRODIR" in
+  /*)  macrodir_opt="--macrodir=$AC_MACRODIR" ;;
+  *)   macrodir_opt="--macrodir=$dots$AC_MACRODIR" ;;
+  esac
+
+  case "$localdir" in
+  "")  localdir_opt= ; 
+       aclocal_file=aclocal.m4 ;;
+  /*)  localdir_opt="--localdir=$localdir"
+       aclocal_file=$localdir/aclocal.m4 ;;
+  *)   localdir_opt="--localdir=$dots$localdir"
+       aclocal_file=$dots$locadir/aclocal.m4 ;;
+  esac
+
+  if test ! -f $aclocal_file; then
+       aclocal_file=
+  fi
+  if test "$force" != yes -a -f configure && \
+       ls -lt configure configure.in $aclocal_file | head -1 | \
+               grep configure$ > /dev/null
+  then
+  :
+  else
+    test "$verbose" = yes && echo running autoconf in $dir
+    $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%
+t here
+: here
+s%.*:%%
+t colon
+s%$%.in%
+: colon
+p
+q
+}' configure.in`
+    if test ! -f $template || grep autoheader $template >/dev/null; then
+      if test "$force" != yes -a -f $template && \
+         ls -lt $template configure.in $aclocal_file | head -1 | \
+               grep $template$ > /dev/null
+      then
+      :
+      else
+        test $verbose = yes && echo running autoheader in $dir
+        $autoheader $macrodir_opt $localdir_opt
+      fi
+    fi
+  fi
+  )
+done
+
index 3d76fb8fd7bc60536dfc43e43e79c3cef9290e13..a71b71736c0589591c2fb31f1a21a73db61f3e73 100644 (file)
@@ -1,17 +1,18 @@
 #!/bin/sh
 
-for i in `find . -name configure.in -print` 
+force=
+
+usage="Usage: ./config.status [--recheck] [--version] [--help]"
+for option
 do
-       config=`echo $i | sed -e 's/.in$//'`
-       if test ! -f $config || \
-          find $i -newer $config -print | grep configure.in  > /dev/null
-       then
-               dir=`dirname $i`
-               topdir=`echo $dir | sed -e 's;/[^/]*;/..;g'`
-               echo "cd $dir; $topdir/util/autoconf/autoconf --topdir=$topdir --macrodir=$topdir/util/autoconf"
-               (  cd $dir; $topdir/util/autoconf/autoconf --topdir=$topdir --macrodir=$topdir/util/autoconf )
-       fi
+  case "$option" in
+  --force | -f)
+    echo "Remaking all configuration files"
+    force=--force ;;
+  -help | --help | --hel | --he | --h)
+    echo "$usage"; exit 0 ;;
+  *) echo "$usage"; exit 1 ;;
+  esac
 done
 
-cd include/krb5
-../../util/autoconf/autoheader --macrodir=../../util/autoconf
+./util/autoreconf.local  -m util/autoconf -l . --verbose $force