From 386569b29bae19855e8707d67b63f26e4f9e3e96 Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Thu, 18 May 2017 14:50:03 +0200 Subject: bootstrap: Rename 'bootstrap.sh' to 'bootstrap'. Follow Gnulib's convention of using either "bootstrap" or "autogen.sh" file names for development bootstrap scripts. * bootstrap.sh: Rename to ... * bootstrap: ... this. * GNUmakefile (bootstrap): Adapt. * HACKING: Likewise. * Makefile.am (EXTRA_DIST): Likewise. * doc/automake.texi (Future of aclocal) (Error required file ltmain.sh not found): Likewise. * maintainer/maint.mk (autodiffs, update-copyright): Likewise. --- GNUmakefile | 2 +- HACKING | 4 +- Makefile.am | 2 +- bootstrap | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++ bootstrap.sh | 123 ---------------------------------------------------- doc/automake.texi | 8 ++-- maintainer/maint.mk | 4 +- 7 files changed, 133 insertions(+), 133 deletions(-) create mode 100755 bootstrap delete mode 100755 bootstrap.sh diff --git a/GNUmakefile b/GNUmakefile index ebc38764c..aa52f603d 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -72,7 +72,7 @@ configure-flags := $(old-configure-flags) $(BOOTSTRAP_CONFIGURE_FLAGS) .PHONY: bootstrap bootstrap: - cd $(srcdir) && $(SHELL) ./bootstrap.sh + cd $(srcdir) && $(SHELL) ./bootstrap $(srcdir)/configure $(configure-flags) $(MAKE) clean $(MAKE) check TESTS=t/get-sysconf diff --git a/HACKING b/HACKING index 6ffc9ca15..e34870b84 100644 --- a/HACKING +++ b/HACKING @@ -149,7 +149,7 @@ = Working with git * To regenerate dependent files created by aclocal and automake, - use the 'bootstrap.sh' script. It uses the code from the source + use the 'bootstrap' script. It uses the code from the source tree, so the resulting files (aclocal.m4 and Makefile.in) should be the same as you would get if you install this version of automake and use it to generate those files. Be sure to have the @@ -365,7 +365,7 @@ in by hand any "TODO" left in there. * Update version number in configure.ac to next alpha number. - Re-run ./bootstrap.sh and commit. + Re-run ./bootstrap and commit. * Don't forget to "git push" your changes so they appear in the public git tree. diff --git a/Makefile.am b/Makefile.am index 529a0cf74..cfe4dd40d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -33,7 +33,7 @@ nodist_noinst_SCRIPTS = ## ------------ ## EXTRA_DIST += \ - bootstrap.sh \ + bootstrap \ GNUmakefile \ HACKING \ PLANS diff --git a/bootstrap b/bootstrap new file mode 100755 index 000000000..781627df6 --- /dev/null +++ b/bootstrap @@ -0,0 +1,123 @@ +#! /bin/sh + +# This script helps bootstrap automake, when checked out from git. +# +# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# Originally written by Pavel Roskin September 2002. +# +# 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, see . + +# Don't ignore failures. +set -e + +# Set program basename. +me=`echo "$0" | sed 's,^.*/,,'` + +# Let user choose which version of autoconf, autom4te and perl to use. +: ${AUTOCONF=autoconf} +export AUTOCONF # might be used by aclocal and/or automake +: ${AUTOM4TE=autom4te} +export AUTOM4TE # ditto +: ${PERL=perl} + +# Variables to substitute. +VERSION=`sed -ne '/AC_INIT/s/^[^[]*\[[^[]*\[\([^]]*\)\].*$/\1/p' configure.ac` +PACKAGE=automake +datadir=. +# This should be automatically updated by the 'update-copyright' +# rule of our Makefile. +RELEASE_YEAR=2017 + +# Override SHELL. This is required on DJGPP so that Perl's system() +# uses bash, not COMMAND.COM which doesn't quote arguments properly. +# It's not used otherwise. +if test -n "$DJDIR"; then + BOOTSTRAP_SHELL=/dev/env/DJDIR/bin/bash.exe +else + BOOTSTRAP_SHELL=/bin/sh +fi + +# Read the rule for calculating APIVERSION and execute it. +apiver_cmd=`sed -ne 's/\[\[/[/g;s/\]\]/]/g;/^APIVERSION=/p' configure.ac` +eval "$apiver_cmd" + +# Sanity checks. +if test -z "$VERSION"; then + echo "$me: cannot find VERSION" >&2 + exit 1 +fi + +if test -z "$APIVERSION"; then + echo "$me: cannot find APIVERSION" >&2 + exit 1 +fi + +# Make a dummy versioned directory for aclocal. +rm -rf aclocal-$APIVERSION +mkdir aclocal-$APIVERSION +if test -d automake-$APIVERSION; then + find automake-$APIVERSION -exec chmod u+wx '{}' ';' +fi +rm -rf automake-$APIVERSION +# Can't use "ln -s lib automake-$APIVERSION", that would create a +# lib.exe stub under DJGPP 2.03. +mkdir automake-$APIVERSION +cp -rf lib/* automake-$APIVERSION + +dosubst () +{ + rm -f $2 + in=`echo $1 | sed 's,^.*/,,'` + sed -e "s%@APIVERSION@%$APIVERSION%g" \ + -e "s%@PACKAGE@%$PACKAGE%g" \ + -e "s%@PERL@%$PERL%g" \ + -e "s%@SHELL@%$BOOTSTRAP_SHELL%g" \ + -e "s%@VERSION@%$VERSION%g" \ + -e "s%@datadir@%$datadir%g" \ + -e "s%@RELEASE_YEAR@%$RELEASE_YEAR%g" \ + -e "s%@configure_input@%Generated from $in; do not edit by hand.%g" \ + $1 > $2 + chmod a-w $2 +} + +# Create temporary replacement for lib/Automake/Config.pm. +dosubst automake-$APIVERSION/Automake/Config.in \ + automake-$APIVERSION/Automake/Config.pm + +# Overwrite amversion.m4. +dosubst m4/amversion.in m4/amversion.m4 + +# Create temporary replacement for aclocal and automake. +for p in bin/aclocal bin/automake; do + dosubst $p.in $p.tmp + $PERL -w bin/gen-perl-protos $p.tmp > $p.tmp2 + mv -f $p.tmp2 $p.tmp +done + +# Create required makefile snippets. +$PERL ./gen-testsuite-part > t/testsuite-part.tmp +chmod a-w t/testsuite-part.tmp +mv -f t/testsuite-part.tmp t/testsuite-part.am + +# Run the autotools. Bail out if any warning is triggered. +# Use '-I' here so that our own *.m4 files in m4/ gets included, +# not copied, in aclocal.m4. +$PERL ./bin/aclocal.tmp -Wall -Werror -I m4 \ + --automake-acdir=m4 --system-acdir=m4/acdir +$AUTOCONF -Wall -Werror +$PERL ./bin/automake.tmp -Wall -Werror + +# Remove temporary files and directories. +rm -rf aclocal-$APIVERSION automake-$APIVERSION +rm -f bin/aclocal.tmp bin/automake.tmp diff --git a/bootstrap.sh b/bootstrap.sh deleted file mode 100755 index 781627df6..000000000 --- a/bootstrap.sh +++ /dev/null @@ -1,123 +0,0 @@ -#! /bin/sh - -# This script helps bootstrap automake, when checked out from git. -# -# Copyright (C) 2002-2017 Free Software Foundation, Inc. -# Originally written by Pavel Roskin September 2002. -# -# 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, see . - -# Don't ignore failures. -set -e - -# Set program basename. -me=`echo "$0" | sed 's,^.*/,,'` - -# Let user choose which version of autoconf, autom4te and perl to use. -: ${AUTOCONF=autoconf} -export AUTOCONF # might be used by aclocal and/or automake -: ${AUTOM4TE=autom4te} -export AUTOM4TE # ditto -: ${PERL=perl} - -# Variables to substitute. -VERSION=`sed -ne '/AC_INIT/s/^[^[]*\[[^[]*\[\([^]]*\)\].*$/\1/p' configure.ac` -PACKAGE=automake -datadir=. -# This should be automatically updated by the 'update-copyright' -# rule of our Makefile. -RELEASE_YEAR=2017 - -# Override SHELL. This is required on DJGPP so that Perl's system() -# uses bash, not COMMAND.COM which doesn't quote arguments properly. -# It's not used otherwise. -if test -n "$DJDIR"; then - BOOTSTRAP_SHELL=/dev/env/DJDIR/bin/bash.exe -else - BOOTSTRAP_SHELL=/bin/sh -fi - -# Read the rule for calculating APIVERSION and execute it. -apiver_cmd=`sed -ne 's/\[\[/[/g;s/\]\]/]/g;/^APIVERSION=/p' configure.ac` -eval "$apiver_cmd" - -# Sanity checks. -if test -z "$VERSION"; then - echo "$me: cannot find VERSION" >&2 - exit 1 -fi - -if test -z "$APIVERSION"; then - echo "$me: cannot find APIVERSION" >&2 - exit 1 -fi - -# Make a dummy versioned directory for aclocal. -rm -rf aclocal-$APIVERSION -mkdir aclocal-$APIVERSION -if test -d automake-$APIVERSION; then - find automake-$APIVERSION -exec chmod u+wx '{}' ';' -fi -rm -rf automake-$APIVERSION -# Can't use "ln -s lib automake-$APIVERSION", that would create a -# lib.exe stub under DJGPP 2.03. -mkdir automake-$APIVERSION -cp -rf lib/* automake-$APIVERSION - -dosubst () -{ - rm -f $2 - in=`echo $1 | sed 's,^.*/,,'` - sed -e "s%@APIVERSION@%$APIVERSION%g" \ - -e "s%@PACKAGE@%$PACKAGE%g" \ - -e "s%@PERL@%$PERL%g" \ - -e "s%@SHELL@%$BOOTSTRAP_SHELL%g" \ - -e "s%@VERSION@%$VERSION%g" \ - -e "s%@datadir@%$datadir%g" \ - -e "s%@RELEASE_YEAR@%$RELEASE_YEAR%g" \ - -e "s%@configure_input@%Generated from $in; do not edit by hand.%g" \ - $1 > $2 - chmod a-w $2 -} - -# Create temporary replacement for lib/Automake/Config.pm. -dosubst automake-$APIVERSION/Automake/Config.in \ - automake-$APIVERSION/Automake/Config.pm - -# Overwrite amversion.m4. -dosubst m4/amversion.in m4/amversion.m4 - -# Create temporary replacement for aclocal and automake. -for p in bin/aclocal bin/automake; do - dosubst $p.in $p.tmp - $PERL -w bin/gen-perl-protos $p.tmp > $p.tmp2 - mv -f $p.tmp2 $p.tmp -done - -# Create required makefile snippets. -$PERL ./gen-testsuite-part > t/testsuite-part.tmp -chmod a-w t/testsuite-part.tmp -mv -f t/testsuite-part.tmp t/testsuite-part.am - -# Run the autotools. Bail out if any warning is triggered. -# Use '-I' here so that our own *.m4 files in m4/ gets included, -# not copied, in aclocal.m4. -$PERL ./bin/aclocal.tmp -Wall -Werror -I m4 \ - --automake-acdir=m4 --system-acdir=m4/acdir -$AUTOCONF -Wall -Werror -$PERL ./bin/automake.tmp -Wall -Werror - -# Remove temporary files and directories. -rm -rf aclocal-$APIVERSION automake-$APIVERSION -rm -f bin/aclocal.tmp bin/automake.tmp diff --git a/doc/automake.texi b/doc/automake.texi index b486c1c90..da0aa2942 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -3857,12 +3857,12 @@ will have been taken care of. If otherwise you used to call @command{aclocal} directly yourself or from some script, you will quickly notice the change. -Many packages come with a script called @file{bootstrap.sh} or +Many packages come with a script called @file{bootstrap} or @file{autogen.sh}, that will just call @command{aclocal}, @command{libtoolize}, @command{gettextize} or @command{autopoint}, @command{autoconf}, @command{autoheader}, and @command{automake} in the right order. Actually this is precisely what @command{autoreconf} -can do for you. If your package has such a @file{bootstrap.sh} or +can do for you. If your package has such a @file{bootstrap} or @file{autogen.sh} script, consider using @command{autoreconf}. That should simplify its logic a lot (less things to maintain, yum!), it's even likely you will not need the script anymore, and more to the point @@ -5524,7 +5524,7 @@ performed automatically by Autoconf (@pxref{AC_LIBOBJ vs LIBOBJS, , @cindex @command{libtoolize}, no longer run by @command{automake} @cindex @command{libtoolize} and @command{autoreconf} @cindex @command{autoreconf} and @command{libtoolize} -@cindex @file{bootstrap.sh} and @command{autoreconf} +@cindex @file{bootstrap} and @command{autoreconf} @cindex @file{autogen.sh} and @command{autoreconf} Libtool comes with a tool called @command{libtoolize} that will @@ -5543,7 +5543,7 @@ functionality has been moved into the @command{autoreconf} command (@pxref{autoreconf Invocation, , Using @command{autoreconf}, autoconf, The Autoconf Manual}). If you do not want to remember what to run and when, just learn the @command{autoreconf} command. Hopefully, -replacing existing @file{bootstrap.sh} or @file{autogen.sh} scripts by +replacing existing @file{bootstrap} or @file{autogen.sh} scripts by a call to @command{autoreconf} should also free you from any similar incompatible change in the future. diff --git a/maintainer/maint.mk b/maintainer/maint.mk index 100871f42..582cfdd58 100644 --- a/maintainer/maint.mk +++ b/maintainer/maint.mk @@ -223,7 +223,7 @@ autodiffs: && cd tmp \ && $(GIT) checkout -q "$$rev" \ && echo "$@: bootstrapping $$rev" \ - && $(SHELL) ./bootstrap.sh \ + && $(SHELL) ./bootstrap \ && echo "$@: copying files from $$rev" \ && makefile_ins=`find . -name Makefile.in` \ && (tar cf - configure aclocal.m4 $$makefile_ins) | \ @@ -487,7 +487,7 @@ update-copyright: || { echo "$@: cannot get current year" >&2; exit 1; }; \ fi; \ sed -i "/^RELEASE_YEAR=/s/=.*$$/=$$current_year/" \ - bootstrap.sh configure.ac; \ + bootstrap configure.ac; \ excluded_re=`( \ for url in $(FETCHFILES); do echo "$$url"; done \ | sed -e 's!^.*/!!' -e 's!^.*=!!' -e 's!^!lib/!' \ -- cgit v1.2.1