X-Git-Url: https://git.draconx.ca/gitweb/cdecl99.git/blobdiff_plain/525d25e1c7e98987353bf0a7a92e43a3fe52043d..HEAD:/bootstrap diff --git a/bootstrap b/bootstrap index a9ad671..639e6c4 100755 --- a/bootstrap +++ b/bootstrap @@ -1,23 +1,71 @@ #!/bin/sh +# +# Copyright © 2011-2012, 2021-2023 Nick Bowler +# +# Simple script to get started from a fresh git checkout. +# +# License WTFPL2: Do What The Fuck You Want To Public License, version 2. +# This is free software: you are free to do what the fuck you want to. +# There is NO WARRANTY, to the extent permitted by law. -trap 'exit 1' USR1 -die() { printf '%s\n' "$@" 1>&2; kill -USR1 $$; } +scriptname=$0 + +err() { + printf '%s: %s\n' "$scriptname" "$*" 1>&2 +} + +die() { + err "$@" + exit 1 +} : ${AUTORECONF=autoreconf} +: ${AUTOMAKE=automake} : ${GNULIB=gnulib} : ${GIT=git} : ${PERL=perl} -$GIT submodule update --init \ - || echo "Failed to update Gnulib sources from git." +$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." + + exec 3>lib/symfiles.tmp 4&3 ) || die "gnulib-tool failed" + shared_modules=`LC_ALL=C sort -u <&4` + + set x --extract-filelist $shared_modules; shift + ( set -x; $GNULIB/gnulib-tool "$@" >&3 ) || die "gnulib-tool failed" + <&4 grep '^lib/.*[.][^vh][^.]*$' | LC_ALL=C sort -u >lib/symfiles 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 fix-gnulib.pl -o lib/gnulib.mk -i lib/gnulib.mk.in -m m4/fix-gnulib.m4 \ +$PERL common/scripts/fix-gnulib.pl -o lib/gnulib.mk -i lib/gnulib.mk.in \ || die "Failed to fixup Gnulib makefile fragment." -$AUTORECONF -fis +# 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 +$AUTORECONF -fis || exit + +amdir=`$AUTOMAKE --print-libdir` +if test -f "$amdir/INSTALL"; then + ln -sf "$amdir/INSTALL" INSTALL +fi