#!/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)