X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/83536c16cd4ab21436859ba4d1dfdf2badd6ebbe..3dfbc6d87705c9a8cf93420e09269a7a65a372c6:/nt/makefile.w32-in diff --git a/nt/makefile.w32-in b/nt/makefile.w32-in index 166314ce68..4f619b3f2e 100644 --- a/nt/makefile.w32-in +++ b/nt/makefile.w32-in @@ -1,220 +1,285 @@ -# 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) 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) 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 + +# arch-tag: 6f5b23a6-774b-4598-9c29-58235b2b4219