FORTRAN = f77
OPTS    = -O -u
NOOPT   = -u

#######################################################################
#  This is the makefile to create a library for LAPACK.
#  The files are organized as follows:
#       ALLAUX -- Auxiliary routines called from all precisions
#       SCLAUX -- Auxiliary routines called from both REAL and COMPLEX
#       DZLAUX -- Auxiliary routines called from both DOUBLE PRECISION
#                 and COMPLEX*16
#       SLASRC -- Single precision real LAPACK routines
#       CLASRC -- Single precision complex LAPACK routines
#       DLASRC -- Double precision real LAPACK routines
#       ZLASRC -- Double precision complex LAPACK routines
#
#  The library can be set up to include routines for any combination
#  of the four precisions.  First, modify the FORTRAN and OPTS 
#  definitions to match your compiler and the options to be used.
#  Then to create or add to the library, enter make followed by one or
#  more of the precisions desired.  Some examples:
#       make single
#       make single complex
#       make single double complex complex16
#  Alternatively, the command
#       make
#  without any arguments creates a library of all four precisions.
#  The library is called
#       lapack.a
#  and is created at the next higher directory level.
#
#  To remove the object files after the library is created, enter
#       make clean
#  On some systems, you can force the source files to be recompiled by
#  entering (for example)
#       make single FRC=FRC
#
#  ***Note***
#  The functions lsame, second, dsecnd, slamch, and dlamch may have
#  to be installed before compiling the library.  Refer to the
#  installation guide, LAPACK Working Note 35, for instructions.
#
#  ***Note***
#  On some systems, the ranlib command is not needed and the ranlib
#  command statements must be commented out or deleted.
#
#----------------------------------------------------------------------
#
#  Edward Anderson, University of Tennessee
#  March 26, 1990. 
#  Susan Ostrouchov, Last updated January 31, 1992.
#
#######################################################################
 
ALLAUX = ilaenv.o lsame.o lsamen.o xerbla.o

SCLAUX = \
   slabad.o sladiv.o slae2.o  slaebz.o slaev2.o slagtf.o slagts.o \
   slamch.o slapy2.o slapy3.o slarnv.o slartg.o slaruv.o \
   slas2.o  slasv2.o sstebz.o ssterf.o second.o

DZLAUX = \
   dlabad.o dladiv.o dlae2.o  dlaebz.o dlaev2.o dlagtf.o dlagts.o \
   dlamch.o dlapy2.o dlapy3.o dlarnv.o dlartg.o dlaruv.o \
   dlas2.o  dlasv2.o dstebz.o dsterf.o dsecnd.o

