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 FastISel/-gen-fast-isel \ 52 InstrInfo/-gen-instr-desc \ 53 InstrNames/-gen-instr-enums \ 54 RegisterInfo.h/-gen-register-desc-header \ 55 RegisterInfo/-gen-register-desc \ 56 RegisterNames/-gen-register-enums \ 57 Subtarget/-gen-subtarget 58${arch:T}Gen${hdr:H:C/$/.inc.h/}: ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td 59 ${TBLGEN} ${hdr:T:C/,/ /g} \ 60 ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td > ${.TARGET} 61. endfor 62.endfor 63 64Attrs.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 65 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 66 -gen-clang-attr-classes ${.ALLSRC} > ${.TARGET} 67 68AttrList.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td 69 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 70 -gen-clang-attr-list ${.ALLSRC} > ${.TARGET} 71 72DeclNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/DeclNodes.td 73 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 74 -gen-clang-decl-nodes ${.ALLSRC} > ${.TARGET} 75 76StmtNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/StmtNodes.td 77 ${TBLGEN} -I${CLANG_SRCS}/include/clang/AST \ 78 -gen-clang-stmt-nodes ${.ALLSRC} > ${.TARGET} 79 80arm_neon.inc.h: ${CLANG_SRCS}/include/clang/Basic/arm_neon.td 81 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 82 -gen-arm-neon-sema ${.ALLSRC} > ${.TARGET} 83 84DiagnosticGroups.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 85 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 86 -gen-clang-diag-groups \ 87 ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td > ${.TARGET} 88.for hdr in AST Analysis Common Driver Frontend Lex Parse Sema 89Diagnostic${hdr}Kinds.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td 90 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Basic \ 91 -gen-clang-diags-defs -clang-component=${hdr} \ 92 ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td > ${.TARGET} 93.endfor 94Options.inc.h: ${CLANG_SRCS}/include/clang/Driver/Options.td 95 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Driver \ 96 -gen-opt-parser-defs \ 97 ${CLANG_SRCS}/include/clang/Driver/Options.td > ${.TARGET} 98 99CC1Options.inc.h: ${CLANG_SRCS}/include/clang/Driver/CC1Options.td 100 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Driver \ 101 -gen-opt-parser-defs \ 102 ${CLANG_SRCS}/include/clang/Driver/CC1Options.td > ${.TARGET} 103 104CC1AsOptions.inc.h: ${CLANG_SRCS}/include/clang/Driver/CC1AsOptions.td 105 ${TBLGEN} -I${CLANG_SRCS}/include/clang/Driver \ 106 -gen-opt-parser-defs \ 107 ${CLANG_SRCS}/include/clang/Driver/CC1AsOptions.td > ${.TARGET} 108 109SRCS+= ${TGHDRS:C/$/.inc.h/} 110DPADD+= ${TGHDRS:C/$/.inc.h/} 111CLEANFILES+= ${TGHDRS:C/$/.inc.h/} 112