Updating BUILDING.md for windows.
Updating the Perl docs to describe behavior of Strawberry Perl and possible interaction with CMake on Windows. Also adding a few other links and instructions for using CMake/Ninja to build release mode with position independent code, since this seems generally useful. Change-Id: I616c0d267da749fe90673bc9e8bde9ec181fec25 Reviewed-on: https://boringssl-review.googlesource.com/7113 Reviewed-by: David Benjamin <davidben@google.com>
This commit is contained in:
parent
642b0b825e
commit
042e8f721a
20
BUILDING.md
20
BUILDING.md
@ -5,9 +5,13 @@
|
|||||||
* [CMake](https://cmake.org/download/) 2.8.8 or later is required.
|
* [CMake](https://cmake.org/download/) 2.8.8 or later is required.
|
||||||
|
|
||||||
* Perl 5.6.1 or later is required. On Windows,
|
* Perl 5.6.1 or later is required. On Windows,
|
||||||
[Strawberry Perl](http://strawberryperl.com/) and MSYS Perl have both been
|
[Active State Perl](http://www.activestate.com/activeperl/) has been
|
||||||
reported to work. If not found by CMake, it may be configured explicitly by
|
reported to work, as has MSYS Perl.
|
||||||
setting `PERL_EXECUTABLE`.
|
[Strawberry Perl](http://strawberryperl.com/) also works but it adds GCC
|
||||||
|
to `PATH`, which can confuse some build tools when identifying the compiler
|
||||||
|
(removing `C:\Strawberry\c\bin` from `PATH` should resolve any problems).
|
||||||
|
If Perl is not found by CMake, it may be configured explicitly by setting
|
||||||
|
`PERL_EXECUTABLE`.
|
||||||
|
|
||||||
* On Windows you currently must use [Ninja](https://ninja-build.org/)
|
* On Windows you currently must use [Ninja](https://ninja-build.org/)
|
||||||
to build; on other platforms, it is not required, but recommended, because
|
to build; on other platforms, it is not required, but recommended, because
|
||||||
@ -21,8 +25,8 @@
|
|||||||
`CMAKE_ASM_NASM_COMPILER`.
|
`CMAKE_ASM_NASM_COMPILER`.
|
||||||
|
|
||||||
* A C compiler is required. On Windows, MSVC 12 (Visual Studio 2013) or later
|
* A C compiler is required. On Windows, MSVC 12 (Visual Studio 2013) or later
|
||||||
with Platform SDK 8.1 or later are supported. Recent versions of GCC and
|
with Platform SDK 8.1 or later are supported. Recent versions of GCC (4.8+)
|
||||||
Clang should work on non-Windows platforms, and maybe on Windows too.
|
and Clang should work on non-Windows platforms, and maybe on Windows too.
|
||||||
|
|
||||||
* [Go](https://golang.org/dl/) is required. If not found by CMake, the go
|
* [Go](https://golang.org/dl/) is required. If not found by CMake, the go
|
||||||
executable may be configured explicitly by setting `GO_EXECUTABLE`.
|
executable may be configured explicitly by setting `GO_EXECUTABLE`.
|
||||||
@ -58,7 +62,8 @@ files because the build scripts will detect changes to them and rebuild
|
|||||||
themselves automatically.
|
themselves automatically.
|
||||||
|
|
||||||
Note that the default build flags in the top-level `CMakeLists.txt` are for
|
Note that the default build flags in the top-level `CMakeLists.txt` are for
|
||||||
debugging—optimisation isn't enabled.
|
debugging—optimisation isn't enabled. Pass `-DCMAKE_BUILD_TYPE=Release` to
|
||||||
|
`cmake` to configure a release build.
|
||||||
|
|
||||||
If you want to cross-compile then there is an example toolchain file for 32-bit
|
If you want to cross-compile then there is an example toolchain file for 32-bit
|
||||||
Intel in `util/`. Wipe out the build directory, recreate it and run `cmake` like
|
Intel in `util/`. Wipe out the build directory, recreate it and run `cmake` like
|
||||||
@ -75,6 +80,9 @@ In order to serve environments where code-size is important as well as those
|
|||||||
where performance is the overriding concern, `OPENSSL_SMALL` can be defined to
|
where performance is the overriding concern, `OPENSSL_SMALL` can be defined to
|
||||||
remove some code that is especially large.
|
remove some code that is especially large.
|
||||||
|
|
||||||
|
See [CMake's documentation](https://cmake.org/cmake/help/v3.4/manual/cmake-variables.7.html)
|
||||||
|
for other variables which may be used to configure the build.
|
||||||
|
|
||||||
### Building for Android
|
### Building for Android
|
||||||
|
|
||||||
It's possible to build BoringSSL with the Android NDK using CMake. This has
|
It's possible to build BoringSSL with the Android NDK using CMake. This has
|
||||||
|
Loading…
Reference in New Issue
Block a user