usage: mach build [-h] [-c] [--tests] [--test] [--benchmarks] [--benchmark] [--no-openssl]
[--libtomcrypt] [-r] [-a ALGORITHMS] [-p TARGET] [-d DISABLE] [-s SANITIZER]
[--ndk NDK] [--msvc] [-e EDITION] [-l LANGUAGE] [-v] [-m32] [--no-build]
Main entry point for building HACL
For convenience it is possible to run tests right after building using --test.
Supported cross compilation targets:
- x86_64-apple-darwin (macOS aarch64 only)
- aarch64-apple-ios (macOS only)
- aarch64-apple-darwin (macOS x64 only)
Features that can be disabled:
- vec128 (avx/neon)
- vec256 (avx2)
- vale (x64 assembly)
Use an edition if you want a different build. Note that this build will
use the MSVC version by default on Windows.
HACL can be built for another language than C.
Note that bindings will always require the full C library such that the
algorithm flag will be ignored.
- wasm (TBD)
! Windows builds are limited. The following arguments are not supported:
-h, --help show this help message and exit
-c, --clean Clean before building.
--tests Build tests.
--test Build and run tests.
--benchmarks Build benchmarks.
--benchmark Build and run benchmarks.
--no-openssl Don't build and run OpenSSL benchmarks.
--libtomcrypt Build and run LibTomCrypt benchmarks.
-r, --release Build in release mode.
-a ALGORITHMS, --algorithms ALGORITHMS
A list of algorithms to enable. Defaults to all.
-p TARGET, --target TARGET
Define compile target for cross compilation.
-d DISABLE, --disable DISABLE
Disable (hardware) features even if available.
-s SANITIZER, --sanitizer SANITIZER
--ndk NDK Path to the Android NDK.
--msvc Use MSVC on Windows (default is clang-cl).
-e EDITION, --edition EDITION
Choose a different HACL* edition.
-l LANGUAGE, --language LANGUAGE
Build language bindings for the given language.
-v, --verbose Make builds verbose.
-m32 Build for 32-bit (even when on 64-bit).
--no-build Don't actually build (don't run ninja).
--coverage Build with coverage instrumentation.