latest from svn
[boost:build.git] / v2 / bootstrap.sh
1 #!/bin/sh
2 # Copyright (C) 2005, 2006 Douglas Gregor.
3 # Copyright (C) 2006 The Trustees of Indiana University
4 #
5 # Distributed under the Boost Software License, Version 1.0.
6 # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
7
8 # boostinspect:notab - Tabs are required for the Makefile.
9
10 BJAM=""
11 TOOLSET=""
12 BJAM_CONFIG=""
13
14 for option
15 do
16     case $option in
17
18     -help | --help | -h)
19       want_help=yes ;;
20
21     -with-toolset=* | --with-toolset=* )
22       TOOLSET=`expr "x$option" : "x-*with-toolset=\(.*\)"`
23       ;;
24
25     -*)
26       { echo "error: unrecognized option: $option
27 Try \`$0 --help' for more information." >&2
28       { (exit 1); exit 1; }; }
29       ;; 
30
31     esac
32 done
33
34 if test "x$want_help" = xyes; then
35   cat <<EOF
36 \`./bootstrap.sh' creates minimal Boost.Build, which can install itself.
37
38 Usage: $0 [OPTION]... 
39
40 Defaults for the options are specified in brackets.
41
42 Configuration:
43   -h, --help                display this help and exit
44   --with-bjam=BJAM          use existing Boost.Jam executable (bjam)
45                             [automatically built]
46   --with-toolset=TOOLSET    use specific Boost.Build toolset
47                             [automatically detected]
48 EOF
49 fi
50 test -n "$want_help" && exit 0
51
52 # TBD: Determine where the script is located
53 my_dir="."
54
55 # Determine the toolset, if not already decided
56 if test "x$TOOLSET" = x; then
57   guessed_toolset=`$my_dir/engine/src/build.sh --guess-toolset`
58   case $guessed_toolset in
59     acc | darwin | gcc | como | mipspro | pathscale | pgi | qcc | vacpp )
60     TOOLSET=$guessed_toolset
61     ;;
62     
63     intel-* )
64     TOOLSET=intel
65     ;;
66     
67     mingw )
68     TOOLSET=gcc
69     ;;
70     
71     sun* )
72     TOOLSET=sun
73     ;;
74     
75     * )
76     # Not supported by Boost.Build
77     ;;
78   esac
79 fi
80
81 rm -f config.log
82
83 # Build bjam
84 if test "x$BJAM" = x; then
85   echo -n "Bootstrapping the build engine with toolset $TOOLSET... "
86   pwd=`pwd`
87   (cd "$my_dir/engine/src" && ./build.sh "$TOOLSET") > bootstrap.log 2>&1
88   if [ $? -ne 0 ]; then
89       echo
90       echo "Failed to bootstrap the build engine" 
91       echo "Consult 'bootstrap.log' for more details"
92       exit 1
93   fi
94   cd "$pwd"
95   arch=`cd $my_dir/engine/src && ./bootstrap/jam0 -d0 -f build.jam --toolset=$TOOLSET --toolset-root= --show-locate-target && cd ..`
96   BJAM="$my_dir/engine/src/$arch/bjam"
97   echo "engine/src/$arch/bjam"
98   cp "$BJAM" .
99 fi
100
101 cat << EOF
102
103 Bootstrapping is done. To build and install, run:
104
105     ./bjam install --prefix=<DIR>
106
107 EOF