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
	ugdb -xrun.gdb -- bin/$(project)
r: run

# same as run, but giving you a chance to configure the debugger/set breakpoints before running
debug: build
	ugdb -- bin/$(project)
d: debug

# package project for release
package: clean
	mkdir $(project)
	cp -r resources/ $(project)/resources/
	cc $(source) -o $(project)/$(project) $(args_package) $(libraries) $(includes) $(CFLAGS)
p: package

# clean up build directories
clean:
	rm -rf $(project)
	rm -f bin/$(project)
c: clean