From 7c2d674835f78c3af9b4f7c1d75f29b6b5a10f6e Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Thu, 13 Nov 2025 00:22:11 +0100 Subject: Added clustered approach --- src/haversine/build.sh | 77 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 31 deletions(-) (limited to 'src/haversine/build.sh') diff --git a/src/haversine/build.sh b/src/haversine/build.sh index 38170c0..54fd9f2 100755 --- a/src/haversine/build.sh +++ b/src/haversine/build.sh @@ -1,36 +1,51 @@ #!/bin/sh -cd "$(dirname "$(readlink -f "$0")")" - -Build="../../build" -mkdir -p "$Build" -mkdir -p generated - -Compiler="clang" - -CompilerFlags=" --g --fdiagnostics-absolute-paths --nostdinc++ -" - -WarningFlags=" --Wall --Wextra --Wno-unused-label --Wno-unused-variable --Wno-unused-function --Wno-unused-value --Wno-unused-but-set-variable --Wno-missing-field-initializers --Wno-write-strings --Wno-unused-parameter -" +set -eu +ScriptDirectory="$(dirname "$(readlink -f "$0")")" +cd "$ScriptDirectory" + +#- Globals +CommonCompilerFlags="-DOS_LINUX=1 -fsanitize-trap -nostdinc++" +CommonWarningFlags="-Wall -Wextra -Wconversion -Wdouble-promotion -Wno-sign-conversion -Wno-sign-compare -Wno-double-promotion -Wno-unused-but-set-variable -Wno-unused-variable -Wno-write-strings -Wno-pointer-arith -Wno-unused-parameter -Wno-unused-function" LinkerFlags="-lm" -printf '[debug mode]\n' -printf '[%s build]\n' "$Compiler" -$Compiler $CompilerFlags $WarningFlags $LinkerFlags \ - -o "$Build"/haversine_generator \ - haversine_generator.cpp \ No newline at end of file +DebugFlags="-g -ggdb -g3" +ReleaseFlags="-O3" + +ClangFlags="-fdiagnostics-absolute-paths -ftime-trace +-Wno-null-dereference -Wno-missing-braces -Wno-vla-extension -Wno-writable-strings -Wno-missing-field-initializers -Wno-address-of-temporary -Wno-int-to-void-pointer-cast" + +GCCFlags="-Wno-cast-function-type -Wno-missing-field-initializers -Wno-int-to-pointer-cast" + + +#- Main + +clang=1 +gcc=0 +debug=1 +release=0 +for Arg in "$@"; do eval "$Arg=1"; done +# Exclusive flags +[ "$release" = 1 ] && debug=0 +[ "$gcc" = 1 ] && clang=0 + +[ "$gcc" = 1 ] && Compiler="g++" +[ "$clang" = 1 ] && Compiler="clang" + +Flags="$CommonCompilerFlags" +[ "$debug" = 1 ] && Flags="$Flags $DebugFlags" +[ "$release" = 1 ] && Flags="$Flags $ReleaseFlags" +Flags="$Flags $CommonCompilerFlags" +Flags="$Flags $CommonWarningFlags" +[ "$clang" = 1 ] && Flags="$Flags $ClangFlags" +[ "$gcc" = 1 ] && Flags="$Flags $GCCFlags" +Flags="$Flags $LinkerFlags" + +[ "$debug" = 1 ] && printf '[debug mode]\n' +[ "$release" = 1 ] && printf '[release mode]\n' +printf '[%s compile]\n' "$Compiler" + +mkdir -p ../../build + +$Compiler $Flags -o ../../build/haversine_generator haversine_generator.cpp -- cgit v1.2.3-70-g09d2