#!/bin/sh cd ${0%/*} # go to project root NAME="main" DEBUG_FLAGS="-std=c99 -Wall -Wextra -g -pedantic -DDEBUG" # PROD_FLAGS="-std=c99 ???" SDL_FLAGS="`sdl2-config --cflags --libs`" FLAGS="$DEBUG_FLAGS $SDL_FLAGS" SRC="src" OBJ="obj" BIN="bin" FILES="files" RUN=0 function __run__ { RUN=1 } function __leak__ { VALGRND="valgrind --leak-check=full --show-leak-kinds=all -s" RUN=1 } function __prod__ { FLAGS="$PROD_FLAGS $SDL_FLAGS" } function __clean__ { rm -rf $BIN rm -rf $OBJ exit 0 } set -xe mkdir -p $BIN mkdir -p $OBJ mkdir -p $FILES if ! { [[ $# -eq 0 ]]; } 2> /dev/null then __$1__ fi gcc -o $OBJ/main.o -c $SRC/main.c $FLAGS gcc -o $OBJ/player.o -c $SRC/player.c $FLAGS gcc -o $OBJ/sector.o -c $SRC/sector.c $FLAGS gcc -o $BIN/$NAME $OBJ/*.o $FLAGS if ! { [[ $RUN -eq 0 ]]; } 2> /dev/null then $VALGRND $BIN/$NAME fi