xref: /netbsd-src/external/apache2/llvm/include/Makefile (revision 53d1339bf7f9c7367b35a9e1ebe693f9b047a47b)
1*53d1339bSjoerg#	$NetBSD: Makefile,v 1.3 2021/05/30 01:56:50 joerg Exp $
276c7fc5fSjoerg
376c7fc5fSjoerg.include <bsd.init.mk>
476c7fc5fSjoerg
576c7fc5fSjoerg.if ${MKLLVM} != "no"
676c7fc5fSjoerg.PATH:	${CLANG_SRCDIR}/lib/Headers
776c7fc5fSjoerg
8*53d1339bSjoerg
976c7fc5fSjoerg.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
1076c7fc5fSjoergINCS=	adxintrin.h \
1176c7fc5fSjoerg	ammintrin.h \
12*53d1339bSjoerg	amxintrin.h \
1376c7fc5fSjoerg	avx2intrin.h \
1476c7fc5fSjoerg	avx512bf16intrin.h \
1576c7fc5fSjoerg	avx512bitalgintrin.h \
1676c7fc5fSjoerg	avx512bwintrin.h \
1776c7fc5fSjoerg	avx512cdintrin.h \
1876c7fc5fSjoerg	avx512dqintrin.h \
1976c7fc5fSjoerg	avx512erintrin.h \
2076c7fc5fSjoerg	avx512fintrin.h \
2176c7fc5fSjoerg	avx512ifmaintrin.h \
2276c7fc5fSjoerg	avx512ifmavlintrin.h \
2376c7fc5fSjoerg	avx512pfintrin.h \
2476c7fc5fSjoerg	avx512vbmi2intrin.h \
2576c7fc5fSjoerg	avx512vbmiintrin.h \
2676c7fc5fSjoerg	avx512vbmivlintrin.h \
27*53d1339bSjoerg	avx512vlbf16intrin.h \
2876c7fc5fSjoerg	avx512vlbitalgintrin.h \
2976c7fc5fSjoerg	avx512vlbwintrin.h \
3076c7fc5fSjoerg	avx512vlcdintrin.h \
3176c7fc5fSjoerg	avx512vldqintrin.h \
3276c7fc5fSjoerg	avx512vlintrin.h \
3376c7fc5fSjoerg	avx512vlvbmi2intrin.h \
3476c7fc5fSjoerg	avx512vlvnniintrin.h \
35*53d1339bSjoerg	avx512vlvp2intersectintrin.h \
3676c7fc5fSjoerg	avx512vnniintrin.h \
37*53d1339bSjoerg	avx512vp2intersectintrin.h \
3876c7fc5fSjoerg	avx512vpopcntdqintrin.h \
3976c7fc5fSjoerg	avx512vpopcntdqvlintrin.h \
4076c7fc5fSjoerg	avxintrin.h \
41*53d1339bSjoerg	avxvnniintrin.h \
4276c7fc5fSjoerg	bmi2intrin.h \
4376c7fc5fSjoerg	bmiintrin.h \
4476c7fc5fSjoerg	cetintrin.h \
4576c7fc5fSjoerg	cldemoteintrin.h \
4676c7fc5fSjoerg	clflushoptintrin.h \
4776c7fc5fSjoerg	clwbintrin.h \
4876c7fc5fSjoerg	clzerointrin.h \
4976c7fc5fSjoerg	cpuid.h \
5076c7fc5fSjoerg	emmintrin.h \
51*53d1339bSjoerg	enqcmdintrin.h \
5276c7fc5fSjoerg	f16cintrin.h \
5376c7fc5fSjoerg	fma4intrin.h \
5476c7fc5fSjoerg	fmaintrin.h \
5576c7fc5fSjoerg	fxsrintrin.h \
5676c7fc5fSjoerg	gfniintrin.h \
57*53d1339bSjoerg	hresetintrin.h \
5876c7fc5fSjoerg	ia32intrin.h \
5976c7fc5fSjoerg	immintrin.h \
6076c7fc5fSjoerg	invpcidintrin.h \
61*53d1339bSjoerg	keylockerintrin.h \
6276c7fc5fSjoerg	lwpintrin.h \
6376c7fc5fSjoerg	lzcntintrin.h \
6476c7fc5fSjoerg	mm3dnow.h \
6576c7fc5fSjoerg	mmintrin.h \
6676c7fc5fSjoerg	mm_malloc.h \
6776c7fc5fSjoerg	movdirintrin.h \
6876c7fc5fSjoerg	mwaitxintrin.h \
6976c7fc5fSjoerg	nmmintrin.h \
7076c7fc5fSjoerg	pconfigintrin.h \
7176c7fc5fSjoerg	pkuintrin.h \
7276c7fc5fSjoerg	pmmintrin.h \
7376c7fc5fSjoerg	popcntintrin.h \
7476c7fc5fSjoerg	prfchwintrin.h \
7576c7fc5fSjoerg	ptwriteintrin.h \
7676c7fc5fSjoerg	rdseedintrin.h \
7776c7fc5fSjoerg	rtmintrin.h \
78*53d1339bSjoerg	serializeintrin.h \
7976c7fc5fSjoerg	sgxintrin.h \
8076c7fc5fSjoerg	shaintrin.h \
8176c7fc5fSjoerg	smmintrin.h \
8276c7fc5fSjoerg	tbmintrin.h \
8376c7fc5fSjoerg	tmmintrin.h \
84*53d1339bSjoerg	tsxldtrkintrin.h \
85*53d1339bSjoerg	uintrintrin.h \
8676c7fc5fSjoerg	vaesintrin.h \
8776c7fc5fSjoerg	vpclmulqdqintrin.h \
8876c7fc5fSjoerg	waitpkgintrin.h \
8976c7fc5fSjoerg	wbnoinvdintrin.h \
9076c7fc5fSjoerg	__wmmintrin_aes.h \
91*53d1339bSjoerg	wmmintrin.h \
9276c7fc5fSjoerg	__wmmintrin_pclmul.h \
93*53d1339bSjoerg	x86gprintrin.h \
9476c7fc5fSjoerg	x86intrin.h \
9576c7fc5fSjoerg	xmmintrin.h \
9676c7fc5fSjoerg	xopintrin.h \
9776c7fc5fSjoerg	xsavecintrin.h \
9876c7fc5fSjoerg	xsaveintrin.h \
9976c7fc5fSjoerg	xsaveoptintrin.h \
10076c7fc5fSjoerg	xsavesintrin.h \
10176c7fc5fSjoerg	xtestintrin.h
10276c7fc5fSjoerg
10376c7fc5fSjoerg.elif ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64"
10476c7fc5fSjoergINCS=	altivec.h \
10576c7fc5fSjoerg	htmintrin.h \
10676c7fc5fSjoerg	htmxlintrin.h
10776c7fc5fSjoerg.elif ${MACHINE_CPU} == "arm" || ${MACHINE_CPU} == "aarch64"
10876c7fc5fSjoergINCS=	arm_acle.h \
109*53d1339bSjoerg	arm_cmse.h \
11076c7fc5fSjoerg	arm_neon.h
11176c7fc5fSjoerg.  if ${MACHINE_CPU} == "aarch64"
11276c7fc5fSjoergINCS+=	arm64intr.h
11376c7fc5fSjoerg.  endif
114962e2e4bSchristos.elif ${MACHINE_CPU} == "mips"
11576c7fc5fSjoergINCS=	msa.h
11676c7fc5fSjoerg.endif
117*53d1339bSjoergINCS+=	stdatomic.h tgmath.h
11876c7fc5fSjoergINCSDIR=	/usr/include/clang-${CLANG_VERSION:R}
11976c7fc5fSjoerg.endif # MKLLVM
12076c7fc5fSjoerg
121*53d1339bSjoerg.PATH:	${LLVM_SRCDIR}/include/llvm/IR
122*53d1339bSjoerg.PATH:	${LLVM_SRCDIR}/include/llvm/Frontend/OpenACC
123*53d1339bSjoerg.PATH:	${LLVM_SRCDIR}/include/llvm/Frontend/OpenMP
12476c7fc5fSjoerg
125*53d1339bSjoergTABLEGEN_SRC=	Attributes.td Intrinsics.td Options.td ACC.td OMP.td
12676c7fc5fSjoerg
12776c7fc5fSjoergTABLEGEN_OUTPUT.Attributes.td= \
12876c7fc5fSjoerg	llvm/IR/Attributes.inc|-gen-attrs
12976c7fc5fSjoerg
13076c7fc5fSjoergTABLEGEN_OUTPUT.Intrinsics.td= \
13176c7fc5fSjoerg	llvm/IR/IntrinsicEnums.inc|-gen-intrinsic-enums \
132*53d1339bSjoerg	llvm/IR/IntrinsicImpl.inc|-gen-intrinsic-impl \
133*53d1339bSjoerg	llvm/IR/IntrinsicsAArch64.h|-gen-intrinsic-enums^-intrinsic-prefix=aarch64 \
134*53d1339bSjoerg	llvm/IR/IntrinsicsAMDGPU.h|-gen-intrinsic-enums^-intrinsic-prefix=amdgcn \
135*53d1339bSjoerg	llvm/IR/IntrinsicsARM.h|-gen-intrinsic-enums^-intrinsic-prefix=arm \
136*53d1339bSjoerg	llvm/IR/IntrinsicsBPF.h|-gen-intrinsic-enums^-intrinsic-prefix=bpf \
137*53d1339bSjoerg	llvm/IR/IntrinsicsHexagon.h|-gen-intrinsic-enums^-intrinsic-prefix=hexagon \
138*53d1339bSjoerg	llvm/IR/IntrinsicsMips.h|-gen-intrinsic-enums^-intrinsic-prefix=mips \
139*53d1339bSjoerg	llvm/IR/IntrinsicsNVPTX.h|-gen-intrinsic-enums^-intrinsic-prefix=nvvm \
140*53d1339bSjoerg	llvm/IR/IntrinsicsPowerPC.h|-gen-intrinsic-enums^-intrinsic-prefix=ppc \
141*53d1339bSjoerg	llvm/IR/IntrinsicsR600.h|-gen-intrinsic-enums^-intrinsic-prefix=r600 \
142*53d1339bSjoerg	llvm/IR/IntrinsicsRISCV.h|-gen-intrinsic-enums^-intrinsic-prefix=riscv \
143*53d1339bSjoerg	llvm/IR/IntrinsicsS390.h|-gen-intrinsic-enums^-intrinsic-prefix=s390 \
144*53d1339bSjoerg        llvm/IR/IntrinsicsVE.h|-gen-intrinsic-enums^-intrinsic-prefix=ve \
145*53d1339bSjoerg	llvm/IR/IntrinsicsWebAssembly.h|-gen-intrinsic-enums^-intrinsic-prefix=wasm \
146*53d1339bSjoerg	llvm/IR/IntrinsicsX86.h|-gen-intrinsic-enums^-intrinsic-prefix=x86 \
147*53d1339bSjoerg	llvm/IR/IntrinsicsXCore.h|-gen-intrinsic-enums^-intrinsic-prefix=xcore \
148*53d1339bSjoerg
149*53d1339bSjoergTABLEGEN_OUTPUT.OMP.td=	\
150*53d1339bSjoerg	llvm/Frontend/OpenMP/OMP.h.inc|--gen-directive-decl \
151*53d1339bSjoerg	llvm/Frontend/OpenMP/OMP.inc|--gen-directive-impl
152*53d1339bSjoerg
153*53d1339bSjoergTABLEGEN_OUTPUT.ACC.td=	\
154*53d1339bSjoerg	llvm/Frontend/OpenACC/ACC.h.inc|--gen-directive-decl \
155*53d1339bSjoerg	llvm/Frontend/OpenACC/ACC.inc|--gen-directive-impl
15676c7fc5fSjoerg
15776c7fc5fSjoerg.if ${MKLLVM} != "no"
15876c7fc5fSjoerg.PATH:	${CLANG_SRCDIR}/include/clang/AST \
15976c7fc5fSjoerg	${CLANG_SRCDIR}/include/clang/Basic \
16076c7fc5fSjoerg	${CLANG_SRCDIR}/include/clang/Driver \
161*53d1339bSjoerg	${CLANG_SRCDIR}/include/clang/StaticAnalyzer/Checkers \
162*53d1339bSjoerg	${CLANG_SRCDIR}/include/clang/Tooling/Syntax
16376c7fc5fSjoergCLANG_TABLEGEN_SRC=	\
164*53d1339bSjoerg	arm_cde.td \
16576c7fc5fSjoerg	arm_fp16.td \
16676c7fc5fSjoerg	arm_mve.td \
167*53d1339bSjoerg	arm_neon.td \
168*53d1339bSjoerg	arm_sve.td \
16976c7fc5fSjoerg	Attr.td \
17076c7fc5fSjoerg	Checkers.td \
17176c7fc5fSjoerg	CommentCommands.td \
17276c7fc5fSjoerg	CommentHTMLNamedCharacterReferences.td \
17376c7fc5fSjoerg	CommentHTMLTags.td \
17476c7fc5fSjoerg	CommentNodes.td \
17576c7fc5fSjoerg	DeclNodes.td \
17676c7fc5fSjoerg	Diagnostic.td \
177*53d1339bSjoerg	Nodes.td \
178*53d1339bSjoerg	PropertiesBase.td \
179*53d1339bSjoerg	riscv_vector.td \
18076c7fc5fSjoerg	StmtDataCollectors.td \
18176c7fc5fSjoerg	StmtNodes.td \
182*53d1339bSjoerg	TypeNodes.td \
183*53d1339bSjoerg	TypeProperties.td
18476c7fc5fSjoerg
18576c7fc5fSjoergCLANG_TABLEGEN_INCLUDES.Attr.td=	-I${CLANG_SRCDIR}/include
18676c7fc5fSjoergCLANG_TABLEGEN_OUTPUT.Attr.td= \
18776c7fc5fSjoerg	clang/AST/AttrImpl.inc|-gen-clang-attr-impl \
18876c7fc5fSjoerg	clang/AST/AttrNodeTraverse.inc|-gen-clang-attr-node-traverse \
18976c7fc5fSjoerg	clang/AST/AttrTextNodeDump.inc|-gen-clang-attr-text-node-dump \
19076c7fc5fSjoerg	clang/AST/Attrs.inc|-gen-clang-attr-classes \
19176c7fc5fSjoerg	clang/AST/AttrVisitor.inc|-gen-clang-attr-ast-visitor \
19276c7fc5fSjoerg	clang/Basic/AttrHasAttributeImpl.inc|-gen-clang-attr-has-attribute-impl \
19376c7fc5fSjoerg	clang/Basic/AttrList.inc|-gen-clang-attr-list \
19476c7fc5fSjoerg	clang/Basic/AttrSubMatchRulesList.inc|-gen-clang-attr-subject-match-rule-list \
19576c7fc5fSjoerg	clang/Parse/AttrParserStringSwitches.inc|-gen-clang-attr-parser-string-switches \
19676c7fc5fSjoerg	clang/Parse/AttrSubMatchRulesParserStringSwitches.inc|-gen-clang-attr-subject-match-rules-parser-string-switches \
19776c7fc5fSjoerg	clang/Sema/AttrParsedAttrImpl.inc|-gen-clang-attr-parsed-attr-impl \
19876c7fc5fSjoerg	clang/Sema/AttrParsedAttrKinds.inc|-gen-clang-attr-parsed-attr-kinds \
19976c7fc5fSjoerg	clang/Sema/AttrParsedAttrList.inc|-gen-clang-attr-parsed-attr-list \
20076c7fc5fSjoerg	clang/Sema/AttrSpellingListIndex.inc|-gen-clang-attr-spelling-index \
20176c7fc5fSjoerg	clang/Sema/AttrTemplateInstantiate.inc|-gen-clang-attr-template-instantiate \
20276c7fc5fSjoerg	clang/Serialization/AttrPCHRead.inc|-gen-clang-attr-pch-read \
20376c7fc5fSjoerg	clang/Serialization/AttrPCHWrite.inc|-gen-clang-attr-pch-write
20476c7fc5fSjoerg
205*53d1339bSjoergCLANG_TABLEGEN_OUTPUT.PropertiesBase.td= \
206*53d1339bSjoerg	clang/AST/AbstractBasicReader.inc|-gen-clang-basic-reader \
207*53d1339bSjoerg	clang/AST/AbstractBasicWriter.inc|-gen-clang-basic-writer
208*53d1339bSjoergCLANG_TABLEGEN_INCLUDES.PropertiesBase.td=	-I${CLANG_SRCDIR}/include
209*53d1339bSjoerg
210*53d1339bSjoergCLANG_TABLEGEN_OUTPUT.TypeProperties.td= \
211*53d1339bSjoerg	clang/AST/AbstractTypeReader.inc|-gen-clang-type-reader \
212*53d1339bSjoerg	clang/AST/AbstractTypeWriter.inc|-gen-clang-type-writer
213*53d1339bSjoergCLANG_TABLEGEN_INCLUDES.TypeProperties.td=	-I${CLANG_SRCDIR}/include
214*53d1339bSjoerg
21576c7fc5fSjoergCLANG_TABLEGEN_OUTPUT.StmtNodes.td= \
21676c7fc5fSjoerg	clang/AST/StmtNodes.inc|-gen-clang-stmt-nodes
217*53d1339bSjoergCLANG_TABLEGEN_INCLUDES.StmtNodes.td=	-I${CLANG_SRCDIR}/include
21876c7fc5fSjoerg
21976c7fc5fSjoergCLANG_TABLEGEN_OUTPUT.StmtDataCollectors.td= \
22076c7fc5fSjoerg	clang/AST/StmtDataCollectors.inc|-gen-clang-data-collectors
22176c7fc5fSjoerg
22276c7fc5fSjoergCLANG_TABLEGEN_OUTPUT.DeclNodes.td= \
22376c7fc5fSjoerg	clang/AST/DeclNodes.inc|-gen-clang-decl-nodes
224*53d1339bSjoergCLANG_TABLEGEN_INCLUDES.DeclNodes.td=	-I${CLANG_SRCDIR}/include
22576c7fc5fSjoerg
22676c7fc5fSjoergCLANG_TABLEGEN_OUTPUT.CommentNodes.td= \
22776c7fc5fSjoerg	clang/AST/CommentNodes.inc|-gen-clang-comment-nodes
228*53d1339bSjoergCLANG_TABLEGEN_INCLUDES.CommentNodes.td=	-I${CLANG_SRCDIR}/include
22976c7fc5fSjoerg
23076c7fc5fSjoergCLANG_TABLEGEN_OUTPUT.CommentCommands.td= \
23176c7fc5fSjoerg	clang/AST/CommentCommandInfo.inc|-gen-clang-comment-command-info \
23276c7fc5fSjoerg	clang/AST/CommentCommandList.inc|-gen-clang-comment-command-list
23376c7fc5fSjoerg
23476c7fc5fSjoergCLANG_TABLEGEN_OUTPUT.CommentHTMLTags.td= \
23576c7fc5fSjoerg	clang/AST/CommentHTMLTags.inc|-gen-clang-comment-html-tags \
23676c7fc5fSjoerg	clang/AST/CommentHTMLTagsProperties.inc|-gen-clang-comment-html-tags-properties
23776c7fc5fSjoerg
23876c7fc5fSjoergCLANG_TABLEGEN_OUTPUT.CommentHTMLNamedCharacterReferences.td= \
23976c7fc5fSjoerg	clang/AST/CommentHTMLNamedCharacterReferences.inc|-gen-clang-comment-html-named-character-references
24076c7fc5fSjoerg
241*53d1339bSjoergCLANG_TABLEGEN_INCLUDES.Nodes.td=	-I${CLANG_SRCDIR}/include
242*53d1339bSjoergCLANG_TABLEGEN_OUTPUT.Nodes.td= \
243*53d1339bSjoerg	clang/Tooling/Syntax/NodeClasses.inc|-gen-clang-syntax-node-classes \
244*53d1339bSjoerg	clang/Tooling/Syntax/Nodes.inc|-gen-clang-syntax-node-list
245*53d1339bSjoerg
24676c7fc5fSjoergCLANG_TABLEGEN_OUTPUT.TypeNodes.td= \
24776c7fc5fSjoerg	clang/AST/TypeNodes.inc|-gen-clang-type-nodes
248*53d1339bSjoergCLANG_TABLEGEN_INCLUDES.TypeNodes.td=	-I${CLANG_SRCDIR}/include
24976c7fc5fSjoerg
25076c7fc5fSjoergCLANG_TABLEGEN_INCLUDES.Diagnostic.td=	-I${CLANG_SRCDIR}/include/clang/Basic
25176c7fc5fSjoergCLANG_TABLEGEN_OUTPUT.Diagnostic.td= \
25276c7fc5fSjoerg	clang/Basic/DiagnosticAnalysisKinds.inc|-gen-clang-diags-defs^-clang-component=Analysis \
25376c7fc5fSjoerg	clang/Basic/DiagnosticASTKinds.inc|-gen-clang-diags-defs^-clang-component=AST \
25476c7fc5fSjoerg	clang/Basic/DiagnosticCommentKinds.inc|-gen-clang-diags-defs^-clang-component=Comment \
25576c7fc5fSjoerg	clang/Basic/DiagnosticCommonKinds.inc|-gen-clang-diags-defs^-clang-component=Common \
25676c7fc5fSjoerg	clang/Basic/DiagnosticCrossTUKinds.inc|-gen-clang-diags-defs^-clang-component=CrossTU \
25776c7fc5fSjoerg	clang/Basic/DiagnosticDriverKinds.inc|-gen-clang-diags-defs^-clang-component=Driver \
25876c7fc5fSjoerg	clang/Basic/DiagnosticFrontendKinds.inc|-gen-clang-diags-defs^-clang-component=Frontend \
25976c7fc5fSjoerg	clang/Basic/DiagnosticGroups.inc|-gen-clang-diag-groups \
26076c7fc5fSjoerg	clang/Basic/DiagnosticIndexName.inc|-gen-clang-diags-index-name \
26176c7fc5fSjoerg	clang/Basic/DiagnosticLexKinds.inc|-gen-clang-diags-defs^-clang-component=Lex \
26276c7fc5fSjoerg	clang/Basic/DiagnosticParseKinds.inc|-gen-clang-diags-defs^-clang-component=Parse \
26376c7fc5fSjoerg	clang/Basic/DiagnosticRefactoringKinds.inc|-gen-clang-diags-defs^-clang-component=Refactoring \
26476c7fc5fSjoerg	clang/Basic/DiagnosticSemaKinds.inc|-gen-clang-diags-defs^-clang-component=Sema \
26576c7fc5fSjoerg	clang/Basic/DiagnosticSerializationKinds.inc|-gen-clang-diags-defs^-clang-component=Serialization
26676c7fc5fSjoerg
267*53d1339bSjoergCLANG_TABLEGEN_INCLUDES.arm_cde.td=	-I${CLANG_SRCDIR}/include/clang/Basic
268*53d1339bSjoergCLANG_TABLEGEN_OUTPUT.arm_cde.td= \
269*53d1339bSjoerg	clang/Basic/arm_cde_builtins.inc|-gen-arm-cde-builtin-def \
270*53d1339bSjoerg	clang/Basic/arm_cde_builtin_cg.inc|-gen-arm-cde-builtin-codegen \
271*53d1339bSjoerg	clang/Basic/arm_cde_builtin_sema.inc|-gen-arm-cde-builtin-sema \
272*53d1339bSjoerg	clang/Basic/arm_cde_builtin_aliases.inc|-gen-arm-cde-builtin-aliases
273*53d1339bSjoerg
274*53d1339bSjoergCLANG_TABLEGEN_INCLUDES.arm_sve.td=	-I${CLANG_SRCDIR}/include/clang/Basic
275*53d1339bSjoergCLANG_TABLEGEN_OUTPUT.arm_sve.td= \
276*53d1339bSjoerg	clang/Basic/arm_sve_builtins.inc|-gen-arm-sve-builtins \
277*53d1339bSjoerg	clang/Basic/arm_sve_builtin_cg.inc|-gen-arm-sve-builtin-codegen \
278*53d1339bSjoerg	clang/Basic/arm_sve_sema_rangechecks.inc|-gen-arm-sve-sema-rangechecks \
279*53d1339bSjoerg	clang/Basic/arm_sve_typeflags.inc|-gen-arm-sve-typeflags
28076c7fc5fSjoerg
28176c7fc5fSjoergCLANG_TABLEGEN_INCLUDES.arm_neon.td=	-I${CLANG_SRCDIR}/include/clang/Basic
28276c7fc5fSjoergCLANG_TABLEGEN_OUTPUT.arm_neon.td= \
28376c7fc5fSjoerg	clang/Basic/arm_neon.inc|-gen-arm-neon-sema \
28476c7fc5fSjoerg	arm_neon.h|-gen-arm-neon
28576c7fc5fSjoerg
28676c7fc5fSjoergCLANG_TABLEGEN_INCLUDES.arm_fp16.td=	-I${CLANG_SRCDIR}/include/clang/Basic
28776c7fc5fSjoergCLANG_TABLEGEN_OUTPUT.arm_fp16.td= \
28876c7fc5fSjoerg	clang/Basic/arm_fp16.inc|-gen-arm-neon-sema
28976c7fc5fSjoergCLANG_TABLEGEN_INCLUDES.arm_mve.td=	-I${CLANG_SRCDIR}/include/clang/Basic
29076c7fc5fSjoergCLANG_TABLEGEN_OUTPUT.arm_mve.td= \
29176c7fc5fSjoerg	clang/Basic/arm_mve_builtins.inc|-gen-arm-mve-builtin-def \
29276c7fc5fSjoerg	clang/Basic/arm_mve_builtin_aliases.inc|-gen-arm-mve-builtin-aliases \
29376c7fc5fSjoerg	clang/Basic/arm_mve_builtin_cg.inc|-gen-arm-mve-builtin-codegen \
29476c7fc5fSjoerg	clang/Basic/arm_mve_builtin_sema.inc|-gen-arm-mve-builtin-sema \
29576c7fc5fSjoerg
296*53d1339bSjoerg#CLANG_TABLEGEN_INCLUDES.riscv_vector.td=	-I${CLANG_SRCDIR}/include/clang/Basic
297*53d1339bSjoergCLANG_TABLEGEN_OUTPUT.riscv_vector.td= \
298*53d1339bSjoerg	clang/Basic/riscv_vector_builtins.inc|-gen-riscv-vector-builtins \
299*53d1339bSjoerg	clang/Basic/riscv_vector_builtin_cg.inc|-gen-riscv-vector-builtin-codegen
300*53d1339bSjoerg
30176c7fc5fSjoergCLANG_TABLEGEN_INCLUDES.Checkers.td=	\
30276c7fc5fSjoerg	-I${CLANG_SRCDIR}/include \
30376c7fc5fSjoerg	-I${CLANG_SRCDIR}/include/clang/StaticAnalyzer/Checkers
30476c7fc5fSjoergCLANG_TABLEGEN_OUTPUT.Checkers.td= \
30576c7fc5fSjoerg	clang/StaticAnalyzer/Checkers/Checkers.inc|-gen-clang-sa-checkers
30676c7fc5fSjoerg
30776c7fc5fSjoergTABLEGEN_INCLUDES.Options.td=	-I${CLANG_SRCDIR}/include/clang/Driver
30876c7fc5fSjoergTABLEGEN_OUTPUT.Options.td= \
30976c7fc5fSjoerg	clang/Driver/Options.inc|-gen-opt-parser-defs
310*53d1339bSjoerg
31176c7fc5fSjoerg.endif # MKLLVM
31276c7fc5fSjoerg
31376c7fc5fSjoerg.include "${.PARSEDIR}/../tablegen.mk"
31476c7fc5fSjoerg
31576c7fc5fSjoergDPSRCS+=	llvm/Support/VCSRevision.h
31676c7fc5fSjoergDPSRC+=		llvm/Support/VCSRevision.h
31776c7fc5fSjoerg
31876c7fc5fSjoergllvm/Support/VCSRevision.h: ${LLVM_TOPLEVEL}/Makefile.inc
31976c7fc5fSjoerg	mkdir -p ${.TARGET:H}
32076c7fc5fSjoerg	printf '#define LLVM_REVISION "git-${LLVM_REVISION}"\n' >> ${.TARGET}.tmp
32176c7fc5fSjoerg	mv ${.TARGET}.tmp ${.TARGET}
32276c7fc5fSjoerg
32376c7fc5fSjoerg.if ${MKLLVM} != "no"
32476c7fc5fSjoergDPSRCS+=	clang/Basic/Version.inc
32576c7fc5fSjoergCLEANFILES+=	clang/Basic/Version.inc
32676c7fc5fSjoerg
32776c7fc5fSjoergclang/Basic/Version.inc: ${LLVM_TOPLEVEL}/Makefile.inc
32876c7fc5fSjoerg	mkdir -p ${.TARGET:H}
32976c7fc5fSjoerg	printf '#define CLANG_VERSION ${CLANG_VERSION}\n' > ${.TARGET}.tmp
33076c7fc5fSjoerg	printf '#define CLANG_VERSION_STRING "${CLANG_VERSION}"\n' >> ${.TARGET}.tmp
33176c7fc5fSjoerg	printf '#define CLANG_VERSION_MAJOR ${CLANG_VERSION:R:R}\n' >> ${.TARGET}.tmp
33276c7fc5fSjoerg	printf '#define CLANG_VERSION_MINOR ${CLANG_VERSION:R:E}\n' >> ${.TARGET}.tmp
33376c7fc5fSjoerg	printf '#define CLANG_VERSION_PATCHLEVEL ${CLANG_VERSION:R:R}\n' >> ${.TARGET}.tmp
33476c7fc5fSjoerg	mv ${.TARGET}.tmp ${.TARGET}
33576c7fc5fSjoerg.endif # MKLLVM
33676c7fc5fSjoerg
33776c7fc5fSjoerg.ifndef HOST_BUILD
33876c7fc5fSjoerg
33976c7fc5fSjoergDPSRCS+=	llvm/Config/config.h llvm/Config/llvm-config.h
34076c7fc5fSjoergCLEANFILES+=	llvm/Config/config.h llvm/Config/llvm-config.h
34176c7fc5fSjoerg
34276c7fc5fSjoergNATIVE_LIBS=	-lm -lexecinfo
34376c7fc5fSjoerg
34476c7fc5fSjoerg.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
34576c7fc5fSjoergNATIVE_LLVM_ARCH=		X86
34676c7fc5fSjoerg.endif
34776c7fc5fSjoerg
34876c7fc5fSjoerg.if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "aarch64eb"
34976c7fc5fSjoergNATIVE_LLVM_ARCH=		AArch64
35076c7fc5fSjoerg.endif
35176c7fc5fSjoerg
35276c7fc5fSjoerg.if !empty(MACHINE_ARCH:Mearm*) || !empty(MACHINE_ARCH:Marm*)
35376c7fc5fSjoergNATIVE_LLVM_ARCH=		ARM
35476c7fc5fSjoerg.endif
35576c7fc5fSjoerg
35676c7fc5fSjoerg.if !empty(MACHINE_ARCH:Mmips*)
35776c7fc5fSjoergNATIVE_LLVM_ARCH=		Mips
35876c7fc5fSjoerg.endif
35976c7fc5fSjoerg
36076c7fc5fSjoerg.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64"
36176c7fc5fSjoergNATIVE_LLVM_ARCH=		PowerPC
36276c7fc5fSjoerg.endif
36376c7fc5fSjoerg
36476c7fc5fSjoerg.if ${MACHINE_ARCH} == "sparc" || ${MACHINE_ARCH} == "sparc64"
36576c7fc5fSjoergNATIVE_LLVM_ARCH=		Sparc
36676c7fc5fSjoerg.endif
36776c7fc5fSjoerg
36876c7fc5fSjoerg.if defined(NATIVE_LLVM_ARCH)
36976c7fc5fSjoergNATIVE_LLVM_ASMPARSER=		LLVMInitialize${NATIVE_LLVM_ARCH}AsmParser
37076c7fc5fSjoergNATIVE_LLVM_ASMPRINTER=		LLVMInitialize${NATIVE_LLVM_ARCH}AsmPrinter
37176c7fc5fSjoergNATIVE_LLVM_DISASSEMBLER=	LLVMInitialize${NATIVE_LLVM_ARCH}Disassembler
37276c7fc5fSjoergNATIVE_LLVM_TARGET=		LLVMInitialize${NATIVE_LLVM_ARCH}Target
37376c7fc5fSjoergNATIVE_LLVM_TARGETINFO=		LLVMInitialize${NATIVE_LLVM_ARCH}TargetInfo
37476c7fc5fSjoergNATIVE_LLVM_TARGETMC=		LLVMInitialize${NATIVE_LLVM_ARCH}TargetMC
37576c7fc5fSjoerg.endif
37676c7fc5fSjoerg
37776c7fc5fSjoergllvm/Config/config.h: ${LLVM_TOPLEVEL}/Makefile.inc ${LLVM_TOPLEVEL}/config/llvm/Config/config.h.in
37876c7fc5fSjoerg	mkdir -p ${.TARGET:H}
37976c7fc5fSjoerg	${TOOL_SED} -e /LLVM_DEFAULT_TARGET_TRIPLE/d \
38076c7fc5fSjoerg		    -e /LLVM_HOST_TRIPLE/d \
38176c7fc5fSjoerg		    -e /LLVM_NATIVE_/d \
38276c7fc5fSjoerg		    -e /LLVM_VERSION_/d \
38376c7fc5fSjoerg		    -e /PACKAGE_VERSION/d -e 'x' \
38476c7fc5fSjoerg	    < ${LLVM_TOPLEVEL}/config/llvm/Config/config.h.in \
38576c7fc5fSjoerg	    > ${.TARGET}.tmp
38676c7fc5fSjoerg	printf '#define LLVM_DEFAULT_TARGET_TRIPLE "${MACHINE_GNU_PLATFORM}"\n' >> ${.TARGET}.tmp
38776c7fc5fSjoerg	printf '#define LLVM_HOST_TRIPLE "${MACHINE_GNU_PLATFORM}"\n' >> ${.TARGET}.tmp
38876c7fc5fSjoerg.if defined(NATIVE_LLVM_ARCH)
38976c7fc5fSjoerg	printf '#define LLVM_NATIVE_ARCH ${NATIVE_LLVM_ARCH}\n' >> ${.TARGET}.tmp
39076c7fc5fSjoerg	printf '#define LLVM_NATIVE_ASMPARSER ${NATIVE_LLVM_ASMPARSER}\n' >> ${.TARGET}.tmp
39176c7fc5fSjoerg	printf '#define LLVM_NATIVE_ASMPRINTER ${NATIVE_LLVM_ASMPRINTER}\n' >> ${.TARGET}.tmp
39276c7fc5fSjoerg	printf '#define LLVM_NATIVE_DISASSEMBLER ${NATIVE_LLVM_DISASSEMBLER}\n' >> ${.TARGET}.tmp
39376c7fc5fSjoerg	printf '#define LLVM_NATIVE_TARGET ${NATIVE_LLVM_TARGET}\n' >> ${.TARGET}.tmp
39476c7fc5fSjoerg	printf '#define LLVM_NATIVE_TARGETINFO ${NATIVE_LLVM_TARGETINFO}\n' >> ${.TARGET}.tmp
39576c7fc5fSjoerg	printf '#define LLVM_NATIVE_TARGETMC ${NATIVE_LLVM_TARGETMC}\n' >> ${.TARGET}.tmp
39676c7fc5fSjoerg.endif
39776c7fc5fSjoerg	printf '#define PACKAGE_VERSION "${LLVM_VERSION} (trunk ${LLVM_REVISION})"\n' >> ${.TARGET}.tmp
39876c7fc5fSjoerg	printf '#define LLVM_VERSION_MAJOR ${LLVM_VERSION:R:R}\n' >> ${.TARGET}.tmp
39976c7fc5fSjoerg	printf '#define LLVM_VERSION_MINOR ${LLVM_VERSION:R:E}\n' >> ${.TARGET}.tmp
40076c7fc5fSjoerg	printf '#define LLVM_VERSION_PATCH ${LLVM_VERSION:E}\n' >> ${.TARGET}.tmp
40176c7fc5fSjoerg	printf '#define LLVM_VERSION_STRING "${LLVM_VERSION}"\n' >> ${.TARGET}.tmp
40276c7fc5fSjoerg	printf '#endif\n' >> ${.TARGET}.tmp
40376c7fc5fSjoerg	mv ${.TARGET}.tmp ${.TARGET}
40476c7fc5fSjoerg
40576c7fc5fSjoergllvm/Config/llvm-config.h: ${LLVM_TOPLEVEL}/Makefile.inc ${LLVM_TOPLEVEL}/config/llvm/Config/llvm-config.h.in
40676c7fc5fSjoerg	mkdir -p ${.TARGET:H}
40776c7fc5fSjoerg	${TOOL_SED} -e /LLVM_DEFAULT_TARGET_TRIPLE/d \
40876c7fc5fSjoerg		    -e /LLVM_HOST_TRIPLE/d \
40976c7fc5fSjoerg		    -e /LLVM_NATIVE_/d \
41076c7fc5fSjoerg		    -e /LLVM_VERSION_/d \
41176c7fc5fSjoerg		    -e /PACKAGE_VERSION/d -e 'x' \
41276c7fc5fSjoerg	    < ${LLVM_TOPLEVEL}/config/llvm/Config/llvm-config.h.in \
41376c7fc5fSjoerg	    > ${.TARGET}.tmp
41476c7fc5fSjoerg	printf '#define LLVM_DEFAULT_TARGET_TRIPLE "${MACHINE_GNU_PLATFORM}"\n' >> ${.TARGET}.tmp
41576c7fc5fSjoerg	printf '#define LLVM_HOST_TRIPLE "${MACHINE_GNU_PLATFORM}"\n' >> ${.TARGET}.tmp
41676c7fc5fSjoerg.if defined(NATIVE_LLVM_ARCH)
41776c7fc5fSjoerg	printf '#define LLVM_NATIVE_ARCH ${NATIVE_LLVM_ARCH}\n' >> ${.TARGET}.tmp
41876c7fc5fSjoerg	printf '#define LLVM_NATIVE_ASMPARSER ${NATIVE_LLVM_ASMPARSER}\n' >> ${.TARGET}.tmp
41976c7fc5fSjoerg	printf '#define LLVM_NATIVE_ASMPRINTER ${NATIVE_LLVM_ASMPRINTER}\n' >> ${.TARGET}.tmp
42076c7fc5fSjoerg	printf '#define LLVM_NATIVE_DISASSEMBLER ${NATIVE_LLVM_DISASSEMBLER}\n' >> ${.TARGET}.tmp
42176c7fc5fSjoerg	printf '#define LLVM_NATIVE_TARGET ${NATIVE_LLVM_TARGET}\n' >> ${.TARGET}.tmp
42276c7fc5fSjoerg	printf '#define LLVM_NATIVE_TARGETINFO ${NATIVE_LLVM_TARGETINFO}\n' >> ${.TARGET}.tmp
42376c7fc5fSjoerg	printf '#define LLVM_NATIVE_TARGETMC ${NATIVE_LLVM_TARGETMC}\n' >> ${.TARGET}.tmp
42476c7fc5fSjoerg.endif
42576c7fc5fSjoerg	printf '#define LLVM_VERSION_MAJOR ${LLVM_VERSION:R:R}\n' >> ${.TARGET}.tmp
42676c7fc5fSjoerg	printf '#define LLVM_VERSION_MINOR ${LLVM_VERSION:R:E}\n' >> ${.TARGET}.tmp
42776c7fc5fSjoerg	printf '#define LLVM_VERSION_PATCH ${LLVM_VERSION:E}\n' >> ${.TARGET}.tmp
42876c7fc5fSjoerg	printf '#define LLVM_VERSION_STRING "${LLVM_VERSION}"\n' >> ${.TARGET}.tmp
42976c7fc5fSjoerg	printf '#endif\n' >> ${.TARGET}.tmp
43076c7fc5fSjoerg	mv ${.TARGET}.tmp ${.TARGET}
43176c7fc5fSjoerg
43276c7fc5fSjoergrun-configure:
43376c7fc5fSjoerg	[ ! -d tmp ] || rm -r tmp
43476c7fc5fSjoerg	mkdir -p tmp
43576c7fc5fSjoerg	cd tmp && CONFIG_SITE= ${CONFIG_DIR}/configure ${LLVM_CONFIGURE_ARGS} \
43676c7fc5fSjoerg	    CC=${CC:Q} CFLAGS=${CFLAGS:N-Werror:Q} CXX=${CXX:Q} CXXFLAGS=${CXXFLAGS:N-Werror:Q} \
43776c7fc5fSjoerg	    CPPFLAGS=${CPPFLAGS:N-std=c++11:Q} LDFLAGS=${LDFLAGS:Q} LD=${LD:Q} LIBS=${NATIVE_LIBS:Q} \
43876c7fc5fSjoerg	    BUILD_CC=${CC:Q} BUILD_CXX=${CXX:Q}
43976c7fc5fSjoerg	cp -r tmp/include/llvm/* ${LLVM_INCLUDE_CONFIG}/llvm/
44076c7fc5fSjoerg	mv ${LLVM_INCLUDE_CONFIG}/llvm/Config/llvm-config.h \
44176c7fc5fSjoerg	   ${LLVM_INCLUDE_CONFIG}/llvm/Config/llvm-config.h.in
44276c7fc5fSjoerg	cp -r tmp/include/clang/* ${CLANG_INCLUDE_CONFIG}/clang/
44376c7fc5fSjoerg	rm -r tmp
44476c7fc5fSjoerg	mv ${LLVM_INCLUDE_CONFIG}/llvm/Config/config.h \
44576c7fc5fSjoerg	    ${LLVM_INCLUDE_CONFIG}/llvm/Config/config.h.in
446*53d1339bSjoerg	cp ${.CURDIR}/module.modulemap ${LLVM_INCLUDE_CONFIG}/llvm/module.modulemap
44776c7fc5fSjoerg.endif
44876c7fc5fSjoerg
449*53d1339bSjoergDPSRCS+=	llvm/Support/Extension.def
450*53d1339bSjoergCLEANFILES+=	llvm/Support/Extension.def
451*53d1339bSjoerg
452*53d1339bSjoergllvm/Support/Extension.def:
453*53d1339bSjoerg	mkdir -p ${.TARGET:H}
454*53d1339bSjoerg	printf '//extension handlers\n#undef HANDLE_EXTENSION\n' > ${.TARGET}
455*53d1339bSjoerg
45676c7fc5fSjoergincludes depend dependall all: ${DPSRCS}
45776c7fc5fSjoerg
458*53d1339bSjoergdepend dependall: clean-modulecache
459*53d1339bSjoerg
460*53d1339bSjoergclean-modulecache:
461*53d1339bSjoerg	rm -rf ${LLVM_MODULE_CACHE}
462*53d1339bSjoerg
46376c7fc5fSjoerg.include <bsd.prog.mk>
464