From: Tom Yu Date: Thu, 17 Dec 2015 22:42:05 +0000 (-0500) Subject: Remove util/reconf X-Git-Tag: krb5-1.15-beta1~312 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=84e41e7299c4da367e2e45f6267cb7cc634d84be;p=thirdparty%2Fkrb5.git Remove util/reconf The bulk of the util/reconf script is to detect old versions of autoconf and possibly work around bugs in them. Require autoconf>=2.63, and remove the util/reconf script. Adjust documentation and other scripts accordingly. Also remove Makefile rules that remove autom4te.cache. Such rules were supposedly necessary when mixing of different versions of autoconf was common; this seems to be less of an issue now. ticket: 8299 subject: Remove util/reconf --- diff --git a/doc/build/doing_build.rst b/doc/build/doing_build.rst index 3c686cc716..25daa5255a 100644 --- a/doc/build/doing_build.rst +++ b/doc/build/doing_build.rst @@ -1,38 +1,6 @@ Doing the build =============== -Using autoconf --------------- - -(If you are not a developer, you can skip this section.) - -In the Kerberos V5 source directory, there is a configure script which -automatically determines the compilation environment and creates the -proper Makefiles for a particular platform. This configure script is -generated using autoconf, which you should already have installed. - -Normal users will not need to worry about running autoconf; the -distribution comes with the configure script already prebuilt. - -One tool which is provided for the convenience of developers can be -found in ``src/util/reconf``. This program should be run while the -current directory is the top source directory. It will automatically -rebuild the configure script if it needs rebuilding. If you know that -you have made a change that will require that the configure file be -rebuilt from scratch, specify the **-**\ **-force** option:: - - cd /u1/krb5-VERSION/src - ./util/reconf --force - -Then follow the instructions for building packaged source trees -(below). To install the binaries into a binary tree, do:: - - cd /u1/krb5-VERSION/src - make all - make install DESTDIR=somewhere-else - -You have a number of different options in how to build Kerberos. - .. _do_build: Building within a single tree @@ -165,5 +133,26 @@ Cleaning up the build command. * Use ``make distclean`` to remove all files generated by running ./configure script. After running ``make distclean`` your source - tree (ideally) should look like the raw (just un-tarred) source tree - with executed ``util/reconf`` command. + tree (ideally) should look like the raw (just un-tarred) source + tree. + +Using autoconf +-------------- + +(If you are not a developer, you can ignore this section.) + +In the Kerberos V5 source directory, there is a configure script which +automatically determines the compilation environment and creates the +proper Makefiles for a particular platform. This configure script is +generated using autoconf, which you should already have installed if +you will be making changes to ``src/configure.in``. + +Normal users will not need to worry about running autoconf; the +distribution comes with the configure script already prebuilt. + +The autoconf package comes with a script called ``autoreconf`` that +will automatically run ``autoconf`` and ``autoheader`` as needed. You +should run ``autoreconf`` from the top source directory, e.g.:: + + cd /u1/krb5-VERSION/src + autoreconf --verbose diff --git a/src/aclocal.m4 b/src/aclocal.m4 index e2d5434eed..118c2c5780 100644 --- a/src/aclocal.m4 +++ b/src/aclocal.m4 @@ -1,4 +1,4 @@ -AC_PREREQ(2.53) +AC_PREREQ(2.63) AC_COPYRIGHT([Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009 Massachusetts Institute of Technology. ]) diff --git a/src/config/post.in b/src/config/post.in index 07816ed841..f073396952 100644 --- a/src/config/post.in +++ b/src/config/post.in @@ -150,7 +150,7 @@ clean:: clean-$(WHAT) clean-unix:: $(RM) $(OBJS) $(DEPTARGETS_CLEAN) $(EXTRA_FILES) $(RM) et-[ch]-*.et et-[ch]-*.[ch] testlog - -$(RM) -r $(top_srcdir)/autom4te.cache testdir + -$(RM) -r testdir clean-windows:: $(RM) *.$(OBJEXT) @@ -173,17 +173,12 @@ Makefile: $(srcdir)/Makefile.in $(srcdir)/deps $(BUILDTOP)/config.status \ cd $(BUILDTOP) && $(SHELL) config.status $(mydir)/Makefile $(BUILDTOP)/config.status: $(top_srcdir)/configure cd $(BUILDTOP) && $(SHELL) config.status --recheck -# autom4te.cache supposedly improves performance with multiple runs, but -# it breaks across versions, and around MIT we've got plenty of version -# mixing. So nuke it. $(top_srcdir)/configure: @MAINT@ \ $(top_srcdir)/configure.in \ $(top_srcdir)/patchlevel.h \ $(top_srcdir)/aclocal.m4 - -$(RM) -r $(top_srcdir)/autom4te.cache cd $(top_srcdir) && \ $(AUTOCONF) --include=$(CONFIG_RELTOPDIR) $(AUTOCONFFLAGS) - -$(RM) -r $(top_srcdir)/autom4te.cache RECURSE_TARGETS=all-recurse clean-recurse distclean-recurse install-recurse \ generate-files-mac-recurse \ diff --git a/src/include/Makefile.in b/src/include/Makefile.in index b160ea4f58..4bb11e4868 100644 --- a/src/include/Makefile.in +++ b/src/include/Makefile.in @@ -34,10 +34,8 @@ all-unix:: @MAINT@ verify-calling-conventions-krb5 $(srcdir)/autoconf.h.in: @MAINT@ $(srcdir)/autoconf.stmp $(srcdir)/autoconf.stmp: $(top_srcdir)/configure.in $(top_srcdir)/aclocal.m4 - $(RM) -r $(top_srcdir)/autom4te.cache cd $(top_srcdir) && $(AUTOHEADER) --include=$(CONFIG_RELTOPDIR) $(AUTOHEADERFLAGS) touch $(srcdir)/autoconf.stmp - $(RM) -r $(top_srcdir)/autom4te.cache ##DOS##autoconf.h: win-mac.h ##DOS## $(CP) win-mac.h $@ diff --git a/src/util/mkrel b/src/util/mkrel index a1c0d36099..6223cf1317 100755 --- a/src/util/mkrel +++ b/src/util/mkrel @@ -167,7 +167,7 @@ if test $dosrc = t; then make) fi echo "Creating configure scripts..." - (cd $reldir/src; util/reconf) + (cd $reldir/src; autoreconf -v) if test -d $reldir/src/util/autoconf; then echo "Cleaning src/util/autoconf..." @@ -179,7 +179,7 @@ echo "Nuking unneeded files..." find $reldir \( -name TODO -o -name todo -o -name .cvsignore \ -o -name .gitignore -o -name BADSYMS -o -name .Sanitize \ -o -name .rconf \) -print | xargs rm -f || true -find $reldir -type d \( -name autom4te.cache \ +find $reldir -depth -type d \( -name autom4te.cache \ -o -name \$ac_config_fragdir \) -exec rm -rf {} \; || true rm -rf $reldir/.git || true diff --git a/src/util/reconf b/src/util/reconf deleted file mode 100755 index aec534f703..0000000000 --- a/src/util/reconf +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/sh - -force= -autoreconfprog=autoreconf -localdir=. -autoreconfoptions="" -verbose=false -localdirarg= - -autoreconf="/bin/sh $autoreconfprog" - -# This should prevent autoreconf -- at least, the Debian version -- from -# running aclocal in directories with configure.in but not aclocal.m4, so -# that we can find the top-level one via the --include option. -ACLOCAL=true ; export ACLOCAL - -usage="Usage: $0 [--force] [--verbose] [--help]" -for option -do - case "$option" in - --force | -f) - echo "Remaking all configuration files" - force=--force ;; - -help | --help | --hel | --he | --h) - echo "$usage"; exit 0 ;; - -v | --verbose) - verbose=true ;; - *) echo "$usage"; exit 1 ;; - esac -done - -# Currently (2003-04-24) we need 2.52 or later. -patb="2.(1[0-9][0-9])|(5[2-9])|([6-9][0-9])" - -# sedcmd1 recognizes the older 2.12 version, and sedcmd2 the newer 2.49 -sedcmd1="s,.*version \(.*\)$,\1," -sedcmd2="s,.*) \(.*\)$,\1,;1q" - -if autoreconf --version | sed -e "$sedcmd1" -e "$sedcmd2" | egrep "$patb" >/dev/null && \ - autoconf --version | sed -e "$sedcmd1" -e "$sedcmd2" | egrep "$patb" >/dev/null && \ - autoheader --version | sed -e "$sedcmd1" -e "$sedcmd2" | egrep "$patb" >/dev/null; then - autoreconf=autoreconf - autoreconfoptions= - autoconfversion=`autoconf --version | sed -e "$sedcmd1" -e "$sedcmd2"` - echo "Using autoconf version $autoconfversion found in your path..." - localdir=`pwd` - - # Determine if we need to patch autoreconf for 2.53 - case "$autoconfversion" in - 2.52) - echo "WARNING: autoconf 2.52 is known to generate buggy configure scripts!" - ;; - 2.53) - echo "Patching autoreconf" - # Walk the path to find autoreconf - autoreconfpath= - for i in `echo $PATH | sed -e 's/:/ /g'` ; do - if test -r $i/autoreconf; then - autoreconfpath=$i/autoreconf - break - fi - done - if test "x$autoreconfpath" = "x" ; then - echo "Could not find autoreconf executable!!!" - exit - fi - - echo "About to patch $autoreconfpath to ..." - TMPCMD=/tmp/autoreconf$$ - sed -e 's/push @ARGV, $_;/push @ARGV, catfile ($directory, $_);/' $autoreconfpath > $TMPCMD - autoreconf="/bin/sh $TMPCMD" - trap "rm $TMPCMD" 0 - ;; - *) - ;; - esac - - # Determine the proper argument to autoreconf - case "$autoconfversion" in - 2.1*) - localdirarg="-l" - ;; - 2.5[23]) - localdirarg="-l" - ;; - *) - localdirarg="-I" - ;; - esac -else - echo "Couldn't find autoconf 2.52 or higher in your path." - echo " " - echo "Please install or add to your path and re-run ./util/reconf" - exit 1 -fi - -if $verbose ; then - echo $autoreconf $autoreconfoptions $localdirarg $localdir --verbose $force -fi -$autoreconf $autoreconfoptions $localdirarg $localdir --verbose $force || exit 1 -if test $? = 0 ; then - if test ! -d include/autoconf.stmp ; then - cp /dev/null include/autoconf.stmp - fi -fi -find . -name autom4te.cache -print | xargs rm -rf