Merge from emacs--devo--0
[bpt/emacs.git] / src / makefile.w32-in
index 2bcc736..496e890 100644 (file)
@@ -1,6 +1,6 @@
 #  -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
 #  Copyright (C) 2000, 2001, 2002, 2003, 2004,
-#                2005 Free Software Foundation, Inc.
+#                2005, 2006, 2007 Free Software Foundation, Inc.
 #
 #  This file is part of GNU Emacs.
 #
@@ -159,7 +159,7 @@ all:            $(ALL)
 #
 # The dumped executable
 #
-emacs:          $(BLD) $(EMACS)
+emacs:          stamp_BLD $(EMACS)
 $(EMACS):       $(DOC) $(TEMACS)
        "$(THISDIR)/$(BLD)/temacs.exe" -batch -l loadup dump
        -"$(THISDIR)/$(BLD)/emacs.exe" -q -batch -f list-load-path-shadows
@@ -170,7 +170,7 @@ $(EMACS):       $(DOC) $(TEMACS)
 # If preload runs out of memory, increase the last argument to addsection
 # (it is the preload heap size in MB).
 #
-temacs:         $(BLD) $(TEMACS)
+temacs:         stamp_BLD $(TEMACS)
 $(TEMACS):      $(TLIB0) $(TLIB1) $(TLIBW32) $(TLASTLIB) $(TOBJ) $(TRES) \
                  ../nt/$(BLD)/addsection.exe
        $(LINK) $(LINK_OUT)$(TEMACS_TMP) $(FULL_LINK_FLAGS) $(TOBJ) $(TRES) $(LIBS)
@@ -188,7 +188,7 @@ bootstrap: bootstrap-emacs
 # WARNING: Do NOT split the part inside $(ARGQUOTE)s into multiple lines as
 #          this can break with GNU Make 3.81 and later if sh.exe is used.
 bootstrap-temacs:
-       $(MAKE) $(MFLAGS) temacs CFLAGS=$(ARGQUOTE)$(CFLAGS) -DPURESIZE=5000000$(ARGQUOTE)
+       $(MAKE) $(MFLAGS) $(XMFLAGS) temacs CFLAGS=$(ARGQUOTE)$(CFLAGS) -DPURESIZE=5000000$(ARGQUOTE)
 
 #
 # Dump an Emacs executable named bootstrap-emacs containing the
@@ -213,8 +213,8 @@ bootstrap-clean:
 # The resource file.  NT 3.10 requires the use of cvtres; even though
 # it is not necessary on later versions, it is still ok to use it.
 #
-$(TRES): ../nt/emacs.rc
-       $(RC) $(RC_INCLUDE)../nt $(RC_OUT)$@ $(ALL_DEPS)
+$(TRES): ../nt/emacs.rc stamp_BLD
+       $(RC) $(RC_INCLUDE)../nt $(RC_OUT)$@ ../nt/emacs.rc
 
 #
 # Build the library.  Split up the build into two phases...otherwise we
@@ -253,6 +253,7 @@ clean:
        - $(DEL) *~ "s/*~" "m/*~"
        - $(DEL) $(COMPILER_TEMP_FILES)
        - $(DEL_TREE) $(OBJDIR)
+       - $(DEL) stamp_BLD
 
 distclean:     clean
        - $(DEL) config.h epaths.h
@@ -719,6 +720,8 @@ $(BLD)/fns.$(O) : \
        $(EMACS_ROOT)/src/s/ms-w32.h \
        $(EMACS_ROOT)/src/m/intel386.h \
        $(EMACS_ROOT)/src/config.h \
+       $(EMACS_ROOT)/nt/inc/langinfo.h \
+       $(EMACS_ROOT)/nt/inc/nl_types.h \
        $(SRC)/atimer.h \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
@@ -1044,6 +1047,8 @@ $(BLD)/w32proc.$(O) : \
        $(SRC)/w32proc.c \
        $(SRC)/s/ms-w32.h \
        $(SRC)/m/intel386.h \
+       $(EMACS_ROOT)/nt/inc/langinfo.h \
+       $(EMACS_ROOT)/nt/inc/nl_types.h \
        $(SRC)/config.h \
        $(SRC)/process.h \
        $(SRC)/syssignal.h \
@@ -1548,3 +1553,8 @@ $(BLD)/w32bdf.$(O): \
        $(SRC)/w32bdf.h \
        $(SRC)/w32gui.h \
        $(SRC)/w32term.h
+
+# Each object file depends on stamp_BLD, because in parallel builds we must
+# make sure $(BLD) exists before starting compilations.
+#
+$(OBJ0) $(OBJ1) $(WIN32OBJ) $(BLD)/lastfile.$(O) $(BLD)/firstfile.$(O): stamp_BLD