]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/clang/clang.build.mk
Merge OpenSSL 0.9.8q into head.
[FreeBSD/FreeBSD.git] / lib / clang / clang.build.mk
1 # $FreeBSD$
2
3 CLANG_SRCS=${LLVM_SRCS}/tools/clang
4
5 CFLAGS+=-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"
13 CFLAGS+= -O1
14 .endif
15
16 TARGET_ARCH?=   ${MACHINE_ARCH}
17 # XXX: 8.0, to keep __FreeBSD_cc_version happy
18 CFLAGS+=-DLLVM_HOSTTRIPLE=\"${TARGET_ARCH}-undermydesk-freebsd9.0\"
19
20 .ifndef LLVM_REQUIRES_EH
21 CXXFLAGS+=-fno-exceptions
22 .else
23 # If the library or program requires EH, it also requires RTTI.
24 LLVM_REQUIRES_RTTI=
25 .endif
26
27 .ifndef LLVM_REQUIRES_RTTI
28 CXXFLAGS+=-fno-rtti
29 .endif
30
31 .ifdef TOOLS_PREFIX
32 CFLAGS+=-DCLANG_PREFIX=\"${TOOLS_PREFIX}\"
33 .endif
34
35 .PATH:  ${LLVM_SRCS}/${SRCDIR}
36
37 TBLGEN=tblgen ${CFLAGS:M-I*}
38
39 Intrinsics.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
66 Attrs.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
70 AttrImpl.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
74 AttrList.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
78 AttrPCHRead.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
82 AttrPCHWrite.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
86 DeclNodes.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
90 StmtNodes.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
94 arm_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
98 DiagnosticGroups.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
103 Diagnostic${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
108 Options.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
113 CC1Options.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
118 CC1AsOptions.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
123 SRCS+=          ${TGHDRS:C/$/.inc.h/}
124 DPADD+=         ${TGHDRS:C/$/.inc.h/}
125 CLEANFILES+=    ${TGHDRS:C/$/.inc.h/}