#     Copyright Rasmus Munk Larsen, Stanford University, 2003

include make.inc


### Object files.

RML =       elden.o  timer.o dgemm_ovwr.o byteswapIO.o \
            parblas.o diskmalloc.o xerbla.o 
OLASUB =    2dolaIO.o target.o avker.o covariance.o 
COMMON =    $(RML) $(OLASUB) 
LANCZOS =   2dsola.main.lanczos.o 2dsola.sub.lanczos.o dlanc_b.o \
            dkronecker2.o $(MGS).o
SETUP = set-2drls.nn.o set2dker.nn.o kersub.n.o splitsub.o \
        miscsub.o ran.o plm.o
LPATH = $(LIBPATH) -LLinpack -L.
LIBS =  $(LAPACK) $(BLAS) -llinpack.$(PLAT)


### Linking information for executables. ###
all: linpack 2dsola.lanczos.x set-2drls.nn.x


$(OLASUB) $(LANCZOS): 2dsola.n.include.f

$(SETUP): include1.n.f include1.f include2.f

.F.o:
	$(F77)  $(FFLAGS) $(IPATH) -c -o $*.o $*.F
.f.o:
	$(F77)  $(FFLAGS) $(IPATH) -c -o $*.o $*.f
.c.o:
	$(CC)   $(CFLAGS) $(IPATH) -c -o $*.o $*.c


### Dependencies
set-2drls.nn.x: set-2drls.nn.$(PLAT).x
2dsola.lanczos.x: 2dsola.lanczos.$(PLAT).x

linpack:
	@( cd Linpack; \
	$(MAKE) lib; \
	cd .. )		

set-2drls.nn.$(PLAT).x: linpack $(SETUP)
	$(LINKER) $(LINKFLAGS) -o set-2drls.nn.$(PLAT).x $(SETUP) $(COMMON) \
         $(LPATH) $(LIBS)

2dsola.lanczos.$(PLAT).x: linpack $(LANCZOS) $(COMMON) 2dsola.lanczos.o 
	$(LINKER) $(LINKFLAGS) -o 2dsola.lanczos.$(PLAT).x  2dsola.lanczos.o \
        $(LANCZOS)  $(COMMON)  $(LPATH) $(LIBS)
clean:	
	touch blah.o
	rm -f  *.o *~ core Linpack/*.{o,a} 
cleanall:	
	touch blah.o
	rm -f *.o *~ core *.x Example/Kernels/* Example/Inversion/* Linpack/*.{o,a} 