SLASRC = \
   sbdsqr.o sgbcon.o sgbequ.o sgbrfs.o sgbsv.o  \
   sgbsvx.o sgbtf2.o sgbtrf.o sgbtrs.o sgebak.o sgebal.o sgebd2.o \
   sgebrd.o sgecon.o sgeequ.o sgees.o  sgeesx.o sgeev.o  sgeevx.o \
   sgehd2.o sgehrd.o sgelq2.o sgelqf.o \
   sgels.o  sgelss.o sgelsx.o sgeql2.o sgeqlf.o \
   sgeqpf.o sgeqr2.o sgeqrf.o sgerfs.o sgerq2.o sgerqf.o \
   sgesv.o  sgesvd.o sgesvx.o sgetf2.o sgetrf.o sgetri.o \
   sgetrs.o sgtcon.o sgtrfs.o sgtsv.o  \
   sgtsvx.o sgttrf.o sgttrs.o \
   shsein.o shseqr.o slabrd.o slacon.o slacpy.o slaein.o \
   slaexc.o slagtm.o slahqr.o \
   slahrd.o slaic1.o slaln2.o \
   slangb.o slange.o slangt.o slanhs.o slansb.o slansp.o \
   slanst.o slansy.o slantb.o slantp.o slantr.o slanv2.o \
   slaqgb.o slaqge.o slaqsb.o slaqsp.o slaqsy.o slaqtr.o slar2v.o \
   slarf.o  slarfb.o slarfg.o slarft.o slarfx.o slargv.o slartv.o \
   slascl.o slaset.o slasr.o  slassq.o slaswp.o slasy2.o slasyf.o \
   slatbs.o slatps.o slatrd.o slatrs.o slatzm.o slauu2.o slauum.o \
   slazro.o sopgtr.o sopmtr.o sorg2l.o sorg2r.o \
   sorgbr.o sorghr.o sorgl2.o sorglq.o sorgql.o sorgqr.o sorgr2.o \
   sorgrq.o sorgtr.o sorm2l.o sorm2r.o \
   sormbr.o sormhr.o sorml2.o sormlq.o sormql.o sormqr.o sormr2.o \
   sormrq.o sormtr.o spbcon.o spbequ.o spbrfs.o spbsv.o  spbsvx.o \
   spbtf2.o spbtrf.o spbtrs.o spocon.o spoequ.o sporfs.o sposv.o  \
   sposvx.o spotf2.o spotrf.o spotri.o spotrs.o sppcon.o sppequ.o \
   spprfs.o sppsv.o  sppsvx.o spptrf.o spptri.o spptrs.o sptcon.o \
   spteqr.o sptrfs.o sptsv.o  sptsvx.o spttrf.o spttrs.o srscl.o  \
   ssbev.o  ssbevx.o ssbtrd.o sspcon.o sspev.o  sspevx.o sspgst.o \
   sspgv.o  ssprfs.o sspsv.o  sspsvx.o ssptrd.o ssptrf.o ssptri.o \
   ssptrs.o sstein.o ssteqr.o sstev.o  sstevx.o ssycon.o ssyev.o  \
   ssyevx.o ssygs2.o ssygst.o ssygv.o  ssyrfs.o ssysv.o  ssysvx.o \
   ssytd2.o ssytf2.o ssytrd.o ssytrf.o ssytri.o ssytrs.o stbcon.o \
   stbrfs.o stbtrs.o stpcon.o stprfs.o stptri.o stptrs.o \
   strcon.o strevc.o strexc.o strrfs.o strsen.o strsna.o strsyl.o \
   strti2.o strtri.o strtrs.o stzrqf.o

