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)
 |