gcc50: Mark as deprecated.
[dragonfly.git] / tools / tools / llvm_generator / Makefile
1 # See README on how to generate llvm/clang makefiles
2
3 LLVMVER?=       38
4 LLVMFULLVER?=   3.8.0
5 PORTOBJDIR?=    /usr/obj/dports
6 LLVMSRCDIR?=    ${PORTOBJDIR}/devel/llvm${LLVMVER}/llvm-${LLVMFULLVER}.src
7 SRCDIR?=        /usr/src
8
9 .if !exists (${LLVMSRCDIR})
10 .error Run error: ${LLVMSRCDIR} does not exist
11 .endif
12
13 GROUP1= LLVMSupport:lib/Support \
14         LLVMTableGen:lib/TableGen
15
16 GROUP2= llvm-tblgen:utils/TableGen \
17         clang-tblgen:tools/clang/utils/TableGen
18
19 GROUP4= LLVMAnalysis:lib/Analysis \
20         LLVMAsmParser:lib/AsmParser \
21         LLVMBitReader:lib/Bitcode/Reader \
22         LLVMBitWriter:lib/Bitcode/Writer \
23         LLVMCodeGen:lib/CodeGen \
24         LLVMAsmPrinter:lib/CodeGen/AsmPrinter \
25         LLVMSelectionDAG:lib/CodeGen/SelectionDAG \
26         LLVMCore:lib/IR \
27         LLVMIRReader:lib/IRReader \
28         LLVMMC:lib/MC \
29         LLVMMCParser:lib/MC/MCParser \
30         LLVMMCDisassembler:lib/MC/MCDisassembler \
31         LLVMLinker:lib/Linker \
32         LLVMObject:lib/Object \
33         LLVMOption:lib/Option \
34         LLVMProfileData:lib/ProfileData \
35         LLVMTarget:lib/Target \
36         LLVMCppBackendCodeGen:lib/Target/CppBackend \
37         LLVMCppBackendInfo:lib/Target/CppBackend/TargetInfo \
38         LLVMipo:lib/Transforms/IPO \
39         LLVMInstCombine:lib/Transforms/InstCombine \
40         LLVMInstrumentation:lib/Transforms/Instrumentation \
41         LLVMObjCARCOpts:lib/Transforms/ObjCARC \
42         LLVMScalarOpts:lib/Transforms/Scalar \
43         LLVMTransformUtils:lib/Transforms/Utils \
44         LLVMVectorize:lib/Transforms/Vectorize \
45         ${X86} ${ARM} ${MIPS} ${AMDGPU} ${ARM64} ${PPC} ${CLANG}
46
47 X86=    LLVMX86CodeGen:lib/Target/X86 \
48         LLVMX86Disassembler:lib/Target/X86/Disassembler \
49         LLVMX86AsmParser:lib/Target/X86/AsmParser \
50         LLVMX86AsmPrinter:lib/Target/X86/InstPrinter \
51         LLVMX86Desc:lib/Target/X86/MCTargetDesc \
52         LLVMX86Info:lib/Target/X86/TargetInfo \
53         LLVMX86Utils:lib/Target/X86/Utils
54
55 ARM=    LLVMARMCodeGen:lib/Target/ARM \
56         LLVMARMAsmParser:lib/Target/ARM/AsmParser \
57         LLVMARMDisassembler:lib/Target/ARM/Disassembler \
58         LLVMARMAsmPrinter:lib/Target/ARM/InstPrinter \
59         LLVMARMDesc:lib/Target/ARM/MCTargetDesc \
60         LLVMARMInfo:lib/Target/ARM/TargetInfo
61
62 MIPS=   LLVMMipsCodeGen:lib/Target/Mips \
63         LLVMMipsAsmParser:lib/Target/Mips/AsmParser \
64         LLVMMipsDisassembler:lib/Target/Mips/Disassembler \
65         LLVMMipsAsmPrinter:lib/Target/Mips/InstPrinter \
66         LLVMMipsDesc:lib/Target/Mips/MCTargetDesc \
67         LLVMMipsInfo:lib/Target/Mips/TargetInfo
68
69 AMDGPU= LLVMAMDGPUCodeGen:lib/Target/AMDGPU \
70         LLVMAMDGPUAsmParser:lib/Target/AMDGPU/AsmParser \
71         LLVMAMDGPUAsmPrinter:lib/Target/AMDGPU/InstPrinter \
72         LLVMAMDGPUDesc:lib/Target/AMDGPU/MCTargetDesc \
73         LLVMAMDGPUInfo:lib/Target/AMDGPU/TargetInfo \
74         LLVMAMDGPUUtils:lib/Target/AMDGPU/Utils
75
76 ARM64=  LLVMAArch64CodeGen:lib/Target/AArch64 \
77         LLVMAArch64AsmParser:lib/Target/AArch64/AsmParser \
78         LLVMAArch64Disassembler:lib/Target/AArch64/Disassembler \
79         LLVMAArch64AsmPrinter:lib/Target/AArch64/InstPrinter \
80         LLVMAArch64Desc:lib/Target/AArch64/MCTargetDesc \
81         LLVMAArch64Info:lib/Target/AArch64/TargetInfo \
82         LLVMAArch64Utils:lib/Target/AArch64/Utils
83
84 PPC=    LLVMPowerPCCodeGen:lib/Target/PowerPC \
85         LLVMPowerPCAsmParser:lib/Target/PowerPC/AsmParser \
86         LLVMPowerPCDisassembler:lib/Target/PowerPC/Disassembler \
87         LLVMPowerPCAsmPrinter:lib/Target/PowerPC/InstPrinter \
88         LLVMPowerPCDesc:lib/Target/PowerPC/MCTargetDesc \
89         LLVMPowerPCInfo:lib/Target/PowerPC/TargetInfo
90
91 CLANG=  clangARCMigrate:tools/clang/lib/ARCMigrate \
92         clangAST:tools/clang/lib/AST \
93         clangAnalysis:tools/clang/lib/Analysis \
94         clangBasic:tools/clang/lib/Basic \
95         clangCodeGen:tools/clang/lib/CodeGen \
96         clangDriver:tools/clang/lib/Driver \
97         clangEdit:tools/clang/lib/Edit \
98         clangFrontend:tools/clang/lib/Frontend \
99         clangFrontendTool:tools/clang/lib/FrontendTool \
100         clangLex:tools/clang/lib/Lex \
101         clangParse:tools/clang/lib/Parse \
102         clangRewrite:tools/clang/lib/Rewrite \
103         clangRewriteFrontend:tools/clang/lib/Frontend/Rewrite \
104         clangSema:tools/clang/lib/Sema \
105         clangSerialization:tools/clang/lib/Serialization \
106         clangStaticAnalyzerFrontend:tools/clang/lib/StaticAnalyzer/Frontend \
107         clangStaticAnalyzerCheckers:tools/clang/lib/StaticAnalyzer/Checkers \
108         clangStaticAnalyzerCore:tools/clang/lib/StaticAnalyzer/Core
109
110 LIST=   ${GROUP1} ${GROUP4}
111
112 OUTPUT= generated
113 HDR=    includes/Makefile.sources
114
115 .PATH:  ${LLVMSRCDIR}
116
117 all:    ${LIST:C|:.*$|/Makefile.sources|} \
118         ${GROUP2:C|:.*$|/Makefile.sources|} \
119         ${HDR}
120
121 .for X in ${LIST}
122 ${X:C|:.*$|/Makefile.sources|}: ${X:C/^.*://}/CMakeLists.txt
123         mkdir -p ${OUTPUT}/${.TARGET:H}
124         awk -v SRCDIR="${X:C/^.*://}" -f scrape_library.awk ${.ALLSRC} \
125                 > ${OUTPUT}/${.TARGET}
126 .endfor
127
128 .for X in ${GROUP2}
129 ${X:C|:.*$|/Makefile.sources|}: ${X:C/^.*://}/CMakeLists.txt
130         mkdir -p ${OUTPUT}/${.TARGET:H}
131         awk -v SRCDIR="${X:C/^.*://}" -f scrape_tablegen.awk ${.ALLSRC} \
132                 > ${OUTPUT}/${.TARGET}
133 .endfor
134
135 ${HDR}: tools/clang/lib/Headers/CMakeLists.txt
136         mkdir -p ${OUTPUT}/${.TARGET:H}
137         awk -v SRCDIR="tools/clang/lib/Headers" -f scrape_headers.awk ${.ALLSRC} \
138                 > ${OUTPUT}/${.TARGET}
139
140 clean:
141         rm -rf ${.OBJDIR}/${OUTPUT}
142
143 install:
144         mkdir -p ${SRCDIR}/llvm_clang/block5/include
145         cp ${OUTPUT}/${HDR} ${SRCDIR}/llvm_clang/block5/include
146 .for X in ${GROUP1:C|:.*$||}
147         @echo ${X}
148         mkdir -p ${SRCDIR}/llvm_clang/block1/${X}
149         cp ${OUTPUT}/${X}/Makefile.sources ${SRCDIR}/llvm_clang/block1/${X}
150 .endfor
151 .for X in ${GROUP2:C|:.*$||}
152         @echo ${X}
153         mkdir -p ${SRCDIR}/llvm_clang/block2/${X}
154         cp ${OUTPUT}/${X}/Makefile.sources ${SRCDIR}/llvm_clang/block2/${X}
155 .endfor
156 .for X in ${GROUP4:C|:.*$||}
157         @echo ${X}
158         mkdir -p ${SRCDIR}/llvm_clang/block4/${X}
159         cp ${OUTPUT}/${X}/Makefile.sources ${SRCDIR}/llvm_clang/block4/${X}
160 .endfor