1#$Id$ 2ifeq ($(BLAS_SIZE),4) 3USE_I4FLAGS=y 4endif 5include ../config/makefile.h 6 7 LIBRARY = libnwclapack.a 8 PRECISION = double 9 10# 11# Determine if single or double precision is required 12# 13 14 VPATH = double:single 15 16ifeq ($(TARGET),KSR) 17 PRECISION = single 18endif 19 20ifeq ($(USE_PRECISION),single) 21 PRECISION = single 22endif 23ifeq ($(USE_PRECISION),double) 24 PRECISION = double 25endif 26 27ifndef PRECISION 28error: 29 @echo Lapack makefile does not have PRECISION defined 30 @exit 1 31endif 32 33ifeq ($(PRECISION),double) 34OBJ_DLAMCH = dlamch.o dlaisnan.o 35OBJ_OPTIMIZE = dbdsqr.o dgebd2.o dgebrd.o dgelq2.o \ 36 dgelqf.o dgeqr2.o dgeqrf.o dgesv.o \ 37 dgesvd.o dgetf2.o dgetrf.o dgetrs.o \ 38 disnan.o dlahr2.o dlaqr0.o \ 39 dlabrd.o dlacon.o dlacpy.o dladiv.o \ 40 dlae2.o dlaev2.o dlaexc.o dlagtf.o dlagts.o \ 41 dgels.o dlange.o dlansp.o dtrti2.o \ 42 dlanst.o dlansy.o dlapy2.o dlapy3.o \ 43 dlarf.o dlarfb.o dlarfg.o dlarft.o \ 44 dlarnv.o dlartg.o dlaruv.o dlas2.o dlasy2.o \ 45 dlacn2.o dlaqr1.o dlaqr2.o dlaqr3.o dlaqr4.o dlaqr5.o \ 46 dlascl.o dlaset.o dlasr.o dlasrt.o \ 47 dlassq.o dlasv2.o dlaswp.o dlatrd.o \ 48 dlauu2.o dlauum.o dorg2l.o dorg2r.o \ 49 dormhr.o dgtsv.o \ 50 dorgbr.o dorgl2.o dorglq.o dorgql.o \ 51 dorgqr.o dorgtr.o dorm2r.o dormbr.o \ 52 dorml2.o dormlq.o dormqr.o dpotf2.o \ 53 dpotrf.o dpotri.o dspcon.o dsprfs.o \ 54 dspsvx.o dsptrf.o dsptrs.o dsteqr.o \ 55 dsterf.o dsyev.o dsygs2.o dsygst.o \ 56 dsygv.o dsytd2.o dsytrd.o dtrexc.o dtrtri.o \ 57 dlasq1.o dlasq2.o dlasq3.o dlasq5.o \ 58 dlasq4.o dlasq6.o dposv.o dtrtrs.o \ 59 dpotrs.o dlaebz.o dstedc.o \ 60 dlaed0.o dlaed1.o dlaed2.o dlaed3.o dlaed4.o dlaed5.o dlaed6.o dlaed7.o dlaed8.o dlaed9.o \ 61 dlamrg.o dlaeda.o \ 62 ilaenv.o ieeeck.o lsamen.o iladlr.o iladlc.o ilazlc.o ilazlr.o iparmq.o \ 63 zbdsqr.o zgebd2.o zgebrd.o zgelq2.o zgelqf.o zgeqr2.o \ 64 zgeqrf.o zgesvd.o \ 65 zheev.o zhegs2.o zhegst.o zhegv.o \ 66 zhetd2.o zhetrd.o zlacgv.o zladiv.o \ 67 zlanhe.o zlarf.o zlarfb.o zlarfg.o \ 68 zlabrd.o \ 69 zlarft.o zlascl.o zlaset.o zlasr.o \ 70 zlassq.o zlatrd.o zpotf2.o zpotrf.o \ 71 zsteqr.o zung2l.o zung2r.o zungql.o \ 72 zspcon.o zspmv.o zspr.o zsprfs.o \ 73 zspsvx.o zsptrf.o zsptrs.o \ 74 zlacon.o zlacpy.o zlansp.o zungbr.o zungl2.o zunglq.o \ 75 zungqr.o zungtr.o zunm2r.o zunmbr.o zunml2.o zunmlq.o \ 76 zunmqr.o \ 77 zlarfx.o zunghr.o zlatrs.o zgebak.o zgebal.o zgeev.o \ 78 zgehd2.o zgehrd.o zgesv.o zgetf2.o zgetrf.o zgetrs.o \ 79 zhseqr.o zlahqr.o zlahrd.o zlange.o zlanhs.o dlabad.o \ 80 ztrevc.o zlaswp.o zrot.o zlaqr3.o ztrexc.o zunmhr.o zlahr2.o zlaqr0.o\ 81 zlaqr4.o zlartg.o zlaqr1.o xerbla.o zlaqr5.o zlaqr2.o lsame.o \ 82 dgeev.o dgeevx.o dgebak.o dgebal.o dgehrd.o dtrsna.o dlaqtr.o \ 83 dhseqr.o dorghr.o dtrevc.o dlaln2.o dlahqr.o dgehd2.o \ 84 dlanhs.o dlarfx.o dlahrd.o dlanv2.o \ 85 dlarra.o dlarrb.o dlarrc.o dlarrd.o dlarrf.o dlarrk.o dlarrv.o\ 86 dlar1v.o dlaneg.o dgelss.o dcombssq.o 87 88#pgf77 on Linux, hpux (and possibly others) puts dlamch routines into infinite loop 89 OBJ = $(OBJ_DLAMCH) 90else 91######################################################################## 92OBJ_OPTIMIZE = sbdsqr.o sgebd2.o sgebrd.o sgelq2.o \ 93 sgelqf.o sgeqr2.o sgeqrf.o sgesv.o \ 94 sgesvd.o sgetf2.o sgetrf.o sgetrs.o \ 95 sisnan.o slahr2.o slaqr0.o slaqr1.o \ 96 slaqr2.o slaqr3.o slaqr4.o slaqr5.o \ 97 slasy2.o sgehd2.o \ 98 slabrd.o slacon.o slacpy.o sladiv.o \ 99 slae2.o slaev2.o slagtf.o slagts.o \ 100 slamch.o slange.o slansp.o strti2.o \ 101 slanv2.o slahqr.o slacn2.o slarfx.o \ 102 slanst.o slansy.o slapy2.o slapy3.o \ 103 slarf.o slarfb.o slarfg.o slarft.o \ 104 slarnv.o slartg.o slaruv.o slas2.o \ 105 slascl.o slaset.o slasr.o slasrt.o \ 106 slassq.o slasv2.o slaswp.o slatrd.o \ 107 slauu2.o slauum.o sorg2l.o sorg2r.o \ 108 sorgbr.o sorgl2.o sorglq.o sorgql.o \ 109 sorgqr.o sorgtr.o sorm2r.o sormbr.o \ 110 sormhr.o sgeev.o slaisnan.o slaln2.o \ 111 sorml2.o sormlq.o sormqr.o spotf2.o \ 112 spotrf.o spotri.o sspcon.o ssprfs.o \ 113 sspsvx.o ssptrf.o ssptrs.o ssteqr.o \ 114 ssterf.o ssyev.o ssygs2.o ssygst.o \ 115 ssygv.o ssytd2.o ssytrd.o strtri.o \ 116 slasq1.o slasq2.o slasq3.o slasq5.o \ 117 slasq4.o slasq6.o sposv.o strtrs.o\ 118 spotrs.o slaebz.o sstedc.o \ 119 slaed0.o slaed1.o slaed2.o slaed3.o slaed4.o slaed5.o slaed6.o slaed7.o slaed8.o slaed9.o \ 120 slamrg.o slaeda.o strexc.o slabrd.o \ 121 slaexc.o ilaslr.o ilaslc.o ilaclc.o \ 122 ilaclr.o iparmq.o \ 123 ilaenv.o ieeeck.o lsamen.o \ 124 cheev.o chegs2.o chegst.o chegv.o \ 125 chetd2.o chetrd.o clacgv.o cladiv.o \ 126 clanhe.o clarf.o clarfb.o clarfg.o \ 127 clarft.o clascl.o claset.o clasr.o \ 128 classq.o clatrd.o cpotf2.o cpotrf.o \ 129 csteqr.o cung2l.o cung2r.o cungql.o \ 130 cungqr.o cungtr.o cungbr.o cunm2r.o \ 131 cunmbr.o cunml2.o cunmlq.o cungl2.o \ 132 cgehd2.o cgehrd.o clahrd.o cgebak.o cgebal.o cgeev.o \ 133 chseqr.o clacpy.o clahqr.o clange.o clanhs.o clarfx.o \ 134 clatrs.o ctrevc.o cunghr.o slabad.o claswp.o \ 135 sgebak.o sgebal.o sgehrd.o shseqr.o sorghr.o strevc.o scombssq.o 136endif 137 138include ../config/makelib.h 139 140ifeq ($(_FC),ifc) 141 ifeq ($(_IFCV81),Y) 142 FOPTIMIZE +=-ip_no_inlining 143 endif 144endif 145#this fixes FPE in lapack/dlagts for dft_feco5 146#this fixes hangs in dlamch 147ifeq ($(_FC),g77) 148 FDEBUG +=-ffloat-store -fno-fast-math 149endif 150ifeq ($(_FC),gfortran) 151ifneq ($(FC),flang) 152 FDEBUG +=-ffloat-store -fno-fast-math 153else 154 FDEBUG +=-O0 -g -Kieee -fno-fast-math -fno-finite-math-only 155 FOPTIMIZE += -Kieee -fno-fast-math -fno-finite-math-only 156endif 157endif 158 159