1208963Srdivacky# $FreeBSD: releng/10.3/lib/clang/clang.build.mk 294056 2016-01-15 00:05:58Z marius $
2208963Srdivacky
3239614SdimCLANG_SRCS=	${LLVM_SRCS}/tools/clang
4208963Srdivacky
5239614SdimCFLAGS+=	-I${LLVM_SRCS}/include -I${CLANG_SRCS}/include \
6239614Sdim		-I${LLVM_SRCS}/${SRCDIR} ${INCDIR:C/^/-I${LLVM_SRCS}\//} -I. \
7239614Sdim		-I${LLVM_SRCS}/../../lib/clang/include \
8239614Sdim		-DLLVM_ON_UNIX -DLLVM_ON_FREEBSD \
9256297Sdim		-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DNDEBUG
10208963Srdivacky
11246259Sdim.if !defined(EARLY_BUILD) && defined(MK_CLANG_FULL) && ${MK_CLANG_FULL} != "no"
12246259SdimCFLAGS+=	-DCLANG_ENABLE_ARCMT \
13246259Sdim		-DCLANG_ENABLE_REWRITER \
14246259Sdim		-DCLANG_ENABLE_STATIC_ANALYZER
15246259Sdim.endif # !EARLY_BUILD && MK_CLANG_FULL
16246259Sdim
17229169Snwhitehorn# LLVM is not strict aliasing safe as of 12/31/2011
18239614SdimCFLAGS+=	-fno-strict-aliasing
19209153Sed
20208963SrdivackyTARGET_ARCH?=	${MACHINE_ARCH}
21239462SdimBUILD_ARCH?=	${MACHINE_ARCH}
22246705Sandrew
23246705Sandrew.if (${TARGET_ARCH} == "arm" || ${TARGET_ARCH} == "armv6") && \
24246705Sandrew    ${MK_ARM_EABI} != "no"
25246705SandrewTARGET_ABI=	gnueabi
26246705Sandrew.else
27246705SandrewTARGET_ABI=	unknown
28246705Sandrew.endif
29246705Sandrew
30294056SmariusTARGET_TRIPLE?=	${TARGET_ARCH:C/amd64/x86_64/}-${TARGET_ABI}-freebsd10.3
31294056SmariusBUILD_TRIPLE?=	${BUILD_ARCH:C/amd64/x86_64/}-unknown-freebsd10.3
32239462SdimCFLAGS+=	-DLLVM_DEFAULT_TARGET_TRIPLE=\"${TARGET_TRIPLE}\" \
33251662Sdim		-DLLVM_HOST_TRIPLE=\"${BUILD_TRIPLE}\" \
34243830Sdim		-DDEFAULT_SYSROOT=\"${TOOLS_PREFIX}\"
35243830SdimCXXFLAGS+=	-fno-exceptions -fno-rtti
36208963Srdivacky
37208963Srdivacky.PATH:	${LLVM_SRCS}/${SRCDIR}
38208963Srdivacky
39239614SdimTBLGEN?=	tblgen
40239614SdimCLANG_TBLGEN?=	clang-tblgen
41208963Srdivacky
42266309SdimIntrinsics.inc.h: ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td
43266309Sdim	${TBLGEN} -gen-intrinsic \
44266309Sdim	    -I ${LLVM_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
45249423Sdim	    ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td
46208963Srdivacky.for arch in \
47263763Sdim	ARM/ARM Mips/Mips PowerPC/PPC Sparc/Sparc X86/X86
48208963Srdivacky. for hdr in \
49208963Srdivacky	AsmMatcher/-gen-asm-matcher \
50208963Srdivacky	AsmWriter1/-gen-asm-writer,-asmwriternum=1 \
51208963Srdivacky	AsmWriter/-gen-asm-writer \
52208963Srdivacky	CallingConv/-gen-callingconv \
53208963Srdivacky	CodeEmitter/-gen-emitter \
54208963Srdivacky	DAGISel/-gen-dag-isel \
55212904Sdim	DisassemblerTables/-gen-disassembler \
56208963Srdivacky	FastISel/-gen-fast-isel \
57224145Sdim	InstrInfo/-gen-instr-info \
58218893Sdim	MCCodeEmitter/-gen-emitter,-mc-emitter \
59224145Sdim	MCPseudoLowering/-gen-pseudo-lowering \
60224145Sdim	RegisterInfo/-gen-register-info \
61224145Sdim	SubtargetInfo/-gen-subtarget
62208963Srdivacky${arch:T}Gen${hdr:H:C/$/.inc.h/}: ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td
63266309Sdim	${TBLGEN} ${hdr:T:C/,/ /g} \
64266309Sdim	    -I ${LLVM_SRCS}/include -I ${LLVM_SRCS}/lib/Target/${arch:H} \
65266309Sdim	    -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
66224145Sdim	    ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td
67208963Srdivacky. endfor
68208963Srdivacky.endfor
69208963Srdivacky
70210299SedAttrs.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
71266309Sdim	${CLANG_TBLGEN} -gen-clang-attr-classes \
72266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
73267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/Attr.td
74210299Sed
75249423SdimAttrDump.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
76266309Sdim	${CLANG_TBLGEN} -gen-clang-attr-dump \
77266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
78267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/Attr.td
79249423Sdim
80263508SdimAttrIdentifierArg.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
81266309Sdim	${CLANG_TBLGEN} -gen-clang-attr-identifier-arg-list \
82266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
83267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/Attr.td
84251662Sdim
85212904SdimAttrImpl.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
86266309Sdim	${CLANG_TBLGEN} -gen-clang-attr-impl \
87266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
88267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/Attr.td
89263508Sdim
90226633SdimAttrLateParsed.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
91266309Sdim	${CLANG_TBLGEN} -gen-clang-attr-late-parsed-list \
92266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
93267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/Attr.td
94226633Sdim
95210299SedAttrList.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
96266309Sdim	${CLANG_TBLGEN} -gen-clang-attr-list \
97266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
98267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/Attr.td
99210299Sed
100263508SdimAttrParsedAttrImpl.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
101266309Sdim	${CLANG_TBLGEN} -gen-clang-attr-parsed-attr-impl \
102266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
103267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/Attr.td
104263508Sdim
105234353SdimAttrParsedAttrKinds.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
106266309Sdim	${CLANG_TBLGEN} -gen-clang-attr-parsed-attr-kinds \
107266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
108267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/Attr.td
109234353Sdim
110234353SdimAttrParsedAttrList.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
111266309Sdim	${CLANG_TBLGEN} -gen-clang-attr-parsed-attr-list \
112266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
113267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/Attr.td
114234353Sdim
115212904SdimAttrPCHRead.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
116266309Sdim	${CLANG_TBLGEN} -gen-clang-attr-pch-read \
117266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
118267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/Attr.td
119212904Sdim
120212904SdimAttrPCHWrite.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
121266309Sdim	${CLANG_TBLGEN} -gen-clang-attr-pch-write \
122266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
123267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/Attr.td
124212904Sdim
125218893SdimAttrSpellings.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
126266309Sdim	${CLANG_TBLGEN} -gen-clang-attr-spelling-list \
127266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
128267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/Attr.td
129218893Sdim
130249423SdimAttrSpellingListIndex.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
131266309Sdim	${CLANG_TBLGEN} -gen-clang-attr-spelling-index \
132266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
133267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/Attr.td
134249423Sdim
135234353SdimAttrTemplateInstantiate.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
136266309Sdim	${CLANG_TBLGEN} -gen-clang-attr-template-instantiate \
137266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
138267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/Attr.td
139234353Sdim
140263508SdimAttrTypeArg.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
141266309Sdim	${CLANG_TBLGEN} -gen-clang-attr-type-arg-list \
142266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
143267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/Attr.td
144263508Sdim
145243830SdimCommentCommandInfo.inc.h: ${CLANG_SRCS}/include/clang/AST/CommentCommands.td
146266309Sdim	${CLANG_TBLGEN} -gen-clang-comment-command-info \
147267470Sdim	    -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
148267470Sdim	    ${CLANG_SRCS}/include/clang/AST/CommentCommands.td
149243830Sdim
150249423SdimCommentCommandList.inc.h: ${CLANG_SRCS}/include/clang/AST/CommentCommands.td
151266309Sdim	${CLANG_TBLGEN} -gen-clang-comment-command-list \
152267470Sdim	    -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
153267470Sdim	    ${CLANG_SRCS}/include/clang/AST/CommentCommands.td
154249423Sdim
155249423SdimCommentHTMLNamedCharacterReferences.inc.h: \
156249423Sdim	${CLANG_SRCS}/include/clang/AST/CommentHTMLNamedCharacterReferences.td
157266309Sdim	${CLANG_TBLGEN} -gen-clang-comment-html-named-character-references \
158267470Sdim	    -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
159267470Sdim	    ${CLANG_SRCS}/include/clang/AST/CommentHTMLNamedCharacterReferences.td
160249423Sdim
161243830SdimCommentHTMLTags.inc.h: ${CLANG_SRCS}/include/clang/AST/CommentHTMLTags.td
162266309Sdim	${CLANG_TBLGEN} -gen-clang-comment-html-tags \
163267470Sdim	    -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
164267470Sdim	    ${CLANG_SRCS}/include/clang/AST/CommentHTMLTags.td
165243830Sdim
166249423SdimCommentHTMLTagsProperties.inc.h: \
167249423Sdim	${CLANG_SRCS}/include/clang/AST/CommentHTMLTags.td
168266309Sdim	${CLANG_TBLGEN} -gen-clang-comment-html-tags-properties \
169267470Sdim	    -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
170267470Sdim	    ${CLANG_SRCS}/include/clang/AST/CommentHTMLTags.td
171243830Sdim
172239462SdimCommentNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/CommentNodes.td
173266309Sdim	${CLANG_TBLGEN} -gen-clang-comment-nodes \
174267470Sdim	    -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
175267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/CommentNodes.td
176239462Sdim
177210299SedDeclNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/DeclNodes.td
178266309Sdim	${CLANG_TBLGEN} -gen-clang-decl-nodes \
179267470Sdim	    -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
180267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/DeclNodes.td
181210299Sed
182210299SedStmtNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/StmtNodes.td
183266309Sdim	${CLANG_TBLGEN} -gen-clang-stmt-nodes \
184267470Sdim	    -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
185267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/StmtNodes.td
186210299Sed
187263508Sdimarm_neon.h: ${CLANG_SRCS}/include/clang/Basic/arm_neon.td
188266309Sdim	${CLANG_TBLGEN} -gen-arm-neon \
189267470Sdim	    -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
190267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/arm_neon.td
191263508Sdim
192210299Sedarm_neon.inc.h: ${CLANG_SRCS}/include/clang/Basic/arm_neon.td
193266309Sdim	${CLANG_TBLGEN} -gen-arm-neon-sema \
194267470Sdim	    -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
195267470Sdim	    ${CLANG_SRCS}/include/clang/Basic/arm_neon.td
196210299Sed
197208963SrdivackyDiagnosticGroups.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td
198266309Sdim	${CLANG_TBLGEN} -gen-clang-diag-groups \
199266309Sdim	    -I ${CLANG_SRCS}/include/clang/Basic -d ${.TARGET:C/\.h$/.d/} \
200267470Sdim	    -o ${.TARGET} ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td
201221345Sdim
202221345SdimDiagnosticIndexName.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td
203266309Sdim	${CLANG_TBLGEN} -gen-clang-diags-index-name \
204266309Sdim	    -I ${CLANG_SRCS}/include/clang/Basic -d ${.TARGET:C/\.h$/.d/} \
205267470Sdim	    -o ${.TARGET} ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td
206221345Sdim
207239462Sdim.for hdr in AST Analysis Comment Common Driver Frontend Lex Parse Sema Serialization
208208963SrdivackyDiagnostic${hdr}Kinds.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td
209266309Sdim	${CLANG_TBLGEN} -gen-clang-diags-defs -clang-component=${hdr} \
210266309Sdim	    -I ${CLANG_SRCS}/include/clang/Basic -d ${.TARGET:C/\.h$/.d/} \
211267470Sdim	    -o ${.TARGET} ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td
212208963Srdivacky.endfor
213221345Sdim
214210299SedOptions.inc.h: ${CLANG_SRCS}/include/clang/Driver/Options.td
215266309Sdim	${TBLGEN} -gen-opt-parser-defs \
216266309Sdim	    -I ${LLVM_SRCS}/include -I ${CLANG_SRCS}/include/clang/Driver \
217267470Sdim	    -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
218267470Sdim	    ${CLANG_SRCS}/include/clang/Driver/Options.td
219210299Sed
220210299SedCC1AsOptions.inc.h: ${CLANG_SRCS}/include/clang/Driver/CC1AsOptions.td
221266309Sdim	${TBLGEN} -gen-opt-parser-defs \
222266309Sdim	    -I ${LLVM_SRCS}/include -I ${CLANG_SRCS}/include/clang/Driver \
223267470Sdim	    -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
224267470Sdim	    ${CLANG_SRCS}/include/clang/Driver/CC1AsOptions.td
225208963Srdivacky
226267470SdimCheckers.inc.h: ${CLANG_SRCS}/lib/StaticAnalyzer/Checkers/Checkers.td
227266309Sdim	${CLANG_TBLGEN} -gen-clang-sa-checkers \
228266309Sdim	    -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \
229224145Sdim	    ${CLANG_SRCS}/lib/StaticAnalyzer/Checkers/Checkers.td
230218893Sdim
231266309Sdim.for dep in ${TGHDRS:C/$/.inc.d/}
232266309Sdim. sinclude "${dep}"
233266309Sdim.endfor
234266309Sdim
235208963SrdivackySRCS+=		${TGHDRS:C/$/.inc.h/}
236266309SdimCLEANFILES+=	${TGHDRS:C/$/.inc.h/} ${TGHDRS:C/$/.inc.d/}
237