# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
# Copyright (C) 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006 Free Software Foundation, Inc.
+# 2005, 2006, 2007 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
#
# 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
# 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)
# 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
# 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
- $(DEL) *~ "s/*~" "m/*~"
- $(DEL) $(COMPILER_TEMP_FILES)
- $(DEL_TREE) $(OBJDIR)
+ - $(DEL) stamp_BLD
distclean: clean
- $(DEL) config.h epaths.h
$(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 \
$(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 \
$(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