You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.2 KiB
48 lines
1.2 KiB
#!/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"
|