hot-reload-test/compile
2024-09-08 17:32:24 +01:00

47 lines
835 B
Bash
Executable File

#!/bin/bash
BUILD_TYPE="debug"
while [[ $# > 0 ]];do
case $1 in
--release)
BUILD_TYPE="release"
shift
;;
*|-*|--*)
echo "Unknown option $1"
exit 1
;;
esac
done
CC=clang
CFLAGS="-Wall $(pkg-config --cflags sdl2)"
LIBS="$(pkg-config --libs sdl2)"
MAIN=src/main.c
MAIN_FLAGS=""
GAME=src/game.c
GAME_FLAGS="-DNDEBUG"
OUT=main
GAME_OUT=""
if [[ $BUILD_TYPE == "debug" ]]; then
CFLAGS+=" -g"
MAIN_FLAGS="-ldl -Wl,-rpath,\$ORIGIN"
GAME_FLAGS+=" -fPIC -shared"
GAME_OUT="-o game.so"
MAIN+=" src/game.c"
else
CFLAGS+=" -O3"
MAIN_FLAGS="-DNDEBUG"
GAME_FLAGS+=" -c"
MAIN+=" game.o"
fi
LOCKFILE="game.so.lock"
touch $LOCKFILE && (set -x ; $CC $CFLAGS $GAME_FLAGS $LIBS $GAME $GAME_OUT)
if [[ -f $LOCKFILE ]];then
rm $LOCKFILE
fi
(set -x ; $CC $CFLAGS $MAIN_FLAGS $LIBS $MAIN -o $OUT)