gcc50: Mark as deprecated.
[dragonfly.git] / llvm_clang / block3 / Makefile
1 # This creates inc files generated by llvm-tblgen program
2 #
3 # Target intentionally left off: BPF, Hexagon, MSP430, NVPTX, Sparc, Xcore
4
5 TOP_LLVM=       ${.CURDIR}/../../contrib/llvm
6
7 .PATH:          ${TOP_LLVM}/include/llvm/IR
8 .PATH:          ${TOP_LLVM}/lib/IR
9 .PATH:          ${TOP_LLVM}/lib/Target/AArch64
10 .PATH:          ${TOP_LLVM}/lib/Target/AMDGPU
11 .PATH:          ${TOP_LLVM}/lib/Target/ARM
12 .PATH:          ${TOP_LLVM}/lib/Target/PowerPC
13 .PATH:          ${TOP_LLVM}/lib/Target/Mips
14 .PATH:          ${TOP_LLVM}/lib/Target/X86
15
16 CLEANDIRS=      lib llvm clang
17
18 TGTS=   AArch64 AMDGPU ARM PowerPC Mips X86
19 TINX=   GenAsmMatcher/-gen-asm-matcher \
20         GenAsmWriter/-gen-asm-writer \
21         GenCallingConv/-gen-callingconv \
22         GenDAGISel/-gen-dag-isel \
23         GenDisassemblerTables/-gen-disassembler \
24         GenFastISel/-gen-fast-isel \
25         GenInstrInfo/-gen-instr-info \
26         GenMCCodeEmitter/-gen-emitter \
27         GenRegisterInfo/-gen-register-info \
28         GenSubtargetInfo/-gen-subtarget
29 TINX_AArch64=   \
30         ${TINX} \
31         GenAsmWriter1/-gen-asm-writer,-asmwriternum=1 \
32         GenMCPseudoLowering/-gen-pseudo-lowering
33 TINX_AMDGPU=    \
34         ${TINX:NGenFastISel*:NGenDisassembler*} \
35         GenDFAPacketizer/-gen-dfa-packetizer \
36         GenIntrinsics/-gen-tgt-intrinsic
37 TINX_ARM=       \
38         ${TINX} \
39         GenMCPseudoLowering/-gen-pseudo-lowering
40 TINX_PowerPC=   \
41         ${TINX}
42 TINX_Mips=      \
43         ${TINX} \
44         GenMCPseudoLowering/-gen-pseudo-lowering
45 TINX_X86=       \
46         ${TINX:NGenMCCodeEmitter*} \
47         GenAsmWriter1/-gen-asm-writer,-asmwriternum=1
48
49 SING1=  clang/Driver/Options.inc \
50         llvm/IR/Attributes.inc \
51         llvm/IR/Intrinsics.gen \
52         lib/IR/AttributesCompatFunc.inc
53
54 .for T in ${TGTS}
55 .  for FX in ${TINX_${T}:H}
56 beforedepend:   lib/Target/${T}/${T:S/PowerPC/PPC/}${FX}.inc
57 all:            lib/Target/${T}/${T:S/PowerPC/PPC/}${FX}.inc
58 .  endfor
59 .endfor
60 beforedepend:   ${SING1}
61 all:            ${SING1}
62         @echo LLVM block3 complete
63
64 TGEN=   ${.OBJDIR}/../block2/llvm-tblgen/llvm-tblgen
65 TGINCS= -I${TOP_LLVM}/include/llvm/IR \
66         -I${TOP_LLVM}/include \
67         -I${TOP_LLVM}/lib/Target
68 TXINCS= -I${TOP_LLVM}/include \
69         -I${TOP_LLVM}/lib/Target
70
71 clang/Driver/Options.inc: Options.td ${TGEN}
72         mkdir -p ${.TARGET:H}
73         ${TGEN} -gen-opt-parser-defs ${CIOPT} ${.ALLSRC:M*.td} -o ${.TARGET}
74
75 llvm/IR/Attributes.inc: Attributes.td ${TGEN}
76         mkdir -p ${.TARGET:H}
77         ${TGEN} -gen-attrs ${TGINCS} ${.ALLSRC:M*.td} -o ${.TARGET}
78
79 llvm/IR/Intrinsics.gen: Intrinsics.td ${TGEN}
80         mkdir -p ${.TARGET:H}
81         ${TGEN} -gen-intrinsic ${TGINCS} ${.ALLSRC:M*.td} -o ${.TARGET}
82
83 lib/IR/AttributesCompatFunc.inc: AttributesCompatFunc.td ${TGEN}
84         mkdir -p ${.TARGET:H}
85         ${TGEN} -gen-attrs ${TGINCS} ${.ALLSRC:M*.td} -o ${.TARGET}
86
87
88 .for T in ${TGTS}
89 .  for FX in ${TINX_${T}}
90 lib/Target/${T}/${T:S/PowerPC/PPC/}${FX:H}.inc: ${T:S/PowerPC/PPC/}.td ${TGEN}
91         mkdir -p lib/Target/${T}
92         ${TGEN} ${FX:T:S|,| |} ${TXINCS} -I${TOP_LLVM}/lib/Target/${T} \
93                 ${.ALLSRC:M*.td} -o ${.TARGET}
94 .  endfor
95 .endfor
96
97 # CLANG Generations
98
99 .PATH:  ${TOP_LLVM}/tools/clang/include/clang/AST
100 .PATH:  ${TOP_LLVM}/tools/clang/include/clang/Basic
101 .PATH:  ${TOP_LLVM}/tools/clang/include/clang/Driver
102
103 CGEN=   ${.OBJDIR}/../block2/clang-tblgen/clang-tblgen
104 CXINCS= -I${TOP_LLVM}/tools/clang/include \
105         -I${TOP_LLVM}/lib/Target
106 CID1=   ${CXINCS} -I${TOP_LLVM}/tools/clang/include/clang/AST
107 CID2=   ${CXINCS} -I${TOP_LLVM}/tools/clang/include/clang/Sema
108 CID3=   ${CXINCS} -I${TOP_LLVM}/tools/clang/include/clang/Basic
109 CID4=   ${CXINCS} -I${TOP_LLVM}/tools/clang/include/clang/Serialization
110 CID5=   ${CXINCS} -I${TOP_LLVM}/tools/clang/include/clang/Parse
111 CIOPT=  ${CXINCS} -I${TOP_LLVM}/tools/clang/include/clang/Driver -I${TOP_LLVM}/include
112 CXAST=  -I${TOP_LLVM}/tools/clang/lib/Headers \
113         -I${TOP_LLVM}/lib/Target \
114         -I${TOP_LLVM}/include
115 CLX1=   Attrs/-gen-clang-attr-classes/Attr.td \
116         AttrImpl/-gen-clang-attr-impl/Attr.td \
117         AttrDump/-gen-clang-attr-dump/Attr.td \
118         AttrVisitor/-gen-clang-attr-ast-visitor/Attr.td \
119         StmtNodes/-gen-clang-stmt-nodes/StmtNodes.td \
120         DeclNodes/-gen-clang-decl-nodes/DeclNodes.td \
121         CommentNodes/-gen-clang-comment-nodes/CommentNodes.td \
122         CommentHTMLTags/-gen-clang-comment-html-tags/CommentHTMLTags.td \
123         CommentHTMLTagsProperties/-gen-clang-comment-html-tags-properties/CommentHTMLTags.td \
124         CommentHTMLNamedCharacterReferences/-gen-clang-comment-html-named-character-references/CommentHTMLNamedCharacterReferences.td \
125         CommentCommandInfo/-gen-clang-comment-command-info/CommentCommands.td \
126         CommentCommandList/-gen-clang-comment-command-list/CommentCommands.td
127 CLX2=   AttrTemplateInstantiate/-gen-clang-attr-template-instantiate/Attr.td \
128         AttrParsedAttrList/-gen-clang-attr-parsed-attr-list/Attr.td \
129         AttrParsedAttrKinds/-gen-clang-attr-parsed-attr-kinds/Attr.td \
130         AttrSpellingListIndex/-gen-clang-attr-spelling-index/Attr.td \
131         AttrParsedAttrImpl/-gen-clang-attr-parsed-attr-impl/Attr.td
132 CLX3=   DiagnosticAnalysisKinds/-gen-clang-diags-defs,-clang-component=Analysis/Diagnostic.td \
133         DiagnosticASTKinds/-gen-clang-diags-defs,-clang-component=AST/Diagnostic.td \
134         DiagnosticCommentKinds/-gen-clang-diags-defs,-clang-component=Comment/Diagnostic.td \
135         DiagnosticCommonKinds/-gen-clang-diags-defs,-clang-component=Common/Diagnostic.td \
136         DiagnosticDriverKinds/-gen-clang-diags-defs,-clang-component=Driver/Diagnostic.td \
137         DiagnosticFrontendKinds/-gen-clang-diags-defs,-clang-component=Frontend/Diagnostic.td \
138         DiagnosticLexKinds/-gen-clang-diags-defs,-clang-component=Lex/Diagnostic.td \
139         DiagnosticParseKinds/-gen-clang-diags-defs,-clang-component=Parse/Diagnostic.td \
140         DiagnosticSemaKinds/-gen-clang-diags-defs,-clang-component=Sema/Diagnostic.td \
141         DiagnosticSerializationKinds/-gen-clang-diags-defs,-clang-component=Serialization/Diagnostic.td \
142         DiagnosticGroups/-gen-clang-diag-groups/Diagnostic.td \
143         DiagnosticIndexName/-gen-clang-diags-index-name/Diagnostic.td \
144         AttrList/-gen-clang-attr-list/Attr.td \
145         AttrHasAttributeImpl/-gen-clang-attr-has-attribute-impl/Attr.td \
146         arm_neon/-gen-arm-neon-sema/arm_neon.td
147 CLX4=   AttrPCHRead/-gen-clang-attr-pch-read/Attr.td \
148         AttrPCHWrite/-gen-clang-attr-pch-write/Attr.td
149 CLX5=   AttrParserStringSwitches/-gen-clang-attr-parser-string-switches/Attr.td
150
151 SING2=  clang/Basic/Version.inc \
152         clang/Config/config.h \
153         clang/Headers/arm_neon.h
154
155 .for ZZ in 1/AST 2/Sema 3/Basic 4/Serialization 5/Parse
156 .  for FX in ${CLX${ZZ:H}:H:H}
157 beforedepend:   clang/${ZZ:T}/${FX}.inc
158 all:            clang/${ZZ:T}/${FX}.inc
159 .  endfor
160 .  for FX in ${CLX${ZZ:H}}
161 clang/${ZZ:T}/${FX:H:H}.inc: ${FX:T} ${CGEN}
162         mkdir -p ${.TARGET:H}
163         ${CGEN} ${FX:H:T:S|,| |} ${CID${ZZ:H}} ${.ALLSRC:M*.td} -o ${.TARGET}
164 .  endfor
165 .endfor
166
167 beforedepend:   ${SING2}
168 all:            ${SING2}
169
170 clang/Basic/Version.inc: ${.CURDIR}/../block1/configuration/Version.inc
171         mkdir -p ${.TARGET:H}
172         cp ${.ALLSRC} ${.TARGET}
173
174 clang/Config/config.h: ${.CURDIR}/../block1/configuration/config.h.clang
175         mkdir -p ${.TARGET:H}
176         cp ${.ALLSRC} ${.TARGET}
177
178 clang/Headers/arm_neon.h: arm_neon.td ${CGEN}
179         mkdir -p ${.TARGET:H}
180         ${CGEN} -gen-arm-neon ${CXAST} ${.ALLSRC:M*.td} -o ${.TARGET}
181
182 .include <bsd.prog.mk>