Before you begin, you'll first need to properly configure the Prerequisites as described below.
Then to build, run:
$ ./gradlew build
To publish the artifacts to your Maven local repository for use in your own project, run:
$ ./gradlew publishToMavenLocal
Conscrypt requires that you have Java, BoringSSL and the Android SDK configured as described below.
The build requires that you have the JAVA_HOME
environment variable pointing to a valid JDK.
Download and install the latest Android SDK
and set the ANDROID_HOME
environment variable to point to the root of the SDK
(e.g. export ANDROID_HOME=/usr/local/me/Android/Sdk
).
Before you can build BoringSSL, you'll first need to set up its prerequisites.
Once the environment is properly configured, follow the steps below for your platform.
Checkout BoringSSL to a directory of your choice and then build as follows:
git clone https://boringssl.googlesource.com/boringssl
cd boringssl
# Also need to set an environment variable to point to the installation location.
export BORINGSSL_HOME=$PWD
To build in the 64-bit version on a 64-bit machine:
mkdir build64
cd build64
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_ASM_FLAGS=-Wa,--noexecstack \
-GNinja ..
ninja
To make a 32-bit build on a 64-bit machine:
mkdir build32
cd build32
cmake -DCMAKE_TOOLCHAIN_FILE=../util/32-bit-toolchain.cmake \
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_ASM_FLAGS="-Wa,--noexecstack -m32 -msse2" \
-GNinja ..
ninja
This assumes that you have Microsoft Visual Studio 2017 installed along with both the Windows 8.1 and 10 SDKs and that your machine is capable of compiling 64-bit.
Unlike earlier versions, Visual Studio 2017 doesn't appear to set an environment variable to simplify building from the command line. The instructions below assume the default installation of the community edition. To use another edition or a non-standard install path, you'll need to modify the paths below as appropriate.
To build in 64-bit mode, set up with this command line:
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
mkdir build64
cd build64
To build in 32-bit mode, set up with this command line:
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
mkdir build32
cd build32
In either the 64-bit or 32-bit case, run this afterward:
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_C_FLAGS_RELEASE=/MT ^
-DCMAKE_CXX_FLAGS_RELEASE=/MT ^
-GNinja ..
ninja
Conscrypt is built with Java 8+, but targets the Java 7 runtime. To run the tests
under Java 7 (or any Java runtime), you can specify the javaExecutable64
property from the command line.
This will run all tests under openjdk
and openjdk-integ-tests
with the specified
runtime.
./gradlew check -DjavaExecutable64=${JAVA7_HOME}/bin/java
To see coverage numbers, run the tests and then execute the jacocoTestReport rule
./gradlew check jacocoTestReport
The report will be placed in openjdk/build/reports/jacoco/test/html/index.html