clang.build.mk revision 234353
1208963Srdivacky# $FreeBSD: head/lib/clang/clang.build.mk 234353 2012-04-16 21:23:25Z dim $
2208963Srdivacky
3208963SrdivackyCLANG_SRCS=${LLVM_SRCS}/tools/clang
4208963Srdivacky
5208963SrdivackyCFLAGS+=-I${LLVM_SRCS}/include -I${CLANG_SRCS}/include \
6208963Srdivacky	-I${LLVM_SRCS}/${SRCDIR} ${INCDIR:C/^/-I${LLVM_SRCS}\//} -I. \
7208963Srdivacky	-I${LLVM_SRCS}/../../lib/clang/include \
8208963Srdivacky	-DLLVM_ON_UNIX -DLLVM_ON_FREEBSD \
9208963Srdivacky	-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS #-DNDEBUG
10208963Srdivacky
11229169Snwhitehorn# LLVM is not strict aliasing safe as of 12/31/2011
12229169SnwhitehornCFLAGS+= -fno-strict-aliasing
13209153Sed
14208963SrdivackyTARGET_ARCH?=	${MACHINE_ARCH}
15234353SdimCFLAGS+=-DLLVM_DEFAULT_TARGET_TRIPLE=\"${TARGET_ARCH:C/amd64/x86_64/}-unknown-freebsd10.0\"
16208963Srdivacky
17210388Srpaulo.ifndef LLVM_REQUIRES_EH
18215324SdimCXXFLAGS+=-fno-exceptions
19210388Srpaulo.else
20210388Srpaulo# If the library or program requires EH, it also requires RTTI.
21210388SrpauloLLVM_REQUIRES_RTTI=
22210388Srpaulo.endif
23210388Srpaulo
24210388Srpaulo.ifndef LLVM_REQUIRES_RTTI
25215324SdimCXXFLAGS+=-fno-rtti
26210388Srpaulo.endif
27210388Srpaulo
28211573Srpaulo.ifdef TOOLS_PREFIX
29211573SrpauloCFLAGS+=-DCLANG_PREFIX=\"${TOOLS_PREFIX}\"
30211573Srpaulo.endif
31211573Srpaulo
32208963Srdivacky.PATH:	${LLVM_SRCS}/${SRCDIR}
33208963Srdivacky
34224145SdimTBLGEN?=tblgen
35226633SdimCLANG_TBLGEN?=clang-tblgen
36224145SdimTBLINC+=-I ${LLVM_SRCS}/include -I ${LLVM_SRCS}/lib/Target
37208963Srdivacky
38208963SrdivackyIntrinsics.inc.h: ${LLVM_SRCS}/include/llvm/Intrinsics.td
39224145Sdim	${TBLGEN} -I ${LLVM_SRCS}/lib/VMCore ${TBLINC} -gen-intrinsic \
40224145Sdim	    -o ${.TARGET} ${LLVM_SRCS}/include/llvm/Intrinsics.td
41208963Srdivacky.for arch in \
42208963Srdivacky	ARM/ARM Mips/Mips PowerPC/PPC X86/X86
43208963Srdivacky. for hdr in \
44208963Srdivacky	AsmMatcher/-gen-asm-matcher \
45208963Srdivacky	AsmWriter1/-gen-asm-writer,-asmwriternum=1 \
46208963Srdivacky	AsmWriter/-gen-asm-writer \
47208963Srdivacky	CallingConv/-gen-callingconv \
48208963Srdivacky	CodeEmitter/-gen-emitter \
49208963Srdivacky	DAGISel/-gen-dag-isel \
50212904Sdim	DisassemblerTables/-gen-disassembler \
51212904Sdim	EDInfo/-gen-enhanced-disassembly-info \
52208963Srdivacky	FastISel/-gen-fast-isel \
53224145Sdim	InstrInfo/-gen-instr-info \
54218893Sdim	MCCodeEmitter/-gen-emitter,-mc-emitter \
55224145Sdim	MCPseudoLowering/-gen-pseudo-lowering \
56224145Sdim	RegisterInfo/-gen-register-info \
57224145Sdim	SubtargetInfo/-gen-subtarget
58208963Srdivacky${arch:T}Gen${hdr:H:C/$/.inc.h/}: ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td
59224145Sdim	${TBLGEN} -I ${LLVM_SRCS}/lib/Target/${arch:H} ${TBLINC} \
60224145Sdim	    ${hdr:T:C/,/ /g} -o ${.TARGET} \
61224145Sdim	    ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td
62208963Srdivacky. endfor
63208963Srdivacky.endfor
64208963Srdivacky
65210299SedAttrs.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
66226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/AST ${TBLINC} \
67224145Sdim	    -gen-clang-attr-classes -o ${.TARGET} \
68224145Sdim	    -I ${CLANG_SRCS}/include ${.ALLSRC}
69210299Sed
70212904SdimAttrImpl.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
71226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/AST ${TBLINC} \
72224145Sdim	    -gen-clang-attr-impl -o ${.TARGET} \
73224145Sdim	    -I ${CLANG_SRCS}/include ${.ALLSRC}
74212904Sdim
75226633SdimAttrLateParsed.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
76226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic ${TBLINC} \
77226633Sdim	    -gen-clang-attr-late-parsed-list -o ${.TARGET} \
78226633Sdim	    -I ${CLANG_SRCS}/include ${.ALLSRC}
79226633Sdim
80210299SedAttrList.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
81226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic ${TBLINC} \
82224145Sdim	    -gen-clang-attr-list -o ${.TARGET} \
83224145Sdim	    -I ${CLANG_SRCS}/include ${.ALLSRC}
84210299Sed
85234353SdimAttrParsedAttrKinds.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
86234353Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic ${TBLINC} \
87234353Sdim	    -gen-clang-attr-parsed-attr-kinds -o ${.TARGET} \
88234353Sdim	    -I ${CLANG_SRCS}/include ${.ALLSRC}
89234353Sdim
90234353SdimAttrParsedAttrList.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
91234353Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic ${TBLINC} \
92234353Sdim	    -gen-clang-attr-parsed-attr-list -o ${.TARGET} \
93234353Sdim	    -I ${CLANG_SRCS}/include ${.ALLSRC}
94234353Sdim
95212904SdimAttrPCHRead.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
96226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Serialization \
97224145Sdim	    ${TBLINC} -gen-clang-attr-pch-read -o ${.TARGET} \
98224145Sdim	    -I ${CLANG_SRCS}/include ${.ALLSRC}
99212904Sdim
100212904SdimAttrPCHWrite.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
101226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Serialization \
102224145Sdim	    ${TBLINC} -gen-clang-attr-pch-write -o ${.TARGET} \
103224145Sdim	    -I ${CLANG_SRCS}/include ${.ALLSRC}
104212904Sdim
105218893SdimAttrSpellings.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
106226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Lex ${TBLINC} \
107224145Sdim	    -gen-clang-attr-spelling-list -o ${.TARGET} \
108224145Sdim	    -I ${CLANG_SRCS}/include ${.ALLSRC}
109218893Sdim
110234353SdimAttrTemplateInstantiate.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
111234353Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic ${TBLINC} \
112234353Sdim	    -gen-clang-attr-template-instantiate -o ${.TARGET} \
113234353Sdim	    -I ${CLANG_SRCS}/include ${.ALLSRC}
114234353Sdim
115210299SedDeclNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/DeclNodes.td
116226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/AST ${TBLINC} \
117224145Sdim	    -gen-clang-decl-nodes -o ${.TARGET} ${.ALLSRC}
118210299Sed
119210299SedStmtNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/StmtNodes.td
120226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/AST ${TBLINC} \
121224145Sdim	    -gen-clang-stmt-nodes -o ${.TARGET} ${.ALLSRC}
122210299Sed
123210299Sedarm_neon.inc.h: ${CLANG_SRCS}/include/clang/Basic/arm_neon.td
124226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic ${TBLINC} \
125224145Sdim	    -gen-arm-neon-sema -o ${.TARGET} ${.ALLSRC}
126210299Sed
127208963SrdivackyDiagnosticGroups.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td
128226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic ${TBLINC} \
129224145Sdim	    -gen-clang-diag-groups -o ${.TARGET} ${.ALLSRC}
130221345Sdim
131221345SdimDiagnosticIndexName.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td
132226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic ${TBLINC} \
133224145Sdim	    -gen-clang-diags-index-name -o ${.TARGET} ${.ALLSRC}
134221345Sdim
135234353Sdim.for hdr in AST Analysis Common Driver Frontend Lex Parse Sema Serialization
136208963SrdivackyDiagnostic${hdr}Kinds.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td
137226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic ${TBLINC} \
138224145Sdim	    -gen-clang-diags-defs -clang-component=${hdr} \
139224145Sdim	    -o ${.TARGET} ${.ALLSRC}
140208963Srdivacky.endfor
141221345Sdim
142210299SedOptions.inc.h: ${CLANG_SRCS}/include/clang/Driver/Options.td
143226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Driver ${TBLINC} \
144224145Sdim	    -gen-opt-parser-defs -o ${.TARGET} ${.ALLSRC}
145210299Sed
146208963SrdivackyCC1Options.inc.h: ${CLANG_SRCS}/include/clang/Driver/CC1Options.td
147226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Driver ${TBLINC} \
148224145Sdim	    -gen-opt-parser-defs -o ${.TARGET} ${.ALLSRC}
149210299Sed
150210299SedCC1AsOptions.inc.h: ${CLANG_SRCS}/include/clang/Driver/CC1AsOptions.td
151226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Driver ${TBLINC} \
152224145Sdim	    -gen-opt-parser-defs -o ${.TARGET} ${.ALLSRC}
153208963Srdivacky
154218893SdimCheckers.inc.h: ${CLANG_SRCS}/lib/StaticAnalyzer/Checkers/Checkers.td \
155218893Sdim	    ${CLANG_SRCS}/include/clang/StaticAnalyzer/Checkers/CheckerBase.td
156226633Sdim	${CLANG_TBLGEN} -I ${CLANG_SRCS}/lib/StaticAnalyzer/Checkers \
157224145Sdim	    ${TBLINC} -gen-clang-sa-checkers -o ${.TARGET} \
158224145Sdim	    -I ${CLANG_SRCS}/include \
159224145Sdim	    ${CLANG_SRCS}/lib/StaticAnalyzer/Checkers/Checkers.td
160218893Sdim
161208963SrdivackySRCS+=		${TGHDRS:C/$/.inc.h/}
162208963SrdivackyDPADD+=		${TGHDRS:C/$/.inc.h/}
163208963SrdivackyCLEANFILES+=	${TGHDRS:C/$/.inc.h/}
164