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