|
|
|
include ../Make.inc
|
|
|
|
LIBDIR=../lib
|
|
|
|
PSBLIBDIR=$(PSBLASDIR)/lib
|
|
|
|
HERE=.
|
|
|
|
#
|
|
|
|
# Don't you dare touch the include order here!
|
|
|
|
# The method source file are symlinked, so as not to duplicate
|
|
|
|
# code, and the symlinks are recompiled using the local version
|
|
|
|
# of psb_prec_mod, so that they are tricked into using the
|
|
|
|
# MLD preconditioners while believing to be using the PSB ones.
|
|
|
|
#
|
|
|
|
FINCLUDES=$(FMFLAG). $(FMFLAG)$(LIBDIR) $(FMFLAG)$(PSBLIBDIR)
|
|
|
|
PSBKRYLDIR=$(PSBLASDIR)/krylov
|
|
|
|
|
|
|
|
METHDOBJS= psb_dcgstab.o psb_dcg.o psb_dcgs.o \
|
|
|
|
psb_dbicg.o psb_dcgstabl.o psb_drgmres.o\
|
|
|
|
psb_scgstab.o psb_scg.o psb_scgs.o \
|
|
|
|
psb_sbicg.o psb_scgstabl.o psb_srgmres.o\
|
|
|
|
psb_ccgstab.o psb_ccg.o psb_ccgs.o \
|
|
|
|
psb_cbicg.o psb_ccgstabl.o psb_crgmres.o\
|
|
|
|
psb_zcgstab.o psb_zcg.o psb_zcgs.o \
|
|
|
|
psb_zbicg.o psb_zcgstabl.o psb_zrgmres.o
|
|
|
|
|
|
|
|
LIBMOD=psb_krylov_mod$(.mod) psb_prec_mod$(.mod)
|
|
|
|
MODOBJS=$(LIBMOD:$(.mod)=.o)
|
|
|
|
LOCAL_MODS=
|
|
|
|
LOCAL_OBJS=$(LOCAL_MODS:$(.mod)=.o)
|
|
|
|
OBJS=$(METHDOBJS) $(MODOBJS)
|
|
|
|
LIBNAME=libmld_krylov.a
|
|
|
|
|
|
|
|
lib: $(OBJS)
|
|
|
|
$(AR) $(HERE)/$(LIBNAME) $(OBJS)
|
|
|
|
$(RANLIB) $(HERE)/$(LIBNAME)
|
|
|
|
/bin/cp -p $(HERE)/$(LIBNAME) $(LIBDIR)
|
|
|
|
/bin/cp -p $(LIBMOD) $(LIBDIR)
|
|
|
|
|
|
|
|
$(METHDOBJS): psb_prec_mod.o psb_krylov_mod.o
|
|
|
|
|
|
|
|
symlink:
|
|
|
|
(/bin/ln -fs $(PSBKRYLDIR)/*.f90 . )
|
|
|
|
(/bin/ln -fs $(PSBKRYLDIR)/*.F90 . )
|
|
|
|
|
|
|
|
psb_krylov_mod.o: psb_krylov_mod.f90 $(LIBDIR)/mld_prec_mod$(.mod)
|
|
|
|
$(F90) $(F90COPT) $(FINCLUDES) -c $<
|
|
|
|
|
|
|
|
|
|
|
|
veryclean: clean
|
|
|
|
(sh ./cleansymlinks *f90 *F90)
|
|
|
|
/bin/rm -f $(LIBNAME)
|
|
|
|
|
|
|
|
clean:
|
|
|
|
/bin/rm -f $(OBJS) $(LOCAL_MODS) $(LIBMOD) $(LOCAL_OBJS)
|