CLASRC = \
   cbdsqr.o cgbcon.o cgbequ.o cgbrfs.o cgbsv.o  cgbsvx.o \
   cgbtf2.o cgbtrf.o cgbtrs.o cgebak.o cgebal.o cgebd2.o cgebrd.o \
   cgecon.o cgeequ.o cgees.o  cgeesx.o cgeev.o  cgeevx.o \
   cgehd2.o cgehrd.o cgelq2.o cgelqf.o \
   cgels.o  cgelss.o cgelsx.o cgeql2.o cgeqlf.o cgeqpf.o \
   cgeqr2.o cgeqrf.o cgerfs.o cgerq2.o cgerqf.o \
   cgesv.o  cgesvd.o cgesvx.o cgetf2.o cgetrf.o cgetri.o cgetrs.o \
   cgtcon.o cgtrfs.o cgtsv.o  cgtsvx.o cgttrf.o cgttrs.o chbev.o  \
   chbevx.o chbtrd.o checon.o cheev.o  cheevx.o chegs2.o chegst.o \
   chegv.o  cherfs.o chesv.o  chesvx.o chetd2.o chetf2.o chetrd.o \
   chetrf.o chetri.o chetrs.o chpcon.o chpev.o  chpevx.o \
   chpgst.o chpgv.o  chprfs.o chpsv.o  chpsvx.o \
   chptrd.o chptrf.o chptri.o chptrs.o chsein.o chseqr.o clabrd.o \
   clacgv.o clacon.o clacpy.o clacrt.o cladiv.o \
   claein.o claesy.o claev2.o clagtm.o \
   clahef.o clahqr.o \
   clahrd.o claic1.o clangb.o clange.o clangt.o clanhb.o clanhe.o \
   clanhp.o clanhs.o clansb.o clansp.o clanst.o clansy.o clantb.o \
   clantp.o clantr.o claqgb.o claqge.o claqsb.o \
   claqsp.o claqsy.o clar2v.o clarf.o  clarfb.o clarfg.o clarft.o \
   clarfx.o clargv.o clarnv.o clartg.o clartv.o \
   clascl.o claset.o clasr.o  classq.o claswp.o clasyf.o \
   clatbs.o clatps.o clatrd.o clatrs.o clatzm.o clauu2.o clauum.o \
   clazro.o cpbcon.o cpbequ.o cpbrfs.o cpbsv.o  \
   cpbsvx.o cpbtf2.o cpbtrf.o cpbtrs.o cpocon.o cpoequ.o cporfs.o \
   cposv.o  cposvx.o cpotf2.o cpotrf.o cpotri.o cpotrs.o cppcon.o \
   cppequ.o cpprfs.o cppsv.o  cppsvx.o cpptrf.o cpptri.o cpptrs.o \
   cptcon.o cpteqr.o cptrfs.o cptsv.o  cptsvx.o cpttrf.o cpttrs.o \
   crot.o   cspcon.o cspmv.o  cspr.o   csprfs.o cspsv.o  \
   cspsvx.o csptrf.o csptri.o csptrs.o csrot.o  csrscl.o cstein.o \
   csteqr.o csycon.o csymv.o  \
   csyr.o   csyrfs.o csysv.o  csysvx.o csytf2.o csytrf.o csytri.o \
   csytrs.o ctbcon.o ctbrfs.o ctbtrs.o ctpcon.o ctprfs.o \
   ctptri.o \
   ctptrs.o ctrcon.o ctrevc.o ctrexc.o ctrrfs.o ctrsen.o ctrsna.o \
   ctrsyl.o ctrti2.o ctrtri.o ctrtrs.o ctzrqf.o cung2l.o cung2r.o \
   cungbr.o cunghr.o cungl2.o cunglq.o cungql.o cungqr.o cungr2.o \
   cungrq.o cungtr.o cunm2l.o cunm2r.o cunmbr.o cunmhr.o cunml2.o \
   cunmlq.o cunmql.o cunmqr.o cunmr2.o cunmrq.o cunmtr.o cupgtr.o \
   cupmtr.o icmax1.o scsum1.o

