836b73dcf9a90141ad0923009f03d2494fdd18ca markd Tue Apr 22 15:17:05 2025 -0700 Replaced shell loops in build paths of makefile to use rules. This should address issues where errors in some rules are not reported (#35339) and also increase speed of builds using multiple cores diff --git src/hg/makefile src/hg/makefile index 822718e13bb..b10d808b9bc 100644 --- src/hg/makefile +++ src/hg/makefile @@ -272,53 +272,51 @@ %.alpha: hgLib cd $* && echo $* && $(MAKE) alpha # beta: Destination for the binaries is /usr/local/apache/cgi-bin-beta/ beta: ${BROWSER_BINS:%=%.beta} ${BROWSER_LOADERS:%=%.beta} %.beta: hgLib cd $* && echo $* && $(MAKE) beta # install: Destination for the binaries is ${DESTDIR}/usr/local/apache/cgi-bin install: ${BROWSER_BINS:%=%.install} ${BROWSER_LOADERS:%=%.install} %.install: hgLib cd $* && echo $* && $(MAKE) install -clean:: +clean_browser:: ${BROWSER_BINS:%=%_clean_browser} ${BROWSER_LOADERS:%=%_clean_browser} cd lib && ${MAKE} clean - @for D in ${BROWSER_BINS} ${BROWSER_LOADERS}; do \ - (cd $${D} && ${MAKE} clean;) \ - done touch non-empty-rm.o - find . -name \*.o -print | xargs rm -clean_utils:: - @for D in ${UTIL_DIRS}; do \ - if test ! -s $${D} ; then continue ; fi; \ - (cd $${D} && ${MAKE} clean;) \ - done +%_clean_browser: + ${MAKE} -C $* clean -clean:: ${TEST_DIRS:%=%.clean} ${TEST_EXTRA:%=%.cleanExtra} +clean_utils:: ${UTIL_DIRS:%=%_clean_utils} +%_clean_utils: + if test -s $* ; then ${MAKE} -C $* clean ; fi + +clean:: clean_browser clean_utils ${TEST_DIRS:%=%.clean} ${TEST_EXTRA:%=%.cleanExtra} %.clean: - cd $* && ${MAKE} clean + ${MAKE} -C $* clean # these directories are absent in the kent-core repo due to license issues %.cleanExtra: - @test -s $*/makefile && (cd $* && ${MAKE} clean) || true + @test -s $*/makefile && (${MAKE} -C $* clean) || true # tests tests all use test.chromInfo .NOTPARALLEL: checkTableCoords.testAll checkTableCoords.test vcfToHgvs.testAll vcfToHgvs.test testAll: $(APPS:%=%.testAll) %.testAll: @test -s $*/tests/makefile && (echo $*; cd $* && $(MAKE) test) || true test:: ${TEST_DIRS:%=%.test} ${TEST_EXTRA:%=%.test} testAll %.test: hgLib - cd $* && ${MAKE} test + ${MAKE} -C $* test