47 lines
835 B
Bash
Executable File
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)
|