blob: 1edfca04cdf049c47f96ff5e0cf247fa80bebb40 (
plain)
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
---
layout: documentation
title: Compiling Bazel from Source
---
# <a name="compiling-from-source"></a>Compiling Bazel from Source (bootstrapping)
You can build Bazel from source without using an existing Bazel binary.
### 1. Install the prerequisites
#### Unix-like systems
Ensure you have installed:
* **Bash**
* **zip, unzip**
* **C++ build toolchain**
* **JDK 8.** You must install version 8 of the JDK. Versions other than 8 are
*not* supported.
* **Python**. Versions 2 and 3 are supported.
For example on Ubuntu Linux you can install these requirements using the following command:
```sh
sudo apt-get install build-essential openjdk-8-jdk python zip unzip
```
#### Windows
Ensure you have installed:
* [MSYS2 shell](https://msys2.github.io/)
* **The required MSYS2 packages.** Run the following command in the MSYS2
shell:
```
pacman -Syu zip unzip
```
* **The Visual C++ compiler.** Install the Visual C++ compiler either as part
of Visual Studio 2015 or newer, or by installing the latest [Build Tools
for Visual Studio 2017](https://aka.ms/BuildTools).
* **JDK 8.** You must install version 8 of the JDK. Versions other than 8 are
*not* supported.
* **Python**. Versions 2 and 3 are supported. You *must* install the
Windows-native version (downloadable from [https://www.python.org](https://www.python.org)).
Versions installed via pacman in MSYS2 will not work.
### 2. Download and unpack Bazel's distribution archive
Download `bazel-<version>-dist.zip` from the [release page](https://github.com/bazelbuild/bazel/releases).
**Note:** There is a **single, architecture-independent** distribution archive. There are no architecture-specific or OS-specific distribution archives.
We recommend to also verify the signature made by our [release key](https://bazel.build/bazel-release.pub.gpg) 48457EE0.
The distribution archive contains generated files in addition to the versioned sources, so this step _cannot_ be short cut by checking out the source tree.
### 3. Bootstrap Bazel
#### Unix-like systems
On Unix-like systems such as Ubuntu Linux or macOS, do the following:
1. Open a shell or Terminal window.
2. Change into the directory where you unpacked the distribution archive.
3. Run the compilation script: `bash ./compile.sh`.
The compiled output is placed into `output/bazel`. This is a self-contained
Bazel binary, without an embedded JDK. You can copy it to a directory in the
`PATH` variable (such as `/usr/local/bin` on Linux) or use it in-place.
#### Windows
1. Open the MSYS2 shell.
2. Set the following environment variables:
* `BAZEL_VS` or `BAZEL_VC`: Set to the path to the Visual Studio directory
or to the Visual C++ directory, respectively. Setting one of them is
enough.
* `BAZEL_SH`: Set to the path of the MSYS2 `bash.exe`.
Do not set this to `C:\Windows\System32\bash.exe`. (You have that file
if you installed Windows Subsystem for Linux.) Bazel does not support
this version of `bash.exe`.
* `PATH`: Add the Python directory.
* `JAVA_HOME`: Set to the JDK directory.
For example:
export BAZEL_VS="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools"
export BAZEL_SH="C:/msys64/usr/bin/bash.exe"
export PATH="/c/python27:$PATH"
export JAVA_HOME="C:/Program Files/Java/jdk1.8.0_112"
or
export BAZEL_VC="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC"
export BAZEL_SH="c:/msys64/usr/bin/bash.exe"
export PATH="/c/python27:$PATH"
export JAVA_HOME="C:/Program Files/Java/jdk1.8.0_112"
3. Change into the directory where you unpacked the distribution archive.
4. Run the compilation script: `./compile.sh`
The compiled output is placed into `output/bazel.exe`. This is a self-contained
Bazel binary, without an embedded JDK. You can copy it to a directory within the
`%PATH%` variable or use it in-place.
You don't need to run Bazel from the MSYS2 shell. You can run Bazel from the
Command Prompt (`cmd.exe`) or PowerShell.
|