dns-bench/.build.sh

61 lines
1.1 KiB
Bash

#!/bin/echo Must be sourced from a bash script **
# strict mode
export IFS=$'\n'
set -eu -o pipefail
# git clone wrapper
clone () {
if ! [ -e "$2" ]; then
git clone \
--single-branch --depth 1 \
--recurse-submodules \
"$1" \
"$2"
else
echo " ** '$2/' already exists"
fi
}
# optimizations
set_cflags () {
opt="-Ofast -march=native"
export \
CFLAGS="-std=gnu2x $opt" \
CPPFLAGS="$opt" \
LDFLAGS="-Wl,-O3" \
RUSTFLAGS="-C target-cpu=native -C panic=abort"
}
# in a separate fn because ring does not build with LTO
use_lto () {
lto="-flto=auto -fwhole-program"
export \
CFLAGS="$CFLAGS $lto" \
CPPFLAGS="$CPPFLAGS $lto"
}
# make -j12
make_maxthreads() {
[ -v JOBS ] || JOBS=$(nproc || echo 4)
JOBS="${JOBS//[^0-9]/}"
make -j"$JOBS"
}
# alias build_rust="cargo build -r"
build_rust () {
cargo build \
--release \
--config 'panic="abort"' \
--config 'lto="fat"' \
--config 'codegen-units=1' \
"$@"
}
# just disabling debugging
build_go () {
go build -v \
-trimpath \
-ldflags "-s -w -buildid=" \
"$@"
}