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 41.if ${MK_STAGING} == "yes" 42TBLGEN= ${STAGE_HOST_OBJTOP}/usr/bin/tblgen 43CLANG_TBLGEN= ${STAGE_HOST_OBJTOP}/usr/bin/clang-tblgen 44.endif 45TBLGEN?= tblgen 46CLANG_TBLGEN?= clang-tblgen 47 48Intrinsics.inc.h: ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td \ 49 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsARM.td \ 50 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsHexagon.td \ 51 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsMips.td \ 52 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsNVVM.td \ 53 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsPowerPC.td \ 54 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsR600.td \ 55 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsX86.td \ 56 ${LLVM_SRCS}/include/llvm/IR/IntrinsicsXCore.td 57 ${TBLGEN} -I ${LLVM_SRCS}/include \ 58 -gen-intrinsic -o ${.TARGET} \ 59 ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td 60.for arch in \ 61 ARM/ARM Mips/Mips PowerPC/PPC Sparc/Sparc X86/X86 62. for hdr in \ 63 AsmMatcher/-gen-asm-matcher \ 64 AsmWriter1/-gen-asm-writer,-asmwriternum=1 \ 65 AsmWriter/-gen-asm-writer \ 66 CallingConv/-gen-callingconv \ 67 CodeEmitter/-gen-emitter \ 68 DAGISel/-gen-dag-isel \ 69 DisassemblerTables/-gen-disassembler \ 70 FastISel/-gen-fast-isel \ 71 InstrInfo/-gen-instr-info \ 72 MCCodeEmitter/-gen-emitter,-mc-emitter \ 73 MCPseudoLowering/-gen-pseudo-lowering \ 74 RegisterInfo/-gen-register-info \ 75 SubtargetInfo/-gen-subtarget 76${arch:T}Gen${hdr:H:C/$/.inc.h/}: ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td 77 ${TBLGEN} -I ${LLVM_SRCS}/include -I ${LLVM_SRCS}/lib/Target/${arch:H} \ 78 ${hdr:T:C/,/ /g} -o ${.TARGET} \ 79 ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td 80. endfor 81.endfor 82 83Attrs.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 84 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 85 -gen-clang-attr-classes -o ${.TARGET} ${.ALLSRC} 86 87AttrDump.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 88 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 89 -gen-clang-attr-dump -o ${.TARGET} ${.ALLSRC} 90 91AttrIdentifierArg.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 92 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 93 -gen-clang-attr-identifier-arg-list -o ${.TARGET} ${.ALLSRC} 94 95AttrImpl.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 96 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 97 -gen-clang-attr-impl -o ${.TARGET} ${.ALLSRC} 98 99AttrLateParsed.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 100 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 101 -gen-clang-attr-late-parsed-list -o ${.TARGET} ${.ALLSRC} 102 103AttrList.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 104 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 105 -gen-clang-attr-list -o ${.TARGET} ${.ALLSRC} 106 107AttrParsedAttrImpl.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 108 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 109 -gen-clang-attr-parsed-attr-impl -o ${.TARGET} ${.ALLSRC} 110 111AttrParsedAttrKinds.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 112 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 113 -gen-clang-attr-parsed-attr-kinds -o ${.TARGET} ${.ALLSRC} 114 115AttrParsedAttrList.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 116 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 117 -gen-clang-attr-parsed-attr-list -o ${.TARGET} ${.ALLSRC} 118 119AttrPCHRead.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 120 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 121 -gen-clang-attr-pch-read -o ${.TARGET} ${.ALLSRC} 122 123AttrPCHWrite.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 124 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 125 -gen-clang-attr-pch-write -o ${.TARGET} ${.ALLSRC} 126 127AttrSpellings.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 128 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 129 -gen-clang-attr-spelling-list -o ${.TARGET} ${.ALLSRC} 130 131AttrSpellingListIndex.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 132 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 133 -gen-clang-attr-spelling-index -o ${.TARGET} ${.ALLSRC} 134 135AttrTemplateInstantiate.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 136 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 137 -gen-clang-attr-template-instantiate -o ${.TARGET} ${.ALLSRC} 138 139AttrTypeArg.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 140 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 141 -gen-clang-attr-type-arg-list -o ${.TARGET} ${.ALLSRC} 142 143CommentCommandInfo.inc.h: ${CLANG_SRCS}/include/clang/AST/CommentCommands.td 144 ${CLANG_TBLGEN} \ 145 -gen-clang-comment-command-info -o ${.TARGET} ${.ALLSRC} 146 147CommentCommandList.inc.h: ${CLANG_SRCS}/include/clang/AST/CommentCommands.td 148 ${CLANG_TBLGEN} \ 149 -gen-clang-comment-command-list -o ${.TARGET} ${.ALLSRC} 150 151CommentHTMLNamedCharacterReferences.inc.h: \ 152 ${CLANG_SRCS}/include/clang/AST/CommentHTMLNamedCharacterReferences.td 153 ${CLANG_TBLGEN} \ 154 -gen-clang-comment-html-named-character-references -o ${.TARGET} \ 155 ${.ALLSRC} 156 157CommentHTMLTags.inc.h: ${CLANG_SRCS}/include/clang/AST/CommentHTMLTags.td 158 ${CLANG_TBLGEN} \ 159 -gen-clang-comment-html-tags -o ${.TARGET} ${.ALLSRC} 160 161CommentHTMLTagsProperties.inc.h: \ 162 ${CLANG_SRCS}/include/clang/AST/CommentHTMLTags.td 163 ${CLANG_TBLGEN} \ 164 -gen-clang-comment-html-tags-properties -o ${.TARGET} ${.ALLSRC} 165 166CommentNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/CommentNodes.td 167 ${CLANG_TBLGEN} \ 168 -gen-clang-comment-nodes -o ${.TARGET} ${.ALLSRC} 169 170DeclNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/DeclNodes.td 171 ${CLANG_TBLGEN} \ 172 -gen-clang-decl-nodes -o ${.TARGET} ${.ALLSRC} 173 174StmtNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/StmtNodes.td 175 ${CLANG_TBLGEN} \ 176 -gen-clang-stmt-nodes -o ${.TARGET} ${.ALLSRC} 177 178arm_neon.h: ${CLANG_SRCS}/include/clang/Basic/arm_neon.td 179 ${CLANG_TBLGEN} \ 180 -gen-arm-neon -o ${.TARGET} ${.ALLSRC} 181 182arm_neon.inc.h: ${CLANG_SRCS}/include/clang/Basic/arm_neon.td 183 ${CLANG_TBLGEN} \ 184 -gen-arm-neon-sema -o ${.TARGET} ${.ALLSRC} 185 186DiagnosticGroups.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 187 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic \ 188 -gen-clang-diag-groups -o ${.TARGET} ${.ALLSRC} 189 190DiagnosticIndexName.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 191 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic \ 192 -gen-clang-diags-index-name -o ${.TARGET} ${.ALLSRC} 193 194.for hdr in AST Analysis Comment Common Driver Frontend Lex Parse Sema Serialization 195Diagnostic${hdr}Kinds.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 196 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic \ 197 -gen-clang-diags-defs -clang-component=${hdr} -o ${.TARGET} \ 198 ${.ALLSRC} 199.endfor 200 201Options.inc.h: ${CLANG_SRCS}/include/clang/Driver/Options.td 202 ${TBLGEN} -I ${LLVM_SRCS}/include -I ${CLANG_SRCS}/include/clang/Driver \ 203 -gen-opt-parser-defs -o ${.TARGET} ${.ALLSRC} 204 205CC1AsOptions.inc.h: ${CLANG_SRCS}/include/clang/Driver/CC1AsOptions.td 206 ${TBLGEN} -I ${LLVM_SRCS}/include -I ${CLANG_SRCS}/include/clang/Driver \ 207 -gen-opt-parser-defs -o ${.TARGET} ${.ALLSRC} 208 209Checkers.inc.h: ${CLANG_SRCS}/lib/StaticAnalyzer/Checkers/Checkers.td \ 210 ${CLANG_SRCS}/include/clang/StaticAnalyzer/Checkers/CheckerBase.td 211 ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include \ 212 -gen-clang-sa-checkers -o ${.TARGET} \ 213 ${CLANG_SRCS}/lib/StaticAnalyzer/Checkers/Checkers.td 214 215SRCS+= ${TGHDRS:C/$/.inc.h/} 216DPADD+= ${TGHDRS:C/$/.inc.h/} 217CLEANFILES+= ${TGHDRS:C/$/.inc.h/} 218 219# if we are not doing explicit 'make depend', there is 220# nothing to cause these to be generated. 221beforebuild: ${SRCS:M*.inc.h} 222