blob: f06d7d59c749e63d4be034759bb81ff0439e4ea9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
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)
EXTFLAGS = -std=gnu99 -w $(MODEFLAGS) $(DEFS) -I$(EXTDIR)
COMPILE = @mkdir -p $(OBJDIR); echo "\# compile $@"; $(CC) $(KONFLAGS) -c
COMPILEEXT = @mkdir -p $(OBJDIR); echo "\# compile $@"; $(CC) $(EXTFLAGS) -c
ASSETDIR ?= assets
PACKFLAGS ?=
BIN = $(OBJDIR)/$(PROGRAM)$(EXE)
PACKER = $(OBJDIR)/konpack$(EXE)
PACKFILE = $(OBJDIR)/data.kpk
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 $@
$(OBJDIR)/kontile.o: $(SRCDIR)/impl/kontile.c $(KONDIR)/kontile.h $(KONDIR)/konsofren.h
$(COMPILE) $(SRCDIR)/impl/kontile.c -o $@
$(OBJDIR)/konassets.o: $(SRCDIR)/impl/konassets.c $(KONDIR)/konassets.h $(KONDIR)/konpack.h $(KONDIR)/konsofren.h $(EXTDIR)/*.h
$(COMPILE) $(SRCDIR)/impl/konassets.c -o $@
$(OBJDIR)/konaudio.o: $(SRCDIR)/impl/konaudio.c $(KONDIR)/konaudio.h $(KONDIR)/konassets.h $(EXTDIR)/miniaudio.h
$(COMPILE) $(SRCDIR)/impl/konaudio.c -o $@
$(OBJDIR)/stb_image.o: $(SRCDIR)/impl/stb_image.c $(EXTDIR)/stb_image.h
$(COMPILEEXT) $(SRCDIR)/impl/stb_image.c -o $@
$(OBJDIR)/miniaudio.o: $(SRCDIR)/impl/miniaudio.c $(EXTDIR)/miniaudio.h
$(COMPILEEXT) $(SRCDIR)/impl/miniaudio.c -o $@
$(OBJDIR)/konpack.o: $(SRCDIR)/impl/konpack.c $(KONDIR)/konpack.h
$(COMPILE) $(SRCDIR)/impl/konpack.c -o $@
tools: $(PACKER)
$(PACKER): tools/konpack.c $(KONDIR)/konpack.h
@mkdir -p $(OBJDIR)
@echo "# link $@"
@$(CC) $(KONFLAGS) -o $@ tools/konpack.c
pack: $(PACKER)
@find $(ASSETDIR) -type f | sort > $(OBJDIR)/assets.lst
$(PACKER) -c $(PACKFILE) $(PACKFLAGS) -b $(ASSETDIR) -l $(OBJDIR)/assets.lst
run: $(BIN)
./$(BIN)
clean:
rm -f $(OBJDIR)/*.o $(BIN) $(PACKER) $(PACKFILE) $(OBJDIR)/assets.lst
.PHONY: all run clean tools pack
|