Mirai's Miscellaneous Misadventures
M15 / makefile
.PHONY: build clean
engine ?= sdl2
libs =
ifeq ($(engine),sdl2)
libs += -lSDL2
endif
ifeq ($(engine),mfb)
libs += -lminifb -lX11 -lGL
endif
src = game.c
src += engines/$(engine).c
exe = mimimi
CPPFLAGS += -MMD -MP
ifeq ($(engine),wasm)
build: $(exe).wasm
else
build: $(exe)
endif
clean:
$(RM) $(exe) *.o *.wasm *.d engines/*.o engines/*.wasm engines/*.d
ifneq ($(engine),wasm)
$(exe): $(src:.c=.o)
$(CC) $(LDFLAGS) -o $@ $^ $(libs)
else
$(exe).wasm: $(src:.c=.wasm)
$(CC) $(LDFLAGS) --target=wasm32 -nostdlib -Wl,--no-entry \
-Wl,--export=mirai_game_size \
-Wl,--export=mirai_width \
-Wl,--export=mirai_height \
-Wl,--export=mirai_start \
-Wl,--export=mirai_step \
-Wl,--export=mirai_assets \
-Wl,--export=mirai_wasm_stamp \
-Wl,--export=__heap_base \
-Wl,--allow-undefined \
-Wl,--export-table,--growable-table \
-o $@ $^ $(libs)
%.wasm: %.c
$(CC) $(CFLAGS) $(CPPFLAGS) --target=wasm32 -ffreestanding -c -o $@ $<
endif
-include $(src:.c=.d)