12cbc1fdde9c30c87616b8bb86dbbad764a55129 hiram Mon Jan 13 09:19:55 2025 -0800 clean up the duplicated -lm and use static zlib and bz2lib when available refs #35048 diff --git src/inc/common.mk src/inc/common.mk index 0c9afd8..36a3753 100644 --- src/inc/common.mk +++ src/inc/common.mk @@ -28,30 +28,38 @@ # to check for builds on hgwdev HOSTNAME = $(shell uname -n) ifeq (${HOSTNAME},hgwdev-new) IS_HGWDEV = yes OURSTUFF = /cluster/software/r9 else ifeq (${HOSTNAME},hgwdev) IS_HGWDEV = yes OURSTUFF = /cluster/software else IS_HGWDEV = no endif endif +ifeq (${ZLIB},) + ifneq ($(wildcard /lib64/libz.a),) + ZLIB=/lib64/libz.a + else + ZLIB=-lz + endif +endif + # for Darwin (Mac OSX), use static libs when they can be found ifeq ($(UNAME_S),Darwin) ifneq ($(wildcard /opt/local/include/openssl/ssl.h),) HG_INC += -I/opt/local/include endif ifneq ($(wildcard /opt/local/lib/libz.a),) ZLIB = /opt/local/lib/libz.a endif ifneq ($(wildcard /opt/local/lib/libpng.a),) PNGLIB = /opt/local/lib/libpng.a endif ifneq ($(wildcard /opt/local/lib/libfreetype.a),) FREETYPELIBS = /opt/local/lib/libfreetype.a /opt/local/lib/libbz2.a /opt/local/lib/libbrotlidec.a /opt/local/lib/libbrotlicommon.a endif ifneq ($(wildcard /usr/local/opt/openssl@3/lib/libssl.a),) @@ -161,31 +169,31 @@ HALDIR = /hive/groups/browser/hal/build/hal.2024-12-12 #HALDIR = /hive/groups/browser/hal/build/rocky9/hal.2024-12-18 ifneq ($(wildcard ${HALDIR}),) ifeq (${USE_HAL},) USE_HAL=1 endif endif endif endif ifeq (${USE_HAL},1) # force static libraries to keep programs portable HDF5DIR=/hive/groups/browser/hal/build/hdf5-1.12.0 HDF5LIBDIR=${HDF5DIR}/local/lib HDF5LIBS=${HDF5LIBDIR}/libhdf5_cpp.a ${HDF5LIBDIR}/libhdf5.a ${HDF5LIBDIR}/libhdf5_hl.a - HALLIBS=${HALDIR}/hal/lib/libHalBlockViz.a ${HALDIR}/hal/lib/libHalMaf.a ${HALDIR}/hal/lib/libHalLiftover.a ${HALDIR}/hal/lib/libHalLod.a ${HALDIR}/hal/lib/libHal.a ${HALDIR}/sonLib/lib/sonLib.a ${HDF5LIBS} -lz + HALLIBS=${HALDIR}/hal/lib/libHalBlockViz.a ${HALDIR}/hal/lib/libHalMaf.a ${HALDIR}/hal/lib/libHalLiftover.a ${HALDIR}/hal/lib/libHalLod.a ${HALDIR}/hal/lib/libHal.a ${HALDIR}/sonLib/lib/sonLib.a ${HDF5LIBS} ${ZLIB} ifeq (${HOSTNAME},hgwdev-new) HALLIBS += ${OURSTUFF}/lib/libcurl.a /usr/lib/gcc/x86_64-redhat-linux/11/libstdc++.a else ifeq (${HOSTNAME},hgwdev) HALLIBS += ${OURSTUFF}/lib/libcurl.a /usr/lib/gcc/x86_64-redhat-linux/4.8.5/libstdc++.a else HALLIBS += -lcurl -lstdc++ endif endif HG_DEFS+=-DUSE_HAL HG_INC+=-I${HALDIR}/inc -I${HALDIR}/hal/blockViz/inc endif # on hgwdev, include HAL by defaults ifeq (${IS_HGWDEV},yes) L+=${HALLIBS} @@ -260,85 +268,87 @@ endif # $(info have MYSQLINC: ${MYSQLINC}) # $(info have MYSQLLIBS: ${MYSQLLIBS}) # OK to add -lstdc++ to all MYSQLLIBS just in case it is # MySQL version 5.6 libraries, but no 'librt' on Mac OSX ifeq (${IS_HGWDEV},no) ifeq ($(UNAME_S),Darwin) MYSQLLIBS += -lstdc++ else MYSQLLIBS += -lstdc++ -lrt endif endif -ifeq (${ZLIB},) - ZLIB=-lz +ifeq (${BZ2LIB},) + ifneq ($(wildcard /lib64/libbz2.a),) + BZ2LIB=/lib64/libbz2.a + else + BZ2LIB=-lbz2 + endif endif # on hgwdev, use the static libraries ifeq (${IS_HGWDEV},yes) HG_INC += -I${OURSTUFF}/include HG_INC += -I${OURSTUFF}/include/mariadb FULLWARN = yes L+=/hive/groups/browser/freetype/freetype-2.10.0/objs/.libs/libfreetype.a L+=${OURSTUFF}/lib64/libssl.a ${OURSTUFF}/lib64/libcrypto.a -ldl ifeq (${HOSTNAME},hgwdev-new) PNGLIB=${OURSTUFF}/lib/libpng.a PNGINCL=-I${OURSTUFF}/include/libpng16 - L += /lib64/libbz2.a else PNGLIB=/usr/lib64/libpng.a PNGINCL=-I/usr/include/libpng15 - L += -lbz2 endif MYSQLINC=/usr/include/mysql - MYSQLLIBS=${OURSTUFF}/lib64/libmariadbclient.a ${OURSTUFF}/lib64/libssl.a ${OURSTUFF}/lib64/libcrypto.a -ldl -lz + MYSQLLIBS=${OURSTUFF}/lib64/libmariadbclient.a ${OURSTUFF}/lib64/libssl.a ${OURSTUFF}/lib64/libcrypto.a -ldl ${ZLIB} ifeq (${HOSTNAME},hgwdev-new) MYSQLLIBS += /usr/lib/gcc/x86_64-redhat-linux/11/libstdc++.a /usr/lib64/librt.a else MYSQLLIBS += /usr/lib/gcc/x86_64-redhat-linux/4.8.5/libstdc++.a /usr/lib64/librt.a endif else ifeq (${CONDA_BUILD},1) L+=${PREFIX}/lib/libssl.a ${PREFIX}/lib/libcrypto.a -ldl else ifneq (${SSLLIB},) L+=${SSLLIB} else L+=-lssl endif ifneq (${CRYPTOLIB},) L+=${CRYPTOLIB} else L+=-lcrypto -ldl endif ifeq (${DLLIB},) L+=-ldl endif endif endif #global external libraries L += $(kentSrc)/htslib/libhts.a -L+=${PNGLIB} ${MLIB} ${ZLIB} ${ICONVLIB} +L+=${PNGLIB} ${MLIB} ${ZLIB} ${BZ2LIB} ${ICONVLIB} HG_INC+=${PNGINCL} # pass through COREDUMP ifneq (${COREDUMP},) HG_DEFS+=-DCOREDUMP endif # autodetect UCSC additional source code with password for some external tracks on gbib GBIBDIR = /hive/groups/browser/gbib/ ifneq ($(wildcard ${GBIBDIR}/*.c),) HG_DEFS+=-DUSE_GBIB_PWD HG_INC += -I${GBIBDIR} endif SYS = $(shell uname -s)