1# $NetBSD: Makefile,v 1.3 2021/05/30 01:56:50 joerg Exp $ 2 3.include <bsd.init.mk> 4 5.if ${MKLLVM} != "no" 6.PATH: ${CLANG_SRCDIR}/lib/Headers 7 8 9.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 10INCS= adxintrin.h \ 11 ammintrin.h \ 12 amxintrin.h \ 13 avx2intrin.h \ 14 avx512bf16intrin.h \ 15 avx512bitalgintrin.h \ 16 avx512bwintrin.h \ 17 avx512cdintrin.h \ 18 avx512dqintrin.h \ 19 avx512erintrin.h \ 20 avx512fintrin.h \ 21 avx512ifmaintrin.h \ 22 avx512ifmavlintrin.h \ 23 avx512pfintrin.h \ 24 avx512vbmi2intrin.h \ 25 avx512vbmiintrin.h \ 26 avx512vbmivlintrin.h \ 27 avx512vlbf16intrin.h \ 28 avx512vlbitalgintrin.h \ 29 avx512vlbwintrin.h \ 30 avx512vlcdintrin.h \ 31 avx512vldqintrin.h \ 32 avx512vlintrin.h \ 33 avx512vlvbmi2intrin.h \ 34 avx512vlvnniintrin.h \ 35 avx512vlvp2intersectintrin.h \ 36 avx512vnniintrin.h \ 37 avx512vp2intersectintrin.h \ 38 avx512vpopcntdqintrin.h \ 39 avx512vpopcntdqvlintrin.h \ 40 avxintrin.h \ 41 avxvnniintrin.h \ 42 bmi2intrin.h \ 43 bmiintrin.h \ 44 cetintrin.h \ 45 cldemoteintrin.h \ 46 clflushoptintrin.h \ 47 clwbintrin.h \ 48 clzerointrin.h \ 49 cpuid.h \ 50 emmintrin.h \ 51 enqcmdintrin.h \ 52 f16cintrin.h \ 53 fma4intrin.h \ 54 fmaintrin.h \ 55 fxsrintrin.h \ 56 gfniintrin.h \ 57 hresetintrin.h \ 58 ia32intrin.h \ 59 immintrin.h \ 60 invpcidintrin.h \ 61 keylockerintrin.h \ 62 lwpintrin.h \ 63 lzcntintrin.h \ 64 mm3dnow.h \ 65 mmintrin.h \ 66 mm_malloc.h \ 67 movdirintrin.h \ 68 mwaitxintrin.h \ 69 nmmintrin.h \ 70 pconfigintrin.h \ 71 pkuintrin.h \ 72 pmmintrin.h \ 73 popcntintrin.h \ 74 prfchwintrin.h \ 75 ptwriteintrin.h \ 76 rdseedintrin.h \ 77 rtmintrin.h \ 78 serializeintrin.h \ 79 sgxintrin.h \ 80 shaintrin.h \ 81 smmintrin.h \ 82 tbmintrin.h \ 83 tmmintrin.h \ 84 tsxldtrkintrin.h \ 85 uintrintrin.h \ 86 vaesintrin.h \ 87 vpclmulqdqintrin.h \ 88 waitpkgintrin.h \ 89 wbnoinvdintrin.h \ 90 __wmmintrin_aes.h \ 91 wmmintrin.h \ 92 __wmmintrin_pclmul.h \ 93 x86gprintrin.h \ 94 x86intrin.h \ 95 xmmintrin.h \ 96 xopintrin.h \ 97 xsavecintrin.h \ 98 xsaveintrin.h \ 99 xsaveoptintrin.h \ 100 xsavesintrin.h \ 101 xtestintrin.h 102 103.elif ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" 104INCS= altivec.h \ 105 htmintrin.h \ 106 htmxlintrin.h 107.elif ${MACHINE_CPU} == "arm" || ${MACHINE_CPU} == "aarch64" 108INCS= arm_acle.h \ 109 arm_cmse.h \ 110 arm_neon.h 111. if ${MACHINE_CPU} == "aarch64" 112INCS+= arm64intr.h 113. endif 114.elif ${MACHINE_CPU} == "mips" 115INCS= msa.h 116.endif 117INCS+= stdatomic.h tgmath.h 118INCSDIR= /usr/include/clang-${CLANG_VERSION:R} 119.endif # MKLLVM 120 121.PATH: ${LLVM_SRCDIR}/include/llvm/IR 122.PATH: ${LLVM_SRCDIR}/include/llvm/Frontend/OpenACC 123.PATH: ${LLVM_SRCDIR}/include/llvm/Frontend/OpenMP 124 125TABLEGEN_SRC= Attributes.td Intrinsics.td Options.td ACC.td OMP.td 126 127TABLEGEN_OUTPUT.Attributes.td= \ 128 llvm/IR/Attributes.inc|-gen-attrs 129 130TABLEGEN_OUTPUT.Intrinsics.td= \ 131 llvm/IR/IntrinsicEnums.inc|-gen-intrinsic-enums \ 132 llvm/IR/IntrinsicImpl.inc|-gen-intrinsic-impl \ 133 llvm/IR/IntrinsicsAArch64.h|-gen-intrinsic-enums^-intrinsic-prefix=aarch64 \ 134 llvm/IR/IntrinsicsAMDGPU.h|-gen-intrinsic-enums^-intrinsic-prefix=amdgcn \ 135 llvm/IR/IntrinsicsARM.h|-gen-intrinsic-enums^-intrinsic-prefix=arm \ 136 llvm/IR/IntrinsicsBPF.h|-gen-intrinsic-enums^-intrinsic-prefix=bpf \ 137 llvm/IR/IntrinsicsHexagon.h|-gen-intrinsic-enums^-intrinsic-prefix=hexagon \ 138 llvm/IR/IntrinsicsMips.h|-gen-intrinsic-enums^-intrinsic-prefix=mips \ 139 llvm/IR/IntrinsicsNVPTX.h|-gen-intrinsic-enums^-intrinsic-prefix=nvvm \ 140 llvm/IR/IntrinsicsPowerPC.h|-gen-intrinsic-enums^-intrinsic-prefix=ppc \ 141 llvm/IR/IntrinsicsR600.h|-gen-intrinsic-enums^-intrinsic-prefix=r600 \ 142 llvm/IR/IntrinsicsRISCV.h|-gen-intrinsic-enums^-intrinsic-prefix=riscv \ 143 llvm/IR/IntrinsicsS390.h|-gen-intrinsic-enums^-intrinsic-prefix=s390 \ 144 llvm/IR/IntrinsicsVE.h|-gen-intrinsic-enums^-intrinsic-prefix=ve \ 145 llvm/IR/IntrinsicsWebAssembly.h|-gen-intrinsic-enums^-intrinsic-prefix=wasm \ 146 llvm/IR/IntrinsicsX86.h|-gen-intrinsic-enums^-intrinsic-prefix=x86 \ 147 llvm/IR/IntrinsicsXCore.h|-gen-intrinsic-enums^-intrinsic-prefix=xcore \ 148 149TABLEGEN_OUTPUT.OMP.td= \ 150 llvm/Frontend/OpenMP/OMP.h.inc|--gen-directive-decl \ 151 llvm/Frontend/OpenMP/OMP.inc|--gen-directive-impl 152 153TABLEGEN_OUTPUT.ACC.td= \ 154 llvm/Frontend/OpenACC/ACC.h.inc|--gen-directive-decl \ 155 llvm/Frontend/OpenACC/ACC.inc|--gen-directive-impl 156 157.if ${MKLLVM} != "no" 158.PATH: ${CLANG_SRCDIR}/include/clang/AST \ 159 ${CLANG_SRCDIR}/include/clang/Basic \ 160 ${CLANG_SRCDIR}/include/clang/Driver \ 161 ${CLANG_SRCDIR}/include/clang/StaticAnalyzer/Checkers \ 162 ${CLANG_SRCDIR}/include/clang/Tooling/Syntax 163CLANG_TABLEGEN_SRC= \ 164 arm_cde.td \ 165 arm_fp16.td \ 166 arm_mve.td \ 167 arm_neon.td \ 168 arm_sve.td \ 169 Attr.td \ 170 Checkers.td \ 171 CommentCommands.td \ 172 CommentHTMLNamedCharacterReferences.td \ 173 CommentHTMLTags.td \ 174 CommentNodes.td \ 175 DeclNodes.td \ 176 Diagnostic.td \ 177 Nodes.td \ 178 PropertiesBase.td \ 179 riscv_vector.td \ 180 StmtDataCollectors.td \ 181 StmtNodes.td \ 182 TypeNodes.td \ 183 TypeProperties.td 184 185CLANG_TABLEGEN_INCLUDES.Attr.td= -I${CLANG_SRCDIR}/include 186CLANG_TABLEGEN_OUTPUT.Attr.td= \ 187 clang/AST/AttrImpl.inc|-gen-clang-attr-impl \ 188 clang/AST/AttrNodeTraverse.inc|-gen-clang-attr-node-traverse \ 189 clang/AST/AttrTextNodeDump.inc|-gen-clang-attr-text-node-dump \ 190 clang/AST/Attrs.inc|-gen-clang-attr-classes \ 191 clang/AST/AttrVisitor.inc|-gen-clang-attr-ast-visitor \ 192 clang/Basic/AttrHasAttributeImpl.inc|-gen-clang-attr-has-attribute-impl \ 193 clang/Basic/AttrList.inc|-gen-clang-attr-list \ 194 clang/Basic/AttrSubMatchRulesList.inc|-gen-clang-attr-subject-match-rule-list \ 195 clang/Parse/AttrParserStringSwitches.inc|-gen-clang-attr-parser-string-switches \ 196 clang/Parse/AttrSubMatchRulesParserStringSwitches.inc|-gen-clang-attr-subject-match-rules-parser-string-switches \ 197 clang/Sema/AttrParsedAttrImpl.inc|-gen-clang-attr-parsed-attr-impl \ 198 clang/Sema/AttrParsedAttrKinds.inc|-gen-clang-attr-parsed-attr-kinds \ 199 clang/Sema/AttrParsedAttrList.inc|-gen-clang-attr-parsed-attr-list \ 200 clang/Sema/AttrSpellingListIndex.inc|-gen-clang-attr-spelling-index \ 201 clang/Sema/AttrTemplateInstantiate.inc|-gen-clang-attr-template-instantiate \ 202 clang/Serialization/AttrPCHRead.inc|-gen-clang-attr-pch-read \ 203 clang/Serialization/AttrPCHWrite.inc|-gen-clang-attr-pch-write 204 205CLANG_TABLEGEN_OUTPUT.PropertiesBase.td= \ 206 clang/AST/AbstractBasicReader.inc|-gen-clang-basic-reader \ 207 clang/AST/AbstractBasicWriter.inc|-gen-clang-basic-writer 208CLANG_TABLEGEN_INCLUDES.PropertiesBase.td= -I${CLANG_SRCDIR}/include 209 210CLANG_TABLEGEN_OUTPUT.TypeProperties.td= \ 211 clang/AST/AbstractTypeReader.inc|-gen-clang-type-reader \ 212 clang/AST/AbstractTypeWriter.inc|-gen-clang-type-writer 213CLANG_TABLEGEN_INCLUDES.TypeProperties.td= -I${CLANG_SRCDIR}/include 214 215CLANG_TABLEGEN_OUTPUT.StmtNodes.td= \ 216 clang/AST/StmtNodes.inc|-gen-clang-stmt-nodes 217CLANG_TABLEGEN_INCLUDES.StmtNodes.td= -I${CLANG_SRCDIR}/include 218 219CLANG_TABLEGEN_OUTPUT.StmtDataCollectors.td= \ 220 clang/AST/StmtDataCollectors.inc|-gen-clang-data-collectors 221 222CLANG_TABLEGEN_OUTPUT.DeclNodes.td= \ 223 clang/AST/DeclNodes.inc|-gen-clang-decl-nodes 224CLANG_TABLEGEN_INCLUDES.DeclNodes.td= -I${CLANG_SRCDIR}/include 225 226CLANG_TABLEGEN_OUTPUT.CommentNodes.td= \ 227 clang/AST/CommentNodes.inc|-gen-clang-comment-nodes 228CLANG_TABLEGEN_INCLUDES.CommentNodes.td= -I${CLANG_SRCDIR}/include 229 230CLANG_TABLEGEN_OUTPUT.CommentCommands.td= \ 231 clang/AST/CommentCommandInfo.inc|-gen-clang-comment-command-info \ 232 clang/AST/CommentCommandList.inc|-gen-clang-comment-command-list 233 234CLANG_TABLEGEN_OUTPUT.CommentHTMLTags.td= \ 235 clang/AST/CommentHTMLTags.inc|-gen-clang-comment-html-tags \ 236 clang/AST/CommentHTMLTagsProperties.inc|-gen-clang-comment-html-tags-properties 237 238CLANG_TABLEGEN_OUTPUT.CommentHTMLNamedCharacterReferences.td= \ 239 clang/AST/CommentHTMLNamedCharacterReferences.inc|-gen-clang-comment-html-named-character-references 240 241CLANG_TABLEGEN_INCLUDES.Nodes.td= -I${CLANG_SRCDIR}/include 242CLANG_TABLEGEN_OUTPUT.Nodes.td= \ 243 clang/Tooling/Syntax/NodeClasses.inc|-gen-clang-syntax-node-classes \ 244 clang/Tooling/Syntax/Nodes.inc|-gen-clang-syntax-node-list 245 246CLANG_TABLEGEN_OUTPUT.TypeNodes.td= \ 247 clang/AST/TypeNodes.inc|-gen-clang-type-nodes 248CLANG_TABLEGEN_INCLUDES.TypeNodes.td= -I${CLANG_SRCDIR}/include 249 250CLANG_TABLEGEN_INCLUDES.Diagnostic.td= -I${CLANG_SRCDIR}/include/clang/Basic 251CLANG_TABLEGEN_OUTPUT.Diagnostic.td= \ 252 clang/Basic/DiagnosticAnalysisKinds.inc|-gen-clang-diags-defs^-clang-component=Analysis \ 253 clang/Basic/DiagnosticASTKinds.inc|-gen-clang-diags-defs^-clang-component=AST \ 254 clang/Basic/DiagnosticCommentKinds.inc|-gen-clang-diags-defs^-clang-component=Comment \ 255 clang/Basic/DiagnosticCommonKinds.inc|-gen-clang-diags-defs^-clang-component=Common \ 256 clang/Basic/DiagnosticCrossTUKinds.inc|-gen-clang-diags-defs^-clang-component=CrossTU \ 257 clang/Basic/DiagnosticDriverKinds.inc|-gen-clang-diags-defs^-clang-component=Driver \ 258 clang/Basic/DiagnosticFrontendKinds.inc|-gen-clang-diags-defs^-clang-component=Frontend \ 259 clang/Basic/DiagnosticGroups.inc|-gen-clang-diag-groups \ 260 clang/Basic/DiagnosticIndexName.inc|-gen-clang-diags-index-name \ 261 clang/Basic/DiagnosticLexKinds.inc|-gen-clang-diags-defs^-clang-component=Lex \ 262 clang/Basic/DiagnosticParseKinds.inc|-gen-clang-diags-defs^-clang-component=Parse \ 263 clang/Basic/DiagnosticRefactoringKinds.inc|-gen-clang-diags-defs^-clang-component=Refactoring \ 264 clang/Basic/DiagnosticSemaKinds.inc|-gen-clang-diags-defs^-clang-component=Sema \ 265 clang/Basic/DiagnosticSerializationKinds.inc|-gen-clang-diags-defs^-clang-component=Serialization 266 267CLANG_TABLEGEN_INCLUDES.arm_cde.td= -I${CLANG_SRCDIR}/include/clang/Basic 268CLANG_TABLEGEN_OUTPUT.arm_cde.td= \ 269 clang/Basic/arm_cde_builtins.inc|-gen-arm-cde-builtin-def \ 270 clang/Basic/arm_cde_builtin_cg.inc|-gen-arm-cde-builtin-codegen \ 271 clang/Basic/arm_cde_builtin_sema.inc|-gen-arm-cde-builtin-sema \ 272 clang/Basic/arm_cde_builtin_aliases.inc|-gen-arm-cde-builtin-aliases 273 274CLANG_TABLEGEN_INCLUDES.arm_sve.td= -I${CLANG_SRCDIR}/include/clang/Basic 275CLANG_TABLEGEN_OUTPUT.arm_sve.td= \ 276 clang/Basic/arm_sve_builtins.inc|-gen-arm-sve-builtins \ 277 clang/Basic/arm_sve_builtin_cg.inc|-gen-arm-sve-builtin-codegen \ 278 clang/Basic/arm_sve_sema_rangechecks.inc|-gen-arm-sve-sema-rangechecks \ 279 clang/Basic/arm_sve_typeflags.inc|-gen-arm-sve-typeflags 280 281CLANG_TABLEGEN_INCLUDES.arm_neon.td= -I${CLANG_SRCDIR}/include/clang/Basic 282CLANG_TABLEGEN_OUTPUT.arm_neon.td= \ 283 clang/Basic/arm_neon.inc|-gen-arm-neon-sema \ 284 arm_neon.h|-gen-arm-neon 285 286CLANG_TABLEGEN_INCLUDES.arm_fp16.td= -I${CLANG_SRCDIR}/include/clang/Basic 287CLANG_TABLEGEN_OUTPUT.arm_fp16.td= \ 288 clang/Basic/arm_fp16.inc|-gen-arm-neon-sema 289CLANG_TABLEGEN_INCLUDES.arm_mve.td= -I${CLANG_SRCDIR}/include/clang/Basic 290CLANG_TABLEGEN_OUTPUT.arm_mve.td= \ 291 clang/Basic/arm_mve_builtins.inc|-gen-arm-mve-builtin-def \ 292 clang/Basic/arm_mve_builtin_aliases.inc|-gen-arm-mve-builtin-aliases \ 293 clang/Basic/arm_mve_builtin_cg.inc|-gen-arm-mve-builtin-codegen \ 294 clang/Basic/arm_mve_builtin_sema.inc|-gen-arm-mve-builtin-sema \ 295 296#CLANG_TABLEGEN_INCLUDES.riscv_vector.td= -I${CLANG_SRCDIR}/include/clang/Basic 297CLANG_TABLEGEN_OUTPUT.riscv_vector.td= \ 298 clang/Basic/riscv_vector_builtins.inc|-gen-riscv-vector-builtins \ 299 clang/Basic/riscv_vector_builtin_cg.inc|-gen-riscv-vector-builtin-codegen 300 301CLANG_TABLEGEN_INCLUDES.Checkers.td= \ 302 -I${CLANG_SRCDIR}/include \ 303 -I${CLANG_SRCDIR}/include/clang/StaticAnalyzer/Checkers 304CLANG_TABLEGEN_OUTPUT.Checkers.td= \ 305 clang/StaticAnalyzer/Checkers/Checkers.inc|-gen-clang-sa-checkers 306 307TABLEGEN_INCLUDES.Options.td= -I${CLANG_SRCDIR}/include/clang/Driver 308TABLEGEN_OUTPUT.Options.td= \ 309 clang/Driver/Options.inc|-gen-opt-parser-defs 310 311.endif # MKLLVM 312 313.include "${.PARSEDIR}/../tablegen.mk" 314 315DPSRCS+= llvm/Support/VCSRevision.h 316DPSRC+= llvm/Support/VCSRevision.h 317 318llvm/Support/VCSRevision.h: ${LLVM_TOPLEVEL}/Makefile.inc 319 mkdir -p ${.TARGET:H} 320 printf '#define LLVM_REVISION "git-${LLVM_REVISION}"\n' >> ${.TARGET}.tmp 321 mv ${.TARGET}.tmp ${.TARGET} 322 323.if ${MKLLVM} != "no" 324DPSRCS+= clang/Basic/Version.inc 325CLEANFILES+= clang/Basic/Version.inc 326 327clang/Basic/Version.inc: ${LLVM_TOPLEVEL}/Makefile.inc 328 mkdir -p ${.TARGET:H} 329 printf '#define CLANG_VERSION ${CLANG_VERSION}\n' > ${.TARGET}.tmp 330 printf '#define CLANG_VERSION_STRING "${CLANG_VERSION}"\n' >> ${.TARGET}.tmp 331 printf '#define CLANG_VERSION_MAJOR ${CLANG_VERSION:R:R}\n' >> ${.TARGET}.tmp 332 printf '#define CLANG_VERSION_MINOR ${CLANG_VERSION:R:E}\n' >> ${.TARGET}.tmp 333 printf '#define CLANG_VERSION_PATCHLEVEL ${CLANG_VERSION:R:R}\n' >> ${.TARGET}.tmp 334 mv ${.TARGET}.tmp ${.TARGET} 335.endif # MKLLVM 336 337.ifndef HOST_BUILD 338 339DPSRCS+= llvm/Config/config.h llvm/Config/llvm-config.h 340CLEANFILES+= llvm/Config/config.h llvm/Config/llvm-config.h 341 342NATIVE_LIBS= -lm -lexecinfo 343 344.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 345NATIVE_LLVM_ARCH= X86 346.endif 347 348.if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "aarch64eb" 349NATIVE_LLVM_ARCH= AArch64 350.endif 351 352.if !empty(MACHINE_ARCH:Mearm*) || !empty(MACHINE_ARCH:Marm*) 353NATIVE_LLVM_ARCH= ARM 354.endif 355 356.if !empty(MACHINE_ARCH:Mmips*) 357NATIVE_LLVM_ARCH= Mips 358.endif 359 360.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" 361NATIVE_LLVM_ARCH= PowerPC 362.endif 363 364.if ${MACHINE_ARCH} == "sparc" || ${MACHINE_ARCH} == "sparc64" 365NATIVE_LLVM_ARCH= Sparc 366.endif 367 368.if defined(NATIVE_LLVM_ARCH) 369NATIVE_LLVM_ASMPARSER= LLVMInitialize${NATIVE_LLVM_ARCH}AsmParser 370NATIVE_LLVM_ASMPRINTER= LLVMInitialize${NATIVE_LLVM_ARCH}AsmPrinter 371NATIVE_LLVM_DISASSEMBLER= LLVMInitialize${NATIVE_LLVM_ARCH}Disassembler 372NATIVE_LLVM_TARGET= LLVMInitialize${NATIVE_LLVM_ARCH}Target 373NATIVE_LLVM_TARGETINFO= LLVMInitialize${NATIVE_LLVM_ARCH}TargetInfo 374NATIVE_LLVM_TARGETMC= LLVMInitialize${NATIVE_LLVM_ARCH}TargetMC 375.endif 376 377llvm/Config/config.h: ${LLVM_TOPLEVEL}/Makefile.inc ${LLVM_TOPLEVEL}/config/llvm/Config/config.h.in 378 mkdir -p ${.TARGET:H} 379 ${TOOL_SED} -e /LLVM_DEFAULT_TARGET_TRIPLE/d \ 380 -e /LLVM_HOST_TRIPLE/d \ 381 -e /LLVM_NATIVE_/d \ 382 -e /LLVM_VERSION_/d \ 383 -e /PACKAGE_VERSION/d -e 'x' \ 384 < ${LLVM_TOPLEVEL}/config/llvm/Config/config.h.in \ 385 > ${.TARGET}.tmp 386 printf '#define LLVM_DEFAULT_TARGET_TRIPLE "${MACHINE_GNU_PLATFORM}"\n' >> ${.TARGET}.tmp 387 printf '#define LLVM_HOST_TRIPLE "${MACHINE_GNU_PLATFORM}"\n' >> ${.TARGET}.tmp 388.if defined(NATIVE_LLVM_ARCH) 389 printf '#define LLVM_NATIVE_ARCH ${NATIVE_LLVM_ARCH}\n' >> ${.TARGET}.tmp 390 printf '#define LLVM_NATIVE_ASMPARSER ${NATIVE_LLVM_ASMPARSER}\n' >> ${.TARGET}.tmp 391 printf '#define LLVM_NATIVE_ASMPRINTER ${NATIVE_LLVM_ASMPRINTER}\n' >> ${.TARGET}.tmp 392 printf '#define LLVM_NATIVE_DISASSEMBLER ${NATIVE_LLVM_DISASSEMBLER}\n' >> ${.TARGET}.tmp 393 printf '#define LLVM_NATIVE_TARGET ${NATIVE_LLVM_TARGET}\n' >> ${.TARGET}.tmp 394 printf '#define LLVM_NATIVE_TARGETINFO ${NATIVE_LLVM_TARGETINFO}\n' >> ${.TARGET}.tmp 395 printf '#define LLVM_NATIVE_TARGETMC ${NATIVE_LLVM_TARGETMC}\n' >> ${.TARGET}.tmp 396.endif 397 printf '#define PACKAGE_VERSION "${LLVM_VERSION} (trunk ${LLVM_REVISION})"\n' >> ${.TARGET}.tmp 398 printf '#define LLVM_VERSION_MAJOR ${LLVM_VERSION:R:R}\n' >> ${.TARGET}.tmp 399 printf '#define LLVM_VERSION_MINOR ${LLVM_VERSION:R:E}\n' >> ${.TARGET}.tmp 400 printf '#define LLVM_VERSION_PATCH ${LLVM_VERSION:E}\n' >> ${.TARGET}.tmp 401 printf '#define LLVM_VERSION_STRING "${LLVM_VERSION}"\n' >> ${.TARGET}.tmp 402 printf '#endif\n' >> ${.TARGET}.tmp 403 mv ${.TARGET}.tmp ${.TARGET} 404 405llvm/Config/llvm-config.h: ${LLVM_TOPLEVEL}/Makefile.inc ${LLVM_TOPLEVEL}/config/llvm/Config/llvm-config.h.in 406 mkdir -p ${.TARGET:H} 407 ${TOOL_SED} -e /LLVM_DEFAULT_TARGET_TRIPLE/d \ 408 -e /LLVM_HOST_TRIPLE/d \ 409 -e /LLVM_NATIVE_/d \ 410 -e /LLVM_VERSION_/d \ 411 -e /PACKAGE_VERSION/d -e 'x' \ 412 < ${LLVM_TOPLEVEL}/config/llvm/Config/llvm-config.h.in \ 413 > ${.TARGET}.tmp 414 printf '#define LLVM_DEFAULT_TARGET_TRIPLE "${MACHINE_GNU_PLATFORM}"\n' >> ${.TARGET}.tmp 415 printf '#define LLVM_HOST_TRIPLE "${MACHINE_GNU_PLATFORM}"\n' >> ${.TARGET}.tmp 416.if defined(NATIVE_LLVM_ARCH) 417 printf '#define LLVM_NATIVE_ARCH ${NATIVE_LLVM_ARCH}\n' >> ${.TARGET}.tmp 418 printf '#define LLVM_NATIVE_ASMPARSER ${NATIVE_LLVM_ASMPARSER}\n' >> ${.TARGET}.tmp 419 printf '#define LLVM_NATIVE_ASMPRINTER ${NATIVE_LLVM_ASMPRINTER}\n' >> ${.TARGET}.tmp 420 printf '#define LLVM_NATIVE_DISASSEMBLER ${NATIVE_LLVM_DISASSEMBLER}\n' >> ${.TARGET}.tmp 421 printf '#define LLVM_NATIVE_TARGET ${NATIVE_LLVM_TARGET}\n' >> ${.TARGET}.tmp 422 printf '#define LLVM_NATIVE_TARGETINFO ${NATIVE_LLVM_TARGETINFO}\n' >> ${.TARGET}.tmp 423 printf '#define LLVM_NATIVE_TARGETMC ${NATIVE_LLVM_TARGETMC}\n' >> ${.TARGET}.tmp 424.endif 425 printf '#define LLVM_VERSION_MAJOR ${LLVM_VERSION:R:R}\n' >> ${.TARGET}.tmp 426 printf '#define LLVM_VERSION_MINOR ${LLVM_VERSION:R:E}\n' >> ${.TARGET}.tmp 427 printf '#define LLVM_VERSION_PATCH ${LLVM_VERSION:E}\n' >> ${.TARGET}.tmp 428 printf '#define LLVM_VERSION_STRING "${LLVM_VERSION}"\n' >> ${.TARGET}.tmp 429 printf '#endif\n' >> ${.TARGET}.tmp 430 mv ${.TARGET}.tmp ${.TARGET} 431 432run-configure: 433 [ ! -d tmp ] || rm -r tmp 434 mkdir -p tmp 435 cd tmp && CONFIG_SITE= ${CONFIG_DIR}/configure ${LLVM_CONFIGURE_ARGS} \ 436 CC=${CC:Q} CFLAGS=${CFLAGS:N-Werror:Q} CXX=${CXX:Q} CXXFLAGS=${CXXFLAGS:N-Werror:Q} \ 437 CPPFLAGS=${CPPFLAGS:N-std=c++11:Q} LDFLAGS=${LDFLAGS:Q} LD=${LD:Q} LIBS=${NATIVE_LIBS:Q} \ 438 BUILD_CC=${CC:Q} BUILD_CXX=${CXX:Q} 439 cp -r tmp/include/llvm/* ${LLVM_INCLUDE_CONFIG}/llvm/ 440 mv ${LLVM_INCLUDE_CONFIG}/llvm/Config/llvm-config.h \ 441 ${LLVM_INCLUDE_CONFIG}/llvm/Config/llvm-config.h.in 442 cp -r tmp/include/clang/* ${CLANG_INCLUDE_CONFIG}/clang/ 443 rm -r tmp 444 mv ${LLVM_INCLUDE_CONFIG}/llvm/Config/config.h \ 445 ${LLVM_INCLUDE_CONFIG}/llvm/Config/config.h.in 446 cp ${.CURDIR}/module.modulemap ${LLVM_INCLUDE_CONFIG}/llvm/module.modulemap 447.endif 448 449DPSRCS+= llvm/Support/Extension.def 450CLEANFILES+= llvm/Support/Extension.def 451 452llvm/Support/Extension.def: 453 mkdir -p ${.TARGET:H} 454 printf '//extension handlers\n#undef HANDLE_EXTENSION\n' > ${.TARGET} 455 456includes depend dependall all: ${DPSRCS} 457 458depend dependall: clean-modulecache 459 460clean-modulecache: 461 rm -rf ${LLVM_MODULE_CACHE} 462 463.include <bsd.prog.mk> 464