aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohamed Akram <mohd.akram@outlook.com>2022-07-08 16:14:54 +0400
committerMohamed Akram <mohd.akram@outlook.com>2022-07-08 16:14:54 +0400
commita8b44f33bda904e82d17624d524d50eb9b828e09 (patch)
tree5ab4f82e84e1cca51aac65d948eaee2cac09762c
parentbd485616880eb357fc44c437b28100cae85719da (diff)
Allow passing config options to build script
-rwxr-xr-xbuild_odin.sh54
1 files changed, 33 insertions, 21 deletions
diff --git a/build_odin.sh b/build_odin.sh
index aef3f2836..8ef5e4e94 100755
--- a/build_odin.sh
+++ b/build_odin.sh
@@ -1,12 +1,20 @@
#!/bin/bash
set -eu
-GIT_SHA=$(git rev-parse --short HEAD)
+: ${CXX=clang++}
+: ${CPPFLAGS=}
+: ${CXXFLAGS=}
+: ${LDFLAGS=}
+: ${ODIN_VERSION=dev-$(date +"%Y-%m")}
+
+CPPFLAGS="$CPPFLAGS -DODIN_VERSION_RAW=\"$ODIN_VERSION\""
+CXXFLAGS="$CXXFLAGS -std=c++14"
+LDFLAGS="$LDFLAGS -pthread -lm -lstdc++"
+
+GIT_SHA=$(git rev-parse --short HEAD || :)
+if [ "$GIT_SHA" ]; then CPPFLAGS="$CPPFLAGS -DGIT_SHA=\"$GIT_SHA\""; fi
+
DISABLED_WARNINGS="-Wno-switch -Wno-macro-redefined -Wno-unused-value"
-LDFLAGS="-pthread -lm -lstdc++"
-CFLAGS="-std=c++14 -DGIT_SHA=\"$GIT_SHA\""
-CFLAGS="$CFLAGS -DODIN_VERSION_RAW=\"dev-$(date +"%Y-%m")\""
-CC=clang
OS=$(uname)
panic() {
@@ -18,7 +26,7 @@ version() { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }';
config_darwin() {
ARCH=$(uname -m)
- LLVM_CONFIG=llvm-config
+ : ${LLVM_CONFIG=llvm-config}
# allow for arm only llvm's with version 13
if [ ARCH == arm64 ]; then
@@ -37,34 +45,38 @@ config_darwin() {
fi
LDFLAGS="$LDFLAGS -liconv -ldl"
- CFLAGS="$CFLAGS $($LLVM_CONFIG --cxxflags --ldflags)"
+ CXXFLAGS="$CXXFLAGS $($LLVM_CONFIG --cxxflags --ldflags)"
LDFLAGS="$LDFLAGS -lLLVM-C"
}
config_freebsd() {
- LLVM_CONFIG=/usr/local/bin/llvm-config11
+ : ${LLVM_CONFIG=/usr/local/bin/llvm-config11}
- CFLAGS="$CFLAGS $($LLVM_CONFIG --cxxflags --ldflags)"
+ CXXFLAGS="$CXXFLAGS $($LLVM_CONFIG --cxxflags --ldflags)"
LDFLAGS="$LDFLAGS $($LLVM_CONFIG --libs core native --system-libs)"
}
config_openbsd() {
- LLVM_CONFIG=/usr/local/bin/llvm-config
+ : ${LLVM_CONFIG=/usr/local/bin/llvm-config}
LDFLAGS="$LDFLAGS -liconv"
- CFLAGS="$CFLAGS $($LLVM_CONFIG --cxxflags --ldflags)"
+ CXXFLAGS="$CXXFLAGS $($LLVM_CONFIG --cxxflags --ldflags)"
LDFLAGS="$LDFLAGS $($LLVM_CONFIG --libs core native --system-libs)"
}
config_linux() {
- if which llvm-config > /dev/null 2>&1; then
- LLVM_CONFIG=llvm-config
- elif which llvm-config-11 > /dev/null 2>&1; then
- LLVM_CONFIG=llvm-config-11
- elif which llvm-config-11-64 > /dev/null 2>&1; then
- LLVM_CONFIG=llvm-config-11-64
- else
- panic "Unable to find LLVM-config"
+ : ${LLVM_CONFIG=}
+
+ if [ ! "$LLVM_CONFIG" ]; then
+ if which llvm-config > /dev/null 2>&1; then
+ LLVM_CONFIG=llvm-config
+ elif which llvm-config-11 > /dev/null 2>&1; then
+ LLVM_CONFIG=llvm-config-11
+ elif which llvm-config-11-64 > /dev/null 2>&1; then
+ LLVM_CONFIG=llvm-config-11-64
+ else
+ panic "Unable to find LLVM-config"
+ fi
fi
MIN_LLVM_VERSION=("11.0.0")
@@ -74,7 +86,7 @@ config_linux() {
fi
LDFLAGS="$LDFLAGS -ldl"
- CFLAGS="$CFLAGS $($LLVM_CONFIG --cxxflags --ldflags)"
+ CXXFLAGS="$CXXFLAGS $($LLVM_CONFIG --cxxflags --ldflags)"
LDFLAGS="$LDFLAGS $($LLVM_CONFIG --libs core native --system-libs)"
}
@@ -97,7 +109,7 @@ build_odin() {
esac
set -x
- $CC src/main.cpp src/libtommath.cpp $DISABLED_WARNINGS $CFLAGS $EXTRAFLAGS $LDFLAGS -o odin
+ $CXX src/main.cpp src/libtommath.cpp $DISABLED_WARNINGS $CPPFLAGS $CXXFLAGS $EXTRAFLAGS $LDFLAGS -o odin
set +x
}