#!/bin/sh cd ${0%/*} # go to project root FLAGS="-std=c99 -Wall -Wextra -g -pedantic" SRCD="src" ODIR="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 __clean__ { rm -rf $BIN rm -rf $ODIR rm -rf $FILES exit 0 } function __setup__ { ./download-tilesets.sh $FILES exit 0 } function __topng__ { ./ppmtopng.sh $FILES exit 0 } set -xe mkdir -p $BIN mkdir -p $ODIR mkdir -p $FILES if ! { [[ $# -eq 0 ]]; } 2> /dev/null then __$1__ fi gcc -c $SRCD/gen_tiles.c -o $ODIR/gen_tiles.o $FLAGS -DPATH=$FILES gcc -c $SRCD/ppm.c -o $ODIR/ppm.o $FLAGS gcc -c $SRCD/tilemap.c -o $ODIR/tilemap.o $FLAGS gcc -c $SRCD/tiles.c -o $ODIR/tiles.o $FLAGS -DPATH=\"$FILES\" gcc -c $SRCD/wfc.c -o $ODIR/wfc.o $FLAGS -DPATH=\"$FILES\" gcc -c $SRCD/main.c -o $ODIR/main.o $FLAGS gcc -o $BIN/wfc $ODIR/main.o $ODIR/wfc.o $ODIR/tiles.o $ODIR/tilemap.o $ODIR/ppm.o $FLAGS gcc -o $BIN/gen_tiles $ODIR/gen_tiles.o $FLAGS if ! { [[ $RUN -eq 0 ]]; } 2> /dev/null then $VALGRND $BIN/gen_tiles $VALGRND $BIN/wfc fi