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.else 27TARGET_ABI= unknown 28.endif 29 30TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/}-${TARGET_ABI}-freebsd9.3 31BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_64/}-unknown-freebsd9.3 32CFLAGS+= -DLLVM_DEFAULT_TARGET_TRIPLE=\"${TARGET_TRIPLE}\" \ 33 -DLLVM_HOST_TRIPLE=\"${BUILD_TRIPLE}\" \ 34 -DDEFAULT_SYSROOT=\"${TOOLS_PREFIX}\" 35CXXFLAGS+= -fno-exceptions -fno-rtti 36 37.PATH: ${LLVM_SRCS}/${SRCDIR} 38 39TBLGEN?= tblgen 40CLANG_TBLGEN?= clang-tblgen 41 42Intrinsics.inc.h: ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td 43 ${TBLGEN} -gen-intrinsic \ 44 -I ${LLVM_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 45 ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td 46.for arch in \ 47 ARM/ARM Mips/Mips PowerPC/PPC Sparc/Sparc X86/X86 48. for hdr in \ 49 AsmMatcher/-gen-asm-matcher \ 50 AsmWriter1/-gen-asm-writer,-asmwriternum=1 \ 51 AsmWriter/-gen-asm-writer \ 52 CallingConv/-gen-callingconv \ 53 CodeEmitter/-gen-emitter \ 54 DAGISel/-gen-dag-isel \ 55 DisassemblerTables/-gen-disassembler \ 56 FastISel/-gen-fast-isel \ 57 InstrInfo/-gen-instr-info \ 58 MCCodeEmitter/-gen-emitter,-mc-emitter \ 59 MCPseudoLowering/-gen-pseudo-lowering \ 60 RegisterInfo/-gen-register-info \ 61 SubtargetInfo/-gen-subtarget 62${arch:T}Gen${hdr:H:C/$/.inc.h/}: ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td 63 ${TBLGEN} ${hdr:T:C/,/ /g} \ 64 -I ${LLVM_SRCS}/include -I ${LLVM_SRCS}/lib/Target/${arch:H} \ 65 -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 66 ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td 67. endfor 68.endfor 69 70Attrs.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 71 ${CLANG_TBLGEN} -gen-clang-attr-classes \ 72 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 73 ${CLANG_SRCS}/include/clang/Basic/Attr.td 74 75AttrDump.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 76 ${CLANG_TBLGEN} -gen-clang-attr-dump \ 77 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 78 ${CLANG_SRCS}/include/clang/Basic/Attr.td 79 80AttrIdentifierArg.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 81 ${CLANG_TBLGEN} -gen-clang-attr-identifier-arg-list \ 82 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 83 ${CLANG_SRCS}/include/clang/Basic/Attr.td 84 85AttrImpl.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 86 ${CLANG_TBLGEN} -gen-clang-attr-impl \ 87 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 88 ${CLANG_SRCS}/include/clang/Basic/Attr.td 89 90AttrLateParsed.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 91 ${CLANG_TBLGEN} -gen-clang-attr-late-parsed-list \ 92 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 93 ${CLANG_SRCS}/include/clang/Basic/Attr.td 94 95AttrList.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 96 ${CLANG_TBLGEN} -gen-clang-attr-list \ 97 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 98 ${CLANG_SRCS}/include/clang/Basic/Attr.td 99 100AttrParsedAttrImpl.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 101 ${CLANG_TBLGEN} -gen-clang-attr-parsed-attr-impl \ 102 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 103 ${CLANG_SRCS}/include/clang/Basic/Attr.td 104 105AttrParsedAttrKinds.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 106 ${CLANG_TBLGEN} -gen-clang-attr-parsed-attr-kinds \ 107 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 108 ${CLANG_SRCS}/include/clang/Basic/Attr.td 109 110AttrParsedAttrList.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 111 ${CLANG_TBLGEN} -gen-clang-attr-parsed-attr-list \ 112 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 113 ${CLANG_SRCS}/include/clang/Basic/Attr.td 114 115AttrPCHRead.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 116 ${CLANG_TBLGEN} -gen-clang-attr-pch-read \ 117 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 118 ${CLANG_SRCS}/include/clang/Basic/Attr.td 119 120AttrPCHWrite.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 121 ${CLANG_TBLGEN} -gen-clang-attr-pch-write \ 122 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 123 ${CLANG_SRCS}/include/clang/Basic/Attr.td 124 125AttrSpellings.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 126 ${CLANG_TBLGEN} -gen-clang-attr-spelling-list \ 127 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 128 ${CLANG_SRCS}/include/clang/Basic/Attr.td 129 130AttrSpellingListIndex.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 131 ${CLANG_TBLGEN} -gen-clang-attr-spelling-index \ 132 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 133 ${CLANG_SRCS}/include/clang/Basic/Attr.td 134 135AttrTemplateInstantiate.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 136 ${CLANG_TBLGEN} -gen-clang-attr-template-instantiate \ 137 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 138 ${CLANG_SRCS}/include/clang/Basic/Attr.td 139 140AttrTypeArg.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 141 ${CLANG_TBLGEN} -gen-clang-attr-type-arg-list \ 142 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 143 ${CLANG_SRCS}/include/clang/Basic/Attr.td 144 145CommentCommandInfo.inc.h: ${CLANG_SRCS}/include/clang/AST/CommentCommands.td 146 ${CLANG_TBLGEN} -gen-clang-comment-command-info \ 147 -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 148 ${CLANG_SRCS}/include/clang/AST/CommentCommands.td 149 150CommentCommandList.inc.h: ${CLANG_SRCS}/include/clang/AST/CommentCommands.td 151 ${CLANG_TBLGEN} -gen-clang-comment-command-list \ 152 -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 153 ${CLANG_SRCS}/include/clang/AST/CommentCommands.td 154 155CommentHTMLNamedCharacterReferences.inc.h: \ 156 ${CLANG_SRCS}/include/clang/AST/CommentHTMLNamedCharacterReferences.td 157 ${CLANG_TBLGEN} -gen-clang-comment-html-named-character-references \ 158 -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 159 ${CLANG_SRCS}/include/clang/AST/CommentHTMLNamedCharacterReferences.td 160 161CommentHTMLTags.inc.h: ${CLANG_SRCS}/include/clang/AST/CommentHTMLTags.td 162 ${CLANG_TBLGEN} -gen-clang-comment-html-tags \ 163 -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 164 ${CLANG_SRCS}/include/clang/AST/CommentHTMLTags.td 165 166CommentHTMLTagsProperties.inc.h: \ 167 ${CLANG_SRCS}/include/clang/AST/CommentHTMLTags.td 168 ${CLANG_TBLGEN} -gen-clang-comment-html-tags-properties \ 169 -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 170 ${CLANG_SRCS}/include/clang/AST/CommentHTMLTags.td 171 172CommentNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/CommentNodes.td 173 ${CLANG_TBLGEN} -gen-clang-comment-nodes \ 174 -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 175 ${CLANG_SRCS}/include/clang/Basic/CommentNodes.td 176 177DeclNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/DeclNodes.td 178 ${CLANG_TBLGEN} -gen-clang-decl-nodes \ 179 -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 180 ${CLANG_SRCS}/include/clang/Basic/DeclNodes.td 181 182StmtNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/StmtNodes.td 183 ${CLANG_TBLGEN} -gen-clang-stmt-nodes \ 184 -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 185 ${CLANG_SRCS}/include/clang/Basic/StmtNodes.td 186 187arm_neon.h: ${CLANG_SRCS}/include/clang/Basic/arm_neon.td 188 ${CLANG_TBLGEN} -gen-arm-neon \ 189 -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 190 ${CLANG_SRCS}/include/clang/Basic/arm_neon.td 191 192arm_neon.inc.h: ${CLANG_SRCS}/include/clang/Basic/arm_neon.td 193 ${CLANG_TBLGEN} -gen-arm-neon-sema \ 194 -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 195 ${CLANG_SRCS}/include/clang/Basic/arm_neon.td 196 197DiagnosticGroups.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 198 ${CLANG_TBLGEN} -gen-clang-diag-groups \ 199 -I ${CLANG_SRCS}/include/clang/Basic -d ${.TARGET:C/\.h$/.d/} \ 200 -o ${.TARGET} ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 201 202DiagnosticIndexName.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 203 ${CLANG_TBLGEN} -gen-clang-diags-index-name \ 204 -I ${CLANG_SRCS}/include/clang/Basic -d ${.TARGET:C/\.h$/.d/} \ 205 -o ${.TARGET} ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 206 207.for hdr in AST Analysis Comment Common Driver Frontend Lex Parse Sema Serialization 208Diagnostic${hdr}Kinds.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 209 ${CLANG_TBLGEN} -gen-clang-diags-defs -clang-component=${hdr} \ 210 -I ${CLANG_SRCS}/include/clang/Basic -d ${.TARGET:C/\.h$/.d/} \ 211 -o ${.TARGET} ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 212.endfor 213 214Options.inc.h: ${CLANG_SRCS}/include/clang/Driver/Options.td 215 ${TBLGEN} -gen-opt-parser-defs \ 216 -I ${LLVM_SRCS}/include -I ${CLANG_SRCS}/include/clang/Driver \ 217 -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 218 ${CLANG_SRCS}/include/clang/Driver/Options.td 219 220CC1AsOptions.inc.h: ${CLANG_SRCS}/include/clang/Driver/CC1AsOptions.td 221 ${TBLGEN} -gen-opt-parser-defs \ 222 -I ${LLVM_SRCS}/include -I ${CLANG_SRCS}/include/clang/Driver \ 223 -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 224 ${CLANG_SRCS}/include/clang/Driver/CC1AsOptions.td 225 226Checkers.inc.h: ${CLANG_SRCS}/lib/StaticAnalyzer/Checkers/Checkers.td 227 ${CLANG_TBLGEN} -gen-clang-sa-checkers \ 228 -I ${CLANG_SRCS}/include -d ${.TARGET:C/\.h$/.d/} -o ${.TARGET} \ 229 ${CLANG_SRCS}/lib/StaticAnalyzer/Checkers/Checkers.td 230 231.for dep in ${TGHDRS:C/$/.inc.d/} 232. sinclude "${dep}" 233.endfor 234 235SRCS+= ${TGHDRS:C/$/.inc.h/} 236DPADD+= ${TGHDRS:C/$/.inc.h/} 237CLEANFILES+= ${TGHDRS:C/$/.inc.h/} ${TGHDRS:C/$/.inc.d/} 238