Home | History | Annotate | Line # | Download | only in mk
bsd.clang-analyze.mk revision 1.2.2.1
      1  1.2.2.1   yamt # $NetBSD: bsd.clang-analyze.mk,v 1.2.2.1 2012/04/17 00:05:50 yamt Exp $
      2      1.1  joerg 
      3      1.1  joerg .ifndef CLANG_ANALYZE_SRCS
      4      1.1  joerg 
      5      1.2  joerg CLANG_ANALYZE_FLAGS+=	--analyze
      6      1.1  joerg 
      7  1.2.2.1   yamt CLANG_ANALYZE_CHECKERS+=	core deadcode security unix
      8  1.2.2.1   yamt 
      9  1.2.2.1   yamt .for checker in ${CLANG_ANALYZE_CHECKERS}
     10  1.2.2.1   yamt CLANG_ANALYZE_FLAGS+=	-Xanalyzer -analyzer-checker=${checker}
     11  1.2.2.1   yamt .endfor
     12  1.2.2.1   yamt 
     13      1.1  joerg .SUFFIXES: .c .cc .cpp .cxx .C .clang-analyzer
     14      1.1  joerg 
     15      1.1  joerg CLANG_ANALYZE_CFLAGS=		${CFLAGS:N-Wa,--fatal-warnings}
     16      1.1  joerg CLANG_ANALYZE_CXXFLAGS=	${CXXFLAGS:N-Wa,--fatal-warnings}
     17      1.1  joerg 
     18      1.1  joerg .c.clang-analyzer:
     19      1.1  joerg 	${TOOL_CC.clang} ${CLANG_ANALYZE_FLAGS} \
     20      1.1  joerg 	    ${CLANG_ANALYZE_CFLAGS} ${CPPFLAGS} \
     21      1.1  joerg 	    ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} \
     22      1.1  joerg 	    ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
     23      1.1  joerg .cc.clang-analyzer .cpp.clang-analyzer .cxx.clang-analyzer .C.clang-analyzer:
     24      1.1  joerg 	${TOOL_CXX.clang} ${CLANG_ANALYZE_FLAGS} \
     25      1.1  joerg 	    ${CLANG_ANALYZE_CXXFLAGS} ${CPPFLAGS} \
     26      1.1  joerg 	    ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} \
     27      1.1  joerg 	    ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
     28      1.1  joerg 
     29      1.1  joerg CLANG_ANALYZE_SRCS= \
     30      1.1  joerg 	${SRCS:M*.[cC]} ${SRCS:M*.cc} \
     31      1.1  joerg 	${SRCS:M*.cpp} ${SRCS:M*.cxx} \
     32      1.1  joerg 	${DPSRCS:M*.[cC]} ${DPSRCS:M*.cc} \
     33      1.1  joerg 	${DPSRCS:M*.cpp} ${DPSRCS:M*.cxx}
     34      1.1  joerg .if !empty(CLANG_ANALYZE_SRCS)
     35      1.1  joerg CLANG_ANALYZE_OUTPUT=	${CLANG_ANALYZE_SRCS:R:S,$,.clang-analyzer,}
     36      1.1  joerg .endif
     37      1.1  joerg 
     38      1.1  joerg analyze: ${CLANG_ANALYZE_OUTPUT}
     39      1.1  joerg 
     40      1.1  joerg .endif
     41