-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
70 lines (48 loc) · 1.82 KB
/
Makefile
File metadata and controls
70 lines (48 loc) · 1.82 KB
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
BINARY := zaehlwerk.bin
CUNIT_BINARY := unittests
BROOT := build
BROOT_CUNIT := $(BROOT)/cunit
BROOT_RELEASE := $(BROOT)/release
CC=gcc
SRC_FILES := $(wildcard *.c)
HDR_FILES := $(wildcard *.h)
OBJ_FILES := $(SRC_FILES:%.c=$(BROOT_RELEASE)/%.o)
CUNIT_SRC_FILES := $(wildcard cunit/*.c)
CUNIT_OBJ_FILES := $(CUNIT_SRC_FILES:cunit/%.c=$(BROOT_CUNIT)/%.o)
RELEASE_DEFINES = -DCOMPILE_DATE=\"$(COMPILE_DATE)\"
RELEASE_DEFINES += -DF_CPU=16000000UL
LDFLAGS_WRAP := -Wl,-wrap,main
LDFLAGS_CUNIT := -L/usr/local/lib -Wl,-Bstatic -lcunit -Wl,-Bdynamic
BASE_CFLAGS = -O0 -pedantic -std=c99
CFLAGS = $(BASE_CFLAGS)
LDFLAGS = -fPIC
.PHONY: all release dirs clean cunit printall
all: dirs release
release: $(BROOT_RELEASE)/$(BINARY)
test: TEST_CFLAGS = -g
test: TEST_DEFINES = -DPRE_POINT_DIGITS=5 -DPOST_POINT_DIGITS=8
test: dirs release $(BROOT_CUNIT)/$(CUNIT_BINARY)
clean:
@printf "DELETE \033\13301;33m-\033\13301;37m %-20s\n\033\13300;39m" $(BROOT)
@rm -r $(BROOT)
@rm cunit/*~
@rm *~
dirs:
@mkdir -p $(BROOT_RELEASE)
@mkdir -p $(BROOT_CUNIT)
##########
# LINK
$(BROOT_RELEASE)/$(BINARY): $(OBJ_FILES)
@printf "LINK \033\13301;33m-\033\13301;37m %-20s\n\033\13300;39m" $@
@$(CC) $(CFLAGS) $(OBJ_FILES) $(LDFLAGS) -o $@
$(BROOT_CUNIT)/$(CUNIT_BINARY): $(CUNIT_OBJ_FILES)
@printf "LINK \033\13301;33m-\033\13301;37m %-20s\n\033\13300;39m" $@
@$(CC) $(CFLAGS) $(OBJ_FILES) $(CUNIT_OBJ_FILES) $(LDFLAGS) $(LDFLAGS_WRAP) $(LDFLAGS_CUNIT) $(LDFLAGS) -o $@
##########
# COMPILE
$(BROOT_RELEASE)/%.o: %.c
@printf "BUILD \033\13301;33m-\033\13301;37m %-20s %s\033\13300;39m\n" $< $@
@$(CC) -c $(CFLAGS) $(TEST_CFLAGS) $(TEST_DEFINES) $< -o $@
$(BROOT_CUNIT)/%.o: cunit/%.c
@printf "BUILD \033\13301;33m-\033\13301;37m %-20s %s\033\13300;39m\n" $< $@
@$(CC) -c $(CFLAGS) $(TEST_CFLAGS) $(TEST_DEFINES) $< -o $@