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_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)