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# Correct for gcc miscompilation when compiling on PPC with -O2 12.if ${MACHINE_ARCH} == "powerpc" 13CFLAGS+= -O1 14.endif 15 16TARGET_ARCH?= ${MACHINE_ARCH} 17# XXX: 8.0, to keep __FreeBSD_cc_version happy 18CFLAGS+=-DLLVM_HOSTTRIPLE=\"${TARGET_ARCH}-undermydesk-freebsd9.0\" 19 20.ifndef LLVM_REQUIRES_EH 21CFLAGS+=-fno-exceptions 22.else 23# If the library or program requires EH, it also requires RTTI. 24LLVM_REQUIRES_RTTI= 25.endif 26 27.ifndef LLVM_REQUIRES_RTTI 28CFLAGS+=-fno-rtti 29.endif 30 31.ifdef TOOLS_PREFIX 32CFLAGS+=-DCLANG_PREFIX=\"${TOOLS_PREFIX}\" 33.endif 34 35.PATH: ${LLVM_SRCS}/${SRCDIR} 36 37TBLGEN=tblgen ${CFLAGS:M-I*} 38 39Intrinsics.inc.h: ${LLVM_SRCS}/include/llvm/Intrinsics.td 40 ${TBLGEN} -gen-intrinsic \ 41 ${LLVM_SRCS}/include/llvm/Intrinsics.td > ${.TARGET} 42.for arch in \ 43 ARM/ARM Mips/Mips PowerPC/PPC X86/X86 44. for hdr in \ 45 AsmMatcher/-gen-asm-matcher \ 46 AsmWriter1/-gen-asm-writer,-asmwriternum=1 \ 47 AsmWriter/-gen-asm-writer \ 48 CallingConv/-gen-callingconv \ 49 CodeEmitter/-gen-emitter \ 50 DAGISel/-gen-dag-isel \ 51 DisassemblerTables/-gen-disassembler \ 52 EDInfo/-gen-enhanced-disassembly-info \ 53 FastISel/-gen-fast-isel \ 54 InstrInfo/-gen-instr-desc \ 55 InstrNames/-gen-instr-enums \ 56 RegisterInfo.h/-gen-register-desc-header \ 57 RegisterInfo/-gen-register-desc \ 58 RegisterNames/-gen-register-enums \ 59 Subtarget/-gen-subtarget 60${arch:T}Gen${hdr:H:C/$/.inc.h/}: ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td 61 ${TBLGEN} ${hdr:T:C/,/ /g} \ 62 ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td > ${.TARGET} 63. endfor 64.endfor 65 66Attrs.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 67 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 68 -gen-clang-attr-classes ${.ALLSRC} > ${.TARGET} 69 70AttrImpl.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 71 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 72 -gen-clang-attr-impl ${.ALLSRC} > ${.TARGET} 73 74AttrList.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 75 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 76 -gen-clang-attr-list ${.ALLSRC} > ${.TARGET} 77 78AttrPCHRead.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 79 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 80 -gen-clang-attr-pch-read ${.ALLSRC} > ${.TARGET} 81 82AttrPCHWrite.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 83 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 84 -gen-clang-attr-pch-write ${.ALLSRC} > ${.TARGET} 85 86DeclNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/DeclNodes.td 87 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 88 -gen-clang-decl-nodes ${.ALLSRC} > ${.TARGET} 89 90StmtNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/StmtNodes.td 91 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 92 -gen-clang-stmt-nodes ${.ALLSRC} > ${.TARGET} 93 94arm_neon.inc.h: ${CLANG_SRCS}/include/clang/Basic/arm_neon.td 95 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 96 -gen-arm-neon-sema ${.ALLSRC} > ${.TARGET} 97 98DiagnosticGroups.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 99 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 100 -gen-clang-diag-groups \ 101 ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td > ${.TARGET} 102.for hdr in AST Analysis Common Driver Frontend Lex Parse Sema 103Diagnostic${hdr}Kinds.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 104 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 105 -gen-clang-diags-defs -clang-component=${hdr} \ 106 ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td > ${.TARGET} 107.endfor 108Options.inc.h: ${CLANG_SRCS}/include/clang/Driver/Options.td 109 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Driver \ 110 -gen-opt-parser-defs \ 111 ${CLANG_SRCS}/include/clang/Driver/Options.td > ${.TARGET} 112 113CC1Options.inc.h: ${CLANG_SRCS}/include/clang/Driver/CC1Options.td 114 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Driver \ 115 -gen-opt-parser-defs \ 116 ${CLANG_SRCS}/include/clang/Driver/CC1Options.td > ${.TARGET} 117 118CC1AsOptions.inc.h: ${CLANG_SRCS}/include/clang/Driver/CC1AsOptions.td 119 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Driver \ 120 -gen-opt-parser-defs \ 121 ${CLANG_SRCS}/include/clang/Driver/CC1AsOptions.td > ${.TARGET} 122 123SRCS+= ${TGHDRS:C/$/.inc.h/} 124DPADD+= ${TGHDRS:C/$/.inc.h/} 125CLEANFILES+= ${TGHDRS:C/$/.inc.h/} 126