include ../../Make.inc

#FCOPT=-O2 

BLASOBJS= typesp.o typedesc.o f90psblas.o
METHDOBJS=f90methd.o
TOOLSOBJS=tools_const.o f90tools.o 

F90OBJS= $(BLASOBJS) $(METHDOBJS) $(TOOLSOBJS) f90sparse.o


PARTS=parts.f90


LIBDIR=../../LIB/
BLASLIB=libpsblas90.a
METHDLIB=libmethd90.a
TOOLSLIB=libtools90.a
F90LIB=$(BLASLIB) $(METHDLIB) $(TOOLSLIB)

INCDIRS=-I. -I$(LIBDIR)

lib: modules blaslib toolslib methdlib 

$(TOOLSOBJS) : $(LIBDIR)/sparker.fh



modules: $(F90OBJS)
	ar -cur $(BLASLIB)		$(BLASOBJS) 
	ar -cur $(METHDLIB)		$(METHDOBJS)
	ar -cur $(TOOLSLIB)		$(TOOLSOBJS)
	ranlib $(BLASLIB)
	ranlib $(METHDLIB)	
	ranlib $(TOOLSLIB)
	/bin/mv $(F90LIB) $(LIBDIR)
	/bin/cp -p $(F90MODS) $(PARTS) $(LIBDIR)
	(/bin/cp -p V*.inc $(LIBDIR) 2>/dev/null || /bin/true) #This for VAST compiler
#	(/bin/cp -p psblas.pcl  $(LIBDIR)/ 2>/dev/null || /bin/true) #This for INTEL compiler
#	(/bin/cp -p work.pc  $(LIBDIR)/psblas.pc 2>/dev/null || /bin/true) #This for INTEL compiler

blaslib:
	(cd PSBLAS; make lib F90LIB=$(BLASLIB)  FCOPT="$(FCOPT) -I..")
methdlib:
	(cd METHD; make lib F90LIB=$(METHDLIB)  FCOPT="$(FCOPT) -I..")
toolslib:
	(cd TOOLS; make lib F90LIB=$(TOOLSLIB)  FCOPT="$(FCOPT) -I..")

clean: cleanblas cleanmethd cleantools
	/bin/rm -f $(F90OBJS) $(F90MODS)
cleanblas:
	(cd PSBLAS; make clean)
cleanmethd:
	(cd METHD; make clean)
cleantools:
	(cd TOOLS; make clean)

veryclean: verycleanblas verycleanmethd verycleantools
	/bin/rm -f $(F90OBJS) $(F90MODS) V*.inc work.pc sparker.fh

verycleanblas:
	(cd PSBLAS; make veryclean F90LIB=$(BLASLIB))
verycleanmethd:
	(cd METHD; make veryclean F90LIB=$(METHDLIB))
verycleantools:
	(cd TOOLS; make veryclean F90LIB=$(TOOLSLIB))



