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