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