1#!/usr/bin/perl
2
3@blasobjs   = (
4	       caxpy,ccopy,cdotc,cdotu,cgbmv,cgemm,cgemv,cgerc,cgeru,
5	       chbmv,chemm,chemv,cher2,cher2k,cher,cherk,
6	       chpmv,chpr2,chpr,crotg,cscal,csrot,csscal,cswap,
7	       csymm,csyr2k,csyrk,ctbmv,ctbsv,ctpmv,ctpsv,ctrmm,ctrmv,ctrsm,
8	       ctrsv, csymv,
9	       damax,damin,dasum,daxpy,dcabs1,dcopy,ddot,dgbmv,dgemm,
10	       dgemv,dger,dmax,dmin,dnrm2,drot,drotg,drotm,drotmg,dsbmv,
11               dscal,dsdot,dspmv,dspr2,
12	       dspr,dswap,dsymm,dsymv,dsyr2,dsyr2k,dsyr,dsyrk,dtbmv,dtbsv,
13	       dtpmv,dtpsv,dtrmm,dtrmv,dtrsm,dtrsv,dzamax,dzamin,dzasum,dznrm2,
14	       icamax,icamin,idamax,idamin,idmax,idmin,isamax,isamin,ismax,ismin,
15	       izamax,izamin,lsame,samax,samin,sasum,saxpy,scabs1,scamax,
16	       scamin,scasum,scnrm2,scopy,sdot,sdsdot,sgbmv,sgemm,sgemv,sger,
17	       smax,smin,snrm2,
18	       srot,srotg,srotm,srotmg,ssbmv,sscal,sspmv,sspr2,sspr,sswap,
19	       ssymm,ssymv,ssyr2,ssyr2k,ssyr,ssyrk,stbmv,stbsv,stpmv,stpsv,
20	       strmm,strmv,strsm,strsv,zaxpy,zcopy,zdotc,zdotu,zdrot,
21	       zdscal,zgbmv,zgemm,zgemv,zgerc,zgeru,
22	       zhbmv,zhemm,zhemv,zher2,zher2k,zher,zherk,zhpmv,zhpr2,
23	       zhpr,zrotg,zscal,zswap,zsymm,zsyr2k,zsyrk,ztbmv,
24	       ztbsv,ztpmv,ztpsv,ztrmm,ztrmv,ztrsm,ztrsv, zsymv,
25	       xerbla);
26
27@cblasobjs  = (
28	       cblas_caxpy, cblas_ccopy, cblas_cdotc, cblas_cdotu, cblas_cgbmv, cblas_cgemm, cblas_cgemv,
29	       cblas_cgerc, cblas_cgeru, cblas_chbmv, cblas_chemm, cblas_chemv, cblas_cher2, cblas_cher2k,
30	       cblas_cher, cblas_cherk,  cblas_chpmv, cblas_chpr2, cblas_chpr, cblas_cscal,
31	       cblas_csscal, cblas_cswap, cblas_csymm, cblas_csyr2k, cblas_csyrk, cblas_ctbmv,
32	       cblas_ctbsv, cblas_ctpmv, cblas_ctpsv, cblas_ctrmm, cblas_ctrmv, cblas_ctrsm, cblas_ctrsv,
33	       cblas_dasum, cblas_daxpy, cblas_dcopy, cblas_ddot,
34	       cblas_dgbmv, cblas_dgemm, cblas_dgemv, cblas_dger, cblas_dnrm2,
35	       cblas_drot, cblas_drotg, cblas_drotm, cblas_drotmg, cblas_dsbmv, cblas_dscal, cblas_dsdot,
36	       cblas_dspmv, cblas_dspr2, cblas_dspr, cblas_dswap, cblas_dsymm, cblas_dsymv, cblas_dsyr2,
37	       cblas_dsyr2k, cblas_dsyr, cblas_dsyrk, cblas_dtbmv, cblas_dtbsv, cblas_dtpmv, cblas_dtpsv,
38	       cblas_dtrmm, cblas_dtrmv, cblas_dtrsm, cblas_dtrsv, cblas_dzasum,
39	       cblas_dznrm2, cblas_icamax, cblas_idamax,
40	       cblas_isamax, cblas_izamax,
41	       cblas_sasum, cblas_saxpy,
42	       cblas_scasum, cblas_scnrm2, cblas_scopy, cblas_sdot, cblas_sdsdot, cblas_sgbmv, cblas_sgemm,
43	       cblas_sgemv, cblas_sger, cblas_snrm2, cblas_srot, cblas_srotg,
44	       cblas_srotm, cblas_srotmg, cblas_ssbmv, cblas_sscal, cblas_sspmv, cblas_sspr2, cblas_sspr,
45	       cblas_sswap, cblas_ssymm, cblas_ssymv, cblas_ssyr2, cblas_ssyr2k, cblas_ssyr, cblas_ssyrk,
46	       cblas_stbmv, cblas_stbsv, cblas_stpmv, cblas_stpsv, cblas_strmm, cblas_strmv, cblas_strsm,
47	       cblas_strsv, cblas_zaxpy, cblas_zcopy, cblas_zdotc, cblas_zdotu, cblas_zdscal,
48	       cblas_zgbmv, cblas_zgemm, cblas_zgemv, cblas_zgerc, cblas_zgeru, cblas_zhbmv, cblas_zhemm,
49	       cblas_zhemv, cblas_zher2, cblas_zher2k, cblas_zher, cblas_zherk, cblas_zhpmv, cblas_zhpr2,
50	       cblas_zhpr, cblas_zscal, cblas_zswap, cblas_zsymm, cblas_zsyr2k, cblas_zsyrk,
51	       cblas_ztbmv, cblas_ztbsv, cblas_ztpmv, cblas_ztpsv, cblas_ztrmm, cblas_ztrmv, cblas_ztrsm,
52	       cblas_ztrsv);
53
54@exblasobjs = (
55	       qamax,qamin,qasum,qaxpy,qcabs1,qcopy,qdot,qgbmv,qgemm,
56	       qgemv,qger,qmax,qmin,
57	       qnrm2,
58	       qsbmv,qscal,qspmv,qspr2,
59	       qspr,qswap,qsymm,qsymv,qsyr2,qsyr2k,qsyr,qsyrk,qtbmv,qtbsv,
60	       qtpmv,qtpsv,qtrmm,qtrmv,qtrsm,qtrsv,
61	       qxamax,qxamin,qxasum,qxnrm2,
62	       xaxpy,xcopy,xdotc,xdotu,
63	       xqscal,xgbmv,xgemm,xgemv,xgerc,xgeru,
64	       xhbmv,xhemm,xhemv,xher2,xher2k,xher,xherk,xhpmv,xhpr2,
65	       xhpr,xscal,xswap,xsymm,xsyr2k,xsyrk,xtbmv,
66	       xtbsv,xtpmv,xtpsv,xtrmm,xtrmv,xtrsm,xtrsv,
67#	       qrot,qrotg,qrotm,qrotmg,
68#	       xdrot,xrotg,
69	       );
70
71@gemm3mobjs = (
72	       zgemm3m, cgemm3m, zsymm3m, csymm3m, zhemm3m, chemm3m,
73	       );
74
75@lapackobjs = (
76	       sgesv,  dgesv,  cgesv,  zgesv,
77	       sgetf2, dgetf2, cgetf2, zgetf2,
78	       sgetrf, dgetrf, cgetrf, zgetrf,
79	       slaswp, dlaswp, claswp, zlaswp,
80	       sgetrs, dgetrs, cgetrs, zgetrs,
81	       slauu2, dlauu2, clauu2, zlauu2,
82	       slauum, dlauum, clauum, zlauum,
83	       spotf2, dpotf2, cpotf2, zpotf2,
84	       spotrf, dpotrf, cpotrf, zpotrf,
85	       strti2, dtrti2, ctrti2, ztrti2,
86	       strtri, dtrtri, ctrtri, ztrtri,
87	       spotri, dpotri, cpotri, zpotri,
88	       );
89
90@lapackobjs2 = (
91		sgbbrd, sgbcon, sgbequ, sgbrfs, sgbsv,
92		sgbsvx, sgbtf2, sgbtrf, sgbtrs, sgebak, sgebal, sgebd2,
93		sgebrd, sgecon, sgeequ, sgees,  sgeesx, sgeev,  sgeevx,
94		sgegs,  sgegv,  sgehd2, sgehrd, sgelq2, sgelqf,
95		sgels,  sgelsd, sgelss, sgelsx, sgelsy, sgeql2, sgeqlf,
96		sgeqp3, sgeqpf, sgeqr2, sgeqrf, sgerfs, sgerq2, sgerqf,
97		sgesc2, sgesdd, sgesvd, sgesvx, sgetc2,
98		sgetri,
99		sggbak, sggbal, sgges,  sggesx, sggev,  sggevx,
100		sggglm, sgghrd, sgglse, sggqrf,
101		sggrqf, sggsvd, sggsvp, sgtcon, sgtrfs, sgtsv,
102		sgtsvx, sgttrf, sgttrs, sgtts2, shgeqz,
103		shsein, shseqr, slabrd, slacon, slacn2,
104		slaein, slaexc, slag2,  slags2, slagtm, slagv2, slahqr,
105		slahrd, slahr2, slaic1, slaln2, slals0, slalsa, slalsd,
106		slangb, slange, slangt, slanhs, slansb, slansp,
107		slansy, slantb, slantp, slantr, slanv2,
108		slapll, slapmt,
109		slaqgb, slaqge, slaqp2, slaqps, slaqsb, slaqsp, slaqsy,
110		slaqr0, slaqr1, slaqr2, slaqr3, slaqr4, slaqr5,
111		slaqtr, slar1v, slar2v,
112		slarf,  slarfb, slarfg, slarft, slarfx, slargv,
113		slarrv, slartv,
114		slarz,  slarzb, slarzt, slasy2, slasyf,
115		slatbs, slatdf, slatps, slatrd, slatrs, slatrz, slatzm,
116		sopgtr, sopmtr, sorg2l, sorg2r,
117		sorgbr, sorghr, sorgl2, sorglq, sorgql, sorgqr, sorgr2,
118		sorgrq, sorgtr, sorm2l, sorm2r,
119		sormbr, sormhr, sorml2, sormlq, sormql, sormqr, sormr2,
120		sormr3, sormrq, sormrz, sormtr, spbcon, spbequ, spbrfs,
121		spbstf, spbsv,  spbsvx,
122		spbtf2, spbtrf, spbtrs, spocon, spoequ, sporfs, sposv,
123		sposvx, spotrs, sppcon, sppequ,
124		spprfs, sppsv,  sppsvx, spptrf, spptri, spptrs, sptcon,
125		spteqr, sptrfs, sptsv,  sptsvx, spttrs, sptts2, srscl,
126		ssbev,  ssbevd, ssbevx, ssbgst, ssbgv,  ssbgvd, ssbgvx,
127		ssbtrd, sspcon, sspev,  sspevd, sspevx, sspgst,
128		sspgv,  sspgvd, sspgvx, ssprfs, sspsv,  sspsvx, ssptrd,
129		ssptrf, ssptri, ssptrs, sstegr, sstein, sstev,  sstevd, sstevr,
130		sstevx, ssycon, ssyev,  ssyevd, ssyevr, ssyevx, ssygs2,
131		ssygst, ssygv,  ssygvd, ssygvx, ssyrfs, ssysv,  ssysvx,
132		ssytd2, ssytf2, ssytrd, ssytrf, ssytri, ssytrs, stbcon,
133		stbrfs, stbtrs, stgevc, stgex2, stgexc, stgsen,
134		stgsja, stgsna, stgsy2, stgsyl, stpcon, stprfs, stptri,
135		stptrs,
136		strcon, strevc, strexc, strrfs, strsen, strsna, strsyl,
137		strtrs, stzrqf, stzrzf, sstemr,
138
139		cbdsqr, cgbbrd, cgbcon, cgbequ, cgbrfs, cgbsv,  cgbsvx,
140		cgbtf2, cgbtrf, cgbtrs, cgebak, cgebal, cgebd2, cgebrd,
141		cgecon, cgeequ, cgees,  cgeesx, cgeev,  cgeevx,
142		cgegs,  cgegv,  cgehd2, cgehrd, cgelq2, cgelqf,
143		cgels,  cgelsd, cgelss, cgelsx, cgelsy, cgeql2, cgeqlf, cgeqp3,
144		cgeqpf, cgeqr2, cgeqrf, cgerfs, cgerq2, cgerqf,
145		cgesc2, cgesdd, cgesvd, cgesvx, cgetc2,
146		cgetri,
147		cggbak, cggbal, cgges,  cggesx, cggev,  cggevx, cggglm,
148		cgghrd, cgglse, cggqrf, cggrqf,
149		cggsvd, cggsvp,
150		cgtcon, cgtrfs, cgtsv,  cgtsvx, cgttrf, cgttrs, cgtts2, chbev,
151		chbevd, chbevx, chbgst, chbgv,  chbgvd, chbgvx, chbtrd,
152		checon, cheev,  cheevd, cheevr, cheevx, chegs2, chegst,
153		chegv,  chegvd, chegvx, cherfs, chesv,  chesvx, chetd2,
154		chetf2, chetrd,
155		chetrf, chetri, chetrs, chgeqz, chpcon, chpev,  chpevd,
156		chpevx, chpgst, chpgv,  chpgvd, chpgvx, chprfs, chpsv,
157		chpsvx,
158		chptrd, chptrf, chptri, chptrs, chsein, chseqr, clabrd,
159		clacgv, clacon, clacn2, clacp2, clacpy, clacrm, clacrt, cladiv,
160		claed0, claed7, claed8,
161		claein, claesy, claev2, clags2, clagtm,
162		clahef, clahqr,
163		clahrd, clahr2, claic1, clals0, clalsa, clalsd, clangb, clange, clangt,
164		clanhb, clanhe,
165		clanhp, clanhs, clanht, clansb, clansp, clansy, clantb,
166		clantp, clantr, clapll, clapmt, clarcm, claqgb, claqge,
167		claqhb, claqhe, claqhp, claqp2, claqps, claqsb,
168		claqr0, claqr1, claqr2, claqr3, claqr4, claqr5,
169		claqsp, claqsy, clar1v, clar2v, clarf,  clarfb, clarfg, clarft,
170		clarfx, clargv, clarnv, clarrv, clartg, clartv,
171		clarz,  clarzb, clarzt, clascl, claset, clasr,  classq,
172		clasyf, clatbs, clatdf, clatps, clatrd, clatrs, clatrz,
173		clatzm, cpbcon, cpbequ, cpbrfs, cpbstf, cpbsv,
174		cpbsvx, cpbtf2, cpbtrf, cpbtrs, cpocon, cpoequ, cporfs,
175		cposv,  cposvx, cpotrs, cppcon,
176		cppequ, cpprfs, cppsv,  cppsvx, cpptrf, cpptri, cpptrs,
177		cptcon, cpteqr, cptrfs, cptsv,  cptsvx, cpttrf, cpttrs, cptts2,
178		crot,   cspcon, cspmv,  cspr,   csprfs, cspsv,
179		cspsvx, csptrf, csptri, csptrs, csrscl, cstedc,
180		cstegr, cstein, csteqr, csycon,
181		csyr,   csyrfs, csysv,  csysvx, csytf2, csytrf, csytri,
182		csytrs, ctbcon, ctbrfs, ctbtrs, ctgevc, ctgex2,
183		ctgexc, ctgsen, ctgsja, ctgsna, ctgsy2, ctgsyl, ctpcon,
184		ctprfs, ctptri,
185		ctptrs, ctrcon, ctrevc, ctrexc, ctrrfs, ctrsen, ctrsna,
186		ctrsyl, ctrtrs, ctzrqf, ctzrzf, cung2l, cung2r,
187		cungbr, cunghr, cungl2, cunglq, cungql, cungqr, cungr2,
188		cungrq, cungtr, cunm2l, cunm2r, cunmbr, cunmhr, cunml2,
189		cunmlq, cunmql, cunmqr, cunmr2, cunmr3, cunmrq, cunmrz,
190		cunmtr, cupgtr, cupmtr, icmax1, scsum1, cstemr,
191
192		dgbbrd, dgbcon, dgbequ, dgbrfs, dgbsv,
193		dgbsvx, dgbtf2, dgbtrf, dgbtrs, dgebak, dgebal, dgebd2,
194		dgebrd, dgecon, dgeequ, dgees,  dgeesx, dgeev,  dgeevx,
195		dgegs,  dgegv,  dgehd2, dgehrd, dgelq2, dgelqf,
196		dgels,  dgelsd, dgelss, dgelsx, dgelsy, dgeql2, dgeqlf,
197		dgeqp3, dgeqpf, dgeqr2, dgeqrf, dgerfs, dgerq2, dgerqf,
198		dgesc2, dgesdd, dgesvd, dgesvx, dgetc2,
199		dgetri,
200		dggbak, dggbal, dgges,  dggesx, dggev,  dggevx,
201		dggglm, dgghrd, dgglse, dggqrf,
202		dggrqf, dggsvd, dggsvp, dgtcon, dgtrfs, dgtsv,
203		dgtsvx, dgttrf, dgttrs, dgtts2, dhgeqz,
204		dhsein, dhseqr, dlabrd, dlacon, dlacn2,
205		dlaein, dlaexc, dlag2,  dlags2, dlagtm, dlagv2, dlahqr,
206		dlahrd, dlahr2, dlaic1, dlaln2, dlals0, dlalsa, dlalsd,
207		dlangb, dlange, dlangt, dlanhs, dlansb, dlansp,
208		dlansy, dlantb, dlantp, dlantr, dlanv2,
209		dlapll, dlapmt,
210		dlaqgb, dlaqge, dlaqp2, dlaqps, dlaqsb, dlaqsp, dlaqsy,
211		dlaqr0, dlaqr1, dlaqr2, dlaqr3, dlaqr4, dlaqr5,
212		dlaqtr, dlar1v, dlar2v,
213		dlarf,  dlarfb, dlarfg, dlarft, dlarfx, dlargv,
214		dlarrv, dlartv,
215		dlarz,  dlarzb, dlarzt, dlasy2, dlasyf,
216		dlatbs, dlatdf, dlatps, dlatrd, dlatrs, dlatrz, dlatzm,
217		dopgtr, dopmtr, dorg2l, dorg2r,
218		dorgbr, dorghr, dorgl2, dorglq, dorgql, dorgqr, dorgr2,
219		dorgrq, dorgtr, dorm2l, dorm2r,
220		dormbr, dormhr, dorml2, dormlq, dormql, dormqr, dormr2,
221		dormr3, dormrq, dormrz, dormtr, dpbcon, dpbequ, dpbrfs,
222		dpbstf, dpbsv,  dpbsvx,
223		dpbtf2, dpbtrf, dpbtrs, dpocon, dpoequ, dporfs, dposv,
224		dposvx, dpotrs, dppcon, dppequ,
225		dpprfs, dppsv,  dppsvx, dpptrf, dpptri, dpptrs, dptcon,
226		dpteqr, dptrfs, dptsv,  dptsvx, dpttrs, dptts2, drscl,
227		dsbev,  dsbevd, dsbevx, dsbgst, dsbgv,  dsbgvd, dsbgvx,
228		dsbtrd,  dspcon, dspev,  dspevd, dspevx, dspgst,
229		dspgv,  dspgvd, dspgvx, dsprfs, dspsv,  dspsvx, dsptrd,
230		dsptrf, dsptri, dsptrs, dstegr, dstein, dstev,  dstevd, dstevr,
231		dstevx, dsycon, dsyev,  dsyevd, dsyevr,
232		dsyevx, dsygs2, dsygst, dsygv,  dsygvd, dsygvx, dsyrfs,
233		dsysv,  dsysvx,
234		dsytd2, dsytf2, dsytrd, dsytrf, dsytri, dsytrs, dtbcon,
235		dtbrfs, dtbtrs, dtgevc, dtgex2, dtgexc, dtgsen,
236		dtgsja, dtgsna, dtgsy2, dtgsyl, dtpcon, dtprfs, dtptri,
237		dtptrs,
238		dtrcon, dtrevc, dtrexc, dtrrfs, dtrsen, dtrsna, dtrsyl,
239		dtrtrs, dtzrqf, dtzrzf, dstemr,
240		dsgesv, dlag2s, slag2d,
241
242		zbdsqr, zgbbrd, zgbcon, zgbequ, zgbrfs, zgbsv,  zgbsvx,
243		zgbtf2, zgbtrf, zgbtrs, zgebak, zgebal, zgebd2, zgebrd,
244		zgecon, zgeequ, zgees,  zgeesx, zgeev,  zgeevx,
245		zgegs,  zgegv,  zgehd2, zgehrd, zgelq2, zgelqf,
246		zgels,  zgelsd, zgelss, zgelsx, zgelsy, zgeql2, zgeqlf, zgeqp3,
247		zgeqpf, zgeqr2, zgeqrf, zgerfs, zgerq2, zgerqf,
248		zgesc2, zgesdd, zgesvd, zgesvx, zgetc2,
249		zgetri,
250		zggbak, zggbal, zgges,  zggesx, zggev,  zggevx, zggglm,
251		zgghrd, zgglse, zggqrf, zggrqf,
252		zggsvd, zggsvp,
253		zgtcon, zgtrfs, zgtsv,  zgtsvx, zgttrf, zgttrs, zgtts2, zhbev,
254		zhbevd, zhbevx, zhbgst, zhbgv,  zhbgvd, zhbgvx, zhbtrd,
255		zhecon, zheev,  zheevd, zheevr, zheevx, zhegs2, zhegst,
256		zhegv,  zhegvd, zhegvx, zherfs, zhesv,  zhesvx, zhetd2,
257		zhetf2, zhetrd,
258		zhetrf, zhetri, zhetrs, zhgeqz, zhpcon, zhpev,  zhpevd,
259		zhpevx, zhpgst, zhpgv,  zhpgvd, zhpgvx, zhprfs, zhpsv,
260		zhpsvx,
261		zhptrd, zhptrf, zhptri, zhptrs, zhsein, zhseqr, zlabrd,
262		zlacgv, zlacon, zlacn2, zlacp2, zlacpy, zlacrm, zlacrt, zladiv,
263		zlaed0, zlaed7, zlaed8,
264		zlaein, zlaesy, zlaev2, zlags2, zlagtm,
265		zlahef, zlahqr,
266		zlahrd, zlahr2, zlaic1, zlals0, zlalsa, zlalsd, zlangb, zlange,
267		zlangt, zlanhb,
268		zlanhe,
269		zlanhp, zlanhs, zlanht, zlansb, zlansp, zlansy, zlantb,
270		zlantp, zlantr, zlapll, zlapmt, zlaqgb, zlaqge,
271		zlaqhb, zlaqhe, zlaqhp, zlaqp2, zlaqps, zlaqsb,
272		zlaqr0, zlaqr1, zlaqr2, zlaqr3, zlaqr4, zlaqr5,
273		zlaqsp, zlaqsy, zlar1v, zlar2v, zlarcm, zlarf,  zlarfb,
274		zlarfg, zlarft,
275		zlarfx, zlargv, zlarnv, zlarrv, zlartg, zlartv,
276		zlarz,  zlarzb, zlarzt, zlascl, zlaset, zlasr,
277		zlassq, zlasyf,
278		zlatbs, zlatdf, zlatps, zlatrd, zlatrs, zlatrz, zlatzm,
279		zpbcon, zpbequ, zpbrfs, zpbstf, zpbsv,
280		zpbsvx, zpbtf2, zpbtrf, zpbtrs, zpocon, zpoequ, zporfs,
281		zposv,  zposvx, zpotrs, zppcon,
282		zppequ, zpprfs, zppsv,  zppsvx, zpptrf, zpptri, zpptrs,
283		zptcon, zpteqr, zptrfs, zptsv,  zptsvx, zpttrf, zpttrs, zptts2,
284		zrot,   zspcon, zspmv,  zspr,   zsprfs, zspsv,
285		zspsvx, zsptrf, zsptri, zsptrs, zdrscl, zstedc,
286		zstegr, zstein, zsteqr, zsycon,
287		zsyr,   zsyrfs, zsysv,  zsysvx, zsytf2, zsytrf, zsytri,
288		zsytrs, ztbcon, ztbrfs, ztbtrs, ztgevc, ztgex2,
289		ztgexc, ztgsen, ztgsja, ztgsna, ztgsy2, ztgsyl, ztpcon,
290		ztprfs, ztptri,
291		ztptrs, ztrcon, ztrevc, ztrexc, ztrrfs, ztrsen, ztrsna,
292		ztrsyl, ztrtrs, ztzrqf, ztzrzf, zung2l,
293		zung2r, zungbr, zunghr, zungl2, zunglq, zungql, zungqr, zungr2,
294		zungrq, zungtr, zunm2l, zunm2r, zunmbr, zunmhr, zunml2,
295		zunmlq, zunmql, zunmqr, zunmr2, zunmr3, zunmrq, zunmrz,
296		zunmtr, zupgtr,
297		zupmtr, izmax1, dzsum1, zstemr,
298		zcgesv, zlag2c, clag2z,
299		);
300
301if (-d "../lapack-3.1.1") {
302    @objs = (@blasobjs, @lapackobjs, @lapackobjs2);
303} else {
304    @objs = (@blasobjs, @lapackobjs);
305}
306
307if ($ARGV[3] == 1){ @objs = (@objs, @exblasobjs); };
308
309if ($ARGV[1] eq "X86_64"){ @objs = (@objs, @gemm3mobjs); };
310
311if ($ARGV[1] eq "x86"){ @objs = (@objs, @gemm3mobjs); };
312
313if ($ARGV[1] eq "ia64"){ @objs = (@objs, @gemm3mobjs); };
314
315if ($ARGV[1] eq "MIPS"){ @objs = (@objs, @gemm3mobjs); };
316
317@linuxobjs = ('__strtol_internal', 'exit', 'free', 'getenv', 'malloc',
318	      'mmap', 'printf', 'sqrt',
319	      'pthread_cond_broadcast', 'pthread_cond_destroy',
320	      'pthread_cond_init', 'pthread_cond_signal', 'pthread_cond_wait',
321	      'pthread_create', 'pthread_exit', 'pthread_join',
322	      'pthread_mutex_destroy', 'pthread_mutex_init',
323	      'pthread_mutex_lock', 'pthread_mutex_unlock');
324
325@hplobjs  = (daxpy, dcopy, dscal, idamax, dgemv, dtrsv, dger, dgemm, dtrsm);
326@hplobjs2 = (HPL_dlaswp00N, HPL_dlaswp01N, HPL_dlaswp01T);
327
328$bu = $ARGV[2];
329
330$bu = "" if (($bu eq "0") || ($bu eq "1"));
331
332if ($ARGV[0] eq "linux"){
333    foreach $objs (@objs) {
334	print $objs, $bu, "\n";
335    }
336
337    if ($ARGV[4] == 0) {
338	foreach $objs (@cblasobjs) {
339	    print $objs, "\n";
340	}
341    }
342
343    foreach $objs (@linuxobjs) {
344	print $objs, "\n";
345    }
346    exit(0);
347}
348
349if ($ARGV[0] eq "osx"){
350    foreach $objs (@objs) {
351	print "_", $objs, $bu, "\n";
352    }
353
354    if ($ARGV[4] == 0) {
355	foreach $objs (@cblasobjs) {
356	    print "_", $objs, "\n";
357	}
358    }
359    exit(0);
360}
361
362if ($ARGV[0] eq "aix"){
363    foreach $objs (@objs) {
364	print $objs, $bu, "\n";
365    }
366
367    if ($ARGV[4] == 0) {
368	foreach $objs (@cblasobjs) {
369	    print $objs, "\n";
370	}
371    }
372    exit(0);
373}
374
375if ($ARGV[0] eq "win2k"){
376    print "EXPORTS\n";
377    $count = 1;
378    foreach $objs (@objs) {
379	$uppercase = $objs;
380	$uppercase =~ tr/[a-z]/[A-Z]/;
381   	print "\t$objs=$objs","_  \@", $count, "\n";
382	$count ++;
383   	print "\t",$objs, "_=$objs","_  \@", $count, "\n";
384	$count ++;
385	print "\t$uppercase=$objs", "_  \@", $count, "\n";
386	$count ++;
387    }
388
389    exit(0);
390}
391
392if ($ARGV[0] eq "win2khpl"){
393    print "EXPORTS\n";
394    $count = 1;
395    foreach $objs (@hplobjs) {
396	$uppercase = $objs;
397	$uppercase =~ tr/[a-z]/[A-Z]/;
398   	print "\t$objs=$objs","_  \@", $count, "\n";
399	$count ++;
400   	print "\t",$objs, "_=$objs","_  \@", $count, "\n";
401	$count ++;
402	print "\t$uppercase=$objs", "_  \@", $count, "\n";
403	$count ++;
404    }
405
406#    foreach $objs (@hplobjs2) {
407#   	print "\t$objs=$objs","  \@", $count, "\n";
408#	$count ++;
409#    }
410
411    exit(0);
412}
413
414if ($ARGV[0] eq "microsoft"){
415    print "EXPORTS\n";
416    $count = 1;
417    foreach $objs (@objs) {
418	$uppercase = $objs;
419	$uppercase =~ tr/[a-z]/[A-Z]/;
420   	print "\t$objs = $objs","_\n";
421	$count ++;
422   	print "\t$objs\_ = $objs","_\n";
423	$count ++;
424   	print "\t$uppercase = $objs","_\n";
425	$count ++;
426   	print "\t$uppercase\_ = $objs","_\n";
427	$count ++;
428    }
429    exit(0);
430}
431
432if ($ARGV[0] eq "win2kasm"){
433    print "\t.text\n";
434    foreach $objs (@objs) {
435	$uppercase = $objs;
436	$uppercase =~ tr/[a-z]/[A-Z]/;
437	print "\t.align 16\n";
438	print "\t.globl _", $uppercase, "_\n";
439	print "_", $uppercase, "_:\n";
440	print "\tjmp\t_", $objs, "_\n";
441    }
442    exit(0);
443}
444
445if ($ARGV[0] eq "linktest"){
446    print "int main(void){\n";
447    foreach $objs (@objs) {
448	print $objs, $bu, "();\n" if $objs ne "xerbla";
449    }
450    if ($ARGV[4] == 0) {
451	foreach $objs (@cblasobjs) {
452	print $objs, "();\n";
453	}
454    }
455
456
457
458
459    print "return 0;}\n";
460    exit(0);
461}
462
463