1#######################################################################
2#  This makefile creates the test programs for the linear equation
3#  routines in LAPACK.  The test files are grouped as follows:
4#
5#       ALINTST -- Auxiliary test routines
6#       SLINTST -- Single precision real test routines
7#       CLINTST -- Single precision complex test routines
8#       SCLNTST -- Single precision real and complex routines in common
9#       DLINTST -- Double precision real test routines
10#       ZLINTST -- Double precision complex test routines
11#       DZLNTST -- Double precision real and complex routines in common
12#
13#  Test programs can be generated for all or some of the four different
14#  precisions.  Enter make followed by one or more of the data types
15#  desired.  Some examples:
16#       make single
17#       make single complex
18#       make single double complex complex16
19#  Alternatively, the command
20#       make
21#  without any arguments creates all four test programs.
22#  The executable files are called
23#       xlintsts, xlintstd, xlintstc, and xlintstz
24#
25#  To remove the object files after the executable files have been
26#  created, enter
27#       make cleanobj
28#  On some systems, you can force the source files to be recompiled by
29#  entering (for example)
30#       make single FRC=FRC
31#
32#######################################################################
33
34TOPSRCDIR = ../..
35include $(TOPSRCDIR)/make.inc
36
37ALINTST = \
38   aladhd.o alaerh.o alaesm.o alahd.o alareq.o \
39   alasum.o alasvm.o chkxer.o icopy.o ilaenv.o xlaenv.o xerbla.o
40
41SCLNTST = slaord.o
42
43DZLNTST = dlaord.o
44
45SLINTST = schkaa.o \
46   schkeq.o schkgb.o schkge.o schkgt.o \
47   schklq.o schkpb.o schkpo.o schkps.o schkpp.o \
48   schkpt.o schkq3.o schkql.o schkqr.o schkrq.o \
49   schksp.o schksy.o schksy_rook.o schksy_rk.o  \
50   schksy_aa.o schksy_aa_2stage.o schktb.o schktp.o schktr.o \
51   schktz.o \
52   sdrvgt.o sdrvls.o sdrvpb.o \
53   sdrvpp.o sdrvpt.o sdrvsp.o sdrvsy_rook.o sdrvsy_rk.o \
54   sdrvsy_aa.o sdrvsy_aa_2stage.o \
55   serrgt.o serrlq.o serrls.o \
56   serrps.o serrql.o serrqp.o serrqr.o \
57   serrrq.o serrtr.o serrtz.o \
58   sgbt01.o sgbt02.o sgbt05.o sgelqs.o sgeqls.o sgeqrs.o \
59   sgerqs.o sget01.o sget02.o \
60   sget03.o sget04.o sget06.o sget07.o sgtt01.o sgtt02.o \
61   sgtt05.o slaptm.o slarhs.o slatb4.o slatb5.o slattb.o slattp.o \
62   slattr.o slavsp.o slavsy.o slavsy_rook.o slqt01.o slqt02.o \
63   slqt03.o spbt01.o spbt02.o spbt05.o spot01.o \
64   spot02.o spot03.o spot05.o spst01.o sppt01.o \
65   sppt02.o sppt03.o sppt05.o sptt01.o sptt02.o \
66   sptt05.o sqlt01.o sqlt02.o sqlt03.o sqpt01.o \
67   sqrt01.o sqrt01p.o sqrt02.o sqrt03.o sqrt11.o sqrt12.o \
68   sqrt13.o sqrt14.o sqrt15.o sqrt16.o sqrt17.o \
69   srqt01.o srqt02.o srqt03.o srzt01.o srzt02.o \
70   sspt01.o ssyt01.o ssyt01_rook.o ssyt01_3.o ssyt01_aa.o \
71   stbt02.o stbt03.o stbt05.o stbt06.o stpt01.o \
72   stpt02.o stpt03.o stpt05.o stpt06.o strt01.o \
73   strt02.o strt03.o strt05.o strt06.o \
74   sgennd.o sqrt04.o sqrt05.o schkqrt.o serrqrt.o schkqrtp.o serrqrtp.o \
75   schklqt.o schklqtp.o schktsqr.o \
76   serrlqt.o serrlqtp.o serrtsqr.o stsqr01.o slqt04.o slqt05.o \
77   schkorhr_col.o serrorhr_col.o sorhr_col01.o sorhr_col02.o
78
79ifdef USEXBLAS
80SLINTST += sdrvgbx.o sdrvgex.o sdrvsyx.o sdrvpox.o \
81           serrvxx.o serrgex.o serrsyx.o serrpox.o \
82           sebchvxx.o
83else
84SLINTST += sdrvgb.o sdrvge.o sdrvsy.o sdrvpo.o \
85           serrvx.o serrge.o serrsy.o serrpo.o
86endif
87
88CLINTST = cchkaa.o \
89   cchkeq.o cchkgb.o cchkge.o cchkgt.o \
90   cchkhe.o cchkhe_rook.o cchkhe_rk.o  \
91   cchkhe_aa.o cchkhe_aa_2stage.o cchkhp.o cchklq.o cchkpb.o \
92   cchkpo.o cchkps.o cchkpp.o cchkpt.o cchkq3.o cchkql.o \
93   cchkqr.o cchkrq.o cchksp.o cchksy.o cchksy_rook.o cchksy_rk.o \
94   cchksy_aa.o cchksy_aa_2stage.o cchktb.o \
95   cchktp.o cchktr.o cchktz.o \
96   cdrvgt.o cdrvhe_rook.o cdrvhe_rk.o cdrvhe_aa.o cdrvhp.o \
97   cdrvhe_aa_2stage.o \
98   cdrvls.o cdrvpb.o cdrvpp.o cdrvpt.o \
99   cdrvsp.o cdrvsy_rook.o cdrvsy_rk.o cdrvsy_aa.o cdrvsy_aa_2stage.o \
100   cerrgt.o cerrlq.o \
101   cerrls.o cerrps.o cerrql.o cerrqp.o \
102   cerrqr.o cerrrq.o cerrtr.o cerrtz.o \
103   cgbt01.o cgbt02.o cgbt05.o cgelqs.o cgeqls.o cgeqrs.o \
104   cgerqs.o cget01.o cget02.o \
105   cget03.o cget04.o cget07.o cgtt01.o cgtt02.o \
106   cgtt05.o chet01.o chet01_rook.o chet01_3.o chet01_aa.o \
107   chpt01.o claipd.o claptm.o clarhs.o clatb4.o clatb5.o \
108   clatsp.o clatsy.o clattb.o clattp.o clattr.o \
109   clavhe.o clavhe_rook.o clavhp.o clavsp.o clavsy.o clavsy_rook.o clqt01.o \
110   clqt02.o clqt03.o cpbt01.o cpbt02.o cpbt05.o \
111   cpot01.o cpot02.o cpot03.o cpot05.o cpst01.o \
112   cppt01.o cppt02.o cppt03.o cppt05.o cptt01.o \
113   cptt02.o cptt05.o cqlt01.o cqlt02.o cqlt03.o \
114   cqpt01.o cqrt01.o cqrt01p.o cqrt02.o cqrt03.o cqrt11.o \
115   cqrt12.o cqrt13.o cqrt14.o cqrt15.o cqrt16.o \
116   cqrt17.o crqt01.o crqt02.o crqt03.o crzt01.o crzt02.o \
117   csbmv.o  cspt01.o \
118   cspt02.o cspt03.o csyt01.o csyt01_rook.o csyt01_3.o csyt01_aa.o csyt02.o csyt03.o \
119   ctbt02.o ctbt03.o ctbt05.o ctbt06.o ctpt01.o \
120   ctpt02.o ctpt03.o ctpt05.o ctpt06.o ctrt01.o \
121   ctrt02.o ctrt03.o ctrt05.o ctrt06.o \
122   sget06.o cgennd.o \
123   cqrt04.o cqrt05.o cchkqrt.o cerrqrt.o cchkqrtp.o cerrqrtp.o \
124   cchklqt.o cchklqtp.o cchktsqr.o \
125   cerrlqt.o cerrlqtp.o cerrtsqr.o ctsqr01.o clqt04.o clqt05.o \
126   cchkunhr_col.o cerrunhr_col.o cunhr_col01.o cunhr_col02.o
127
128ifdef USEXBLAS
129CLINTST += cdrvgbx.o cdrvgex.o cdrvhex.o cdrvsyx.o cdrvpox.o \
130           cerrvxx.o cerrgex.o cerrhex.o cerrsyx.o cerrpox.o \
131           cebchvxx.o
132else
133CLINTST += cdrvgb.o cdrvge.o cdrvhe.o cdrvsy.o cdrvpo.o \
134           cerrvx.o cerrge.o cerrhe.o cerrsy.o cerrpo.o
135endif
136
137DLINTST = dchkaa.o \
138   dchkeq.o dchkgb.o dchkge.o dchkgt.o \
139   dchklq.o dchkpb.o dchkpo.o dchkps.o dchkpp.o \
140   dchkpt.o dchkq3.o dchkql.o dchkqr.o dchkrq.o \
141   dchksp.o dchksy.o dchksy_rook.o dchksy_rk.o  \
142   dchksy_aa.o dchksy_aa_2stage.o dchktb.o dchktp.o dchktr.o \
143   dchktz.o \
144   ddrvgt.o ddrvls.o ddrvpb.o \
145   ddrvpp.o ddrvpt.o ddrvsp.o ddrvsy_rook.o ddrvsy_rk.o \
146   ddrvsy_aa.o ddrvsy_aa_2stage.o \
147   derrgt.o derrlq.o derrls.o \
148   derrps.o derrql.o derrqp.o derrqr.o \
149   derrrq.o derrtr.o derrtz.o \
150   dgbt01.o dgbt02.o dgbt05.o dgelqs.o dgeqls.o dgeqrs.o \
151   dgerqs.o dget01.o dget02.o \
152   dget03.o dget04.o dget06.o dget07.o dgtt01.o dgtt02.o \
153   dgtt05.o dlaptm.o dlarhs.o dlatb4.o dlatb5.o dlattb.o dlattp.o \
154   dlattr.o dlavsp.o dlavsy.o dlavsy_rook.o dlqt01.o dlqt02.o \
155   dlqt03.o dpbt01.o dpbt02.o dpbt05.o dpot01.o \
156   dpot02.o dpot03.o dpot05.o dpst01.o dppt01.o \
157   dppt02.o dppt03.o dppt05.o dptt01.o dptt02.o \
158   dptt05.o dqlt01.o dqlt02.o dqlt03.o dqpt01.o \
159   dqrt01.o dqrt01p.o dqrt02.o dqrt03.o dqrt11.o dqrt12.o \
160   dqrt13.o dqrt14.o dqrt15.o dqrt16.o dqrt17.o \
161   drqt01.o drqt02.o drqt03.o drzt01.o drzt02.o \
162   dspt01.o dsyt01.o dsyt01_rook.o dsyt01_3.o dsyt01_aa.o \
163   dtbt02.o dtbt03.o dtbt05.o dtbt06.o dtpt01.o \
164   dtpt02.o dtpt03.o dtpt05.o dtpt06.o dtrt01.o \
165   dtrt02.o dtrt03.o dtrt05.o dtrt06.o \
166   dgennd.o \
167   dqrt04.o dqrt05.o dchkqrt.o derrqrt.o dchkqrtp.o derrqrtp.o \
168   dchklq.o dchklqt.o dchklqtp.o dchktsqr.o \
169   derrlqt.o derrlqtp.o derrtsqr.o dtsqr01.o dlqt04.o dlqt05.o \
170   dchkorhr_col.o derrorhr_col.o dorhr_col01.o dorhr_col02.o
171
172ifdef USEXBLAS
173DLINTST += ddrvgbx.o ddrvgex.o ddrvsyx.o ddrvpox.o \
174           derrvxx.o derrgex.o derrsyx.o derrpox.o \
175           debchvxx.o
176else
177DLINTST += ddrvgb.o ddrvge.o ddrvsy.o ddrvpo.o \
178           derrvx.o derrge.o derrsy.o derrpo.o
179endif
180
181ZLINTST = zchkaa.o \
182   zchkeq.o zchkgb.o zchkge.o zchkgt.o \
183   zchkhe.o zchkhe_rook.o zchkhe_rk.o zchkhe_aa.o zchkhe_aa_2stage.o \
184   zchkhp.o zchklq.o zchkpb.o \
185   zchkpo.o zchkps.o zchkpp.o zchkpt.o zchkq3.o zchkql.o \
186   zchkqr.o zchkrq.o zchksp.o zchksy.o zchksy_rook.o zchksy_rk.o \
187   zchksy_aa.o zchksy_aa_2stage.o zchktb.o \
188   zchktp.o zchktr.o zchktz.o \
189   zdrvgt.o zdrvhe_rook.o zdrvhe_rk.o zdrvhe_aa.o zdrvhe_aa_2stage.o zdrvhp.o \
190   zdrvls.o zdrvpb.o zdrvpp.o zdrvpt.o \
191   zdrvsp.o zdrvsy_rook.o zdrvsy_rk.o zdrvsy_aa.o zdrvsy_aa_2stage.o \
192   zerrgt.o zerrlq.o \
193   zerrls.o zerrps.o zerrql.o zerrqp.o \
194   zerrqr.o zerrrq.o zerrtr.o zerrtz.o \
195   zgbt01.o zgbt02.o zgbt05.o zgelqs.o zgeqls.o zgeqrs.o \
196   zgerqs.o zget01.o zget02.o \
197   zget03.o zget04.o zget07.o zgtt01.o zgtt02.o \
198   zgtt05.o zhet01.o zhet01_rook.o zhet01_3.o zhet01_aa.o \
199   zhpt01.o zlaipd.o zlaptm.o zlarhs.o zlatb4.o zlatb5.o \
200   zlatsp.o zlatsy.o zlattb.o zlattp.o zlattr.o \
201   zlavhe.o zlavhe_rook.o zlavhp.o zlavsp.o zlavsy.o zlavsy_rook.o zlqt01.o \
202   zlqt02.o zlqt03.o zpbt01.o zpbt02.o zpbt05.o \
203   zpot01.o zpot02.o zpot03.o zpot05.o zpst01.o \
204   zppt01.o zppt02.o zppt03.o zppt05.o zptt01.o \
205   zptt02.o zptt05.o zqlt01.o zqlt02.o zqlt03.o \
206   zqpt01.o zqrt01.o zqrt01p.o zqrt02.o zqrt03.o zqrt11.o \
207   zqrt12.o zqrt13.o zqrt14.o zqrt15.o zqrt16.o \
208   zqrt17.o zrqt01.o zrqt02.o zrqt03.o zrzt01.o zrzt02.o \
209   zsbmv.o  zspt01.o \
210   zspt02.o zspt03.o zsyt01.o zsyt01_rook.o zsyt01_3.o zsyt01_aa.o zsyt02.o zsyt03.o \
211   ztbt02.o ztbt03.o ztbt05.o ztbt06.o ztpt01.o \
212   ztpt02.o ztpt03.o ztpt05.o ztpt06.o ztrt01.o \
213   ztrt02.o ztrt03.o ztrt05.o ztrt06.o \
214   dget06.o zgennd.o \
215   zqrt04.o zqrt05.o zchkqrt.o zerrqrt.o zchkqrtp.o zerrqrtp.o \
216   zchklqt.o zchklqtp.o zchktsqr.o \
217   zerrlqt.o zerrlqtp.o zerrtsqr.o ztsqr01.o zlqt04.o zlqt05.o \
218   zchkunhr_col.o zerrunhr_col.o zunhr_col01.o zunhr_col02.o
219
220ifdef USEXBLAS
221ZLINTST += zdrvgbx.o zdrvgex.o zdrvhex.o zdrvsyx.o zdrvpox.o \
222           zerrvxx.o zerrgex.o zerrhex.o zerrsyx.o zerrpox.o \
223           zebchvxx.o
224else
225ZLINTST += zdrvgb.o zdrvge.o zdrvhe.o zdrvsy.o zdrvpo.o \
226           zerrvx.o zerrge.o zerrhe.o zerrsy.o zerrpo.o
227endif
228
229DSLINTST = dchkab.o \
230	ddrvab.o ddrvac.o derrab.o derrac.o dget08.o \
231	alaerh.o alahd.o  aladhd.o alareq.o \
232	chkxer.o dlarhs.o dlatb4.o xerbla.o \
233	dget02.o dpot06.o
234
235ZCLINTST = zchkab.o \
236	zdrvab.o zdrvac.o zerrab.o zerrac.o zget08.o \
237	alaerh.o alahd.o  aladhd.o alareq.o \
238	chkxer.o zget02.o zlarhs.o zlatb4.o \
239	zsbmv.o  xerbla.o zpot06.o zlaipd.o
240
241SLINTSTRFP = schkrfp.o sdrvrfp.o sdrvrf1.o sdrvrf2.o sdrvrf3.o sdrvrf4.o serrrfp.o \
242	slatb4.o slarhs.o sget04.o spot01.o spot03.o spot02.o \
243	chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o
244
245DLINTSTRFP = dchkrfp.o ddrvrfp.o ddrvrf1.o ddrvrf2.o ddrvrf3.o ddrvrf4.o derrrfp.o \
246	dlatb4.o dlarhs.o dget04.o dpot01.o dpot03.o dpot02.o \
247	chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o
248
249CLINTSTRFP = cchkrfp.o cdrvrfp.o cdrvrf1.o cdrvrf2.o cdrvrf3.o cdrvrf4.o cerrrfp.o \
250	claipd.o clatb4.o clarhs.o csbmv.o cget04.o cpot01.o cpot03.o cpot02.o \
251	chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o
252
253ZLINTSTRFP = zchkrfp.o zdrvrfp.o zdrvrf1.o zdrvrf2.o zdrvrf3.o zdrvrf4.o zerrrfp.o \
254	zlatb4.o zlaipd.o zlarhs.o zsbmv.o zget04.o zpot01.o zpot03.o zpot02.o \
255	chkxer.o xerbla.o alaerh.o aladhd.o alahd.o alasvm.o
256
257.PHONY: all
258all: single double complex complex16 proto-single proto-double proto-complex proto-complex16
259
260.PHONY: single double complex complex16
261single: xlintsts
262double: xlintstd
263complex: xlintstc
264complex16: xlintstz
265
266.PHONY: proto-single proto-double proto-complex proto-complex16
267proto-single: xlintstrfs
268proto-double: xlintstds xlintstrfd
269proto-complex: xlintstrfc
270proto-complex16: xlintstzc xlintstrfz
271
272xlintsts: $(ALINTST) $(SLINTST) $(SCLNTST) $(TMGLIB) $(VARLIB) $(LAPACKLIB) $(XBLASLIB) $(BLASLIB)
273	$(FC) $(FFLAGS) $(LDFLAGS) -o $@ $^
274
275xlintstc: $(ALINTST) $(CLINTST) $(SCLNTST) $(TMGLIB) $(VARLIB) $(LAPACKLIB) $(XBLASLIB) $(BLASLIB)
276	$(FC) $(FFLAGS) $(LDFLAGS) -o $@ $^
277
278xlintstd: $(ALINTST) $(DLINTST) $(DZLNTST) $(TMGLIB) $(VARLIB) $(LAPACKLIB) $(XBLASLIB) $(BLASLIB)
279	$(FC) $(FFLAGS) $(LDFLAGS) -o $@ $^
280
281xlintstz: $(ALINTST) $(ZLINTST) $(DZLNTST) $(TMGLIB) $(VARLIB) $(LAPACKLIB) $(XBLASLIB) $(BLASLIB)
282	$(FC) $(FFLAGS) $(LDFLAGS) -o $@ $^
283
284xlintstds: $(DSLINTST) $(TMGLIB) $(VARLIB) $(LAPACKLIB) $(BLASLIB)
285	$(FC) $(FFLAGS) $(LDFLAGS) -o $@ $^
286
287xlintstzc: $(ZCLINTST) $(TMGLIB) $(VARLIB) $(LAPACKLIB) $(BLASLIB)
288	$(FC) $(FFLAGS) $(LDFLAGS) -o $@ $^
289
290xlintstrfs: $(SLINTSTRFP) $(TMGLIB) $(VARLIB) $(LAPACKLIB) $(BLASLIB)
291	$(FC) $(FFLAGS) $(LDFLAGS) -o $@ $^
292
293xlintstrfd: $(DLINTSTRFP) $(TMGLIB) $(VARLIB) $(LAPACKLIB) $(BLASLIB)
294	$(FC) $(FFLAGS) $(LDFLAGS) -o $@ $^
295
296xlintstrfc: $(CLINTSTRFP) $(TMGLIB) $(VARLIB) $(LAPACKLIB) $(BLASLIB)
297	$(FC) $(FFLAGS) $(LDFLAGS) -o $@ $^
298
299xlintstrfz: $(ZLINTSTRFP) $(TMGLIB) $(VARLIB) $(LAPACKLIB) $(BLASLIB)
300	$(FC) $(FFLAGS) $(LDFLAGS) -o $@ $^
301
302$(ALINTST): $(FRC)
303$(SCLNTST): $(FRC)
304$(DZLNTST): $(FRC)
305$(SLINTST): $(FRC)
306$(CLINTST): $(FRC)
307$(DLINTST): $(FRC)
308$(ZLINTST): $(FRC)
309
310FRC:
311	@FRC=$(FRC)
312
313.PHONY: clean cleanobj cleanexe
314clean: cleanobj cleanexe
315cleanobj:
316	rm -f *.o
317cleanexe:
318	rm -f xlintst*
319
320schkaa.o: schkaa.F
321	$(FC) $(FFLAGS_DRV) -c -o $@ $<
322dchkaa.o: dchkaa.F
323	$(FC) $(FFLAGS_DRV) -c -o $@ $<
324cchkaa.o: cchkaa.F
325	$(FC) $(FFLAGS_DRV) -c -o $@ $<
326zchkaa.o: zchkaa.F
327	$(FC) $(FFLAGS_DRV) -c -o $@ $<
328
329.NOTPARALLEL:
330