changeset 41806:afe310730a69

(bootstrap-nmake): (bootstrap-gmake): Extend bootstrap process to first do bootstrap-clean in lisp dir and rebuild the DOC file. (bootstrap): Do a "normal" make after the bootstrap work.
author Andrew Innes <andrewi@gnu.org>
date Mon, 03 Dec 2001 11:40:21 +0000
parents 5f489a3ed5c5
children e9e9a80e58be
files nt/makefile.w32-in
diffstat 1 files changed, 236 insertions(+), 220 deletions(-) [+]
line wrap: on
line diff
--- a/nt/makefile.w32-in	Mon Dec 03 11:29:01 2001 +0000
+++ b/nt/makefile.w32-in	Mon Dec 03 11:40:21 2001 +0000
@@ -1,220 +1,236 @@
-#  Makefile for GNU Emacs on the Microsoft W32 API.
-#  Copyright (c) 2000-2001 Free Software Foundation, Inc.
-#
-#  Top level makefile for building GNU Emacs on Windows NT
-#
-#  This file is part of GNU Emacs.
-#  
-#  GNU Emacs is free software; you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation; either version 2, or (at your option)
-#  any later version.
-#  
-#  GNU Emacs is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#  
-#  You should have received a copy of the GNU General Public License
-#  along with GNU Emacs; see the file COPYING.  If not, write to
-#  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-#  Boston, MA 02111-1307, USA.
-
-ALL		= addpm ddeclient runemacs cmdproxy addsection preprep
-
-.PHONY: $(ALL)
-
-TRES		= $(BLD)/emacs.res
-
-addpm:		  $(BLD) $(BLD)/addpm.exe
-$(BLD)/addpm.exe: $(BLD)/addpm.$(O)
-		  $(LINK) $(LINK_OUT)$@ \
-		  $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32)
-
-ddeclient:	  $(BLD) $(BLD)/ddeclient.exe
-$(BLD)/ddeclient.exe: $(BLD)/ddeclient.$(O)
-		  $(LINK) $(LINK_OUT)$@ \
-		  $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32)
-
-cmdproxy:	  $(BLD) $(BLD)/cmdproxy.exe
-$(BLD)/cmdproxy.exe: $(BLD)/cmdproxy.$(O)
-		  $(LINK) $(LINK_OUT)$@ \
-		  $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32)
-
-addsection:	  $(BLD) $(BLD)/addsection.exe
-$(BLD)/addsection.exe: $(BLD)/addsection.$(O)
-		  $(LINK) $(LINK_OUT)$@ \
-		  $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32)
-
-preprep:	  $(BLD) $(BLD)/preprep.exe
-$(BLD)/preprep.exe: $(BLD)/preprep.$(O)
-		  $(LINK) $(LINK_OUT)$@ \
-		  $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS)
-
-#
-# 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):	emacs.rc
-		$(RC) $(RC_OUT)$(BLD)/emacs.res $(ALL_DEPS)
-
-runemacs:	  $(BLD) $(BLD)/runemacs.exe
-$(BLD)/runemacs.exe: $(BLD)/runemacs.$(O) $(TRES)
-		  $(LINK) $(LINK_OUT)$@ $(SUBSYSTEM_WINDOWS) \
-		  $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32)
-
-which-sh:
-	@echo Using $(THE_SHELL) as shell.
-
-#
-# Build emacs
-#
-all:	which-sh $(BLD) $(ALL) all-other-dirs-$(MAKETYPE)
-
-all-other-dirs-nmake:
-	cd ..\lib-src
-	$(MAKE) $(MFLAGS) all
-	cd ..\src
-	$(MAKE) $(MFLAGS) all
-	cd ..\lisp
-	$(MAKE) $(MFLAGS) all
-	cd ..\leim
-	$(MAKE) $(MFLAGS) all
-	cd ..\nt
-
-all-other-dirs-gmake:
-	$(MAKE) $(MFLAGS) -C ../lib-src all
-	$(MAKE) $(MFLAGS) -C ../src all
-	$(MAKE) $(MFLAGS) -C ../lisp all
-	$(MAKE) $(MFLAGS) -C ../leim all
-
-recompile:	recompile-$(MAKETYPE)
-
-recompile-nmake:
-	cd ..\lisp
-	$(MAKE) $(MFLAGS) recompile
-	cd ..\nt
-
-recompile-gmake:
-	$(MAKE) $(MFLAGS) -C ../lisp recompile
-
-bootstrap:	$(BLD) $(ALL) bootstrap-$(MAKETYPE)
-
-bootstrap-nmake:
-	cd ..\src
-	$(MAKE) $(MFLAGS) bootstrap
-	$(MAKE) $(MFLAGS) bootstrap-clean
-	cd ..\lisp
-	$(MAKE) $(MFLAGS) bootstrap
-	cd ..\nt
-
-bootstrap-gmake:
-	$(MAKE) $(MFLAGS) -C ../src bootstrap
-	$(MAKE) $(MFLAGS) -C ../src bootstrap-clean
-	$(MAKE) $(MFLAGS) -C ../lisp bootstrap
-
-bootstrap-clean: bootstrap-clean-$(MAKETYPE)
-
-bootstrap-clean-nmake:
-	cd ..\src
-	$(MAKE) $(MFLAGS) bootstrap-clean
-	cd ..\lisp
-	$(MAKE) $(MFLAGS) bootstrap-clean
-
-bootstrap-clean-gmake:
-	$(MAKE) $(MFLAGS) -C ../src bootstrap-clean
-	$(MAKE) $(MFLAGS) -C ../lisp bootstrap-clean
-
-$(INSTALL_DIR):
-	- mkdir "$(INSTALL_DIR)"
-
-$(INSTALL_DIR)/bin: $(INSTALL_DIR)
-	- mkdir "$(INSTALL_DIR)/bin"
-
-#
-# Build and install emacs in INSTALL_DIR
-#
-install: all $(INSTALL_DIR)/bin install-other-dirs-$(MAKETYPE)
-	- $(CP) $(BLD)/addpm.exe $(INSTALL_DIR)/bin
-	- $(CP) $(BLD)/ddeclient.exe $(INSTALL_DIR)/bin
-	- $(CP) $(BLD)/cmdproxy.exe $(INSTALL_DIR)/bin
-	- $(CP) $(BLD)/runemacs.exe $(INSTALL_DIR)/bin
-	- $(CP) ../lib-src/fns-*.el $(INSTALL_DIR)/bin
-	- "$(INSTALL_DIR)/bin/addpm" /q
-	- $(DEL) ../same-dir.tst
-	- $(DEL) $(INSTALL_DIR)/same-dir.tst
-	echo SameDirTest > "$(INSTALL_DIR)/same-dir.tst"
-	- mkdir "$(INSTALL_DIR)/etc"
-	- mkdir "$(INSTALL_DIR)/info"
-	- mkdir "$(INSTALL_DIR)/lock"
-	- mkdir "$(INSTALL_DIR)/data"
-	- mkdir "$(INSTALL_DIR)/site-lisp"
-	- mkdir "$(INSTALL_DIR)/etc/icons"
-	$(IFNOTSAMEDIR) $(CP) ../site-lisp/subdirs.el $(INSTALL_DIR)/site-lisp $(ENDIF)
-	$(IFNOTSAMEDIR) $(CP_DIR) ../etc $(INSTALL_DIR) $(ENDIF)
-	- $(CP_DIR) icons $(INSTALL_DIR)/etc
-	$(IFNOTSAMEDIR) $(CP_DIR) ../info $(INSTALL_DIR) $(ENDIF)
-	- $(DEL) ../same-dir.tst
-	- $(DEL) $(INSTALL_DIR)/same-dir.tst
-
-install-other-dirs-nmake:
-	cd ..\lib-src
-	$(MAKE) $(MFLAGS) install
-	cd ..\src
-	$(MAKE) $(MFLAGS) install
-	cd ..\lisp
-	$(MAKE) $(MFLAGS) install
-	cd ..\leim
-	$(MAKE) $(MFLAGS) install
-	cd ..\nt
-
-install-other-dirs-gmake:
-	$(MAKE) $(MFLAGS) -C ../lib-src install
-	$(MAKE) $(MFLAGS) -C ../src install
-	$(MAKE) $(MFLAGS) -C ../lisp install
-	$(MAKE) $(MFLAGS) -C ../leim install
-
-#
-# Maintenance
-# 
-clean:	clean-other-dirs-$(MAKETYPE)
-	- $(DEL) *~ $(COMPILER_TEMP_FILES)
-	- $(DEL_TREE) $(OBJDIR)
-	- $(DEL) ../etc/DOC ../etc/DOC-X
-
-clean-other-dirs-nmake:
-	cd ..\lib-src
-	$(MAKE) $(MFLAGS) clean
-	cd ..\src
-	$(MAKE) $(MFLAGS) clean
-	cd ..\lisp
-	$(MAKE) $(MFLAGS) clean
-	cd ..\leim
-	$(MAKE) $(MFLAGS) clean
-	cd ..\nt
-
-clean-other-dirs-gmake:
-	$(MAKE) $(MFLAGS) -C ../lib-src clean
-	$(MAKE) $(MFLAGS) -C ../src clean
-	$(MAKE) $(MFLAGS) -C ../lisp clean
-	$(MAKE) $(MFLAGS) -C ../leim clean
-
-cleanall-other-dirs-nmake:
-	cd ..\lib-src
-	$(MAKE) $(MFLAGS) cleanall
-	cd ..\src
-	$(MAKE) $(MFLAGS) cleanall
-	cd ..\nt
-
-cleanall-other-dirs-gmake:
-	$(MAKE) $(MFLAGS) -C ../lib-src cleanall
-	$(MAKE) $(MFLAGS) -C ../src cleanall
-
-cleanall: clean cleanall-other-dirs-$(MAKETYPE)
-	 - $(DEL_TREE) obj
-	 - $(DEL_TREE) obj-spd
-	 - $(DEL_TREE) oo
-	 - $(DEL_TREE) oo-spd
-
-realclean: cleanall
-	- $(DEL_TREE) ../bin
+#  Makefile for GNU Emacs on the Microsoft W32 API.
+#  Copyright (c) 2000-2001 Free Software Foundation, Inc.
+#
+#  Top level makefile for building GNU Emacs on Windows NT
+#
+#  This file is part of GNU Emacs.
+#  
+#  GNU Emacs is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2, or (at your option)
+#  any later version.
+#  
+#  GNU Emacs is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#  
+#  You should have received a copy of the GNU General Public License
+#  along with GNU Emacs; see the file COPYING.  If not, write to
+#  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+#  Boston, MA 02111-1307, USA.
+
+ALL		= addpm ddeclient runemacs cmdproxy addsection preprep
+
+.PHONY: $(ALL)
+
+TRES		= $(BLD)/emacs.res
+
+addpm:		  $(BLD) $(BLD)/addpm.exe
+$(BLD)/addpm.exe: $(BLD)/addpm.$(O)
+		  $(LINK) $(LINK_OUT)$@ \
+		  $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32)
+
+ddeclient:	  $(BLD) $(BLD)/ddeclient.exe
+$(BLD)/ddeclient.exe: $(BLD)/ddeclient.$(O)
+		  $(LINK) $(LINK_OUT)$@ \
+		  $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32)
+
+cmdproxy:	  $(BLD) $(BLD)/cmdproxy.exe
+$(BLD)/cmdproxy.exe: $(BLD)/cmdproxy.$(O)
+		  $(LINK) $(LINK_OUT)$@ \
+		  $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32)
+
+addsection:	  $(BLD) $(BLD)/addsection.exe
+$(BLD)/addsection.exe: $(BLD)/addsection.$(O)
+		  $(LINK) $(LINK_OUT)$@ \
+		  $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32)
+
+preprep:	  $(BLD) $(BLD)/preprep.exe
+$(BLD)/preprep.exe: $(BLD)/preprep.$(O)
+		  $(LINK) $(LINK_OUT)$@ \
+		  $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS)
+
+#
+# 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):	emacs.rc
+		$(RC) $(RC_OUT)$(BLD)/emacs.res $(ALL_DEPS)
+
+runemacs:	  $(BLD) $(BLD)/runemacs.exe
+$(BLD)/runemacs.exe: $(BLD)/runemacs.$(O) $(TRES)
+		  $(LINK) $(LINK_OUT)$@ $(SUBSYSTEM_WINDOWS) \
+		  $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32)
+
+which-sh:
+	@echo Using $(THE_SHELL) as shell.
+
+#
+# Build emacs
+#
+all:	which-sh $(BLD) $(ALL) all-other-dirs-$(MAKETYPE)
+
+all-other-dirs-nmake:
+	cd ..\lib-src
+	$(MAKE) $(MFLAGS) all
+	cd ..\src
+	$(MAKE) $(MFLAGS) all
+	cd ..\lisp
+	$(MAKE) $(MFLAGS) all
+	cd ..\leim
+	$(MAKE) $(MFLAGS) all
+	cd ..\nt
+
+all-other-dirs-gmake:
+	$(MAKE) $(MFLAGS) -C ../lib-src all
+	$(MAKE) $(MFLAGS) -C ../src all
+	$(MAKE) $(MFLAGS) -C ../lisp all
+	$(MAKE) $(MFLAGS) -C ../leim all
+
+recompile:	recompile-$(MAKETYPE)
+
+recompile-nmake:
+	cd ..\lisp
+	$(MAKE) $(MFLAGS) recompile
+	cd ..\nt
+
+recompile-gmake:
+	$(MAKE) $(MFLAGS) -C ../lisp recompile
+
+#### Bootstrapping.
+
+### This is meant for Emacs maintainers only.  It first cleans the
+### lisp subdirectory, removing all compiled Lisp files.  Then a
+### special emacs executable is built from Lisp sources, which is then
+### used to compile Lisp files.  The last step is a "normal" make.
+
+bootstrap:	bootstrap-$(MAKETYPE) all
+
+bootstrap-nmake:
+	cd ..\lisp
+	$(MAKE) $(MFLAGS) bootstrap-clean
+	cd ..\src
+	$(MAKE) $(MFLAGS) clean
+	cd ..\lib-src
+	$(MAKE) $(MFLAGS) clean DOC
+	cd ..\src
+	$(MAKE) $(MFLAGS) bootstrap
+	$(MAKE) $(MFLAGS) bootstrap-clean
+	cd ..\lisp
+	$(MAKE) $(MFLAGS) bootstrap
+	cd ..\nt
+
+bootstrap-gmake:
+	$(MAKE) $(MFLAGS) -C ../lisp bootstrap-clean
+	$(MAKE) $(MFLAGS) -C ../src clean
+	$(MAKE) $(MFLAGS) -C ../lib-src clean DOC
+	$(MAKE) $(MFLAGS) -C ../src bootstrap
+	$(MAKE) $(MFLAGS) -C ../src bootstrap-clean
+	$(MAKE) $(MFLAGS) -C ../lisp bootstrap
+
+bootstrap-clean: bootstrap-clean-$(MAKETYPE)
+
+bootstrap-clean-nmake:
+	cd ..\src
+	$(MAKE) $(MFLAGS) bootstrap-clean
+	cd ..\lisp
+	$(MAKE) $(MFLAGS) bootstrap-clean
+
+bootstrap-clean-gmake:
+	$(MAKE) $(MFLAGS) -C ../src bootstrap-clean
+	$(MAKE) $(MFLAGS) -C ../lisp bootstrap-clean
+
+$(INSTALL_DIR):
+	- mkdir "$(INSTALL_DIR)"
+
+$(INSTALL_DIR)/bin: $(INSTALL_DIR)
+	- mkdir "$(INSTALL_DIR)/bin"
+
+#
+# Build and install emacs in INSTALL_DIR
+#
+install: all $(INSTALL_DIR)/bin install-other-dirs-$(MAKETYPE)
+	- $(CP) $(BLD)/addpm.exe $(INSTALL_DIR)/bin
+	- $(CP) $(BLD)/ddeclient.exe $(INSTALL_DIR)/bin
+	- $(CP) $(BLD)/cmdproxy.exe $(INSTALL_DIR)/bin
+	- $(CP) $(BLD)/runemacs.exe $(INSTALL_DIR)/bin
+	- $(CP) ../lib-src/fns-*.el $(INSTALL_DIR)/bin
+	- "$(INSTALL_DIR)/bin/addpm" /q
+	- $(DEL) ../same-dir.tst
+	- $(DEL) $(INSTALL_DIR)/same-dir.tst
+	echo SameDirTest > "$(INSTALL_DIR)/same-dir.tst"
+	- mkdir "$(INSTALL_DIR)/etc"
+	- mkdir "$(INSTALL_DIR)/info"
+	- mkdir "$(INSTALL_DIR)/lock"
+	- mkdir "$(INSTALL_DIR)/data"
+	- mkdir "$(INSTALL_DIR)/site-lisp"
+	- mkdir "$(INSTALL_DIR)/etc/icons"
+	$(IFNOTSAMEDIR) $(CP) ../site-lisp/subdirs.el $(INSTALL_DIR)/site-lisp $(ENDIF)
+	$(IFNOTSAMEDIR) $(CP_DIR) ../etc $(INSTALL_DIR) $(ENDIF)
+	- $(CP_DIR) icons $(INSTALL_DIR)/etc
+	$(IFNOTSAMEDIR) $(CP_DIR) ../info $(INSTALL_DIR) $(ENDIF)
+	- $(DEL) ../same-dir.tst
+	- $(DEL) $(INSTALL_DIR)/same-dir.tst
+
+install-other-dirs-nmake:
+	cd ..\lib-src
+	$(MAKE) $(MFLAGS) install
+	cd ..\src
+	$(MAKE) $(MFLAGS) install
+	cd ..\lisp
+	$(MAKE) $(MFLAGS) install
+	cd ..\leim
+	$(MAKE) $(MFLAGS) install
+	cd ..\nt
+
+install-other-dirs-gmake:
+	$(MAKE) $(MFLAGS) -C ../lib-src install
+	$(MAKE) $(MFLAGS) -C ../src install
+	$(MAKE) $(MFLAGS) -C ../lisp install
+	$(MAKE) $(MFLAGS) -C ../leim install
+
+#
+# Maintenance
+# 
+clean:	clean-other-dirs-$(MAKETYPE)
+	- $(DEL) *~ $(COMPILER_TEMP_FILES)
+	- $(DEL_TREE) $(OBJDIR)
+	- $(DEL) ../etc/DOC ../etc/DOC-X
+
+clean-other-dirs-nmake:
+	cd ..\lib-src
+	$(MAKE) $(MFLAGS) clean
+	cd ..\src
+	$(MAKE) $(MFLAGS) clean
+	cd ..\lisp
+	$(MAKE) $(MFLAGS) clean
+	cd ..\leim
+	$(MAKE) $(MFLAGS) clean
+	cd ..\nt
+
+clean-other-dirs-gmake:
+	$(MAKE) $(MFLAGS) -C ../lib-src clean
+	$(MAKE) $(MFLAGS) -C ../src clean
+	$(MAKE) $(MFLAGS) -C ../lisp clean
+	$(MAKE) $(MFLAGS) -C ../leim clean
+
+cleanall-other-dirs-nmake:
+	cd ..\lib-src
+	$(MAKE) $(MFLAGS) cleanall
+	cd ..\src
+	$(MAKE) $(MFLAGS) cleanall
+	cd ..\nt
+
+cleanall-other-dirs-gmake:
+	$(MAKE) $(MFLAGS) -C ../lib-src cleanall
+	$(MAKE) $(MFLAGS) -C ../src cleanall
+
+cleanall: clean cleanall-other-dirs-$(MAKETYPE)
+	 - $(DEL_TREE) obj
+	 - $(DEL_TREE) obj-spd
+	 - $(DEL_TREE) oo
+	 - $(DEL_TREE) oo-spd
+
+realclean: cleanall
+	- $(DEL_TREE) ../bin