summaryrefslogtreecommitdiffstats
path: root/src/util
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1994-10-27 06:03:53 +0000
committerTheodore Tso <tytso@mit.edu>1994-10-27 06:03:53 +0000
commit1210930e6c0bedb70fed2c8918eb91a128139e95 (patch)
tree67739ebb27e71a145c99dd4b752b092c5b93df87 /src/util
parente1b993fff76b6eb057cec769d5a88eb73fbed48f (diff)
downloadkrb5-1210930e6c0bedb70fed2c8918eb91a128139e95.tar.gz
krb5-1210930e6c0bedb70fed2c8918eb91a128139e95.tar.xz
krb5-1210930e6c0bedb70fed2c8918eb91a128139e95.zip
autoreconf.local is a locally modified version of autoreconf that will
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
Diffstat (limited to 'src/util')
-rw-r--r--src/util/autoreconf.local159
-rw-r--r--src/util/reconf25
2 files changed, 172 insertions, 12 deletions
diff --git a/src/util/autoreconf.local b/src/util/autoreconf.local
new file mode 100644
index 000000000..d989d0d55
--- /dev/null
+++ b/src/util/autoreconf.local
@@ -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
+
diff --git a/src/util/reconf b/src/util/reconf
index 3d76fb8fd..a71b71736 100644
--- a/src/util/reconf
+++ b/src/util/reconf
@@ -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