DLASRC = \
   dbdsqr.o dgbcon.o dgbequ.o dgbrfs.o dgbsv.o  \
   dgbsvx.o dgbtf2.o dgbtrf.o dgbtrs.o dgebak.o dgebal.o dgebd2.o \
   dgebrd.o dgecon.o dgeequ.o dgees.o  dgeesx.o dgeev.o  dgeevx.o \
   dgehd2.o dgehrd.o dgelq2.o dgelqf.o \
   dgels.o  dgelss.o dgelsx.o dgeql2.o dgeqlf.o \
   dgeqpf.o dgeqr2.o dgeqrf.o dgerfs.o dgerq2.o dgerqf.o \
   dgesv.o  dgesvd.o dgesvx.o dgetf2.o dgetrf.o dgetri.o \
   dgetrs.o dgtcon.o dgtrfs.o dgtsv.o  \
   dgtsvx.o dgttrf.o dgttrs.o \
   dhsein.o dhseqr.o dlabrd.o dlacon.o dlacpy.o dlaein.o \
   dlaexc.o dlagtm.o dlahqr.o \
   dlahrd.o dlaic1.o dlaln2.o \
   dlangb.o dlange.o dlangt.o dlanhs.o dlansb.o dlansp.o \
   dlanst.o dlansy.o dlantb.o dlantp.o dlantr.o dlanv2.o \
   dlaqgb.o dlaqge.o dlaqsb.o dlaqsp.o dlaqsy.o dlaqtr.o dlar2v.o \
   dlarf.o  dlarfb.o dlarfg.o dlarft.o dlarfx.o dlargv.o dlartv.o \
   dlascl.o dlaset.o dlasr.o  dlassq.o dlaswp.o dlasy2.o dlasyf.o \
   dlatbs.o dlatps.o dlatrd.o dlatrs.o dlatzm.o dlauu2.o dlauum.o \
   dlazro.o dopgtr.o dopmtr.o dorg2l.o dorg2r.o \
   dorgbr.o dorghr.o dorgl2.o dorglq.o dorgql.o dorgqr.o dorgr2.o \
   dorgrq.o dorgtr.o dorm2l.o dorm2r.o \
   dormbr.o dormhr.o dorml2.o dormlq.o dormql.o dormqr.o dormr2.o \
   dormrq.o dormtr.o dpbcon.o dpbequ.o dpbrfs.o dpbsv.o  dpbsvx.o \
   dpbtf2.o dpbtrf.o dpbtrs.o dpocon.o dpoequ.o dporfs.o dposv.o  \
   dposvx.o dpotf2.o dpotrf.o dpotri.o dpotrs.o dppcon.o dppequ.o \
   dpprfs.o dppsv.o  dppsvx.o dpptrf.o dpptri.o dpptrs.o dptcon.o \
   dpteqr.o dptrfs.o dptsv.o  dptsvx.o dpttrf.o dpttrs.o drscl.o  \
   dsbev.o  dsbevx.o dsbtrd.o dspcon.o dspev.o  dspevx.o dspgst.o \
   dspgv.o  dsprfs.o dspsv.o  dspsvx.o dsptrd.o dsptrf.o dsptri.o \
   dsptrs.o dstein.o dsteqr.o dstev.o  dstevx.o dsycon.o dsyev.o  \
   dsyevx.o dsygs2.o dsygst.o dsygv.o  dsyrfs.o dsysv.o  dsysvx.o \
   dsytd2.o dsytf2.o dsytrd.o dsytrf.o dsytri.o dsytrs.o dtbcon.o \
   dtbrfs.o dtbtrs.o dtpcon.o dtprfs.o dtptri.o dtptrs.o \
   dtrcon.o dtrevc.o dtrexc.o dtrrfs.o dtrsen.o dtrsna.o dtrsyl.o \
   dtrti2.o dtrtri.o dtrtrs.o dtzrqf.o

