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