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