ZLASRC = \
   zbdsqr.o zgbcon.o zgbequ.o zgbrfs.o zgbsv.o  zgbsvx.o \
   zgbtf2.o zgbtrf.o zgbtrs.o zgebak.o zgebal.o zgebd2.o zgebrd.o \
   zgecon.o zgeequ.o zgees.o  zgeesx.o zgeev.o  zgeevx.o \
   zgehd2.o zgehrd.o zgelq2.o zgelqf.o \
   zgels.o  zgelss.o zgelsx.o zgeql2.o zgeqlf.o zgeqpf.o \
   zgeqr2.o zgeqrf.o zgerfs.o zgerq2.o zgerqf.o \
   zgesv.o  zgesvd.o zgesvx.o zgetf2.o zgetrf.o zgetri.o zgetrs.o \
   zgtcon.o zgtrfs.o zgtsv.o  zgtsvx.o zgttrf.o zgttrs.o zhbev.o  \
   zhbevx.o zhbtrd.o zhecon.o zheev.o  zheevx.o zhegs2.o zhegst.o \
   zhegv.o  zherfs.o zhesv.o  zhesvx.o zhetd2.o zhetf2.o zhetrd.o \
   zhetrf.o zhetri.o zhetrs.o zhpcon.o zhpev.o  zhpevx.o \
   zhpgst.o zhpgv.o  zhprfs.o zhpsv.o  zhpsvx.o \
   zhptrd.o zhptrf.o zhptri.o zhptrs.o zhsein.o zhseqr.o zlabrd.o \
   zlacgv.o zlacon.o zlacpy.o zlacrt.o zladiv.o \
   zlaein.o zlaesy.o zlaev2.o zlagtm.o \
   zlahef.o zlahqr.o \
   zlahrd.o zlaic1.o zlangb.o zlange.o zlangt.o zlanhb.o zlanhe.o \
   zlanhp.o zlanhs.o zlansb.o zlansp.o zlanst.o zlansy.o zlantb.o \
   zlantp.o zlantr.o zlaqgb.o zlaqge.o zlaqsb.o \
   zlaqsp.o zlaqsy.o zlar2v.o zlarf.o  zlarfb.o zlarfg.o zlarft.o \
   zlarfx.o zlargv.o zlarnv.o zlartg.o zlartv.o \
   zlascl.o zlaset.o zlasr.o  zlassq.o zlaswp.o zlasyf.o \
   zlatbs.o zlatps.o zlatrd.o zlatrs.o zlatzm.o zlauu2.o zlauum.o \
   zlazro.o zpbcon.o zpbequ.o zpbrfs.o zpbsv.o  \
   zpbsvx.o zpbtf2.o zpbtrf.o zpbtrs.o zpocon.o zpoequ.o zporfs.o \
   zposv.o  zposvx.o zpotf2.o zpotrf.o zpotri.o zpotrs.o zppcon.o \
   zppequ.o zpprfs.o zppsv.o  zppsvx.o zpptrf.o zpptri.o zpptrs.o \
   zptcon.o zpteqr.o zptrfs.o zptsv.o  zptsvx.o zpttrf.o zpttrs.o \
   zrot.o   zspcon.o zspmv.o  zspr.o   zsprfs.o zspsv.o  \
   zspsvx.o zsptrf.o zsptri.o zsptrs.o zdrot.o  zdrscl.o zstein.o \
   zsteqr.o zsycon.o zsymv.o  \
   zsyr.o   zsyrfs.o zsysv.o  zsysvx.o zsytf2.o zsytrf.o zsytri.o \
   zsytrs.o ztbcon.o ztbrfs.o ztbtrs.o ztpcon.o ztprfs.o \
   ztptri.o \
   ztptrs.o ztrcon.o ztrevc.o ztrexc.o ztrrfs.o ztrsen.o ztrsna.o \
   ztrsyl.o ztrti2.o ztrtri.o ztrtrs.o ztzrqf.o zung2l.o zung2r.o \
   zungbr.o zunghr.o zungl2.o zunglq.o zungql.o zungqr.o zungr2.o \
   zungrq.o zungtr.o zunm2l.o zunm2r.o zunmbr.o zunmhr.o zunml2.o \
   zunmlq.o zunmql.o zunmqr.o zunmr2.o zunmrq.o zunmtr.o zupgtr.o \
   zupmtr.o izmax1.o dzsum1.o

all: single complex double complex16

single: $(SLASRC) $(ALLAUX) $(SCLAUX) 
	ar cr ../lapack.a $(SLASRC) $(ALLAUX) $(SCLAUX) 
	ranlib ../lapack.a

complex: $(CLASRC) $(ALLAUX) $(SCLAUX)
	ar cr ../lapack.a $(CLASRC) $(ALLAUX) $(SCLAUX)
	ranlib ../lapack.a

double: $(DLASRC) $(ALLAUX) $(DZLAUX)
	ar cr ../lapack.a $(DLASRC) $(ALLAUX) $(DZLAUX)
	ranlib ../lapack.a

complex16: $(ZLASRC) $(ALLAUX) $(DZLAUX)
	ar cr ../lapack.a $(ZLASRC) $(ALLAUX) $(DZLAUX)
	ranlib ../lapack.a

$(ALLAUX): $(FRC)
$(SCLAUX): $(FRC)
$(DZLAUX): $(FRC)
$(SLASRC): $(FRC)
$(CLASRC): $(FRC)
$(DLASRC): $(FRC)
$(ZLASRC): $(FRC)

FRC:
	@FRC=$(FRC)

clean:
	rm -f *.o

slamch.o: slamch.f
	$(FORTRAN) $(NOOPT) -c $<
dlamch.o: dlamch.f
	$(FORTRAN) $(NOOPT) -c $<

.f.o: 
	$(FORTRAN) $(OPTS) -c $<
