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