1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
// file : INSTALL.cli
// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
"
Unless you specifically only need the \c{build2} build system and not the
complete \c{build2} toolchain, you should use the \c{build2-toolchain}
distribution instead.
The instructions outlined below are essentially a summary of the first three
steps of the manual bootstrap process described in \c{build2-toolchain}. Also,
below we only show commands for UNIX-like operating systems. For other
operating systems and for more details on each step, refer to the
\c{build2-toolchain} documentation.
\c{build2} requires a C++14 compiler. GCC 4.9, Clang 3.4, and MSVC 14 (2015)
Update 3 or any later versions of these compilers are known to work. The build
system is self-hosted, which means that unless you have obtained a pre-built
binary from somewhere else, you will need to bootstrap it. To accomplish this,
we use the \c{bootstrap.sh} shell script (or equivalent batch files for
Windows) found in the root directory of the \c{build2} distribution. The
following is the recommended sequence of steps:
\dl|
\li|\b{0. Prerequisites}\n
Get \c{libbutl} (normally from the same place where you got \c{build2}) and
place it \i{inside} \c{build2}, so that you have:
\
build2-X.Y.Z
|
`-- libbutl-X.Y.Z
\
|
\li|\n\b{1. Bootstrap, Phase 1}\n
First, we build a minimal build system using \c{bootstrap.sh} (run
\c{bootstrap.sh -h} for options):
\
$ cd build2-X.Y.Z
$ ./bootstrap.sh g++
$ build2/b-boot --version
\
|
\li|\n\b{2. Bootstrap, Phase 2}\n
Then, we rebuild the build system with the result of Phase 1 linking
libraries statically.
\
$ build2/b-boot config.cxx=g++ config.bin.lib=static
$ mv build2/b build2/b-boot
$ build2/b-boot --version
\
|
\li|\n\b{3. Build and Install}\n
Finally, we configure, build, and optionally install the \"final\" version
using shared libraries:
\
$ build2/b-boot configure \
config.cxx=g++ \
config.cc.coptions=-O3 \
config.bin.rpath=/usr/local/lib \
config.install.root=/usr/local \
config.install.sudo=sudo
$ build2/b-boot
\
I you are not planning to install the result you can omit the
\c{config.install.*} values as well as \c{.rpath}.
To install:
\
$ build2/b-boot install
$ which b
$ b --version
\
To uninstall:
\
$ b uninstall
$ which b
\
||
"
|