phantasia

Phantasia - 2D SDL3 RPG prototype.
git clone git://git.beep.wimdupont.com/phantasia.git
Log | Files | Refs | README | LICENSE

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)