blob: b59a216cbbbffa5a59f0c19b101a05721ca91479 (
plain) (
blame)
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
|
CC=clang
CC?=clang
CC_FLAGS=-fpic
CC_EXTRA?=
CC_FLAGS+=$(CC_EXTRA)
SRCS=$(wildcard *.c)
TBG_OBJLIST=$(patsubst %.c, %.o , $(wildcard *.c))
TBG_OBJLIST_DBG=$(patsubst %.c, %.odbg , $(wildcard *.c))
TBG_OBJLIST_COV=$(patsubst %.c, %.ocov , $(wildcard *.c))
ADD_SANITIZERS_CC= -g -fsanitize=address -fno-omit-frame-pointer
ADD_SANITIZERS_LD= -g -fsanitize=address
MEM_SANITIZERS_CC= -g -fsanitize=memory -fno-omit-frame-pointer
MEM_SANITIZERS_LD= -g -fsanitize=memory
UB_SANITIZERS_CC= -g -fsanitize=undefined -fno-omit-frame-pointer
UB_SANITIZERS_LD= -g -fsanitize=undefined
COV_CC= -fprofile-instr-generate -fcoverage-mapping
.DEFAULT:all
.PHONY:all clean help
all:$(TBG_OBJLIST) $(TBG_OBJLIST_DBG) $(TBG_OBJLIST_COV)
@echo $(TBG_OBJLIST)
@echo $(TBG_OBJLIST_INC)
depend:.depend
.depend:$(SRCS)
rm -rf .depend
$(CC) -MM $(CC_FLAGS) $^ > ./.depend
echo $(patsubst %.o:, %.odbg:, $(shell $(CC) -MM $(CC_FLAGS) $^)) | sed -r 's/[A-Za-z0-9\-\_]+\.odbg/\n&/g' >> ./.depend
echo $(patsubst %.o:, %.ocov:, $(shell $(CC) -MM $(CC_FLAGS) $^)) | sed -r 's/[A-Za-z0-9\-\_]+\.ocov/\n&/g' >> ./.depend
-include ./.depend
.c.o:
$(CC) $(CC_FLAGS) -c $< -o $@
%.odbg:%.c
$(CC) $(CC_FLAGS) -g -c $< -o $@
%.ocov:%.c
$(CC) $(CC_FLAGS) $(COV_CC) -c $< -o $@
clean:
rm -f *.o *~ $(TARGET) *.ocov *.odbg
rm .depend
help:
@echo "all is the default target"
@echo "there is clean."
|