Fix parallel build and bootstrap on MS-Windows.
authorEli Zaretskii <eliz@gnu.org>
Sat, 7 Apr 2012 10:19:22 +0000 (13:19 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 7 Apr 2012 10:19:22 +0000 (13:19 +0300)
 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
lib-src/ChangeLog
lib-src/makefile.w32-in
lib/makefile.w32-in
nt/ChangeLog
nt/makefile.w32-in

index 8aee7b2..8c0e810 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2012-04-07  Eli Zaretskii  <eliz@gnu.org>
+
+       * lib/makefile.w32-in (gnulib, all): Don't depend on stamp_BLD.
+
 2012-03-04  Paul Eggert  <eggert@cs.ucla.edu>
 
        configure: fix ncurses 'configure' issue on Solaris 10 (Bug#10677)
index 2384599..ec7f9a6 100644 (file)
@@ -1,3 +1,15 @@
+2012-04-07  Eli Zaretskii  <eliz@gnu.org>
+
+       * 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  <schwab@linux-m68k.org>
 
        * emacsclient.c (main): Handle -print-nonl command.
index 117a835..b181b1b 100644 (file)
 # along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 
-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.
index 3600406..a287034 100644 (file)
@@ -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 ###
 
index cecf6ac..136be32 100644 (file)
@@ -1,6 +1,10 @@
 2012-04-07  Eli Zaretskii  <eliz@gnu.org>
 
        * 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  <eliz@gnu.org>
 
index e37a460..48f4e29 100644 (file)
@@ -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