diff options
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/autoreconf.local | 159 | ||||
-rw-r--r-- | src/util/reconf | 25 |
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 |