bc0daa57e76433e7fde5e352df577d5120e3bcc1 markd Mon Jan 13 01:11:31 2025 -0800 Add an version of stringify that is in interperted langauges so it does not have to be built first and in the path. Useful if building just parts of the tree diff --git src/makefile src/makefile index 6fdc68c..819bbc9 100644 --- src/makefile +++ src/makefile @@ -1,224 +1,223 @@ include inc/localEnvironment.mk include inc/common.mk 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: @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]' | grep -v "/userApps/" | 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} cd hg && ${MAKE} utils 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