project = fencer source = $(shell find src/ -type f -name *.c) libraries = -lSDL2 -lSDL2_image -lcjson -lm includes = -Iinclude -Isrc args_debug = -Wall -g3 -DVMATH_SDL=1 args_package = -g0 -DVMATH_SDL=1 # build from source build: cc $(source) $(args_debug) -o bin/$(project) $(libraries) $(includes) $(CFLAGS) b: build # build and run using debugger run: build gdb -x run.gdb -- bin/$(project) r: run # same as run, but giving you a chance to configure the debugger/set breakpoints before running debug: build gdb -- bin/$(project) d: debug # package project for release build-package: clean-package mkdir packaged/ cp -rf $(project)/ packaged/resources/ # copy maps cp -rf $(project)/simplified/* packaged/resources/ cc $(source) -o packaged/$(project) $(args_package) $(libraries) $(includes) $(CFLAGS) p: build-package # clean up build directories clean: rm -f bin/$(project) c: clean clean-package: rm -rf packaged