-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
59 lines (48 loc) · 1.08 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
57
58
59
SRCS = \
buffer_overflow.c \
memory_leak.c \
null_dereference.c \
null_dereference_simple.c \
undefined_value.c
TARGETS = \
$(patsubst %.c,gcc/%.log,$(SRCS)) \
$(patsubst %.c,infer/%.log,$(SRCS)) \
$(patsubst %.c,scan-build/%.log,$(SRCS)) \
$(patsubst %.c,cppcheck/%.log,$(SRCS)) \
$(patsubst %.c,splint/%.log,$(SRCS)) \
$(patsubst %.c,uno/%.log,$(SRCS)) \
$(patsubst %.c,verifast/%.log,$(SRCS))
all: date.stamp
date.stamp: $(TARGETS)
date > date.stamp
# GCC
gcc/%.log: %.c
mkdir -p gcc
gcc -Wall $< > $@ 2>&1
# Infer
infer/%.log: %.c
mkdir -p infer
infer -- clang -c $< > $@ 2>&1
# Clang Static Analyzer
scan-build/%.log: %.c
mkdir -p scan-build
scan-build-5.0 -o $@.out gcc -c $< > $@ 2>&1
# Cppcheck
cppcheck/%.log: %.c
mkdir -p cppcheck
cppcheck $< > $@ 2>&1
# Splint
splint/%.log: %.c
mkdir -p splint
-splint $< > $@ 2>&1
# Uno
uno/%.log: %.c
mkdir -p uno
uno $< > $@ 2>&1
# VeriFast
verifast/%.log: %.c
mkdir -p verifast
-verifast -c $< > $@ 2>&1
clean:
rm -rf date.stamp *.out *.o gcc infer infer-out scan-build cppcheck splint uno verifast
.PHONY: all clean