blob: 8523c3db3e042e7b27d697e5177f39d55eb49d4b [file] [log] [blame]
#!/bin/sh
# Copyright (C) 2005, 2006 Douglas Gregor.
# Copyright (C) 2006 The Trustees of Indiana University
# Copyright (C) 2010 Bryce Lelbach
#
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
# boostinspect:notab - Tabs are required for the Makefile.
B2=""
TOOLSET=""
B2_CONFIG=""
for option
do
case $option in
-help | --help | -h)
want_help=yes ;;
-with-toolset=* | --with-toolset=* )
TOOLSET=`expr "x$option" : "x-*with-toolset=\(.*\)"`
;;
-*)
{ echo "error: unrecognized option: $option
Try \`$0 --help' for more information." >&2
{ (exit 1); exit 1; }; }
;;
esac
done
if test "x$want_help" = xyes; then
cat <<EOF
\`./bootstrap.sh' creates minimal Boost.Build, which can install itself.
Usage: $0 [OPTION]...
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--with-b2=B2 use existing Boost.Build executable (b2)
[automatically built]
--with-toolset=TOOLSET use specific Boost.Build toolset
[automatically detected]
EOF
fi
test -n "$want_help" && exit 0
# TBD: Determine where the script is located
my_dir="."
# Determine the toolset, if not already decided
if test "x$TOOLSET" = x; then
guessed_toolset=`$my_dir/src/engine/build.sh --guess-toolset`
case $guessed_toolset in
acc | darwin | gcc | como | mipspro | pathscale | pgi | qcc | vacpp )
TOOLSET=$guessed_toolset
;;
intel-* )
TOOLSET=intel
;;
mingw )
TOOLSET=gcc
;;
clang* )
TOOLSET=clang
;;
sun* )
TOOLSET=sun
;;
* )
# Not supported by Boost.Build
;;
esac
fi
case $TOOLSET in
clang*)
TOOLSET=clang
;;
esac
rm -f config.log
# Build b2
if test "x$B2" = x; then
echo -n "Bootstrapping the build engine with toolset $TOOLSET... "
pwd=`pwd`
(cd "$my_dir/src/engine" && ./build.sh "$TOOLSET") > bootstrap.log 2>&1
if [ $? -ne 0 ]; then
echo
echo "Failed to bootstrap the build engine"
echo "Consult 'bootstrap.log' for more details"
exit 1
fi
cd "$pwd"
arch=`cd $my_dir/src/engine && ./bootstrap/jam0 -d0 -f build.jam --toolset=$TOOLSET --toolset-root= --show-locate-target && cd ..`
B2="$my_dir/src/engine/$arch/b2"
echo "engine/$arch/b2"
cp "$B2" .
cp "$my_dir/src/engine/$arch/bjam" .
fi
cat << EOF
Bootstrapping is done. To build and install, run:
./b2 install --prefix=<DIR>
EOF