X-Git-Url: https://git.draconx.ca/gitweb/upkg.git/blobdiff_plain/d2aa316f6b44d403eec7d010a55ac824fd83662b..HEAD:/bootstrap diff --git a/bootstrap b/bootstrap index 557a9a4..2ab4a58 100755 --- a/bootstrap +++ b/bootstrap @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright © 2011-2012 Nick Bowler +# Copyright © 2011-2012, 2015, 2021-2023 Nick Bowler # # Simple script to get started from a fresh git checkout. # @@ -10,16 +10,12 @@ scriptname=$0 -err() { - printf '%s: %s\n' "$scriptname" "$@" 1>&2 -} - -die() { - err "$@" - exit 1 -} +err() { printf '%s: %s\n' "$scriptname" "$*" 1>&2; } +die() { err "$@"; exit 1; } +: ${LIBTOOLIZE=libtoolize} : ${AUTORECONF=autoreconf} +: ${AUTOMAKE=automake} : ${GNULIB=gnulib} : ${GIT=git} : ${PERL=perl} @@ -27,12 +23,43 @@ die() { $GIT submodule update --init || err "Failed to update submodules from git." if test -x $GNULIB/gnulib-tool; then - $GNULIB/gnulib-tool --update -S || die "Failed to update Gnulib." + $GNULIB/gnulib-tool --update -S || die "Failed to update Gnulib." else - die "Gnulib sources are not properly installed in gnulib/." + err "Gnulib sources are not properly installed in $GNULIB/" + cat >&2 <<'EOF' + +To bootstrap this package using an external Gnulib, you can set the GNULIB +environment variable to indicate the location of the Gnulib sources. +EOF + + test ! -f configure || cat >&2 <<'EOF' + +However, it seems this package is already bootstrapped. It should not +normally be necessary to run this script from a release tarball. +EOF + exit 1 fi $PERL common/scripts/fix-gnulib.pl -o lib/gnulib.mk -i lib/gnulib.mk.in \ - || die "Failed to fixup Gnulib makefile fragment." + || die "Failed to fixup Gnulib makefile fragment." -$AUTORECONF -fis +# Frustratingly, libtoolize has changed the name of its nonrecursive ltdl +# makefile output, which broke all packages depending on previous documented +# behaviour. Work around the issue by renaming the output. +rm -f libltdl/ltdl.mk +$LIBTOOLIZE -f || die "Failed to run libtoolize." +test ! -f libltdl/Makefile.inc || mv -f libltdl/Makefile.inc libltdl/ltdl.mk.in +test ! -f libltdl/ltdl.mk || mv -f libltdl/ltdl.mk libltdl/ltdl.mk.in + +$PERL common/scripts/fix-ltdl.pl -o libltdl/ltdl.mk -i libltdl/ltdl.mk.in \ + || die "Failed to fixup libltdl makefile fragment." + +# Punt some automake-generated files so that Gentoo's wrapper script doesn't +# try to detect the automake version in use. +rm -f Makefile.in aclocal.m4 +LIBTOOLIZE=true $AUTORECONF -fis || exit + +amdir=`$AUTOMAKE --print-libdir` +if test -f "$amdir/INSTALL"; then + ln -sf "$amdir/INSTALL" INSTALL +fi