#!/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 () { export \ CFLAGS="-std=gnu2x -Ofast -march=native" \ CPPFLAGS="-Ofast -march=native" \ LDFLAGS="-Wl,-O3" \ RUSTFLAGS="-C target-cpu=native -C panic=abort" } # in a separate fn because ring does not build with LTO use_lto () { export \ CFLAGS="$CFLAGS -flto=auto -fwhole-program" \ CPPFLAGS="$CPPFLAGS -flto=auto -fwhole-program" } # make -j12 make_maxthreads() { [ -v JOBS ] || JOBS=$(nproc || echo 4) JOBS="${JOBS//[^0-9]/}" make -j"$JOBS" }