aboutsummaryrefslogtreecommitdiff
path: root/bootstrap
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap')
-rwxr-xr-xbootstrap52
1 files changed, 48 insertions, 4 deletions
diff --git a/bootstrap b/bootstrap
index 86dcc78..e36d079 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,8 +1,7 @@
#!/bin/sh
-src="build/*.cxx build/config/*.cxx build/bin/*.cxx build/cxx/*.cxx"
-
cxx=g++
+libbutl=
while test $# -ne 0; do
case $1 in
@@ -20,6 +19,19 @@ while test $# -ne 0; do
cxx=$1
shift
;;
+ --libbutl)
+ shift
+ if test $# -eq 0; then
+ echo "error: libbutl path expected after --libbutl" 1>&2
+ exit 1
+ fi
+ if test ! -d "$1"; then
+ echo "error: libbutl directory '$1' does not exist" 1>&2
+ exit 1
+ fi
+ libbutl=$1
+ shift
+ ;;
*)
echo "error: unknown option $1" 1>&2
exit 1
@@ -27,5 +39,37 @@ while test $# -ne 0; do
esac
done
-echo $cxx -std=c++14 -I. -o build/b-boot $src 1>&2
-exec $cxx -std=c++14 -I. -o build/b-boot $src
+# See if there is libbutl or libbutl-* in the current directory and
+# one directory up.
+#
+if test -z "$libbutl"; then
+ if test -d libbutl; then
+ libbutl=libbutl
+ else
+ libbutl=`echo libbutl-*`
+ if test ! -d "$libbutl"; then
+ libbutl=
+ fi
+ fi
+fi
+
+if test -z "$libbutl"; then
+ if test -d ../libbutl; then
+ libbutl=../libbutl
+ else
+ libbutl=`echo ../libbutl-*`
+ if test ! -d "$libbutl"; then
+ libbutl=
+ fi
+ fi
+fi
+
+if test -z "$libbutl"; then
+ echo "error: unable to find libbutl, use --libbutl to specify its location" 1>&2
+ exit 1
+fi
+
+src="build/*.cxx build/config/*.cxx build/bin/*.cxx build/cxx/*.cxx $libbutl/butl/*.cxx"
+
+echo $cxx -std=c++1y -I$libbutl -I. -o build/b-boot $src 1>&2
+exec $cxx -std=c++1y -I$libbutl -I. -o build/b-boot $src