Makefile (2064B)
1 BIN = bin/phantasia 2 MAPC = bin/ph-mapc 3 OBJDIR = obj 4 MAPDIR = $(OBJDIR)/maps 5 MAPSRC = data/maps/ashen-meadow.txt 6 MAPBIN = $(MAPSRC:data/maps/%.txt=$(MAPDIR)/%.phmap) 7 TILESET_SRC = assets/vendor/overworld-grass-biome/TilesetGrass/overworld_tileset_grass.png 8 TILESET_BMP = $(OBJDIR)/assets/overworld_tileset_grass.bmp 9 HERO_SRC = assets/vendor/base-character-16x16/Hero.png 10 HERO_BMP = $(OBJDIR)/assets/hero.bmp 11 ITEMS_SRC = assets/vendor/16x16-rpg-items/items.png 12 ITEMS_BMP = $(OBJDIR)/assets/items.bmp 13 CRITTERS_SRC = assets/vendor/16x16-animated-critters/16x16babies.png 14 CRITTERS_BMP = $(OBJDIR)/assets/critters.bmp 15 16 SRC = \ 17 src/engine/world.c \ 18 src/game/main.c 19 20 MAPC_SRC = src/tools/mapc.c 21 22 OBJ = $(SRC:src/%.c=$(OBJDIR)/%.o) 23 DEP = $(OBJ:.o=.d) 24 25 SDL3_CFLAGS = $(shell pkg-config --cflags sdl3 2>/dev/null) 26 SDL3_LDLIBS = $(shell pkg-config --libs sdl3 2>/dev/null) 27 28 CPPFLAGS = -Isrc 29 CFLAGS = -std=c99 -Wall -Wextra -Wpedantic -O2 -MMD -MP 30 LDLIBS = -lm 31 32 ifneq ($(strip $(SDL3_LDLIBS)),) 33 CPPFLAGS += -DPH_USE_SDL=1 34 CFLAGS += $(SDL3_CFLAGS) 35 LDLIBS += $(SDL3_LDLIBS) 36 else 37 CPPFLAGS += -DPH_USE_SDL=0 38 endif 39 40 .PHONY: all clean render-smoke smoke 41 42 all: $(BIN) $(MAPBIN) $(TILESET_BMP) $(HERO_BMP) $(ITEMS_BMP) $(CRITTERS_BMP) 43 44 $(BIN): $(OBJ) $(MAPBIN) $(TILESET_BMP) $(HERO_BMP) $(ITEMS_BMP) $(CRITTERS_BMP) 45 @mkdir -p $(dir $@) 46 $(CC) $(OBJ) -o $@ $(LDLIBS) 47 48 $(MAPC): $(MAPC_SRC) 49 @mkdir -p $(dir $@) 50 $(CC) $(CPPFLAGS) $(CFLAGS) $< -o $@ 51 52 $(OBJDIR)/%.o: src/%.c 53 @mkdir -p $(dir $@) 54 $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ 55 56 $(MAPDIR)/%.phmap: data/maps/%.txt $(MAPC) 57 @mkdir -p $(dir $@) 58 $(MAPC) $< $@ 59 60 $(TILESET_BMP): $(TILESET_SRC) 61 @mkdir -p $(dir $@) 62 magick $< -alpha off BMP3:$@ 63 64 $(HERO_BMP): $(HERO_SRC) 65 @mkdir -p $(dir $@) 66 magick $< -alpha off BMP3:$@ 67 68 $(ITEMS_BMP): $(ITEMS_SRC) 69 @mkdir -p $(dir $@) 70 magick $< BMP3:$@ 71 72 $(CRITTERS_BMP): $(CRITTERS_SRC) 73 @mkdir -p $(dir $@) 74 magick $< -alpha off BMP3:$@ 75 76 smoke: $(BIN) 77 $(BIN) --smoke-test 78 79 render-smoke: $(BIN) 80 SDL_VIDEODRIVER=dummy $(BIN) --render-smoke-test 81 82 clean: 83 rm -rf bin $(OBJDIR) 84 85 -include $(DEP)