view nt/makefile.w32-in @ 51242:661e2fe7e775

(autoconf-mode setups): Recognise AH_ and AU_ entries in "(autoconf)Autoconf Macro Index". Add "(autoconf)M4 Macro Index" and "(autoconf)Autotest Macro Index". Remove duplicate copy of "(automake)Macro and Variable Index". Keep automake after all autoconf possibilities, so as to prefer those.
author Juanma Barranquero <lekktu@gmail.com>
date Sun, 25 May 2003 21:03:57 +0000
parents 23a1cea22d13
children 695cf19ef79e d7ddb3e565de
line wrap: on
line source

#  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
	- $(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