1 1.2 christos # $NetBSD: Makefile,v 1.2 2021/04/25 15:06:49 christos 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.1 joerg .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 9 1.1 joerg INCS= adxintrin.h \ 10 1.1 joerg ammintrin.h \ 11 1.1 joerg avx2intrin.h \ 12 1.1 joerg avx512bf16intrin.h \ 13 1.1 joerg avx512vlbf16intrin.h \ 14 1.1 joerg avx512vlvp2intersectintrin.h \ 15 1.1 joerg avx512vp2intersectintrin.h \ 16 1.1 joerg enqcmdintrin.h \ 17 1.1 joerg avx512bitalgintrin.h \ 18 1.1 joerg avx512bwintrin.h \ 19 1.1 joerg avx512cdintrin.h \ 20 1.1 joerg avx512dqintrin.h \ 21 1.1 joerg avx512erintrin.h \ 22 1.1 joerg avx512fintrin.h \ 23 1.1 joerg avx512ifmaintrin.h \ 24 1.1 joerg avx512ifmavlintrin.h \ 25 1.1 joerg avx512pfintrin.h \ 26 1.1 joerg avx512vbmi2intrin.h \ 27 1.1 joerg avx512vbmiintrin.h \ 28 1.1 joerg avx512vbmivlintrin.h \ 29 1.1 joerg avx512vlbitalgintrin.h \ 30 1.1 joerg avx512vlbwintrin.h \ 31 1.1 joerg avx512vlcdintrin.h \ 32 1.1 joerg avx512vldqintrin.h \ 33 1.1 joerg avx512vlintrin.h \ 34 1.1 joerg avx512vlvbmi2intrin.h \ 35 1.1 joerg avx512vlvnniintrin.h \ 36 1.1 joerg avx512vnniintrin.h \ 37 1.1 joerg avx512vpopcntdqintrin.h \ 38 1.1 joerg avx512vpopcntdqvlintrin.h \ 39 1.1 joerg avxintrin.h \ 40 1.1 joerg bmi2intrin.h \ 41 1.1 joerg bmiintrin.h \ 42 1.1 joerg cetintrin.h \ 43 1.1 joerg cldemoteintrin.h \ 44 1.1 joerg clflushoptintrin.h \ 45 1.1 joerg clwbintrin.h \ 46 1.1 joerg clzerointrin.h \ 47 1.1 joerg cpuid.h \ 48 1.1 joerg emmintrin.h \ 49 1.1 joerg f16cintrin.h \ 50 1.1 joerg fma4intrin.h \ 51 1.1 joerg fmaintrin.h \ 52 1.1 joerg fxsrintrin.h \ 53 1.1 joerg gfniintrin.h \ 54 1.1 joerg ia32intrin.h \ 55 1.1 joerg immintrin.h \ 56 1.1 joerg invpcidintrin.h \ 57 1.1 joerg lwpintrin.h \ 58 1.1 joerg lzcntintrin.h \ 59 1.1 joerg mm3dnow.h \ 60 1.1 joerg mmintrin.h \ 61 1.1 joerg mm_malloc.h \ 62 1.1 joerg movdirintrin.h \ 63 1.1 joerg mwaitxintrin.h \ 64 1.1 joerg nmmintrin.h \ 65 1.1 joerg pconfigintrin.h \ 66 1.1 joerg pkuintrin.h \ 67 1.1 joerg pmmintrin.h \ 68 1.1 joerg popcntintrin.h \ 69 1.1 joerg prfchwintrin.h \ 70 1.1 joerg ptwriteintrin.h \ 71 1.1 joerg rdseedintrin.h \ 72 1.1 joerg rtmintrin.h \ 73 1.1 joerg sgxintrin.h \ 74 1.1 joerg shaintrin.h \ 75 1.1 joerg smmintrin.h \ 76 1.1 joerg tbmintrin.h \ 77 1.1 joerg tmmintrin.h \ 78 1.1 joerg vaesintrin.h \ 79 1.1 joerg vpclmulqdqintrin.h \ 80 1.1 joerg waitpkgintrin.h \ 81 1.1 joerg wbnoinvdintrin.h \ 82 1.1 joerg wmmintrin.h \ 83 1.1 joerg __wmmintrin_aes.h \ 84 1.1 joerg __wmmintrin_pclmul.h \ 85 1.1 joerg x86intrin.h \ 86 1.1 joerg xmmintrin.h \ 87 1.1 joerg xopintrin.h \ 88 1.1 joerg xsavecintrin.h \ 89 1.1 joerg xsaveintrin.h \ 90 1.1 joerg xsaveoptintrin.h \ 91 1.1 joerg xsavesintrin.h \ 92 1.1 joerg xtestintrin.h 93 1.1 joerg 94 1.1 joerg .elif ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" 95 1.1 joerg INCS= altivec.h \ 96 1.1 joerg htmintrin.h \ 97 1.1 joerg htmxlintrin.h 98 1.1 joerg .elif ${MACHINE_CPU} == "arm" || ${MACHINE_CPU} == "aarch64" 99 1.1 joerg INCS= arm_acle.h \ 100 1.1 joerg arm_neon.h 101 1.1 joerg . if ${MACHINE_CPU} == "aarch64" 102 1.1 joerg INCS+= arm64intr.h 103 1.1 joerg . endif 104 1.2 christos .elif ${MACHINE_CPU} == "mips" 105 1.1 joerg INCS= msa.h 106 1.1 joerg .endif 107 1.1 joerg INCS+= stdatomic.h 108 1.1 joerg INCSDIR= /usr/include/clang-${CLANG_VERSION:R} 109 1.1 joerg .endif # MKLLVM 110 1.1 joerg 111 1.1 joerg .PATH: ${LLVM_SRCDIR}/include/llvm/IR \ 112 1.1 joerg 113 1.1 joerg TABLEGEN_SRC= Attributes.td Intrinsics.td Options.td 114 1.1 joerg 115 1.1 joerg TABLEGEN_OUTPUT.Attributes.td= \ 116 1.1 joerg llvm/IR/Attributes.inc|-gen-attrs 117 1.1 joerg 118 1.1 joerg TABLEGEN_OUTPUT.Intrinsics.td= \ 119 1.1 joerg llvm/IR/IntrinsicEnums.inc|-gen-intrinsic-enums \ 120 1.1 joerg llvm/IR/IntrinsicImpl.inc|-gen-intrinsic-impl 121 1.1 joerg 122 1.1 joerg .if ${MKLLVM} != "no" 123 1.1 joerg .PATH: ${CLANG_SRCDIR}/include/clang/AST \ 124 1.1 joerg ${CLANG_SRCDIR}/include/clang/Basic \ 125 1.1 joerg ${CLANG_SRCDIR}/include/clang/Driver \ 126 1.1 joerg ${CLANG_SRCDIR}/include/clang/StaticAnalyzer/Checkers 127 1.1 joerg CLANG_TABLEGEN_SRC= \ 128 1.1 joerg arm_fp16.td \ 129 1.1 joerg arm_neon.td \ 130 1.1 joerg arm_mve.td \ 131 1.1 joerg Attr.td \ 132 1.1 joerg Checkers.td \ 133 1.1 joerg CommentCommands.td \ 134 1.1 joerg CommentHTMLNamedCharacterReferences.td \ 135 1.1 joerg CommentHTMLTags.td \ 136 1.1 joerg CommentNodes.td \ 137 1.1 joerg DeclNodes.td \ 138 1.1 joerg Diagnostic.td \ 139 1.1 joerg StmtDataCollectors.td \ 140 1.1 joerg StmtNodes.td \ 141 1.1 joerg TypeNodes.td 142 1.1 joerg 143 1.1 joerg CLANG_TABLEGEN_INCLUDES.Attr.td= -I${CLANG_SRCDIR}/include 144 1.1 joerg CLANG_TABLEGEN_OUTPUT.Attr.td= \ 145 1.1 joerg clang/AST/AttrImpl.inc|-gen-clang-attr-impl \ 146 1.1 joerg clang/AST/AttrNodeTraverse.inc|-gen-clang-attr-node-traverse \ 147 1.1 joerg clang/AST/AttrTextNodeDump.inc|-gen-clang-attr-text-node-dump \ 148 1.1 joerg clang/AST/Attrs.inc|-gen-clang-attr-classes \ 149 1.1 joerg clang/AST/AttrVisitor.inc|-gen-clang-attr-ast-visitor \ 150 1.1 joerg clang/Basic/AttrHasAttributeImpl.inc|-gen-clang-attr-has-attribute-impl \ 151 1.1 joerg clang/Basic/AttrList.inc|-gen-clang-attr-list \ 152 1.1 joerg clang/Basic/AttrSubMatchRulesList.inc|-gen-clang-attr-subject-match-rule-list \ 153 1.1 joerg clang/Parse/AttrParserStringSwitches.inc|-gen-clang-attr-parser-string-switches \ 154 1.1 joerg clang/Parse/AttrSubMatchRulesParserStringSwitches.inc|-gen-clang-attr-subject-match-rules-parser-string-switches \ 155 1.1 joerg clang/Sema/AttrParsedAttrImpl.inc|-gen-clang-attr-parsed-attr-impl \ 156 1.1 joerg clang/Sema/AttrParsedAttrKinds.inc|-gen-clang-attr-parsed-attr-kinds \ 157 1.1 joerg clang/Sema/AttrParsedAttrList.inc|-gen-clang-attr-parsed-attr-list \ 158 1.1 joerg clang/Sema/AttrSpellingListIndex.inc|-gen-clang-attr-spelling-index \ 159 1.1 joerg clang/Sema/AttrTemplateInstantiate.inc|-gen-clang-attr-template-instantiate \ 160 1.1 joerg clang/Serialization/AttrPCHRead.inc|-gen-clang-attr-pch-read \ 161 1.1 joerg clang/Serialization/AttrPCHWrite.inc|-gen-clang-attr-pch-write 162 1.1 joerg 163 1.1 joerg CLANG_TABLEGEN_OUTPUT.StmtNodes.td= \ 164 1.1 joerg clang/AST/StmtNodes.inc|-gen-clang-stmt-nodes 165 1.1 joerg 166 1.1 joerg CLANG_TABLEGEN_OUTPUT.StmtDataCollectors.td= \ 167 1.1 joerg clang/AST/StmtDataCollectors.inc|-gen-clang-data-collectors 168 1.1 joerg 169 1.1 joerg CLANG_TABLEGEN_OUTPUT.DeclNodes.td= \ 170 1.1 joerg clang/AST/DeclNodes.inc|-gen-clang-decl-nodes 171 1.1 joerg 172 1.1 joerg CLANG_TABLEGEN_OUTPUT.CommentNodes.td= \ 173 1.1 joerg clang/AST/CommentNodes.inc|-gen-clang-comment-nodes 174 1.1 joerg 175 1.1 joerg CLANG_TABLEGEN_OUTPUT.CommentCommands.td= \ 176 1.1 joerg clang/AST/CommentCommandInfo.inc|-gen-clang-comment-command-info \ 177 1.1 joerg clang/AST/CommentCommandList.inc|-gen-clang-comment-command-list 178 1.1 joerg 179 1.1 joerg CLANG_TABLEGEN_OUTPUT.CommentHTMLTags.td= \ 180 1.1 joerg clang/AST/CommentHTMLTags.inc|-gen-clang-comment-html-tags \ 181 1.1 joerg clang/AST/CommentHTMLTagsProperties.inc|-gen-clang-comment-html-tags-properties 182 1.1 joerg 183 1.1 joerg CLANG_TABLEGEN_OUTPUT.CommentHTMLNamedCharacterReferences.td= \ 184 1.1 joerg clang/AST/CommentHTMLNamedCharacterReferences.inc|-gen-clang-comment-html-named-character-references 185 1.1 joerg 186 1.1 joerg CLANG_TABLEGEN_OUTPUT.TypeNodes.td= \ 187 1.1 joerg clang/AST/TypeNodes.inc|-gen-clang-type-nodes 188 1.1 joerg 189 1.1 joerg CLANG_TABLEGEN_INCLUDES.Diagnostic.td= -I${CLANG_SRCDIR}/include/clang/Basic 190 1.1 joerg CLANG_TABLEGEN_OUTPUT.Diagnostic.td= \ 191 1.1 joerg clang/Basic/DiagnosticAnalysisKinds.inc|-gen-clang-diags-defs^-clang-component=Analysis \ 192 1.1 joerg clang/Basic/DiagnosticASTKinds.inc|-gen-clang-diags-defs^-clang-component=AST \ 193 1.1 joerg clang/Basic/DiagnosticCommentKinds.inc|-gen-clang-diags-defs^-clang-component=Comment \ 194 1.1 joerg clang/Basic/DiagnosticCommonKinds.inc|-gen-clang-diags-defs^-clang-component=Common \ 195 1.1 joerg clang/Basic/DiagnosticCrossTUKinds.inc|-gen-clang-diags-defs^-clang-component=CrossTU \ 196 1.1 joerg clang/Basic/DiagnosticDriverKinds.inc|-gen-clang-diags-defs^-clang-component=Driver \ 197 1.1 joerg clang/Basic/DiagnosticFrontendKinds.inc|-gen-clang-diags-defs^-clang-component=Frontend \ 198 1.1 joerg clang/Basic/DiagnosticGroups.inc|-gen-clang-diag-groups \ 199 1.1 joerg clang/Basic/DiagnosticIndexName.inc|-gen-clang-diags-index-name \ 200 1.1 joerg clang/Basic/DiagnosticLexKinds.inc|-gen-clang-diags-defs^-clang-component=Lex \ 201 1.1 joerg clang/Basic/DiagnosticParseKinds.inc|-gen-clang-diags-defs^-clang-component=Parse \ 202 1.1 joerg clang/Basic/DiagnosticRefactoringKinds.inc|-gen-clang-diags-defs^-clang-component=Refactoring \ 203 1.1 joerg clang/Basic/DiagnosticSemaKinds.inc|-gen-clang-diags-defs^-clang-component=Sema \ 204 1.1 joerg clang/Basic/DiagnosticSerializationKinds.inc|-gen-clang-diags-defs^-clang-component=Serialization 205 1.1 joerg 206 1.1 joerg 207 1.1 joerg CLANG_TABLEGEN_INCLUDES.arm_neon.td= -I${CLANG_SRCDIR}/include/clang/Basic 208 1.1 joerg CLANG_TABLEGEN_OUTPUT.arm_neon.td= \ 209 1.1 joerg clang/Basic/arm_neon.inc|-gen-arm-neon-sema \ 210 1.1 joerg arm_neon.h|-gen-arm-neon 211 1.1 joerg 212 1.1 joerg CLANG_TABLEGEN_INCLUDES.arm_fp16.td= -I${CLANG_SRCDIR}/include/clang/Basic 213 1.1 joerg CLANG_TABLEGEN_OUTPUT.arm_fp16.td= \ 214 1.1 joerg clang/Basic/arm_fp16.inc|-gen-arm-neon-sema 215 1.1 joerg CLANG_TABLEGEN_INCLUDES.arm_mve.td= -I${CLANG_SRCDIR}/include/clang/Basic 216 1.1 joerg CLANG_TABLEGEN_OUTPUT.arm_mve.td= \ 217 1.1 joerg clang/Basic/arm_mve_builtins.inc|-gen-arm-mve-builtin-def \ 218 1.1 joerg clang/Basic/arm_mve_builtin_aliases.inc|-gen-arm-mve-builtin-aliases \ 219 1.1 joerg clang/Basic/arm_mve_builtin_cg.inc|-gen-arm-mve-builtin-codegen \ 220 1.1 joerg clang/Basic/arm_mve_builtin_sema.inc|-gen-arm-mve-builtin-sema \ 221 1.1 joerg 222 1.1 joerg CLANG_TABLEGEN_INCLUDES.Checkers.td= \ 223 1.1 joerg -I${CLANG_SRCDIR}/include \ 224 1.1 joerg -I${CLANG_SRCDIR}/include/clang/StaticAnalyzer/Checkers 225 1.1 joerg CLANG_TABLEGEN_OUTPUT.Checkers.td= \ 226 1.1 joerg clang/StaticAnalyzer/Checkers/Checkers.inc|-gen-clang-sa-checkers 227 1.1 joerg 228 1.1 joerg TABLEGEN_INCLUDES.Options.td= -I${CLANG_SRCDIR}/include/clang/Driver 229 1.1 joerg TABLEGEN_OUTPUT.Options.td= \ 230 1.1 joerg clang/Driver/Options.inc|-gen-opt-parser-defs 231 1.1 joerg .endif # MKLLVM 232 1.1 joerg 233 1.1 joerg .include "${.PARSEDIR}/../tablegen.mk" 234 1.1 joerg 235 1.1 joerg DPSRCS+= llvm/Support/VCSRevision.h 236 1.1 joerg DPSRC+= llvm/Support/VCSRevision.h 237 1.1 joerg 238 1.1 joerg llvm/Support/VCSRevision.h: ${LLVM_TOPLEVEL}/Makefile.inc 239 1.1 joerg mkdir -p ${.TARGET:H} 240 1.1 joerg printf '#define LLVM_REVISION "git-${LLVM_REVISION}"\n' >> ${.TARGET}.tmp 241 1.1 joerg mv ${.TARGET}.tmp ${.TARGET} 242 1.1 joerg 243 1.1 joerg .if ${MKLLVM} != "no" 244 1.1 joerg DPSRCS+= clang/Basic/Version.inc 245 1.1 joerg CLEANFILES+= clang/Basic/Version.inc 246 1.1 joerg 247 1.1 joerg clang/Basic/Version.inc: ${LLVM_TOPLEVEL}/Makefile.inc 248 1.1 joerg mkdir -p ${.TARGET:H} 249 1.1 joerg printf '#define CLANG_VERSION ${CLANG_VERSION}\n' > ${.TARGET}.tmp 250 1.1 joerg printf '#define CLANG_VERSION_STRING "${CLANG_VERSION}"\n' >> ${.TARGET}.tmp 251 1.1 joerg printf '#define CLANG_VERSION_MAJOR ${CLANG_VERSION:R:R}\n' >> ${.TARGET}.tmp 252 1.1 joerg printf '#define CLANG_VERSION_MINOR ${CLANG_VERSION:R:E}\n' >> ${.TARGET}.tmp 253 1.1 joerg printf '#define CLANG_VERSION_PATCHLEVEL ${CLANG_VERSION:R:R}\n' >> ${.TARGET}.tmp 254 1.1 joerg mv ${.TARGET}.tmp ${.TARGET} 255 1.1 joerg .endif # MKLLVM 256 1.1 joerg 257 1.1 joerg .ifndef HOST_BUILD 258 1.1 joerg 259 1.1 joerg DPSRCS+= llvm/Config/config.h llvm/Config/llvm-config.h 260 1.1 joerg CLEANFILES+= llvm/Config/config.h llvm/Config/llvm-config.h 261 1.1 joerg 262 1.1 joerg NATIVE_LIBS= -lm -lexecinfo 263 1.1 joerg 264 1.1 joerg .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 265 1.1 joerg NATIVE_LLVM_ARCH= X86 266 1.1 joerg .endif 267 1.1 joerg 268 1.1 joerg .if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "aarch64eb" 269 1.1 joerg NATIVE_LLVM_ARCH= AArch64 270 1.1 joerg .endif 271 1.1 joerg 272 1.1 joerg .if !empty(MACHINE_ARCH:Mearm*) || !empty(MACHINE_ARCH:Marm*) 273 1.1 joerg NATIVE_LLVM_ARCH= ARM 274 1.1 joerg .endif 275 1.1 joerg 276 1.1 joerg .if !empty(MACHINE_ARCH:Mmips*) 277 1.1 joerg NATIVE_LLVM_ARCH= Mips 278 1.1 joerg .endif 279 1.1 joerg 280 1.1 joerg .if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" 281 1.1 joerg NATIVE_LLVM_ARCH= PowerPC 282 1.1 joerg .endif 283 1.1 joerg 284 1.1 joerg .if ${MACHINE_ARCH} == "sparc" || ${MACHINE_ARCH} == "sparc64" 285 1.1 joerg NATIVE_LLVM_ARCH= Sparc 286 1.1 joerg .endif 287 1.1 joerg 288 1.1 joerg .if defined(NATIVE_LLVM_ARCH) 289 1.1 joerg NATIVE_LLVM_ASMPARSER= LLVMInitialize${NATIVE_LLVM_ARCH}AsmParser 290 1.1 joerg NATIVE_LLVM_ASMPRINTER= LLVMInitialize${NATIVE_LLVM_ARCH}AsmPrinter 291 1.1 joerg NATIVE_LLVM_DISASSEMBLER= LLVMInitialize${NATIVE_LLVM_ARCH}Disassembler 292 1.1 joerg NATIVE_LLVM_TARGET= LLVMInitialize${NATIVE_LLVM_ARCH}Target 293 1.1 joerg NATIVE_LLVM_TARGETINFO= LLVMInitialize${NATIVE_LLVM_ARCH}TargetInfo 294 1.1 joerg NATIVE_LLVM_TARGETMC= LLVMInitialize${NATIVE_LLVM_ARCH}TargetMC 295 1.1 joerg .endif 296 1.1 joerg 297 1.1 joerg llvm/Config/config.h: ${LLVM_TOPLEVEL}/Makefile.inc ${LLVM_TOPLEVEL}/config/llvm/Config/config.h.in 298 1.1 joerg mkdir -p ${.TARGET:H} 299 1.1 joerg ${TOOL_SED} -e /LLVM_DEFAULT_TARGET_TRIPLE/d \ 300 1.1 joerg -e /LLVM_HOST_TRIPLE/d \ 301 1.1 joerg -e /LLVM_NATIVE_/d \ 302 1.1 joerg -e /LLVM_VERSION_/d \ 303 1.1 joerg -e /PACKAGE_VERSION/d -e 'x' \ 304 1.1 joerg < ${LLVM_TOPLEVEL}/config/llvm/Config/config.h.in \ 305 1.1 joerg > ${.TARGET}.tmp 306 1.1 joerg printf '#define LLVM_DEFAULT_TARGET_TRIPLE "${MACHINE_GNU_PLATFORM}"\n' >> ${.TARGET}.tmp 307 1.1 joerg printf '#define LLVM_HOST_TRIPLE "${MACHINE_GNU_PLATFORM}"\n' >> ${.TARGET}.tmp 308 1.1 joerg .if defined(NATIVE_LLVM_ARCH) 309 1.1 joerg printf '#define LLVM_NATIVE_ARCH ${NATIVE_LLVM_ARCH}\n' >> ${.TARGET}.tmp 310 1.1 joerg printf '#define LLVM_NATIVE_ASMPARSER ${NATIVE_LLVM_ASMPARSER}\n' >> ${.TARGET}.tmp 311 1.1 joerg printf '#define LLVM_NATIVE_ASMPRINTER ${NATIVE_LLVM_ASMPRINTER}\n' >> ${.TARGET}.tmp 312 1.1 joerg printf '#define LLVM_NATIVE_DISASSEMBLER ${NATIVE_LLVM_DISASSEMBLER}\n' >> ${.TARGET}.tmp 313 1.1 joerg printf '#define LLVM_NATIVE_TARGET ${NATIVE_LLVM_TARGET}\n' >> ${.TARGET}.tmp 314 1.1 joerg printf '#define LLVM_NATIVE_TARGETINFO ${NATIVE_LLVM_TARGETINFO}\n' >> ${.TARGET}.tmp 315 1.1 joerg printf '#define LLVM_NATIVE_TARGETMC ${NATIVE_LLVM_TARGETMC}\n' >> ${.TARGET}.tmp 316 1.1 joerg .endif 317 1.1 joerg printf '#define PACKAGE_VERSION "${LLVM_VERSION} (trunk ${LLVM_REVISION})"\n' >> ${.TARGET}.tmp 318 1.1 joerg printf '#define LLVM_VERSION_MAJOR ${LLVM_VERSION:R:R}\n' >> ${.TARGET}.tmp 319 1.1 joerg printf '#define LLVM_VERSION_MINOR ${LLVM_VERSION:R:E}\n' >> ${.TARGET}.tmp 320 1.1 joerg printf '#define LLVM_VERSION_PATCH ${LLVM_VERSION:E}\n' >> ${.TARGET}.tmp 321 1.1 joerg printf '#define LLVM_VERSION_STRING "${LLVM_VERSION}"\n' >> ${.TARGET}.tmp 322 1.1 joerg printf '#endif\n' >> ${.TARGET}.tmp 323 1.1 joerg mv ${.TARGET}.tmp ${.TARGET} 324 1.1 joerg 325 1.1 joerg llvm/Config/llvm-config.h: ${LLVM_TOPLEVEL}/Makefile.inc ${LLVM_TOPLEVEL}/config/llvm/Config/llvm-config.h.in 326 1.1 joerg mkdir -p ${.TARGET:H} 327 1.1 joerg ${TOOL_SED} -e /LLVM_DEFAULT_TARGET_TRIPLE/d \ 328 1.1 joerg -e /LLVM_HOST_TRIPLE/d \ 329 1.1 joerg -e /LLVM_NATIVE_/d \ 330 1.1 joerg -e /LLVM_VERSION_/d \ 331 1.1 joerg -e /PACKAGE_VERSION/d -e 'x' \ 332 1.1 joerg < ${LLVM_TOPLEVEL}/config/llvm/Config/llvm-config.h.in \ 333 1.1 joerg > ${.TARGET}.tmp 334 1.1 joerg printf '#define LLVM_DEFAULT_TARGET_TRIPLE "${MACHINE_GNU_PLATFORM}"\n' >> ${.TARGET}.tmp 335 1.1 joerg printf '#define LLVM_HOST_TRIPLE "${MACHINE_GNU_PLATFORM}"\n' >> ${.TARGET}.tmp 336 1.1 joerg .if defined(NATIVE_LLVM_ARCH) 337 1.1 joerg printf '#define LLVM_NATIVE_ARCH ${NATIVE_LLVM_ARCH}\n' >> ${.TARGET}.tmp 338 1.1 joerg printf '#define LLVM_NATIVE_ASMPARSER ${NATIVE_LLVM_ASMPARSER}\n' >> ${.TARGET}.tmp 339 1.1 joerg printf '#define LLVM_NATIVE_ASMPRINTER ${NATIVE_LLVM_ASMPRINTER}\n' >> ${.TARGET}.tmp 340 1.1 joerg printf '#define LLVM_NATIVE_DISASSEMBLER ${NATIVE_LLVM_DISASSEMBLER}\n' >> ${.TARGET}.tmp 341 1.1 joerg printf '#define LLVM_NATIVE_TARGET ${NATIVE_LLVM_TARGET}\n' >> ${.TARGET}.tmp 342 1.1 joerg printf '#define LLVM_NATIVE_TARGETINFO ${NATIVE_LLVM_TARGETINFO}\n' >> ${.TARGET}.tmp 343 1.1 joerg printf '#define LLVM_NATIVE_TARGETMC ${NATIVE_LLVM_TARGETMC}\n' >> ${.TARGET}.tmp 344 1.1 joerg .endif 345 1.1 joerg printf '#define LLVM_VERSION_MAJOR ${LLVM_VERSION:R:R}\n' >> ${.TARGET}.tmp 346 1.1 joerg printf '#define LLVM_VERSION_MINOR ${LLVM_VERSION:R:E}\n' >> ${.TARGET}.tmp 347 1.1 joerg printf '#define LLVM_VERSION_PATCH ${LLVM_VERSION:E}\n' >> ${.TARGET}.tmp 348 1.1 joerg printf '#define LLVM_VERSION_STRING "${LLVM_VERSION}"\n' >> ${.TARGET}.tmp 349 1.1 joerg printf '#endif\n' >> ${.TARGET}.tmp 350 1.1 joerg mv ${.TARGET}.tmp ${.TARGET} 351 1.1 joerg 352 1.1 joerg run-configure: 353 1.1 joerg [ ! -d tmp ] || rm -r tmp 354 1.1 joerg mkdir -p tmp 355 1.1 joerg cd tmp && CONFIG_SITE= ${CONFIG_DIR}/configure ${LLVM_CONFIGURE_ARGS} \ 356 1.1 joerg CC=${CC:Q} CFLAGS=${CFLAGS:N-Werror:Q} CXX=${CXX:Q} CXXFLAGS=${CXXFLAGS:N-Werror:Q} \ 357 1.1 joerg CPPFLAGS=${CPPFLAGS:N-std=c++11:Q} LDFLAGS=${LDFLAGS:Q} LD=${LD:Q} LIBS=${NATIVE_LIBS:Q} \ 358 1.1 joerg BUILD_CC=${CC:Q} BUILD_CXX=${CXX:Q} 359 1.1 joerg cp -r tmp/include/llvm/* ${LLVM_INCLUDE_CONFIG}/llvm/ 360 1.1 joerg mv ${LLVM_INCLUDE_CONFIG}/llvm/Config/llvm-config.h \ 361 1.1 joerg ${LLVM_INCLUDE_CONFIG}/llvm/Config/llvm-config.h.in 362 1.1 joerg cp -r tmp/include/clang/* ${CLANG_INCLUDE_CONFIG}/clang/ 363 1.1 joerg rm -r tmp 364 1.1 joerg mv ${LLVM_INCLUDE_CONFIG}/llvm/Config/config.h \ 365 1.1 joerg ${LLVM_INCLUDE_CONFIG}/llvm/Config/config.h.in 366 1.1 joerg .endif 367 1.1 joerg 368 1.1 joerg includes depend dependall all: ${DPSRCS} 369 1.1 joerg 370 1.1 joerg .include <bsd.prog.mk> 371