summaryrefslogtreecommitdiff
path: root/src/haversine_processor/build.sh
diff options
context:
space:
mode:
authorRaymaekers Luca <luca@spacehb.net>2025-11-13 12:37:21 +0100
committerRaymaekers Luca <luca@spacehb.net>2025-11-13 12:37:21 +0100
commit6fad44af4ae20b424ff1caddc8b38957897d400a (patch)
tree21257ae6500de5a667655c133bed68c2f0c9c426 /src/haversine_processor/build.sh
parent7c6bb686871a5fed3eb9623ac8121dc4a60048bd (diff)
checkpoint
Diffstat (limited to 'src/haversine_processor/build.sh')
-rwxr-xr-xsrc/haversine_processor/build.sh51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/haversine_processor/build.sh b/src/haversine_processor/build.sh
new file mode 100755
index 0000000..2cd5f25
--- /dev/null
+++ b/src/haversine_processor/build.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+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=""
+
+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"
+
+Build="../../build"
+mkdir -p "$Build"
+
+$Compiler $Flags -o "$Build"/haversine_processor haversine_processor.cpp