summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorKonAki <konaki@anokonaki.org>2026-10-09 17:36:12 +0800
committerKonAki <konaki@anokonaki.org>2026-10-09 17:36:12 +0800
commitaf7dafe1d79e39ba2d51a6e3f10990d9e8df3735 (patch)
tree95a8bea4072fa026135330c1445493da6993f276 /Makefile
parent402304dca923efb39e19a4a093458921a17e63f7 (diff)
Add modelview example and examples target
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile16
1 files changed, 14 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index a402c82..e9c1bc0 100644
--- a/Makefile
+++ b/Makefile
@@ -22,6 +22,8 @@ PACKFLAGS ?=
BIN = $(OBJDIR)/$(PROGRAM)$(EXE)
PACKER = $(OBJDIR)/konpack$(EXE)
MODELER = $(OBJDIR)/konmodel$(EXE)
+EXAMPLES = modelview
+EXAMPLEBINS = $(EXAMPLES:%=$(OBJDIR)/%$(EXE))
PACKFILE = $(OBJDIR)/data.kpk
CORE = $(OBJDIR)/engine.o $(OBJDIR)/konwinlib.o $(OBJDIR)/konsofren.o \
$(OBJDIR)/kontime.o $(OBJDIR)/koninput.o
@@ -66,6 +68,16 @@ $(OBJDIR)/miniaudio.o: $(SRCDIR)/impl/miniaudio.c $(EXTDIR)/miniaudio.h
tools: $(PACKER) $(MODELER)
+# every example is its own program, built from the same modules as the engine without engine.c
+examples: $(EXAMPLEBINS)
+
+$(OBJDIR)/%.o: examples/%.c $(KONDIR)/*.h
+ $(COMPILE) $< -o $@
+
+$(EXAMPLEBINS): $(OBJDIR)/%$(EXE): $(OBJDIR)/%.o $(filter-out $(OBJDIR)/engine.o,$(OBJS))
+ @echo "# link $@"
+ @$(CC) -o $@ $^ $(LDLIBS)
+
$(PACKER): tools/konpack.c $(KONDIR)/konpack.c $(KONDIR)/konpack.h
@mkdir -p $(OBJDIR)
@echo "# link $@"
@@ -91,6 +103,6 @@ run: $(BIN)
./$(BIN)
clean:
- rm -f $(OBJDIR)/*.o $(BIN) $(PACKER) $(MODELER) $(PACKFILE) $(OBJDIR)/assets.lst
+ rm -f $(OBJDIR)/*.o $(BIN) $(PACKER) $(MODELER) $(EXAMPLEBINS) $(PACKFILE) $(OBJDIR)/assets.lst
-.PHONY: all run clean tools pack
+.PHONY: all run clean tools pack examples