@@ -17,7 +17,16 @@ ACLOCAL_AMFLAGS = -I m4
17
17
18
18
CONFIG_STATUS_DEPENDENCIES = $(top_srcdir ) /version.h
19
19
20
- .PHONY : update-version
20
+ .PHONY : update-version \
21
+ cppcheck \
22
+ cppcheck-error \
23
+ cppcheck-information \
24
+ cppcheck-performance \
25
+ cppcheck-portability \
26
+ cppcheck-style \
27
+ cppcheck-warning \
28
+ cppcheck-all
29
+
21
30
22
31
update-version :
23
32
@if test -x $(top_srcdir ) /maint/utils/version.sh; then \
@@ -30,3 +39,70 @@ update-version:
30
39
fi
31
40
32
41
$(top_srcdir ) /version.h : update-version
42
+
43
+ CPPCHECK_CMD = cppcheck \
44
+ --inline-suppr \
45
+ --error-exitcode=0 \
46
+ -j 4 \
47
+ --force \
48
+ -I $(top_srcdir ) /lib \
49
+ --language=c \
50
+ --std=c99
51
+
52
+ CPPCHECK_DIRS = \
53
+ $(top_srcdir ) /lib \
54
+ $(top_srcdir ) /src
55
+
56
+ CPPCHECK_OUT_PREFIX = $(top_builddir ) /cppcheck-
57
+
58
+ CPPCHECK_OUT_EXT = log.txt
59
+
60
+ CPPCHECK_SED_FILTER = \
61
+ -e '/\/src\/vfs\/smbfs\//d' \
62
+ -e '/is reassigned a value before the old one has been used./d' \
63
+ -e '/ Unmatched suppression: /d' \
64
+ -e "/Skipping configuration '.*' since the value of '.*' is unknown./d"
65
+
66
+ cppcheck :
67
+ $(CPPCHECK_CMD ) --enable=all $(CPPCHECK_DIRS ) 2> $(CPPCHECK_OUT_PREFIX ) all.$(CPPCHECK_OUT_EXT ) ;
68
+ $(SED ) -i $(CPPCHECK_SED_FILTER ) $(CPPCHECK_OUT_PREFIX ) all.$(CPPCHECK_OUT_EXT )
69
+
70
+ cppcheck-all : cppcheck
71
+
72
+ cppcheck-information :
73
+ $(CPPCHECK_CMD ) --enable=information $(CPPCHECK_DIRS ) 2> $(CPPCHECK_OUT_PREFIX ) information.$(CPPCHECK_OUT_EXT ) ;
74
+ $(SED ) -i $(CPPCHECK_SED_FILTER ) $(CPPCHECK_OUT_PREFIX ) information.$(CPPCHECK_OUT_EXT )
75
+
76
+ cppcheck-performance :
77
+ $(CPPCHECK_CMD ) --enable=performance $(CPPCHECK_DIRS ) 2> $(CPPCHECK_OUT_PREFIX ) performance.$(CPPCHECK_OUT_EXT ) ;
78
+ $(SED ) -i $(CPPCHECK_SED_FILTER ) $(CPPCHECK_OUT_PREFIX ) performance.$(CPPCHECK_OUT_EXT )
79
+
80
+ cppcheck-portability :
81
+ $(CPPCHECK_CMD ) --enable=portability $(CPPCHECK_DIRS ) 2> $(CPPCHECK_OUT_PREFIX ) portability.$(CPPCHECK_OUT_EXT ) ;
82
+ $(SED ) -i $(CPPCHECK_SED_FILTER ) $(CPPCHECK_OUT_PREFIX ) portability.$(CPPCHECK_OUT_EXT )
83
+
84
+ cppcheck-style :
85
+ $(CPPCHECK_CMD ) --enable=style $(CPPCHECK_DIRS ) 2> $(CPPCHECK_OUT_PREFIX ) style.$(CPPCHECK_OUT_EXT ) ;
86
+ $(SED ) -i $(CPPCHECK_SED_FILTER ) $(CPPCHECK_OUT_PREFIX ) style.$(CPPCHECK_OUT_EXT )
87
+
88
+ cppcheck-warning :
89
+ $(CPPCHECK_CMD ) --enable=warning $(CPPCHECK_DIRS ) 2> $(CPPCHECK_OUT_PREFIX ) warning.$(CPPCHECK_OUT_EXT ) ;
90
+ $(SED ) -i $(CPPCHECK_SED_FILTER ) $(CPPCHECK_OUT_PREFIX ) warning.$(CPPCHECK_OUT_EXT )
91
+
92
+ cppcheck-unusedFunction :
93
+ $(CPPCHECK_CMD ) --enable=unusedFunction $(CPPCHECK_DIRS ) 2> $(CPPCHECK_OUT_PREFIX ) unusedFunction.$(CPPCHECK_OUT_EXT ) ;
94
+ $(SED ) -i $(CPPCHECK_SED_FILTER ) $(CPPCHECK_OUT_PREFIX ) unusedFunction.$(CPPCHECK_OUT_EXT )
95
+
96
+ cppcheck-missingInclude :
97
+ $(CPPCHECK_CMD ) --enable=missingInclude $(CPPCHECK_DIRS ) 2> $(CPPCHECK_OUT_PREFIX ) missingInclude.$(CPPCHECK_OUT_EXT ) ;
98
+ $(SED ) -i $(CPPCHECK_SED_FILTER ) $(CPPCHECK_OUT_PREFIX ) missingInclude.$(CPPCHECK_OUT_EXT )
99
+
100
+ cppcheck-split-all : \
101
+ cppcheck-information \
102
+ cppcheck-performance \
103
+ cppcheck-portability \
104
+ cppcheck-style \
105
+ cppcheck-warning \
106
+ cppcheck-unusedFunction \
107
+ cppcheck-missingInclude
108
+
0 commit comments