Test hot reloading

This commit is contained in:
2024-09-08 17:32:24 +01:00
parent 8ad090b582
commit b4f41103f2
5 changed files with 198 additions and 6 deletions

49
compile
View File

@@ -1,9 +1,46 @@
#!/bin/bash
CC=clang
CFLAGS="-g -Wall $(pkg-config --cflags sdl2)"
LIBS="$(pkg-config --libs sdl2)"
SRC=src/*.c
OUT=main
BUILD_TYPE="debug"
(set -x ; $CC $CFLAGS $LIBS $SRC -o $OUT)
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)