include ../Make.inc
#
# Libraries used
#
LIBDIR=../lib/
PSBLAS_LIB= -L$(LIBDIR) -lpsb_base
#-lpsb_util -lpsb_krylov -lpsb_prec -lpsb_base 
LDLIBS=$(PSBLDLIBS)
#
# Compilers and such
#
CCOPT= -g
FINCLUDES=$(FMFLAG)$(LIBDIR) $(FMFLAG).
HERE=.
LIBMOD=*$(.mod)

LIBDIR=../lib

EXEDIR=./runs

OBJS=psb_d_ell_impl.o psb_d_ell_mat_mod.o \
	rsb_z_mod.o psb_z_rsb_mat_mod.o \
	rsb_c_mod.o psb_c_rsb_mat_mod.o \
	rsb_s_mod.o psb_s_rsb_mat_mod.o \
       	rsb_d_mod.o psb_d_rsb_mat_mod.o

LIBNAME=libpsb_opt.a

lib: $(OBJS)
	$(AR) $(HERE)/$(LIBNAME) $(OBJS)
	$(RANLIB) $(HERE)/$(LIBNAME)
	/bin/cp -p $(CPUPDFLAG) $(HERE)/$(LIBNAME) $(LIBDIR)
	/bin/cp -p $(CPUPDFLAG)  *$(.mod) $(LIBDIR)


libpsb_opt.a: $(OBJS)
	ar cur libpsb_opt.a $(OBJS)

psb_d_ell_impl.o: psb_d_ell_mat_mod.o
psb_d_rsb_mat_mod.o:  rsb_d_mod.o
psb_z_rsb_mat_mod.o:  rsb_z_mod.o
psb_c_rsb_mat_mod.o:  rsb_c_mod.o
psb_s_rsb_mat_mod.o:  rsb_s_mod.o

RSBD2Z=sed 's/c_typecode=68/c_typecode=90/g;s/rsb_d_/rsb_z_/g;s/psb_d_/psb_z_/g;s/real(psb_dpk_)/complex(psb_dpk_)/g;s/real(c_double)/complex(c_double)/g;s/complex(psb_dpk_)\(.*\)csnmi_res/real(psb_dpk_)\1csnmi_res/g' 
RSBD2S=sed 's/c_typecode=68/c_typecode=83/g;s/rsb_d_/rsb_s_/g;s/psb_d_/psb_s_/g;s/real(psb_dpk_)/real(psb_spk_)/g;s/real(c_double)/real(c_float)/g;s/real(psb_dpk_)\(.*\)csnmi_res/real(psb_spk_)\1csnmi_res/g' 
RSBD2C=sed 's/c_typecode=68/c_typecode=67/g;s/rsb_d_/rsb_c_/g;s/psb_d_/psb_c_/g;s/real(psb_dpk_)/complex(psb_spk_)/g;s/real(c_double)/complex(c_float)/g;s/complex(psb_spk_)\(.*\)csnmi_res/real(psb_spk_)\1csnmi_res/g' 

psb_z_rsb_mat_mod.F90: psb_d_rsb_mat_mod.F90 Makefile
	$(RSBD2Z) $< > $@

rsb_z_mod.f90: rsb_d_mod.f90 Makefile
	$(RSBD2Z) $< > $@

psb_c_rsb_mat_mod.F90: psb_d_rsb_mat_mod.F90 Makefile
	$(RSBD2C) $< > $@

rsb_c_mod.f90: rsb_d_mod.f90 Makefile
	$(RSBD2C) $< > $@

psb_s_rsb_mat_mod.F90: psb_d_rsb_mat_mod.F90 Makefile
	$(RSBD2S) $< > $@

rsb_s_mod.f90: rsb_d_mod.f90 Makefile
	$(RSBD2S) $< > $@


clean: 
	/bin/rm -f  $(OBJS) *$(.mod) 

verycleanlib: 
	(cd ../..; make veryclean)




