CC=gcc CFLAGS=-Wall -lraylib -lm -lpthread -ldl -lX11 WIN_CC=x86_64-w64-mingw32-gcc WIN_LIB=-Llib -Iinclude -Wall -lraylib -lopengl32 -lgdi32 -lwinmm -lcomdlg32 -lole32 WIN_CFLAGS=-Wall -lraylib -lm -lpthread TILED=~/app/tiled ASEPRITE=aseprite GAME=starship_futuretime BUTLER=../butler/butler ITCH_CHANNEL=starship_futuretime ITCH_CHANNEL_LINUX=linux-x64 ITCH_CHANNEL_WINDOWS=windows-x64 ITCH_CHANNEL_MAC=mac .PHONY: clean clean_game clean_assets run butler_upload build_levels build_images run: $(GAME)_linux build_levels build_images SKIP_INTRO=1 ./$(GAME)_linux debug: $(GAME)_linux_dbg SKIP_INTRO=1 gdb ./$(GAME)_linux in_level_files := $(wildcard levels/*.tmx) out_level_files := $(foreach a, $(in_level_files), $(basename $(a)).csv) build_levels: build_images $(in_level_files) $(out_level_files) levels/%.csv: levels/%.tmx tilesets/*.tsx $(TILED) --export-map $< $@ in_images := $(wildcard img/*.aseprite) $(wildcard tilesets/*.aseprite) out_images := $(foreach a, $(in_images), $(basename $(a)).png) build_images: $(in_images) $(out_images) img/%.png: img/%.aseprite $(ASEPRITE) -b $< --save-as $@ %.png: %.aseprite $(ASEPRITE) -b $< --save-as $@ $(GAME)_linux: *.c $(CC) *.c $(CFLAGS) -o $(GAME)_linux $(GAME)_linux_dbg: *.c $(CC) *.c -g $(CFLAGS) -o $(GAME)_linux $(GAME)_windows.exe: *.c $(WIN_CC) *.c $(WIN_LIB) $(WIN_CFLAGS) -o $(GAME)_windows.exe $(GAME)_mac: *.c $(CC) *.c $(CFLAGS) -o $(GAME)_mac clean_game: rm -f ./$(GAME)_linux rm -f ./$(GAME)_linux.zip rm -f ./$(GAME)_windows.exe rm -f ./$(GAME)_windows.zip rm -f ./$(GAME)_mac rm -f ./$(GAME)_mac.zip clean_assets: rm -f ./levels/*.csv rm -f ./img/*.png rm -f ./tilesets/*.png clean: clean_game clean_assets $(GAME)_linux.zip: $(GAME)_linux rm -f ./$(GAME)_linux.zip zip -r $(GAME)_linux.zip $(GAME)_linux COPYING img/*.png img/LICENSE $(GAME)_windows.zip: $(GAME)_windows.exe rm -f ./$(GAME)_windows.zip zip -r $(GAME)_windows.zip $(GAME)_windows.exe COPYING img/*.png img/LICENSE $(GAME)_mac.zip: $(GAME)_mac rm -f ./$(GAME)_mac.zip zip -r $(GAME)_mac.zip $(GAME)_mac COPYING img/*.png img/LICENSE butler_upload: $(GAME)_linux.zip $(GAME)_windows.zip $(BUTLER) push ./$(GAME)_linux.zip bassguitarbill/$(ITCH_CHANNEL):$(ITCH_CHANNEL_LINUX) $(BUTLER) push ./$(GAME)_windows.zip bassguitarbill/$(ITCH_CHANNEL):$(ITCH_CHANNEL_WINDOWS) butler_upload_mac: $(GAME)_mac.zip $(BUTLER) push ./$(GAME)_mac.zip bassguitarbill/$(ITCH_CHANNEL):$(ITCH_CHANNEL_MAC)