Import framework to build base clang (version 3.8.0)
[dragonfly.git] / llvm_clang / block5 / clang / Makefile
1 # clang driver
2
3 PROG_CXX=       clang
4
5 BINDIR?=        /usr/libexec/clang
6
7 SRCS=   driver.cpp \
8         cc1_main.cpp \
9         cc1as_main.cpp
10
11 LINKS=  ${BINDIR}/clang ${BINDIR}/cc \
12         ${BINDIR}/clang ${BINDIR}/CC \
13         ${BINDIR}/clang ${BINDIR}/cpp \
14         ${BINDIR}/clang ${BINDIR}/c++ \
15         ${BINDIR}/clang ${BINDIR}/clang++
16
17 # clang-specific libraries (order critical, duplicates intentional)
18 STLIB=  clangBasic \
19         clangCodeGen \
20         clangDriver \
21         clangFrontend \
22         clangFrontendTool \
23         clangCodeGen \
24         clangRewriteFrontend \
25         clangARCMigrate \
26         clangStaticAnalyzerFrontend \
27         clangFrontend \
28         clangDriver \
29         clangParse \
30         clangSerialization \
31         clangSema \
32         clangEdit \
33         clangStaticAnalyzerCheckers \
34         clangStaticAnalyzerCore \
35         clangAnalysis \
36         clangAST \
37         clangRewrite \
38         clangLex \
39         clangBasic
40
41 # X86 Target and CPP backend first in line (order critical)
42
43 STLIB+= LLVMX86CodeGen \
44         LLVMX86AsmParser \
45         LLVMX86Desc \
46         LLVMX86Disassembler \
47         LLVMX86Info \
48         LLVMX86AsmPrinter \
49         LLVMX86Utils \
50         LLVMCppBackendCodeGen \
51         LLVMCppBackendInfo
52
53 # Extra architecture targets (order critical)
54 .if defined(CLANG_EXTRA_TARGETS)
55 .   if ${CLANG_EXTRA_TARGETS:MAArch64}
56 STLIB+= LLVMAArch64CodeGen \
57         LLVMAArch64AsmParser \
58         LLVMAArch64Desc \
59         LLVMAArch64Disassembler \
60         LLVMAArch64Info \
61         LLVMAArch64AsmPrinter \
62         LLVMAArch64Utils
63 .   endif
64 .   if ${CLANG_EXTRA_TARGETS:MAMDGPU}
65 STLIB+= LLVMAMDGPUCodeGen \
66         LLVMAMDGPUAsmParser \
67         LLVMAMDGPUDesc \
68         LLVMAMDGPUInfo \
69         LLVMAMDGPUAsmPrinter \
70         LLVMAMDGPUUtils
71 .   endif
72 .   if ${CLANG_EXTRA_TARGETS:MARM}
73 STLIB+= LLVMARMCodeGen \
74         LLVMARMAsmParser \
75         LLVMARMDesc \
76         LLVMARMDisassembler \
77         LLVMARMInfo \
78         LLVMARMAsmPrinter
79 .   endif
80 .   if ${CLANG_EXTRA_TARGETS:MMips}
81 STLIB+= LLVMMipsCodeGen \
82         LLVMMipsAsmParser \
83         LLVMMipsDesc \
84         LLVMMipsDisassembler \
85         LLVMMipsInfo \
86         LLVMMipsAsmPrinter
87 .   endif
88 .   if ${CLANG_EXTRA_TARGETS:MPowerPC}
89 STLIB+= LLVMPowerPCCodeGen \
90         LLVMPowerPCAsmParser \
91         LLVMPowerPCDesc \
92         LLVMPowerPCDisassembler \
93         LLVMPowerPCInfo \
94         LLVMPowerPCAsmPrinter
95 .   endif
96 .endif
97
98 # LLVM libraries (order critical, duplicates intentional)
99
100 STLIB+= LLVMAnalysis \
101         LLVMCodeGen \
102         LLVMCore \
103         LLVMipo \
104         LLVMInstCombine \
105         LLVMInstrumentation \
106         LLVMMC \
107         LLVMMCParser \
108         LLVMObjCARCOpts \
109         LLVMOption \
110         LLVMScalarOpts \
111         LLVMTransformUtils \
112         LLVMVectorize \
113         LLVMAsmPrinter \
114         LLVMSelectionDAG \
115         LLVMCodeGen \
116         LLVMMCDisassembler \
117         LLVMipo \
118         LLVMVectorize \
119         LLVMInstrumentation \
120         LLVMObjCARCOpts \
121         LLVMScalarOpts \
122         LLVMInstCombine \
123         LLVMTarget \
124         LLVMBitWriter \
125         LLVMIRReader \
126         LLVMAsmParser \
127         LLVMLinker \
128         LLVMTransformUtils \
129         LLVMAnalysis \
130         LLVMProfileData \
131         LLVMObject \
132         LLVMMCParser \
133         LLVMBitReader \
134         LLVMCore \
135         LLVMMC
136
137 CFLAGS+=        -I${TOP_LLVM}/tools/clang/include
138
139 .for SL in ${STLIB}
140 LDADD+= ${.OBJDIR}/../../block4/${SL}/lib${SL}.a
141 DPADD+= ${.OBJDIR}/../../block4/${SL}/lib${SL}.a
142 .endfor
143
144 # block 1 inclusion
145 LDADD+= ${.OBJDIR}/../../block1/LLVMSupport/libLLVMSupport.a
146 DPADD+= ${.OBJDIR}/../../block1/LLVMSupport/libLLVMSupport.a
147
148 # host library linkage
149 LDADD+= -lpthread -lz -lm
150
151 SRCDIR= tools/clang/tools/driver
152
153 .include <bsd.prog.mk>