]> git.draconx.ca Git - rrace.git/blobdiff - bootstrap
Pull in gnulib for its portability features.
[rrace.git] / bootstrap
diff --git a/bootstrap b/bootstrap
new file mode 100755 (executable)
index 0000000..f16d302
--- /dev/null
+++ b/bootstrap
@@ -0,0 +1,59 @@
+#!/bin/sh
+#
+# Copyright © 2011-2012, 2015, 2021-2022 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.
+
+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 || err "Failed to update submodules from git."
+
+if test -x $GNULIB/gnulib-tool; then
+  $GNULIB/gnulib-tool --update -S || die "Failed to update Gnulib."
+else
+  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."
+
+# Rewrite if ! ... construts produced by gnulib conditional dependencies
+# as these fail in heirloom-sh.
+sed 's/if ! *\(.*gnulib_enabled[^;]*\); then/if \1; then :; else/' \
+  m4/gnulib-comp.m4 >m4/gnulib-comp.m4.new || exit
+mv -f m4/gnulib-comp.m4.new m4/gnulib-comp.m4 || exit
+
+# 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