You can build Bazel from source following these steps:
Ensure that JDK 8, Python, bash, zip, and the usual C build toolchain are installed on your system.
On systems based on Debian packages (Debian, Ubuntu): you can install OpenJDK 8 and Python by running the following command in a terminal:
sudo apt-get install build-essential openjdk-8-jdk python zip
On Windows: you need additional software. See the requirements page.
Download and unpack Bazel's distribution archive.
Download bazel-<version>-dist.zip
from the release page. We recommend to also verify the signature made by our release key 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.
Build Bazel using ./compile.sh
.
cd
into the directory where you unpacked the distribution archivebash ./compile.sh
cd
into the directory where you unpacked the distribution archive./compile.sh
The output will be output/bazel
on Unix-like systems (e.g. Ubuntu, macOS) and output/bazel.exe
on Windows. This is a self-contained Bazel binary. You can copy it to a directory on the PATH
(such as /usr/local/bin
on Linux) or use it in-place.
Make sure your machine meets the requirements and that you use the latest version of the sources (bazel-0.X.Y-dist.zip
).
There's a bug in the compilation scripts in bazel-0.6.0-dist.zip
and in bazel-0.6.1-dist.zip
:
To fix it:
either apply the changes in e79a110 to the source tree,
or just replace the following line in src/main/native/windows/build_windows_jni.sh
:
@CL /O2 /EHsc /LD /Fe:"$(cygpath -a -w ${DLL})" /I "${VSTEMP}" /I . ${WINDOWS_SOURCES[*]}
with this line:
@CL /O2 /EHsc /LD /Fe:"$(cygpath -a -w ${DLL})" /I "%TMP%" /I . ${WINDOWS_SOURCES[*]}
It suffices to do one of these to bootstrap Bazel. We however recommend applying the full commit (e79a110) because it also adds extra environment checks to ./compile.sh
.