e88893818af35a8708ac59c4572e44272de8cedc max Wed Apr 19 05:17:59 2023 -0700 and even more changes requested by debian, refs #12785 diff --git build/kent-core/makefile build/kent-core/makefile index 79d4757..22333e2 100644 --- build/kent-core/makefile +++ build/kent-core/makefile @@ -1,8 +1,226 @@ -all: bindir - cd src && ${MAKE} utils USE_HAL=0 USE_FREETYPE=0 USE_HIC=0 BINDIR=$(CURDIR)/bin +include inc/localEnvironment.mk +include inc/common.mk -bindir: - mkdir -p bin +all: utils cgi blatSuite + +alpha: check-alpha clean + ${MAKE} utils-alpha cgi-alpha blatSuite + +beta: check-beta clean cgi-beta + +# do a git update and clean +update: + git pull + ${MAKE} clean + +topLibs: + @./checkUmask.sh + @MACHTYPE=${MACHTYPE} ./machTest.sh + cd lib && ${MAKE} +ifneq ($(wildcard jkOwnLib/*),) + cd jkOwnLib && ${MAKE} +endif + cd parasol/lib && ${MAKE} + cd htslib && ${MAKE} + +optLib: + cd optimalLeaf && ${MAKE} + +hgLib: +ifneq ($(wildcard hg/makefile),) + @./hg/sqlEnvTest.sh + cd hg/lib && ${MAKE} +ifneq ($(wildcard hg/cgilib/makefile),) + cd hg/cgilib && ${MAKE} +endif +endif + +libs: topLibs hgLib optLib + +cgi: libs + cd hg && ${MAKE} cgi + cd utils/bedToBigBed && ${MAKE} cgi + +cgi-alpha: check-alpha libs logUser + cd hg && ${MAKE} alpha + cd utils/bedToBigBed && ${MAKE} alpha + +cgi-beta: check-beta libs logUser + cd hg && ${MAKE} beta + cd utils/bedToBigBed && ${MAKE} beta + +# This log file can be useful when debugging problems on the alpha and beta builds. +logUser: +ifeq (${IS_HGWDEV},yes) + echo ${USER}, $(MAKECMDGOALS), `date` >> ${CGI_BIN}/buildLog.txt +endif + +check-alpha: + # this will fail if we are not on master branch: + git branch | egrep '\* master' > /dev/null + +check-beta: + # this will fail if we are not in a beta checkout: + git branch | egrep '\* v[0-9]+_branch' > /dev/null + +blatSuite: topLibs hgLib + cd blat && ${MAKE} + cd gfClient && ${MAKE} + cd gfServer && ${MAKE} + cd webBlat && ${MAKE} + cd hg/pslPretty && ${MAKE} + cd hg/pslReps && ${MAKE} + cd hg/pslSort && ${MAKE} + cd utils/nibFrag && ${MAKE} + cd utils/faToNib && ${MAKE} + cd utils/faToTwoBit && ${MAKE} + cd utils/twoBitToFa && ${MAKE} + cd utils/twoBitInfo && ${MAKE} + cd isPcr && ${MAKE} + cd blatz && ${MAKE} + +# all of these application makefiles have been updated to include use +# of DESTDIR and BINDIR + +BLAT_APPLIST = blat gfClient gfServer isPcr + +userApps: topLibs hgLib destBin + cd utils/stringify && echo utils/stringify && ${MAKE} + cd utils && echo utils && ${MAKE} userAppsB + cd parasol && echo parasol && ${MAKE} userApps + cd hg && echo hg && ${MAKE} userApps + cd hg/utils && echo hg/utils && ${MAKE} userApps + cd hg/makeDb && echo hg/makeDb && ${MAKE} userApps + cd ameme && echo ameme && ${MAKE} + cd index/ixIxx && echo index/ixIxx && ${MAKE} + @for P in ${BLAT_APPLIST}; do \ + ( cd $${P} && echo $${P} && ${MAKE} ) ; \ + done + cd tabFile && echo tabFile && ${MAKE} userApps + cd utils/userApps && echo utils/userApps && ${MAKE} + +destBin: + ${MKDIR} ${DESTBINDIR} clean: - cd src && ${MAKE} clean + @for D in ${DIRS} x; do \ + if test "$$D" != "x" && test -d "$$D" ; then \ + ( cd $$D && echo $$D && ${MAKE} clean ) ;\ + x=$$? ; if [ $$x -ne 0 ]; then exit $$x ; fi \ + fi ;\ + done + cd parasol && ${MAKE} clean + cd lib && ${MAKE} clean + cd hg && ${MAKE} clean + cd hg && ${MAKE} clean_utils +ifneq ($(wildcard jkOwnLib/*),) + cd jkOwnLib && ${MAKE} clean +endif + cd htslib && ${MAKE} clean + cd utils && ${MAKE} clean + if test -d webBlat ; then cd webBlat && ${MAKE} clean ; fi + if test -d isPcr ; then cd isPcr && ${MAKE} clean ; fi + touch non-empty-rm.o + - find . -name \*.o -print | xargs rm + rm -f tags TAGS + rm -f cscope.out cscope.files cscope.po.out + +testDirs = blat gfServer hg lib utils +test:: $(testDirs:%=%.test) +%.test: + if test -d $* ; then cd $* && ${MAKE} test; fi + +LIB_TAGS_IN = lib/*.[hc] */lib/*.[hc] */*/lib/*.[hc] */*/*/lib/*.[hc] jkOwnLib/*.c \ + inc/*.h */inc/*.h */*/inc/*.h */*/*/inc/*.h */cgilib/*.[hc] + +# build tags for libraries +.PHONY: tags +tags: + ctags ${LIB_TAGS_IN} + +cscope.out: + find `pwd` -name '*.c' -o -name '*.h' > cscope.files + cscope -qRb `cat cscope.files` +search: cscope.out + cscope -d + +# build emacs tags for libraries +.PHONY: etags +etags: + etags ${LIB_TAGS_IN} + +# build tags for all files +.PHONY: tags-all +tags-all: + find . -name '*.[ch]' | ctags -L - + +# build emacs tags for all files +.PHONY: etags-all +etags-all: + find . -name '*.[ch]' | etags - + +utils: libs destBin + ${MKDIR} ${SCRIPTS} + cd parasol && ${MAKE} + @for D in ${DIRS} x; do \ + if test "$$D" != "x" ; then \ + ( cd $$D && echo $$D && ${MAKE} ) ;\ + x=$$? ; if [ $$x -ne 0 ]; then exit $$x ; fi \ + fi ;\ + done + cd utils && ${MAKE} +ifneq ($(wildcard jkOwnLib/*),) + cd hg && ${MAKE} utils +endif + +utils-alpha: check-alpha libs destBin + ${MKDIR} ${SCRIPTS} + cd parasol && ${MAKE} + @for D in ${DIRS} x; do \ + if test "$$D" != "x" ; then \ + ( cd $$D && echo $$D && ${MAKE} ) ;\ + x=$$? ; if [ $$x -ne 0 ]; then exit $$x ; fi \ + fi ;\ + done + cd utils && ${MAKE} + cd hg && ${MAKE} utils + + +ifneq ($(wildcard jkOwnLib/*),) +DIRS = ameme blat index dnaDust protDust weblet aladdin primeMate fuse meta tagStorm tabFile +else +DIRS = ameme index dnaDust protDust weblet aladdin primeMate fuse meta tagStorm tabFile +endif + + +## cellar archive for obsolete programs + +cellarDirs = cdnaAli getgene idbQuery reformat scanIntrons tracks wormAli \ + xenoAli + +buildCellar: $(cellarDirs:%=%.cellar) + +%.cellar: libs destBin + cd $* && echo $* && $(MAKE) + +cleanCellar: $(cellarDirs:%=%.cellarClean) +%.cellarClean: + cd $* && echo $* && $(MAKE) clean + +## top level target for everything html related +DOCS_LIST = hg/htdocs hg/js hg/htdocs/style +doc: ${DOCS_LIST:%=%.docuser} +%.docuser: + cd $* && $(MAKE) + +doc-alpha: ${DOCS_LIST:%=%.docalpha} +%.docalpha: + cd $* && $(MAKE) alpha + +doc-beta: ${DOCS_LIST:%=%.docbeta} +%.docbeta: + cd $* && $(MAKE) beta + +doc-install: ${DOCS_LIST:%=%.docinstall} +%.docinstall: + cd $* && $(MAKE) install