$(shell mkdir -p build)

csaw := ../csaw/csaw.py

aseprite_sources := $(wildcard resrc/*.aseprite)

aseprite_targets := $(patsubst resrc/%.aseprite,build/images/%,$(aseprite_sources))

all: $(aseprite_targets) build/main.html


build/map.bin: export_map.py resrc/map.tmx resrc/tiles.tsx
	python3 $^ $@

build/images/%: resrc/%.aseprite
	/Applications/Aseprite.app/Contents/MacOS/Aseprite --batch "$<" --filename-format "build/images/{title}/{frame}.png" --save-as "$@"


build/all.cc: main.cc headers.h
	$(csaw) -i headers.h -oc $@ $<

build/main.html: build/all.cc shell.html $(aseprite_targets) build/map.bin
	cp sounds/*.wav build
	cp music/*.mp3 build
	emcc \
		-o $@ \
		-O3 \
		-Dconfig_debug \
		-lidbfs.js \
		-s EXPORTED_FUNCTIONS='["_em_run", "_main", "_em_reset"]' \
		-s EXPORTED_RUNTIME_METHODS='["ccall", "cwrap"]' \
		-s USE_SDL=2 -s USE_SDL_IMAGE=2 -s SDL2_IMAGE_FORMATS='["png"]' \
		--embed-file build/images \
		--embed-file build/map.bin \
		--shell-file shell.html \
		$<

clean:
	rm -rf build

build/game: build/all.cc
	c++ -o $@ -Dconfig_debug -lsdl2 $< -std=c++11 -lsdl2_image -g

run: build/game
	$<

deploy:
	cp build/main.html ~/Projects/foon2/html5/ld49/index.html
	cp build/main.js ~/Projects/foon2/html5/ld49
	cp build/main.wasm ~/Projects/foon2/html5/ld49
	cp build/*.wav ~/Projects/foon2/html5/ld49
	cd ~/Projects/foon2 && make deploy
