1 # See README on how to generate llvm/clang makefiles
5 PORTOBJDIR?= /usr/obj/dports
6 LLVMSRCDIR?= ${PORTOBJDIR}/devel/llvm${LLVMVER}/llvm-${LLVMFULLVER}.src
9 .if !exists (${LLVMSRCDIR})
10 .error Run error: ${LLVMSRCDIR} does not exist
13 GROUP1= LLVMSupport:lib/Support \
14 LLVMTableGen:lib/TableGen
16 GROUP2= llvm-tblgen:utils/TableGen \
17 clang-tblgen:tools/clang/utils/TableGen
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 \
27 LLVMIRReader:lib/IRReader \
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}
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
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
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
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
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
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
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
110 LIST= ${GROUP1} ${GROUP4}
113 HDR= includes/Makefile.sources
117 all: ${LIST:C|:.*$|/Makefile.sources|} \
118 ${GROUP2:C|:.*$|/Makefile.sources|} \
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}
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}
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}
141 rm -rf ${.OBJDIR}/${OUTPUT}
144 mkdir -p ${SRCDIR}/llvm_clang/block5/include
145 cp ${OUTPUT}/${HDR} ${SRCDIR}/llvm_clang/block5/include
146 .for X in ${GROUP1:C|:.*$||}
148 mkdir -p ${SRCDIR}/llvm_clang/block1/${X}
149 cp ${OUTPUT}/${X}/Makefile.sources ${SRCDIR}/llvm_clang/block1/${X}
151 .for X in ${GROUP2:C|:.*$||}
153 mkdir -p ${SRCDIR}/llvm_clang/block2/${X}
154 cp ${OUTPUT}/${X}/Makefile.sources ${SRCDIR}/llvm_clang/block2/${X}
156 .for X in ${GROUP4:C|:.*$||}
158 mkdir -p ${SRCDIR}/llvm_clang/block4/${X}
159 cp ${OUTPUT}/${X}/Makefile.sources ${SRCDIR}/llvm_clang/block4/${X}