1# This Makefile compiles the CBLAS routines
2#
3dlvl = ../.
4include $(dlvl)/Makefile.in
5
6#
7# Erase all object and archive files
8#
9clean:
10	rm -f *.o a.out core 
11
12# Error handling routines for level 2 & 3
13
14errhand = cblas_globals.o cblas_xerbla.o xerbla.o
15
16# Object files of all routines
17alev = $(alev1) $(alev2) $(alev3) $(errhand) 
18#
19#
20# CBLAS routines
21#
22# Level 1
23#
24# 
25
26#
27# All object files for single real precision
28#
29slev1 = cblas_srotg.o cblas_srotmg.o cblas_srot.o cblas_srotm.o  \
30         cblas_sswap.o cblas_sscal.o  cblas_scopy.o cblas_saxpy.o \
31         cblas_sdot.o  cblas_sdsdot.o cblas_snrm2.o cblas_sasum.o \
32         cblas_isamax.o   sdotsub.o   sdsdotsub.o snrm2sub.o sasumsub.o \
33         isamaxsub.o 
34#
35# All object files for double real precision
36#
37dlev1 = cblas_drotg.o cblas_drotmg.o cblas_drot.o cblas_drotm.o  \
38         cblas_dswap.o cblas_dscal.o  cblas_dcopy.o cblas_daxpy.o \
39         cblas_ddot.o  cblas_dsdot.o cblas_dnrm2.o cblas_dasum.o  \
40         cblas_idamax.o   ddotsub.o   dsdotsub.o       dnrm2sub.o \
41         dasumsub.o idamaxsub.o
42
43#
44# All object files for single complex precision
45#
46clev1 = cblas_cswap.o cblas_cscal.o cblas_csscal.o cblas_ccopy.o \
47         cblas_caxpy.o cblas_cdotu_sub.o cblas_cdotc_sub.o \
48         cblas_icamax.o cdotcsub.o cdotusub.o icamaxsub.o 
49
50#
51# All object files for double complex precision
52#
53zlev1 = cblas_zswap.o cblas_zscal.o cblas_zdscal.o cblas_zcopy.o \
54         cblas_zaxpy.o cblas_zdotu_sub.o cblas_zdotc_sub.o cblas_dznrm2.o \
55         cblas_dzasum.o cblas_izamax.o zdotcsub.o zdotusub.o      \
56         dzasumsub.o  dznrm2sub.o  izamaxsub.o 
57
58#
59# Common files for single / complex precision
60#
61sclev1 = cblas_scasum.o scasumsub.o cblas_scnrm2.o scnrm2sub.o
62
63#
64# All object files
65#
66alev1 = $(slev1) $(dlev1) $(clev1) $(zlev1) $(sclev1)
67
68
69#
70# Make an archive file
71#
72
73# Single real precision
74slib1: $(slev1) $(sclev1)
75	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(slev1) $(sclev1)
76	$(RANLIB) $(CBLIB)
77
78# Double real precision
79dlib1: $(dlev1) 
80	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(dlev1)
81	$(RANLIB) $(CBLIB)
82
83# Single complex precision
84clib1: $(clev1) $(sclev1)
85	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(clev1) $(sclev1)
86	$(RANLIB) $(CBLIB)
87
88# Double complex precision
89zlib1: $(zlev1)
90	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(zlev1)
91	$(RANLIB) $(CBLIB)
92
93# All precisions
94all1:  $(alev1)
95	$(ARCH) $(ARCHFLAGS)  $(CBLIB) $(alev1)
96	$(RANLIB) $(CBLIB)
97
98#
99#
100# CBLAS routines
101#
102# Level 2
103#
104# 
105
106#
107# All object files for single real precision
108#
109slev2 = cblas_sgemv.o cblas_sgbmv.o cblas_sger.o cblas_ssbmv.o  cblas_sspmv.o \
110        cblas_sspr.o  cblas_sspr2.o cblas_ssymv.o cblas_ssyr.o  cblas_ssyr2.o \
111        cblas_stbmv.o cblas_stbsv.o cblas_stpmv.o cblas_stpsv.o  cblas_strmv.o \
112        cblas_strsv.o  
113 
114#
115# All object files for double real precision
116#
117dlev2 = cblas_dgemv.o cblas_dgbmv.o cblas_dger.o cblas_dsbmv.o  cblas_dspmv.o \
118        cblas_dspr.o  cblas_dspr2.o cblas_dsymv.o cblas_dsyr.o  cblas_dsyr2.o \
119        cblas_dtbmv.o cblas_dtbsv.o cblas_dtpmv.o cblas_dtpsv.o  cblas_dtrmv.o \
120        cblas_dtrsv.o  
121
122#
123# All object files for single complex precision
124#
125clev2 = cblas_cgemv.o cblas_cgbmv.o cblas_chemv.o cblas_chbmv.o cblas_chpmv.o \
126        cblas_ctrmv.o cblas_ctbmv.o cblas_ctpmv.o cblas_ctrsv.o cblas_ctbsv.o \
127        cblas_ctpsv.o cblas_cgeru.o cblas_cgerc.o cblas_cher.o  cblas_cher2.o \
128        cblas_chpr.o  cblas_chpr2.o 
129
130#
131# All object files for double complex precision
132#
133zlev2 = cblas_zgemv.o cblas_zgbmv.o cblas_zhemv.o cblas_zhbmv.o cblas_zhpmv.o \
134        cblas_ztrmv.o cblas_ztbmv.o cblas_ztpmv.o cblas_ztrsv.o cblas_ztbsv.o \
135        cblas_ztpsv.o cblas_zgeru.o cblas_zgerc.o cblas_zher.o  cblas_zher2.o \
136        cblas_zhpr.o  cblas_zhpr2.o 
137#
138# All object files
139#
140alev2 = $(slev2) $(dlev2) $(clev2) $(zlev2)
141
142#
143# Make an archive file
144#
145
146# Single real precision
147slib2: $(slev2) $(errhand)
148	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(slev2) $(errhand)
149	$(RANLIB) $(CBLIB)
150
151# Double real  precision
152dlib2: $(dlev2) $(errhand)
153	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(dlev2) $(errhand)
154	$(RANLIB) $(CBLIB)
155
156# Single complex precision
157clib2: $(clev2) $(errhand)
158	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(clev2) $(errhand)
159	$(RANLIB) $(CBLIB)
160
161# Double complex precision
162zlib2: $(zlev2) $(errhand)
163	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(zlev2) $(errhand)
164	$(RANLIB) $(CBLIB)
165
166# All precisions
167all2:  $(alev2) $(errhand)
168	$(ARCH) $(ARCHFLAGS)  $(CBLIB) $(alev2) $(errhand)
169	$(RANLIB) $(CBLIB)
170#
171#
172# CBLAS routines
173#
174# Level 3
175#
176# 
177
178#
179# All object files for single real precision
180#
181slev3 = cblas_sgemm.o cblas_ssymm.o cblas_ssyrk.o cblas_ssyr2k.o cblas_strmm.o\
182        cblas_strsm.o
183 
184#
185# All object files for double real precision
186#
187dlev3 = cblas_dgemm.o cblas_dsymm.o cblas_dsyrk.o cblas_dsyr2k.o cblas_dtrmm.o\
188        cblas_dtrsm.o  
189
190#
191# All object files for single complex precision
192#
193clev3 = cblas_cgemm.o cblas_csymm.o cblas_chemm.o cblas_cherk.o\
194        cblas_cher2k.o cblas_ctrmm.o cblas_ctrsm.o  cblas_csyrk.o\
195        cblas_csyr2k.o
196#
197# All object files for double complex precision
198#
199zlev3 = cblas_zgemm.o cblas_zsymm.o cblas_zhemm.o cblas_zherk.o\
200        cblas_zher2k.o cblas_ztrmm.o cblas_ztrsm.o  cblas_zsyrk.o\
201        cblas_zsyr2k.o
202#
203# All object files
204#
205alev3 = $(slev3) $(dlev3) $(clev3) $(zlev3)
206
207#
208# Make an archive file
209#
210
211# Single real precision
212slib3: $(slev3) $(errhand)
213	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(slev3) $(errhand)
214	$(RANLIB) $(CBLIB)
215
216# Double real precision
217dlib3: $(dlev3) $(errhand)
218	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(dlev3) $(errhand)
219	$(RANLIB) $(CBLIB)
220
221# Single complex precision
222clib3: $(clev3) $(errhand)
223	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(clev3) $(errhand)
224	$(RANLIB) $(CBLIB)
225
226# Single complex precision
227zlib3: $(zlev3) $(errhand)
228	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(zlev3) $(errhand)
229	$(RANLIB) $(CBLIB)
230
231# All precisions
232all3:  $(alev3) $(errhand)
233	$(ARCH) $(ARCHFLAGS) $(CBLIB) $(alev3) 
234	$(RANLIB) $(CBLIB)
235
236# All levels and precisions
237all: $(alev)  
238	$(ARCH) $(ARCHFLAGS)  $(CBLIB) $(alev) 
239	$(RANLIB) $(CBLIB)
240
241
242.SUFFIXES: .o .c .f
243
244.c.o:
245	$(CC) $(CFLAGS) -I../include -c $*.c
246.f.o:
247	$(FC) $(FFLAGS) -c $*.f
248