59a24235a4ba60e2f5767d05faefa89bb4ecf2db galt Wed Jan 1 05:12:19 2025 -0800 fixes for common.mk to work with hgwdev and hgwdev-new. handles static compiling as much as possible. diff --git src/inc/common.mk src/inc/common.mk index a88196d..a49dd6a 100644 --- src/inc/common.mk +++ src/inc/common.mk @@ -16,35 +16,39 @@ endif ifneq (,$(findstring -,$(MACHTYPE))) # $(info MACHTYPE has - sign ${MACHTYPE}) MACHTYPE:=$(shell uname -m) # $(info MACHTYPE has - sign set to: ${MACHTYPE}) endif HG_DEFS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DMACHTYPE_${MACHTYPE} HG_INC+=-I../inc -I../../inc -I../../../inc -I../../../../inc -I../../../../../inc -I$(kentSrc)/htslib # to check for Mac OSX Darwin specifics: UNAME_S := $(shell uname -s) # to check for builds on hgwdev HOSTNAME = $(shell uname -n) +ifeq (${HOSTNAME},hgwdev-new) + IS_HGWDEV = yes +else ifeq (${HOSTNAME},hgwdev) IS_HGWDEV = yes else IS_HGWDEV = no 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 @@ -154,31 +158,40 @@ ifeq (${IS_HGWDEV},yes) HALDIR = /hive/groups/browser/hal/build/hal.2024-12-12 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} -lcurl -lstdc++ + 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 + ifeq (${HOSTNAME},hgwdev-new) + HALLIBS += /cluster/software/lib/libcurl.a /usr/lib/gcc/x86_64-redhat-linux/11/libstdc++.a + else + ifeq (${HOSTNAME},hgwdev) + HALLIBS += -lcurl /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} endif ifeq (${USE_HIC},) USE_HIC=1 endif ifeq (${USE_HIC},1) HG_DEFS+=-DUSE_HIC endif @@ -255,35 +268,48 @@ MYSQLLIBS += -lstdc++ -lrt endif endif ifeq (${ZLIB},) ZLIB=-lz endif # on hgwdev, use the static libraries ifeq (${IS_HGWDEV},yes) HG_INC += -I/cluster/software/include HG_INC += -I/cluster/software/include/mariadb FULLWARN = yes L+=/hive/groups/browser/freetype/freetype-2.10.0/objs/.libs/libfreetype.a -lbz2 L+=/cluster/software/lib64/libssl.a /cluster/software/lib64/libcrypto.a -ldl + + ifeq (${HOSTNAME},hgwdev-new) + PNGLIB=/cluster/software/lib/libpng.a + PNGINCL=-I/cluster/software/include/libpng16 + else PNGLIB=/usr/lib64/libpng.a PNGINCL=-I/usr/include/libpng15 + endif + MYSQLINC=/usr/include/mysql MYSQLLIBS=/cluster/software/lib64/libmariadbclient.a /cluster/software/lib64/libssl.a /cluster/software/lib64/libcrypto.a -ldl -lz + + 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},)