-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
57 lines (41 loc) · 1.01 KB
/
makefile
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
LDFLAGS := \
../ttrack-lib/lib/ttrack-lib.a \
../LibAsm/lib/libcommon.a \
-lm \
-lsfml-window \
-lsfml-graphics \
-lsfml-system
CFLAGS := \
-Wall -Wextra \
-g \
-I../ttrack-lib/hdr \
-I../LibAsm/hdr \
-DSTACKTRACE
DOCPATH := doc-html
OBJPATH := obj
SRCPATH := src
BINPATH := bin
BINNAME := emulator
DOXCONF := doxygen
run: $(BINPATH)/$(BINNAME)
./$< example.bin
build: $(BINPATH)/$(BINNAME)
doc: $(DOCPATH)
clean:
-rm -rf $(OBJPATH)/*
-rm -rf $(BINPATH)/*
-rm -rf $(DOCPATH)
_CFILES := $(wildcard $(SRCPATH)/*.c)
_HFILES := $(wildcard $(SRCPATH)/*.h)
_OFILES := $(patsubst $(SRCPATH)/%.c, $(OBJPATH)/%.o, $(_CFILES))
_DFILES := $(patsubst $(SRCPATH)/%.c, $(OBJPATH)/%.d, $(_CFILES))
include $(_DFILES)
$(DOCPATH): $(_CFILES) $(_HFILES)
doxygen $(DOXCONF)
$(OBJPATH)/%.o: $(SRCPATH)/%.c
$(CC) -c $< -o $@ $(CFLAGS)
$(OBJPATH)/%.d: $(SRCPATH)/%.c
$(CC) -MM $< | sed 's/.*:/$(OBJPATH)\/$*.o $(OBJPATH)\/$*.d:/g' > $@
$(BINPATH)/$(BINNAME): $(_OFILES)
$(CC) -o $@ $^ $(LDFLAGS)
.PHONY: all clean doc build