]> CyberLeo.Net >> Repos - FreeBSD/releng/9.0.git/blob - lib/clang/clang.build.mk
Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
[FreeBSD/releng/9.0.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:C/amd64/x86_64/}-unknown-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
38 CLANG_TBLGEN?=clang-tblgen
39 TBLINC+=-I ${LLVM_SRCS}/include -I ${LLVM_SRCS}/lib/Target
40
41 Intrinsics.inc.h: ${LLVM_SRCS}/include/llvm/Intrinsics.td
42         ${TBLGEN} -I ${LLVM_SRCS}/lib/VMCore ${TBLINC} -gen-intrinsic \
43             -o ${.TARGET} ${LLVM_SRCS}/include/llvm/Intrinsics.td
44 .for arch in \
45         ARM/ARM Mips/Mips PowerPC/PPC X86/X86
46 . for hdr in \
47         AsmMatcher/-gen-asm-matcher \
48         AsmWriter1/-gen-asm-writer,-asmwriternum=1 \
49         AsmWriter/-gen-asm-writer \
50         CallingConv/-gen-callingconv \
51         CodeEmitter/-gen-emitter \
52         DAGISel/-gen-dag-isel \
53         DisassemblerTables/-gen-disassembler \
54         EDInfo/-gen-enhanced-disassembly-info \
55         FastISel/-gen-fast-isel \
56         InstrInfo/-gen-instr-info \
57         MCCodeEmitter/-gen-emitter,-mc-emitter \
58         MCPseudoLowering/-gen-pseudo-lowering \
59         RegisterInfo/-gen-register-info \
60         SubtargetInfo/-gen-subtarget
61 ${arch:T}Gen${hdr:H:C/$/.inc.h/}: ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td
62         ${TBLGEN} -I ${LLVM_SRCS}/lib/Target/${arch:H} ${TBLINC} \
63             ${hdr:T:C/,/ /g} -o ${.TARGET} \
64             ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td
65 . endfor
66 .endfor
67
68 Attrs.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
69         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/AST ${TBLINC} \
70             -gen-clang-attr-classes -o ${.TARGET} \
71             -I ${CLANG_SRCS}/include ${.ALLSRC}
72
73 AttrImpl.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
74         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/AST ${TBLINC} \
75             -gen-clang-attr-impl -o ${.TARGET} \
76             -I ${CLANG_SRCS}/include ${.ALLSRC}
77
78 AttrLateParsed.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
79         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic ${TBLINC} \
80             -gen-clang-attr-late-parsed-list -o ${.TARGET} \
81             -I ${CLANG_SRCS}/include ${.ALLSRC}
82
83 AttrList.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
84         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic ${TBLINC} \
85             -gen-clang-attr-list -o ${.TARGET} \
86             -I ${CLANG_SRCS}/include ${.ALLSRC}
87
88 AttrPCHRead.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
89         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Serialization \
90             ${TBLINC} -gen-clang-attr-pch-read -o ${.TARGET} \
91             -I ${CLANG_SRCS}/include ${.ALLSRC}
92
93 AttrPCHWrite.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
94         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Serialization \
95             ${TBLINC} -gen-clang-attr-pch-write -o ${.TARGET} \
96             -I ${CLANG_SRCS}/include ${.ALLSRC}
97
98 AttrSpellings.inc.h: ${CLANG_SRCS}/include/clang/Basic/Attr.td
99         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Lex ${TBLINC} \
100             -gen-clang-attr-spelling-list -o ${.TARGET} \
101             -I ${CLANG_SRCS}/include ${.ALLSRC}
102
103 DeclNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/DeclNodes.td
104         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/AST ${TBLINC} \
105             -gen-clang-decl-nodes -o ${.TARGET} ${.ALLSRC}
106
107 StmtNodes.inc.h: ${CLANG_SRCS}/include/clang/Basic/StmtNodes.td
108         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/AST ${TBLINC} \
109             -gen-clang-stmt-nodes -o ${.TARGET} ${.ALLSRC}
110
111 arm_neon.inc.h: ${CLANG_SRCS}/include/clang/Basic/arm_neon.td
112         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic ${TBLINC} \
113             -gen-arm-neon-sema -o ${.TARGET} ${.ALLSRC}
114
115 DiagnosticGroups.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td
116         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic ${TBLINC} \
117             -gen-clang-diag-groups -o ${.TARGET} ${.ALLSRC}
118
119 DiagnosticIndexName.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td
120         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic ${TBLINC} \
121             -gen-clang-diags-index-name -o ${.TARGET} ${.ALLSRC}
122
123 .for hdr in AST Analysis Common Driver Frontend Lex Parse Sema
124 Diagnostic${hdr}Kinds.inc.h: ${CLANG_SRCS}/include/clang/Basic/Diagnostic.td
125         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Basic ${TBLINC} \
126             -gen-clang-diags-defs -clang-component=${hdr} \
127             -o ${.TARGET} ${.ALLSRC}
128 .endfor
129
130 Options.inc.h: ${CLANG_SRCS}/include/clang/Driver/Options.td
131         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Driver ${TBLINC} \
132             -gen-opt-parser-defs -o ${.TARGET} ${.ALLSRC}
133
134 CC1Options.inc.h: ${CLANG_SRCS}/include/clang/Driver/CC1Options.td
135         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Driver ${TBLINC} \
136             -gen-opt-parser-defs -o ${.TARGET} ${.ALLSRC}
137
138 CC1AsOptions.inc.h: ${CLANG_SRCS}/include/clang/Driver/CC1AsOptions.td
139         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/include/clang/Driver ${TBLINC} \
140             -gen-opt-parser-defs -o ${.TARGET} ${.ALLSRC}
141
142 Checkers.inc.h: ${CLANG_SRCS}/lib/StaticAnalyzer/Checkers/Checkers.td \
143             ${CLANG_SRCS}/include/clang/StaticAnalyzer/Checkers/CheckerBase.td
144         ${CLANG_TBLGEN} -I ${CLANG_SRCS}/lib/StaticAnalyzer/Checkers \
145             ${TBLINC} -gen-clang-sa-checkers -o ${.TARGET} \
146             -I ${CLANG_SRCS}/include \
147             ${CLANG_SRCS}/lib/StaticAnalyzer/Checkers/Checkers.td
148
149 SRCS+=          ${TGHDRS:C/$/.inc.h/}
150 DPADD+=         ${TGHDRS:C/$/.inc.h/}
151 CLEANFILES+=    ${TGHDRS:C/$/.inc.h/}