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