-
Moises Fernandez authored
Create lib directory in FSLDEVDIR for libbedpostx_cuda.so if it doesn't exists and copy there after compile in local directory
Moises Fernandez authoredCreate lib directory in FSLDEVDIR for libbedpostx_cuda.so if it doesn't exists and copy there after compile in local directory
Makefile 5.47 KiB
include $(FSLCONFDIR)/default.mk
ifeq ($(COMPILE_GPU), 1)
COMPILE_WITH_GPU=libbedpostx_cuda.so merge_parts_gpu xfibres_gpu
SCRIPTS_GPU=CUDA/bedpostx_gpu CUDA/bedpostx_multigpu_LSF CUDA/bedpostx_postproc_gpu.sh
endif
PROJNAME = fdt
USRINCFLAGS = -I${INC_NEWMAT} -I${INC_NEWRAN} -I${INC_CPROB} -I${INC_PROB} -I${INC_BOOST} -I${INC_ZLIB}
USRLDFLAGS = -L${LIB_NEWMAT} -L${LIB_NEWRAN} -L${LIB_CPROB} -L${LIB_PROB} -L${LIB_ZLIB}
DLIBS = -lwarpfns -lbasisfield -lmeshclass -lnewimage -lutils -lmiscmaths -lnewmat -lnewran -lfslio -lniftiio -lznz -lcprob -lprob -lm -lz
DTIFIT=dtifit
CCOPS=ccops
PTX=probtrackx
MED=medianfilter
ROM=reord_OM
SAUS=sausages
XFIBRES=xfibres
XFIBRES2=xfibres_2
RV=replacevols
MDV=make_dyadic_vectors
FMO=fdt_matrix_ops
INDEXER=indexer
TEST=testfile
VECREG=vecreg
KURTOSIS=kurtosis
SWAPDYADS=swap_dyadic_vectors
PVMFIT=pvmfit
DTIGEN=dtigen
RARNG=rearrange
XPRED=xfibres_pred
RUBIX=rubix
LIBBEDPOSTX_CUDA=libbedpostx_cuda.so
MERGE_PARTS_GPU=merge_parts_gpu
XFIBRES_GPU=xfibres_gpu
DTIFITOBJS=dtifit.o dtifitOptions.o diffmodels.o Bingham_Watson_approx.o
CCOPSOBJS=ccops.o ccopsOptions.o
PTXOBJS=probtrackx.o probtrackxOptions.o streamlines.o ptx_simple.o ptx_seedmask.o ptx_twomasks.o ptx_nmasks.o ptx_meshmask.o
MEDOBJS=medianfilter.o
ROMOBJS=reord_OM.o
SAUSOBJS=sausages.o
XFIBOBJS=xfibres.o xfibresoptions.o diffmodels.o Bingham_Watson_approx.o
XFIBOBJS2=xfibres_2.o xfibresoptions.o
RVOBJS=replacevols.o
MDVOBJS=make_dyadic_vectors.o
FMOOBJS=fdt_matrix_ops.o
INDEXEROBJS=indexer.o
TESTOBJS=testfile.o
VECREGOBJS=vecreg.o
KURTOSISOBJS=kurtosis.o dtifitOptions.o
SWAPDYADSOBJS=swap_dyadic_vectors.o
PVMFITOBJS=pvmfit.o pvmfitOptions.o diffmodels.o Bingham_Watson_approx.o
DTIGENOBJS=dtigen.o
RARNGOBJS=rearrange.o
XPREDOBJS=xfibres_pred.o
RUBIXOBJS=rubix.o diffmodels.o rubixvox.o rubixoptions.o Bingham_Watson_approx.o
MERGE_PARTS_GPUOBJS=merge_parts_gpu.o xfibresoptions.o
XFIBRES_GPUOBJS=xfibres_gpu.o xfibresoptions.o diffmodels.o Bingham_Watson_approx.o
SGEBEDPOST = bedpost
SGEBEDPOSTX = bedpostx bedpostx_postproc.sh bedpostx_preproc.sh bedpostx_single_slice.sh bedpostx_datacheck
SCRIPTS = eddy_correct zeropad maskdyads probtrack fdt_rotate_bvecs ${SGEBEDPOST} ${SGEBEDPOSTX} ${SCRIPTS_GPU}
FSCRIPTS = correct_and_average ocmr_preproc
XFILES = dtifit ccops medianfilter make_dyadic_vectors vecreg xfibres probtrackx pvmfit dtigen ${COMPILE_WITH_GPU}
FXFILES = reord_OM sausages replacevols fdt_matrix_ops indexer rearrange xfibres_pred
RUNTCLS = Fdt
all: ${XFILES} ${FXFILES}
${PTX}: ${PTXOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${PTXOBJS} ${DLIBS}
${PT}: ${PTOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${PTOBJS} ${DLIBS}
${FTB}: ${FTBOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${FTBOBJS} ${DLIBS}
${PJ}: ${PJOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${PJOBJS} ${DLIBS}
${MED}: ${MEDOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${MEDOBJS} ${DLIBS}
${DTIFIT}: ${DTIFITOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${DTIFITOBJS} ${DLIBS}
${CCOPS}: ${CCOPSOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${CCOPSOBJS} ${DLIBS}
${ROM}: ${ROMOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${ROMOBJS} ${DLIBS}
${SAUS}: ${SAUSOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${SAUSOBJS} ${DLIBS}
${XFIBRES}: ${XFIBOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${XFIBOBJS} ${DLIBS}
${XFIBRES2}: ${XFIBOBJS2}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${XFIBOBJS2} ${DLIBS}
${RV}: ${RVOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${RVOBJS} ${DLIBS}
${MDV}: ${MDVOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${MDVOBJS} ${DLIBS}
${FMO}: ${FMOOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${FMOOBJS} ${DLIBS}
${INDEXER}: ${INDEXEROBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${INDEXEROBJS} ${DLIBS}
${TEST}: ${TESTOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${TESTOBJS} ${DLIBS}
${VECREG}: ${VECREGOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${VECREGOBJS} ${DLIBS}
${KURTOSIS}: ${KURTOSISOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${KURTOSISOBJS} ${DLIBS}
${SWAPDYADS}: ${SWAPDYADSOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${SWAPDYADSOBJS} ${DLIBS}
${PVMFIT}: ${PVMFITOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${PVMFITOBJS} ${DLIBS}
${DTIGEN}: ${DTIGENOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${DTIGENOBJS} ${DLIBS}
${RARNG}: ${RARNGOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${RARNGOBJS} ${DLIBS}
${XPRED}: ${XPREDOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${XPREDOBJS} ${DLIBS}
${RUBIX}: ${RUBIXOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${RUBIXOBJS} ${DLIBS}
${LIBBEDPOSTX_CUDA}:
${CUDA}/bin/nvcc --shared --compiler-options '-fPIC' -o CUDA/libbedpostx_cuda.so CUDA/init_gpu.cu CUDA/samples.cu CUDA/diffmodels.cu CUDA/runmcmc.cu CUDA/xfibres_gpu.cu -O3 -gencode=arch=compute_20,code=\"sm_20,compute_20\" -gencode=arch=compute_35,code=\"sm_35,compute_35\" -lcudart -lcuda -lcurand -I. -L${CUDA}/lib64 -L${CUDA}/lib -ICUDA/options -I${CUDA}/include/thrust -I${FSLDIR}/extras/include/newmat -I${FSLDIR}/include -I${FSLDIR}/extras/include/boost -maxrregcount=64
@if [ ! -d ${FSLDEVDIR}/lib/ ] ; then ${MKDIR} ${FSLDEVDIR}/lib ; fi
${CP} -rf CUDA/libbedpostx_cuda.so ${FSLDEVDIR}/lib
${MERGE_PARTS_GPU}: ${MERGE_PARTS_GPUOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${MERGE_PARTS_GPUOBJS} ${DLIBS}
${XFIBRES_GPU}: ${XFIBRES_GPUOBJS}
${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ ${XFIBRES_GPUOBJS} ${DLIBS} -lcudart -lcuda -lcurand -lbedpostx_cuda -LCUDA -L${CUDA}/lib64 -L${CUDA}/lib