summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorKonAki <konaki@anokonaki.org>2026-10-07 19:03:04 +0800
committerKonAki <konaki@anokonaki.org>2026-10-07 19:03:04 +0800
commitdfa9a616c3d89a935a4c0bf68f7801581d8b5037 (patch)
treedbedd97ded9a227751555744fc246943af6e6c77 /Makefile
parent5eaa99c67ca44bd48d8e2eae7f906c942d565d67 (diff)
Move headers to kon/ and add per-lib implementation stubs
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile55
1 files changed, 55 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..9fa28b6
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,55 @@
+PROGRAM = konengine
+SRCDIR = src
+KONDIR = kon
+EXTDIR = ext
+
+OBJDIR ?= obj
+EXE ?=
+MODEFLAGS ?= -O2 -DNDEBUG
+DEFS ?=
+LDLIBS ?= -lm
+MODOBJS ?=
+
+WARN = -std=c99 -Wall -Wextra -Wpedantic
+KONFLAGS = $(WARN) $(MODEFLAGS) $(DEFS) -I$(KONDIR) -I$(EXTDIR)
+COMPILE = @mkdir -p $(OBJDIR); echo "\# compile $@"; $(CC) $(KONFLAGS) -c
+
+BIN = $(OBJDIR)/$(PROGRAM)$(EXE)
+CORE = $(OBJDIR)/engine.o $(OBJDIR)/konwinlib.o $(OBJDIR)/konsofren.o \
+ $(OBJDIR)/kontime.o $(OBJDIR)/koninput.o
+OBJS = $(CORE) $(MODOBJS)
+
+all: $(BIN)
+
+$(BIN): $(OBJS)
+ @echo "# link $@"
+ @$(CC) -o $@ $(OBJS) $(LDLIBS)
+
+$(OBJDIR)/engine.o: $(SRCDIR)/engine.c $(KONDIR)/*.h
+ $(COMPILE) $(SRCDIR)/engine.c -o $@
+
+$(OBJDIR)/konwinlib.o: $(SRCDIR)/impl/konwinlib.c $(KONDIR)/konwinlib.h
+ $(COMPILE) $(SRCDIR)/impl/konwinlib.c -o $@
+
+$(OBJDIR)/konsofren.o: $(SRCDIR)/impl/konsofren.c $(KONDIR)/konsofren.h
+ $(COMPILE) $(SRCDIR)/impl/konsofren.c -o $@
+
+$(OBJDIR)/kontime.o: $(SRCDIR)/impl/kontime.c $(KONDIR)/kontime.h
+ $(COMPILE) $(SRCDIR)/impl/kontime.c -o $@
+
+$(OBJDIR)/koninput.o: $(SRCDIR)/impl/koninput.c $(KONDIR)/koninput.h $(KONDIR)/konwinlib.h
+ $(COMPILE) $(SRCDIR)/impl/koninput.c -o $@
+
+$(OBJDIR)/konfont.o: $(SRCDIR)/impl/konfont.c $(KONDIR)/konfont.h $(KONDIR)/konsofren.h $(EXTDIR)/stb_truetype.h
+ $(COMPILE) $(SRCDIR)/impl/konfont.c -o $@
+
+$(OBJDIR)/kontoml.o: $(SRCDIR)/impl/kontoml.c $(KONDIR)/kontoml.h
+ $(COMPILE) $(SRCDIR)/impl/kontoml.c -o $@
+
+run: $(BIN)
+ ./$(BIN)
+
+clean:
+ rm -f $(OBJS) $(BIN)
+
+.PHONY: all run clean