1 include ../../make.inc
3 PATH:=$(CGTROOT)/bin:$(PATH)
5 # Defines
6 TI_CBLAS_FAT_BINARY = 1
7 ARM_PLUS_DSP_LIB_DIR = ../lib
9 INCDIR := $(CGTROOT)/include
10 INCDIR += -I$(OMP_DIR)/packages/ti/runtime/openmp
11 INCDIR += -I$(FC_DIR)/packages
12 INCDIR += -I$(XDC_DIR)/packages
13 INCDIR += -I$(BIOS_DIR)/packages
14 INCDIR += -I$(XDAIS_DIR)/packages
15 INCDIR += -I$(LIBARCH_DIR)/include
16 INCDIR += -I$(PDK_DIR)/packages
17 INCDIR += -I$(TI_OCL_INSTALL_DIR)
19 INCS = -I. -I$(strip $(subst ;, -I,$(subst $(space),$(space),$(INCDIR))))
20 OBJS = ti_cblas_initfini.o
22 # CBLAS and BLIS directories
23 CBLAS_DSP_LIB = ../../cblas/lib/C66/libcblas.ae66
24 TICBLAS_DSP_LIB = ../../ticblas/lib/libticblas.ae66
25 CBLAS_ARM_LIB = ../../cblas/lib/ARM/libcblas_ARM.a
26 LIBARCH_LIB = $(LIBARCH_DIR)/lib/libArch.ae66
28 ifeq ($(MEM_MODEL),Large)
29 BLIS_DSP_LIB = ../../blis/install/c66xLarge/lib/libblis.ae66
30 else ifeq ($(MEM_MODEL),Medium)
31 BLIS_DSP_LIB = ../../blis/install/c66xMedium/lib/libblis.ae66
32 else ifeq ($(MEM_MODEL),Small)
33 BLIS_DSP_LIB = ../../blis/install/c66xSmall/lib/libblis.ae66
34 #else ifeq ($(MEM_MODEL),Tiny)
35 endif
37 CPP_DEBUG = -g
38 CPP_FLAGS = -D_LITTLE_ENDIAN -D__ARMv7 -D$(TARGET) -I../../cblas/include -I../../blis/install/arm/include/blis/ -I$(TI_OCL_INSTALL_DIR)/include -fopenmp
39 CL6X_FLAGS = $(INCS) --openmp --use_g2 -D$(TARGET) -DLIB_OPENCL
40 CLOCL_FLAGS =
41 OBJCOPY_ARGS=
42 ARM_PLUS_DSP_LIB= $(ARM_PLUS_DSP_LIB_DIR)/libcblas_armplusdsp.a
44 # OpenCL libraries included in make.inc
45 LIBS += -lpthread
47 OCL_BIN = ti_cblas_kernel.out
49 ifeq ($(TI_CBLAS_FAT_BINARY), 1)
50 CPP_FLAGS += -DTI_CBLAS_FAT_BINARY
51 OCL_BIN = ti_cblas_kernel.dsp_h
52 endif
55 ifneq ($(TI_CBLAS_OFFLOAD),)
56 CPP_FLAGS += -DTI_CBLAS_OFFLOAD=\"$(TI_CBLAS_OFFLOAD)\"
57 endif
59 OBJCOPY_ARGS += --redefine-sym=cblas_caxpy=__real_cblas_caxpy
60 OBJS += ti_cblas_cblas_caxpy.o
61 OBJCOPY_ARGS += --redefine-sym=cblas_ccopy=__real_cblas_ccopy
62 OBJS += ti_cblas_cblas_ccopy.o
63 OBJCOPY_ARGS += --redefine-sym=cblas_cdotc_sub=__real_cblas_cdotc_sub
64 OBJS += ti_cblas_cblas_cdotc_sub.o
65 OBJCOPY_ARGS += --redefine-sym=cblas_cdotu_sub=__real_cblas_cdotu_sub
66 OBJS += ti_cblas_cblas_cdotu_sub.o
67 OBJCOPY_ARGS += --redefine-sym=cblas_cgbmv=__real_cblas_cgbmv
68 OBJS += ti_cblas_cblas_cgbmv.o
69 OBJCOPY_ARGS += --redefine-sym=cblas_cgemm=__real_cblas_cgemm
70 OBJS += ti_cblas_cblas_cgemm.o
71 OBJCOPY_ARGS += --redefine-sym=cblas_cgemv=__real_cblas_cgemv
72 OBJS += ti_cblas_cblas_cgemv.o
73 OBJCOPY_ARGS += --redefine-sym=cblas_cgerc=__real_cblas_cgerc
74 OBJS += ti_cblas_cblas_cgerc.o
75 OBJCOPY_ARGS += --redefine-sym=cblas_cgeru=__real_cblas_cgeru
76 OBJS += ti_cblas_cblas_cgeru.o
77 OBJCOPY_ARGS += --redefine-sym=cblas_chbmv=__real_cblas_chbmv
78 OBJS += ti_cblas_cblas_chbmv.o
79 OBJCOPY_ARGS += --redefine-sym=cblas_chemm=__real_cblas_chemm
80 OBJS += ti_cblas_cblas_chemm.o
81 OBJCOPY_ARGS += --redefine-sym=cblas_chemv=__real_cblas_chemv
82 OBJS += ti_cblas_cblas_chemv.o
83 OBJCOPY_ARGS += --redefine-sym=cblas_cher=__real_cblas_cher
84 OBJS += ti_cblas_cblas_cher.o
85 OBJCOPY_ARGS += --redefine-sym=cblas_cher2=__real_cblas_cher2
86 OBJS += ti_cblas_cblas_cher2.o
87 OBJCOPY_ARGS += --redefine-sym=cblas_cher2k=__real_cblas_cher2k
88 OBJS += ti_cblas_cblas_cher2k.o
89 OBJCOPY_ARGS += --redefine-sym=cblas_cherk=__real_cblas_cherk
90 OBJS += ti_cblas_cblas_cherk.o
91 OBJCOPY_ARGS += --redefine-sym=cblas_chpmv=__real_cblas_chpmv
92 OBJS += ti_cblas_cblas_chpmv.o
93 OBJCOPY_ARGS += --redefine-sym=cblas_chpr=__real_cblas_chpr
94 OBJS += ti_cblas_cblas_chpr.o
95 OBJCOPY_ARGS += --redefine-sym=cblas_chpr2=__real_cblas_chpr2
96 OBJS += ti_cblas_cblas_chpr2.o
97 OBJCOPY_ARGS += --redefine-sym=cblas_cscal=__real_cblas_cscal
98 OBJS += ti_cblas_cblas_cscal.o
99 OBJCOPY_ARGS += --redefine-sym=cblas_csscal=__real_cblas_csscal
100 OBJS += ti_cblas_cblas_csscal.o
101 OBJCOPY_ARGS += --redefine-sym=cblas_cswap=__real_cblas_cswap
102 OBJS += ti_cblas_cblas_cswap.o
103 OBJCOPY_ARGS += --redefine-sym=cblas_csymm=__real_cblas_csymm
104 OBJS += ti_cblas_cblas_csymm.o
105 OBJCOPY_ARGS += --redefine-sym=cblas_csyr2k=__real_cblas_csyr2k
106 OBJS += ti_cblas_cblas_csyr2k.o
107 OBJCOPY_ARGS += --redefine-sym=cblas_csyrk=__real_cblas_csyrk
108 OBJS += ti_cblas_cblas_csyrk.o
109 OBJCOPY_ARGS += --redefine-sym=cblas_ctbmv=__real_cblas_ctbmv
110 OBJS += ti_cblas_cblas_ctbmv.o
111 OBJCOPY_ARGS += --redefine-sym=cblas_ctbsv=__real_cblas_ctbsv
112 OBJS += ti_cblas_cblas_ctbsv.o
113 OBJCOPY_ARGS += --redefine-sym=cblas_ctpmv=__real_cblas_ctpmv
114 OBJS += ti_cblas_cblas_ctpmv.o
115 OBJCOPY_ARGS += --redefine-sym=cblas_ctpsv=__real_cblas_ctpsv
116 OBJS += ti_cblas_cblas_ctpsv.o
117 OBJCOPY_ARGS += --redefine-sym=cblas_ctrmm=__real_cblas_ctrmm
118 OBJS += ti_cblas_cblas_ctrmm.o
119 OBJCOPY_ARGS += --redefine-sym=cblas_ctrmv=__real_cblas_ctrmv
120 OBJS += ti_cblas_cblas_ctrmv.o
121 OBJCOPY_ARGS += --redefine-sym=cblas_ctrsm=__real_cblas_ctrsm
122 OBJS += ti_cblas_cblas_ctrsm.o
123 OBJCOPY_ARGS += --redefine-sym=cblas_ctrsv=__real_cblas_ctrsv
124 OBJS += ti_cblas_cblas_ctrsv.o
125 OBJCOPY_ARGS += --redefine-sym=cblas_dasum=__real_cblas_dasum
126 OBJS += ti_cblas_cblas_dasum.o
127 OBJCOPY_ARGS += --redefine-sym=cblas_daxpy=__real_cblas_daxpy
128 OBJS += ti_cblas_cblas_daxpy.o
129 OBJCOPY_ARGS += --redefine-sym=cblas_dcopy=__real_cblas_dcopy
130 OBJS += ti_cblas_cblas_dcopy.o
131 OBJCOPY_ARGS += --redefine-sym=cblas_ddot=__real_cblas_ddot
132 OBJS += ti_cblas_cblas_ddot.o
133 OBJCOPY_ARGS += --redefine-sym=cblas_dgbmv=__real_cblas_dgbmv
134 OBJS += ti_cblas_cblas_dgbmv.o
135 OBJCOPY_ARGS += --redefine-sym=cblas_dgemm=__real_cblas_dgemm
136 OBJS += ti_cblas_cblas_dgemm.o
137 OBJCOPY_ARGS += --redefine-sym=cblas_dgemv=__real_cblas_dgemv
138 OBJS += ti_cblas_cblas_dgemv.o
139 OBJCOPY_ARGS += --redefine-sym=cblas_dger=__real_cblas_dger
140 OBJS += ti_cblas_cblas_dger.o
141 OBJCOPY_ARGS += --redefine-sym=cblas_dnrm2=__real_cblas_dnrm2
142 OBJS += ti_cblas_cblas_dnrm2.o
143 OBJCOPY_ARGS += --redefine-sym=cblas_drot=__real_cblas_drot
144 OBJS += ti_cblas_cblas_drot.o
145 OBJCOPY_ARGS += --redefine-sym=cblas_drotg=__real_cblas_drotg
146 OBJS += ti_cblas_cblas_drotg.o
147 OBJCOPY_ARGS += --redefine-sym=cblas_drotm=__real_cblas_drotm
148 OBJS += ti_cblas_cblas_drotm.o
149 OBJCOPY_ARGS += --redefine-sym=cblas_drotmg=__real_cblas_drotmg
150 OBJS += ti_cblas_cblas_drotmg.o
151 OBJCOPY_ARGS += --redefine-sym=cblas_dsbmv=__real_cblas_dsbmv
152 OBJS += ti_cblas_cblas_dsbmv.o
153 OBJCOPY_ARGS += --redefine-sym=cblas_dscal=__real_cblas_dscal
154 OBJS += ti_cblas_cblas_dscal.o
155 OBJCOPY_ARGS += --redefine-sym=cblas_dsdot=__real_cblas_dsdot
156 OBJS += ti_cblas_cblas_dsdot.o
157 OBJCOPY_ARGS += --redefine-sym=cblas_dspmv=__real_cblas_dspmv
158 OBJS += ti_cblas_cblas_dspmv.o
159 OBJCOPY_ARGS += --redefine-sym=cblas_dspr=__real_cblas_dspr
160 OBJS += ti_cblas_cblas_dspr.o
161 OBJCOPY_ARGS += --redefine-sym=cblas_dspr2=__real_cblas_dspr2
162 OBJS += ti_cblas_cblas_dspr2.o
163 OBJCOPY_ARGS += --redefine-sym=cblas_dswap=__real_cblas_dswap
164 OBJS += ti_cblas_cblas_dswap.o
165 OBJCOPY_ARGS += --redefine-sym=cblas_dsymm=__real_cblas_dsymm
166 OBJS += ti_cblas_cblas_dsymm.o
167 OBJCOPY_ARGS += --redefine-sym=cblas_dsymv=__real_cblas_dsymv
168 OBJS += ti_cblas_cblas_dsymv.o
169 OBJCOPY_ARGS += --redefine-sym=cblas_dsyr=__real_cblas_dsyr
170 OBJS += ti_cblas_cblas_dsyr.o
171 OBJCOPY_ARGS += --redefine-sym=cblas_dsyr2=__real_cblas_dsyr2
172 OBJS += ti_cblas_cblas_dsyr2.o
173 OBJCOPY_ARGS += --redefine-sym=cblas_dsyr2k=__real_cblas_dsyr2k
174 OBJS += ti_cblas_cblas_dsyr2k.o
175 OBJCOPY_ARGS += --redefine-sym=cblas_dsyrk=__real_cblas_dsyrk
176 OBJS += ti_cblas_cblas_dsyrk.o
177 OBJCOPY_ARGS += --redefine-sym=cblas_dtbmv=__real_cblas_dtbmv
178 OBJS += ti_cblas_cblas_dtbmv.o
179 OBJCOPY_ARGS += --redefine-sym=cblas_dtbsv=__real_cblas_dtbsv
180 OBJS += ti_cblas_cblas_dtbsv.o
181 OBJCOPY_ARGS += --redefine-sym=cblas_dtpmv=__real_cblas_dtpmv
182 OBJS += ti_cblas_cblas_dtpmv.o
183 OBJCOPY_ARGS += --redefine-sym=cblas_dtpsv=__real_cblas_dtpsv
184 OBJS += ti_cblas_cblas_dtpsv.o
185 OBJCOPY_ARGS += --redefine-sym=cblas_dtrmm=__real_cblas_dtrmm
186 OBJS += ti_cblas_cblas_dtrmm.o
187 OBJCOPY_ARGS += --redefine-sym=cblas_dtrmv=__real_cblas_dtrmv
188 OBJS += ti_cblas_cblas_dtrmv.o
189 OBJCOPY_ARGS += --redefine-sym=cblas_dtrsm=__real_cblas_dtrsm
190 OBJS += ti_cblas_cblas_dtrsm.o
191 OBJCOPY_ARGS += --redefine-sym=cblas_dtrsv=__real_cblas_dtrsv
192 OBJS += ti_cblas_cblas_dtrsv.o
193 OBJCOPY_ARGS += --redefine-sym=cblas_dzasum=__real_cblas_dzasum
194 OBJS += ti_cblas_cblas_dzasum.o
195 OBJCOPY_ARGS += --redefine-sym=cblas_dznrm2=__real_cblas_dznrm2
196 OBJS += ti_cblas_cblas_dznrm2.o
197 OBJCOPY_ARGS += --redefine-sym=cblas_xerbla=__real_cblas_xerbla
198 OBJS += ti_cblas_cblas_xerbla.o
199 OBJCOPY_ARGS += --redefine-sym=cblas_icamax=__real_cblas_icamax
200 OBJS += ti_cblas_cblas_icamax.o
201 OBJCOPY_ARGS += --redefine-sym=cblas_idamax=__real_cblas_idamax
202 OBJS += ti_cblas_cblas_idamax.o
203 OBJCOPY_ARGS += --redefine-sym=cblas_isamax=__real_cblas_isamax
204 OBJS += ti_cblas_cblas_isamax.o
205 OBJCOPY_ARGS += --redefine-sym=cblas_izamax=__real_cblas_izamax
206 OBJS += ti_cblas_cblas_izamax.o
207 OBJCOPY_ARGS += --redefine-sym=cblas_sasum=__real_cblas_sasum
208 OBJS += ti_cblas_cblas_sasum.o
209 OBJCOPY_ARGS += --redefine-sym=cblas_saxpy=__real_cblas_saxpy
210 OBJS += ti_cblas_cblas_saxpy.o
211 OBJCOPY_ARGS += --redefine-sym=cblas_scasum=__real_cblas_scasum
212 OBJS += ti_cblas_cblas_scasum.o
213 OBJCOPY_ARGS += --redefine-sym=cblas_scnrm2=__real_cblas_scnrm2
214 OBJS += ti_cblas_cblas_scnrm2.o
215 OBJCOPY_ARGS += --redefine-sym=cblas_scopy=__real_cblas_scopy
216 OBJS += ti_cblas_cblas_scopy.o
217 OBJCOPY_ARGS += --redefine-sym=cblas_sdot=__real_cblas_sdot
218 OBJS += ti_cblas_cblas_sdot.o
219 OBJCOPY_ARGS += --redefine-sym=cblas_sdsdot=__real_cblas_sdsdot
220 OBJS += ti_cblas_cblas_sdsdot.o
221 OBJCOPY_ARGS += --redefine-sym=cblas_sgbmv=__real_cblas_sgbmv
222 OBJS += ti_cblas_cblas_sgbmv.o
223 OBJCOPY_ARGS += --redefine-sym=cblas_sgemm=__real_cblas_sgemm
224 OBJS += ti_cblas_cblas_sgemm.o
225 OBJCOPY_ARGS += --redefine-sym=cblas_sgemv=__real_cblas_sgemv
226 OBJS += ti_cblas_cblas_sgemv.o
227 OBJCOPY_ARGS += --redefine-sym=cblas_sger=__real_cblas_sger
228 OBJS += ti_cblas_cblas_sger.o
229 OBJCOPY_ARGS += --redefine-sym=cblas_snrm2=__real_cblas_snrm2
230 OBJS += ti_cblas_cblas_snrm2.o
231 OBJCOPY_ARGS += --redefine-sym=cblas_srot=__real_cblas_srot
232 OBJS += ti_cblas_cblas_srot.o
233 OBJCOPY_ARGS += --redefine-sym=cblas_srotg=__real_cblas_srotg
234 OBJS += ti_cblas_cblas_srotg.o
235 OBJCOPY_ARGS += --redefine-sym=cblas_srotm=__real_cblas_srotm
236 OBJS += ti_cblas_cblas_srotm.o
237 OBJCOPY_ARGS += --redefine-sym=cblas_srotmg=__real_cblas_srotmg
238 OBJS += ti_cblas_cblas_srotmg.o
239 OBJCOPY_ARGS += --redefine-sym=cblas_ssbmv=__real_cblas_ssbmv
240 OBJS += ti_cblas_cblas_ssbmv.o
241 OBJCOPY_ARGS += --redefine-sym=cblas_sscal=__real_cblas_sscal
242 OBJS += ti_cblas_cblas_sscal.o
243 OBJCOPY_ARGS += --redefine-sym=cblas_sspmv=__real_cblas_sspmv
244 OBJS += ti_cblas_cblas_sspmv.o
245 OBJCOPY_ARGS += --redefine-sym=cblas_sspr=__real_cblas_sspr
246 OBJS += ti_cblas_cblas_sspr.o
247 OBJCOPY_ARGS += --redefine-sym=cblas_sspr2=__real_cblas_sspr2
248 OBJS += ti_cblas_cblas_sspr2.o
249 OBJCOPY_ARGS += --redefine-sym=cblas_sswap=__real_cblas_sswap
250 OBJS += ti_cblas_cblas_sswap.o
251 OBJCOPY_ARGS += --redefine-sym=cblas_ssymm=__real_cblas_ssymm
252 OBJS += ti_cblas_cblas_ssymm.o
253 OBJCOPY_ARGS += --redefine-sym=cblas_ssymv=__real_cblas_ssymv
254 OBJS += ti_cblas_cblas_ssymv.o
255 OBJCOPY_ARGS += --redefine-sym=cblas_ssyr=__real_cblas_ssyr
256 OBJS += ti_cblas_cblas_ssyr.o
257 OBJCOPY_ARGS += --redefine-sym=cblas_ssyr2=__real_cblas_ssyr2
258 OBJS += ti_cblas_cblas_ssyr2.o
259 OBJCOPY_ARGS += --redefine-sym=cblas_ssyr2k=__real_cblas_ssyr2k
260 OBJS += ti_cblas_cblas_ssyr2k.o
261 OBJCOPY_ARGS += --redefine-sym=cblas_ssyrk=__real_cblas_ssyrk
262 OBJS += ti_cblas_cblas_ssyrk.o
263 OBJCOPY_ARGS += --redefine-sym=cblas_stbmv=__real_cblas_stbmv
264 OBJS += ti_cblas_cblas_stbmv.o
265 OBJCOPY_ARGS += --redefine-sym=cblas_stbsv=__real_cblas_stbsv
266 OBJS += ti_cblas_cblas_stbsv.o
267 OBJCOPY_ARGS += --redefine-sym=cblas_stpmv=__real_cblas_stpmv
268 OBJS += ti_cblas_cblas_stpmv.o
269 OBJCOPY_ARGS += --redefine-sym=cblas_stpsv=__real_cblas_stpsv
270 OBJS += ti_cblas_cblas_stpsv.o
271 OBJCOPY_ARGS += --redefine-sym=cblas_strmm=__real_cblas_strmm
272 OBJS += ti_cblas_cblas_strmm.o
273 OBJCOPY_ARGS += --redefine-sym=cblas_strmv=__real_cblas_strmv
274 OBJS += ti_cblas_cblas_strmv.o
275 OBJCOPY_ARGS += --redefine-sym=cblas_strsm=__real_cblas_strsm
276 OBJS += ti_cblas_cblas_strsm.o
277 OBJCOPY_ARGS += --redefine-sym=cblas_strsv=__real_cblas_strsv
278 OBJS += ti_cblas_cblas_strsv.o
279 OBJCOPY_ARGS += --redefine-sym=cblas_zaxpy=__real_cblas_zaxpy
280 OBJS += ti_cblas_cblas_zaxpy.o
281 OBJCOPY_ARGS += --redefine-sym=cblas_zcopy=__real_cblas_zcopy
282 OBJS += ti_cblas_cblas_zcopy.o
283 OBJCOPY_ARGS += --redefine-sym=cblas_zdotc_sub=__real_cblas_zdotc_sub
284 OBJS += ti_cblas_cblas_zdotc_sub.o
285 OBJCOPY_ARGS += --redefine-sym=cblas_zdotu_sub=__real_cblas_zdotu_sub
286 OBJS += ti_cblas_cblas_zdotu_sub.o
287 OBJCOPY_ARGS += --redefine-sym=cblas_zdscal=__real_cblas_zdscal
288 OBJS += ti_cblas_cblas_zdscal.o
289 OBJCOPY_ARGS += --redefine-sym=cblas_zgbmv=__real_cblas_zgbmv
290 OBJS += ti_cblas_cblas_zgbmv.o
291 OBJCOPY_ARGS += --redefine-sym=cblas_zgemm=__real_cblas_zgemm
292 OBJS += ti_cblas_cblas_zgemm.o
293 OBJCOPY_ARGS += --redefine-sym=cblas_zgemv=__real_cblas_zgemv
294 OBJS += ti_cblas_cblas_zgemv.o
295 OBJCOPY_ARGS += --redefine-sym=cblas_zgerc=__real_cblas_zgerc
296 OBJS += ti_cblas_cblas_zgerc.o
297 OBJCOPY_ARGS += --redefine-sym=cblas_zgeru=__real_cblas_zgeru
298 OBJS += ti_cblas_cblas_zgeru.o
299 OBJCOPY_ARGS += --redefine-sym=cblas_zhbmv=__real_cblas_zhbmv
300 OBJS += ti_cblas_cblas_zhbmv.o
301 OBJCOPY_ARGS += --redefine-sym=cblas_zhemm=__real_cblas_zhemm
302 OBJS += ti_cblas_cblas_zhemm.o
303 OBJCOPY_ARGS += --redefine-sym=cblas_zhemv=__real_cblas_zhemv
304 OBJS += ti_cblas_cblas_zhemv.o
305 OBJCOPY_ARGS += --redefine-sym=cblas_zher=__real_cblas_zher
306 OBJS += ti_cblas_cblas_zher.o
307 OBJCOPY_ARGS += --redefine-sym=cblas_zher2=__real_cblas_zher2
308 OBJS += ti_cblas_cblas_zher2.o
309 OBJCOPY_ARGS += --redefine-sym=cblas_zher2k=__real_cblas_zher2k
310 OBJS += ti_cblas_cblas_zher2k.o
311 OBJCOPY_ARGS += --redefine-sym=cblas_zherk=__real_cblas_zherk
312 OBJS += ti_cblas_cblas_zherk.o
313 OBJCOPY_ARGS += --redefine-sym=cblas_zhpmv=__real_cblas_zhpmv
314 OBJS += ti_cblas_cblas_zhpmv.o
315 OBJCOPY_ARGS += --redefine-sym=cblas_zhpr=__real_cblas_zhpr
316 OBJS += ti_cblas_cblas_zhpr.o
317 OBJCOPY_ARGS += --redefine-sym=cblas_zhpr2=__real_cblas_zhpr2
318 OBJS += ti_cblas_cblas_zhpr2.o
319 OBJCOPY_ARGS += --redefine-sym=cblas_zscal=__real_cblas_zscal
320 OBJS += ti_cblas_cblas_zscal.o
321 OBJCOPY_ARGS += --redefine-sym=cblas_zswap=__real_cblas_zswap
322 OBJS += ti_cblas_cblas_zswap.o
323 OBJCOPY_ARGS += --redefine-sym=cblas_zsymm=__real_cblas_zsymm
324 OBJS += ti_cblas_cblas_zsymm.o
325 OBJCOPY_ARGS += --redefine-sym=cblas_zsyr2k=__real_cblas_zsyr2k
326 OBJS += ti_cblas_cblas_zsyr2k.o
327 OBJCOPY_ARGS += --redefine-sym=cblas_zsyrk=__real_cblas_zsyrk
328 OBJS += ti_cblas_cblas_zsyrk.o
329 OBJCOPY_ARGS += --redefine-sym=cblas_ztbmv=__real_cblas_ztbmv
330 OBJS += ti_cblas_cblas_ztbmv.o
331 OBJCOPY_ARGS += --redefine-sym=cblas_ztbsv=__real_cblas_ztbsv
332 OBJS += ti_cblas_cblas_ztbsv.o
333 OBJCOPY_ARGS += --redefine-sym=cblas_ztpmv=__real_cblas_ztpmv
334 OBJS += ti_cblas_cblas_ztpmv.o
335 OBJCOPY_ARGS += --redefine-sym=cblas_ztpsv=__real_cblas_ztpsv
336 OBJS += ti_cblas_cblas_ztpsv.o
337 OBJCOPY_ARGS += --redefine-sym=cblas_ztrmm=__real_cblas_ztrmm
338 OBJS += ti_cblas_cblas_ztrmm.o
339 OBJCOPY_ARGS += --redefine-sym=cblas_ztrmv=__real_cblas_ztrmv
340 OBJS += ti_cblas_cblas_ztrmv.o
341 OBJCOPY_ARGS += --redefine-sym=cblas_ztrsm=__real_cblas_ztrsm
342 OBJS += ti_cblas_cblas_ztrsm.o
343 OBJCOPY_ARGS += --redefine-sym=cblas_ztrsv=__real_cblas_ztrsv
344 OBJS += ti_cblas_cblas_ztrsv.o
345 OBJCOPY_ARGS += --redefine-sym=cblas_crotg=__real_cblas_crotg
346 OBJS += ti_cblas_cblas_crotg.o
347 OBJCOPY_ARGS += --redefine-sym=cblas_zrotg=__real_cblas_zrotg
348 OBJS += ti_cblas_cblas_zrotg.o
349 OBJS += ti_l3_offload.o
350 OBJS += ofld_tbl_cgemm.o
351 OBJS += ofld_tbl_dgemm.o
352 OBJS += ofld_tbl_sgemm.o
353 OBJS += ofld_tbl_zgemm.o
354 OBJS += ofld_tbl_csyrk.o
355 OBJS += ofld_tbl_dsyrk.o
356 OBJS += ofld_tbl_ssyrk.o
357 OBJS += ofld_tbl_zsyrk.o
358 OBJS += ofld_tbl_ctrmm.o
359 OBJS += ofld_tbl_dtrmm.o
360 OBJS += ofld_tbl_strmm.o
361 OBJS += ofld_tbl_ztrmm.o
362 OBJS += ofld_tbl_ctrsm.o
363 OBJS += ofld_tbl_dtrsm.o
364 OBJS += ofld_tbl_strsm.o
365 OBJS += ofld_tbl_ztrsm.o
367 all: armplusdsp
368 cross: armplusdsp
370 crossC66x: BLIS_DSP_LIB = ../../blis/install/c66x/lib/libblis.ae66
371 #crossC66x: CL6X_FLAGS+= -I../../blis/install/c66x/include/blis/
372 crossC66x: cross $(OCL_BIN) $(OBJS)
374 crossAM57x: BLIS_DSP_LIB = ../../blis/install/am57x/lib/libblis.ae66
375 #crossAM57x: CL6X_FLAGS+= -I../../blis/install/am57x/include/blis/
376 crossAM57x: cross $(OCL_BIN) $(OBJS)
378 crossShannon: BLIS_DSP_LIB = ../../blis/install/shannon/lib/libblis.ae66
379 #crossShannon: CL6X_FLAGS+= -I../../blis/install/shannon/include/blis/
380 crossShannon: cross $(OCL_BIN) $(OBJS)
382 debug: CPP_FLAGS += -DTI_CBLAS_DEBUG $(CPP_DEBUG) #-DTI_CBLAS_PROFILE
383 debug: cross
384 debug: CL6X_FLAGS += -DTI_CBLAS_DEBUG
386 profile: CPP_FLAGS += -DTI_CBLAS_PROFILE
387 profile: armplusdsp
389 armplusdsp: $(OCL_BIN) $(OBJS)
390 @echo; echo "Building hybrid ARM+DSP lib: $(ARM_PLUS_DSP_LIB)"
391 mkdir -p $(ARM_PLUS_DSP_LIB_DIR)
392 $(OBJCOPY) $(OBJCOPY_ARGS) $(CBLAS_ARM_LIB) $(ARM_PLUS_DSP_LIB)
393 $(AR) -cr $(ARM_PLUS_DSP_LIB) $(OBJS)
395 # if we have a fat binary header then the initfini file needs it
396 ti_cblas_initfini.o: $(OCL_BIN)
398 # target for fat binary
399 ti_cblas_kernel.dsp_h: ti_cblas_kernel.cl facade.obj ti_cblas_mem_config.obj $(CBLAS_DSP_LIB) $(BLIS_DSP_LIB) $(TICBLAS_DSP_LIB) $(LIBARCH_LIB)
400 @echo; echo Building $@
401 @rm -f ti_cblas_kernel.out
402 @echo Building fat binary header
403 clocl --txt -g $^
405 # target if fat binary not used
406 ti_cblas_kernel.out: ti_cblas_kernel.cl facade.obj $(CBLAS_DSP_LIB) $(BLIS_DSP_LIB)
407 @echo; echo Building $@
408 clocl $^
409 mkdir -p $(ARM_PLUS_DSP_LIB_DIR)
410 cp $(OCL_BIN) $(ARM_PLUS_DSP_LIB_DIR)/$(OCL_BIN)
412 clean::
413 @rm -f $(ARM_PLUS_DSP_LIB) $(OBJS) $(OCL_BIN) $(ARM_PLUS_DSP_LIB_DIR)/$(OCL_BIN)
414 @rm -rf /tmp/opencl*
416 cleanObj:
417 @rm -f $(OBJS) $(OCL_BIN)