From d67a9a85f5269ebf4c52ac7d3b9400919f5b890f Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 7 Apr 2012 13:19:22 +0300 Subject: [PATCH] Fix parallel build and bootstrap on MS-Windows. nt/makefile.w32-in: (all): Don't depend on stamp_BLD and on maybe-bootstrap. (all-other-dirs-$(MAKETYPE)): Depend on maybe-bootstrap. (bootstrap-gmake): Invoke the "clean" and build targets in 2 separate commands, so they run in that order even under "make -j". lib/makefile.w32-in (gnulib, all): Don't depend on stamp_BLD. lib-src/makefile.w32-in (ALL): Now the list of executables, not of phony targets. (.PHONY): Only make-docfile is its prerequisite now. (make-docfile): Don't depend on stamp_BLD. Add a comment about the need in this target. (ctags, etags, ebrowse, hexl, movemail, emacsclient) (test-distrib): Phony targets removed. ($(BLD)/test-distrib.exe): Run test-distrib as part of the recipe. (all): Don't depend on stamp_BLD. --- ChangeLog | 4 ++++ lib-src/ChangeLog | 12 ++++++++++++ lib-src/makefile.w32-in | 23 +++++++++-------------- lib/makefile.w32-in | 4 ++-- nt/ChangeLog | 4 ++++ nt/makefile.w32-in | 10 +++++++--- 6 files changed, 38 insertions(+), 19 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8aee7b2ce4..8c0e8104c4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-04-07 Eli Zaretskii + + * lib/makefile.w32-in (gnulib, all): Don't depend on stamp_BLD. + 2012-03-04 Paul Eggert configure: fix ncurses 'configure' issue on Solaris 10 (Bug#10677) diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 2384599caf..ec7f9a626c 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,15 @@ +2012-04-07 Eli Zaretskii + + * makefile.w32-in (ALL): Now the list of executables, not of phony + targets. + (.PHONY): Only make-docfile is its prerequisite now. + (make-docfile): Don't depend on stamp_BLD. Add a comment about + the need in this target. + (ctags, etags, ebrowse, hexl, movemail, emacsclient) + (test-distrib): Phony targets removed. + ($(BLD)/test-distrib.exe): Run test-distrib as part of the recipe. + (all): Don't depend on stamp_BLD. + 2012-03-11 Andreas Schwab * emacsclient.c (main): Handle -print-nonl command. diff --git a/lib-src/makefile.w32-in b/lib-src/makefile.w32-in index 117a835c03..b181b1b4d7 100644 --- a/lib-src/makefile.w32-in +++ b/lib-src/makefile.w32-in @@ -17,9 +17,11 @@ # along with GNU Emacs. If not, see . -ALL = make-docfile hexl ctags etags movemail ebrowse emacsclient +ALL = $(BLD)/make-docfile.exe $(BLD)/hexl.exe $(BLD)/ctags.exe\ + $(BLD)/etags.exe $(BLD)/movemail.exe $(BLD)/ebrowse.exe\ + $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe -.PHONY: $(ALL) +.PHONY: make-docfile LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DNO_LDAV=1 \ -DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../lib \ @@ -27,23 +29,16 @@ LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DNO_LDAV=1 \ LIBS = $(BASE_LIBS) $(ADVAPI32) +# The following target is used by makefile.w32-in files in other directories. +make-docfile: $(BLD)/make-docfile.exe + $(BLD)/make-docfile.exe: $(BLD)/make-docfile.$(O) $(BLD)/ntlib.$(O) $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/make-docfile.$(O) $(BLD)/ntlib.$(O) $(LIBS) $(BLD)/hexl.exe: $(BLD)/hexl.$(O) $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/hexl.$(O) $(LIBS) $(BLD)/test-distrib.exe: $(BLD)/test-distrib.$(O) $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/test-distrib.$(O) $(LIBS) - -make-docfile: stamp_BLD $(BLD)/make-docfile.exe -ctags: stamp_BLD $(BLD)/ctags.exe -etags: stamp_BLD $(BLD)/etags.exe -ebrowse: stamp_BLD $(BLD)/ebrowse.exe -hexl: stamp_BLD $(BLD)/hexl.exe -movemail: stamp_BLD $(BLD)/movemail.exe -emacsclient: stamp_BLD $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe - -test-distrib: stamp_BLD $(BLD)/test-distrib.exe - "$(BLD)/test-distrib.exe" "$(SRC)/testfile" + "$(BLD)/test-distrib.exe" "$(SRC)/testfile" MOVEMAILOBJS = $(BLD)/movemail.$(O) \ $(BLD)/pop.$(O) \ @@ -297,7 +292,7 @@ $(DOC): stamp_BLD $(BLD)/make-docfile.exe ../src/$(BLD)/temacs.exe $(lisp1) $(l # # Build the executables # -all: stamp_BLD $(ALL) $(DOC) +all: $(ALL) $(DOC) # # Assuming INSTALL_DIR is defined, build and install emacs in it. diff --git a/lib/makefile.w32-in b/lib/makefile.w32-in index 3600406ac1..a2870345ad 100644 --- a/lib/makefile.w32-in +++ b/lib/makefile.w32-in @@ -41,12 +41,12 @@ $(BLD)/libgnu.$(A): $(GNULIBOBJS) - $(DEL) $@ $(AR) $(AR_OUT)$@ $(ALL_DEPS) -gnulib: stamp_BLD $(BLD)/libgnu.$(A) +gnulib: $(BLD)/libgnu.$(A) # # Build everything # -all: stamp_BLD $(ALL) +all: $(ALL) ### TAGS ### diff --git a/nt/ChangeLog b/nt/ChangeLog index cecf6ac3ac..136be32ea0 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,6 +1,10 @@ 2012-04-07 Eli Zaretskii * makefile.w32-in: Convert to Unix EOL format. + (all): Don't depend on stamp_BLD and on maybe-bootstrap. + (all-other-dirs-$(MAKETYPE)): Depend on maybe-bootstrap. + (bootstrap-gmake): Invoke the "clean" and build targets in 2 + separate commands, so they run in that order even under "make -j". 2012-03-29 Eli Zaretskii diff --git a/nt/makefile.w32-in b/nt/makefile.w32-in index e37a460329..48f4e299fc 100644 --- a/nt/makefile.w32-in +++ b/nt/makefile.w32-in @@ -89,7 +89,9 @@ $(BLD)/addpm.$(O) $(BLD)/ddeclient.$(O) $(BLD)/runemacs.$(O) $(BLD)/cmdproxy.$(O # # Build emacs # -all: which-sh stamp_BLD $(ALL) $(CLIENTRES) maybe-bootstrap all-other-dirs-$(MAKETYPE) +all: which-sh $(ALL) $(CLIENTRES) all-other-dirs-$(MAKETYPE) + +all-other-dirs-$(MAKETYPE): maybe-bootstrap all-other-dirs-nmake: addsection cd ..\lib @@ -177,8 +179,10 @@ bootstrap-nmake: addsection cmdproxy bootstrap-gmake: addsection cmdproxy $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap-clean $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean - $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean make-docfile - $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean all + $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean + $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src make-docfile + $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean + $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib all $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap-clean $(CP) $(BLD)/cmdproxy.exe ../bin -- 2.20.1