| #!/usr/bin/env bash |
| set -e |
| |
| NPROC=1 |
| |
| # OS detection |
| if [ "$(uname)" = "Linux" ]; then |
| NPROC=$(nproc) |
| CC=clang-9 |
| elif [ "$(uname)" = "Darwin" ]; then |
| NPROC=$(sysctl -n hw.ncpu) |
| CC=/usr/local/opt/llvm/bin/clang |
| elif [ "$(uname)" = "FreeBSD" ]; then |
| NPROC=$(sysctl -n hw.ncpu) |
| CC=clang-devel |
| else |
| echo "Error: $(uname) not supported, sorry!" |
| exit 1 |
| fi |
| |
| # Check if we have a compiler |
| if ! [ -x "$(command -v $CC)" ]; then |
| echo "Error: $CC is not installed!" >&2 |
| exit 1 |
| fi |
| |
| echo "OS :" $(uname) |
| echo "CC :" $CC |
| echo "NP :" $NPROC |
| |
| # Go to script directory |
| SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" |
| cd "$SCRIPT_DIR" |
| cd ".." |
| |
| pwd |
| |
| # Find and then delete all files under current directory (.) that: |
| # 1. contains "cmake" (case-&insensitive) in its path (wholename) |
| # 2. name is not CMakeLists.txt |
| find . -iwholename '*cmake*' -not -name CMakeLists.txt -delete |
| |
| # Build with ASAN / MSAN |
| cmake -Dsctp_build_fuzzer=1 -Dsctp_build_programs=0 -Dsctp_invariants=1 -Dsctp_sanitizer_address=1 -DCMAKE_LINKER="$CC" -DCMAKE_C_COMPILER="$CC" . |
| #cmake -Dsctp_build_fuzzer=1 -Dsctp_build_programs=0 -Dsctp_invariants=1 -Dsctp_sanitizer_memory=1 -DCMAKE_LINKER="$CC" -DCMAKE_C_COMPILER="$CC" . |
| |
| make -j"$NPROC" |