From: Theodore Tso Date: Thu, 27 Oct 1994 06:03:53 +0000 (+0000) Subject: autoreconf.local is a locally modified version of autoreconf that will X-Git-Tag: krb5-1.0-beta5~1060 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=1210930e6c0bedb70fed2c8918eb91a128139e95;p=krb5.git 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 --- 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