1SBLASOBJS_P = $(SBLASOBJS:.$(SUFFIX)=.$(PSUFFIX))
2DBLASOBJS_P = $(DBLASOBJS:.$(SUFFIX)=.$(PSUFFIX))
3QBLASOBJS_P = $(QBLASOBJS:.$(SUFFIX)=.$(PSUFFIX))
4CBLASOBJS_P = $(CBLASOBJS:.$(SUFFIX)=.$(PSUFFIX))
5ZBLASOBJS_P = $(ZBLASOBJS:.$(SUFFIX)=.$(PSUFFIX))
6XBLASOBJS_P = $(XBLASOBJS:.$(SUFFIX)=.$(PSUFFIX))
7
8COMMONOBJS_P = $(COMMONOBJS:.$(SUFFIX)=.$(PSUFFIX))
9
10HPLOBJS_P   = $(HPLOBJS:.$(SUFFIX)=.$(PSUFFIX))
11
12BLASOBJS    = $(SBLASOBJS)   $(DBLASOBJS)   $(CBLASOBJS)   $(ZBLASOBJS)
13BLASOBJS_P  = $(SBLASOBJS_P) $(DBLASOBJS_P) $(CBLASOBJS_P) $(ZBLASOBJS_P)
14
15ifdef EXPRECISION
16BLASOBJS   += $(QBLASOBJS)   $(XBLASOBJS)
17BLASOBJS_P += $(QBLASOBJS_P) $(XBLASOBJS_P)
18endif
19
20ifdef QUAD_PRECISION
21BLASOBJS   += $(QBLASOBJS)   $(XBLASOBJS)
22BLASOBJS_P += $(QBLASOBJS_P) $(XBLASOBJS_P)
23endif
24
25$(SBLASOBJS) $(SBLASOBJS_P) : CFLAGS += -UDOUBLE  -UCOMPLEX
26$(DBLASOBJS) $(DBLASOBJS_P) : CFLAGS += -DDOUBLE  -UCOMPLEX
27$(QBLASOBJS) $(QBLASOBJS_P) : CFLAGS += -DXDOUBLE -UCOMPLEX
28$(CBLASOBJS) $(CBLASOBJS_P) : CFLAGS += -UDOUBLE  -DCOMPLEX
29$(ZBLASOBJS) $(ZBLASOBJS_P) : CFLAGS += -DDOUBLE  -DCOMPLEX
30$(XBLASOBJS) $(XBLASOBJS_P) : CFLAGS += -DXDOUBLE -DCOMPLEX
31
32$(SBLASOBJS_P) : CFLAGS += -DPROFILE $(COMMON_PROF)
33$(DBLASOBJS_P) : CFLAGS += -DPROFILE $(COMMON_PROF)
34$(QBLASOBJS_P) : CFLAGS += -DPROFILE $(COMMON_PROF)
35$(CBLASOBJS_P) : CFLAGS += -DPROFILE $(COMMON_PROF)
36$(ZBLASOBJS_P) : CFLAGS += -DPROFILE $(COMMON_PROF)
37$(XBLASOBJS_P) : CFLAGS += -DPROFILE $(COMMON_PROF)
38
39libs    :: $(BLASOBJS) $(COMMONOBJS)
40	$(AR) $(ARFLAGS) -ru $(TOPDIR)/$(LIBNAME) $^
41
42prof    :: $(BLASOBJS_P) $(COMMONOBJS_P)
43	$(AR) $(ARFLAGS) -ru $(TOPDIR)/$(LIBNAME_P) $^
44
45hpl	:: $(HPLOBJS) $(COMMONOBJS)
46	$(AR) $(ARFLAGS) -ru $(TOPDIR)/$(LIBNAME) $^
47
48hpl_p	:: $(HPLOBJS_P) $(COMMONOBJS_P)
49	$(AR) $(ARFLAGS) -ru $(TOPDIR)/$(LIBNAME_P) $^
50
51kernel :: $(BLASOBJS)
52	$(AR) $(ARFLAGS) -ru $(TOPDIR)/$(LIBNAME) $^
53
54commonlibs :: $(COMMONOBJS)
55	$(AR) $(ARFLAGS) -ru $(TOPDIR)/$(LIBNAME) $^
56
57commonprof :: $(COMMONOBJS_P)
58	$(AR) $(ARFLAGS) -ru $(TOPDIR)/$(LIBNAME_P) $^
59
60quick :
61	  $(MAKE) -C $(TOPDIR) libs
62
63bms.$(SUFFIX):bm.c $(TOPDIR)/../bench/bmcommon.h
64	$(CC) $(CFLAGS) -UDOUBLE -UCOMPLEX -c $< -o $(@F)
65
66bmd.$(SUFFIX):bm.c $(TOPDIR)/../bench/bmcommon.h
67	$(CC) $(CFLAGS) -DDOUBLE -UCOMPLEX -c $< -o $(@F)
68
69bmd-k.$(SUFFIX):bm-k.c $(TOPDIR)/../bench/bmcommon.h
70	$(CC) $(CFLAGS) -DDOUBLE -UCOMPLEX -c $< -o $(@F)
71
72ifdef QUAD_PRECISION
73bmq.$(SUFFIX):bmq.c $(TOPDIR)/../bench/bmcommon.h
74	$(CC) $(CFLAGS) -DXDOUBLE -UCOMPLEX -c $< -o $(@F)
75
76bmx.$(SUFFIX):bmx.c $(TOPDIR)/../bench/bmcommon.h
77	$(CC) $(CFLAGS) -DXDOUBLE -DCOMPLEX -c $< -o $(@F)
78else
79bmq.$(SUFFIX):bm.c $(TOPDIR)/../bench/bmcommon.h
80	$(CC) $(CFLAGS) -DXDOUBLE -UCOMPLEX -c $< -o $(@F)
81
82bmx.$(SUFFIX):bmz.c $(TOPDIR)/../bench/bmcommon.h
83	$(CC) $(CFLAGS) -DXDOUBLE -DCOMPLEX -c $< -o $(@F)
84endif
85
86bmc.$(SUFFIX):bmz.c $(TOPDIR)/../bench/bmcommon.h
87	$(CC) $(CFLAGS) -UDOUBLE -DCOMPLEX -c $< -o $(@F)
88
89bmz.$(SUFFIX):bmz.c $(TOPDIR)/../bench/bmcommon.h
90	$(CC) $(CFLAGS) -DDOUBLE -DCOMPLEX -c $< -o $(@F)
91
92bmd_nn.$(SUFFIX):bm_special.c $(TOPDIR)/../bench/bmcommon.h
93	$(CC) $(CFLAGS) -DDOUBLE -UCOMPLEX -DNN -c $< -o $(@F)
94
95bmd_nt.$(SUFFIX):bm_special.c $(TOPDIR)/../bench/bmcommon.h
96	$(CC) $(CFLAGS) -DDOUBLE -UCOMPLEX -DNT -c $< -o $(@F)
97
98bmd_tn.$(SUFFIX):bm_special.c $(TOPDIR)/../bench/bmcommon.h
99	$(CC) $(CFLAGS) -DDOUBLE -UCOMPLEX -DTN -c $< -o $(@F)
100
101bmd_tt.$(SUFFIX):bm_special.c $(TOPDIR)/../bench/bmcommon.h
102	$(CC) $(CFLAGS) -DDOUBLE -UCOMPLEX -DTT -c $< -o $(@F)
103
104bm-phy.$(SUFFIX):bm-phy.c $(TOPDIR)/../bench/bmcommon.h
105	$(CC) $(CFLAGS) -DDOUBLE -UCOMPLEX -c $< -o $(@F)
106
107bms.$(PSUFFIX):bm.c $(TOPDIR)/../bench/bmcommon.h
108	$(CC) $(PFLAGS) -UDOUBLE -UCOMPLEX -c $< -o $(@F)
109
110bmd.$(PSUFFIX):bm.c $(TOPDIR)/../bench/bmcommon.h
111	$(CC) $(PFLAGS) -DDOUBLE -UCOMPLEX -c $< -o $(@F)
112
113ifdef QUAD_PRECISION
114bmq.$(PSUFFIX):bmq.c $(TOPDIR)/../bench/bmcommon.h
115	$(CC) $(PFLAGS) -DXDOUBLE -UCOMPLEX -c $< -o $(@F)
116
117bmx.$(PSUFFIX):bmx.c $(TOPDIR)/../bench/bmcommon.h
118	$(CC) $(PFLAGS) -DXDOUBLE -DCOMPLEX -c $< -o $(@F)
119else
120bmq.$(PSUFFIX):bm.c $(TOPDIR)/../bench/bmcommon.h
121	$(CC) $(PFLAGS) -DXDOUBLE -UCOMPLEX -c $< -o $(@F)
122
123bmx.$(PSUFFIX):bmz.c $(TOPDIR)/../bench/bmcommon.h
124	$(CC) $(PFLAGS) -DXDOUBLE -DCOMPLEX -c $< -o $(@F)
125endif
126
127bmc.$(PSUFFIX):bmz.c $(TOPDIR)/../bench/bmcommon.h
128	$(CC) $(PFLAGS) -UDOUBLE -DCOMPLEX -c $< -o $(@F)
129
130bmz.$(PSUFFIX):bmz.c $(TOPDIR)/../bench/bmcommon.h
131	$(CC) $(PFLAGS) -DDOUBLE -DCOMPLEX -c $< -o $(@F)
132
133bms : bms.$(SUFFIX) $(SBLASOBJS) $(COMMONOBJS) $(SOBJS) $(OBJS) $(LIBS)
134	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
135
136bmd : bmd.$(SUFFIX) $(DBLASOBJS) $(COMMONOBJS) $(DOBJS) $(OBJS) $(LIBS)
137	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB) -lm
138
139bmd-k : bmd-k.$(SUFFIX) $(DBLASOBJS) $(COMMONOBJS) $(DOBJS) $(OBJS) $(LIBS)
140	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB) -lm
141
142bmq : bmq.$(SUFFIX) $(QBLASOBJS) $(COMMONOBJS) $(QOBJS) $(OBJS) $(LIBS)
143	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
144
145bmc : bmc.$(SUFFIX) $(CBLASOBJS) $(COMMONOBJS) $(COBJS) $(OBJS) $(LIBS)
146	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB) $(FEXTRALIB)
147
148bmz : bmz.$(SUFFIX) $(ZBLASOBJS) $(COMMONOBJS) $(ZOBJS) $(OBJS) $(LIBS)
149	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
150
151bmx : bmx.$(SUFFIX) $(XBLASOBJS) $(COMMONOBJS) $(XOBJS) $(OBJS) $(LIBS)
152	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
153
154bmd_nn : bmd_nn.$(SUFFIX) $(DBLASOBJS) $(COMMONOBJS) $(DOBJS) $(OBJS) $(LIBS)
155	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
156
157bmd_nt : bmd_nt.$(SUFFIX) $(DBLASOBJS) $(COMMONOBJS) $(DOBJS) $(OBJS) $(LIBS)
158	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
159
160bmd_tn : bmd_tn.$(SUFFIX) $(DBLASOBJS) $(COMMONOBJS) $(DOBJS) $(OBJS) $(LIBS)
161	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
162
163bmd_tt : bmd_tt.$(SUFFIX) $(DBLASOBJS) $(COMMONOBJS) $(DOBJS) $(OBJS) $(LIBS)
164	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
165
166bm-phy:bm-phy.$(SUFFIX) $(DBLASOBJS) $(COMMONOBJS) $(DOBJS) $(OBJS) $(LIBS)
167	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
168
169bmcc	: bmcc.$(SUFFIX) $(CBLASOBJS) $(COMMONOBJS) $(COBJS) $(OBJS) $(LIBS)
170	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
171
172bmzc	: bmzc.$(SUFFIX) $(ZBLASOBJS) $(COMMONOBJS) $(ZOBJS) $(OBJS) $(LIBS)
173	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
174
175bms.prof : bms.$(PSUFFIX) $(SBLASOBJS_P) $(COMMONOBJS_P) $(SOBJS) $(OBJS) $(LIBS_P)
176	$(CC) -o $(@F) $(PFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
177
178bmd.prof : bmd.$(PSUFFIX) $(DBLASOBJS_P) $(COMMONOBJS_P) $(DOBJS) $(OBJS) $(LIBS_P)
179	$(CC) -o $(@F) $(PFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
180
181bmq.prof : bmq.$(PSUFFIX) $(QBLASOBJS_P) $(COMMONOBJS_P) $(QOBJS) $(OBJS) $(LIBS_P)
182	$(CC) -o $(@F) $(PFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
183
184bmc.prof : bmc.$(PSUFFIX) $(CBLASOBJS_P) $(COMMONOBJS) $(COBJS) $(OBJS) $(LIBS_P)
185	$(CC) -o $(@F) $(PFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
186
187bmz.prof : bmz.$(PSUFFIX) $(ZBLASOBJS_P) $(COMMONOBJS) $(ZOBJS) $(OBJS) $(LIBS_P)
188	$(CC) -o $(@F) $(PFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
189
190bmx.prof : bmz.$(PSUFFIX) $(XBLASOBJS_P) $(COMMONOBJS) $(XOBJS) $(OBJS) $(LIBS_P)
191	$(CC) -o $(@F) $(PFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
192
193bms.cxml : bms.$(SUFFIX) $(SOBJS) $(OBJS)
194	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBCXML)
195
196bmd.cxml : bmd.$(SUFFIX) $(DOBJS) $(OBJS)
197	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBCXML)
198
199bmc.cxml : bmc.$(SUFFIX) $(COBJS) $(OBJS)
200	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBCXML)
201
202bmz.cxml : bmz.$(SUFFIX) $(ZOBJS) $(OBJS)
203	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBCXML)
204
205bms.scsl : bms.$(SUFFIX) $(SOBJS) $(OBJS)
206	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBSCSL)
207
208bmd.scsl : bmd.$(SUFFIX) $(DOBJS) $(OBJS)
209	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBSCSL)
210
211bmc.scsl : bmc.$(SUFFIX) $(COBJS) $(OBJS)
212	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBSCSL)
213
214bmz.scsl : bmz.$(SUFFIX) $(ZOBJS) $(OBJS)
215	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBSCSL)
216
217bms.acml : bms.$(SUFFIX) $(SOBJS) $(OBJS)
218	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBACML)
219
220bmd.acml : bmd.$(SUFFIX) $(DOBJS) $(OBJS)
221	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBACML)
222
223bmc.acml : bmc.$(SUFFIX) $(COBJS) $(OBJS)
224	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBACML)
225
226bmz.acml : bmz.$(SUFFIX) $(ZOBJS) $(OBJS)
227	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBACML)
228
229bms.sun : bms.$(SUFFIX) $(SOBJS) $(OBJS)
230	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBSUNPERF) $(EXTRALIB) $(CEXTRALIB)
231
232bmd.sun : bmd.$(SUFFIX) $(DOBJS) $(OBJS)
233	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBSUNPERF) $(EXTRALIB) $(CEXTRALIB)
234
235bmc.sun : bmc.$(SUFFIX) $(COBJS) $(OBJS)
236	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBSUNPERF) $(EXTRALIB) $(CEXTRALIB)
237
238bmz.sun : bmz.$(SUFFIX) $(ZOBJS) $(OBJS)
239	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBSUNPERF) $(EXTRALIB) $(CEXTRALIB)
240
241bms.atlas : bms.$(SUFFIX) $(SOBJS) $(OBJS)
242	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBATLAS)
243
244bmd.atlas : bmd.$(SUFFIX) $(DOBJS) $(OBJS)
245	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBATLAS)
246
247bmc.atlas : bmc.$(SUFFIX) $(COBJS) $(OBJS)
248	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBATLAS)
249
250bmz.atlas : bmz.$(SUFFIX) $(ZOBJS) $(OBJS)
251	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBATLAS)
252
253bms.essl : bms.$(SUFFIX) $(SOBJS) $(OBJS)
254	$(CC) $(FCOMMON_OPT) -o $(@F) $^  $(LIBESSL)
255
256bmd.essl : bmd.$(SUFFIX) $(DOBJS) $(OBJS)
257	$(CC) $(CCOMMON_OPT) -o $(@F) $^  $(LIBESSL)
258
259bmc.essl : bmc.$(SUFFIX) $(COBJS) $(OBJS)
260	$(F77) $(CCOMMON_OPT) -o $(@F) $^  $(LIBESSL)
261
262bmz.essl : bmz.$(SUFFIX) $(ZOBJS) $(OBJS)
263	$(CC) $(CCOMMON_OPT) -o $(@F) $^  $(LIBESSL)
264
265bms.flame : bms.$(SUFFIX) $(SOBJS) $(OBJS)
266	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBFLAME)
267
268bmd.flame : bmd.$(SUFFIX) $(DOBJS) $(OBJS)
269	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBFLAME)
270
271bmc.flame : bmc.$(SUFFIX) $(COBJS) $(OBJS)
272	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBFLAME)
273
274bmz.flame : bmz.$(SUFFIX) $(ZOBJS) $(OBJS)
275	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBFLAME)
276
277bms.flame.prof : bms.$(SUFFIX) $(SOBJS) $(OBJS_P)
278	$(F77) -o $(@F) $(PFLAGS) $^  $(LIBFLAME)
279
280bmd.flame.prof : bmd.$(SUFFIX) $(DOBJS) $(OBJS_P)
281	$(F77) -o $(@F) $(PFLAGS) $^  $(LIBFLAME)
282
283bmc.flame.prof : bmc.$(SUFFIX) $(COBJS) $(OBJS_P)
284	$(F77) -o $(@F) $(PFLAGS) $^  $(LIBFLAME)
285
286bmz.flame.prof : bmz.$(SUFFIX) $(ZOBJS) $(OBJS_P)
287	$(F77) -o $(@F) $(PFLAGS) $^  $(LIBFLAME)
288
289bms.mkl : bms.$(SUFFIX) $(SOBJS) $(OBJS)
290	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBMKL) $(EXTRALIB) $(CEXTRALIB)
291
292bmd.mkl : bmd.$(SUFFIX) $(DOBJS) $(OBJS)
293	$(CC) -static -o $(@F) $(CFLAGS) $^  $(LIBMKL) $(EXTRALIB) $(CEXTRALIB)
294
295bmc.mkl : bmc.$(SUFFIX) $(COBJS) $(OBJS)
296	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBMKL) $(EXTRALIB) $(CEXTRALIB)
297
298bmz.mkl : bmz.$(SUFFIX) $(ZOBJS) $(OBJS)
299	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBMKL) $(EXTRALIB) $(CEXTRALIB)
300
301bmq.mkl : bmq.$(SUFFIX) $(QOBJS) $(OBJS)
302	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBMKL)  $(EXTRALIB) $(CEXTRALIB)
303
304bms.mkl.prof : bms.$(PSUFFIX) $(SOBJS) $(OBJS)
305	$(CC) -o $(@F) $(PFLAGS) $^  $(LIBMKL)
306
307bmd.mkl.prof : bmd.$(PSUFFIX) $(DOBJS) $(OBJS)
308	$(CC) -o $(@F) $(PFLAGS) $^  $(LIBMKL)
309
310bmc.mkl.prof : bmc.$(PSUFFIX) $(COBJS) $(OBJS)
311	$(CC) -o $(@F) $(PFLAGS) $^  $(LIBMKL)
312
313bmz.mkl.prof : bmz.$(PSUFFIX) $(ZOBJS) $(OBJS)
314	$(CC) -o $(@F) $(PFLAGS) $^  $(LIBMKL)
315
316bms.mlib : bms.$(SUFFIX) $(SOBJS) $(OBJS)
317	$(F77) -o $(@F) $(CFLAGS) $^  $(LIBMLIB)
318
319bmd.mlib : bmd.$(SUFFIX) $(DOBJS) $(OBJS)
320	$(F77) -o $(@F) $(CFLAGS) $^  $(LIBMLIB)
321
322bmc.mlib : bmc.$(SUFFIX) $(COBJS) $(OBJS)
323	$(F77) -o $(@F) $(CFLAGS) $^  $(LIBMLIB)
324
325bmz.mlib : bmz.$(SUFFIX) $(ZOBJS) $(OBJS)
326	$(F77) -o $(@F) $(CFLAGS) $^  $(LIBMLIB)
327
328bms.veclib : bms.$(SUFFIX) $(SOBJS)
329	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBVECLIB)
330
331bmd.veclib : bmd.$(SUFFIX) $(DOBJS)
332	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBVECLIB)
333
334bmc.veclib : bmc.$(SUFFIX) $(COBJS)
335	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBVECLIB)
336
337bmz.veclib : bmz.$(SUFFIX) $(ZOBJS)
338	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBVECLIB)
339
340bms.fuji : bms.$(SUFFIX) $(SOBJS)
341ifndef SMP
342	fcc -KV9FMADD -SSL2 -o $(@F) $^
343else
344	fcc -KV9FMADD -SSL2BLAMP -o $(@F) $^
345endif
346
347bmd.fuji : bmd.$(SUFFIX) $(DOBJS)
348ifndef SMP
349	fcc -KV9FMADD -SSL2 -o $(@F) $^
350else
351	fcc -KV9FMADD -SSL2BLAMP -o $(@F) $^
352endif
353
354bmc.fuji : bmc.$(SUFFIX) $(COBJS)
355ifndef SMP
356	fcc -KV9FMADD -SSL2 -o $(@F) $^
357else
358	fcc -KV9FMADD -SSL2BLAMP -o $(@F) $^
359endif
360
361bmz.fuji : bmz.$(SUFFIX) $(ZOBJS)
362ifndef SMP
363	fcc -KV9FMADD -SSL2 -o $(@F) $^
364else
365	fcc -KV9FMADD -SSL2BLAMP -o $(@F) $^
366endif
367
368bench: bench.$(SUFFIX)  $(BLASOBJS) $(COMMONOBJS) $(OBJS) $(LIBS)
369	$(CC) -o $(@F) $(CFLAGS) $^  $(EXTRALIB) $(CEXTRALIB)
370
371bench.$(SUFFIX): bench.c
372	$(CC) -c -o $(@F) $(CFLAGS) $^
373
374bench_old: bench_old.$(SUFFIX) $(DBLASOBJS) $(COMMONOBJS) $(OBJS) $(LIBS)
375	$(CC) -o $(@F) $(CFLAGS) $^  $(EXTRALIB) $(CEXTRALIB)
376
377kbench: kbench.$(SUFFIX) $(DBLASOBJS) $(COMMONOBJS) $(OBJS) $(LIBS)
378	$(CC) -o $(@F) $(CFLAGS) $^  $(EXTRALIB) $(CEXTRALIB)
379
380prebench: prebench.$(SUFFIX) $(DBLASOBJS) $(COMMONOBJS) $(OBJS) $(LIBS)
381	$(CC) -o $(@F) $(CFLAGS) $^  $(EXTRALIB) $(CEXTRALIB)
382
383kbench_rank_k: kbench_rank_k.$(SUFFIX) $(DBLASOBJS) $(COMMONOBJS) $(OBJS) $(LIBS)
384	$(CC) -o $(@F) $(CFLAGS) $^  $(EXTRALIB) $(CEXTRALIB)
385
386smallbench: smallbench.$(SUFFIX)  $(BLASOBJS) $(COMMONOBJS) $(OBJS) $(LIBS)
387	$(CC) -o $(@F) $(CFLAGS) $^  $(EXTRALIB) $(CEXTRALIB)
388
389smallbench.mkl: smallbench.$(SUFFIX)
390	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBMKL) $(EXTRALIB) $(CEXTRALIB)
391
392bench.sun: bench.$(SUFFIX) $(OBJS)
393	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBSUNPERF) $(EXTRALIB) $(CEXTRALIB)
394
395bench.cxml: bench.$(SUFFIX) $(OBJS)
396	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBCXML)
397
398bench.atlas: bench.$(SUFFIX) $(OBJS)
399	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBATLAS)
400
401bench.essl: bench.$(SUFFIX) $(OBJS)
402	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBESSL) ../../level1/others/libmisc.$(LIBSUFFIX)
403
404bench.scsl: bench.$(SUFFIX) $(OBJS)
405	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBSCSL)  $(EXTRALIB) $(CEXTRALIB)
406
407bench.acml: bench.$(SUFFIX) $(OBJS)
408	$(CC) -static -o $(@F) $(CFLAGS) $^  $(LIBACML)  $(EXTRALIB) $(CEXTRALIB)
409
410bench.flame: bench.$(SUFFIX) $(OBJS)
411	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBFLAME)  $(EXTRALIB) $(CEXTRALIB)
412
413kbench.mkl: kbench.$(SUFFIX) $(OBJS)
414	$(CC) -static -o $(@F) $(CFLAGS) $^  $(LIBMKL) $(EXTRALIB) $(CEXTRALIB)
415
416bench.mkl: bench.$(SUFFIX) $(OBJS)
417	$(CC) -static -o $(@F) $(CFLAGS) $^  $(LIBMKL) $(EXTRALIB) $(CEXTRALIB)
418
419bench_old.mkl: bench_old.$(SUFFIX) $(OBJS)
420	$(CC) -static -o $(@F) $(CFLAGS) $^  $(LIBMKL) $(EXTRALIB) $(CEXTRALIB)
421
422bench.mlib: bench.$(SUFFIX) $(OBJS)
423	$(F77) -o $(@F) $(CFLAGS) $^  $(LIBMLIB)
424
425bench.veclib: bench.$(SUFFIX) $(OBJS)
426	$(CC) -o $(@F) $(CFLAGS) $^  $(LIBVECLIB)
427
428params : params.$(SUFFIX) $(SBLASOBJS) $(COMMONOBJS) $(SOBJS) $(OBJS) $(LIBS)
429	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
430
431paramd : paramd.$(SUFFIX) $(DBLASOBJS) $(COMMONOBJS) $(DOBJS) $(OBJS) $(LIBS)
432	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
433
434paramq : paramq.$(SUFFIX) $(QBLASOBJS) $(COMMONOBJS) $(QOBJS) $(OBJS) $(LIBS)
435	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
436
437paramc : paramc.$(SUFFIX) $(CBLASOBJS) $(COMMONOBJS) $(COBJS) $(OBJS) $(LIBS)
438	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
439
440paramz : paramz.$(SUFFIX) $(ZBLASOBJS) $(COMMONOBJS) $(ZOBJS) $(OBJS) $(LIBS)
441	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
442
443paramx : paramx.$(SUFFIX) $(XBLASOBJS) $(COMMONOBJS) $(XOBJS) $(OBJS) $(LIBS)
444	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
445
446params-ex : params-ex.$(SUFFIX) $(SBLASOBJS) $(COMMONOBJS) $(SOBJS) $(OBJS) $(LIBS)
447	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
448
449paramd-ex : paramd-ex.$(SUFFIX) $(DBLASOBJS) $(COMMONOBJS) $(DOBJS) $(OBJS) $(LIBS)
450	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
451
452paramq-ex : paramq-ex.$(SUFFIX) $(QBLASOBJS) $(COMMONOBJS) $(QOBJS) $(OBJS) $(LIBS)
453	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
454
455paramc-ex : paramc-ex.$(SUFFIX) $(CBLASOBJS) $(COMMONOBJS) $(COBJS) $(OBJS) $(LIBS)
456	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
457
458paramz-ex : paramz-ex.$(SUFFIX) $(ZBLASOBJS) $(COMMONOBJS) $(ZOBJS) $(OBJS) $(LIBS)
459	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
460
461paramx-ex : paramx-ex.$(SUFFIX) $(XBLASOBJS) $(COMMONOBJS) $(XOBJS) $(OBJS) $(LIBS)
462	$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
463
464params.atlas : params.$(SUFFIX) $(OBJS) $(SOBJS)
465	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBATLAS)
466
467paramd.atlas : paramd.$(SUFFIX) $(OBJS) $(DOBJS)
468	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBATLAS)
469
470paramc.atlas : paramc.$(SUFFIX) $(OBJS) $(COBJS)
471	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBATLAS)
472
473paramz.atlas : paramz.$(SUFFIX) $(OBJS) $(ZOBJS)
474	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBATLAS)
475
476params.sun : params.$(SUFFIX) $(OBJS) $(SOBJS)
477	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBSUNPERF)
478
479paramd.sun : paramd.$(SUFFIX) $(OBJS) $(DOBJS)
480	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBSUNPERF)
481
482paramc.sun : paramc.$(SUFFIX) $(OBJS) $(COBJS)
483	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBSUNPERF)
484
485paramz.sun : paramz.$(SUFFIX) $(OBJS) $(ZOBJS)
486	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBSUNPERF)
487
488params.essl : params.$(SUFFIX) $(OBJS) $(SOBJS)
489	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBESSL)
490
491paramd.essl : paramd.$(SUFFIX) $(OBJS) $(DOBJS)
492	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBESSL)
493
494paramc.essl : paramc.$(SUFFIX) $(OBJS) $(COBJS)
495	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBESSL)
496
497paramz.essl : paramz.$(SUFFIX) $(OBJS) $(ZOBJS)
498	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBESSL)
499
500params.mkl : params.$(SUFFIX) $(OBJS) $(SOBJS)
501	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBMKL)
502
503paramd.mkl : paramd.$(SUFFIX) $(OBJS) $(DOBJS)
504	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBMKL)
505
506paramc.mkl : paramc.$(SUFFIX) $(OBJS) $(COBJS)
507	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBMKL)
508
509paramz.mkl : paramz.$(SUFFIX) $(OBJS) $(ZOBJS)
510	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBMKL)
511
512params.acml : params.$(SUFFIX) $(OBJS) $(SOBJS)
513	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBACML)
514
515paramd.acml : paramd.$(SUFFIX) $(OBJS) $(DOBJS)
516	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBACML)
517
518paramc.acml : paramc.$(SUFFIX) $(OBJS) $(COBJS)
519	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBACML)
520
521paramz.acml : paramz.$(SUFFIX) $(OBJS) $(ZOBJS)
522	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBACML)
523
524params.flame : params.$(SUFFIX) $(OBJS) $(SOBJS)
525	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBFLAME) $(EXTRALIB) $(CEXTRALIB)
526
527paramd.flame : paramd.$(SUFFIX) $(OBJS) $(DOBJS)
528	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBFLAME) $(EXTRALIB) $(CEXTRALIB)
529
530paramc.flame : paramc.$(SUFFIX) $(OBJS) $(COBJS)
531	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBFLAME) $(EXTRALIB) $(CEXTRALIB)
532
533paramz.flame : paramz.$(SUFFIX) $(OBJS) $(ZOBJS)
534	$(CC) -o $(@F) $(CFLAGS) $^ $(LIBFLAME) $(EXTRALIB) $(CEXTRALIB)
535
536params.$(SUFFIX):param.c $(TOPDIR)/../bench/bmcommon.h
537	$(CC) $(CFLAGS) -UDOUBLE -UCOMPLEX -c $< -o $(@F)
538
539paramd.$(SUFFIX):param.c $(TOPDIR)/../bench/bmcommon.h
540	$(CC) $(CFLAGS) -DDOUBLE -UCOMPLEX -c $< -o $(@F)
541
542paramq.$(SUFFIX):param.c $(TOPDIR)/../bench/bmcommon.h
543	$(CC) $(CFLAGS) -DXDOUBLE -UCOMPLEX -c $< -o $(@F)
544
545paramc.$(SUFFIX):paramz.c $(TOPDIR)/../bench/bmcommon.h
546	$(CC) $(CFLAGS) -UDOUBLE -DCOMPLEX -c $< -o $(@F)
547
548paramz.$(SUFFIX):paramz.c $(TOPDIR)/../bench/bmcommon.h
549	$(CC) $(CFLAGS) -DDOUBLE -DCOMPLEX -c $< -o $(@F)
550
551paramx.$(SUFFIX):paramz.c $(TOPDIR)/../bench/bmcommon.h
552	$(CC) $(CFLAGS) -DXDOUBLE -DCOMPLEX -c $< -o $(@F)
553
554params-ex.$(SUFFIX):param-ex.c $(TOPDIR)/../bench/bmcommon.h
555	$(CC) $(CFLAGS) -UDOUBLE -UCOMPLEX -c $< -o $(@F)
556
557paramd-ex.$(SUFFIX):param-ex.c $(TOPDIR)/../bench/bmcommon.h
558	$(CC) $(CFLAGS) -DDOUBLE -UCOMPLEX -c $< -o $(@F)
559
560paramq-ex.$(SUFFIX):param-ex.c $(TOPDIR)/../bench/bmcommon.h
561	$(CC) $(CFLAGS) -DXDOUBLE -UCOMPLEX -c $< -o $(@F)
562
563paramc-ex.$(SUFFIX):paramz-ex.c $(TOPDIR)/../bench/bmcommon.h
564	$(CC) $(CFLAGS) -UDOUBLE -DCOMPLEX -c $< -o $(@F)
565
566paramz-ex.$(SUFFIX):paramz-ex.c $(TOPDIR)/../bench/bmcommon.h
567	$(CC) $(CFLAGS) -DDOUBLE -DCOMPLEX -c $< -o $(@F)
568
569paramx-ex.$(SUFFIX):paramz-ex.c $(TOPDIR)/../bench/bmcommon.h
570	$(CC) $(CFLAGS) -DXDOUBLE -DCOMPLEX -c $< -o $(@F)
571
572gen_insn_flash.c :
573	echo '#include <stdio.h>'			>  gen_insn_flash.c
574	echo '#include <stdlib.h>'			>> gen_insn_flash.c
575	echo '#define ICACHE_SIZE ( 256 << 10)'		>> gen_insn_flash.c
576	echo 'int main(void){'				>> gen_insn_flash.c
577	echo 'int i;'					>> gen_insn_flash.c
578	echo '#ifdef __alpha'				>> gen_insn_flash.c
579	echo 'printf(".set noat;.set noreorder;\n");'	>> gen_insn_flash.c
580	echo 'printf(".arch ev6;.text;.align 5\n");'	>> gen_insn_flash.c
581	echo 'printf(".globl insn_flash\n");'		>> gen_insn_flash.c
582	echo 'printf(".ent insn_flash\n");'		>> gen_insn_flash.c
583	echo 'printf("insn_flash:\n");'			>> gen_insn_flash.c
584	echo 'for (i = 0; i < ICACHE_SIZE / 4; i++)'	>> gen_insn_flash.c
585	echo 'printf("br 1f\n 1:\n");'			>> gen_insn_flash.c
586	echo 'printf(".align 5;ret;.end insn_flash\n");'>> gen_insn_flash.c
587	echo '#else'					>> gen_insn_flash.c
588	echo 'printf(".text;.align 32\n");'		>> gen_insn_flash.c
589	echo 'printf(".globl insn_flash\n");'		>> gen_insn_flash.c
590	echo 'printf("insn_flash:\n");'			>> gen_insn_flash.c
591	echo 'for (i = 0; i < ICACHE_SIZE / 2; i++)'	>> gen_insn_flash.c
592	echo 'printf("jmp 1f\n 1:\n");'			>> gen_insn_flash.c
593	echo 'printf(".align 32;ret\n");'		>> gen_insn_flash.c
594	echo '#endif'					>> gen_insn_flash.c
595	echo 'return 0;'				>> gen_insn_flash.c
596	echo '}'					>> gen_insn_flash.c
597
598insn_flash.$(SUFFIX) : gen_insn_flash
599	./gen_insn_flash > temp.s
600	$(AS) -o $(@F) temp.s
601	rm -f temp.s
602
603dummy :
604
605clean ::
606	@if test -d $(ARCH_); then \
607	(cd $(ARCH_) && $(MAKE) clean) \
608	fi
609	@rm -rf *.a *.s *.o *.po *.obj *.i *.so core core.* gmon.out *.cso \
610	*.csx *.is *~ *.exe *.flame *.pdb *.dwf \
611	gen_insn_flash.c gen_insn_flash *.stackdump *.dll *.exp *.lib \
612	*.pc *.pcl *.def *.i *.prof linktest.c \
613	bms bmd bmc bmz bmq bmx \
614	params paramd paramc paramz paramq paramx \
615	params-ex paramd-ex paramc-ex paramz-ex paramq-ex paramx-ex \
616	bench tpp kbench kbench2 \
617	*.mkl *.sun *.acml *.cxml *.essl *.atlas *.scsl *.mlib *.veclib *.fuji
618