Clarify build requirements.
The minimum versions are largely bogus, since we do not continuously test them. Instead, we've been using Abseil's five year guidelines to decide when to rely on tooling improvements. Document this. Remove the note on how to build Ninja as that'll just get out of date. For instance, they appear to support Python 3 when building now. Explicitly call out that CMake 3.0 will be required next year (released June 2014). 3.0 is the minimum needed to distinguish Clang from AppleClang, without which version checks on Clang don't work. Also document that we require a C++11 compiler for more than just tests these days. Change-Id: I4e5766934edc1d69f7be01f48e855d400adfb5f2 Reviewed-on: https://boringssl-review.googlesource.com/c/33845 Commit-Queue: David Benjamin <davidben@google.com> Reviewed-by: Adam Langley <agl@google.com>
This commit is contained in:
parent
79c7ec06f6
commit
6f9f4cc443
38
BUILDING.md
38
BUILDING.md
@ -2,9 +2,18 @@
|
|||||||
|
|
||||||
## Build Prerequisites
|
## Build Prerequisites
|
||||||
|
|
||||||
* [CMake](https://cmake.org/download/) 2.8.11 or later is required.
|
The standalone CMake build is primarily intended for developers. If embedding
|
||||||
|
BoringSSL into another project with a pre-existing build system, see
|
||||||
|
[INCORPORATING.md](/INCORPORATING.md).
|
||||||
|
|
||||||
* Perl 5.6.1 or later is required. On Windows,
|
Unless otherwise noted, build tools must at most five years old, matching
|
||||||
|
[Abseil guidelines](https://abseil.io/about/compatibility). If in doubt, use the
|
||||||
|
most recent stable version of each tool.
|
||||||
|
|
||||||
|
* [CMake](https://cmake.org/download/) 2.8.12 or later is required. Note we
|
||||||
|
will begin requiring CMake 3.0 in 2019.
|
||||||
|
|
||||||
|
* A recent version of Perl is required. On Windows,
|
||||||
[Active State Perl](http://www.activestate.com/activeperl/) has been
|
[Active State Perl](http://www.activestate.com/activeperl/) has been
|
||||||
reported to work, as has MSYS Perl.
|
reported to work, as has MSYS Perl.
|
||||||
[Strawberry Perl](http://strawberryperl.com/) also works but it adds GCC
|
[Strawberry Perl](http://strawberryperl.com/) also works but it adds GCC
|
||||||
@ -13,28 +22,23 @@
|
|||||||
If Perl is not found by CMake, it may be configured explicitly by setting
|
If Perl is not found by CMake, it may be configured explicitly by setting
|
||||||
`PERL_EXECUTABLE`.
|
`PERL_EXECUTABLE`.
|
||||||
|
|
||||||
* On Windows you currently must use [Ninja](https://ninja-build.org/)
|
* Building with [Ninja](https://ninja-build.org/) instead of Make is
|
||||||
to build; on other platforms, it is not required, but recommended, because
|
recommended, because it makes builds faster. On Windows, CMake's Visual
|
||||||
it makes builds faster.
|
Studio generator may also work, but it not tested regularly and requires
|
||||||
|
recent versions of CMake for assembly support.
|
||||||
* If you need to build Ninja from source, then a recent version of
|
|
||||||
[Python](https://www.python.org/downloads/) is required (Python 2.7.5 works).
|
|
||||||
|
|
||||||
* On Windows only, [NASM](https://www.nasm.us/) is required. If not found
|
* On Windows only, [NASM](https://www.nasm.us/) is required. If not found
|
||||||
by CMake, it may be configured explicitly by setting
|
by CMake, it may be configured explicitly by setting
|
||||||
`CMAKE_ASM_NASM_COMPILER`.
|
`CMAKE_ASM_NASM_COMPILER`.
|
||||||
|
|
||||||
* A C compiler is required. On Windows, MSVC 14 (Visual Studio 2015) or later
|
* C and C++ compilers with C++11 support are required. On Windows, MSVC 14
|
||||||
with Platform SDK 8.1 or later are supported. Recent versions of GCC (4.8+)
|
(Visual Studio 2015) or later with Platform SDK 8.1 or later are supported.
|
||||||
and Clang should work on non-Windows platforms, and maybe on Windows too.
|
Recent versions of GCC (4.8+) and Clang should work on non-Windows
|
||||||
To build the tests, you also need a C++ compiler with C++11 support.
|
platforms, and maybe on Windows too.
|
||||||
|
|
||||||
* The most recent stable version of [Go](https://golang.org/dl/) is required.
|
* The most recent stable version of [Go](https://golang.org/dl/) is required.
|
||||||
If not found by CMake, the go executable may be configured explicitly by
|
Note Go is exempt from the five year support window. If not found by CMake,
|
||||||
setting `GO_EXECUTABLE`.
|
the go executable may be configured explicitly by setting `GO_EXECUTABLE`.
|
||||||
|
|
||||||
* To build the x86 and x86\_64 assembly, your assembler must support AVX2
|
|
||||||
instructions and MOVBE. If using GNU binutils, you must have 2.22 or later
|
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user