Mercurial > emacs
view nt/makefile.w32-in @ 56026:bb6720f21c54
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-396
Tweak arch tagging to make build/install-in-place less annoying
Previously, autoconf-created Makefiles and the like would contain
duplicate taglines (unfortunately, autoconf doesn't seem to have a
`strip in generated file' comment mechanism) leading to conflicts, and
installing in place would create unknown directories and copies of
source directories (leading to conflicts with the source directories).
This changeset makes all autoconf-processed files use explicit id-tags
and adds .arch-inventory entries to ignore installation directories.
author | Miles Bader <miles@gnu.org> |
---|---|
date | Fri, 11 Jun 2004 02:39:51 +0000 |
parents | 7d801d9fee5a |
children | d341e83af4f2 4c90ffeb71c5 |
line wrap: on
line source
# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API. # Copyright (c) 2000-2001, 2004 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) maybe-bootstrap 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. maybe-bootstrap: maybe-bootstrap-$(SHELLTYPE) # dummy target to force other targets to be evaluated. doit: maybe-bootstrap-CMD: doit @echo. @if not EXIST ..\lisp\abbrev.elc echo Essential Lisp files seem to be missing. You should either @if not EXIST ..\lisp\abbrev.elc echo do 'make bootstrap' or create 'lisp/abbrev.elc' somehow @echo. @if not EXIST ..\lisp\abbrev.elc exit -1 maybe-bootstrap-SH: doit @if [ ! -f ../lisp/abbrev.elc ] ; then \ echo; \ echo "Essential Lisp files seem to be missing. You should either"; \ echo "do \`make bootstrap' or create \`lisp/abbrev.elc' somehow."; \ echo; \ exit -1; \ fi bootstrap: addsection bootstrap-$(MAKETYPE) all bootstrap-nmake: cd ..\lisp $(MAKE) $(MFLAGS) bootstrap-clean cd ..\src $(MAKE) $(MFLAGS) clean cd ..\lib-src $(MAKE) $(MFLAGS) clean cd ..\src $(MAKE) $(MFLAGS) bootstrap $(MAKE) $(MFLAGS) bootstrap-clean cd ..\lisp $(MAKE) $(MFLAGS) SHELL=$(SHELLTYPE) bootstrap cd ..\lib-src $(MAKE) $(MFLAGS) DOC cd ..\nt bootstrap-gmake: $(MAKE) $(MFLAGS) -C ../lisp bootstrap-clean $(MAKE) $(MFLAGS) -C ../src clean $(MAKE) $(MFLAGS) -C ../lib-src clean $(MAKE) $(MFLAGS) -C ../src bootstrap $(MAKE) $(MFLAGS) -C ../src bootstrap-clean $(MAKE) $(MFLAGS) -C ../lisp bootstrap $(MAKE) $(MFLAGS) -C ../lib-src DOC 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 - "$(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 force-info: # Note that man/makefile knows how to # put the info files in $(infodir), # so we can do ok running make in the build dir. info: force-info info-$(MAKETYPE) info-nmake: cd ..\man $(MAKE) $(MFLAGS) info cd ..\lispref $(MAKE) $(MFLAGS) info cd ..\lispintro $(MAKE) $(MFLAGS) info info-gmake: $(MAKE) $(MFLAGS) -C ../man info $(MAKE) $(MFLAGS) -C ../lispref info $(MAKE) $(MFLAGS) -C ../lispintro info # # 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 ..\lispintro $(MAKE) $(MFLAGS) clean cd ..\lispref $(MAKE) $(MFLAGS) clean cd ..\leim $(MAKE) $(MFLAGS) clean cd ..\man $(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