.PHONY: bootstrap
bootstrap:
- cd $(srcdir) && $(SHELL) ./bootstrap.sh
+ cd $(srcdir) && $(SHELL) ./bootstrap
$(srcdir)/configure $(configure-flags)
$(MAKE) clean
$(MAKE) check TESTS=t/get-sysconf
= 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
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.
## ------------ ##
EXTRA_DIST += \
- bootstrap.sh \
+ bootstrap \
GNUmakefile \
HACKING \
PLANS
--- /dev/null
+#! /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 <proski@gnu.org> 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 <http://www.gnu.org/licenses/>.
+
+# 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
+++ /dev/null
-#! /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 <proski@gnu.org> 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 <http://www.gnu.org/licenses/>.
-
-# 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
@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
@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
(@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.
&& 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) | \
|| { 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/!' \