aboutsummaryrefslogtreecommitdiff
path: root/code/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'code/build.sh')
-rwxr-xr-xcode/build.sh62
1 files changed, 57 insertions, 5 deletions
diff --git a/code/build.sh b/code/build.sh
index e6c0b5f..e083327 100755
--- a/code/build.sh
+++ b/code/build.sh
@@ -5,11 +5,63 @@ cd "$ThisDir"
mkdir ../build > /dev/null 2>&1
-CompilerFlags="-ggdb -DHANDMADE_SLOW -DHANDMADE_INTERNAL"
-WarningFlags="-Wall -Wextra -Wno-unused-but-set-variable -Wno-unused-variable -Wno-write-strings -Wno-unused-parameter -Wno-unused-function"
+# Supported: clang, g++
+Compiler="clang"
-printf 'handmade.cpp\n'
-g++ $CompilerFlags $WarningFlags -shared -o ../build/handmade.so handmade.cpp
+CompilerFlags="
+-O0
+-ggdb
+-DHANDMADE_INTERNAL
+-DHANDMADE_SLOW
+-DOS_LINUX
+-nostdinc++
+"
+
+WarningFlags="-Wall
+-Wextra
+-Wno-unused-but-set-variable
+-Wno-unused-variable
+-Wno-write-strings
+-Wno-pointer-arith
+-Wno-unused-parameter
+-Wno-unused-function"
+
+ClangCompilerFlags="
+-ftime-trace
+"
+ClangWarningFlags="
+-Wno-null-dereference
+-Wno-missing-braces
+-Wno-vla-cxx-extension
+-Wno-writable-strings
+"
+
+# Platform specific linker flags
+LinuxLinkerFlags="
+-lpthread
+-lasound
+-lm
+-lX11
+-lXfixes"
+
+if [ "$Compiler" = "clang" ]
+then
+ CompilerFlags="$CompilerFlags $ClangCompilerFlags"
+ WarningFlags="$WarningFlags $ClangWarningFlags"
+fi
printf 'linux_handmade.cpp\n'
-g++ $CompilerFlags $WarningFlags -o ../build/linux_handmade libs/linuxhmh/linux_handmade.cpp -lasound -lm -lX11 -lXfixes
+$Compiler \
+ $CompilerFlags \
+ $WarningFlags \
+ -o ../build/linux_handmade \
+ $LinuxLinkerFlags \
+ libs/linuxhmh/linux_handmade.cpp
+
+printf 'handmade.cpp\n'
+$Compiler \
+ $CompilerFlags \
+ $WarningFlags \
+ -shared \
+ -o ../build/handmade.so \
+ handmade.cpp