From 0d9f81376b7ef14ec7a61077a059cfa2420c5666 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 14 Jun 2014 17:34:22 -0700 Subject: [PATCH] Use `make -C' rather than `cd && make' * Makefile.in: Use `make -C' rather than `cd && make' throughout. * lib-src/Makefile.in (../lib/libgnu.a): Use `make -C' rather than `cd && make'. * lisp/Makefile.in (leim, semantic): Use `make -C' rather than `cd && make'. * lwlib/Makefile.in ($(globals_h)): Use `make -C' rather than `cd && make'. * src/Makefile.in: Use `make -C' rather than `cd && make' throughout. --- ChangeLog | 2 ++ Makefile.in | 28 ++++++++++++++-------------- lib-src/ChangeLog | 3 +++ lib-src/Makefile.in | 2 +- lisp/ChangeLog | 2 ++ lisp/Makefile.in | 4 ++-- lwlib/ChangeLog | 2 ++ lwlib/Makefile.in | 2 +- src/ChangeLog | 4 ++++ src/Makefile.in | 27 +++++++++++++-------------- 10 files changed, 44 insertions(+), 32 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5bb156ff804..f74594e9b58 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2014-06-15 Glenn Morris + * Makefile.in: Use `make -C' rather than `cd && make' throughout. + * Makefile.in: Parallelize clean rules using GNU make features. (submake_template): New definition. (mostlyclean_dirs, clean_dirs, distclean_dirs, maintainer_clean_dirs): diff --git a/Makefile.in b/Makefile.in index d908bf16576..7104ef82744 100644 --- a/Makefile.in +++ b/Makefile.in @@ -358,7 +358,7 @@ lisp: src # These targets should be "${SUBDIR} without `src'". lib lib-src lisp nt: Makefile - cd $@ && $(MAKE) all + $(MAKE) -C $@ all # Pass to src/Makefile.in an additional BOOTSTRAPEMACS variable which # is either set to bootstrap-emacs (in case bootstrap-emacs has not been @@ -384,7 +384,7 @@ src: Makefile $(MAKE) all BOOTSTRAPEMACS="$$boot" VCSWITNESS="$$vcswitness" blessmail: Makefile src - cd lib-src && $(MAKE) maybe-blessmail + $(MAKE) -C lib-src maybe-blessmail # We used to have one rule per */Makefile.in, but that leads to race # conditions with parallel makes, so let's assume that the time stamp on @@ -477,7 +477,7 @@ write_subdir=if [ -f "$${subdir}/subdirs.el" ]; \ ### Lisp files and DOC file to work properly. install-arch-dep: src install-arch-indep install-etcdoc install-$(NTDIR) umask 022; ${MKDIR_P} "$(DESTDIR)${bindir}" - cd lib-src && $(MAKE) install + $(MAKE) -C lib-src install if test "${ns_self_contained}" = "no"; then \ ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} "$(DESTDIR)${bindir}/$(EMACSFULL)" || exit 1 ; \ chmod 1755 "$(DESTDIR)${bindir}/$(EMACSFULL)" || true; \ @@ -495,7 +495,7 @@ install-arch-dep: src install-arch-indep install-etcdoc install-$(NTDIR) ### in nt/, and its Posix do-nothing shadow. install-: install-nt: - cd $(NTDIR) && $(MAKE) install + $(MAKE) -C $(NTDIR) install ## In the share directory, we are deleting: ## applications (with emacs.desktop, also found in etc/) @@ -641,7 +641,7 @@ install-info: info [ -f "$(DESTDIR)${infodir}/dir" ] || \ [ ! -f ${srcdir}/info/dir ] || \ ${INSTALL_DATA} ${srcdir}/info/dir "$(DESTDIR)${infodir}/dir"; \ - info_misc=`cd doc/misc && $(QUIET_SUBMAKE) $(MAKE) -s echo-info`; \ + info_misc=`$(QUIET_SUBMAKE) $(MAKE) -s -C doc/misc echo-info`; \ cd ${srcdir}/info ; \ for elt in ${INFO_NONMISC} $${info_misc}; do \ test "$(HAVE_MAKEINFO)" = "no" && test ! -f $$elt && continue; \ @@ -715,7 +715,7 @@ install-strip: ### ### Don't delete the lisp and etc directories if they're in the source tree. uninstall: uninstall-$(NTDIR) uninstall-doc - cd lib-src && $(MAKE) uninstall + $(MAKE) -C lib-src uninstall -unset CDPATH; \ for dir in "$(DESTDIR)${lispdir}" "$(DESTDIR)${etcdir}" ; do \ if [ -d "$${dir}" ]; then \ @@ -732,7 +732,7 @@ uninstall: uninstall-$(NTDIR) uninstall-doc done -rm -rf "$(DESTDIR)${libexecdir}/emacs/${version}" thisdir=`/bin/pwd`; \ - (info_misc=`cd doc/misc && $(QUIET_SUBMAKE) $(MAKE) -s echo-info`; \ + (info_misc=`$(QUIET_SUBMAKE) $(MAKE) -s -C doc/misc echo-info`; \ if cd "$(DESTDIR)${infodir}"; then \ for elt in ${INFO_NONMISC} $${info_misc}; do \ (cd "$${thisdir}"; \ @@ -764,7 +764,7 @@ uninstall: uninstall-$(NTDIR) uninstall-doc ### in nt/, and its Posix do-nothing shadow. uninstall-: uninstall-nt: - cd $(NTDIR) && $(MAKE) uninstall + $(MAKE) -C $(NTDIR) uninstall # ==================== Cleaning up and miscellanea ==================== @@ -888,14 +888,14 @@ extraclean: $(SUBDIR:=_extraclean) # even when the build directory and source dir are different. .PHONY: TAGS tags TAGS tags: lib lib-src src - cd src && $(MAKE) tags + $(MAKE) -C src tags check: all @if test ! -d test/automated; then \ echo "You do not seem to have the test/ directory."; \ echo "Maybe you are using a release tarfile, rather than a repository checkout."; \ else \ - cd test/automated && $(MAKE) check; \ + $(MAKE) -C test/automated check; \ fi dist: @@ -909,7 +909,7 @@ PSS = lispref-ps lispintro-ps emacs-ps misc-ps DOCS = $(DVIS) $(HTMLS) $(INFOS) $(PDFS) $(PSS) $(DOCS): - t=$@; IFS=-; set $$t; IFS=; cd doc/$$1 && $(MAKE) $$2 + t=$@; IFS=-; set $$t; IFS=; $(MAKE) -C doc/$$1 $$2 .PHONY: $(DOCS) docs pdf ps .PHONY: info dvi dist check html info-real info-dir check-info @@ -958,7 +958,7 @@ INSTALL_DOC = $(INSTALL_DVI) $(INSTALL_HTML) $(INSTALL_PDF) $(INSTALL_PS) ## Install non .info forms of the documentation. ## TODO add etc/refcards. $(INSTALL_DOC): - t=$@; IFS=-; set $$t; IFS=; cd doc/$$2 && $(MAKE) $$1-$$3 + t=$@; IFS=-; set $$t; IFS=; $(MAKE) -C doc/$$2 $$1-$$3 .PHONY: $(INSTALL_DOC) install-doc .PHONY: install-dvi install-html install-pdf install-ps @@ -981,7 +981,7 @@ UNINSTALL_PS = uninstall-emacs-ps uninstall-lispref-ps \ UNINSTALL_DOC = $(UNINSTALL_DVI) $(UNINSTALL_HTML) $(UNINSTALL_PDF) $(UNINSTALL_PS) $(UNINSTALL_DOC): - t=$@; IFS=-; set $$t; IFS=; cd doc/$$2 && $(MAKE) $$1-$$3 + t=$@; IFS=-; set $$t; IFS=; $(MAKE) -C doc/$$2 $$1-$$3 .PHONY: $(UNINSTALL_DOC) uninstall-doc .PHONY: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps @@ -1058,4 +1058,4 @@ check-declare: echo "You must build Emacs to use this command"; \ exit 1; \ fi - cd lisp && $(MAKE) $@ + $(MAKE) -C lisp $@ diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 74cdf05177f..06417b3254f 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,5 +1,8 @@ 2014-06-15 Glenn Morris + * Makefile.in (../lib/libgnu.a): + Use `make -C' rather than `cd && make'. + * Makefile.in (bootstrap-clean): New. 2014-06-13 Glenn Morris diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in index 2de64113921..eb3dc026c05 100644 --- a/lib-src/Makefile.in +++ b/lib-src/Makefile.in @@ -304,7 +304,7 @@ TAGS: etags${EXEEXT} etags *.[ch] ../lib/libgnu.a: $(config_h) - cd ../lib && $(MAKE) libgnu.a + $(MAKE) -C ../lib libgnu.a regex.o: $(srcdir)/../src/regex.c $(srcdir)/../src/regex.h $(config_h) ${CC} -c ${CPP_CFLAGS} ${srcdir}/../src/regex.c diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d722c521b55..8cb58bde25c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2014-06-15 Glenn Morris + * Makefile.in (leim, semantic): Use `make -C' rather than `cd && make'. + * progmodes/cc-langs.el: Require cl-lib. (Bug#17463) Replace delete-duplicates and mapcan by cl- versions throughout. And cl-macroexpand-all by macroexpand-all. diff --git a/lisp/Makefile.in b/lisp/Makefile.in index 6504539ba42..cbc1d2af3ae 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -348,7 +348,7 @@ compile-clean: .PHONY: leim semantic leim: - cd ../leim && $(MAKE) all EMACS="$(EMACS)" + $(MAKE) -C ../leim all EMACS="$(EMACS)" # FIXME. Yuck. semantic: @@ -356,7 +356,7 @@ semantic: .*) EMACS="../${EMACS}" ;; \ *) EMACS="${EMACS}" ;; \ esac; \ - cd ../admin/grammars && $(MAKE) all EMACS="$${EMACS}" + $(MAKE) -C ../admin/grammars all EMACS="$${EMACS}" # Compile all Lisp files, but don't recompile those that are up to # date. Some .el files don't get compiled because they set the diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog index 6af0b419740..9f490396292 100644 --- a/lwlib/ChangeLog +++ b/lwlib/ChangeLog @@ -1,5 +1,7 @@ 2014-06-15 Glenn Morris + * Makefile.in ($(globals_h)): Use `make -C' rather than `cd && make'. + * Makefile.in (mostlyclean, clean, distclean, maintainer-clean): Declare as PHONY. (bootstrap-clean): New. diff --git a/lwlib/Makefile.in b/lwlib/Makefile.in index f8f6fe2c9d7..7185aa60727 100644 --- a/lwlib/Makefile.in +++ b/lwlib/Makefile.in @@ -80,7 +80,7 @@ globals_h = ../src/globals.h src_h = $(config_h) $(lisp_h) $(globals_h) $(globals_h): - cd ../src && $(MAKE) globals.h + $(MAKE) -C ../src globals.h lwlib-utils.o: $(src_h) lwlib-utils.c lwlib-utils.h lwlib.h lwlib.o: $(src_h) lwlib.c lwlib.h lwlib-int.h lwlib-utils.h \ diff --git a/src/ChangeLog b/src/ChangeLog index 1bb96989b60..66ccae26c5c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2014-06-15 Glenn Morris + + * Makefile.in: Use `make -C' rather than `cd && make' throughout. + 2014-06-15 Eli Zaretskii * xdisp.c (Fmove_point_visually): Don't use the glyph matrix diff --git a/src/Makefile.in b/src/Makefile.in index c858220c432..64c6b72479b 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -414,11 +414,11 @@ all: emacs$(EXEEXT) $(OTHER_FILES) .PHONY: all $(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT) - cd ../leim && $(MAKE) leim-list.el EMACS="$(bootstrap_exe)" + $(MAKE) -C ../leim leim-list.el EMACS="$(bootstrap_exe)" $(srcdir)/macuvs.h $(lispsource)/international/charprop.el: \ bootstrap-emacs$(EXEEXT) - cd ../admin/unidata && $(MAKE) all EMACS="../$(bootstrap_exe)" + $(MAKE) -C ../admin/unidata all EMACS="../$(bootstrap_exe)" ## The dumped Emacs is as functional and more efficient than ## bootstrap-emacs, so we replace the latter with the former. @@ -459,7 +459,7 @@ $(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(obj) $(lisp) $(libsrc)/make-docfile -a $(etc)/DOC -d $(lispsource) `sed -n -e 's| \\\\||' -e 's|^[ ]*$$(lispsource)/||p' $(srcdir)/lisp.mk` $(libsrc)/make-docfile$(EXEEXT): - cd $(libsrc); $(MAKE) make-docfile$(EXEEXT) + $(MAKE) -C $(libsrc) make-docfile$(EXEEXT) buildobj.h: Makefile for i in $(ALLOBJS); do \ @@ -480,7 +480,7 @@ gl-stamp: $(libsrc)/make-docfile$(EXEEXT) $(GLOBAL_SOURCES) $(ALLOBJS): globals.h $(lib)/libgnu.a: $(config_h) - cd $(lib) && $(MAKE) libgnu.a + $(MAKE) -C $(lib) libgnu.a ## We have to create $(etc) here because init_cmdargs tests its ## existence when setting Vinstallation_directory (FIXME?). @@ -499,9 +499,9 @@ temacs$(EXEEXT): $(LIBXMENU) $(ALLOBJS) \ ## The following oldxmenu-related rules are only (possibly) used if ## HAVE_X11 && !USE_GTK, but there is no harm in always defining them. $(lwlibdir)/liblw.a: $(config_h) globals.h lisp.h FORCE - cd $(lwlibdir) && $(MAKE) liblw.a + $(MAKE) -C $(lwlibdir) liblw.a $(oldXMenudir)/libXMenu11.a: FORCE - cd $(oldXMenudir) && $(MAKE) libXMenu11.a + $(MAKE) -C $(oldXMenudir) libXMenu11.a FORCE: .PHONY: FORCE @@ -519,7 +519,7 @@ emacs.res: $(ntsource)/emacs.rc \ -o $@ $(ntsource)/emacs.rc ns-app: emacs$(EXEEXT) - cd ../nextstep && $(MAKE) all + $(MAKE) -C ./nextstep all .PHONY: mostlyclean clean bootstrap-clean distclean maintainer-clean .PHONY: versionclean extraclean @@ -578,10 +578,10 @@ TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) $(srcdir)/$(ctagsfiles3) ## Arrange to make tags tables for ../lisp and ../lwlib, ## which the above TAGS file for the C files includes by reference. ../lisp/TAGS: - cd ../lisp && $(MAKE) TAGS ETAGS="$(ETAGS)" + $(MAKE) -C ../lisp TAGS ETAGS="$(ETAGS)" $(lwlibdir)/TAGS: - cd $(lwlibdir) && $(MAKE) TAGS ETAGS="$(ETAGS)" + $(MAKE) -C $(lwlibdir) TAGS ETAGS="$(ETAGS)" tags: TAGS ../lisp/TAGS $(lwlibdir)/TAGS .PHONY: tags @@ -617,8 +617,7 @@ tags: TAGS ../lisp/TAGS $(lwlibdir)/TAGS ## separately below. ## With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)" .el.elc: - @cd ../lisp && $(MAKE) compile-onefile \ - THEFILE=$< EMACS="$(bootstrap_exe)" + @$(MAKE) -C ../lisp compile-onefile THEFILE=$< EMACS="$(bootstrap_exe)" ## Since the .el.elc rule cannot specify an extra dependency, we do it here. $(lisp): $(BOOTSTRAPEMACS) @@ -629,12 +628,12 @@ $(lisp): $(BOOTSTRAPEMACS) VCSWITNESS = $(lispsource)/loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS) - cd ../lisp && $(MAKE) autoloads EMACS="$(bootstrap_exe)" + $(MAKE) -C ../lisp autoloads EMACS="$(bootstrap_exe)" ## Dump an Emacs executable named bootstrap-emacs containing the ## files from loadup.el in source form. bootstrap-emacs$(EXEEXT): temacs$(EXEEXT) - cd ../lisp && $(MAKE) update-subdirs + $(MAKE) -C ../lisp update-subdirs if test "$(CANNOT_DUMP)" = "yes"; then \ rm -f bootstrap-emacs$(EXEEXT); \ ln temacs$(EXEEXT) bootstrap-emacs$(EXEEXT); \ @@ -644,7 +643,7 @@ bootstrap-emacs$(EXEEXT): temacs$(EXEEXT) mv -f emacs$(EXEEXT) bootstrap-emacs$(EXEEXT); \ fi @: Compile some files earlier to speed up further compilation. - cd ../lisp && $(MAKE) compile-first EMACS="$(bootstrap_exe)" + $(MAKE) -C ../lisp compile-first EMACS="$(bootstrap_exe)" ## Insert either autodeps.mk (if AUTO_DEPEND), else deps.mk. @deps_frag@ -- 2.39.2