diff --git a/biology/bolt-lmm/Makefile b/biology/bolt-lmm/Makefile index 1f6c41bbf7be..cbf697fb1e86 100644 --- a/biology/bolt-lmm/Makefile +++ b/biology/bolt-lmm/Makefile @@ -1,52 +1,52 @@ PORTNAME= bolt-lmm -DISTVERSION= 2.3.6 -PORTREVISION= 19 +DISTVERSION= 2.5 CATEGORIES= biology MASTER_SITES= https://data.broadinstitute.org/alkesgroup/BOLT-LMM/downloads/ DISTNAME= BOLT-LMM_v${PORTVERSION} MAINTAINER= jwb@FreeBSD.org COMMENT= Mixed model association testing and variance component analysis WWW= https://data.broadinstitute.org/alkesgroup/BOLT-LMM/ LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/license.txt LIB_DEPENDS= libnlopt.so:math/nlopt \ libopenblas.so:math/openblas \ - libboost_program_options.so:devel/boost-libs + libboost_program_options.so:devel/boost-libs \ + libzstd.so:archivers/zstd USES= gmake BUILD_WRKSRC= ${WRKDIR}/${DISTNAME}/src INSTALL_WRKSRC= ${WRKDIR}/${DISTNAME}/src CXXFLAGS_i386= -DUSE_SSE -msse -msse2 CXXFLAGS_amd64= -DUSE_SSE MAKE_ARGS= BOOST_INSTALL_DIR=${LOCALBASE} \ NLOPT_INSTALL_DIR=${LOCALBASE} \ ZLIB_STATIC_DIR=/usr/lib \ LIBSTDCXX_STATIC_DIR=/usr/lib \ GLIBC_STATIC_DIR=/usr/lib \ SSEFLAGS="" \ MEMCPY="" \ LLAPACK="-lopenblas" CONFLICTS_INSTALL= rubygem-bolt # bin/bolt PORTEXAMPLES= * OPTIONS_DEFINE= EXAMPLES pre-configure: @${RM} ${WRKSRC}/example/*.orig ${WRKSRC}/bolt @${REINPLACE_CMD} -e 's|tables/|${DATADIR}/tables/|g' \ ${BUILD_WRKSRC}/BoltParams.cpp @${REINPLACE_CMD} -e 's|../tables/|${DATADIR}/tables/|g' \ ${WRKSRC}/example/run_example.sh do-install: ${INSTALL_PROGRAM} ${INSTALL_WRKSRC}/bolt ${STAGEDIR}${PREFIX}/bin (cd ${WRKSRC}/example && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}) (cd ${WRKSRC} && ${COPYTREE_SHARE} tables ${STAGEDIR}${DATADIR}) .include diff --git a/biology/bolt-lmm/distinfo b/biology/bolt-lmm/distinfo index 4711694315b8..1906bcda602f 100644 --- a/biology/bolt-lmm/distinfo +++ b/biology/bolt-lmm/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1647782880 -SHA256 (BOLT-LMM_v2.3.6.tar.gz) = bc82a5166b3d2d480bcda1f4455c29e1018db733706d28c35d8bf8de7e1e85d5 -SIZE (BOLT-LMM_v2.3.6.tar.gz) = 335131602 +TIMESTAMP = 1788532787 +SHA256 (BOLT-LMM_v2.5.tar.gz) = a5fdc49f79f42aa007282d9080e5b97c6ef2aab25ace2af306f432c44eedebca +SIZE (BOLT-LMM_v2.5.tar.gz) = 221424899 diff --git a/biology/bolt-lmm/files/patch-src_Makefile b/biology/bolt-lmm/files/patch-src_Makefile index cf667e25edd4..388dead3f8f4 100644 --- a/biology/bolt-lmm/files/patch-src_Makefile +++ b/biology/bolt-lmm/files/patch-src_Makefile @@ -1,144 +1,146 @@ ---- src/Makefile.orig 2019-08-11 03:05:04 UTC +--- src/Makefile.orig 2025-06-21 19:47:39 UTC +++ src/Makefile -@@ -1,31 +1,35 @@ -+ +@@ -1,33 +1,38 @@ ### modify these paths to local Boost and NLopt install directories -BOOST_INSTALL_DIR = /home/pl88/boost_1_58_0/install -NLOPT_INSTALL_DIR = /n/groups/price/poru/HSPH_SVN/src/BOLT-LMM/nlopt-2.4.2 -+### by setting them in the environment or make command line args -+### which will override variables set with ?= ++### or set them as make arguments or environment variables. ++BOOST_INSTALL_DIR ?= /home/pl88/boost_1_58_0/install ++NLOPT_INSTALL_DIR ?= /n/groups/price/poru/HSPH_SVN/src/BOLT-LMM/nlopt-2.4.2 -INTELROOT = /n/groups/price/poru/external_software/intel_mkl_2019u4 -MKLROOT = ${INTELROOT}/mkl -ZLIB_STATIC_DIR = /n/groups/price/poru/external_software/zlib/zlib-1.2.11 # probably unnecessary on most systems -LIBSTDCXX_STATIC_DIR = /n/groups/price/poru/external_software/libstdc++/usr/lib/gcc/x86_64-redhat-linux/4.8.5/ -GLIBC_STATIC_DIR = /home/pl88/glibc-static/usr/lib64 -+BOOST_INSTALL_DIR ?= /home/pl88/boost_1_58_0/install -+NLOPT_INSTALL_DIR ?= /n/groups/price/poru/HSPH_SVN/src/BOLT-LMM/nlopt-2.4.2 - +INTELROOT ?= /n/groups/price/poru/external_software/intel_mkl_2019u4 +MKLROOT ?= ${INTELROOT}/mkl +ZLIB_STATIC_DIR ?= /n/groups/price/poru/external_software/zlib/zlib-1.2.11 # probably unnecessary on most systems +LIBSTDCXX_STATIC_DIR ?= /n/groups/price/poru/external_software/libstdc++/usr/lib/gcc/x86_64-redhat-linux/4.8.5/ +GLIBC_STATIC_DIR ?= /home/pl88/glibc-static/usr/lib64 -+ + +-ZSTD_DIR = /n/data1/bwh/medicine/loh/ploh/external_software/zstd-1.5.2/lib ++ZSTD_DIR ?= /n/data1/bwh/medicine/loh/ploh/external_software/zstd-1.5.2/lib + ifeq ($(strip ${linking}),) linking = dynamic endif --# CC = g++ + # CC = g++ -CC = icpc -+# CXX = g++ +CXX ?= icpc ifeq (${debug},true) - CFLAGS += -g + CXXFLAGS += -g else - CFLAGS += -O2 + CXXFLAGS += -O2 endif --CFLAGS += -msse -msse2 +-CFLAGS += -msse2 -mavx +-CFLAGS += -std=c++11 -CFLAGS += -DUSE_SSE -DMEASURE_DGEMM -DVERBOSE -CFLAGS += -Wall ++# CXXFLAGS += -msse2 -mavx ++CXXFLAGS += -std=c++14 ++# CXXFLAGS += -DUSE_SSE -DMEASURE_DGEMM -DVERBOSE ++# CXXFLAGS += -Wall + +# Set SSEFLAGS to empty string in the env or make command line if building on +# systems with no SSE such as PowerPC -+SSEFLAGS ?= -msse -msse2 -DUSE_SSE ++SSEFLAGS ?= -msse -msse2 -DUSE_SSE -DMEASURE_DGEMM -DVERBOSE +CXXFLAGS += ${SSEFLAGS} -DMEASURE_DGEMM -DVERBOSE -Wall -- # add Boost include and lib paths ifneq ($(strip ${BOOST_INSTALL_DIR}),) - CPATHS += -I${BOOST_INSTALL_DIR}/include -@@ -52,7 +56,7 @@ ifneq ($(strip ${ZLIB_STATIC_DIR}),) - endif +@@ -59,7 +64,7 @@ LPATHS += -L${ZSTD_DIR} + LPATHS += -L${ZSTD_DIR} # add MKL paths (if not compiling with g++, i.e., compiling with icpc) -ifneq (${CC},g++) -+ifeq (${CXX},icpc) ++ifneq (${CXX},g++) CPATHS += -I${MKLROOT}/include ifeq (${linking},static) LPATHS += -L${INTELROOT}/lib/intel64 '-Wl,-rpath,$$ORIGIN/lib' # for libiomp5.so (now packaged with binary) -@@ -65,34 +69,34 @@ ifneq (${CC},g++) +@@ -72,34 +77,33 @@ endif endif # add flags for static linking; build LAPACK/MKL component of link line -ifeq (${CC},g++) - CFLAGS += -fopenmp - LFLAGS += -fopenmp -- LLAPACK = -llapack -lgfortran -+ifneq (${CXX},icpc) ++ifeq (${CXX},c++) + CXXFLAGS += -fopenmp + LDFLAGS += -fopenmp -+ LLAPACK ?= -llapack -lgfortran + LLAPACK = -llapack -lgfortran ifeq (${linking},static) - LFLAGS += -static + LDFLAGS += -static LPATHS += -L${GLIBC_STATIC_DIR} -L${ZLIB_STATIC_DIR} else ifeq (${linking},static-except-glibc) - LFLAGS += -static-libgcc -static-libstdc++ + LDFLAGS += -static-libgcc -static-libstdc++ LPATHS += -L${ZLIB_STATIC_DIR} endif else - CFLAGS += -DUSE_MKL #-DUSE_MKL_MALLOC - CFLAGS += -qopenmp - LFLAGS += -qopenmp - CFLAGS += -Wunused-variable -Wpointer-arith -Wuninitialized -Wreturn-type -Wcheck -Wshadow -+ CXXFLAGS += -DUSE_MKL #-DUSE_MKL_MALLOC -+ CXXFLAGS += -qopenmp -+ LDFLAGS += -qopenmp ++ CXXFLAGS += -fopenmp ++ LDFLAGS += -fopenmp + CXXFLAGS += -Wunused-variable -Wpointer-arith -Wuninitialized -Wreturn-type -Wcheck -Wshadow LIOMP5 = -liomp5 LDL = -ldl ifeq (${linking},static) - LFLAGS += -static + LDFLAGS += -static LPATHS += -L${GLIBC_STATIC_DIR} -L${ZLIB_STATIC_DIR} - LLAPACK = -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_intel_thread.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group +- LLAPACK = -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_intel_thread.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group ++ LLAPACK ?= -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_intel_thread.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group else ifeq (${linking},static-except-glibc) - LFLAGS += -static-intel -static-libstdc++ -static-libgcc + LDFLAGS += -static-intel -static-libstdc++ -static-libgcc LPATHS += -L${ZLIB_STATIC_DIR} - LLAPACK = -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_intel_thread.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group +- LLAPACK = -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_intel_thread.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group ++ LLAPACK ?= -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_intel_thread.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group else ifeq (${linking},static-except-glibc-intel) - LFLAGS += -static-libstdc++ -static-libgcc + LDFLAGS += -static-libstdc++ -static-libgcc LPATHS += -L${ZLIB_STATIC_DIR} LLAPACK = -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core else -@@ -105,7 +109,7 @@ else +@@ -112,7 +116,7 @@ endif endif # build link line (minus flags) --LLIBS = -lboost_program_options -lboost_iostreams -lz -lnlopt -+LLIBS = -lnlopt -lboost_program_options -lboost_iostreams -lz +-LLIBS = -lboost_program_options -lboost_iostreams -lzstd -lz -lnlopt ++LLIBS = -lnlopt -lboost_program_options -lboost_iostreams -lzstd -lz ifeq (${linking},static-except-glibc) L = -L${LIBSTDCXX_STATIC_DIR} ${LPATHS} -Wl,--wrap=memcpy -Wl,-Bstatic ${LLIBS} ${LLAPACK} -Wl,-Bdynamic ${LIOMP5} -lpthread -lm ${LDL} else ifeq (${linking},static-except-glibc-intel) -@@ -117,16 +121,20 @@ endif +@@ -124,16 +128,19 @@ T = bolt T = bolt -O = Bolt.o BoltParams.o BoltParEstCV.o BoltReml.o CovariateBasis.o DataMatrix.o FileUtils.o Jackknife.o LDscoreCalibration.o MapInterpolater.o MatrixUtils.o MemoryUtils.o NonlinearOptMulti.o NumericUtils.o PhenoBuilder.o RestrictSnpSet.o SnpData.o SnpInfo.o SpectrumTools.o StatsUtils.o StringUtils.o Timer.o memcpy.o -+# Set to empty string in env or make command line to use system memcpy +MEMCPY ?= memcpy.o +O = Bolt.o BoltParams.o BoltParEstCV.o BoltReml.o CovariateBasis.o DataMatrix.o FileUtils.o Jackknife.o LDscoreCalibration.o MapInterpolater.o MatrixUtils.o MemoryUtils.o NonlinearOptMulti.o NumericUtils.o PhenoBuilder.o RestrictSnpSet.o SnpData.o SnpInfo.o SpectrumTools.o StatsUtils.o StringUtils.o Timer.o ${MEMCPY} OMAIN = BoltMain.o $O -.PHONY: clean +.PHONY: clean all +all: ${T} + %.o: %.cpp - ${CC} ${CFLAGS} ${CPATHS} -o $@ -c $< + ${CXX} ${CXXFLAGS} ${CPATHS} -o $@ -c $< $T: ${OMAIN} - ${CC} ${LFLAGS} -o $T ${OMAIN} $L + ${CXX} ${LDFLAGS} -o $T ${OMAIN} $L clean: rm -f *.o diff --git a/biology/bolt-lmm/pkg-plist b/biology/bolt-lmm/pkg-plist index 775d8677706f..90100398cdde 100644 --- a/biology/bolt-lmm/pkg-plist +++ b/biology/bolt-lmm/pkg-plist @@ -1,6 +1,4 @@ bin/bolt -%%DATADIR%%/tables/LDSCORE.1000G_EUR.tab.gz -%%DATADIR%%/tables/genetic_map_hg17_withX.txt.gz -%%DATADIR%%/tables/genetic_map_hg18_withX.txt.gz +%%DATADIR%%/tables/LDSCORE.1000G_EUR.GRCh38.tab.gz %%DATADIR%%/tables/genetic_map_hg19_withX.txt.gz %%DATADIR%%/tables/genetic_map_hg38_withX.txt.gz