1# $FreeBSD$ 2 3CLANG_SRCS= ${LLVM_SRCS}/tools/clang 4 5CFLAGS+= -I${LLVM_SRCS}/include -I${CLANG_SRCS}/include \ 6 -I${LLVM_SRCS}/${SRCDIR} ${INCDIR:C/^/-I${LLVM_SRCS}\//} -I. \ 7 -I${LLVM_SRCS}/../../lib/clang/include \ 8 -DLLVM_ON_UNIX -DLLVM_ON_FREEBSD \ 9 -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS #-DNDEBUG 10 11.if !defined(EARLY_BUILD) && defined(MK_CLANG_FULL) && ${MK_CLANG_FULL} != "no" 12CFLAGS+= -DCLANG_ENABLE_ARCMT \ 13 -DCLANG_ENABLE_REWRITER \ 14 -DCLANG_ENABLE_STATIC_ANALYZER 15.endif # !EARLY_BUILD && MK_CLANG_FULL 16 17# LLVM is not strict aliasing safe as of 12/31/2011 18CFLAGS+= -fno-strict-aliasing 19 20TARGET_ARCH?= ${MACHINE_ARCH} 21BUILD_ARCH?= ${MACHINE_ARCH} 22 23.if (${TARGET_ARCH} == "arm" || ${TARGET_ARCH} == "armv6") && \ 24 ${MK_ARM_EABI} != "no" 25TARGET_ABI= gnueabi 26.elif ${TARGET_ARCH} == "armv6hf" 27TARGET_ABI= gnueabihf 28.else 29TARGET_ABI= unknown 30.endif 31 32TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/:C/armv6hf/armv6/}-${TARGET_ABI}-freebsd11.0 33BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_64/:C/armv6hf/armv6/}-unknown-freebsd11.0 34CFLAGS+= -DLLVM_DEFAULT_TARGET_TRIPLE=\"${TARGET_TRIPLE}\" \ 35 -DLLVM_HOST_TRIPLE=\"${BUILD_TRIPLE}\" \ 36 -DDEFAULT_SYSROOT=\"${TOOLS_PREFIX}\" 37CXXFLAGS+= -fno-exceptions -fno-rtti 38 39.PATH: ${LLVM_SRCS}/${SRCDIR} 40 41TBLGEN?= tblgen 42CLANG_TBLGEN?= clang-tblgen 43 44Intrinsics.inc.h: ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td \ 45 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsARM.td \ 46 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsHexagon.td \ 47 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsMips.td \ 48 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsNVVM.td \ 49 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsPowerPC.td \ 50 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsR600.td \ 51 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsX86.td \ 52 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsXCore.td 53 ${TBLGEN} -I ${LLVM_SRCS}/include \ 54 -gen-intrinsic -o ${.TARGET} \ 55 ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td 56.for arch in \ 57 ARM/ARM Mips/Mips PowerPC/PPC Sparc/Sparc X86/X86 58. for hdr in \ 59 AsmMatcher/-gen-asm-matcher \ 60 AsmWriter1/-gen-asm-writer,-asmwriternum=1 \ 61 AsmWriter/-gen-asm-writer \ 62 CallingConv/-gen-callingconv \ 63 CodeEmitter/-gen-emitter \ 64 DAGISel/-gen-dag-isel \ 65 DisassemblerTables/-gen-disassembler \ 66 FastISel/-gen-fast-isel \ 67 InstrInfo/-gen-instr-info \ 68 MCCodeEmitter/-gen-emitter,-mc-emitter \ 69 MCPseudoLowering/-gen-pseudo-lowering \ 70 RegisterInfo/-gen-register-info \ 71 SubtargetInfo/-gen-subtarget 72${arch:T}Gen${hdr:H:C/$/.inc.h/}: ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td 73 ${TBLGEN} -I ${LLVM_SRCS}/include -I ${LLVM_SRCS}/lib/Target/${arch:H} \ 74 ${hdr:T:C/,/ /g} -o ${.TARGET} \ 75 ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td 76. endfor 77.endfor 78 79Attrs.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 80 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 81 -gen-clang-attr-classes -o ${.TARGET} ${.ALLSRC} 82 83AttrDump.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 84 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 85 -gen-clang-attr-dump -o ${.TARGET} ${.ALLSRC} 86 87AttrIdentifierArg.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 88 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 89 -gen-clang-attr-identifier-arg-list -o ${.TARGET} ${.ALLSRC} 90 91AttrImpl.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 92 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 93 -gen-clang-attr-impl -o ${.TARGET} ${.ALLSRC} 94 95AttrLateParsed.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 96 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 97 -gen-clang-attr-late-parsed-list -o ${.TARGET} ${.ALLSRC} 98 99AttrList.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 100 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 101 -gen-clang-attr-list -o ${.TARGET} ${.ALLSRC} 102 103AttrParsedAttrImpl.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 104 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 105 -gen-clang-attr-parsed-attr-impl -o ${.TARGET} ${.ALLSRC} 106 107AttrParsedAttrKinds.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 108 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 109 -gen-clang-attr-parsed-attr-kinds -o ${.TARGET} ${.ALLSRC} 110 111AttrParsedAttrList.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 112 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 113 -gen-clang-attr-parsed-attr-list -o ${.TARGET} ${.ALLSRC} 114 115AttrPCHRead.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 116 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 117 -gen-clang-attr-pch-read -o ${.TARGET} ${.ALLSRC} 118 119AttrPCHWrite.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 120 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 121 -gen-clang-attr-pch-write -o ${.TARGET} ${.ALLSRC} 122 123AttrSpellings.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 124 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 125 -gen-clang-attr-spelling-list -o ${.TARGET} ${.ALLSRC} 126 127AttrSpellingListIndex.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 128 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 129 -gen-clang-attr-spelling-index -o ${.TARGET} ${.ALLSRC} 130 131AttrTemplateInstantiate.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 132 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 133 -gen-clang-attr-template-instantiate -o ${.TARGET} ${.ALLSRC} 134 135AttrTypeArg.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 136 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 137 -gen-clang-attr-type-arg-list -o ${.TARGET} ${.ALLSRC} 138 139CommentCommandInfo.inc.h: ${CLANG_SRCS}/include/clang/AST/CommentCommands.td 140 ${CLANG_TBLGEN} \ 141 -gen-clang-comment-command-info -o ${.TARGET} ${.ALLSRC} 142 143CommentCommandList.inc.h: ${CLANG_SRCS}/include/clang/AST/CommentCommands.td 144 ${CLANG_TBLGEN} \ 145 -gen-clang-comment-command-list -o ${.TARGET} ${.ALLSRC} 146 147CommentHTMLNamedCharacterReferences.inc.h: \ 148 ${CLANG_SRCS}/include/clang/AST/CommentHTMLNamedCharacterReferences.td 149 ${CLANG_TBLGEN} \ 150 -gen-clang-comment-html-named-character-references -o ${.TARGET} \ 151 ${.ALLSRC} 152 153CommentHTMLTags.inc.h: ${CLANG_SRCS}/include/clang/AST/CommentHTMLTags.td 154 ${CLANG_TBLGEN} \ 155 -gen-clang-comment-html-tags -o ${.TARGET} ${.ALLSRC} 156 157CommentHTMLTagsProperties.inc.h: \ 158 ${CLANG_SRCS}/include/clang/AST/CommentHTMLTags.td 159 ${CLANG_TBLGEN} \ 160 -gen-clang-comment-html-tags-properties -o ${.TARGET} ${.ALLSRC} 161 162CommentNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/CommentNodes.td 163 ${CLANG_TBLGEN} \ 164 -gen-clang-comment-nodes -o ${.TARGET} ${.ALLSRC} 165 166DeclNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/DeclNodes.td 167 ${CLANG_TBLGEN} \ 168 -gen-clang-decl-nodes -o ${.TARGET} ${.ALLSRC} 169 170StmtNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/StmtNodes.td 171 ${CLANG_TBLGEN} \ 172 -gen-clang-stmt-nodes -o ${.TARGET} ${.ALLSRC} 173 174arm_neon.h: ${CLANG_SRCS}/include/clang/Basic/arm_neon.td 175 ${CLANG_TBLGEN} \ 176 -gen-arm-neon -o ${.TARGET} ${.ALLSRC} 177 178arm_neon.inc.h: ${CLANG_SRCS}/include/clang/Basic/arm_neon.td 179 ${CLANG_TBLGEN} \ 180 -gen-arm-neon-sema -o ${.TARGET} ${.ALLSRC} 181 182DiagnosticGroups.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 183 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic \ 184 -gen-clang-diag-groups -o ${.TARGET} ${.ALLSRC} 185 186DiagnosticIndexName.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 187 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic \ 188 -gen-clang-diags-index-name -o ${.TARGET} ${.ALLSRC} 189 190.for hdr in AST Analysis Comment Common Driver Frontend Lex Parse Sema Serialization 191Diagnostic${hdr}Kinds.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 192 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic \ 193 -gen-clang-diags-defs -clang-component=${hdr} -o ${.TARGET} \ 194 ${.ALLSRC} 195.endfor 196 197Options.inc.h: ${CLANG_SRCS}/include/clang/Driver/Options.td 198 ${TBLGEN} -I ${LLVM_SRCS}/include -I ${CLANG_SRCS}/include/clang/Driver \ 199 -gen-opt-parser-defs -o ${.TARGET} ${.ALLSRC} 200 201CC1AsOptions.inc.h: ${CLANG_SRCS}/include/clang/Driver/CC1AsOptions.td 202 ${TBLGEN} -I ${LLVM_SRCS}/include -I ${CLANG_SRCS}/include/clang/Driver \ 203 -gen-opt-parser-defs -o ${.TARGET} ${.ALLSRC} 204 205Checkers.inc.h: ${CLANG_SRCS}/lib/StaticAnalyzer/Checkers/Checkers.td \ 206 ${CLANG_SRCS}/include/clang/StaticAnalyzer/Checkers/CheckerBase.td 207 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 208 -gen-clang-sa-checkers -o ${.TARGET} \ 209 ${CLANG_SRCS}/lib/StaticAnalyzer/Checkers/Checkers.td 210 211SRCS+= ${TGHDRS:C/$/.inc.h/} 212DPADD+= ${TGHDRS:C/$/.inc.h/} 213CLEANFILES+= ${TGHDRS:C/$/.inc.h/} 214