c6e6631e7e05a58f07c54b2cd5cea7c97d83cf8e
galt
  Mon Aug 13 10:02:17 2018 -0700
temporary copy of my version of common.mk that compiles

diff --git src/inc/common.mk.galt src/inc/common.mk.galt
new file mode 100644
index 0000000..d2e6e4c
--- /dev/null
+++ src/inc/common.mk.galt
@@ -0,0 +1,428 @@
+# if CC is undefined, set it to gcc
+CC?=gcc
+# to build on sundance: CC=gcc -mcpu=v9 -m64
+ifeq (${COPT},)
+    COPT=-O -g
+endif
+ifeq (${CFLAGS},)
+    CFLAGS=
+endif
+ifeq (${MACHTYPE},)
+    MACHTYPE:=$(shell uname -m)
+#    $(info MACHTYPE was empty, set to: ${MACHTYPE})
+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)
+  IS_HGWDEV = yes
+else
+  IS_HGWDEV = no
+endif
+
+ifeq (${IS_HGWDEV},yes)
+  FULLWARN = yes
+endif
+
+ifeq (${HOSTNAME},cirm-01)
+  FULLWARN = yes
+endif
+
+ifeq (${PTHREADLIB},)
+  PTHREADLIB=-lpthread
+endif
+
+# pthreads is required
+ifneq ($(UNAME_S),Darwin)
+  L+=${PTHREADLIB}
+endif
+
+# autodetect if openssl is installed
+ifeq (${SSLDIR},)
+  SSLDIR = /usr/include/openssl
+endif
+
+# autodetect UCSC installation of hal:
+ifeq (${HALDIR},)
+    HALDIR = /hive/groups/browser/hal/halRelease
+    ifneq ($(wildcard ${HALDIR}),)
+        ifeq (${USE_HAL},)
+          USE_HAL=1
+        endif
+    endif
+endif
+
+ifeq (${USE_HAL},1)
+    HALLIBS=${HALDIR}/lib/halMaf.a ${HALDIR}/lib/halChain.a ${HALDIR}/lib/halMaf.a ${HALDIR}/lib/halLiftover.a ${HALDIR}/lib/halLod.a ${HALDIR}/lib/halLib.a ${HALDIR}/lib/sonLib.a ${HALDIR}/lib/libhdf5_cpp.a ${HALDIR}/lib/libhdf5.a ${HALDIR}/lib/libhdf5_hl.a
+    HG_DEFS+=-DUSE_HAL
+    HG_INC+=-I${HALDIR}/inc
+endif
+
+
+# libssl: disabled by default
+ifneq (${SSL_DIR}, "/usr/include/openssl")
+  ifneq ($(UNAME_S),Darwin)
+    ifneq ($(wildcard ${SSL_DIR}),)
+      L+=-L${SSL_DIR}/lib
+    endif
+  endif
+    HG_INC+=-I${SSL_DIR}/include
+endif
+# on hgwdev, already using the static library with mysqlclient.
+ifeq (${IS_HGWDEV},yes)
+   L+=/usr/lib64/libssl.a /usr/lib64/libcrypto.a -lkrb5 -lk5crypto
+   # at the moment, this is mostly redundant. but that could be fixed
+   #GALT L+=/usr/lib64/libssl.a /usr/lib64/libcrypto.a -lkrb5
+else
+   L+=-lssl -lcrypto
+endif
+
+# autodetect where libm is installed
+ifeq (${MLIB},)
+  ifneq ($(wildcard /usr/lib64/libm.a),)
+      MLIB=
+      #GALT MLIB=/usr/lib64/libm.a
+  endif
+endif
+ifeq (${MLIB},)
+  MLIB=-lm
+endif
+
+# autodetect where png is installed
+ifeq (${PNGLIB},)
+  ifneq ($(wildcard /usr/lib64/libpng.a),)
+      PNGLIB=/usr/lib64/libpng.a
+  endif
+endif
+ifeq (${PNGLIB},)
+  ifneq ($(wildcard /usr/lib/libpng.a),)
+      PNGLIB=/usr/lib/libpng.a
+  endif
+endif
+ifeq (${PNGLIB},)
+  ifneq ($(wildcard /opt/local/lib/libpng.a),)
+      PNGLIB=/opt/local/lib/libpng.a
+  endif
+endif
+ifeq (${PNGLIB},)
+  ifneq ($(wildcard /usr/local/lib/libpng.a),)
+      PNGLIB=/usr/local/lib/libpng.a
+  endif
+endif
+ifeq (${PNGLIB},)
+      PNGLIB := $(shell libpng-config --ldflags  || true)
+endif
+ifeq (${PNGLIB},)
+  PNGLIB=-lpng
+endif
+ifeq (${PNGINCL},)
+  ifneq ($(wildcard /opt/local/include/png.h),)
+      PNGINCL=-I/opt/local/include
+  else
+      PNGINCL := $(shell libpng-config --I_opts  || true)
+#       $(info using libpng-config to set PNGINCL: ${PNGINCL})
+  endif
+endif
+
+# autodetect where mysql includes and libraries are installed
+# do not need to do this during 'clean' target (this is very slow for 'clean')
+ifneq ($(MAKECMDGOALS),clean)
+  # on hgwdev, use the static library.
+  ifeq (${IS_HGWDEV},yes)
+    MYSQLINC=/usr/include/mysql
+    #MYSQLLIBS=/usr/lib64/libmysqlclient.a
+    MYSQLLIBS=/usr/lib64/libmysqlclient.a /usr/lib64/libssl.a /usr/lib64/libcrypto.a -lkrb5 -lk5crypto -ldl
+    #GALT MYSQLLIBS=/usr/lib64/libssl.a /usr/lib64/libcrypto.a /usr/lib64/mysql/libmysqlclient.a -lkrb5
+  endif
+  # this does *not* work on Mac OSX with the dynamic libraries
+  ifneq ($(UNAME_S),Darwin)
+    ifeq (${MYSQLLIBS},)
+      MYSQLLIBS := $(shell mysql_config --libs || true)
+#        $(info using mysql_config to set MYSQLLIBS: ${MYSQLLIBS})
+    endif
+  endif
+
+  ifeq (${MYSQLINC},)
+    MYSQLINC := $(shell mysql_config --include | sed -e 's/-I//' || true)
+#        $(info using mysql_config to set MYSQLINC: ${MYSQLINC})
+  endif
+  ifeq (${MYSQLINC},)
+    ifneq ($(wildcard /usr/local/mysql/include/mysql.h),)
+	  MYSQLINC=/usr/local/mysql/include
+    endif
+  endif
+  ifeq (${MYSQLINC},)
+    ifneq ($(wildcard /usr/include/mysql/mysql.h),)
+	  MYSQLINC=/usr/include/mysql
+    endif
+  endif
+  ifeq (${MYSQLINC},)
+    ifneq ($(wildcard /opt/local/include/mysql57/mysql/mysql.h),)
+	  MYSQLINC=/opt/local/include/mysql57/mysql
+    endif
+  endif
+  ifeq (${MYSQLINC},)
+    ifneq ($(wildcard /opt/local/include/mysql55/mysql/mysql.h),)
+	  MYSQLINC=/opt/local/include/mysql55/mysql
+    endif
+  endif
+  ifeq (${MYSQLLIBS},)
+    ifneq ($(wildcard /opt/local/lib/mysql57/mysql/libmysqlclient.a),)
+	  MYSQLLIBS=/opt/local/lib/mysql57/mysql/libmysqlclient.a
+    endif
+  endif
+  ifeq (${MYSQLLIBS},)
+    ifneq ($(wildcard /opt/local/lib/mysql55/mysql/libmysqlclient.a),)
+	  MYSQLLIBS=/opt/local/lib/mysql55/mysql/libmysqlclient.a
+    endif
+  endif
+  ifeq (${MYSQLLIBS},)
+    ifneq ($(wildcard /usr/lib64/mysql/libmysqlclient.a),)
+	  MYSQLLIBS=/usr/lib64/mysql/libmysqlclient.a
+    endif
+  endif
+  ifeq (${MYSQLLIBS},)
+    ifneq ($(wildcard /usr/local/mysql/lib/libmysqlclient.a),)
+	  MYSQLLIBS=/usr/local/mysql/lib/libmysqlclient.a
+    endif
+  endif
+  ifeq (${MYSQLLIBS},)
+    ifneq ($(wildcard /usr/local/mysql/lib/libmysqlclient.a),)
+	  MYSQLLIBS=/usr/local/mysql/lib/libmysqlclient.a
+    endif
+  endif
+  ifeq (${MYSQLLIBS},)
+    ifneq ($(wildcard /usr/lib64/mysql/libmysqlclient.so),)
+	  MYSQLLIBS=/usr/lib64/mysql/libmysqlclient.so
+    endif
+  endif
+  ifeq (${MYSQLLIBS},)
+    ifneq ($(wildcard /usr/lib/libmysqlclient.a),)
+	  MYSQLLIBS=/usr/lib/libmysqlclient.a
+    endif
+  endif
+  ifeq (${MYSQLLIBS},)
+    ifneq ($(wildcard /opt/local/lib/mysql55/mysql/libmysqlclient.a),)
+	  MYSQLLIBS=/opt/local/lib/mysql55/mysql/libmysqlclient.a
+    endif
+  endif
+  ifeq (${MYSQLLIBS},)
+    ifneq ($(wildcard /usr/local/Cellar/mysql/5.6.19/lib/libmysqlclient.a),)
+	  MYSQLLIBS=/usr/local/Cellar/mysql/5.6.19/lib/libmysqlclient.a
+    endif
+  endif
+  ifeq (${MYSQLLIBS},)
+    ifneq ($(wildcard /usr/local/Cellar/mysql/5.6.16/lib/libmysqlclient.a),)
+	  MYSQLLIBS=/usr/local/Cellar/mysql/5.6.16/lib/libmysqlclient.a
+    endif
+  endif
+  ifeq ($(findstring src/hg/,${CURDIR}),src/hg/)
+    ifeq (${MYSQLINC},)
+        $(error can not find installed mysql development system)
+    endif
+  endif
+    # last resort, hoping the compiler can find it in standard locations
+  ifeq (${MYSQLLIBS},)
+      MYSQLLIBS="-lmysqlclient"
+  endif
+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},yes)
+  MYSQLLIBS += /usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.a /usr/lib/x86_64-redhat-linux6E/lib64/librt.a
+  #GALT MYSQLLIBS += /usr/lib/gcc/x86_64-redhat-linux/4.4.4/libstdc++.a /usr/lib/debug/usr/lib64/librt.a
+else
+  ifeq ($(UNAME_S),Darwin)
+    MYSQLLIBS += -lstdc++
+  else
+    MYSQLLIBS += -lstdc++ -lrt
+  endif
+endif
+
+ifeq (${ZLIB},)
+  ZLIB=-lz
+  ifneq ($(wildcard /opt/local/lib/libz.a),)
+    ZLIB=/opt/local/lib/libz.a
+  endif
+  ifneq ($(wildcard /usr/lib64/libz.a),)
+    ZLIB=/usr/lib64/libz.a
+  endif
+endif
+
+#global external libraries
+L += $(kentSrc)/htslib/libhts.a
+
+L+=${PNGLIB} ${ZLIB} ${MLIB}
+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)
+
+ifeq (${HG_WARN},)
+  ifeq (${SYS},Darwin)
+      HG_WARN = -Wall -Wno-unused-variable -Wno-deprecated-declarations
+      HG_WARN_UNINIT=
+  else
+    ifeq (${SYS},SunOS)
+      HG_WARN = -Wall -Wformat -Wimplicit -Wreturn-type
+      HG_WARN_UNINIT=-Wuninitialized
+    else
+      ifeq (${FULLWARN},yes)
+        HG_WARN = -Wall -Werror -Wformat -Wformat-security -Wimplicit -Wreturn-type -Wempty-body -Wunused-but-set-variable
+        HG_WARN_UNINIT=-Wuninitialized
+      else
+        HG_WARN = -Wall -Wformat -Wimplicit -Wreturn-type
+        HG_WARN_UNINIT=-Wuninitialized
+      endif
+    endif
+  endif
+  # -Wuninitialized generates a warning without optimization
+  ifeq ($(findstring -O,${COPT}),-O)
+     HG_WARN += ${HG_WARN_UNINIT}
+  endif
+endif
+
+# this is to hack around many make files not including HG_WARN in
+# the link line
+CFLAGS += ${HG_WARN}
+
+ifeq (${SCRIPTS},)
+    SCRIPTS=${HOME}/bin/scripts
+endif
+ifeq (${CGI_BIN},)
+    CGI_BIN=/usr/local/apache/cgi-bin
+endif
+ifeq (${DOCUMENTROOT},)
+    DOCUMENTROOT=/usr/local/apache/htdocs
+endif
+ifeq (${BINDIR},)
+    BINDIR = ${HOME}/bin/${MACHTYPE}
+endif
+ifeq (${ENCODE_PIPELINE_BIN},)
+    ENCODE_PIPELINE_BIN=/cluster/data/encode/pipeline/bin
+endif
+
+# avoid an extra leading slash when DESTDIR is empty
+ifeq (${DESTDIR},)
+  DESTBINDIR=${BINDIR}
+else
+  DESTBINDIR=${DESTDIR}/${BINDIR}
+endif
+
+# location of stringify program
+STRINGIFY = ${DESTBINDIR}/stringify
+
+MKDIR=mkdir -p
+ifeq (${STRIP},)
+   STRIP=true
+endif
+CVS=cvs
+GIT=git
+
+# portable naming of compiled executables: add ".exe" if compiled on
+# Windows (with cygwin).
+ifeq (${OS}, Windows_NT)
+  AOUT=a
+  EXE=.exe
+else
+  AOUT=a.out
+  EXE=
+endif
+
+#Lowelab defines
+#The lowelab specific code will be included in compilation if the following conditions are satistied
+LOWELAB_WIKI_DEF=
+LOWELAB_DEF=
+ifdef LOWELAB
+    LOWELAB_WIKI=1
+    LOWELAB_DEF=-DLOWELAB
+endif
+ifdef LOWELAB_WIKI
+    LOWELAB_WIKI_DEF=-DLOWELAB_WIKI
+endif
+LOWELAB_DEFS=${LOWELAB_DEF} ${LOWELAB_WIKI_DEF}
+
+ifdef LOWELAB
+    ifeq (${SCRIPTS},/cluster/bin/scripts)
+        SCRIPTS=${HOME}/scripts
+    endif
+    ifeq (${CGI_BIN},/usr/local/apache/cgi-bin)
+        CGI_BIN=/www/cgi-bin
+    endif
+    ifeq (${DOCUMENTROOT},/usr/local/apache/htdocs)
+        DOCUMENTROOT=/www/browser-docs
+    endif
+endif
+
+#ENCODE COMMON VARIABLES
+CONFIG_FILES = \
+	fields.ra \
+	labs.ra
+CV = cv.ra
+CVDIR=${HOME}/kent/src/hg/makeDb/trackDb/cv/alpha
+PIPELINE_PATH=/hive/groups/encode/dcc/pipeline
+CONFIG_DIR = ${PIPELINE_PATH}/${PIPELINE_DIR}/config
+ENCODEDCC_DIR = ${PIPELINE_PATH}/downloads/encodeDCC
+
+%.o: %.c
+	${CC} ${COPT} ${CFLAGS} ${HG_DEFS} ${LOWELAB_DEFS} ${HG_WARN} ${HG_INC} ${XINC} -o $@ -c $<
+
+# autodetect UCSC installation of node.js:
+ifeq (${NODEBIN},)
+    NODEBIN = /cluster/software/src/node-v0.10.24-linux-x64/bin
+    ifeq ($(wildcard ${NODEBIN}),)
+	NODEBIN=
+    endif
+endif
+
+# node.js tools: jshint, jsx, jsxhint, uglifyjs, ...
+ifeq (${JSHINT},)
+    JSHINT=${NODEBIN}/jshint
+    ifeq ($(wildcard ${JSHINT}),)
+	    JSHINT=true
+    endif
+endif
+ifeq (${JSXHINT},)
+    JSXHINT=${NODEBIN}/jsxhint
+    ifeq ($(wildcard ${JSXHINT}),)
+        JSXHINT=true
+    endif
+endif
+ifeq (${JSX},)
+    JSX=${NODEBIN}/jsx
+    ifeq ($(wildcard ${JSX}),)
+        JSX=true
+    endif
+endif
+ifeq (${UGLIFYJS},)
+    UGLIFYJS=${NODEBIN}/uglifyjs
+    ifeq ($(wildcard ${UGLIFYJS}),)
+        UGLIFYJS=true
+    endif
+endif