summaryrefslogtreecommitdiff
path: root/src/haversine/build.sh
diff options
context:
space:
mode:
authorRaymaekers Luca <luca@spacehb.net>2025-11-13 00:22:11 +0100
committerRaymaekers Luca <luca@spacehb.net>2025-11-13 00:22:11 +0100
commit7c2d674835f78c3af9b4f7c1d75f29b6b5a10f6e (patch)
treeb8a2b7652bdf2536e6b178a4719327ca677a25db /src/haversine/build.sh
parentd4f6774c172ac1e7c193fc4e89230c873d179c2b (diff)
Added clustered approach
Diffstat (limited to 'src/haversine/build.sh')
-rwxr-xr-xsrc/haversine/build.sh77
1 files changed, 46 insertions, 31 deletions
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