1# $NetBSD: bsd.clang-analyze.mk,v 1.1 2011/08/27 18:35:20 joerg Exp $
2
3.ifndef CLANG_ANALYZE_SRCS
4
5CLANG_ANALYZE_FLAGS+=	--analyze
6
7.SUFFIXES: .c .cc .cpp .cxx .C .clang-analyzer
8
9CLANG_ANALYZE_CFLAGS=		${CFLAGS:N-Wa,--fatal-warnings}
10CLANG_ANALYZE_CXXFLAGS=	${CXXFLAGS:N-Wa,--fatal-warnings}
11
12.c.clang-analyzer:
13	${TOOL_CC.clang} ${CLANG_ANALYZE_FLAGS} \
14	    ${CLANG_ANALYZE_CFLAGS} ${CPPFLAGS} \
15	    ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} \
16	    ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
17.cc.clang-analyzer .cpp.clang-analyzer .cxx.clang-analyzer .C.clang-analyzer:
18	${TOOL_CXX.clang} ${CLANG_ANALYZE_FLAGS} \
19	    ${CLANG_ANALYZE_CXXFLAGS} ${CPPFLAGS} \
20	    ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} \
21	    ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
22
23CLANG_ANALYZE_SRCS= \
24	${SRCS:M*.[cC]} ${SRCS:M*.cc} \
25	${SRCS:M*.cpp} ${SRCS:M*.cxx} \
26	${DPSRCS:M*.[cC]} ${DPSRCS:M*.cc} \
27	${DPSRCS:M*.cpp} ${DPSRCS:M*.cxx}
28.if !empty(CLANG_ANALYZE_SRCS)
29CLANG_ANALYZE_OUTPUT=	${CLANG_ANALYZE_SRCS:R:S,$,.clang-analyzer,}
30.endif
31
32analyze: ${CLANG_ANALYZE_OUTPUT}
33
34.endif
35