include ../Make.inc # # Libraries used # LIBDIR=../lib INCDIR=../include MODDIR=../modules PSBLAS_LIB= -lpsb_util -lpsb_base #-lpsb_util -lpsb_krylov -lpsb_prec -lpsb_base LDLIBS=$(PSBLDLIBS) # # Compilers and such # #CCOPT= -g FINCLUDES=$(FMFLAG). $(FMFLAG)$(INCDIR) $(FMFLAG)$(MODDIR) $(FIFLAG). CINCLUDES=$(SPGPU_INCLUDES) $(CUDA_INCLUDES) -I$(INCDIR) LIBNAME=libpsb_cuda.a FOBJS=cusparse_mod.o base_cusparse_mod.o \ s_cusparse_mod.o d_cusparse_mod.o c_cusparse_mod.o z_cusparse_mod.o \ psb_vectordev_mod.o core_mod.o \ psb_s_vectordev_mod.o psb_d_vectordev_mod.o psb_i_vectordev_mod.o\ psb_c_vectordev_mod.o psb_z_vectordev_mod.o psb_base_vectordev_mod.o \ elldev_mod.o hlldev_mod.o diagdev_mod.o hdiagdev_mod.o \ psb_i_cuda_vect_mod.o \ psb_d_cuda_vect_mod.o psb_s_cuda_vect_mod.o\ psb_z_cuda_vect_mod.o psb_c_cuda_vect_mod.o\ psb_d_cuda_elg_mat_mod.o psb_d_cuda_hlg_mat_mod.o \ psb_d_cuda_hybg_mat_mod.o psb_d_cuda_csrg_mat_mod.o\ psb_s_cuda_elg_mat_mod.o psb_s_cuda_hlg_mat_mod.o \ psb_s_cuda_hybg_mat_mod.o psb_s_cuda_csrg_mat_mod.o\ psb_c_cuda_elg_mat_mod.o psb_c_cuda_hlg_mat_mod.o \ psb_c_cuda_hybg_mat_mod.o psb_c_cuda_csrg_mat_mod.o\ psb_z_cuda_elg_mat_mod.o psb_z_cuda_hlg_mat_mod.o \ psb_z_cuda_hybg_mat_mod.o psb_z_cuda_csrg_mat_mod.o\ psb_cuda_env_mod.o psb_cuda_mod.o \ psb_d_cuda_diag_mat_mod.o\ psb_d_cuda_hdiag_mat_mod.o psb_s_cuda_hdiag_mat_mod.o\ psb_s_cuda_dnsg_mat_mod.o psb_d_cuda_dnsg_mat_mod.o \ psb_c_cuda_dnsg_mat_mod.o psb_z_cuda_dnsg_mat_mod.o \ dnsdev_mod.o COBJS= elldev.o hlldev.o diagdev.o hdiagdev.o vectordev.o ivectordev.o dnsdev.o\ svectordev.o dvectordev.o cvectordev.o zvectordev.o cuda_util.o \ fcusparse.o scusparse.o dcusparse.o ccusparse.o zcusparse.o OBJS=$(COBJS) $(FOBJS) lib: objs ilib cudalib spgpulib ar cur $(LIBNAME) $(OBJS) /bin/cp -p $(LIBNAME) $(LIBDIR) objs: spgpuinc $(OBJS) iobjs cudaobjs spgpuobjs /bin/cp -p *$(.mod) $(MODDIR) /bin/cp -p *.h $(INCDIR) spgpuinc: $(MAKE) -C spgpu includes spgpuobjs: $(MAKE) -C spgpu objs spgpulib: $(MAKE) -C spgpu lib diagdev_mod.o dnsdev_mod.o hlldev_mod.o elldev_mod.o psb_base_vectordev_mod.o: core_mod.o psb_d_cuda_vect_mod.o psb_s_cuda_vect_mod.o psb_z_cuda_vect_mod.o psb_c_cuda_vect_mod.o: psb_i_cuda_vect_mod.o psb_i_cuda_vect_mod.o : psb_vectordev_mod.o psb_cuda_env_mod.o cusparse_mod.o: s_cusparse_mod.o d_cusparse_mod.o c_cusparse_mod.o z_cusparse_mod.o s_cusparse_mod.o d_cusparse_mod.o c_cusparse_mod.o z_cusparse_mod.o : base_cusparse_mod.o psb_d_cuda_hlg_mat_mod.o: hlldev_mod.o psb_d_cuda_vect_mod.o psb_cuda_env_mod.o psb_d_cuda_elg_mat_mod.o: elldev_mod.o psb_d_cuda_vect_mod.o psb_d_cuda_diag_mat_mod.o: diagdev_mod.o psb_d_cuda_vect_mod.o psb_d_cuda_hdiag_mat_mod.o: hdiagdev_mod.o psb_d_cuda_vect_mod.o psb_s_cuda_dnsg_mat_mod.o: dnsdev_mod.o psb_s_cuda_vect_mod.o psb_d_cuda_dnsg_mat_mod.o: dnsdev_mod.o psb_d_cuda_vect_mod.o psb_c_cuda_dnsg_mat_mod.o: dnsdev_mod.o psb_c_cuda_vect_mod.o psb_z_cuda_dnsg_mat_mod.o: dnsdev_mod.o psb_z_cuda_vect_mod.o psb_s_cuda_hlg_mat_mod.o: hlldev_mod.o psb_s_cuda_vect_mod.o psb_cuda_env_mod.o psb_s_cuda_elg_mat_mod.o: elldev_mod.o psb_s_cuda_vect_mod.o psb_s_cuda_diag_mat_mod.o: diagdev_mod.o psb_s_cuda_vect_mod.o psb_s_cuda_hdiag_mat_mod.o: hdiagdev_mod.o psb_s_cuda_vect_mod.o psb_s_cuda_csrg_mat_mod.o psb_s_cuda_hybg_mat_mod.o: cusparse_mod.o psb_vectordev_mod.o psb_d_cuda_csrg_mat_mod.o psb_d_cuda_hybg_mat_mod.o: cusparse_mod.o psb_vectordev_mod.o psb_z_cuda_hlg_mat_mod.o: hlldev_mod.o psb_z_cuda_vect_mod.o psb_cuda_env_mod.o psb_z_cuda_elg_mat_mod.o: elldev_mod.o psb_z_cuda_vect_mod.o psb_c_cuda_hlg_mat_mod.o: hlldev_mod.o psb_c_cuda_vect_mod.o psb_cuda_env_mod.o psb_c_cuda_elg_mat_mod.o: elldev_mod.o psb_c_cuda_vect_mod.o psb_c_cuda_csrg_mat_mod.o psb_c_cuda_hybg_mat_mod.o: cusparse_mod.o psb_vectordev_mod.o psb_z_cuda_csrg_mat_mod.o psb_z_cuda_hybg_mat_mod.o: cusparse_mod.o psb_vectordev_mod.o psb_vectordev_mod.o: psb_s_vectordev_mod.o psb_d_vectordev_mod.o psb_c_vectordev_mod.o psb_z_vectordev_mod.o psb_i_vectordev_mod.o psb_i_vectordev_mod.o psb_s_vectordev_mod.o psb_d_vectordev_mod.o psb_c_vectordev_mod.o psb_z_vectordev_mod.o: psb_base_vectordev_mod.o vectordev.o: cuda_util.o vectordev.h elldev.o: elldev.c dnsdev.o: dnsdev.c fcusparse.h elldev.c: elldev.h vectordev.h fcusparse.o scusparse.o dcusparse.o ccusparse.o zcusparse.o : fcusparse.h fcusparse.o scusparse.o dcusparse.o ccusparse.o zcusparse.o : fcusparse_fct.h svectordev.o: svectordev.h vectordev.h dvectordev.o: dvectordev.h vectordev.h cvectordev.o: cvectordev.h vectordev.h zvectordev.o: zvectordev.h vectordev.h psb_cuda_env_mod.o: base_cusparse_mod.o psb_cuda_mod.o: psb_cuda_env_mod.o psb_i_cuda_vect_mod.o\ psb_d_cuda_vect_mod.o psb_s_cuda_vect_mod.o\ psb_z_cuda_vect_mod.o psb_c_cuda_vect_mod.o\ psb_d_cuda_elg_mat_mod.o psb_d_cuda_hlg_mat_mod.o \ psb_d_cuda_hybg_mat_mod.o psb_d_cuda_csrg_mat_mod.o\ psb_s_cuda_elg_mat_mod.o psb_s_cuda_hlg_mat_mod.o \ psb_s_cuda_hybg_mat_mod.o psb_s_cuda_csrg_mat_mod.o\ psb_c_cuda_elg_mat_mod.o psb_c_cuda_hlg_mat_mod.o \ psb_c_cuda_hybg_mat_mod.o psb_c_cuda_csrg_mat_mod.o\ psb_z_cuda_elg_mat_mod.o psb_z_cuda_hlg_mat_mod.o \ psb_z_cuda_hybg_mat_mod.o psb_z_cuda_csrg_mat_mod.o\ psb_d_cuda_diag_mat_mod.o \ psb_d_cuda_hdiag_mat_mod.o psb_s_cuda_hdiag_mat_mod.o\ psb_s_cuda_dnsg_mat_mod.o psb_d_cuda_dnsg_mat_mod.o \ psb_c_cuda_dnsg_mat_mod.o psb_z_cuda_dnsg_mat_mod.o iobjs: $(FOBJS) $(MAKE) -C impl objs cudaobjs: $(FOBJS) $(MAKE) -C CUDA objs ilib: objs $(MAKE) -C impl lib LIBNAME=$(LIBNAME) cudalib: objs ilib $(MAKE) -C CUDA lib LIBNAME=$(LIBNAME) clean: cclean iclean cudaclean spgpuclean /bin/rm -f $(FOBJS) *$(.mod) *.a cclean: /bin/rm -f $(COBJS) iclean: $(MAKE) -C impl clean cudaclean: $(MAKE) -C CUDA clean spgpuclean: $(MAKE) -C spgpu clean veryclean: clean