Remove files used by the old MS-Windows specific build procedure
* nt/configure.bat: Remove everything except the blurb about the new build procedure. * make-dist: Remove references to makefile.w32-in in various directories, and to files in nt/ that were deleted. * etc/NEWS: Mention the fact that the files were dropped.
This commit is contained in:
parent
8fa49a6786
commit
8db2b2a7d3
22 changed files with 18 additions and 9182 deletions
|
@ -1,56 +0,0 @@
|
|||
# makefile.w32-in -- W32 -*- Makefile -*- to generate character property tables.
|
||||
# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
# National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
# Registration Number H13PRO009
|
||||
#
|
||||
# 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
EMACS = ../../src/$(BLD)/emacs.exe
|
||||
DSTDIR = ../../lisp/international
|
||||
lisp = $(CURDIR)/../../lisp
|
||||
# EMACSLOADPATH should include international, so Emacs finds encoded-kb.
|
||||
# It should include emacs-lisp, so Emacs finds bytecomp. This is because
|
||||
# lisp/subdirs.el is not generated yet when the commands below run.
|
||||
EMACSLOADPATH = $(lisp);$(lisp)/international;$(lisp)/emacs-lisp
|
||||
# Quote EMACS so it could be a file name with embedded whitespace
|
||||
RUNEMACS = "$(EMACS)" -Q -batch
|
||||
|
||||
all: $(DSTDIR)/charprop.el
|
||||
|
||||
.el.elc:
|
||||
$(RUNEMACS) -f batch-byte-compile $<
|
||||
|
||||
unidata.txt: UnicodeData.txt
|
||||
sed -e \
|
||||
$(ARGQUOTE)s/\([^;]*\);\(.*\)/(#x\1 $(DQUOTE)\2$(DQUOTE))/$(ARGQUOTE)\
|
||||
-e $(ARGQUOTE)s/;/$(DQUOTE) $(DQUOTE)/g$(ARGQUOTE) < UnicodeData.txt > $@
|
||||
|
||||
charprop-SH: unidata-gen.elc unidata.txt
|
||||
ELC=$(CURDIR)/unidata-gen.elc; \
|
||||
DATADIR=$(CURDIR); \
|
||||
DATA=unidata.txt; \
|
||||
cd $(DSTDIR); \
|
||||
$(RUNEMACS) --load $${ELC} -f unidata-gen-files $${DATADIR} $${DATA}
|
||||
|
||||
charprop-CMD: unidata-gen.elc unidata.txt
|
||||
$(RUNEMACS) --eval $(ARGQUOTE)(cd $(DQUOTE)$(DSTDIR)$(DQUOTE))$(ARGQUOTE) --load $(CURDIR)/unidata-gen.elc -f unidata-gen-files $(CURDIR) unidata.txt
|
||||
|
||||
${DSTDIR}/charprop.el: charprop-$(SHELLTYPE)
|
||||
|
||||
clean:
|
||||
- $(DEL) unidata-gen.elc unidata.txt
|
||||
|
|
@ -1,153 +0,0 @@
|
|||
#### -*- Makefile -*- for the Emacs Manual
|
||||
|
||||
# Copyright (C) 2003-2015 Free Software Foundation, Inc.
|
||||
|
||||
# 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
# Where to find the source code. The source code for Emacs's C kernel is
|
||||
# expected to be in $(srcdir)/src, and the source code for Emacs's
|
||||
# utility programs is expected to be in $(srcdir)/lib-src. This is
|
||||
# set by the configure script's '--srcdir' option.
|
||||
srcdir=.
|
||||
|
||||
infodir = $(srcdir)/../../info
|
||||
|
||||
# The makeinfo program is part of the Texinfo distribution.
|
||||
MAKEINFO = makeinfo
|
||||
MAKEINFO_OPTS = --force --enable-encoding -I$(srcdir)
|
||||
MULTI_INSTALL_INFO = $(srcdir)\..\..\nt\multi-install-info.bat
|
||||
INFO_EXT=.info
|
||||
INFO_OPTS=--no-split
|
||||
INFO_TARGETS = $(infodir)/emacs$(INFO_EXT)
|
||||
DVI_TARGETS = emacs.dvi
|
||||
INFOSOURCES = info.texi
|
||||
|
||||
# The following rule does not work with all versions of 'make'.
|
||||
.SUFFIXES: .texi .dvi
|
||||
.texi.dvi:
|
||||
texi2dvi $<
|
||||
|
||||
TEXI2DVI = texi2dvi
|
||||
ENVADD = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \
|
||||
"MAKEINFO=$(MAKEINFO) $(MAKEINFO_OPTS)" /C
|
||||
|
||||
EMACS_XTRA=\
|
||||
$(srcdir)/arevert-xtra.texi \
|
||||
$(srcdir)/cal-xtra.texi \
|
||||
$(srcdir)/dired-xtra.texi \
|
||||
$(srcdir)/picture-xtra.texi \
|
||||
$(srcdir)/emerge-xtra.texi \
|
||||
$(srcdir)/vc-xtra.texi \
|
||||
$(srcdir)/vc1-xtra.texi \
|
||||
$(srcdir)/fortran-xtra.texi \
|
||||
$(srcdir)/msdos-xtra.texi
|
||||
|
||||
EMACSSOURCES= \
|
||||
$(srcdir)/emacs.texi \
|
||||
$(srcdir)/emacsver.texi \
|
||||
$(srcdir)/doclicense.texi \
|
||||
$(srcdir)/screen.texi \
|
||||
$(srcdir)/commands.texi \
|
||||
$(srcdir)/entering.texi \
|
||||
$(srcdir)/basic.texi \
|
||||
$(srcdir)/mini.texi \
|
||||
$(srcdir)/m-x.texi \
|
||||
$(srcdir)/help.texi \
|
||||
$(srcdir)/mark.texi \
|
||||
$(srcdir)/killing.texi \
|
||||
$(srcdir)/regs.texi \
|
||||
$(srcdir)/display.texi \
|
||||
$(srcdir)/search.texi \
|
||||
$(srcdir)/fixit.texi \
|
||||
$(srcdir)/files.texi \
|
||||
$(srcdir)/buffers.texi \
|
||||
$(srcdir)/windows.texi \
|
||||
$(srcdir)/frames.texi \
|
||||
$(srcdir)/mule.texi \
|
||||
$(srcdir)/modes.texi \
|
||||
$(srcdir)/indent.texi \
|
||||
$(srcdir)/text.texi \
|
||||
$(srcdir)/programs.texi \
|
||||
$(srcdir)/building.texi \
|
||||
$(srcdir)/maintaining.texi \
|
||||
$(srcdir)/abbrevs.texi \
|
||||
$(srcdir)/sending.texi \
|
||||
$(srcdir)/rmail.texi \
|
||||
$(srcdir)/dired.texi \
|
||||
$(srcdir)/calendar.texi \
|
||||
$(srcdir)/misc.texi \
|
||||
$(srcdir)/package.texi \
|
||||
$(srcdir)/custom.texi \
|
||||
$(srcdir)/trouble.texi \
|
||||
$(srcdir)/cmdargs.texi \
|
||||
$(srcdir)/xresources.texi \
|
||||
$(srcdir)/anti.texi \
|
||||
$(srcdir)/macos.texi \
|
||||
$(srcdir)/msdos.texi \
|
||||
$(srcdir)/gnu.texi \
|
||||
$(srcdir)/glossary.texi \
|
||||
$(srcdir)/ack.texi \
|
||||
$(srcdir)/kmacro.texi \
|
||||
$(EMACS_XTRA)
|
||||
|
||||
info: $(INFO_TARGETS)
|
||||
|
||||
dvi: $(DVI_TARGETS)
|
||||
|
||||
# Note that all the Info targets build the Info files
|
||||
# in srcdir. There is no provision for Info files
|
||||
# to exist in the build directory.
|
||||
# In a distribution of Emacs, the Info files should be up to date.
|
||||
|
||||
$(infodir)/dir:
|
||||
$(MULTI_INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS)
|
||||
|
||||
$(infodir)/emacs$(INFO_EXT): $(EMACSSOURCES)
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ emacs.texi
|
||||
|
||||
emacs.dvi: $(EMACSSOURCES)
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/emacs.texi
|
||||
|
||||
emacs.html: $(EMACSSOURCES)
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ emacs.texi
|
||||
|
||||
emacs-xtra.dvi: emacs-xtra.texi $(EMACS_XTRA)
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-xtra.texi
|
||||
|
||||
mostlyclean:
|
||||
- $(DEL) *.log *.cp *.fn *.ky *.pg *.vr core *.tp *.core gnustmp.*
|
||||
|
||||
## FIXME $(infodir)/emacs* deletes too much, eg emacs-mime.
|
||||
clean: mostlyclean
|
||||
- $(DEL) *.dvi
|
||||
- $(DEL) $(infodir)/emacs*
|
||||
- $(DEL_TREE) emacs.html
|
||||
|
||||
distclean: clean
|
||||
- $(DEL) makefile
|
||||
|
||||
maintainer-clean: distclean
|
||||
- $(DEL) *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc
|
||||
# Don't delete these, because they are outside the current directory.
|
||||
# for file in $(INFO_TARGETS); do rm -f $${file}*; done
|
||||
|
||||
|
||||
# Formerly this directory had texindex.c and getopt.c in it
|
||||
# and this makefile built them to make texindex.
|
||||
# That caused trouble because this is run entirely in the source directory.
|
||||
# Since we expect to get texi2dvi from elsewhere,
|
||||
# it is ok to expect texindex from elsewhere also.
|
|
@ -1,85 +0,0 @@
|
|||
#### -*- Makefile -*- for the Emacs Lisp Introduction manual.
|
||||
|
||||
# Copyright (C) 2003-2015 Free Software Foundation, Inc.
|
||||
|
||||
# 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
srcdir = .
|
||||
|
||||
infodir = $(srcdir)/../../info
|
||||
# Directory with the (customized) texinfo.tex file.
|
||||
texinfodir = $(srcdir)/../misc
|
||||
# Directory with emacsver.texi.
|
||||
emacsdir = $(srcdir)/../emacs
|
||||
|
||||
INFO_EXT=.info
|
||||
INFO_OPTS=--no-split -I$(emacsdir)
|
||||
INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi $(emacsdir)/emacsver.texi \
|
||||
$(srcdir)/doclicense.texi
|
||||
# The file name eintr must fit within 5 characters, to allow for
|
||||
# -NN extensions to fit into DOS 8+3 limits without clashing
|
||||
INFO_TARGETS = $(infodir)/eintr$(INFO_EXT)
|
||||
DVI_TARGETS = emacs-lisp-intro.dvi
|
||||
|
||||
MAKEINFO = makeinfo
|
||||
INSTALL_INFO = install-info
|
||||
TEXI2DVI = texi2dvi
|
||||
TEXI2PDF = texi2pdf
|
||||
DVIPS = dvips
|
||||
ENVADD = $(srcdir)\..\..\nt\envadd.bat \
|
||||
"TEXINPUTS=$(srcdir);$(texinfodir);$(emacsdir);$(TEXINPUTS)" \
|
||||
"MAKEINFO=$(MAKEINFO) -I$(srcdir) -I$(emacsdir) -I$(texinfodir)" /C
|
||||
|
||||
.SUFFIXES: .dvi .ps .texi
|
||||
|
||||
info: $(INFO_TARGETS)
|
||||
|
||||
$(infodir)/dir:
|
||||
$(INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS)
|
||||
|
||||
dvi: $(DVI_TARGETS)
|
||||
|
||||
$(infodir)/eintr$(INFO_EXT): $(INFO_SOURCES)
|
||||
$(MAKEINFO) $(INFO_OPTS) -o $@ $(srcdir)/emacs-lisp-intro.texi
|
||||
|
||||
emacs-lisp-intro.dvi: $(INFO_SOURCES)
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-lisp-intro.texi
|
||||
|
||||
emacs-lisp-intro.pdf: $(INFO_SOURCES)
|
||||
$(ENVADD) $(TEXI2PDF) $(srcdir)/emacs-lisp-intro.texi
|
||||
|
||||
emacs-lisp-intro.html: $(INFO_SOURCES)
|
||||
$(MAKEINFO) --html -o $@ $(srcdir)/emacs-lisp-intro.texi
|
||||
|
||||
.dvi.ps:
|
||||
$(DVIPS) $< -o $@
|
||||
|
||||
mostlyclean:
|
||||
- $(DEL) *.log *.cp *.fn *.ky *.pg *.vr *.tp
|
||||
|
||||
clean: mostlyclean
|
||||
- $(DEL) *.dvi $(infodir)/eintr$(INFO_EXT)*
|
||||
|
||||
distclean: clean
|
||||
- $(DEL) makefile
|
||||
|
||||
maintainer-clean: distclean
|
||||
- $(DEL) *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
|
@ -1,128 +0,0 @@
|
|||
# -*- Makefile -*- for the GNU Emacs Lisp Reference Manual.
|
||||
|
||||
# Copyright (C) 2003-2015 Free Software Foundation, Inc.
|
||||
|
||||
# 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
# Standard configure variables.
|
||||
srcdir = .
|
||||
|
||||
infodir = $(srcdir)/../../info
|
||||
|
||||
# Directory with emacsver.texi.
|
||||
emacsdir = $(srcdir)/../emacs
|
||||
# Directory with the (customized) texinfo.tex file.
|
||||
texinfodir = $(srcdir)/../misc
|
||||
|
||||
INFO_EXT=.info
|
||||
INFO_OPTS=--no-split
|
||||
|
||||
# Redefine 'TEX' if 'tex' does not invoke plain TeX. For example:
|
||||
# TEX=platex
|
||||
TEX=tex
|
||||
INSTALL_INFO = install-info
|
||||
MAKEINFO = makeinfo
|
||||
MAKEINFO_OPTS = --force --enable-encoding -I$(srcdir) -I$(emacsdir)
|
||||
|
||||
# The environment variable and its value to add $(srcdir) to the path
|
||||
# searched for TeX input files.
|
||||
texinputdir = $(srcdir)\..\..\nt\envadd.bat \
|
||||
"TEXINPUTS=$(srcdir);$(texinfodir);$(emacsdir);$(TEXINPUTS)" \
|
||||
"MAKEINFO=$(MAKEINFO) $(MAKEINFO_OPTS)" /C
|
||||
|
||||
# List of all the texinfo files in the manual:
|
||||
|
||||
srcs = \
|
||||
$(emacsdir)/emacsver.texi \
|
||||
$(srcdir)/abbrevs.texi \
|
||||
$(srcdir)/anti.texi \
|
||||
$(srcdir)/backups.texi \
|
||||
$(srcdir)/buffers.texi \
|
||||
$(srcdir)/commands.texi \
|
||||
$(srcdir)/compile.texi \
|
||||
$(srcdir)/control.texi \
|
||||
$(srcdir)/customize.texi \
|
||||
$(srcdir)/debugging.texi \
|
||||
$(srcdir)/display.texi \
|
||||
$(srcdir)/edebug.texi \
|
||||
$(srcdir)/elisp.texi \
|
||||
$(srcdir)/errors.texi \
|
||||
$(srcdir)/eval.texi \
|
||||
$(srcdir)/files.texi \
|
||||
$(srcdir)/frames.texi \
|
||||
$(srcdir)/functions.texi \
|
||||
$(srcdir)/hash.texi \
|
||||
$(srcdir)/help.texi \
|
||||
$(srcdir)/hooks.texi \
|
||||
$(srcdir)/internals.texi \
|
||||
$(srcdir)/intro.texi \
|
||||
$(srcdir)/keymaps.texi \
|
||||
$(srcdir)/lists.texi \
|
||||
$(srcdir)/loading.texi \
|
||||
$(srcdir)/macros.texi \
|
||||
$(srcdir)/maps.texi \
|
||||
$(srcdir)/markers.texi \
|
||||
$(srcdir)/minibuf.texi \
|
||||
$(srcdir)/modes.texi \
|
||||
$(srcdir)/nonascii.texi \
|
||||
$(srcdir)/numbers.texi \
|
||||
$(srcdir)/objects.texi \
|
||||
$(srcdir)/os.texi \
|
||||
$(srcdir)/package.texi \
|
||||
$(srcdir)/positions.texi \
|
||||
$(srcdir)/processes.texi \
|
||||
$(srcdir)/searching.texi \
|
||||
$(srcdir)/sequences.texi \
|
||||
$(srcdir)/streams.texi \
|
||||
$(srcdir)/strings.texi \
|
||||
$(srcdir)/symbols.texi \
|
||||
$(srcdir)/syntax.texi \
|
||||
$(srcdir)/text.texi \
|
||||
$(srcdir)/tips.texi \
|
||||
$(srcdir)/variables.texi \
|
||||
$(srcdir)/windows.texi \
|
||||
$(srcdir)/index.texi \
|
||||
$(srcdir)/gpl.texi \
|
||||
$(srcdir)/doclicense.texi
|
||||
|
||||
|
||||
.PHONY: clean
|
||||
|
||||
# The info file is named 'elisp'.
|
||||
|
||||
info: $(infodir)/elisp$(INFO_EXT)
|
||||
|
||||
$(infodir)/dir:
|
||||
$(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/elisp
|
||||
|
||||
$(infodir)/elisp$(INFO_EXT): $(srcs)
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $(srcdir)/elisp.texi
|
||||
|
||||
elisp.dvi: $(srcs)
|
||||
$(texinputdir) $(TEX) $(srcdir)/elisp.texi
|
||||
|
||||
clean:
|
||||
- $(DEL) *.toc *.aux *.log *.cp *.cps *.fn *.fns *.tp *.tps \
|
||||
*.vr *.vrs *.pg *.pgs *.ky *.kys
|
||||
- $(DEL) make.out core
|
||||
- $(DEL) $(infodir)/elisp*
|
||||
|
||||
distclean: clean
|
||||
- $(DEL) makefile
|
||||
|
||||
maintainer-clean: distclean
|
||||
- $(DEL) elisp$(INFO_EXT) elisp$(INFO_EXT)-? elisp$(INFO_EXT)-?? elisp.dvi elisp.oaux
|
|
@ -1,431 +0,0 @@
|
|||
#### -*- Makefile -*- for documentation other than the Emacs manual.
|
||||
|
||||
# Copyright (C) 2003-2015 Free Software Foundation, Inc.
|
||||
|
||||
# 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
# Where to find the source code. The source code for Emacs's C kernel is
|
||||
# expected to be in $(srcdir)/src, and the source code for Emacs's
|
||||
# utility programs is expected to be in $(srcdir)/lib-src. This is
|
||||
# set by the configure script's '--srcdir' option.
|
||||
srcdir=.
|
||||
|
||||
infodir = $(srcdir)/../../info
|
||||
|
||||
## Directory with emacsver.texi.
|
||||
## Currently only used by efaq; could be added to MAKEINFO.
|
||||
emacsdir = $(srcdir)/../emacs
|
||||
|
||||
INFO_EXT=.info
|
||||
INFO_OPTS=--no-split
|
||||
|
||||
# The makeinfo program is part of the Texinfo distribution.
|
||||
MAKEINFO = makeinfo
|
||||
MAKEINFO_OPTS = --force -I$(emacsdir)
|
||||
MULTI_INSTALL_INFO = $(srcdir)\..\..\nt\multi-install-info.bat
|
||||
INFO_TARGETS = $(infodir)/ccmode$(INFO_EXT) \
|
||||
$(infodir)/cl$(INFO_EXT) $(infodir)/dbus$(INFO_EXT) $(infodir)/dired-x$(INFO_EXT) \
|
||||
$(infodir)/ediff$(INFO_EXT) $(infodir)/forms$(INFO_EXT) $(infodir)/gnus$(INFO_EXT) \
|
||||
$(infodir)/message$(INFO_EXT) $(infodir)/sieve$(INFO_EXT) $(infodir)/pgg$(INFO_EXT) \
|
||||
$(infodir)/emacs-mime$(INFO_EXT) $(infodir)/info$(INFO_EXT) $(infodir)/mh-e$(INFO_EXT) \
|
||||
$(infodir)/reftex$(INFO_EXT) $(infodir)/sc$(INFO_EXT) $(infodir)/vip$(INFO_EXT) \
|
||||
$(infodir)/viper$(INFO_EXT) $(infodir)/widget$(INFO_EXT) $(infodir)/efaq$(INFO_EXT) \
|
||||
$(infodir)/ada-mode$(INFO_EXT) $(infodir)/autotype$(INFO_EXT) $(infodir)/calc$(INFO_EXT) \
|
||||
$(infodir)/idlwave$(INFO_EXT) $(infodir)/eudc$(INFO_EXT) $(infodir)/ebrowse$(INFO_EXT) \
|
||||
$(infodir)/pcl-cvs$(INFO_EXT) $(infodir)/woman$(INFO_EXT) $(infodir)/eshell$(INFO_EXT) \
|
||||
$(infodir)/org$(INFO_EXT) $(infodir)/url$(INFO_EXT) $(infodir)/speedbar$(INFO_EXT) \
|
||||
$(infodir)/tramp$(INFO_EXT) $(infodir)/ses$(INFO_EXT) $(infodir)/smtpmail$(INFO_EXT) \
|
||||
$(infodir)/flymake$(INFO_EXT) $(infodir)/newsticker$(INFO_EXT) $(infodir)/rcirc$(INFO_EXT) \
|
||||
$(infodir)/erc$(INFO_EXT) $(infodir)/ert$(INFO_EXT) \
|
||||
$(infodir)/remember$(INFO_EXT) $(infodir)/nxml-mode$(INFO_EXT) \
|
||||
$(infodir)/epa$(INFO_EXT) $(infodir)/mairix-el$(INFO_EXT) $(infodir)/sasl$(INFO_EXT) \
|
||||
$(infodir)/auth$(INFO_EXT) $(infodir)/eieio$(INFO_EXT) $(infodir)/ede$(INFO_EXT) \
|
||||
$(infodir)/semantic$(INFO_EXT) $(infodir)/edt$(INFO_EXT) $(infodir)/emacs-gnutls$(INFO_EXT) \
|
||||
$(infodir)/srecode$(INFO_EXT) $(infodir)/bovine$(INFO_EXT) \
|
||||
$(infodir)/wisent$(INFO_EXT) $(infodir)/htmlfontify$(INFO_EXT)
|
||||
DVI_TARGETS = calc.dvi cc-mode.dvi cl.dvi dbus.dvi dired-x.dvi \
|
||||
ediff.dvi forms.dvi gnus.dvi message.dvi emacs-mime.dvi \
|
||||
sieve.dvi pgg.dvi mh-e.dvi \
|
||||
reftex.dvi sc.dvi vip.dvi viper.dvi widget.dvi faq.dvi \
|
||||
ada-mode.dvi autotype.dvi idlwave.dvi eudc.dvi ebrowse.dvi \
|
||||
pcl-cvs.dvi woman.dvi eshell.dvi org.dvi url.dvi \
|
||||
speedbar.dvi tramp.dvi ses.dvi smtpmail.dvi flymake.dvi \
|
||||
newsticker.dvi rcirc.dvi erc.dvi ert.dvi \
|
||||
remember.dvi nxml-mode.dvi \
|
||||
epa.dvi mairix-el.dvi sasl.dvi auth.dvi eieio.dvi ede.dvi \
|
||||
semantic.dvi edt.dvi emacs-gnutls.dvi srecode.dvi bovine.dvi \
|
||||
wisent.dvi htmlfontify.dvi
|
||||
INFOSOURCES = info.texi
|
||||
|
||||
# The following rule does not work with all versions of 'make'.
|
||||
.SUFFIXES: .texi .dvi
|
||||
.texi.dvi:
|
||||
texi2dvi $<
|
||||
|
||||
TEXI2DVI = texi2dvi
|
||||
ENVADD = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \
|
||||
"MAKEINFO=$(MAKEINFO) $(MAKEINFO_OPTS)" /C
|
||||
|
||||
|
||||
info: $(INFO_TARGETS)
|
||||
|
||||
dvi: $(DVI_TARGETS)
|
||||
|
||||
# Note that all the Info targets build the Info files
|
||||
# in srcdir. There is no provision for Info files
|
||||
# to exist in the build directory.
|
||||
# In a distribution of Emacs, the Info files should be up to date.
|
||||
|
||||
$(infodir)/dir:
|
||||
$(MULTI_INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS)
|
||||
|
||||
# The following target uses an explicit -o switch to work around
|
||||
# the @setfilename directive in info.texi, which is required for
|
||||
# the Texinfo distribution.
|
||||
# Some Windows ports of makeinfo seem to require -o to come before the
|
||||
# texi filename, contrary to GNU standards.
|
||||
|
||||
$(infodir)/info$(INFO_EXT): $(INFOSOURCES)
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ info.texi
|
||||
|
||||
info.dvi: $(INFOSOURCES)
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/info.texi
|
||||
|
||||
|
||||
$(infodir)/ccmode$(INFO_EXT): cc-mode.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ cc-mode.texi
|
||||
cc-mode.dvi: cc-mode.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/cc-mode.texi
|
||||
|
||||
$(infodir)/ada-mode$(INFO_EXT): ada-mode.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ada-mode.texi
|
||||
ada-mode.dvi: ada-mode.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/ada-mode.texi
|
||||
|
||||
$(infodir)/pcl-cvs$(INFO_EXT): pcl-cvs.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ pcl-cvs.texi
|
||||
pcl-cvs.dvi: pcl-cvs.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/pcl-cvs.texi
|
||||
|
||||
$(infodir)/eshell$(INFO_EXT): eshell.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eshell.texi
|
||||
eshell.dvi: eshell.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/eshell.texi
|
||||
|
||||
$(infodir)/cl$(INFO_EXT): cl.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ cl.texi
|
||||
cl.dvi: cl.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/cl.texi
|
||||
|
||||
$(infodir)/dbus$(INFO_EXT): dbus.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ dbus.texi
|
||||
dbus.dvi: dbus.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/dbus.texi
|
||||
|
||||
$(infodir)/dired-x$(INFO_EXT): dired-x.texi $(emacsdir)/emacsver.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ dired-x.texi
|
||||
dired-x.dvi: dired-x.texi $(emacsdir)/emacsver.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/dired-x.texi
|
||||
|
||||
$(infodir)/ediff$(INFO_EXT): ediff.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ediff.texi
|
||||
ediff.dvi: ediff.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/ediff.texi
|
||||
|
||||
$(infodir)/flymake$(INFO_EXT): flymake.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ flymake.texi
|
||||
flymake.dvi: flymake.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/flymake.texi
|
||||
|
||||
$(infodir)/forms$(INFO_EXT): forms.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ forms.texi
|
||||
forms.dvi: forms.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/forms.texi
|
||||
|
||||
# gnus/message/emacs-mime/sieve/pgg are part of Gnus:
|
||||
$(infodir)/gnus$(INFO_EXT): gnus.texi gnus-overrides.texi message.texi emacs-mime.texi \
|
||||
sieve.texi pgg.texi sasl.texi gnus-news.texi gnus-faq.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ gnus.texi
|
||||
gnus.dvi: gnus.texi gnus-overrides.texi message.texi emacs-mime.texi \
|
||||
sieve.texi pgg.texi sasl.texi gnus-news.texi gnus-faq.texi
|
||||
sed -e "/@iflatex/,/@end iflatex/d" $(srcdir)/gnus.texi > gnustmp.texi
|
||||
$(ENVADD) $(TEXI2DVI) gnustmp.texi
|
||||
cp gnustmp.dvi $*.dvi
|
||||
rm gnustmp.*
|
||||
#
|
||||
$(infodir)/message$(INFO_EXT): message.texi gnus-overrides.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ message.texi
|
||||
message.dvi: message.texi gnus-overrides.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/message.texi
|
||||
#
|
||||
$(infodir)/emacs-mime$(INFO_EXT): emacs-mime.texi gnus-overrides.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ --enable-encoding emacs-mime.texi
|
||||
emacs-mime.dvi: emacs-mime.texi gnus-overrides.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-mime.texi
|
||||
#
|
||||
$(infodir)/sieve$(INFO_EXT): sieve.texi gnus-overrides.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sieve.texi
|
||||
sieve.dvi: sieve.texi gnus-overrides.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/sieve.texi
|
||||
#
|
||||
$(infodir)/pgg$(INFO_EXT): pgg.texi gnus-overrides.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ pgg.texi
|
||||
pgg.dvi: pgg.texi gnus-overrides.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/pgg.texi
|
||||
|
||||
$(infodir)/mh-e$(INFO_EXT): mh-e.texi gpl.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ mh-e.texi
|
||||
mh-e.dvi: mh-e.texi gpl.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/mh-e.texi
|
||||
|
||||
$(infodir)/reftex$(INFO_EXT): reftex.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ reftex.texi
|
||||
reftex.dvi: reftex.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/reftex.texi
|
||||
|
||||
$(infodir)/remember$(INFO_EXT): remember.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ remember.texi
|
||||
remember.dvi: remember.texix
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/remember.texi
|
||||
|
||||
$(infodir)/sasl$(INFO_EXT): sasl.texi gnus-overrides.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sasl.texi
|
||||
sasl.dvi: sasl.texi gnus-overrides.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/sasl.texi
|
||||
|
||||
$(infodir)/sc$(INFO_EXT): sc.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ sc.texi
|
||||
sc.dvi: sc.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/sc.texi
|
||||
|
||||
$(infodir)/vip$(INFO_EXT): vip.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ vip.texi
|
||||
vip.dvi: vip.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/vip.texi
|
||||
|
||||
$(infodir)/viper$(INFO_EXT): viper.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ viper.texi
|
||||
viper.dvi: viper.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/viper.texi
|
||||
|
||||
$(infodir)/widget$(INFO_EXT): widget.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ widget.texi
|
||||
widget.dvi: widget.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi
|
||||
|
||||
$(infodir)/efaq$(INFO_EXT): faq.texi $(emacsdir)/emacsver.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ faq.texi
|
||||
faq.dvi: faq.texi $(emacsdir)/emacsver.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi
|
||||
|
||||
$(infodir)/autotype$(INFO_EXT): autotype.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ autotype.texi
|
||||
autotype.dvi: autotype.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi
|
||||
|
||||
$(infodir)/calc$(INFO_EXT): calc.texi $(emacsdir)/emacsver.texi gpl.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ calc.texi
|
||||
calc.dvi: calc.texi $(emacsdir)/emacsver.texi gpl.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi
|
||||
|
||||
# This is produced with --no-split to avoid making files whose
|
||||
# names clash on DOS 8+3 filesystems
|
||||
$(infodir)/idlwave$(INFO_EXT): idlwave.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ idlwave.texi
|
||||
idlwave.dvi: idlwave.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/idlwave.texi
|
||||
|
||||
$(infodir)/eudc$(INFO_EXT): eudc.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eudc.texi
|
||||
eudc.dvi: eudc.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/eudc.texi
|
||||
|
||||
$(infodir)/ebrowse$(INFO_EXT): ebrowse.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ebrowse.texi
|
||||
ebrowse.dvi: ebrowse.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/ebrowse.texi
|
||||
|
||||
$(infodir)/woman$(INFO_EXT): woman.texi $(emacsdir)/emacsver.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ woman.texi
|
||||
woman.dvi: woman.texi $(emacsdir)/emacsver.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/woman.texi
|
||||
|
||||
$(infodir)/speedbar$(INFO_EXT): speedbar.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ speedbar.texi
|
||||
speedbar.dvi: speedbar.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/speedbar.texi
|
||||
|
||||
$(infodir)/tramp$(INFO_EXT): tramp.texi trampver.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ tramp.texi
|
||||
tramp.dvi: tramp.texi trampver.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/tramp.texi
|
||||
|
||||
$(infodir)/ses$(INFO_EXT): ses.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ses.texi
|
||||
ses.dvi: ses.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/ses.texi
|
||||
|
||||
$(infodir)/smtpmail$(INFO_EXT): smtpmail.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ smtpmail.texi
|
||||
smtpmail.dvi: smtpmail.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/smtpmail.texi
|
||||
|
||||
$(infodir)/org$(INFO_EXT): org.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ org.texi
|
||||
org.dvi: org.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/org.texi
|
||||
|
||||
$(infodir)/url$(INFO_EXT): url.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ url.texi
|
||||
url.dvi: url.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/url.texi
|
||||
|
||||
$(infodir)/newsticker$(INFO_EXT): newsticker.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ newsticker.texi
|
||||
newsticker.dvi: newsticker.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/newsticker.texi
|
||||
|
||||
$(infodir)/nxml-mode$(INFO_EXT): nxml-mode.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ nxml-mode.texi
|
||||
nxml-mod.dvi: nxml-mode.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/nxml-mode.texi
|
||||
|
||||
$(infodir)/rcirc$(INFO_EXT): rcirc.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ rcirc.texi
|
||||
rcirc.dvi: rcirc.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/rcirc.texi
|
||||
|
||||
$(infodir)/erc$(INFO_EXT): erc.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ erc.texi
|
||||
erc.dvi: erc.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/erc.texi
|
||||
|
||||
$(infodir)/ert$(INFO_EXT): ert.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ert.texi
|
||||
ert.dvi: ert.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/ert.texi
|
||||
|
||||
$(infodir)/epa$(INFO_EXT): epa.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ epa.texi
|
||||
epa.dvi: epa.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/epa.texi
|
||||
|
||||
$(infodir)/mairix-el$(INFO_EXT): mairix-el.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ mairix-el.texi
|
||||
mairix-el.dvi: mairix-el.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/mairix-el.texi
|
||||
|
||||
$(infodir)/auth$(INFO_EXT): auth.texi gnus-overrides.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ auth.texi
|
||||
auth.dvi: auth.texi gnus-overrides.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/auth.texi
|
||||
|
||||
$(infodir)/eieio$(INFO_EXT): eieio.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ eieio.texi
|
||||
eieio.dvi: eieio.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/eieio.texi
|
||||
|
||||
$(infodir)/ede$(INFO_EXT): ede.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ede.texi
|
||||
ede.dvi: ede.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/ede.texi
|
||||
|
||||
$(infodir)/semantic$(INFO_EXT): semantic.texi sem-user.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ semantic.texi
|
||||
semantic.dvi: semantic.texi sem-user.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/semantic.texi
|
||||
|
||||
$(infodir)/edt$(INFO_EXT): edt.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ edt.texi
|
||||
edt.dvi: edt.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/edt.texi
|
||||
|
||||
$(infodir)/emacs-gnutls$(INFO_EXT): emacs-gnutls.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ emacs-gnutls.texi
|
||||
emacs-gnutls.dvi: emacs-gnutls.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-gnutls.texi
|
||||
|
||||
$(infodir)/srecode$(INFO_EXT): srecode.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ srecode.texi
|
||||
srecode.dvi: srecode.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/srecode.texi
|
||||
|
||||
$(infodir)/bovine$(INFO_EXT): bovine.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ bovine.texi
|
||||
bovine.dvi: bovine.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/bovine.texi
|
||||
|
||||
$(infodir)/wisent$(INFO_EXT): wisent.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ wisent.texi
|
||||
wisent.dvi: wisent.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/wisent.texi
|
||||
|
||||
$(infodir)/htmlfontify$(INFO_EXT): htmlfontify.texi
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ htmlfontify.texi
|
||||
htmlfontify.dvi: htmlfontify.texi
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/htmlfontify.texi
|
||||
|
||||
|
||||
$(INFO_TARGETS): doclicense.texi
|
||||
$(DVI_TARGETS): doclicense.texi
|
||||
|
||||
mostlyclean:
|
||||
- $(DEL) *.log *.cp *.fn *.ky *.pg *.vr core *.tp *.core gnustmp.*
|
||||
|
||||
clean: mostlyclean
|
||||
- $(DEL) *.dvi
|
||||
- $(DEL) $(infodir)/ccmode* $(infodir)/cl* \
|
||||
$(infodir)/dbus* $(infodir)/dired-x* \
|
||||
$(infodir)/ediff* $(infodir)/forms* \
|
||||
$(infodir)/gnus* $(infodir)/info* \
|
||||
$(infodir)/message* $(infodir)/mh-e* \
|
||||
$(infodir)/reftex* $(infodir)/sc* \
|
||||
$(infodir)/vip* $(infodir)/widget* \
|
||||
$(infodir)/efaq* $(infodir)/ada-mode* \
|
||||
$(infodir)/autotype* $(infodir)/calc* \
|
||||
$(infodir)/idlwave* $(infodir)/eudc* \
|
||||
$(infodir)/ebrowse* $(infodir)/pcl-cvs* \
|
||||
$(infodir)/woman* $(infodir)/eshell* \
|
||||
$(infodir)/speedbar* $(infodir)/tramp* \
|
||||
$(infodir)/ses* $(infodir)/smtpmail* \
|
||||
$(infodir)/url* $(infodir)/org* \
|
||||
$(infodir)/flymake* $(infodir)/newsticker* \
|
||||
$(infodir)/sieve* $(infodir)/pgg* \
|
||||
$(infodir)/erc* $(infodir)/ert* $(infodir)/rcirc* \
|
||||
$(infodir)/remember* $(infodir)/nxml-mode* \
|
||||
$(infodir)/epa* $(infodir)/sasl* \
|
||||
$(infodir)/mairix-el* $(infodir)/auth* \
|
||||
$(infodir)/eieio* $(infodir)/ede* \
|
||||
$(infodir)/semantic* $(infodir)edt* \
|
||||
$(infodir)/emacs-gnutls* $(infodir)/srecode* \
|
||||
$(infodir)/bovine* $(infodir)/wisent* \
|
||||
$(infodir)/htmlfontify*
|
||||
|
||||
distclean: clean
|
||||
- $(DEL) makefile
|
||||
|
||||
maintainer-clean: distclean
|
||||
- $(DEL) *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc
|
||||
# Don't delete these, because they are outside the current directory.
|
||||
# for file in $(INFO_TARGETS); do rm -f $${file}*; done
|
||||
|
||||
|
||||
# Formerly this directory had texindex.c and getopt.c in it
|
||||
# and this makefile built them to make texindex.
|
||||
# That caused trouble because this is run entirely in the source directory.
|
||||
# Since we expect to get texi2dvi from elsewhere,
|
||||
# it is ok to expect texindex from elsewhere also.
|
7
etc/NEWS
7
etc/NEWS
|
@ -1177,6 +1177,13 @@ qualified names by hand.
|
|||
|
||||
* Changes in Emacs 25.1 on Non-Free Operating Systems
|
||||
|
||||
---
|
||||
** MS-Windows specific Emacs build scripts are no longer in the distribution
|
||||
This includes the makefile.w32-in files in various subdirectories, and
|
||||
the support files. The file nt/configure.bat now just tells the user
|
||||
to use the procedure described in nt/INSTALL, by running the Posix
|
||||
`configure' script in the top-level directory.
|
||||
|
||||
---
|
||||
** Building Emacs for MS-Windows requires at least Windows XP
|
||||
or Windows Server 2003. The built binaries still run on all versions
|
||||
|
|
|
@ -1,237 +0,0 @@
|
|||
# -*- Makefile -*- for leim subdirectory in GNU Emacs on the Microsoft Windows API.
|
||||
|
||||
# Copyright (C) 2000-2015 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
# 2006, 2007
|
||||
# National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
# Registration Number H14PRO021
|
||||
|
||||
# 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
srcdir=.
|
||||
|
||||
# Where to install LEIM files.
|
||||
INSTALLDIR=$(INSTALL_DIR)/leim
|
||||
|
||||
# On IBM RS6000, double-dot gets screwed up.
|
||||
dot = .
|
||||
|
||||
# Which Emacs to use to convert TIT files to Emacs Lisp files,
|
||||
# byte-compile Emacs Lisp files, and generate the file leim-list.el.
|
||||
BUILT_EMACS = $(THISDIR)/$(dot)$(dot)/src/$(BLD)/emacs.exe
|
||||
|
||||
buildlisppath=$(CURDIR)/$(dot)$(dot)/lisp
|
||||
|
||||
# How to run Emacs.
|
||||
RUN_EMACS = "$(BUILT_EMACS)" -batch --no-site-file --no-site-lisp
|
||||
|
||||
# Set EMACSLOADPATH correctly (already defined in environment).
|
||||
EMACSLOADPATH=$(buildlisppath)
|
||||
|
||||
# Subdirectories to be made if $(srcdir) is different from the current
|
||||
# directory.
|
||||
SUBDIRS=quail
|
||||
|
||||
# Files generated from TIT dictionaries for Chinese GB character set.
|
||||
TIT_GB=\
|
||||
quail/CCDOSPY.elc \
|
||||
quail/Punct.elc \
|
||||
quail/QJ.elc \
|
||||
quail/SW.elc \
|
||||
quail/TONEPY.elc
|
||||
|
||||
# Files generated from TIT dictionaries for Chinese BIG5 character set.
|
||||
TIT_BIG5=\
|
||||
quail/4Corner.elc \
|
||||
quail/ARRAY30.elc \
|
||||
quail/ECDICT.elc \
|
||||
quail/ETZY.elc \
|
||||
quail/Punct-b5.elc \
|
||||
quail/PY-b5.elc \
|
||||
quail/QJ-b5.elc \
|
||||
quail/ZOZY.elc
|
||||
|
||||
CHINESE_TIT=$(TIT_GB) $(TIT_BIG5)
|
||||
|
||||
NON_TIT_GB=$(srcdir)/quail/py-punct.elc
|
||||
|
||||
NON_TIT_BIG5=$(srcdir)/quail/pypunct-b5.elc
|
||||
|
||||
CHINESE_NON_TIT=$(NON_TIT_GB) $(NON_TIT_BIG5)
|
||||
|
||||
CHINESE_GB=$(TIT_GB) $(NON_TIT_GB)
|
||||
|
||||
CHINESE_BIG5=$(TIT_BIG5) $(NON_TIT_BIG5)
|
||||
|
||||
JAPANESE=$(srcdir)/quail/japanese.elc $(srcdir)/ja-dic/ja-dic.elc
|
||||
|
||||
KOREAN= $(srcdir)/quail/hangul.elc \
|
||||
$(srcdir)/quail/hanja.elc \
|
||||
$(srcdir)/quail/hanja3.elc \
|
||||
$(srcdir)/quail/hanja-jis.elc \
|
||||
$(srcdir)/quail/symbol-ksc.elc
|
||||
|
||||
THAI=$(srcdir)/quail/thai.elc
|
||||
|
||||
VIETNAMESE=$(srcdir)/quail/viqr.elc $(srcdir)/quail/vntelex.elc
|
||||
|
||||
LAO=$(srcdir)/quail/lao.elc $(srcdir)/quail/lrt.elc
|
||||
|
||||
INDIAN=$(srcdir)/quail/indian.elc
|
||||
|
||||
TIBETAN=$(srcdir)/quail/tibetan.elc
|
||||
|
||||
LATIN= $(srcdir)/quail/latin-pre.elc \
|
||||
$(srcdir)/quail/latin-post.elc \
|
||||
$(srcdir)/quail/latin-alt.elc \
|
||||
$(srcdir)/quail/latin-ltx.elc \
|
||||
$(srcdir)/quail/welsh.elc
|
||||
|
||||
UNICODE=$(srcdir)/quail/sgml-input.elc \
|
||||
$(srcdir)/quail/rfc1345.elc \
|
||||
$(srcdir)/quail/uni-input.elc
|
||||
|
||||
SLAVIC= \
|
||||
$(srcdir)/quail/czech.elc \
|
||||
$(srcdir)/quail/croatian.elc \
|
||||
$(srcdir)/quail/slovak.elc
|
||||
|
||||
GREEK=$(srcdir)/quail/greek.elc
|
||||
|
||||
RUSSIAN=$(srcdir)/quail/cyrillic.elc $(srcdir)/quail/cyril-jis.elc
|
||||
|
||||
MISC= \
|
||||
$(srcdir)/quail/arabic.elc \
|
||||
$(srcdir)/quail/ethiopic.elc \
|
||||
$(srcdir)/quail/ipa.elc \
|
||||
$(srcdir)/quail/ipa-praat.elc \
|
||||
$(srcdir)/quail/hebrew.elc \
|
||||
$(srcdir)/quail/georgian.elc \
|
||||
$(srcdir)/quail/persian.elc \
|
||||
$(srcdir)/quail/sisheng.elc
|
||||
|
||||
MISC_DIC=\
|
||||
quail/tsang-b5.elc \
|
||||
quail/quick-b5.elc \
|
||||
quail/tsang-cns.elc \
|
||||
quail/quick-cns.elc \
|
||||
quail/PY.elc \
|
||||
quail/ZIRANMA.elc \
|
||||
quail/CTLau.elc \
|
||||
quail/CTLau-b5.elc
|
||||
|
||||
CHINESE=$(CHINESE_GB) $(CHINESE_BIG5)
|
||||
EASTASIA=$(CHINESE) $(JAPANESE) $(KOREAN)
|
||||
ASIA=$(EASTASIA) $(THAI) $(VIETNAMESE) $(LAO) $(INDIAN) $(TIBETAN)
|
||||
EUROPEAN=$(LATIN) $(SLAVIC) $(GREEK) $(RUSSIAN)
|
||||
WORLD=$(ASIA) $(EUROPEAN) $(MISC) $(MISC_DIC) $(UNICODE)
|
||||
|
||||
TIT=$(CHINESE_TIT)
|
||||
NON_TIT=$(CHINESE_NON_TIT) $(JAPANESE) $(KOREAN) $(EUROPEAN) $(MISC)
|
||||
|
||||
.SUFFIXES: .elc .el
|
||||
|
||||
.el.elc:
|
||||
$(RUN_EMACS) -f batch-byte-compile $<
|
||||
|
||||
all: $(BUILT_EMACS) $(SUBDIRS) $(WORLD) leim-list.el
|
||||
|
||||
# To ensure that we can run Emacs. This target is ignored (never
|
||||
# being hit) if a user changes default value of EMACS.
|
||||
$(dot)$(dot)/src/emacs:
|
||||
cd ../src; $(MAKE) $(MFLAGS) emacs
|
||||
|
||||
$(SUBDIRS):
|
||||
mkdir "$@"
|
||||
echo stamp>stamp-subdir
|
||||
|
||||
# The rules which generate $(TIT) and ${MISC_DIC) files create them all
|
||||
# in one go. So we need to prevent parallel execution for that target,
|
||||
# otherwise Emacs complains about files being locked. .NOTPARALLEL is
|
||||
# for GNU Make, .NO_PARALLEL is for other Make's.
|
||||
.NOTPARALLEL: $(TIT) $(MISC_DIC)
|
||||
|
||||
.NO_PARALLEL: $(TIT) $(MISC_DIC)
|
||||
|
||||
# Rule to generate quail/*.el from CXTERM-DIC/*.tit.
|
||||
#
|
||||
# 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.
|
||||
$(TIT):
|
||||
$(RUN_EMACS) -l \
|
||||
$(ARGQUOTE)$(buildlisppath)/international/titdic-cnv$(ARGQUOTE) \
|
||||
--eval $(ARGQUOTE)(batch-titdic-convert t)$(ARGQUOTE) \
|
||||
-dir quail $(srcdir)/CXTERM-DIC
|
||||
$(RUN_EMACS) -l \
|
||||
$(ARGQUOTE)$(buildlisppath)/international/quail$(ARGQUOTE) \
|
||||
-f batch-byte-compile $(TIT:.elc=.el)
|
||||
|
||||
# Rule to generate quail/*.el from MISC_DIC/*.tit.
|
||||
$(MISC_DIC):
|
||||
$(RUN_EMACS) -l \
|
||||
$(ARGQUOTE)$(buildlisppath)/international/titdic-cnv$(ARGQUOTE) \
|
||||
-f batch-miscdic-convert -dir quail $(srcdir)/MISC-DIC
|
||||
$(RUN_EMACS) -l \
|
||||
$(ARGQUOTE)$(buildlisppath)/international/quail$(ARGQUOTE) \
|
||||
-f batch-byte-compile $(MISC_DIC:.elc=.el)
|
||||
|
||||
# Rule to generate ja-dic/ja-dic.el from SKK-DIC/SKK-JISYO.L.
|
||||
$(srcdir)/ja-dic/ja-dic.el: $(srcdir)/SKK-DIC/SKK-JISYO.L
|
||||
- mkdir ja-dic
|
||||
$(RUN_EMACS) -l \
|
||||
$(ARGQUOTE)$(buildlisppath)/international/ja-dic-cnv$(ARGQUOTE) \
|
||||
-f batch-skkdic-convert -dir ja-dic $(srcdir)/SKK-DIC/SKK-JISYO.L
|
||||
|
||||
#
|
||||
# WARNING: Do NOT split the parts inside $(ARGQUOTE)s into multiple lines as
|
||||
# this can break with GNU Make 3.81 and later if sh.exe is used.
|
||||
leim-list.el: $(SUBDIRS) $(WORLD) $(srcdir)/leim-ext.el
|
||||
- $(DEL) leim-list.el
|
||||
$(RUN_EMACS) -l \
|
||||
$(ARGQUOTE)$(buildlisppath)/international/quail$(ARGQUOTE) \
|
||||
--eval $(ARGQUOTE)(update-leim-list-file $(DQUOTE).$(DQUOTE))$(ARGQUOTE)
|
||||
$(RUN_EMACS) --eval $(ARGQUOTE)(w32-append-code-lines $(DQUOTE)$@$(DQUOTE) $(DQUOTE)$(srcdir)/leim-ext.el$(DQUOTE))$(ARGQUOTE)
|
||||
|
||||
install: all
|
||||
- mkdir "$(INSTALLDIR)"
|
||||
- $(DEL) $(DIRNAME)_same-dir.tst
|
||||
- $(DEL) $(INSTALL_DIR)/$(DIRNAME)_same-dir.tst
|
||||
echo SameDirTest > $(INSTALL_DIR)/$(DIRNAME)_same-dir.tst
|
||||
$(IFNOTSAMEDIR) $(CP) leim-list.el $(INSTALLDIR) $(ENDIF)
|
||||
$(IFNOTSAMEDIR) $(CP_DIR) quail $(INSTALLDIR) $(ENDIF)
|
||||
$(IFNOTSAMEDIR) $(CP_DIR) ja-dic $(INSTALLDIR) $(ENDIF)
|
||||
- $(DEL) $(INSTALL_DIR)/$(DIRNAME)_same-dir.tst
|
||||
|
||||
clean mostlyclean:
|
||||
- $(FOREACH) $(TIT) $(FORDO) $(DEL) $(FORVAR) $(ENDFOR)
|
||||
- $(FOREACH) $(MISC_DIC) $(FORDO) $(DEL) $(FORVAR) $(ENDFOR)
|
||||
- $(FOREACH) $(TIT:.elc=.el) $(FORDO) $(DEL) $(FORVAR) $(ENDFOR)
|
||||
- $(FOREACH) $(MISC_DIC:.elc=.el) $(FORDO) $(DEL) $(FORVAR) $(ENDFOR)
|
||||
- $(DEL) leim-list.el
|
||||
- $(DEL) leim-list.el~
|
||||
|
||||
distclean: clean
|
||||
- $(DEL) stamp-subdir
|
||||
- $(DEL) makefile
|
||||
|
||||
maintainer-clean: distclean
|
||||
- $(FOREACH) $(WORLD) $(FORDO) $(DEL) $(FORVAR) $(ENDFOR)
|
||||
|
||||
# We used to delete *~ here, but that might inadvertently remove
|
||||
# precious files if it happens to match their short 8+3 aliases.
|
||||
extraclean: maintainer-clean
|
||||
- $(FOREACH) *.el~ "#*" $(FORDO) $(DEL) $(FORVAR) $(ENDFOR)
|
|
@ -1,482 +0,0 @@
|
|||
# -*- Makefile -*- for GNU Emacs on the Microsoft Windows API.
|
||||
# Copyright (C) 2000-2015 Free Software Foundation, Inc.
|
||||
|
||||
# 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
ALL = $(BLD)/test-distrib.exe $(BLD)/make-docfile.exe $(BLD)/hexl.exe\
|
||||
$(BLD)/ctags.exe $(BLD)/etags.exe $(BLD)/movemail.exe $(BLD)/ebrowse.exe\
|
||||
$(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe $(BLD)/profile.exe
|
||||
|
||||
.PHONY: make-docfile
|
||||
|
||||
LOCAL_FLAGS = -DNO_LDAV=1 -DNO_ARCHIVES=1 -I../lib \
|
||||
-I../nt/inc -I../src $(EMACS_EXTRA_C_FLAGS)
|
||||
|
||||
LIBS = $(BASE_LIBS) $(ADVAPI32)
|
||||
LIB_SRC = .
|
||||
|
||||
# The following target is used by makefile.w32-in files in other directories.
|
||||
make-docfile: $(BLD)/make-docfile.exe
|
||||
|
||||
$(BLD)/make-docfile.exe: $(BLD)/make-docfile.$(O) $(BLD)/ntlib.$(O)
|
||||
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/make-docfile.$(O) $(BLD)/ntlib.$(O) $(LIBS)
|
||||
$(BLD)/hexl.exe: $(BLD)/hexl.$(O)
|
||||
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/hexl.$(O) $(LIBS)
|
||||
$(BLD)/test-distrib.exe: $(BLD)/test-distrib.$(O)
|
||||
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/test-distrib.$(O) $(LIBS)
|
||||
"$(BLD)/test-distrib.exe" "$(LIB_SRC)/testfile"
|
||||
|
||||
MOVEMAILOBJS = $(BLD)/movemail.$(O) \
|
||||
$(BLD)/pop.$(O) \
|
||||
../lib/$(BLD)/libgnu.$(A) \
|
||||
$(BLD)/ntlib.$(O)
|
||||
|
||||
$(BLD)/movemail.exe: $(MOVEMAILOBJS) ../lib/getopt.h
|
||||
# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
|
||||
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(MOVEMAILOBJS) $(WSOCK32) $(LIBS)
|
||||
|
||||
ECLIENT_CFLAGS = -DHAVE_GETCWD -DHAVE_STRERROR
|
||||
ECLIENTOBJS = $(BLD)/emacsclient.$(O) \
|
||||
$(BLD)/ntlib.$(O) \
|
||||
../lib/$(BLD)/libgnu.$(A)
|
||||
CLIENTRES = ../nt/$(BLD)/emacsclient.res
|
||||
|
||||
$(CLIENTRES): ../nt/emacsclient.rc
|
||||
@echo Emacsclient resource file must be built from nt directory
|
||||
@exit -1
|
||||
|
||||
$(BLD)/emacsclient.exe: $(ECLIENTOBJS)
|
||||
# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
|
||||
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(USER32) $(COMCTL32) $(LIBS)
|
||||
|
||||
$(BLD)/emacsclientw.exe: $(ECLIENTOBJS) $(CLIENTRES)
|
||||
# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
|
||||
$(LINK) $(LINK_OUT)$@ $(CLIENTRES) $(MWINDOWS) $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(USER32) $(COMCTL32) $(LIBS)
|
||||
|
||||
$(BLD)/emacsclient.$(O): emacsclient.c
|
||||
$(CC) $(CFLAGS) $(ECLIENT_CFLAGS) $(CC_OUT)$@ emacsclient.c
|
||||
|
||||
ETAGSOBJ = $(BLD)/etags.$(O) \
|
||||
../lib/$(BLD)/libgnu.$(A) \
|
||||
$(BLD)/ntlib.$(O) \
|
||||
$(BLD)/regex.$(O)
|
||||
|
||||
$(BLD)/etags.exe: $(ETAGSOBJ)
|
||||
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(ETAGSOBJ) $(LIBS)
|
||||
|
||||
|
||||
EBROWSEOBJ = $(BLD)/ebrowse.$(O) \
|
||||
../lib/$(BLD)/libgnu.$(A) \
|
||||
$(BLD)/ntlib.$(O)
|
||||
|
||||
$(BLD)/ebrowse.exe: $(EBROWSEOBJ)
|
||||
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(EBROWSEOBJ) $(LIBS)
|
||||
|
||||
$(BLD)/regex.$(O): ../src/regex.c ../src/regex.h ../src/config.h
|
||||
$(CC) $(CFLAGS) -DCONFIG_BROKETS -DINHIBIT_STRING_HEADER \
|
||||
../src/regex.c $(CC_OUT)$@
|
||||
|
||||
ETAGS_CFLAGS = -DHAVE_GETCWD -DEMACS_NAME="\"GNU Emacs\""
|
||||
$(BLD)/etags.$(O): etags.c
|
||||
$(CC) $(CFLAGS) $(ETAGS_CFLAGS) $(CC_OUT)$@ etags.c
|
||||
|
||||
CTAGSOBJ = $(BLD)/ctags.$(O) \
|
||||
../lib/$(BLD)/libgnu.$(A) \
|
||||
$(BLD)/ntlib.$(O) \
|
||||
$(BLD)/regex.$(O)
|
||||
|
||||
$(BLD)/ctags.exe: $(CTAGSOBJ)
|
||||
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(CTAGSOBJ) $(LIBS)
|
||||
|
||||
ctags.c: etags.c
|
||||
- $(DEL) ctags.c
|
||||
$(CP) etags.c ctags.c
|
||||
|
||||
CTAGS_CFLAGS = -DCTAGS $(ETAGS_CFLAGS)
|
||||
$(BLD)/ctags.$(O): ctags.c
|
||||
$(CC) $(CFLAGS) $(CTAGS_CFLAGS) $(CC_OUT)$@ ctags.c
|
||||
|
||||
PROFILEOBJS = $(BLD)/profile.$(O) \
|
||||
../lib/$(BLD)/libgnu.$(A) \
|
||||
$(BLD)/ntlib.$(O)
|
||||
$(BLD)/profile.exe: $(PROFILEOBJS)
|
||||
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(PROFILEOBJS) $(LIBS)
|
||||
|
||||
#
|
||||
# From ..\src\Makefile.in
|
||||
# It doesn't matter if the real name is *.obj for the files in this list,
|
||||
# make-docfile blindly replaces .o with .c anyway. Keep .o in this list
|
||||
# as it is required by code in doc.c.
|
||||
#
|
||||
obj = dosfns.o msdos.o \
|
||||
xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
|
||||
fontset.o menu.o dbusbind.o cygw32.o \
|
||||
nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
|
||||
w32.o w32console.o w32fns.o w32heap.o w32inevt.o w32notify.o \
|
||||
w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \
|
||||
w16select.o widget.o xfont.o ftfont.o xftfont.o ftxfont.o gtkutil.o \
|
||||
xsettings.o xgselect.o termcap.o \
|
||||
font.o w32font.o w32uniscribe.o w32notify.o \
|
||||
dispnew.o frame.o scroll.o xdisp.o window.o bidi.o \
|
||||
charset.o coding.o category.o ccl.o character.o chartab.o \
|
||||
cm.o term.o terminal.o xfaces.o \
|
||||
emacs.o keyboard.o macros.o keymap.o sysdep.o \
|
||||
buffer.o filelock.o insdel.o marker.o \
|
||||
minibuf.o fileio.o dired.o \
|
||||
cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
|
||||
alloc.o data.o doc.o editfns.o callint.o \
|
||||
eval.o floatfns.o fns.o print.o lread.o \
|
||||
syntax.o bytecode.o \
|
||||
process.o callproc.o unexw32.o \
|
||||
region-cache.o sound.o atimer.o \
|
||||
doprnt.o intervals.o textprop.o composite.o \
|
||||
gnutls.o xml.o profiler.o
|
||||
|
||||
#
|
||||
# These are the lisp files that are loaded up in loadup.el
|
||||
#
|
||||
lispsource = ../lisp/
|
||||
|
||||
MOUSE_SUPPORT = \
|
||||
$(lispsource)select.elc \
|
||||
$(lispsource)scroll-bar.elc \
|
||||
$(lispsource)mouse.elc
|
||||
WINNT_SUPPORT = \
|
||||
$(lispsource)ls-lisp.elc \
|
||||
$(lispsource)disp-table.elc \
|
||||
$(lispsource)w32-fns.elc \
|
||||
$(lispsource)dos-w32.elc \
|
||||
$(lispsource)w32-vars.elc \
|
||||
$(lispsource)term/common-win.elc \
|
||||
$(lispsource)term/w32-win.elc
|
||||
TOOLTIP_SUPPORT = $(lispsource)tooltip.elc
|
||||
WINDOW_SUPPORT = \
|
||||
$(lispsource)fringe.elc \
|
||||
$(lispsource)image.elc \
|
||||
$(lispsource)international/fontset.elc \
|
||||
$(lispsource)dnd.elc \
|
||||
$(lispsource)tool-bar.elc \
|
||||
$(lispsource)mwheel.elc
|
||||
|
||||
# lisp files that are loaded up on other platforms
|
||||
OTHER_PLATFORM_SUPPORT = \
|
||||
$(lispsource)dos-fns.elc \
|
||||
$(lispsource)dos-vars.elc \
|
||||
$(lispsource)term/internal.elc \
|
||||
$(lispsource)term/pc-win.elc \
|
||||
$(lispsource)x-dnd.elc \
|
||||
$(lispsource)term/x-win.elc \
|
||||
$(lispsource)term/ns-win.elc
|
||||
|
||||
|
||||
lisp1= \
|
||||
$(lispsource)abbrev.elc \
|
||||
$(lispsource)buff-menu.elc \
|
||||
$(lispsource)button.elc \
|
||||
$(lispsource)emacs-lisp/byte-run.elc \
|
||||
$(lispsource)composite.elc \
|
||||
$(lispsource)cus-face.elc \
|
||||
$(lispsource)cus-start.elc \
|
||||
$(lispsource)custom.elc \
|
||||
$(lispsource)emacs-lisp/backquote.elc \
|
||||
$(lispsource)emacs-lisp/lisp-mode.elc \
|
||||
$(lispsource)emacs-lisp/lisp.elc \
|
||||
$(lispsource)env.elc \
|
||||
$(lispsource)faces.elc \
|
||||
$(lispsource)files.elc \
|
||||
$(lispsource)format.elc \
|
||||
$(lispsource)facemenu.elc \
|
||||
$(MOUSE_SUPPORT) \
|
||||
$(lispsource)emacs-lisp/float-sup.elc \
|
||||
$(lispsource)frame.elc \
|
||||
$(lispsource)help.elc \
|
||||
$(lispsource)indent.elc \
|
||||
$(lispsource)isearch.elc \
|
||||
$(lispsource)rfn-eshadow.elc \
|
||||
$(lispsource)loadup.el \
|
||||
$(lispsource)loaddefs.el \
|
||||
$(lispsource)bindings.elc \
|
||||
$(lispsource)emacs-lisp/map-ynp.elc \
|
||||
$(lispsource)menu-bar.elc \
|
||||
$(lispsource)international/mule.elc \
|
||||
$(lispsource)international/mule-conf.elc \
|
||||
$(lispsource)international/mule-cmds.elc \
|
||||
$(lispsource)international/characters.elc \
|
||||
$(lispsource)international/charprop.el \
|
||||
$(lispsource)case-table.elc \
|
||||
$(lispsource)emacs-lisp/macroexp.elc
|
||||
|
||||
lisp2 = \
|
||||
$(lispsource)language/chinese.elc \
|
||||
$(lispsource)language/cyrillic.elc \
|
||||
$(lispsource)language/indian.elc \
|
||||
$(lispsource)language/sinhala.elc \
|
||||
$(lispsource)language/english.elc \
|
||||
$(lispsource)language/ethiopic.elc \
|
||||
$(lispsource)language/european.elc \
|
||||
$(lispsource)language/czech.elc \
|
||||
$(lispsource)language/slovak.elc \
|
||||
$(lispsource)language/romanian.elc \
|
||||
$(lispsource)language/greek.elc \
|
||||
$(lispsource)language/hebrew.elc \
|
||||
$(lispsource)language/japanese.elc \
|
||||
$(lispsource)international/cp51932.el \
|
||||
$(lispsource)international/eucjp-ms.el \
|
||||
$(lispsource)language/korean.elc \
|
||||
$(lispsource)language/lao.elc \
|
||||
$(lispsource)language/cham.elc \
|
||||
$(lispsource)language/tai-viet.elc \
|
||||
$(lispsource)language/thai.elc \
|
||||
$(lispsource)language/tibetan.elc \
|
||||
$(lispsource)language/vietnamese.elc \
|
||||
$(lispsource)language/misc-lang.elc \
|
||||
$(lispsource)language/utf-8-lang.elc \
|
||||
$(lispsource)language/georgian.elc \
|
||||
$(lispsource)language/khmer.elc \
|
||||
$(lispsource)language/burmese.elc \
|
||||
$(lispsource)register.elc \
|
||||
$(lispsource)replace.elc \
|
||||
$(lispsource)simple.elc \
|
||||
$(lispsource)emacs-lisp/nadvice.elc \
|
||||
$(lispsource)minibuffer.elc \
|
||||
$(lispsource)startup.elc \
|
||||
$(lispsource)subr.elc \
|
||||
$(lispsource)term/tty-colors.elc \
|
||||
$(lispsource)font-core.elc \
|
||||
$(lispsource)emacs-lisp/syntax.elc \
|
||||
$(lispsource)font-lock.elc \
|
||||
$(lispsource)jit-lock.elc \
|
||||
$(lispsource)textmodes/fill.elc \
|
||||
$(lispsource)textmodes/page.elc \
|
||||
$(lispsource)textmodes/paragraphs.elc \
|
||||
$(lispsource)textmodes/text-mode.elc \
|
||||
$(lispsource)emacs-lisp/timer.elc \
|
||||
$(lispsource)jka-cmpr-hook.elc \
|
||||
$(lispsource)vc/vc-hooks.elc \
|
||||
$(lispsource)vc/ediff-hook.elc \
|
||||
$(lispsource)epa-hook.elc \
|
||||
$(TOOLTIP_SUPPORT) \
|
||||
$(WINNT_SUPPORT) \
|
||||
$(WINDOW_SUPPORT) \
|
||||
$(lispsource)widget.elc \
|
||||
$(lispsource)window.elc \
|
||||
$(lispsource)version.elc
|
||||
|
||||
# This is needed the first time we build the tree, since temacs.exe
|
||||
# does not exist yet, and the DOC rule needs it to rebuild DOC whenever
|
||||
# Emacs is rebuilt.
|
||||
../src/$(BLD)/temacs.exe:
|
||||
- mkdir "../src/$(OBJDIR)"
|
||||
- mkdir "../src/$(BLD)"
|
||||
@echo temacs > temacs.exe
|
||||
$(CP) temacs.exe ../src/$(BLD)
|
||||
- $(DEL) temacs.exe
|
||||
|
||||
DOC = DOC
|
||||
$(DOC): stamp_BLD $(BLD)/make-docfile.exe ../src/$(BLD)/temacs.exe $(lisp1) $(lisp2) $(OTHER_PLATFORM_SUPPORT)
|
||||
- $(DEL) $(DOC)
|
||||
"$(THISDIR)/$(BLD)/make-docfile" -o $(DOC) -d ../src $(obj)
|
||||
"$(THISDIR)/$(BLD)/make-docfile" -a $(DOC) -d ../src $(lisp1)
|
||||
"$(THISDIR)/$(BLD)/make-docfile" -a $(DOC) -d ../src $(lisp2)
|
||||
"$(THISDIR)/$(BLD)/make-docfile" -a $(DOC) -d ../src $(OTHER_PLATFORM_SUPPORT)
|
||||
$(CP) $(DOC) ../etc/DOC
|
||||
- mkdir "../src/$(OBJDIR)"
|
||||
- mkdir "../src/$(OBJDIR)/etc"
|
||||
$(CP) $(DOC) ../src/$(OBJDIR)/etc/DOC
|
||||
|
||||
{$(BLD)}.$(O){$(BLD)}.exe:
|
||||
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $*.$(O) $(LIBS)
|
||||
|
||||
#
|
||||
# Build the executables
|
||||
#
|
||||
all: $(ALL) $(DOC)
|
||||
|
||||
#
|
||||
# Assuming INSTALL_DIR is defined, build and install emacs in it.
|
||||
#
|
||||
INSTALL_FILES = $(ALL)
|
||||
install: $(INSTALL_FILES)
|
||||
- mkdir "$(INSTALL_DIR)/bin"
|
||||
$(CP) $(BLD)/etags.exe $(INSTALL_DIR)/bin
|
||||
$(CP) $(BLD)/ebrowse.exe $(INSTALL_DIR)/bin
|
||||
$(CP) $(BLD)/ctags.exe $(INSTALL_DIR)/bin
|
||||
$(CP) $(BLD)/hexl.exe $(INSTALL_DIR)/bin
|
||||
$(CP) $(BLD)/movemail.exe $(INSTALL_DIR)/bin
|
||||
$(CP) $(BLD)/emacsclient.exe $(INSTALL_DIR)/bin
|
||||
$(CP) $(BLD)/emacsclientw.exe $(INSTALL_DIR)/bin
|
||||
$(CP) $(BLD)/profile.exe $(INSTALL_DIR)/bin
|
||||
- mkdir "$(INSTALL_DIR)/etc"
|
||||
$(CP) $(DOC) $(INSTALL_DIR)/etc
|
||||
|
||||
#
|
||||
# Maintenance
|
||||
#
|
||||
# We used to delete *~ here, but that might inadvertently remove
|
||||
# precious files if it happens to match their short 8+3 aliases.
|
||||
clean:
|
||||
- $(DEL) DOC* $(COMPILER_TEMP_FILES)
|
||||
- $(DEL) ctags.c
|
||||
- $(DEL_TREE) $(OBJDIR)
|
||||
- $(DEL) stamp_BLD
|
||||
|
||||
distclean: cleanall
|
||||
- $(DEL) TAGS
|
||||
- $(DEL) Makefile
|
||||
|
||||
maintainer-clean: distclean
|
||||
|
||||
cleanall: clean
|
||||
- $(DEL_TREE) obj
|
||||
- $(DEL_TREE) obj-spd
|
||||
- $(DEL_TREE) oo
|
||||
- $(DEL_TREE) oo-spd
|
||||
|
||||
#
|
||||
# Headers we would preprocess if we could.
|
||||
#
|
||||
../src/config.h: ../nt/$(CONFIG_H)
|
||||
$(DEL) $@
|
||||
echo $(CONFIG_H) has changed. Re-run configure.bat.
|
||||
exit -1
|
||||
|
||||
### TAGS ###
|
||||
|
||||
TAGS: $(BLD)/etags.exe *.c *.h
|
||||
$(BLD)/etags.exe *.c *.h
|
||||
|
||||
### DEPENDENCIES ###
|
||||
|
||||
EMACS_ROOT = ..
|
||||
SRC = $(EMACS_ROOT)/src
|
||||
NT_INC = $(EMACS_ROOT)/nt/inc
|
||||
GNU_LIB = $(EMACS_ROOT)/lib
|
||||
|
||||
MS_W32_H = $(NT_INC)/ms-w32.h \
|
||||
$(NT_INC)/sys/stat.h
|
||||
CONF_POST_H = $(SRC)/conf_post.h \
|
||||
$(MS_W32_H)
|
||||
CONFIG_H = $(SRC)/config.h \
|
||||
$(CONF_POST_H)
|
||||
INTTYPES_H = $(NT_INC)/inttypes.h \
|
||||
$(NT_INC)/stdint.h
|
||||
NTLIB_H = $(LIB_SRC)/ntlib.h \
|
||||
$(NT_INC)/pwd.h
|
||||
SYSTIME_H = $(SRC)/systime.h \
|
||||
$(NT_INC)/sys/time.h \
|
||||
$(GNU_LIB)/timespec.h
|
||||
SYSWAIT_H = $(SRC)/syswait.h \
|
||||
$(NT_INC)/stdbool.h \
|
||||
$(NT_INC)/sys/wait.h
|
||||
|
||||
$(BLD)/ctags.$(O) : \
|
||||
$(LIB_SRC)/ctags.c \
|
||||
$(SRC)/regex.h \
|
||||
$(NT_INC)/sys/stat.h \
|
||||
$(NT_INC)/unistd.h \
|
||||
$(GNU_LIB)/c-strcase.h \
|
||||
$(GNU_LIB)/getopt.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/ebrowse.$(O) : \
|
||||
$(LIB_SRC)/ebrowse.c \
|
||||
$(GNU_LIB)/getopt.h \
|
||||
$(GNU_LIB)/min-max.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/emacsclient.$(O) : \
|
||||
$(LIB_SRC)/emacsclient.c \
|
||||
$(NT_INC)/pwd.h \
|
||||
$(NT_INC)/sys/stat.h \
|
||||
$(NT_INC)/unistd.h \
|
||||
$(GNU_LIB)/getopt.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/etags.$(O) : \
|
||||
$(LIB_SRC)/etags.c \
|
||||
$(SRC)/regex.h \
|
||||
$(NT_INC)/sys/stat.h \
|
||||
$(NT_INC)/unistd.h \
|
||||
$(GNU_LIB)/c-strcase.h \
|
||||
$(GNU_LIB)/getopt.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/hexl.$(O) : \
|
||||
$(LIB_SRC)/hexl.c \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/make-docfile.$(O) : \
|
||||
$(LIB_SRC)/make-docfile.c \
|
||||
$(NT_INC)/unistd.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/movemail.$(O) : \
|
||||
$(LIB_SRC)/movemail.c \
|
||||
$(LIB_SRC)/pop.h \
|
||||
$(NT_INC)/pwd.h \
|
||||
$(NT_INC)/sys/file.h \
|
||||
$(NT_INC)/sys/stat.h \
|
||||
$(NT_INC)/unistd.h \
|
||||
$(GNU_LIB)/getopt.h \
|
||||
$(CONFIG_H) \
|
||||
$(NTLIB_H) \
|
||||
$(SYSWAIT_H)
|
||||
|
||||
$(BLD)/ntlib.$(O) : \
|
||||
$(LIB_SRC)/ntlib.c \
|
||||
$(NT_INC)/sys/stat.h \
|
||||
$(NTLIB_H)
|
||||
|
||||
$(BLD)/pop.$(O) : \
|
||||
$(LIB_SRC)/pop.c \
|
||||
$(LIB_SRC)/pop.h \
|
||||
$(NT_INC)/netdb.h \
|
||||
$(NT_INC)/pwd.h \
|
||||
$(NT_INC)/unistd.h \
|
||||
$(GNU_LIB)/min-max.h \
|
||||
$(CONFIG_H) \
|
||||
$(NTLIB_H)
|
||||
|
||||
$(BLD)/profile.$(O) : \
|
||||
$(LIB_SRC)/profile.c \
|
||||
$(GNU_LIB)/intprops.h \
|
||||
$(CONFIG_H) \
|
||||
$(INTTYPES_H) \
|
||||
$(SYSTIME_H)
|
||||
|
||||
$(BLD)/regex.$(O) : \
|
||||
$(SRC)/regex.c \
|
||||
$(SRC)/regex.h \
|
||||
$(NT_INC)/stdbool.h \
|
||||
$(NT_INC)/unistd.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/test-distrib.$(O) : \
|
||||
$(LIB_SRC)/test-distrib.c \
|
||||
$(NT_INC)/unistd.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
# The following dependencies are for supporting parallel builds, where
|
||||
# we must make sure $(BLD) exists before any compilation starts.
|
||||
#
|
||||
$(BLD)/make-docfile.$(O) $(BLD)/hexl.$(O): stamp_BLD
|
||||
|
||||
$(BLD)/test-distrib.$(O) $(MOVEMAILOBJS): stamp_BLD
|
||||
|
||||
$(BLD)/emacsclient.$(O) $(BLD)/etags.$(O) $(BLD)/regex.$(O): stamp_BLD
|
||||
|
||||
$(BLD)/ebrowse.$(O) $(BLD)/ctags.$(O) $(BLD)/profile.$(O): stamp_BLD
|
|
@ -1,347 +0,0 @@
|
|||
# -*- Makefile -*- for GNU Emacs on the Microsoft Windows API.
|
||||
# Copyright (C) 2011-2015 Free Software Foundation, Inc.
|
||||
|
||||
# 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
ALL = gnulib
|
||||
|
||||
.PHONY: $(ALL)
|
||||
|
||||
LOCAL_FLAGS = -I. -I../nt/inc -I../src
|
||||
LIBS =
|
||||
|
||||
GNULIBOBJS = $(BLD)/acl-errno-valid.$(O) \
|
||||
$(BLD)/c-ctype.$(O) \
|
||||
$(BLD)/c-strcasecmp.$(O) \
|
||||
$(BLD)/c-strncasecmp.$(O) \
|
||||
$(BLD)/close-stream.$(O) \
|
||||
$(BLD)/dtoastr.$(O) \
|
||||
$(BLD)/dtotimespec.$(O) \
|
||||
$(BLD)/execinfo.$(O) \
|
||||
$(BLD)/fpending.$(O) \
|
||||
$(BLD)/getopt.$(O) \
|
||||
$(BLD)/getopt1.$(O) \
|
||||
$(BLD)/gettime.$(O) \
|
||||
$(BLD)/memrchr.$(O) \
|
||||
$(BLD)/strftime.$(O) \
|
||||
$(BLD)/time_r.$(O) \
|
||||
$(BLD)/timespec-add.$(O) \
|
||||
$(BLD)/timespec-sub.$(O) \
|
||||
$(BLD)/md5.$(O) \
|
||||
$(BLD)/sha1.$(O) \
|
||||
$(BLD)/sha256.$(O) \
|
||||
$(BLD)/sha512.$(O) \
|
||||
$(BLD)/sig2str.$(O) \
|
||||
$(BLD)/stat-time.$(O) \
|
||||
$(BLD)/timespec.$(O) \
|
||||
$(BLD)/u64.$(O) \
|
||||
$(BLD)/filemode.$(O)
|
||||
|
||||
#
|
||||
# Build the library
|
||||
#
|
||||
$(BLD)/libgnu.$(A): $(GNULIBOBJS)
|
||||
- $(DEL) $@
|
||||
$(AR) $(AR_OUT)$@ $(ALL_DEPS)
|
||||
|
||||
gnulib: $(BLD)/libgnu.$(A)
|
||||
|
||||
#
|
||||
# Build everything
|
||||
#
|
||||
all: $(ALL)
|
||||
|
||||
### TAGS ###
|
||||
|
||||
FRC:
|
||||
|
||||
TAGS: FRC
|
||||
../lib-src/$(BLD)/etags.exe *.c *.h
|
||||
|
||||
### DEPENDENCIES ###
|
||||
|
||||
EMACS_ROOT = ..
|
||||
GNU_LIB = .
|
||||
SRC = $(EMACS_ROOT)/src
|
||||
NT_INC = $(EMACS_ROOT)/nt/inc
|
||||
|
||||
ACL_H = $(GNU_LIB)/acl.h \
|
||||
$(NT_INC)/sys/stat.h \
|
||||
$(NT_INC)/stdbool.h
|
||||
C_CTYPE_H = $(GNU_LIB)/c-ctype.h \
|
||||
$(NT_INC)/stdbool.h
|
||||
MS_W32_H = $(NT_INC)/ms-w32.h \
|
||||
$(NT_INC)/sys/stat.h
|
||||
CONF_POST_H = $(SRC)/conf_post.h \
|
||||
$(MS_W32_H)
|
||||
CONFIG_H = $(SRC)/config.h \
|
||||
$(CONF_POST_H)
|
||||
FILEMODE_H = $(GNU_LIB)/filemode.h \
|
||||
$(NT_INC)/sys/stat.h
|
||||
FTOASTR_H = $(GNU_LIB)/ftoastr.h \
|
||||
$(GNU_LIB)/intprops.h
|
||||
FTOASTR_C = $(GNU_LIB)/ftoastr.c \
|
||||
$(CONFIG_H) \
|
||||
$(FTOASTR_H)
|
||||
GETOPT_INT_H = $(GNU_LIB)/getopt_int.h \
|
||||
$(GNU_LIB)/getopt.h
|
||||
MD5_H = $(GNU_LIB)/md5.h \
|
||||
$(NT_INC)/stdint.h
|
||||
SHA1_H = $(GNU_LIB)/sha1.h \
|
||||
$(NT_INC)/stdint.h
|
||||
SHA256_H = $(GNU_LIB)/sha256.h \
|
||||
$(NT_INC)/stdint.h
|
||||
U64_H = $(GNU_LIB)/u64.h \
|
||||
$(NT_INC)/stdint.h
|
||||
SHA512_H = $(GNU_LIB)/sha512.h \
|
||||
$(U64_H)
|
||||
SIG2STR_H = $(GNU_LIB)/sig2str.h \
|
||||
$(GNU_LIB)/intprops.h
|
||||
STAT_TIME_H = $(GNU_LIB)/stat-time.h \
|
||||
$(NT_INC)/sys/stat.h
|
||||
|
||||
$(BLD)/acl-errno-valid.$(O) : \
|
||||
$(GNU_LIB)/acl-errno-valid.c \
|
||||
$(ACL_H) \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/c-ctype.$(O) : \
|
||||
$(GNU_LIB)/c-ctype.c \
|
||||
$(CONFIG_H) \
|
||||
$(C_CTYPE_H)
|
||||
|
||||
$(BLD)/c-strcasecmp.$(O) : \
|
||||
$(GNU_LIB)/c-strcasecmp.c \
|
||||
$(GNU_LIB)/c-strcase.h \
|
||||
$(CONFIG_H) \
|
||||
$(C_CTYPE_H)
|
||||
|
||||
$(BLD)/c-strncasecmp.$(O) : \
|
||||
$(GNU_LIB)/c-strncasecmp.c \
|
||||
$(GNU_LIB)/c-strcase.h \
|
||||
$(CONFIG_H) \
|
||||
$(C_CTYPE_H)
|
||||
|
||||
$(BLD)/close-stream.$(O) : \
|
||||
$(GNU_LIB)/close-stream.c \
|
||||
$(GNU_LIB)/close-stream.h \
|
||||
$(GNU_LIB)/fpending.h \
|
||||
$(NT_INC)/stdbool.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/dtoastr.$(O) : \
|
||||
$(GNU_LIB)/dtoastr.c \
|
||||
$(FTOASTR_C)
|
||||
|
||||
$(BLD)/dtotimespec.$(O) : \
|
||||
$(GNU_LIB)/dtotimespec.c \
|
||||
$(GNU_LIB)/intprops.h \
|
||||
$(GNU_LIB)/timespec.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/execinfo.$(O) : \
|
||||
$(GNU_LIB)/execinfo.c \
|
||||
$(GNU_LIB)/execinfo.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/fpending.$(O) : \
|
||||
$(GNU_LIB)/fpending.c \
|
||||
$(GNU_LIB)/fpending.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/getopt.$(O) : \
|
||||
$(GNU_LIB)/getopt.c \
|
||||
$(GNU_LIB)/getopt.h \
|
||||
$(GNU_LIB)/gettext.h \
|
||||
$(NT_INC)/unistd.h \
|
||||
$(CONFIG_H) \
|
||||
$(GETOPT_INT_H)
|
||||
|
||||
$(BLD)/getopt1.$(O) : \
|
||||
$(GNU_LIB)/getopt1.c \
|
||||
$(GNU_LIB)/getopt.h \
|
||||
$(CONFIG_H) \
|
||||
$(GETOPT_INT_H)
|
||||
|
||||
$(BLD)/gettime.$(O) : \
|
||||
$(GNU_LIB)/gettime.c \
|
||||
$(GNU_LIB)/timespec.h \
|
||||
$(NT_INC)/sys/time.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/strftime.$(O) : \
|
||||
$(GNU_LIB)/strftime.c \
|
||||
$(GNU_LIB)/strftime.h \
|
||||
$(NT_INC)/stdbool.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/time_r.$(O) : \
|
||||
$(GNU_LIB)/time_r.c \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/timespec-add.$(O) : \
|
||||
$(GNU_LIB)/timespec-add.c \
|
||||
$(GNU_LIB)/intprops.h \
|
||||
$(GNU_LIB)/timespec.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/timespec-sub.$(O) : \
|
||||
$(GNU_LIB)/timespec-sub.c \
|
||||
$(GNU_LIB)/intprops.h \
|
||||
$(GNU_LIB)/timespec.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/md5.$(O) : \
|
||||
$(GNU_LIB)/md5.c \
|
||||
$(NT_INC)/stdalign.h \
|
||||
$(NT_INC)/stdint.h \
|
||||
$(CONFIG_H) \
|
||||
$(MD5_H)
|
||||
|
||||
$(BLD)/memrchr.$(O) : \
|
||||
$(GNU_LIB)/memrchr.c \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/sha1.$(O) : \
|
||||
$(GNU_LIB)/sha1.c \
|
||||
$(NT_INC)/stdalign.h \
|
||||
$(NT_INC)/stdint.h \
|
||||
$(CONFIG_H) \
|
||||
$(SHA1_H)
|
||||
|
||||
$(BLD)/sha256.$(O) : \
|
||||
$(GNU_LIB)/sha256.c \
|
||||
$(NT_INC)/stdalign.h \
|
||||
$(NT_INC)/stdint.h \
|
||||
$(CONFIG_H) \
|
||||
$(SHA256_H)
|
||||
|
||||
$(BLD)/sha512.$(O) : \
|
||||
$(GNU_LIB)/sha512.c \
|
||||
$(NT_INC)/stdalign.h \
|
||||
$(NT_INC)/stdint.h \
|
||||
$(CONFIG_H) \
|
||||
$(SHA512_H)
|
||||
|
||||
$(BLD)/stat-time.$(O) : \
|
||||
$(GNU_LIB)/stat-time.c \
|
||||
$(CONFIG_H) \
|
||||
$(STAT_TIME_H)
|
||||
|
||||
$(BLD)/timespec.$(O) : \
|
||||
$(GNU_LIB)/timespec.c \
|
||||
$(GNU_LIB)/timespec.h \
|
||||
$(CONFIG_H)
|
||||
|
||||
$(BLD)/u64.$(O) : \
|
||||
$(GNU_LIB)/u64.c \
|
||||
$(CONFIG_H) \
|
||||
$(U64_H)
|
||||
|
||||
$(BLD)/filemode.$(O) : \
|
||||
$(GNU_LIB)/filemode.c \
|
||||
$(CONFIG_H) \
|
||||
$(FILEMODE_H)
|
||||
|
||||
$(BLD)/sig2str.$(O) : \
|
||||
$(GNU_LIB)/sig2str.c \
|
||||
$(CONFIG_H) \
|
||||
$(SIG2STR_H)
|
||||
|
||||
|
||||
# The following dependencies are for supporting parallel builds, where
|
||||
# we must make sure $(BLD) exists before any compilation starts.
|
||||
#
|
||||
$(GNULIBOBJS): stamp_BLD
|
||||
|
||||
#
|
||||
# Headers we would preprocess if we could.
|
||||
#
|
||||
getopt.h: getopt_.h
|
||||
$(CP) $(ALL_DEPS) $@
|
||||
|
||||
#
|
||||
# Maintenance
|
||||
#
|
||||
clean:
|
||||
- $(DEL) $(COMPILER_TEMP_FILES)
|
||||
- $(DEL) getopt.h
|
||||
- $(DEL_TREE) $(OBJDIR)
|
||||
- $(DEL) stamp_BLD
|
||||
|
||||
distclean: cleanall
|
||||
- $(DEL) TAGS
|
||||
- $(DEL) Makefile
|
||||
|
||||
maintainer-clean: distclean
|
||||
- $(DEL) getopt_.h
|
||||
|
||||
cleanall: clean
|
||||
- $(DEL_TREE) obj
|
||||
- $(DEL_TREE) obj-spd
|
||||
- $(DEL_TREE) oo
|
||||
- $(DEL_TREE) oo-spd
|
||||
|
||||
# A dummy target to force other targets to be evaluated.
|
||||
doit:
|
||||
|
||||
getopt_.h: getopt.in.h $(ARG_NONNULL_H)
|
||||
$(MAKE) $(MFLAGS) getopt_.h-$(SHELLTYPE)
|
||||
|
||||
getopt_.h-CMD: doit
|
||||
@echo getopt.in.h or $(ARG_NONNULL_H) is newer than getopt_.h.
|
||||
@echo Run "$(MAKETYPE) getopt_h" in the lib/ subdirectory.
|
||||
@echo You will need GNU Sed to be installed.
|
||||
exit -1
|
||||
|
||||
getopt_.h-SH: doit
|
||||
@echo getopt.in.h or $(ARG_NONNULL_H) is newer than getopt_.h.
|
||||
@echo Run '"$(MAKETYPE) getopt_h"' in the lib/ subdirectory.
|
||||
@echo You will need GNU Sed to be installed.
|
||||
exit -1
|
||||
|
||||
# Generating getopt_.h from getopt.in.h.
|
||||
#
|
||||
# To avoid requiring all end users to install Sed, we have below
|
||||
# a maintainer-only target that produces getopt_.h from getopt.in.h.
|
||||
# For easier maintenance, all the strings that replace the @FOO@
|
||||
# placeholder are defined as Make macros below.
|
||||
|
||||
HAVE_GETOPT_H = HAVE_GETOPT_H
|
||||
INCLUDE_NEXT = include_next
|
||||
PRAGMA_COLUMNS =
|
||||
NEXT_GETOPT_H = <getopt.h>
|
||||
ARG_NONNULL_H = ../build-aux/snippet/arg-nonnull.h
|
||||
|
||||
getopt_h:
|
||||
- $(DEL) getopt_.h-t getopt_.h
|
||||
sed -e "s!@GUARD_PREFIX@!GL!g" \
|
||||
-e "s!@HAVE_GETOPT_H@!$(HAVE_GETOPT_H)!g" \
|
||||
-e "s!@INCLUDE_NEXT@!$(INCLUDE_NEXT)!g" \
|
||||
-e "s!@PRAGMA_SYSTEM_HEADER@!$(PRAGMA_SYSTEM_HEADER)!g" \
|
||||
-e "s!@PRAGMA_COLUMNS@!$(PRAGMA_COLUMNS)!g" \
|
||||
-e "s!@NEXT_GETOPT_H@!$(NEXT_GETOPT_H)!g" \
|
||||
-e "/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)" \
|
||||
-e "/^\# include_next/i # ifndef __GNUC__" \
|
||||
-e "/^\# include_next/i # include <next_getopt.h>" \
|
||||
-e "/^\# include_next/i # else" \
|
||||
-e "/^\# include_next/a # endif" \
|
||||
< getopt.in.h > getopt_.h-t
|
||||
$(CP) getopt_.h-t getopt_.h
|
||||
- $(DEL) getopt_.h-t
|
||||
|
||||
execinfo.h: execinfo.in.h
|
||||
$(CP) execinfo.in.h $@
|
|
@ -1,728 +0,0 @@
|
|||
# -*- Makefile -*- for GNU Emacs on the Microsoft Windows API.
|
||||
# Copyright (C) 2000-2015 Free Software Foundation, Inc.
|
||||
|
||||
# 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
ALL =
|
||||
|
||||
all: $(ALL)
|
||||
|
||||
SQUOTE='
|
||||
# '
|
||||
|
||||
lisp = $(CURDIR)
|
||||
srcdir = $(CURDIR)/..
|
||||
|
||||
# You can specify a different executable on the make command line,
|
||||
# e.g. "make EMACS=../bin/emacs ...".
|
||||
|
||||
EMACS = ../src/$(BLD)/emacs.exe
|
||||
|
||||
# Command line flags for Emacs.
|
||||
|
||||
EMACSOPT = -batch --no-site-file --no-site-lisp
|
||||
|
||||
# Extra flags to pass to the byte compiler
|
||||
BYTE_COMPILE_EXTRA_FLAGS =
|
||||
# For example to not display the undefined function warnings you can use this:
|
||||
# BYTE_COMPILE_EXTRA_FLAGS = --eval '(setq byte-compile-warnings (quote (not unresolved)))'
|
||||
# The example above is just for developers, it should not be used by default.
|
||||
|
||||
# Set EMACSLOADPATH correctly (already defined in environment).
|
||||
EMACSLOADPATH=$(lisp)
|
||||
|
||||
# Use C locale
|
||||
LC_ALL = C
|
||||
|
||||
lisptagsfiles1 = $(lisp)/*.el
|
||||
lisptagsfiles2 = $(lisp)/*/*.el
|
||||
lisptagsfiles3 = $(lisp)/*/*/*.el
|
||||
lisptagsfiles4 = $(lisp)/*/*/*/*.el
|
||||
ETAGS = "../lib-src/$(BLD)/etags.exe"
|
||||
## $(DEST) is overridden by ../src/makefile.w32-in.
|
||||
DEST=$(lisp)
|
||||
|
||||
# Automatically generated autoload files, apart from lisp/loaddefs.el.
|
||||
LOADDEFS = $(lisp)/calendar/cal-loaddefs.el \
|
||||
$(lisp)/calendar/diary-loaddefs.el $(lisp)/calendar/hol-loaddefs.el \
|
||||
$(lisp)/mh-e/mh-loaddefs.el $(lisp)/net/tramp-loaddefs.el
|
||||
|
||||
AUTOGENEL = $(lisp)/loaddefs.el $(LOADDEFS) $(lisp)/cus-load.el \
|
||||
$(lisp)/finder-inf.el $(lisp)/subdirs.el $(lisp)/eshell/esh-groups.el \
|
||||
$(lisp)/calc/calc-loaddefs.el $(lisp)/nxml/subdirs.el \
|
||||
$(lisp)/cedet/semantic/loaddefs.el $(lisp)/cedet/ede/loaddefs.el \
|
||||
$(lisp)/cedet/srecode/loaddefs.el
|
||||
|
||||
# Value of max-lisp-eval-depth when compiling initially.
|
||||
# During bootstrapping the byte-compiler is run interpreted when compiling
|
||||
# itself, and uses more stack than usual.
|
||||
#
|
||||
BIG_STACK_DEPTH = 2200
|
||||
BIG_STACK_OPTS = --eval "(setq max-lisp-eval-depth $(BIG_STACK_DEPTH))"
|
||||
|
||||
BYTE_COMPILE_FLAGS = $(BIG_STACK_OPTS) $(BYTE_COMPILE_EXTRA_FLAGS)
|
||||
|
||||
# Files to compile before others during a bootstrap. This is done to
|
||||
# speed up the bootstrap process.
|
||||
|
||||
COMPILE_FIRST = \
|
||||
$(lisp)/emacs-lisp/macroexp.el \
|
||||
$(lisp)/emacs-lisp/cconv.el \
|
||||
$(lisp)/emacs-lisp/byte-opt.el \
|
||||
$(lisp)/emacs-lisp/bytecomp.el \
|
||||
$(lisp)/emacs-lisp/autoload.el
|
||||
|
||||
# The actual Emacs command run in the targets below.
|
||||
# The quotes around $(EMACS) are here because the user could type
|
||||
# it with forward slashes and without quotes, which will fail if
|
||||
# the shell is cmd.exe.
|
||||
|
||||
emacs = "$(EMACS)" $(EMACSOPT)
|
||||
|
||||
# Have to define the list of subdirs manually when not using sh.
|
||||
WINS_CEDET=\
|
||||
cedet \
|
||||
cedet/ede \
|
||||
cedet/semantic \
|
||||
cedet/srecode \
|
||||
cedet/semantic/analyze \
|
||||
cedet/semantic/bovine \
|
||||
cedet/semantic/decorate \
|
||||
cedet/semantic/symref \
|
||||
cedet/semantic/wisent
|
||||
|
||||
# The list of subdirectories is subdivided into 4 more or less equal
|
||||
# parts so that we could have 4-way parallelism while compiling Lisp
|
||||
# files, which helps to slash bootstrap times. See the 'compile'
|
||||
# target below.
|
||||
WINS_BASIC1=\
|
||||
calc \
|
||||
calendar \
|
||||
emacs-lisp \
|
||||
erc \
|
||||
net \
|
||||
url
|
||||
|
||||
WINS_BASIC2=\
|
||||
gnus \
|
||||
international \
|
||||
language \
|
||||
mail
|
||||
|
||||
WINS_BASIC3=\
|
||||
emulation \
|
||||
mh-e \
|
||||
nxml \
|
||||
org \
|
||||
play \
|
||||
textmodes \
|
||||
vc
|
||||
|
||||
WINS_BASIC4=\
|
||||
eshell \
|
||||
progmodes
|
||||
|
||||
WINS_BASIC= $(WINS_BASIC1) $(WINS_BASIC2) $(WINS_BASIC3) $(WINS_BASIC4)
|
||||
|
||||
# Directories with lisp files to compile, and to extract data from
|
||||
# (customs, autoloads, etc.)
|
||||
WINS_UPDATES=$(WINS_BASIC) \
|
||||
$(WINS_CEDET)
|
||||
|
||||
# Directories to add to subdirs.el
|
||||
WINS_SUBDIR=$(WINS_BASIC) \
|
||||
obsolete
|
||||
|
||||
# All directories
|
||||
WINS= $(WINS_UPDATES) \
|
||||
term \
|
||||
obsolete
|
||||
|
||||
doit:
|
||||
|
||||
cus-load.el-SH:
|
||||
echo ";;; cus-load.el --- automatically extracted custom dependencies" > $@
|
||||
echo ";;" >> $@; echo ";;; Code:" >> $@
|
||||
echo "" >> $@
|
||||
echo ";; Local Variables:" >> $@
|
||||
echo ";; version-control: never" >> $@
|
||||
echo ";; no-byte-compile: t" >> $@
|
||||
echo ";; no-update-autoloads: t" >> $@
|
||||
echo ";; End:" >> $@
|
||||
|
||||
cus-load.el-CMD:
|
||||
echo ;;; cus-load.el --- automatically extracted custom dependencies> $@
|
||||
echo ;;>> $@
|
||||
echo ;;; Code:>> $@
|
||||
echo.>> $@
|
||||
echo ;; Local Variables:>> $@
|
||||
echo ;; version-control: never>> $@
|
||||
echo ;; no-byte-compile: t>> $@
|
||||
echo ;; no-update-autoloads: t>> $@
|
||||
echo ;; End:>> $@
|
||||
|
||||
$(lisp)/cus-load.el:
|
||||
$(MAKE) $(MFLAGS) cus-load.el-$(SHELLTYPE)
|
||||
mv cus-load.el-$(SHELLTYPE) $@
|
||||
|
||||
# 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.
|
||||
custom-deps: $(lisp)/cus-load.el $(lisp)/loaddefs.el $(lisp)/subdirs.el doit
|
||||
@echo Directories: $(WINS_UPDATES)
|
||||
-$(emacs) -l cus-dep --eval $(ARGQUOTE)(setq find-file-hook nil)$(ARGQUOTE) \
|
||||
-f custom-make-dependencies $(lisp) $(WINS_UPDATES)
|
||||
|
||||
finder-data: $(lisp)/loaddefs.el $(lisp)/subdirs.el doit
|
||||
@echo Directories: $(WINS_UPDATES)
|
||||
$(emacs) -l finder -f finder-compile-keywords-make-dist $(lisp) $(WINS_UPDATES)
|
||||
|
||||
$(lisp)/loaddefs.el:
|
||||
$(MAKE) $(MFLAGS) loaddefs.el-$(SHELLTYPE)
|
||||
cp loaddefs.el-$(SHELLTYPE) $@
|
||||
rm loaddefs.el-$(SHELLTYPE)
|
||||
|
||||
loaddefs.el-SH:
|
||||
echo ";;; loaddefs.el --- automatically extracted autoloads" > $@
|
||||
echo ";;" >> $@; echo ";;; Code:" >> $@
|
||||
echo "" >> $@
|
||||
echo ";; Local Variables:" >> $@
|
||||
echo ";; version-control: never" >> $@
|
||||
echo ";; no-byte-compile: t" >> $@
|
||||
echo ";; no-update-autoloads: t" >> $@
|
||||
echo ";; coding: utf-8" >> $@
|
||||
echo ";; End:" >> $@
|
||||
echo ";;; loaddefs.el ends here" >> $@
|
||||
|
||||
loaddefs.el-CMD:
|
||||
echo ;;; loaddefs.el --- automatically extracted autoloads> $@
|
||||
echo ;;>> $@
|
||||
echo ;;; Code:>> $@
|
||||
echo.>> $@
|
||||
echo ;; Local Variables:>> $@
|
||||
echo ;; version-control: never>> $@
|
||||
echo ;; no-byte-compile: t>> $@
|
||||
echo ;; no-update-autoloads: t>> $@
|
||||
echo ;; coding: utf-8>> $@
|
||||
echo ;; End:>> $@
|
||||
echo ;;; loaddefs.el ends here>> $@
|
||||
|
||||
# Use . instead of $(lisp) because $(lisp) is an absolute file name,
|
||||
# including a drive letter and any leading directories, so the generated
|
||||
# loaddefs.el will mention file names that on other machine reference
|
||||
# possibly non-existent directories.
|
||||
#
|
||||
# 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.
|
||||
autoloads: $(lisp)/loaddefs.el $(LOADDEFS) doit
|
||||
@echo Directories: . $(WINS_UPDATES)
|
||||
$(emacs) -l autoload \
|
||||
--eval $(ARGQUOTE)(setq find-file-hook nil find-file-suppress-same-file-warnings t)$(ARGQUOTE) \
|
||||
-f w32-batch-update-autoloads "$(lisp)/loaddefs.el" $(MAKE) . $(WINS_UPDATES)
|
||||
|
||||
$(lisp)/subdirs.el:
|
||||
$(MAKE) $(MFLAGS) update-subdirs
|
||||
|
||||
# Need separate version for sh and native cmd.exe
|
||||
update-subdirs: update-subdirs-$(SHELLTYPE)
|
||||
|
||||
update-subdirs-CMD: doit
|
||||
echo ;; In load-path, after this directory should come> $(lisp)/subdirs.el
|
||||
echo ;; certain of its subdirectories. Here we specify them.>> $(lisp)/subdirs.el
|
||||
echo (normal-top-level-add-to-load-path $(SQUOTE)(>> $(lisp)/subdirs.el
|
||||
@for %%d in ($(WINS_SUBDIR) cedet) do echo "%%d">> $(lisp)/subdirs.el
|
||||
echo ))>> $(lisp)/subdirs.el
|
||||
echo ;; Local Variables:>> $(lisp)/subdirs.el
|
||||
echo ;; version-control: never>> $(lisp)/subdirs.el
|
||||
echo ;; no-byte-compile: t>> $(lisp)/subdirs.el
|
||||
echo ;; End:>> $(lisp)/subdirs.el
|
||||
|
||||
update-subdirs-SH: doit
|
||||
$(srcdir)/build-aux/update-subdirs $(lisp); \
|
||||
for file in $(WINS_SUBDIR); do \
|
||||
$(srcdir)/build-aux/update-subdirs $$file; \
|
||||
done;
|
||||
|
||||
updates: $(lisp)/subdirs.el autoloads mh-autoloads finder-data custom-deps
|
||||
|
||||
# This is useful after a repository fetch.
|
||||
repo-update: recompile autoloads finder-data custom-deps
|
||||
|
||||
# For backwards compatibility:
|
||||
cvs-update: repo-update
|
||||
|
||||
# Update the AUTHORS file.
|
||||
|
||||
update-authors:
|
||||
$(emacs) -l authors -f batch-update-authors $(srcdir)/etc/AUTHORS $(srcdir)
|
||||
|
||||
TAGS: TAGS-$(MAKETYPE)
|
||||
|
||||
TAGS-LISP: TAGS-LISP-$(MAKETYPE)
|
||||
|
||||
TAGS-nmake:
|
||||
echo This target is not supported with NMake
|
||||
exit -1
|
||||
|
||||
TAGS-LISP-nmake:
|
||||
echo This target is not supported with NMake
|
||||
exit -1
|
||||
|
||||
TAGS-gmake: TAGS-$(SHELLTYPE)
|
||||
|
||||
TAGS-LISP-gmake: TAGS-LISP-$(SHELLTYPE)
|
||||
|
||||
TAGS-SH: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4)
|
||||
- $(DEL) TAGS
|
||||
for dir in . $(WINS_UPDATES); do \
|
||||
$(ETAGS) -a $(lisp)/$$dir/*.el; \
|
||||
done
|
||||
|
||||
TAGS-LISP-SH: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4)
|
||||
- $(DEL) $(DEST)/TAGS-LISP
|
||||
for dir in . $(WINS_UPDATES); do \
|
||||
$(ETAGS) -a -o $(DEST)/TAGS-LISP $(lisp)/$$dir/*.el; \
|
||||
done
|
||||
|
||||
TAGS-CMD: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4)
|
||||
- $(DEL) TAGS
|
||||
for %%d in (. $(WINS_UPDATES)) do $(ETAGS) -a $(lisp)/%%d/*.el
|
||||
|
||||
TAGS-LISP-CMD: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4)
|
||||
- $(DEL) $(DEST)/TAGS-LISP
|
||||
for %%d in (. $(WINS_UPDATES)) do \
|
||||
$(ETAGS) -a -o $(DEST)/TAGS-LISP $(lisp)/%%d/*.el
|
||||
|
||||
.SUFFIXES: .elc .el
|
||||
|
||||
.el.elc:
|
||||
-$(emacs) $(BYTE_COMPILE_FLAGS) -f batch-byte-compile $<
|
||||
|
||||
# Compile all Lisp files, but don't recompile those that are up to
|
||||
# date. Some files don't actually get compiled because they set the
|
||||
# local variable no-byte-compile.
|
||||
|
||||
# All .elc files are made writable before compilation in case we
|
||||
# checked out read-only (CVS option -r). Files MUST be compiled one by
|
||||
# one. If we compile several files in a row we can't make sure that
|
||||
# the compilation environment is clean. We also set the load-path of
|
||||
# the Emacs used for compilation to the current directory and its
|
||||
# subdirectories, to make sure require's and load's in the files being
|
||||
# compiled find the right files.
|
||||
|
||||
# Need separate version for sh and native cmd.exe
|
||||
compile: $(lisp)/subdirs.el compile0-$(SHELLTYPE) compile1-$(SHELLTYPE) compile2-$(SHELLTYPE) compile3-$(SHELLTYPE) compile4-$(SHELLTYPE) doit
|
||||
|
||||
compile0-CMD: autoloads
|
||||
# -for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g
|
||||
for %%f in ($(COMPILE_FIRST)) do \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f
|
||||
|
||||
compile1-CMD: autoloads compile0-CMD
|
||||
for %%f in (. $(WINS_BASIC1)) do for %%g in (%%f/*.el) do \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f/%%g
|
||||
|
||||
compile2-CMD: autoloads compile0-CMD
|
||||
for %%f in ($(WINS_BASIC2)) do for %%g in (%%f/*.el) do \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f/%%g
|
||||
|
||||
compile3-CMD: autoloads compile0-CMD
|
||||
for %%f in ($(WINS_BASIC3)) do for %%g in (%%f/*.el) do \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f/%%g
|
||||
|
||||
compile4-CMD: autoloads compile0-CMD
|
||||
for %%f in ($(WINS_BASIC4) $(WINS_CEDET) term obsolete) do for %%g in (%%f/*.el) do \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done %%f/%%g
|
||||
|
||||
compile0-SH: autoloads
|
||||
# for elc in $(lisp)/*.elc $(lisp)/*/*.elc; do attrib -r $$elc; done
|
||||
for el in $(COMPILE_FIRST); do \
|
||||
echo Compiling $$el; \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done $$el; \
|
||||
done
|
||||
|
||||
compile1-SH: autoloads compile0-SH
|
||||
for dir in $(lisp) $(WINS_BASIC1); do \
|
||||
for el in $$dir/*.el; do \
|
||||
if test -f $$el; \
|
||||
then \
|
||||
echo Compiling $$el; \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done $$el; \
|
||||
fi \
|
||||
done; \
|
||||
done
|
||||
|
||||
compile2-SH: autoloads compile0-SH
|
||||
for dir in $(WINS_BASIC2); do \
|
||||
for el in $$dir/*.el; do \
|
||||
if test -f $$el; \
|
||||
then \
|
||||
echo Compiling $$el; \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done $$el; \
|
||||
fi \
|
||||
done; \
|
||||
done
|
||||
|
||||
compile3-SH: autoloads compile0-SH
|
||||
for dir in $(WINS_BASIC3); do \
|
||||
for el in $$dir/*.el; do \
|
||||
if test -f $$el; \
|
||||
then \
|
||||
echo Compiling $$el; \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done $$el; \
|
||||
fi \
|
||||
done; \
|
||||
done
|
||||
|
||||
compile4-SH: autoloads compile0-SH
|
||||
for dir in $(WINS_BASIC4) $(WINS_CEDET) term obsolete; do \
|
||||
for el in $$dir/*.el; do \
|
||||
if test -f $$el; \
|
||||
then \
|
||||
echo Compiling $$el; \
|
||||
$(emacs) -l loaddefs $(BYTE_COMPILE_FLAGS) -f batch-byte-compile-if-not-done $$el; \
|
||||
fi \
|
||||
done; \
|
||||
done
|
||||
|
||||
# Compile all Lisp files. This is like `compile' but compiles files
|
||||
# unconditionally. Some files don't actually get compiled because they
|
||||
# set the local variable no-byte-compile.
|
||||
|
||||
compile-always: $(lisp)/subdirs.el compile-always-$(SHELLTYPE) doit
|
||||
|
||||
compile-always-CMD:
|
||||
# -for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g
|
||||
for %%f in ($(COMPILE_FIRST)) do $(emacs) $(BYTE_COMPILE_FLAGS) -f batch-byte-compile %%f
|
||||
for %%f in (. $(WINS)) do for %%g in (%%f/*.el) do $(emacs) $(BYTE_COMPILE_FLAGS) -f batch-byte-compile %%f/%%g
|
||||
|
||||
compile-always-SH:
|
||||
# for elc in $(lisp)/*.elc $(lisp)/*/*.elc; do attrib -r $$elc; done
|
||||
for el in $(COMPILE_FIRST); do \
|
||||
echo Compiling $$el; \
|
||||
$(emacs) $(BYTE_COMPILE_FLAGS) -f batch-byte-compile $$el || exit 1; \
|
||||
done
|
||||
for dir in $(lisp) $(WINS); do \
|
||||
for el in $$dir/*.el; do \
|
||||
echo Compiling $$el; \
|
||||
$(emacs) $(BYTE_COMPILE_FLAGS) -f batch-byte-compile $$el || exit 1; \
|
||||
done; \
|
||||
done
|
||||
|
||||
compile-calc: compile-calc-$(SHELLTYPE)
|
||||
|
||||
compile-calc-CMD:
|
||||
for %%f in ($(lisp)/calc/*.el) do $(emacs) $(BYTE_COMPILE_FLAGS) -f batch-byte-compile %%f
|
||||
|
||||
compile-calc-SH:
|
||||
for el in $(lisp)/calc/*.el; do \
|
||||
echo Compiling $$el; \
|
||||
$(emacs) $(BYTE_COMPILE_FLAGS) -f batch-byte-compile $$el || exit 1; \
|
||||
done
|
||||
|
||||
# Backup compiled Lisp files in elc.tar.gz. If that file already
|
||||
# exists, make a backup of it.
|
||||
|
||||
backup-compiled-files:
|
||||
-mv $(lisp)/elc.tar.gz $(lisp)/elc.tar.gz~
|
||||
-tar czf $(lisp)/elc.tar.gz $(lisp)/*.elc $(lisp)/*/*.elc
|
||||
|
||||
# Compile Lisp files, but save old compiled files first.
|
||||
|
||||
compile-after-backup: backup-compiled-files compile-always
|
||||
|
||||
compile-first: $(lisp)/emacs-lisp/bytecomp.elc $(lisp)/emacs-lisp/byte-opt.elc \
|
||||
$(lisp)/emacs-lisp/autoload.elc $(lisp)/subdirs.el
|
||||
|
||||
# Recompile all Lisp files which are newer than their .elc files.
|
||||
# Note that this doesn't create .elc files. It only recompiles if an
|
||||
# .elc is present.
|
||||
# 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.
|
||||
recompile: compile-first autoloads doit $(lisp)/progmodes/cc-mode.elc
|
||||
$(emacs) --eval $(ARGQUOTE)(batch-byte-recompile-directory 0)$(ARGQUOTE) $(lisp)
|
||||
|
||||
$(lisp)/calendar/cal-loaddefs.el: $(lisp)/subdirs.el
|
||||
"$(EMACS)" $(EMACSOPT) -l autoload \
|
||||
--eval "(setq generate-autoload-cookie \";;;###cal-autoload\")" \
|
||||
--eval "(setq find-file-suppress-same-file-warnings t)" \
|
||||
--eval "(setq make-backup-files nil)" \
|
||||
-f w32-batch-update-autoloads "$(lisp)/calendar/cal-loaddefs.el" \
|
||||
$(MAKE) ./calendar
|
||||
|
||||
$(lisp)/calendar/diary-loaddefs.el: $(lisp)/subdirs.el
|
||||
"$(EMACS)" $(EMACSOPT) -l autoload \
|
||||
--eval "(setq generate-autoload-cookie \";;;###diary-autoload\")" \
|
||||
--eval "(setq find-file-suppress-same-file-warnings t)" \
|
||||
--eval "(setq make-backup-files nil)" \
|
||||
-f w32-batch-update-autoloads $(lisp)/calendar/diary-loaddefs.el \
|
||||
$(MAKE) ./calendar
|
||||
|
||||
$(lisp)/calendar/hol-loaddefs.el: $(lisp)/subdirs.el
|
||||
"$(EMACS)" $(EMACSOPT) -l autoload \
|
||||
--eval "(setq generate-autoload-cookie \";;;###holiday-autoload\")" \
|
||||
--eval "(setq find-file-suppress-same-file-warnings t)" \
|
||||
--eval "(setq make-backup-files nil)" \
|
||||
-f w32-batch-update-autoloads $(lisp)/calendar/hol-loaddefs.el \
|
||||
$(MAKE) ./calendar
|
||||
|
||||
# Update MH-E internal autoloads. These are not to be confused with
|
||||
# the autoloads for the MH-E entry points, which are already in
|
||||
# loaddefs.el.
|
||||
MH_E_SRC = $(lisp)/mh-e/mh-acros.el $(lisp)/mh-e/mh-alias.el \
|
||||
$(lisp)/mh-e/mh-buffers.el $(lisp)/mh-e/mh-compat.el \
|
||||
$(lisp)/mh-e/mh-comp.el $(lisp)/mh-e/mh-e.el \
|
||||
$(lisp)/mh-e/mh-folder.el $(lisp)/mh-e/mh-funcs.el \
|
||||
$(lisp)/mh-e/mh-gnus.el $(lisp)/mh-e/mh-identity.el \
|
||||
$(lisp)/mh-e/mh-inc.el $(lisp)/mh-e/mh-junk.el \
|
||||
$(lisp)/mh-e/mh-letter.el $(lisp)/mh-e/mh-limit.el \
|
||||
$(lisp)/mh-e/mh-mime.el $(lisp)/mh-e/mh-print.el \
|
||||
$(lisp)/mh-e/mh-scan.el $(lisp)/mh-e/mh-search.el \
|
||||
$(lisp)/mh-e/mh-seq.el $(lisp)/mh-e/mh-show.el \
|
||||
$(lisp)/mh-e/mh-speed.el $(lisp)/mh-e/mh-thread.el \
|
||||
$(lisp)/mh-e/mh-tool-bar.el $(lisp)/mh-e/mh-utils.el \
|
||||
$(lisp)/mh-e/mh-xface.el
|
||||
|
||||
# See the commentary for autoloads above for why we use ./mh-e below
|
||||
# instead of $(lisp)/mh-e.
|
||||
mh-autoloads: $(lisp)/mh-e/mh-loaddefs.el
|
||||
$(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC) $(lisp)/subdirs.el
|
||||
"$(EMACS)" $(EMACSOPT) \
|
||||
-l autoload \
|
||||
--eval $(ARGQUOTE)(setq generate-autoload-cookie $(DQUOTE);;;###mh-autoload$(DQUOTE))$(ARGQUOTE) \
|
||||
--eval $(ARGQUOTE)(setq find-file-suppress-same-file-warnings t)$(ARGQUOTE) \
|
||||
--eval $(ARGQUOTE)(setq make-backup-files nil)$(ARGQUOTE) \
|
||||
-f w32-batch-update-autoloads \
|
||||
$(ARGQUOTE)$(lisp)/mh-e/mh-loaddefs.el$(ARGQUOTE) $(MAKE) ./mh-e
|
||||
|
||||
# Update TRAMP internal autoloads. Maybe we could move tramp*.el into
|
||||
# an own subdirectory. OTOH, it does not hurt to keep them in
|
||||
# lisp/net.
|
||||
TRAMP_DIR = $(lisp)/net
|
||||
TRAMP_SRC = $(TRAMP_DIR)/tramp.el $(TRAMP_DIR)/tramp-adb.el \
|
||||
$(TRAMP_DIR)/tramp-cache.el $(TRAMP_DIR)/tramp-cmds.el \
|
||||
$(TRAMP_DIR)/tramp-compat.el $(TRAMP_DIR)/tramp-ftp.el \
|
||||
$(TRAMP_DIR)/tramp-gvfs.el $(TRAMP_DIR)/tramp-gw.el \
|
||||
$(TRAMP_DIR)/tramp-sh.el $(TRAMP_DIR)/tramp-smb.el \
|
||||
$(TRAMP_DIR)/tramp-uu.el $(TRAMP_DIR)/trampver.el
|
||||
|
||||
$(TRAMP_DIR)/tramp-loaddefs.el: $(TRAMP_SRC) $(lisp)/subdirs.el
|
||||
"$(EMACS)" $(EMACSOPT) \
|
||||
-l autoload \
|
||||
--eval $(ARGQUOTE)(setq generate-autoload-cookie $(DQUOTE);;;###tramp-autoload$(DQUOTE))$(ARGQUOTE) \
|
||||
--eval $(ARGQUOTE)(setq find-file-suppress-same-file-warnings t)$(ARGQUOTE) \
|
||||
--eval $(ARGQUOTE)(setq make-backup-files nil)$(ARGQUOTE) \
|
||||
-f w32-batch-update-autoloads \
|
||||
$(ARGQUOTE)$(TRAMP_DIR)/tramp-loaddefs.el$(ARGQUOTE) $(MAKE) ./net
|
||||
|
||||
# Prepare a bootstrap in the lisp subdirectory.
|
||||
#
|
||||
# Build loaddefs.el to make sure it's up-to-date. If it's not, that
|
||||
# might lead to errors during the bootstrap because something fails to
|
||||
# autoload as expected. If there is no emacs binary, then we can't
|
||||
# build autoloads yet. In that case we have to use ldefs-boot.el;
|
||||
# bootstrap should always work with ldefs-boot.el. (Because
|
||||
# loaddefs.el is an automatically generated file, we don't want to
|
||||
# store it in the source repository).
|
||||
#
|
||||
# Remove compiled Lisp files so that bootstrap-emacs will be built from
|
||||
# sources only.
|
||||
|
||||
# Need separate version for sh and native cmd.exe
|
||||
bootstrap-clean:
|
||||
- $(DEL) $(lisp)/loaddefs.el
|
||||
- $(DEL) $(lisp)/subdirs.el
|
||||
$(MAKE) $(MFLAGS) bootstrap-clean-$(SHELLTYPE)
|
||||
|
||||
bootstrap-clean-CMD:
|
||||
# if exist "$(EMACS)" $(MAKE) $(MFLAGS) autoloads
|
||||
-for %%f in (. $(WINS)) do for %%g in (%%f\*.elc) do @$(DEL) %%g
|
||||
|
||||
bootstrap-clean-SH:
|
||||
# if test -f "$(EMACS)"; then $(MAKE) $(MFLAGS) autoloads; fi
|
||||
# -rm -f $(lisp)/*.elc $(lisp)/*/*.elc
|
||||
-for dir in . $(WINS); do rm -f $$dir/*.elc $$dir/*/*.elc $$dir/*/*/*.elc; done
|
||||
|
||||
# Generate/update files for the bootstrap process.
|
||||
# When done, remove bootstrap-emacs from ../bin, so that
|
||||
# it will not be mistaken for an installed binary.
|
||||
|
||||
bootstrap: $(lisp)/subdirs.el compile finder-data custom-deps
|
||||
- $(DEL) "$(EMACS)"
|
||||
|
||||
#
|
||||
# Assuming INSTALL_DIR is defined, copy the elisp files to it
|
||||
# Windows 95 makes this harder than it should be.
|
||||
#
|
||||
install:
|
||||
- mkdir "$(INSTALL_DIR)/lisp"
|
||||
- $(DEL) ../$(DIRNAME)_same-dir.tst
|
||||
- $(DEL) "$(INSTALL_DIR)/$(DIRNAME)_same-dir.tst"
|
||||
echo SameDirTest > "$(INSTALL_DIR)/$(DIRNAME)_same-dir.tst"
|
||||
#ifdef COPY_LISP_SOURCE
|
||||
$(IFNOTSAMEDIR) $(MAKE) $(MFLAGS) install-lisp-$(SHELLTYPE) $(ENDIF)
|
||||
#else
|
||||
# $(IFNOTSAMEDIR) $(CP_DIR) *.elc "$(INSTALL_DIR)/lisp" $(ENDIF)
|
||||
# $(IFNOTSAMEDIR) $(CP) cus-load.el "$(INSTALL_DIR)/lisp" $(ENDIF)
|
||||
# $(IFNOTSAMEDIR) $(CP) forms*.el "$(INSTALL_DIR)/lisp" $(ENDIF)
|
||||
# $(IFNOTSAMEDIR) $(CP) patcomp.el "$(INSTALL_DIR)/lisp" $(ENDIF)
|
||||
# $(IFNOTSAMEDIR) $(CP) subdirs.el "$(INSTALL_DIR)/lisp" $(ENDIF)
|
||||
# $(IFNOTSAMEDIR) $(CP) version.el "$(INSTALL_DIR)/lisp" $(ENDIF)
|
||||
# $(IFNOTSAMEDIR) $(CP) mail/blessmail.el "$(INSTALL_DIR)/lisp/mail" $(ENDIF)
|
||||
# $(IFNOTSAMEDIR) $(CP) mail/sc.el "$(INSTALL_DIR)/lisp/mail" $(ENDIF)
|
||||
# $(IFNOTSAMEDIR) $(CP) play/bruce.el "$(INSTALL_DIR)/lisp/play" $(ENDIF)
|
||||
# $(IFNOTSAMEDIR) $(CP) international/latin-*.el "$(INSTALL_DIR)/lisp/international" $(ENDIF)
|
||||
# $(IFNOTSAMEDIR) $(CP) international/mule-conf.el "$(INSTALL_DIR)/lisp/international" $(ENDIF)
|
||||
#endif
|
||||
- $(DEL) ../$(DIRNAME)_same-dir.tst
|
||||
- $(DEL) "$(INSTALL_DIR)/$(DIRNAME)_same-dir.tst"
|
||||
|
||||
# Need to copy *.el files first, to avoid "source file is newer" annoyance
|
||||
# since cp does not preserve time stamps
|
||||
install-lisp-SH:
|
||||
cp -f *.el "$(INSTALL_DIR)/lisp"
|
||||
for dir in $(WINS); do [ -d "$(INSTALL_DIR)/lisp/$$dir" ] || mkdir "$(INSTALL_DIR)/lisp/$$dir"; done
|
||||
for dir in $(WINS); do cp -f $$dir/*.el "$(INSTALL_DIR)/lisp/$$dir"; done
|
||||
for dir in . $(WINS); do cp $$dir/*.elc "$(INSTALL_DIR)/lisp/$$dir"; done
|
||||
|
||||
install-lisp-CMD:
|
||||
cp -f *.el "$(INSTALL_DIR)/lisp"
|
||||
for %%f in ($(WINS)) do if not exist "$(INSTALL_DIR)/lisp/%%f" mkdir "$(INSTALL_DIR)/lisp/%%f"
|
||||
for %%f in ($(WINS)) do cp -f %%f/*.el "$(INSTALL_DIR)/lisp/%%f"
|
||||
for %%f in (. $(WINS)) do cp -f %%f/*.elc "$(INSTALL_DIR)/lisp/%%f"
|
||||
|
||||
# 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.
|
||||
check-declare:
|
||||
$(emacs) -l $(lisp)/emacs-lisp/check-declare --eval $(ARGQUOTE)(check-declare-directory $(DQUOTE)$(lisp)$(DQUOTE))$(ARGQUOTE)
|
||||
|
||||
#
|
||||
# Maintenance
|
||||
#
|
||||
# We used to delete *~ here, but that might inadvertently remove
|
||||
# precious files if it happens to match their short 8+3 aliases.
|
||||
clean:
|
||||
- $(DEL) *.el~
|
||||
- $(DEL) calc/calc-loaddefs.el~
|
||||
- $(DEL) eshell/esh-groups.el~
|
||||
|
||||
distclean: clean
|
||||
- $(DEL) $(lisp)/Makefile
|
||||
|
||||
maintainer-clean: bootstrap-clean distclean
|
||||
- $(DEL) $(AUTOGENEL)
|
||||
|
||||
# Dependencies
|
||||
|
||||
# CC Mode uses a compile time macro system which causes a compile time
|
||||
# dependency in cc-*.elc files on the macros in other cc-*.el and the
|
||||
# version string in cc-defs.el.
|
||||
$(lisp)/progmodes/cc-align.elc $(lisp)/progmodes/cc-awk.elc\
|
||||
$(lisp)/progmodes/cc-cmds.elc $(lisp)/progmodes/cc-compat.elc\
|
||||
$(lisp)/progmodes/cc-engine.elc $(lisp)/progmodes/cc-fonts.elc\
|
||||
$(lisp)/progmodes/cc-langs.elc $(lisp)/progmodes/cc-menus.elc\
|
||||
$(lisp)/progmodes/cc-mode.elc $(lisp)/progmodes/cc-styles.elc\
|
||||
$(lisp)/progmodes/cc-vars.elc: \
|
||||
$(lisp)/progmodes/cc-bytecomp.elc $(lisp)/progmodes/cc-defs.elc
|
||||
|
||||
$(lisp)/progmodes/cc-align.elc: \
|
||||
$(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-engine.elc
|
||||
|
||||
$(lisp)/progmodes/cc-cmds.elc: \
|
||||
$(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-engine.elc
|
||||
|
||||
$(lisp)/progmodes/cc-compat.elc: \
|
||||
$(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-styles.elc \
|
||||
$(lisp)/progmodes/cc-engine.elc
|
||||
|
||||
$(lisp)/progmodes/cc-defs.elc: $(lisp)/progmodes/cc-bytecomp.elc \
|
||||
$(lisp)/emacs-lisp/cl.elc $(lisp)/emacs-lisp/regexp-opt.elc
|
||||
|
||||
$(lisp)/progmodes/cc-engine.elc: $(lisp)/progmodes/cc-langs.elc \
|
||||
$(lisp)/progmodes/cc-vars.elc
|
||||
|
||||
$(lisp)/progmodes/cc-fonts.elc: $(lisp)/progmodes/cc-langs.elc \
|
||||
$(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-engine.elc \
|
||||
$(lisp)/font-lock.elc
|
||||
|
||||
$(lisp)/progmodes/cc-langs.elc: $(lisp)/progmodes/cc-vars.elc \
|
||||
$(lisp)/emacs-lisp/cl.elc
|
||||
|
||||
$(lisp)/progmodes/cc-mode.elc: $(lisp)/progmodes/cc-langs.elc \
|
||||
$(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-engine.elc \
|
||||
$(lisp)/progmodes/cc-styles.elc $(lisp)/progmodes/cc-cmds.elc \
|
||||
$(lisp)/progmodes/cc-align.elc $(lisp)/progmodes/cc-menus.elc \
|
||||
$(lisp)/subdirs.el
|
||||
|
||||
$(lisp)/progmodes/cc-styles.elc: $(lisp)/progmodes/cc-vars.elc \
|
||||
$(lisp)/progmodes/cc-align.elc
|
||||
|
||||
$(lisp)/progmodes/cc-vars.elc: $(lisp)/custom.elc $(lisp)/widget.elc
|
||||
|
||||
# MH-E dependencies, mainly to prevent failures with parallel
|
||||
# compilation, due to race conditions between writing a given FOO.elc
|
||||
# file and another file being compiled that says "(require FOO)",
|
||||
# which causes Emacs to try to read FOO.elc.
|
||||
MH_E_DIR = ./mh-e
|
||||
$(MH_E_DIR)/mh-alias.elc $(MH_E_DIR)/mh-comp.elc $(MH_E_DIR)/mh-folder.elc\
|
||||
$(MH_E_DIR)/mh-funcs.elc $(MH_E_DIR)/mh-identity.elc $(MH_E_DIR)/mh-inc.elc\
|
||||
$(MH_E_DIR)/mh-junk.elc $(MH_E_DIR)/mh-letter.elc $(MH_E_DIR)/mh-limit.elc\
|
||||
$(MH_E_DIR)/mh-mime.elc $(MH_E_DIR)/mh-print.elc $(MH_E_DIR)/mh-scan.elc\
|
||||
$(MH_E_DIR)/mh-search.elc $(MH_E_DIR)/mh-seq.elc $(MH_E_DIR)/mh-show.elc\
|
||||
$(MH_E_DIR)/mh-speed.elc $(MH_E_DIR)/mh-thread.elc $(MH_E_DIR)/mh-tool-bar.elc\
|
||||
$(MH_E_DIR)/mh-utils.elc $(MH_E_DIR)/mh-xface.elc:\
|
||||
$(MH_E_DIR)/mh-e.elc
|
||||
|
||||
$(MH_E_DIR)/mh-alias.elc $(MH_E_DIR)/mh-e.elc $(MH_E_DIR)/mh-folder.elc\
|
||||
$(MH_E_DIR)/mh-inc.elc $(MH_E_DIR)/mh-junk.elc $(MH_E_DIR)/mh-limit.elc\
|
||||
$(MH_E_DIR)/mh-search.elc $(MH_E_DIR)/mh-seq.elc $(MH_E_DIR)/mh-speed.elc\
|
||||
$(MH_E_DIR)/mh-utils.elc $(MH_E_DIR)/mh-xface.elc:\
|
||||
$(lisp)/emacs-lisp/cl.elc
|
||||
|
||||
$(MH_E_DIR)/mh-comp.elc $(MH_E_DIR)/mh-folder.elc $(MH_E_DIR)/mh-funcs.elc\
|
||||
$(MH_E_DIR)/mh-junk.elc $(MH_E_DIR)/mh-limit.elc $(MH_E_DIR)/mh-print.elc\
|
||||
$(MH_E_DIR)/mh-seq.elc $(MH_E_DIR)/mh-show.elc $(MH_E_DIR)/mh-thread.elc:\
|
||||
$(MH_E_DIR)/mh-scan.elc
|
||||
|
||||
$(MH_E_DIR)/mh-folder.elc $(MH_E_DIR)/mh-letter.elc $(MH_E_DIR)/mh-mime.elc\
|
||||
$(MH_E_DIR)/mh-search.elc $(MH_E_DIR)/mh-show.elc $(MH_E_DIR)/mh-speed.elc:\
|
||||
$(lisp)/gnus/gnus-util.elc
|
||||
|
||||
$(MH_E_DIR)/mh-folder.elc $(MH_E_DIR)/mh-search.elc:\
|
||||
$(lisp)/progmodes/which-func.elc
|
||||
|
||||
$(MH_E_DIR)/mh-letter.elc $(MH_E_DIR)/mh-seq.elc $(MH_E_DIR)/mh-show.elc\
|
||||
$(MH_E_DIR)/mh-utils.elc:\
|
||||
$(lisp)/font-lock.elc
|
||||
|
||||
$(MH_E_DIR)/mh-alias.elc $(MH_E_DIR)/mh-show.elc: $(lisp)/net/goto-addr.elc
|
||||
|
||||
$(MH_E_DIR)/mh-comp.elc: $(lisp)/mail/sendmail.elc
|
||||
|
||||
$(MH_E_DIR)/mh-e.elc: $(MH_E_DIR)/mh-buffers.elc $(lisp)/gnus/gnus.elc \
|
||||
$(lisp)/cus-face.elc
|
||||
|
||||
$(MH_E_DIR)/mh-letter.elc: $(lisp)/gnus/mailcap.elc $(lisp)/gnus/mm-decode.elc \
|
||||
$(lisp)/gnus/mm-view.elc $(lisp)/gnus/mml.elc $(lisp)/gnus/message.elc
|
||||
|
||||
$(MH_E_DIR)/mh-print.elc: $(lisp)/ps-print.elc
|
||||
|
||||
$(MH_E_DIR)/mh-search.elc: $(lisp)/imenu.elc
|
||||
|
||||
$(MH_E_DIR)/mh-show.elc: $(lisp)/gnus/gnus-cite.elc
|
||||
|
||||
$(MH_E_DIR)/mh-speed.elc: $(lisp)/speedbar.elc $(lisp)/emacs-lisp/timer.elc
|
||||
|
||||
$(MH_E_DIR)/mh-tool-bar.elc: $(lisp)/tool-bar.elc
|
21
make-dist
21
make-dist
|
@ -338,7 +338,7 @@ files=`find lisp \( -name '*.el' -o -name '*.elc' -o -name 'ChangeLog*' \
|
|||
-o -name 'README' \)`
|
||||
|
||||
### Don't distribute site-init.el, site-load.el, or default.el.
|
||||
for file in lisp/Makefile.in lisp/makefile.w32-in $files; do
|
||||
for file in lisp/Makefile.in $files; do
|
||||
case $file in
|
||||
*/site-init*|*/site-load*|*/default*) continue ;;
|
||||
esac
|
||||
|
@ -347,7 +347,6 @@ done
|
|||
|
||||
echo "Making links to 'leim' and its subdirectories"
|
||||
(cd leim
|
||||
ln makefile.w32-in ../${tempdir}/leim
|
||||
ln ChangeLog.*[0-9] README ../${tempdir}/leim
|
||||
ln CXTERM-DIC/README CXTERM-DIC/*.tit ../${tempdir}/leim/CXTERM-DIC
|
||||
ln SKK-DIC/README SKK-DIC/SKK-JISYO.L ../${tempdir}/leim/SKK-DIC
|
||||
|
@ -377,7 +376,6 @@ echo "Making links to 'src'"
|
|||
ln [a-zA-Z]*.in ../${tempdir}/src
|
||||
ln deps.mk ../${tempdir}/src
|
||||
ln README ChangeLog.*[0-9] ../${tempdir}/src
|
||||
ln makefile.w32-in ../${tempdir}/src
|
||||
ln .gdbinit .dbxinit ../${tempdir}/src
|
||||
cd ../${tempdir}/src
|
||||
rm -f globals.h config.h epaths.h Makefile buildobj.h)
|
||||
|
@ -390,7 +388,7 @@ echo "Making links to 'lib'"
|
|||
(snippet_h=`(cd build-aux/snippet && ls *.h)`
|
||||
cd lib
|
||||
ln [a-zA-Z]*.[ch] ../${tempdir}/lib
|
||||
ln gnulib.mk Makefile.am Makefile.in makefile.w32-in ../${tempdir}/lib
|
||||
ln gnulib.mk Makefile.am Makefile.in ../${tempdir}/lib
|
||||
cd ../${tempdir}/lib
|
||||
script='/[*]/d; s/\.in\.h$/.h/'
|
||||
rm -f `(echo "$snippet_h"; ls *.in.h) | sed "$script"`)
|
||||
|
@ -400,7 +398,6 @@ echo "Making links to 'lib-src'"
|
|||
ln [a-zA-Z]*.[ch] ../${tempdir}/lib-src
|
||||
ln ChangeLog.*[0-9] Makefile.in README ../${tempdir}/lib-src
|
||||
ln rcs2log ../${tempdir}/lib-src
|
||||
ln makefile.w32-in ../${tempdir}/lib-src
|
||||
ln update-game-score.exe.manifest ../${tempdir}/lib-src)
|
||||
|
||||
echo "Making links to 'm4'"
|
||||
|
@ -410,11 +407,10 @@ echo "Making links to 'm4'"
|
|||
echo "Making links to 'nt'"
|
||||
(cd nt
|
||||
ln emacs-x86.manifest emacs-x64.manifest ../${tempdir}/nt
|
||||
ln config.nt emacs-src.tags ../${tempdir}/nt
|
||||
ln nmake.defs gmake.defs subdirs.el [a-z]*.bat [a-z]*.[ch] ../${tempdir}/nt
|
||||
ln subdirs.el [a-z]*.bat [a-z]*.[ch] ../${tempdir}/nt
|
||||
ln *.in gnulib.mk ../${tempdir}/nt
|
||||
ln mingw-cfg.site epaths.nt INSTALL.OLD ../${tempdir}/nt
|
||||
ln ChangeLog.*[0-9] INSTALL README README.W32 makefile.w32-in ../${tempdir}/nt)
|
||||
ln ChangeLog.*[0-9] INSTALL README README.W32 ../${tempdir}/nt)
|
||||
|
||||
echo "Making links to 'nt/inc' and its subdirectories"
|
||||
for f in `find nt/inc -type f -name '[a-z]*.h'`; do
|
||||
|
@ -500,23 +496,22 @@ ln `find info -type f -print` ${tempdir}/info
|
|||
|
||||
echo "Making links to 'doc/emacs'"
|
||||
(cd doc/emacs
|
||||
ln *.texi *.in makefile.w32-in ChangeLog.*[0-9] ../../${tempdir}/doc/emacs)
|
||||
ln *.texi *.in ChangeLog.*[0-9] ../../${tempdir}/doc/emacs)
|
||||
|
||||
echo "Making links to 'doc/misc'"
|
||||
(cd doc/misc
|
||||
ln *.texi *.tex *.in makefile.w32-in gnus-news.el ChangeLog.*[0-9] \
|
||||
ln *.texi *.tex *.in gnus-news.el ChangeLog.*[0-9] \
|
||||
../../${tempdir}/doc/misc)
|
||||
|
||||
echo "Making links to 'doc/lispref'"
|
||||
(cd doc/lispref
|
||||
ln *.texi *.in makefile.w32-in README ChangeLog.*[0-9] \
|
||||
../../${tempdir}/doc/lispref
|
||||
ln *.texi *.in README ChangeLog.*[0-9] ../../${tempdir}/doc/lispref
|
||||
ln spellfile ../../${tempdir}/doc/lispref
|
||||
ln two-volume.make two-volume-cross-refs.txt ../../${tempdir}/doc/lispref)
|
||||
|
||||
echo "Making links to 'doc/lispintro'"
|
||||
(cd doc/lispintro
|
||||
ln *.texi *.in makefile.w32-in *.eps *.pdf ../../${tempdir}/doc/lispintro
|
||||
ln *.texi *.in *.eps *.pdf ../../${tempdir}/doc/lispintro
|
||||
ln README ChangeLog.*[0-9] ../../${tempdir}/doc/lispintro
|
||||
cd ../../${tempdir}/doc/lispintro)
|
||||
|
||||
|
|
752
nt/INSTALL.OLD
752
nt/INSTALL.OLD
|
@ -1,752 +0,0 @@
|
|||
Building and Installing Emacs on Windows
|
||||
(from 95 to 7 and beyond)
|
||||
|
||||
Copyright (C) 2001-2015 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
*** This method of building Emacs is no longer supported. ***
|
||||
It may fail to produce a correctly working Emacs.
|
||||
Do not report bugs associated with this build method.
|
||||
Instead, follow the new instructions in INSTALL.
|
||||
|
||||
* For the impatient
|
||||
|
||||
Here are the concise instructions for configuring and building the
|
||||
native Windows binary of Emacs, for those who want to skip the
|
||||
complex explanations and ``just do it'':
|
||||
|
||||
Do not use this recipe with Cygwin. For building on Cygwin,
|
||||
use the normal installation instructions, ../INSTALL.
|
||||
|
||||
Do not use these instructions with MSYS environment. For building
|
||||
the native Windows binary with MinGW and MSYS, follow the
|
||||
instructions in the file INSTALL in this directory.
|
||||
|
||||
For building without MSYS, if you have a Cygwin or MSYS port of Bash
|
||||
on your Path, you will be better off removing it from PATH. (For
|
||||
details, search for "MSYS sh.exe" below.)
|
||||
|
||||
1. Change to the `nt' directory (the directory of this file):
|
||||
|
||||
cd nt
|
||||
|
||||
2. Run configure.bat.
|
||||
|
||||
2a.If you use MSVC, set up the build environment by running the
|
||||
SetEnv.cmd batch file from the appropriate SDK directory. (Skip
|
||||
this step if you are using MinGW.) For example:
|
||||
|
||||
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x86 /Debug
|
||||
|
||||
if you are going to compile a debug version, or
|
||||
|
||||
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x86 /Release
|
||||
|
||||
if you are going to compile an optimized version.
|
||||
|
||||
2b.From the COMMAND.COM/CMD.EXE command prompt type:
|
||||
|
||||
configure
|
||||
|
||||
From a Unixy shell prompt:
|
||||
|
||||
cmd /c configure.bat
|
||||
or
|
||||
command.com /c configure.bat
|
||||
|
||||
3. Run the Make utility suitable for your environment. If you build
|
||||
with the Microsoft's Visual C compiler:
|
||||
|
||||
nmake
|
||||
|
||||
For the development environments based on GNU GCC (MinGW, MSYS,
|
||||
Cygwin - but see notes about Cygwin make below), depending on how
|
||||
Make is called, it could be:
|
||||
|
||||
make
|
||||
or
|
||||
mingw32-make
|
||||
or
|
||||
gnumake
|
||||
or
|
||||
gmake
|
||||
|
||||
(If you are building from Bazaar, say "make bootstrap" or "nmake
|
||||
bootstrap" instead, and avoid using Cygwin make.)
|
||||
|
||||
With GNU Make, you can use the -j command-line option to have
|
||||
Make execute several commands at once, like this:
|
||||
|
||||
gmake -j 2
|
||||
|
||||
(With versions of GNU Make before 3.82, you need also set the
|
||||
XMFLAGS variable, like this:
|
||||
|
||||
gmake -j 2 XMFLAGS="-j 2"
|
||||
|
||||
The XMFLAGS variable overrides the default behavior of version
|
||||
3.82 and older of GNU Make on Windows, whereby recursive Make
|
||||
invocations reset the maximum number of simultaneous commands to
|
||||
1. The above command allows up to 4 simultaneous commands at
|
||||
once in the top-level Make, and up to 3 in each one of the
|
||||
recursive Make's.)
|
||||
|
||||
4. Generate the Info manuals (only if you are building out of Bazaar,
|
||||
and if you have makeinfo.exe installed):
|
||||
|
||||
make info
|
||||
|
||||
(change "make" to "nmake" if you use MSVC).
|
||||
|
||||
5. Install the produced binaries:
|
||||
|
||||
make install
|
||||
|
||||
That's it!
|
||||
|
||||
If these short instructions somehow fail, read the rest of this
|
||||
file.
|
||||
|
||||
* Preliminaries
|
||||
|
||||
If you want to build a Cygwin port of Emacs, use the instructions in
|
||||
the INSTALL file in the main Emacs directory (the parent of this
|
||||
directory). These instructions are for building a native Windows
|
||||
binary of Emacs.
|
||||
|
||||
If you used WinZip to unpack the distribution, we suggest to
|
||||
remove the files and unpack again with a different program!
|
||||
WinZip is known to create some subtle and hard to debug problems,
|
||||
such as converting files to DOS CR-LF format, not creating empty
|
||||
directories, etc. We suggest to use djtarnt.exe from the GNU FTP
|
||||
site. For modern formats, such as .tar.xz, we suggest bsdtar.exe
|
||||
from the libarchive package; its precompiled Windows binaries are
|
||||
available from this site:
|
||||
|
||||
http://sourceforge.net/projects/ezwinports/files/
|
||||
|
||||
In addition to this file, if you build a development snapshot, you
|
||||
should also read INSTALL.REPO in the parent directory.
|
||||
|
||||
* Supported development environments
|
||||
|
||||
To compile Emacs, you will need either Microsoft Visual C++ 2.0, or
|
||||
later and nmake, or a Windows port of GCC 2.95 or later with MinGW
|
||||
and Windows API support and a port of GNU Make. You can use the Cygwin
|
||||
ports of GCC, but Emacs requires the MinGW headers and libraries to
|
||||
build (latest versions of the Cygwin toolkit, at least since v1.3.3,
|
||||
include the MinGW headers and libraries as an integral part).
|
||||
|
||||
The rest of this file assumes you have a working development
|
||||
environment. If you just installed such an environment, try
|
||||
building a trivial C "Hello world" program, and see if it works. If
|
||||
it doesn't work, resolve that problem first! If you use Microsoft
|
||||
Visual Studio .NET 2003, don't forget to run the VCVARS32.BAT batch
|
||||
file from the `Bin' subdirectory of the directory where you have
|
||||
installed VS.NET. With other versions of MSVC, run the SetEnv.cmd
|
||||
batch file from the `Bin' subdirectory of the directory where you
|
||||
have the SDK installed.
|
||||
|
||||
If you use the MinGW port of GCC and GNU Make to build Emacs, there
|
||||
are some compatibility issues wrt Make and the shell that is run by
|
||||
Make, either the standard COMMAND.COM/CMD.EXE supplied with Windows
|
||||
or sh.exe, a port of a Unixy shell. For reference, below is a list
|
||||
of which builds of GNU Make are known to work or not, and whether
|
||||
they work in the presence and/or absence of sh.exe, the Cygwin port
|
||||
of Bash. Note that any version of Make that is compiled with Cygwin
|
||||
will only work with Cygwin tools, due to the use of Cygwin style
|
||||
paths. This means Cygwin Make is unsuitable for building parts of
|
||||
Emacs that need to invoke Emacs itself (leim and "make bootstrap",
|
||||
for example). Also see the Trouble-shooting section below if you
|
||||
decide to go ahead and use Cygwin make.
|
||||
|
||||
In addition, using 4NT or TCC as your shell is known to fail the
|
||||
build process, at least since 4NT version 3.01. Use CMD.EXE, the
|
||||
default Windows shell, instead. MSYS sh.exe also appears to cause
|
||||
various problems, e.g., it is known to cause failures in commands
|
||||
like "cmd /c FOO" in the Makefiles, because it thinks "/c" is a
|
||||
Unix-style file name that needs conversion to the Windows format.
|
||||
If you have MSYS installed, try "make SHELL=cmd.exe" to force the
|
||||
use of cmd.exe instead of the MSYS sh.exe.
|
||||
|
||||
sh exists no sh
|
||||
|
||||
cygwin b20.1 make (3.75): fails[1, 5] fails[2, 5]
|
||||
MSVC compiled gmake 3.77: okay okay
|
||||
MSVC compiled gmake 3.78.1: okay okay
|
||||
MSVC compiled gmake 3.79.1: okay okay
|
||||
mingw32/gcc-2.92.2 make (3.77): okay okay[4]
|
||||
cygwin compiled gmake 3.77: fails[1, 5] fails[2, 5]
|
||||
cygwin compiled make 3.78.1: fails[5] fails[2, 5]
|
||||
cygwin compiled make 3.79.1: fails[3, 5] fails[2?, 5]
|
||||
cygwin compiled make 3.80: okay[6] fails?[7]
|
||||
cygwin compiled make 3.81: fails fails?[7]
|
||||
mingw32 compiled make 3.79.1: okay okay
|
||||
mingw32 compiled make 3.80: okay okay[7]
|
||||
mingw32 compiled make 3.81: okay okay[8]
|
||||
|
||||
Notes:
|
||||
|
||||
[1] doesn't cope with makefiles with DOS line endings, so must mount
|
||||
emacs source with text!=binary.
|
||||
[2] fails when needs to invoke shell commands; okay invoking gcc etc.
|
||||
[3] requires LC_MESSAGES support to build; cannot build with early
|
||||
versions of Cygwin.
|
||||
[4] may fail on Windows 9X and Windows ME; if so, install Bash.
|
||||
[5] fails when building leim due to the use of cygwin style paths.
|
||||
May work if building emacs without leim.
|
||||
[6] need to uncomment 3 lines in nt/gmake.defs that invoke `cygpath'
|
||||
(look for "cygpath" near line 85 of gmake.defs).
|
||||
[7] not recommended; please report if you try this combination.
|
||||
[8] tested only on Windows XP.
|
||||
|
||||
Other compilers may work, but specific reports from people that have
|
||||
tried suggest that the Intel C compiler (for example) may produce an
|
||||
Emacs executable with strange filename completion behavior. Unless
|
||||
you would like to assist by finding and fixing the cause of any bugs
|
||||
like this, we recommend the use of the supported compilers mentioned
|
||||
in the previous paragraph.
|
||||
|
||||
You will also need a copy of the POSIX cp, rm and mv programs. These
|
||||
and other useful POSIX utilities can be obtained from one of several
|
||||
projects:
|
||||
|
||||
* http://gnuwin32.sourceforge.net/ ( GnuWin32 )
|
||||
* http://www.mingw.org/ ( MinGW )
|
||||
* http://www.cygwin.com/ ( Cygwin )
|
||||
* http://unxutils.sourceforge.net/ ( UnxUtils )
|
||||
|
||||
If you build Emacs on 16-bit versions of Windows (9X or ME), we
|
||||
suggest to install the Cygwin port of Bash. That is because the
|
||||
native Windows shell COMMAND.COM is too limited; the Emacs build
|
||||
procedure tries very hard to support even such limited shells, but
|
||||
as none of the Windows developers of Emacs work on Windows 9X, we
|
||||
cannot guarantee that it works without a more powerful shell.
|
||||
|
||||
Additional instructions and help for building Emacs on Windows can be
|
||||
found at the Emacs Wiki:
|
||||
|
||||
http://www.emacswiki.org/cgi-bin/wiki/WThirtyTwoInstallationKit
|
||||
|
||||
and on these URLs:
|
||||
|
||||
http://ourcomments.org/Emacs/w32-build-emacs.html
|
||||
http://derekslager.com/blog/posts/2007/01/emacs-hack-3-compile-emacs-from-cvs-on-windows.ashx
|
||||
|
||||
Both of those pages were written before Emacs switched from CVS to
|
||||
Bazaar, but the parts about building Emacs still apply in Bazaar.
|
||||
The second URL has instructions for building with MSVC, as well as
|
||||
with MinGW, while the first URL covers only MinGW, but has more
|
||||
details about it.
|
||||
|
||||
* Configuring
|
||||
|
||||
Configuration of Emacs is now handled by running configure.bat in the
|
||||
`nt' subdirectory. It will detect which compiler you have available,
|
||||
and generate makefiles accordingly. You can override the compiler
|
||||
detection, and control optimization and debug settings, by specifying
|
||||
options on the command line when invoking configure.
|
||||
|
||||
To configure Emacs to build with GCC or MSVC, whichever is available,
|
||||
simply change to the `nt' subdirectory and run `configure.bat' with no
|
||||
options. To see what options are available, run `configure --help'.
|
||||
Do NOT use the --no-debug option to configure.bat unless you are
|
||||
absolutely sure the produced binaries will never need to be run under
|
||||
a debugger.
|
||||
|
||||
Because of limitations of the stock Windows command shells, special
|
||||
care is needed to pass some characters in the arguments of the
|
||||
--cflags and --ldflags options. Backslashes should not be used in
|
||||
file names passed to the compiler and linker via these options. Use
|
||||
forward slashes instead. If the arguments to these two options
|
||||
include the `=' character, like when passing a -DFOO=bar preprocessor
|
||||
option, the argument with the `=' character should be enclosed in
|
||||
quotes, like this:
|
||||
|
||||
configure --cflags "-DFOO=bar"
|
||||
|
||||
Support for options that include the `=' character require "command
|
||||
extensions" to be enabled. (They are enabled by default, but your
|
||||
system administrator could have changed that. See "cmd /?" for
|
||||
details.) If command extensions are disabled, a warning message might
|
||||
be displayed informing you that "using parameters that include the =
|
||||
character by enclosing them in quotes will not be supported."
|
||||
|
||||
You may also use the --cflags and --ldflags options to pass
|
||||
additional parameters to the compiler and linker, respectively; they
|
||||
are frequently used to pass -I and -L flags to specify supplementary
|
||||
include and library directories. If a directory name includes
|
||||
spaces, you will need to enclose it in quotes, as follows
|
||||
-I"C:/Program Files/GnuTLS-2.10.1/include". Note that only the
|
||||
directory name is enclosed in quotes, not the entire argument. Also
|
||||
note that this functionality is only supported if command extensions
|
||||
are available. If command extensions are disabled and you attempt to
|
||||
use this functionality you may see the following warning message
|
||||
"Error in --cflags argument: ... Backslashes and quotes cannot be
|
||||
used with --cflags. Please use forward slashes for filenames and
|
||||
paths (e.g. when passing directories to -I)."
|
||||
|
||||
N.B. It is normal to see a few error messages output while configure
|
||||
is running, when gcc support is being tested. These cannot be
|
||||
suppressed because of limitations in the Windows 9X command.com shell.
|
||||
|
||||
You are encouraged to look at the file config.log which shows details
|
||||
for failed tests, after configure.bat finishes. Any unexplained failure
|
||||
should be investigated and perhaps reported as a bug (see the section
|
||||
about reporting bugs in the file README in this directory and in the
|
||||
Emacs manual).
|
||||
|
||||
* Optional image library support
|
||||
|
||||
In addition to its "native" image formats (pbm and xbm), Emacs can
|
||||
handle other image types: xpm, tiff, gif, png, jpeg and experimental
|
||||
support for svg.
|
||||
|
||||
To build Emacs with support for them, the corresponding headers must
|
||||
be in the include path when the configure script is run. This can
|
||||
be setup using environment variables, or by specifying --cflags
|
||||
-I... options on the command-line to configure.bat. The configure
|
||||
script will report whether it was able to detect the headers. If
|
||||
the results of this testing appear to be incorrect, please look for
|
||||
details in the file config.log: it will show the failed test
|
||||
programs and compiler error messages that should explain what is
|
||||
wrong. (Usually, any such failures happen because some headers are
|
||||
missing due to bad packaging of the image support libraries.)
|
||||
|
||||
Note that any file path passed to the compiler or linker must use
|
||||
forward slashes; using backslashes will cause compiler warnings or
|
||||
errors about unrecognized escape sequences.
|
||||
|
||||
To use the external image support, the DLLs implementing the
|
||||
functionality must be found when Emacs first needs them, either on the
|
||||
PATH, or in the same directory as emacs.exe. Failure to find a
|
||||
library is not an error; the associated image format will simply be
|
||||
unavailable. Note that once Emacs has determined that a library can
|
||||
not be found, there's no way to force it to try again, other than
|
||||
restarting. See the variable `dynamic-library-alist' to configure the
|
||||
expected names of the libraries.
|
||||
|
||||
Some image libraries have dependencies on one another, or on zlib.
|
||||
For example, tiff support depends on the jpeg library. If you did not
|
||||
compile the libraries yourself, you must make sure that any dependency
|
||||
is in the PATH or otherwise accessible and that the binaries are
|
||||
compatible (for example, that they were built with the same compiler).
|
||||
|
||||
Binaries for the image libraries (among many others) can be found at
|
||||
the GnuWin32 project. PNG, JPEG and TIFF libraries are also
|
||||
included with GTK, which is installed along with other Free Software
|
||||
that requires it. These are built with MinGW, but they can be used
|
||||
with both GCC/MinGW and MSVC builds of Emacs. See the info on
|
||||
http://ourcomments.org/Emacs/w32-build-emacs.html, under "How to Get
|
||||
Images Support", for more details about installing image support
|
||||
libraries. Note specifically that, due to some packaging snafus in
|
||||
the GnuWin32-supplied image libraries, you will need to download
|
||||
_source_ packages for some of the libraries in order to get the
|
||||
header files necessary for building Emacs with image support.
|
||||
|
||||
If GTK 2.0 is installed, addpm will arrange for its image libraries
|
||||
to be on the DLL search path for Emacs.
|
||||
|
||||
For PNG images, we recommend to use versions 1.4.x and later of
|
||||
libpng, because previous versions had security issues. You can find
|
||||
precompiled libraries and headers on the GTK download page for
|
||||
Windows (http://www.gtk.org/download/win32.php).
|
||||
|
||||
Versions 1.4.0 and later of libpng are binary incompatible with
|
||||
earlier versions, so Emacs will only look for libpng libraries which
|
||||
are compatible with the version it was compiled against. That
|
||||
version is given by the value of the Lisp variable `libpng-version';
|
||||
e.g., 10403 means version 1.4.3. The variable `dynamic-library-alist'
|
||||
is automatically set to name only those DLL names that are known to
|
||||
be compatible with the version given by `libpng-version'. If PNG
|
||||
support does not work for you even though you have the support DLL
|
||||
installed, check the name of the installed DLL against
|
||||
`dynamic-library-alist' and the value of `libpng-version', and
|
||||
download compatible DLLs if needed.
|
||||
|
||||
* Optional GnuTLS support
|
||||
|
||||
If configure.bat finds the gnutls/gnutls.h file in the include path,
|
||||
Emacs is built with GnuTLS support by default; to avoid that you can
|
||||
pass the argument --without-gnutls.
|
||||
|
||||
In order to support GnuTLS at runtime, a GnuTLS-enabled Emacs must
|
||||
be able to find the relevant DLLs during startup; failure to do so
|
||||
is not an error, but GnuTLS won't be available to the running
|
||||
session.
|
||||
|
||||
You can get pre-built binaries (including any required DLL and the
|
||||
header files) at http://sourceforge.net/projects/ezwinports/files/.
|
||||
|
||||
* Optional libxml2 support
|
||||
|
||||
If configure.bat finds the libxml/HTMLparser.h file in the include path,
|
||||
Emacs is built with libxml2 support by default; to avoid that you can
|
||||
pass the argument --without-libxml2.
|
||||
|
||||
In order to support libxml2 at runtime, a libxml2-enabled Emacs must
|
||||
be able to find the relevant DLLs during startup; failure to do so
|
||||
is not an error, but libxml2 features won't be available to the
|
||||
running session.
|
||||
|
||||
One place where you can get pre-built Windows binaries of libxml2
|
||||
(including any required DLL and the header files) is here:
|
||||
|
||||
http://sourceforge.net/projects/ezwinports/files/
|
||||
|
||||
To compile Emacs with libxml2 from that site, you will need to pass
|
||||
the "--cflags -I/path/to/include/libxml2" option to configure.bat,
|
||||
because libxml2 header files are installed in the include/libxml2
|
||||
subdirectory of the directory where you unzip the binary
|
||||
distribution. Other binary distributions might use other
|
||||
directories, although include/libxml2 is the canonical place where
|
||||
libxml2 headers are installed on Posix platforms.
|
||||
|
||||
You will also need to install the libiconv "development" tarball,
|
||||
because the libiconv headers need to be available to the compiler
|
||||
when you compile with libxml2 support. A MinGW port of libiconv can
|
||||
be found on the MinGW site:
|
||||
|
||||
http://sourceforge.net/projects/mingw/files/MinGW/Base/libiconv/
|
||||
|
||||
You need the libiconv-X.Y.Z-N-mingw32-dev.tar.lzma tarball from that
|
||||
site.
|
||||
|
||||
* Experimental SVG support
|
||||
|
||||
SVG support is currently experimental, and not built by default.
|
||||
Specify --with-svg and ensure you have all the dependencies in your
|
||||
include path. Unless you have built a minimalist librsvg yourself
|
||||
(untested), librsvg depends on a significant chunk of GTK+ to build,
|
||||
plus a few Gnome libraries, libxml2, libbz2 and zlib at runtime. The
|
||||
easiest way to obtain the dependencies required for building is to
|
||||
download a pre-bundled GTK+ development environment for Windows.
|
||||
GTK puts its header files all over the place, so you will need to
|
||||
run pkgconfig to list the include path you will need (either passed
|
||||
to configure.bat as --cflags options, or set in the environment).
|
||||
|
||||
To use librsvg at runtime, ensure that librsvg and its dependencies
|
||||
are on your PATH. If you didn't build librsvg yourself, you will
|
||||
need to check with where you downloaded it from for the
|
||||
dependencies, as there are different build options. If it is a
|
||||
short list, then it most likely only lists the immediate
|
||||
dependencies of librsvg, but the dependencies themselves have
|
||||
dependencies - so don't download individual libraries from GTK+,
|
||||
download and install the whole thing. If you think you've got all
|
||||
the dependencies and SVG support is still not working, check your
|
||||
PATH for other libraries that shadow the ones you downloaded.
|
||||
Libraries of the same name from different sources may not be
|
||||
compatible, this problem was encountered with libbzip2 from GnuWin32
|
||||
with libcroco from gnome.org.
|
||||
|
||||
If you can see etc/images/splash.svg, then you have managed to get
|
||||
SVG support working. Congratulations for making it through DLL hell
|
||||
to this point. You'll probably find that some SVG images crash
|
||||
Emacs. Problems have been observed in some images that contain
|
||||
text, they seem to be a problem in the Windows port of Pango, or
|
||||
maybe a problem with the way Cairo or librsvg is using it that
|
||||
doesn't show up on other platforms.
|
||||
|
||||
* Optional extra runtime checks
|
||||
|
||||
The configure.bat option --enable-checking builds Emacs with some
|
||||
optional extra runtime checks and assertions enabled. This may be
|
||||
useful for debugging.
|
||||
|
||||
* Optional extra libraries
|
||||
|
||||
You can pass --lib LIBNAME option to configure.bat to cause Emacs to
|
||||
link with the specified library. You can use this option more than once.
|
||||
|
||||
* Building
|
||||
|
||||
After running configure, simply run the appropriate `make' program for
|
||||
your compiler to build Emacs. For MSVC, this is nmake; for GCC, it is
|
||||
GNU make. (If you are building out of Bazaar, say "make bootstrap" or
|
||||
"nmake bootstrap" instead.)
|
||||
|
||||
As the files are compiled, you will see some warning messages
|
||||
declaring that some functions don't return a value, or that some data
|
||||
conversions will be lossy, etc. You can safely ignore these messages.
|
||||
The warnings may be fixed in the main FSF source at some point, but
|
||||
until then we will just live with them.
|
||||
|
||||
With GNU Make, you can use the -j command-line option to have Make
|
||||
execute several commands at once, like this:
|
||||
|
||||
gmake -j 4 XMFLAGS="-j 3"
|
||||
|
||||
The XMFLAGS variable overrides the default behavior of GNU Make on
|
||||
Windows, whereby recursive Make invocations reset the maximum number
|
||||
of simultaneous commands to 1. The above command allows up to 4
|
||||
simultaneous commands at once in the top-level Make, and up to 3 in
|
||||
each one of the recursive Make's; you can use other numbers of jobs,
|
||||
if you wish.
|
||||
|
||||
If you are building from Bazaar, the following commands will produce
|
||||
the Info manuals (which are not part of the Bazaar sources):
|
||||
|
||||
make info
|
||||
or
|
||||
nmake info
|
||||
|
||||
Note that you will need makeinfo.exe (from the GNU Texinfo package)
|
||||
in order for this command to succeed.
|
||||
|
||||
* Installing
|
||||
|
||||
To install Emacs after it has compiled, simply run `nmake install'
|
||||
or `make install', depending on which version of the Make utility
|
||||
do you have.
|
||||
|
||||
By default, Emacs will be installed in the location where it was
|
||||
built, but a different location can be specified either using the
|
||||
--prefix option to configure, or by setting INSTALL_DIR when running
|
||||
make, like so:
|
||||
|
||||
make install INSTALL_DIR=D:/emacs
|
||||
|
||||
(for `nmake', type "nmake install INSTALL_DIR=D:/emacs" instead).
|
||||
|
||||
The install process will run addpm to setup the registry entries, and
|
||||
to create a Start menu icon for Emacs.
|
||||
|
||||
* Make targets
|
||||
|
||||
The following make targets may be used by users building the source
|
||||
distribution, or users who have checked out of Bazaar after
|
||||
an initial bootstrapping.
|
||||
|
||||
make
|
||||
Builds Emacs from the available sources and pre-compiled lisp files.
|
||||
|
||||
make install
|
||||
Installs programs to the bin directory, and runs addpm to create
|
||||
Start Menu icons.
|
||||
|
||||
make clean
|
||||
Removes object and executable files produced by the build process in
|
||||
the current configuration. After make clean, you can rebuild with
|
||||
the same configuration using make.
|
||||
|
||||
make distclean
|
||||
In addition to the files removed by make clean, this also removes
|
||||
Makefiles and other generated files to get back to the state of a
|
||||
freshly unpacked source distribution. Note that this will not remove
|
||||
installed files, or the results of builds performed with different
|
||||
compiler or optimization options than the current configuration.
|
||||
After make distclean, it is necessary to run configure.bat followed
|
||||
by make to rebuild.
|
||||
|
||||
make cleanall
|
||||
Removes object and executable files that may have been created by
|
||||
previous builds with different configure options, in addition to
|
||||
the files produced by the current configuration.
|
||||
|
||||
make realclean
|
||||
Removes the installed files in the bin subdirectory in addition to
|
||||
the files removed by make cleanall.
|
||||
|
||||
make dist
|
||||
Builds Emacs from the available sources and pre-compiled lisp files.
|
||||
Packages Emacs binaries as full distribution and barebin distribution.
|
||||
|
||||
The following targets are intended only for use with the Bazaar sources.
|
||||
|
||||
make bootstrap
|
||||
Creates a temporary emacs binary with lisp source files and
|
||||
uses it to compile the lisp files. Once the lisp files are built,
|
||||
emacs is redumped with the compiled lisp.
|
||||
|
||||
make recompile
|
||||
Recompiles any changed lisp files after an update. This saves
|
||||
doing a full bootstrap after every update. If this or a subsequent
|
||||
make fail, you probably need to perform a full bootstrap, though
|
||||
running this target multiple times may eventually sort out the
|
||||
interdependencies.
|
||||
|
||||
make maintainer-clean
|
||||
Removes everything that can be recreated, including compiled lisp
|
||||
files, to get back to the state of a fresh Bazaar tree. After make
|
||||
maintainer-clean, it is necessary to run configure.bat and make
|
||||
bootstrap to rebuild. Occasionally it may be necessary to run this
|
||||
target after an update.
|
||||
|
||||
* Creating binary distributions
|
||||
|
||||
Binary distributions (full and barebin distributions) can be
|
||||
automatically built and packaged from source tarballs or a repository
|
||||
checkout.
|
||||
|
||||
When building Emacs binary distributions, the --distfiles argument
|
||||
to configure.bat specifies files to be included in the bin directory
|
||||
of the binary distributions. This is intended for libraries that are
|
||||
not built as part of Emacs, e.g. image libraries.
|
||||
|
||||
For example, specifying
|
||||
|
||||
--distfiles D:\distfiles\libXpm.dll
|
||||
|
||||
results in libXpm.dll being copied from D:\distfiles to the
|
||||
bin directory before packaging starts.
|
||||
|
||||
Multiple files can be specified using multiple --distfiles arguments:
|
||||
|
||||
--distfiles D:\distfiles\libXpm.dll --distfiles C:\jpeglib\jpeg.dll
|
||||
|
||||
For packaging the binary distributions, the 'dist' make target uses
|
||||
7-Zip (http://www.7-zip.org), which must be installed and available
|
||||
on the Windows Path.
|
||||
|
||||
|
||||
* Trouble-shooting
|
||||
|
||||
The main problems that are likely to be encountered when building
|
||||
Emacs stem from using an old version of GCC, or old MinGW or Windows API
|
||||
headers. Additionally, Cygwin ports of GNU make may require the Emacs
|
||||
source tree to be mounted with text!=binary, because the makefiles
|
||||
generated by configure.bat necessarily use DOS line endings. Also,
|
||||
Cygwin ports of make must run in UNIX mode, either by specifying
|
||||
--unix on the command line, or MAKE_MODE=UNIX in the environment.
|
||||
|
||||
When configure runs, it attempts to detect when GCC itself, or the
|
||||
headers it is using, are not suitable for building Emacs. GCC version
|
||||
2.95 or later is needed, because that is when the Windows port gained
|
||||
sufficient support for anonymous structs and unions to cope with some
|
||||
definitions from winnt.h that are used by addsection.c.
|
||||
Older versions of the Windows API headers that come with Cygwin and MinGW
|
||||
may be missing some definitions required by Emacs, or broken in other
|
||||
ways. In particular, uniscribe APIs were added to MinGW CVS only on
|
||||
2006-03-26, so releases from before then cannot be used.
|
||||
|
||||
When in doubt about correctness of what configure did, look at the file
|
||||
config.log, which shows all the failed test programs and compiler
|
||||
messages associated with the failures. If that doesn't give a clue,
|
||||
please report the problems, together with the relevant fragments from
|
||||
config.log, as bugs.
|
||||
|
||||
If configure succeeds, but make fails, install the Cygwin port of
|
||||
Bash, even if the table above indicates that Emacs should be able to
|
||||
build without sh.exe. (Some versions of Windows shells are too dumb
|
||||
for Makefile's used by Emacs.)
|
||||
|
||||
If you are using certain Cygwin builds of GCC, such as Cygwin version
|
||||
1.1.8, you may need to specify some extra compiler flags like so:
|
||||
|
||||
configure --with-gcc --cflags -mwin32 --cflags -D__MSVCRT__
|
||||
--ldflags -mwin32
|
||||
|
||||
However, the latest Cygwin versions, such as 1.3.3, don't need those
|
||||
switches; you can simply use "configure --with-gcc".
|
||||
|
||||
We will attempt to auto-detect the need for these flags in a future
|
||||
release.
|
||||
|
||||
* Debugging
|
||||
|
||||
You should be able to debug Emacs using the debugger that is
|
||||
appropriate for the compiler you used, namely DevStudio or Windbg if
|
||||
compiled with MSVC, or GDB if compiled with GCC. (GDB for Windows
|
||||
is available from the MinGW site, http://www.mingw.org/download.shtml.)
|
||||
|
||||
When Emacs aborts due to a fatal internal error, Emacs on Windows
|
||||
pops up an Emacs Abort Dialog asking you whether you want to debug
|
||||
Emacs or terminate it. If Emacs was built with MSVC, click YES
|
||||
twice, and Windbg or the DevStudio debugger will start up
|
||||
automatically. If Emacs was built with GCC, first start GDB and
|
||||
attach it to the Emacs process with the "gdb -p EMACS-PID" command,
|
||||
where EMACS-PID is the Emacs process ID (which you can see in the
|
||||
Windows Task Manager), type the "continue" command inside GDB, and
|
||||
only then click YES on the abort dialog. This will pass control to
|
||||
the debugger, and you will be able to debug the cause of the fatal
|
||||
error.
|
||||
|
||||
The single most important thing to find out when Emacs aborts or
|
||||
crashes is where did that happen in the Emacs code. This is called
|
||||
"backtrace".
|
||||
|
||||
Emacs on Windows uses more than one thread. When Emacs aborts due
|
||||
to a fatal error, the current thread may not be the application
|
||||
thread running Emacs code. Therefore, to produce a meaningful
|
||||
backtrace from a debugger, you need to instruct it to show the
|
||||
backtrace for every thread. With GDB, you do it like this:
|
||||
|
||||
(gdb) thread apply all backtrace
|
||||
|
||||
To run Emacs under a debugger to begin with, simply start it from
|
||||
the debugger. With GDB, chdir to the `src' directory (if you have
|
||||
the source tree) or to a directory with the `.gdbinit' file (if you
|
||||
don't have the source tree), and type these commands:
|
||||
|
||||
C:\whatever\src> gdb x:\path\to\emacs.exe
|
||||
(gdb) run <ARGUMENTS TO EMACS>
|
||||
|
||||
Thereafter, use Emacs as usual; you can minimize the debugger
|
||||
window, if you like. The debugger will take control if and when
|
||||
Emacs crashes.
|
||||
|
||||
Emacs functions implemented in C use a naming convention that reflects
|
||||
their names in lisp. The names of the C routines are the lisp names
|
||||
prefixed with 'F', and with dashes converted to underscores. For
|
||||
example, the function call-process is implemented in C by
|
||||
Fcall_process. Similarly, lisp variables are prefixed with 'V', again
|
||||
with dashes converted to underscores. These conventions enable you to
|
||||
easily set breakpoints or examine familiar lisp variables by name.
|
||||
|
||||
Since Emacs data is often in the form of a lisp object, and the
|
||||
Lisp_Object type is difficult to examine manually in a debugger,
|
||||
Emacs provides a helper routine called debug_print that prints out a
|
||||
readable representation of a Lisp_Object. If you are using GDB,
|
||||
there is a .gdbinit file in the src directory which provides
|
||||
definitions that are useful for examining lisp objects. Therefore,
|
||||
the following tips are mainly of interest when using MSVC.
|
||||
|
||||
The output from debug_print is sent to stderr, and to the debugger
|
||||
via the OutputDebugString routine. The output sent to stderr should
|
||||
be displayed in the console window that was opened when the
|
||||
emacs.exe executable was started. The output sent to the debugger
|
||||
should be displayed in its "Debug" output window.
|
||||
|
||||
When you are in the process of debugging Emacs and you would like to
|
||||
examine the contents of a Lisp_Object variable, pop up the QuickWatch
|
||||
window (QuickWatch has an eyeglass symbol on its button in the
|
||||
toolbar). In the text field at the top of the window, enter
|
||||
debug_print(<variable>) and hit return. For example, start and run
|
||||
Emacs in the debugger until it is waiting for user input. Then click
|
||||
on the Break button in the debugger to halt execution. Emacs should
|
||||
halt in ZwUserGetMessage waiting for an input event. Use the Call
|
||||
Stack window to select the procedure w32_msp_pump up the call stack
|
||||
(see below for why you have to do this). Open the QuickWatch window
|
||||
and enter debug_print(Vexec_path). Evaluating this expression will
|
||||
then print out the contents of the lisp variable exec-path.
|
||||
|
||||
If QuickWatch reports that the symbol is unknown, then check the call
|
||||
stack in the Call Stack window. If the selected frame in the call
|
||||
stack is not an Emacs procedure, then the debugger won't recognize
|
||||
Emacs symbols. Instead, select a frame that is inside an Emacs
|
||||
procedure and try using debug_print again.
|
||||
|
||||
If QuickWatch invokes debug_print but nothing happens, then check the
|
||||
thread that is selected in the debugger. If the selected thread is
|
||||
not the last thread to run (the "current" thread), then it cannot be
|
||||
used to execute debug_print. Use the Debug menu to select the current
|
||||
thread and try using debug_print again. Note that the debugger halts
|
||||
execution (e.g., due to a breakpoint) in the context of the current
|
||||
thread, so this should only be a problem if you've explicitly switched
|
||||
threads.
|
||||
|
||||
|
||||
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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
1847
nt/config.nt
1847
nt/config.nt
File diff suppressed because it is too large
Load diff
954
nt/configure.bat
954
nt/configure.bat
|
@ -1,6 +1,6 @@
|
|||
@echo off
|
||||
rem ----------------------------------------------------------------------
|
||||
rem Configuration script for MS Windows operating systems
|
||||
rem This was the old configuration script for MS Windows operating systems
|
||||
rem Copyright (C) 1999-2015 Free Software Foundation, Inc.
|
||||
|
||||
rem This file is part of GNU Emacs.
|
||||
|
@ -19,956 +19,8 @@ rem You should have received a copy of the GNU General Public License
|
|||
rem along with GNU Emacs. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
rem YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS:
|
||||
rem
|
||||
rem + MS Windows 95, NT or later
|
||||
rem + either MSVC 2.x or later, or gcc-2.95 or later (with GNU make 3.75
|
||||
rem or later) and the Mingw32 and Windows API headers and libraries.
|
||||
rem + Visual Studio 2005 is not supported at this time.
|
||||
rem
|
||||
rem For reference, here is a list of which builds of GNU make are known to
|
||||
rem work or not, and whether they work in the presence and/or absence of
|
||||
rem sh.exe.
|
||||
rem
|
||||
rem sh exists no sh
|
||||
rem cygwin b20.1 make (3.75): fails[1,5] fails[2,5]
|
||||
rem MSVC compiled gmake 3.77: okay okay
|
||||
rem MSVC compiled gmake 3.78.1: okay okay
|
||||
rem MSVC compiled gmake 3.79.1: okay okay
|
||||
rem mingw32/gcc-2.92.2 make (3.77): okay okay[4]
|
||||
rem cygwin compiled gmake 3.77: fails[1,5] fails[2,5]
|
||||
rem cygwin compiled gmake 3.78.1: fails[5] fails[2,5]
|
||||
rem cygwin compiled gmake 3.79.1: fails[3,5] fails[2?,5]
|
||||
rem cygwin compiled make 3.80: okay[6] fails?[7]
|
||||
rem cygwin compiled make 3.81: fails fails?[7]
|
||||
rem mingw32 compiled make 3.79.1: okay okay
|
||||
rem mingw32 compiled make 3.80: okay okay?[7]
|
||||
rem mingw32 compiled make 3.81: okay okay[8]
|
||||
rem
|
||||
rem [1] doesn't cope with makefiles with DOS line endings, so must mount
|
||||
rem emacs source with text!=binary.
|
||||
rem [2] fails when needs to invoke shell commands; okay invoking gcc etc.
|
||||
rem [3] requires LC_MESSAGES support to build; cannot build with early
|
||||
rem versions of cygwin.
|
||||
rem [4] may fail on Windows 9X and Windows ME; if so, install Bash.
|
||||
rem [5] fails when building leim due to the use of cygwin style paths.
|
||||
rem May work if building emacs without leim.
|
||||
rem [6] need to uncomment 3 lines in nt/gmake.defs that invoke `cygpath';
|
||||
rem look for "cygpath" near line 85 of gmake.defs.
|
||||
rem [7] not recommended; please report if you try this combination.
|
||||
rem [8] tested only on Windows XP.
|
||||
rem
|
||||
echo ****************************************************************
|
||||
echo *** THIS METHOD OF BUILDING EMACS IS NO LONGER SUPPORTED. **
|
||||
echo *** INSTEAD, FOLLOW THE INSTRUCTIONS FROM INSTALL. **
|
||||
echo *** INSTEAD, FOLLOW THE INSTRUCTIONS IN THE FILE INSTALL. **
|
||||
echo *** IN THE SAME DIRECTORY AS THIS BATCH FILE. **
|
||||
echo ****************************************************************
|
||||
:confirm_continue
|
||||
set /p answer=Continue running this script at your own risks ? (Y/N)
|
||||
if x%answer% == xy (goto confirm_continue_y)
|
||||
if x%answer% == xY (goto confirm_continue_y)
|
||||
if x%answer% == xn (goto end)
|
||||
if x%answer% == xN (goto end)
|
||||
echo Please answer by Y or N
|
||||
goto confirm_continue
|
||||
|
||||
:confirm_continue_y
|
||||
if exist config.log del config.log
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
rem See if the environment is large enough. We need 43 (?) bytes.
|
||||
set $foo$=123456789_123456789_123456789_123456789_123
|
||||
if not "%$foo$%" == "123456789_123456789_123456789_123456789_123" goto SmallEnv
|
||||
set $foo$=
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
rem Make sure we are running in the nt subdir
|
||||
if exist configure.bat goto start
|
||||
echo You must run configure from the nt subdirectory.
|
||||
goto end
|
||||
|
||||
:start
|
||||
rem ----------------------------------------------------------------------
|
||||
rem Attempt to enable command extensions. Set use_extensions to 1 if
|
||||
rem they are available and 0 if they are not available.
|
||||
set use_extensions=1
|
||||
setlocal ENABLEEXTENSIONS
|
||||
if "%CMDEXTVERSION%" == "" set use_extensions=0
|
||||
if "%use_extensions%" == "1" goto afterext
|
||||
|
||||
echo. Command extensions are not available. Using parameters that include the =
|
||||
echo. character by enclosing them in quotes will not be supported.
|
||||
|
||||
:afterext
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
rem Default settings.
|
||||
set prefix=
|
||||
set nodebug=N
|
||||
set noopt=N
|
||||
set enablechecking=N
|
||||
set profile=N
|
||||
set nocygwin=N
|
||||
set COMPILER=
|
||||
set usercflags=
|
||||
set escusercflags=
|
||||
set docflags=
|
||||
set userldflags=
|
||||
set escuserldflags=
|
||||
set extrauserlibs=
|
||||
set doldflags=
|
||||
set doextralibs=
|
||||
set sep1=
|
||||
set sep2=
|
||||
set sep3=
|
||||
set sep4=
|
||||
set distfiles=
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
rem Handle arguments.
|
||||
:again
|
||||
if "%1" == "-h" goto usage
|
||||
if "%1" == "--help" goto usage
|
||||
if "%1" == "--prefix" goto setprefix
|
||||
if "%1" == "--with-gcc" goto withgcc
|
||||
if "%1" == "--with-msvc" goto withmsvc
|
||||
if "%1" == "--no-debug" goto nodebug
|
||||
if "%1" == "--no-opt" goto noopt
|
||||
if "%1" == "--enable-checking" goto enablechecking
|
||||
if "%1" == "--profile" goto profile
|
||||
if "%1" == "--no-cygwin" goto nocygwin
|
||||
if "%1" == "--cflags" goto usercflags
|
||||
if "%1" == "--ldflags" goto userldflags
|
||||
if "%1" == "--lib" goto extrauserlibs
|
||||
if "%1" == "--without-png" goto withoutpng
|
||||
if "%1" == "--without-jpeg" goto withoutjpeg
|
||||
if "%1" == "--without-gif" goto withoutgif
|
||||
if "%1" == "--without-tiff" goto withouttiff
|
||||
if "%1" == "--without-gnutls" goto withoutgnutls
|
||||
if "%1" == "--without-libxml2" goto withoutlibxml2
|
||||
if "%1" == "--without-xpm" goto withoutxpm
|
||||
if "%1" == "--with-svg" goto withsvg
|
||||
if "%1" == "--distfiles" goto distfiles
|
||||
if "%1" == "" goto checkutils
|
||||
|
||||
:usage
|
||||
echo Usage: configure [options]
|
||||
echo Options:
|
||||
echo. --prefix PREFIX install Emacs in directory PREFIX
|
||||
echo. --with-gcc use GCC to compile Emacs
|
||||
echo. --with-msvc use MSVC to compile Emacs
|
||||
echo. --no-debug exclude debug info from executables
|
||||
echo. --no-opt disable optimization
|
||||
echo. --enable-checking enable additional run-time checks
|
||||
echo. --profile enable profiling
|
||||
echo. --no-cygwin use -mno-cygwin option with GCC
|
||||
echo. --cflags FLAG pass FLAG to compiler
|
||||
echo. --ldflags FLAG pass FLAG to compiler when linking
|
||||
echo. --lib LIB link to extra library LIB
|
||||
echo. --without-png do not use PNG library even if it is installed
|
||||
echo. --without-jpeg do not use JPEG library even if it is installed
|
||||
echo. --without-gif do not use GIF library even if it is installed
|
||||
echo. --without-tiff do not use TIFF library even if it is installed
|
||||
echo. --without-xpm do not use XPM library even if it is installed
|
||||
echo. --without-gnutls do not use GnuTLS library even if it is installed
|
||||
echo. --without-libxml2 do not use libxml2 library even if it is installed
|
||||
echo. --with-svg use the RSVG library (experimental)
|
||||
echo. --distfiles path to files for make dist, e.g. libXpm.dll
|
||||
if "%use_extensions%" == "0" goto end
|
||||
echo.
|
||||
echo. The cflags and ldflags arguments support parameters that include the =
|
||||
echo. character. However, since the = character is normally treated as a
|
||||
echo. separator character you will need to enclose any parameter that includes
|
||||
echo. the = character in quotes. For example, to include
|
||||
echo. -DSITELOAD_PURESIZE_EXTRA=100000 as one of the cflags you would run
|
||||
echo. configure.bat as follows:
|
||||
echo. configure.bat --cflags "-DSITELOAD_PURESIZE_EXTRA=100000"
|
||||
echo.
|
||||
echo. Note that this capability of processing parameters that include the =
|
||||
echo. character depends on command extensions. This batch file attempts to
|
||||
echo. enable command extensions. If command extensions cannot be enabled, a
|
||||
echo. warning message will be displayed.
|
||||
echo.
|
||||
echo. IMPORTANT: This method of building Emacs for MS-Windows is deprecated,
|
||||
echo. and could be removed in a future version of Emacs. The preferred way
|
||||
echo to build Emacs for MS-Windows from now on is using the MSYS environment
|
||||
echo. and MinGW development tools. Please see nt/INSTALL for details.
|
||||
goto end
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:setprefix
|
||||
shift
|
||||
set prefix=%1
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:withgcc
|
||||
set COMPILER=gcc
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:withmsvc
|
||||
set COMPILER=cl
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:nodebug
|
||||
set nodebug=Y
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:noopt
|
||||
set noopt=Y
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:enablechecking
|
||||
set enablechecking=Y
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:profile
|
||||
set profile=Y
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:nocygwin
|
||||
set nocygwin=Y
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:usercflags
|
||||
if "%use_extensions%" == "1" goto ucflagex
|
||||
goto ucflagne
|
||||
|
||||
:ucflagex
|
||||
shift
|
||||
set usercflags=%usercflags%%sep1%%~1
|
||||
set escusercflags=%usercflags:"=\"%
|
||||
set sep1= %nothing%
|
||||
shift
|
||||
goto again
|
||||
|
||||
:ucflagne
|
||||
shift
|
||||
set usercflags=%usercflags%%sep1%%1
|
||||
set escusercflags=%usercflags%
|
||||
set sep1= %nothing%
|
||||
shift
|
||||
goto again
|
||||
|
||||
:extrauserlibs
|
||||
shift
|
||||
echo. extrauserlibs: %extrauserlibs%
|
||||
set extrauserlibs=%extrauserlibs%%sep4%%1
|
||||
set sep4= %nothing%
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:userldflags
|
||||
if "%use_extensions%" == "1" goto ulflagex
|
||||
goto ulflagne
|
||||
|
||||
:ulflagex
|
||||
shift
|
||||
set userldflags=%userldflags%%sep2%%~1
|
||||
set escuserldflags=%userldflags:"=\"%
|
||||
set sep2= %nothing%
|
||||
shift
|
||||
goto again
|
||||
|
||||
:ulflagne
|
||||
shift
|
||||
set userldflags=%userldflags%%sep2%%1
|
||||
set escuserldflags=%userldflags%
|
||||
set sep2= %nothing%
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:withoutpng
|
||||
set pngsupport=N
|
||||
set HAVE_PNG=
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:withoutjpeg
|
||||
set jpegsupport=N
|
||||
set HAVE_JPEG=
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:withoutgif
|
||||
set gifsupport=N
|
||||
set HAVE_GIF=
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:withoutgnutls
|
||||
set tlssupport=N
|
||||
set HAVE_GNUTLS=
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:withoutlibxml2
|
||||
set libxml2support=N
|
||||
set HAVE_LIBXML2=
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:withouttiff
|
||||
set tiffsupport=N
|
||||
set HAVE_TIFF=
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:withoutxpm
|
||||
set xpmsupport=N
|
||||
set HAVE_XPM=
|
||||
shift
|
||||
goto again
|
||||
|
||||
:withsvg
|
||||
shift
|
||||
set svgsupport=Y
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:distfiles
|
||||
set HAVE_DISTFILES=1
|
||||
shift
|
||||
set distfiles=%distfiles%%sep3%%1
|
||||
set sep3= %nothing%
|
||||
shift
|
||||
goto again
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
rem Check that necessary utilities (cp and rm) are present.
|
||||
|
||||
:checkutils
|
||||
echo Checking for 'cp'...
|
||||
cp configure.bat junk.bat
|
||||
if not exist junk.bat goto needcp
|
||||
echo Checking for 'rm'...
|
||||
rm junk.bat
|
||||
if exist junk.bat goto needrm
|
||||
goto checkcompiler
|
||||
|
||||
:needcp
|
||||
echo You need 'cp' (the Unix file copy program) to build Emacs.
|
||||
goto end
|
||||
|
||||
:needrm
|
||||
del junk.bat
|
||||
echo You need 'rm' (the Unix file delete program) to build Emacs.
|
||||
goto end
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
rem Auto-detect compiler if not specified, and validate GCC if chosen.
|
||||
|
||||
:checkcompiler
|
||||
if (%COMPILER%)==(cl) goto compilercheckdone
|
||||
if (%COMPILER%)==(gcc) goto checkgcc
|
||||
|
||||
echo Checking whether 'gcc' is available...
|
||||
echo main(){} >junk.c
|
||||
gcc -c junk.c
|
||||
if exist junk.o goto checkgcc
|
||||
|
||||
echo Checking whether 'cl' is available...
|
||||
cl -nologo -c junk.c
|
||||
if exist junk.obj goto clOK
|
||||
goto nocompiler
|
||||
|
||||
:checkgcc
|
||||
if exist junk.o del junk.o
|
||||
Rem WARNING -- COMMAND.COM on some systems only looks at the first
|
||||
Rem 8 characters of a label. So do NOT be tempted to change
|
||||
Rem chkapi* into something fancier like checkw32api
|
||||
Rem You HAVE been warned!
|
||||
if (%nocygwin%) == (Y) goto chkapiN
|
||||
echo Checking whether gcc requires '-mno-cygwin'...
|
||||
echo #include "cygwin/version.h" >junk.c
|
||||
echo main(){} >>junk.c
|
||||
echo gcc -c junk.c >>config.log
|
||||
gcc -c junk.c >>config.log 2>&1
|
||||
if not exist junk.o goto chkapi
|
||||
echo gcc -mno-cygwin -c junk.c >>config.log
|
||||
gcc -mno-cygwin -c junk.c >>config.log 2>&1
|
||||
if exist junk.o set nocygwin=Y
|
||||
|
||||
:chkapi
|
||||
echo The failed program was: >>config.log
|
||||
type junk.c >>config.log
|
||||
|
||||
:chkapiN
|
||||
rm -f junk.c junk.o
|
||||
rem ----------------------------------------------------------------------
|
||||
rem Older versions of the Windows API headers either don't have any of
|
||||
rem the IMAGE_xxx definitions (the headers that come with Cygwin b20.1
|
||||
rem are like this), or have a typo in the definition of
|
||||
rem IMAGE_FIRST_SECTION (the headers with gcc/mingw32 2.95 have this
|
||||
rem problem). The gcc/mingw32 2.95.2 headers are okay, as are distros
|
||||
rem of w32api-xxx.zip from Anders Norlander since 1999-11-18 at least.
|
||||
rem Beginning with Emacs 23, we need usp10.h.
|
||||
rem
|
||||
echo Checking whether Windows API headers are too old...
|
||||
echo #include "windows.h" >junk.c
|
||||
echo #include "usp10.h" >>junk.c
|
||||
echo void test(PIMAGE_NT_HEADERS pHeader) >>junk.c
|
||||
echo {PIMAGE_SECTION_HEADER pSection = IMAGE_FIRST_SECTION(pHeader);} >>junk.c
|
||||
if (%nocygwin%) == (Y) goto chkapi1
|
||||
set cf=%usercflags%
|
||||
goto chkapi2
|
||||
|
||||
:chkapi1
|
||||
set cf=%usercflags% -mno-cygwin
|
||||
|
||||
:chkapi2
|
||||
echo on
|
||||
gcc %cf% -c junk.c
|
||||
@echo off
|
||||
@echo gcc %cf% -c junk.c >>config.log
|
||||
gcc %cf% -c junk.c >>config.log 2>&1
|
||||
set cf=
|
||||
if exist junk.o goto chkuser
|
||||
echo The failed program was: >>config.log
|
||||
type junk.c >>config.log
|
||||
goto nocompiler
|
||||
|
||||
:chkuser
|
||||
rm -f junk.o
|
||||
echo int main (int argc, char *argv[]) {>junk.c
|
||||
echo char *usercflags = "%escusercflags%";>>junk.c
|
||||
echo }>>junk.c
|
||||
echo gcc -Werror -c junk.c >>config.log
|
||||
gcc -Werror -c junk.c >>config.log 2>&1
|
||||
if exist junk.o goto gccOk
|
||||
echo.
|
||||
echo Error in --cflags argument: %usercflags%
|
||||
echo Backslashes and quotes cannot be used with --cflags. Please use forward
|
||||
echo slashes for filenames and paths (e.g. when passing directories to -I).
|
||||
rm -f junk.c
|
||||
goto end
|
||||
|
||||
:nocompiler
|
||||
echo.
|
||||
echo Configure failed.
|
||||
echo To configure Emacs for Windows, you need to have either
|
||||
echo gcc-2.95 or later with Mingw32 and the Windows API headers,
|
||||
echo or MSVC 2.x or later.
|
||||
del junk.c
|
||||
goto end
|
||||
|
||||
:gccOk
|
||||
set COMPILER=gcc
|
||||
echo Using 'gcc'
|
||||
rm -f junk.c junk.o
|
||||
Rem It is not clear what GCC version began supporting -mtune
|
||||
Rem and pentium4 on x86, so check this explicitly.
|
||||
echo main(){} >junk.c
|
||||
echo gcc -c -O2 -mtune=pentium4 junk.c >>config.log
|
||||
gcc -c -O2 -mtune=pentium4 junk.c >>config.log 2>&1
|
||||
if not errorlevel 1 goto gccMtuneOk
|
||||
echo The failed program was: >>config.log
|
||||
type junk.c >>config.log
|
||||
set mf=-mcpu=i686
|
||||
rm -f junk.c junk.o
|
||||
goto gccdebug
|
||||
|
||||
:gccMtuneOk
|
||||
echo GCC supports -mtune=pentium4 >>config.log
|
||||
set mf=-mtune=pentium4
|
||||
rm -f junk.c junk.o
|
||||
|
||||
:gccdebug
|
||||
rem Check for DWARF-2 debug info support, else default to stabs
|
||||
echo main(){} >junk.c
|
||||
echo gcc -c -gdwarf-2 -g3 junk.c >>config.log
|
||||
gcc -c -gdwarf-2 -g3 junk.c >>config.log 2>&1
|
||||
if not errorlevel 1 goto gccdwarf
|
||||
echo The failed program was: >>config.log
|
||||
type junk.c >>config.log
|
||||
set dbginfo=-gstabs+
|
||||
rm -f junk.c junk.o
|
||||
goto compilercheckdone
|
||||
|
||||
:gccdwarf
|
||||
echo GCC supports DWARF-2 >>config.log
|
||||
set dbginfo=-gdwarf-2 -g3
|
||||
rm -f junk.c junk.o
|
||||
goto compilercheckdone
|
||||
|
||||
:clOk
|
||||
set COMPILER=cl
|
||||
rm -f junk.c junk.obj
|
||||
echo Using 'MSVC'
|
||||
|
||||
:compilercheckdone
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
rem Check for external image libraries. Since they are loaded
|
||||
rem dynamically, the libraries themselves do not need to be present
|
||||
rem at compile time, but the header files are required.
|
||||
|
||||
set mingwflag=
|
||||
|
||||
if (%nocygwin%) == (N) goto flagsOK
|
||||
set mingwflag=-mno-cygwin
|
||||
|
||||
:flagsOK
|
||||
|
||||
if (%pngsupport%) == (N) goto pngDone
|
||||
|
||||
echo Checking for libpng...
|
||||
echo #include "png.h" >junk.c
|
||||
echo main (){} >>junk.c
|
||||
rem -o option is ignored with cl, but allows result to be consistent.
|
||||
echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
|
||||
%COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
|
||||
if exist junk.obj goto havePng
|
||||
|
||||
echo ...png.h not found, building without PNG support.
|
||||
echo The failed program was: >>config.log
|
||||
type junk.c >>config.log
|
||||
set HAVE_PNG=
|
||||
goto :pngDone
|
||||
|
||||
:havePng
|
||||
echo ...PNG header available, building with PNG support.
|
||||
set HAVE_PNG=1
|
||||
|
||||
:pngDone
|
||||
rm -f junk.c junk.obj
|
||||
|
||||
if (%tlssupport%) == (N) goto tlsDone
|
||||
|
||||
rem this is a copy of the PNG detection
|
||||
echo Checking for libgnutls...
|
||||
echo #include "gnutls/gnutls.h" >junk.c
|
||||
echo main (){} >>junk.c
|
||||
rem -o option is ignored with cl, but allows result to be consistent.
|
||||
echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
|
||||
%COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
|
||||
if exist junk.obj goto haveTls
|
||||
|
||||
echo ...gnutls.h not found, building without TLS support.
|
||||
echo The failed program was: >>config.log
|
||||
type junk.c >>config.log
|
||||
set HAVE_GNUTLS=
|
||||
goto :tlsDone
|
||||
|
||||
:haveTls
|
||||
echo ...GnuTLS header available, building with GnuTLS support.
|
||||
set HAVE_GNUTLS=1
|
||||
|
||||
:tlsDone
|
||||
rm -f junk.c junk.obj
|
||||
|
||||
if (%libxml2support%) == (N) goto xml2Done
|
||||
|
||||
echo Checking for libxml2....
|
||||
echo #include "libxml/HTMLparser.h" >junk.c
|
||||
echo main(){} >>junk.c
|
||||
echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
|
||||
%COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
|
||||
if exist junk.obj goto havelibxml2
|
||||
|
||||
echo ...libxml/HTMLparser.h not found, building without libxml2 support
|
||||
echo The failed program was: >>config.log
|
||||
type junk.c >>config.log
|
||||
set HAVE_LIBXML2=
|
||||
goto xml2Done
|
||||
|
||||
:havelibxml2
|
||||
echo ...libxml2 header available, building with libxml2 support
|
||||
set HAVE_LIBXML2=1
|
||||
|
||||
:xml2Done
|
||||
rm -f junk.c junk.obj
|
||||
|
||||
if (%jpegsupport%) == (N) goto jpegDone
|
||||
|
||||
echo Checking for jpeg-6b...
|
||||
echo #include "jconfig.h" >junk.c
|
||||
echo main (){} >>junk.c
|
||||
rem -o option is ignored with cl, but allows result to be consistent.
|
||||
echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
|
||||
%COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
|
||||
if exist junk.obj goto haveJpeg
|
||||
|
||||
echo ...jconfig.h not found, building without JPEG support.
|
||||
echo The failed program was: >>config.log
|
||||
type junk.c >>config.log
|
||||
set HAVE_JPEG=
|
||||
goto :jpegDone
|
||||
|
||||
:haveJpeg
|
||||
echo ...JPEG header available, building with JPEG support.
|
||||
set HAVE_JPEG=1
|
||||
|
||||
:jpegDone
|
||||
rm -f junk.c junk.obj
|
||||
|
||||
if (%gifsupport%) == (N) goto gifDone
|
||||
|
||||
echo Checking for libgif...
|
||||
rem giflib-5.0.0 needs size_t defined before gif_lib.h is included
|
||||
rem redirection characters need to be protected from the shell
|
||||
echo #include ^<stddef.h^> >junk.c
|
||||
echo #include "gif_lib.h" >>junk.c
|
||||
echo main (){} >>junk.c
|
||||
rem -o option is ignored with cl, but allows result to be consistent.
|
||||
echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
|
||||
%COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
|
||||
if exist junk.obj goto haveGif
|
||||
|
||||
echo ...gif_lib.h not found, building without GIF support.
|
||||
echo The failed program was: >>config.log
|
||||
type junk.c >>config.log
|
||||
set HAVE_GIF=
|
||||
goto :gifDone
|
||||
|
||||
:haveGif
|
||||
echo ...GIF header available, building with GIF support.
|
||||
set HAVE_GIF=1
|
||||
|
||||
:gifDone
|
||||
rm -f junk.c junk.obj
|
||||
|
||||
if (%tiffsupport%) == (N) goto tiffDone
|
||||
|
||||
echo Checking for tiff...
|
||||
echo #include "tiffio.h" >junk.c
|
||||
echo main (){} >>junk.c
|
||||
rem -o option is ignored with cl, but allows result to be consistent.
|
||||
echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
|
||||
%COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
|
||||
if exist junk.obj goto haveTiff
|
||||
|
||||
echo ...tiffio.h not found, building without TIFF support.
|
||||
echo The failed program was: >>config.log
|
||||
type junk.c >>config.log
|
||||
set HAVE_TIFF=
|
||||
goto :tiffDone
|
||||
|
||||
:haveTiff
|
||||
echo ...TIFF header available, building with TIFF support.
|
||||
set HAVE_TIFF=1
|
||||
|
||||
:tiffDone
|
||||
rm -f junk.c junk.obj
|
||||
|
||||
if (%xpmsupport%) == (N) goto xpmDone
|
||||
|
||||
echo Checking for libXpm...
|
||||
echo #define FOR_MSW 1 >junk.c
|
||||
echo #include "X11/xpm.h" >>junk.c
|
||||
echo main (){} >>junk.c
|
||||
rem -o option is ignored with cl, but allows result to be consistent.
|
||||
echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
|
||||
%COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
|
||||
if exist junk.obj goto haveXpm
|
||||
|
||||
echo ...X11/xpm.h not found, building without XPM support.
|
||||
echo The failed program was: >>config.log
|
||||
type junk.c >>config.log
|
||||
set HAVE_XPM=
|
||||
goto :xpmDone
|
||||
|
||||
:haveXpm
|
||||
echo ...XPM header available, building with XPM support.
|
||||
set HAVE_XPM=1
|
||||
|
||||
:xpmDone
|
||||
rm -f junk.c junk.obj
|
||||
|
||||
if not (%svgsupport%) == (Y) goto :svgDone
|
||||
echo Checking for librsvg...
|
||||
echo #include "librsvg/rsvg.h" >junk.c
|
||||
echo main (){} >>junk.c
|
||||
rem -o option is ignored with cl, but allows result to be consistent.
|
||||
echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
|
||||
%COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
|
||||
if exist junk.obj goto haveSvg
|
||||
|
||||
echo ...librsvg/rsvg.h or dependencies not found, building without SVG support.
|
||||
echo The failed program was: >>config.log
|
||||
type junk.c >>config.log
|
||||
set HAVE_RSVG=
|
||||
goto :svgDone
|
||||
|
||||
:haveSvg
|
||||
echo ...librsvg header available, building with SVG support (EXPERIMENTAL).
|
||||
set HAVE_RSVG=1
|
||||
|
||||
:svgDone
|
||||
rm -f junk.c junk.obj junk.err junk.out
|
||||
|
||||
rem Any distfiles provided for building distribution? If no, we're done.
|
||||
if "(%HAVE_DISTFILES%)"=="()" goto :distFilesDone
|
||||
|
||||
rem Any arguments to --distfiles specified? If no, we're done.
|
||||
if not "%distfiles%"=="" goto :checkDistFiles
|
||||
set distFilesOk=0
|
||||
echo No arguments specified for option --distfiles!
|
||||
goto distfilesDone
|
||||
|
||||
:checkDistFiles
|
||||
echo Checking for distfiles...
|
||||
rem Check if all specified distfiles exist
|
||||
set fileNotFound=
|
||||
for %%d in (%distfiles%) do if not exist %%d set fileNotFound=%%d
|
||||
if not "%fileNotFound%"=="" goto distFilesNotFound
|
||||
|
||||
set distFilesOK=1
|
||||
echo ...all distfiles found.
|
||||
goto :distFilesDone
|
||||
|
||||
:distFilesNotFound
|
||||
set distFilesOk=0
|
||||
echo ...%fileNotFound% not found.
|
||||
set distfiles=
|
||||
goto :distfilesDone
|
||||
|
||||
:distFilesDone
|
||||
set fileNotFound=
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
:genmakefiles
|
||||
echo Generating makefiles
|
||||
if %COMPILER% == gcc set MAKECMD=gmake
|
||||
if %COMPILER% == cl set MAKECMD=nmake
|
||||
|
||||
rem Pass on chosen settings to makefiles.
|
||||
rem
|
||||
rem The weird place we put the redirection is to make sure no extra
|
||||
rem whitespace winds up at the end of the Make variables, since some
|
||||
rem variables, e.g. INSTALL_DIR, cannot stand that. Yes, echo will
|
||||
rem write the blanks between the end of command arguments and the
|
||||
rem redirection symbol to the file. OTOH, we cannot put the
|
||||
rem redirection immediately after the last character of the command,
|
||||
rem because environment variable expansion can yield a digit there,
|
||||
rem which will then be misinterpreted as the file descriptor to
|
||||
rem redirect...
|
||||
echo # Start of settings from configure.bat >config.settings
|
||||
>>config.settings echo COMPILER=%COMPILER%
|
||||
if not "(%mf%)" == "()" >>config.settings echo MCPU_FLAG=%mf%
|
||||
if not "(%dbginfo%)" == "()" >>config.settings echo DEBUG_INFO=%dbginfo%
|
||||
if (%nodebug%) == (Y) >>config.settings echo NODEBUG=1
|
||||
if (%noopt%) == (Y) >>config.settings echo NOOPT=1
|
||||
if (%profile%) == (Y) >>config.settings echo PROFILE=1
|
||||
if (%nocygwin%) == (Y) >>config.settings echo NOCYGWIN=1
|
||||
if not "(%prefix%)" == "()" >>config.settings echo INSTALL_DIR=%prefix%
|
||||
if not "(%distfiles%)" == "()" >>config.settings echo DIST_FILES=%distfiles%
|
||||
rem We go thru docflags because usercflags could be "-DFOO=bar" -something
|
||||
rem and the if command cannot cope with this
|
||||
for %%v in (%usercflags%) do if not (%%v)==() set docflags=Y
|
||||
if (%docflags%)==(Y) >>config.settings echo USER_CFLAGS=%usercflags%
|
||||
if (%docflags%)==(Y) >>config.settings echo ESC_USER_CFLAGS=%escusercflags%
|
||||
for %%v in (%userldflags%) do if not (%%v)==() set doldflags=Y
|
||||
if (%doldflags%)==(Y) >>config.settings echo USER_LDFLAGS=%userldflags%
|
||||
for %%v in (%extrauserlibs%) do if not (%%v)==() set doextralibs=Y
|
||||
if (%doextralibs%)==(Y) >>config.settings echo USER_LIBS=%extrauserlibs%
|
||||
echo # End of settings from configure.bat>>config.settings
|
||||
echo. >>config.settings
|
||||
|
||||
copy config.nt config.tmp
|
||||
echo. >>config.tmp
|
||||
echo /* Start of settings from configure.bat. */ >>config.tmp
|
||||
rem We write USER_CFLAGS and USER_LDFLAGS starting with a space to simplify
|
||||
rem processing of compiler options in w32.c:get_emacs_configuration_options
|
||||
if (%docflags%) == (Y) echo #define USER_CFLAGS " %escusercflags%" >>config.tmp
|
||||
if (%doldflags%) == (Y) echo #define USER_LDFLAGS " %escuserldflags%" >>config.tmp
|
||||
if (%profile%) == (Y) echo #define PROFILING 1 >>config.tmp
|
||||
if (%enablechecking%) == (Y) echo #define ENABLE_CHECKING 1 >>config.tmp
|
||||
if not "(%HAVE_PNG%)" == "()" echo #define HAVE_PNG 1 >>config.tmp
|
||||
if not "(%HAVE_GNUTLS%)" == "()" echo #define HAVE_GNUTLS 1 >>config.tmp
|
||||
if not "(%HAVE_LIBXML2%)" == "()" echo #define HAVE_LIBXML2 1 >>config.tmp
|
||||
if not "(%HAVE_JPEG%)" == "()" echo #define HAVE_JPEG 1 >>config.tmp
|
||||
if not "(%HAVE_GIF%)" == "()" echo #define HAVE_GIF 1 >>config.tmp
|
||||
if not "(%HAVE_TIFF%)" == "()" echo #define HAVE_TIFF 1 >>config.tmp
|
||||
if not "(%HAVE_XPM%)" == "()" echo #define HAVE_XPM 1 >>config.tmp
|
||||
if "(%HAVE_RSVG%)" == "(1)" echo #define HAVE_RSVG 1 >>config.tmp
|
||||
|
||||
echo /* End of settings from configure.bat. */ >>config.tmp
|
||||
|
||||
Rem See if fc.exe returns a meaningful exit status. If it does, we
|
||||
Rem might as well avoid unnecessary overwriting of config.h and epaths.h,
|
||||
Rem since this forces recompilation of every source file.
|
||||
if exist foo.bar del foo.bar
|
||||
fc /b foo.bar foo.bar >nul 2>&1
|
||||
if not errorlevel 2 goto doCopy
|
||||
fc /b config.tmp ..\src\config.h >nul 2>&1
|
||||
if errorlevel 1 goto doCopy
|
||||
fc /b paths.h ..\src\epaths.h >nul 2>&1
|
||||
if not errorlevel 1 goto dontCopy
|
||||
|
||||
:doCopy
|
||||
copy config.tmp ..\src\config.h
|
||||
copy paths.h ..\src\epaths.h
|
||||
|
||||
:dontCopy
|
||||
if exist config.tmp del config.tmp
|
||||
copy /b config.settings+%MAKECMD%.defs+..\nt\makefile.w32-in ..\nt\makefile
|
||||
if exist ..\admin\unidata copy /b config.settings+%MAKECMD%.defs+..\admin\unidata\makefile.w32-in ..\admin\unidata\makefile
|
||||
copy /b config.settings+%MAKECMD%.defs+..\lib-src\makefile.w32-in ..\lib-src\makefile
|
||||
copy /b config.settings+%MAKECMD%.defs+..\lib\makefile.w32-in ..\lib\makefile
|
||||
copy /b config.settings+%MAKECMD%.defs+..\src\makefile.w32-in ..\src\makefile
|
||||
copy /b config.settings+%MAKECMD%.defs+..\doc\emacs\makefile.w32-in ..\doc\emacs\makefile
|
||||
copy /b config.settings+%MAKECMD%.defs+..\doc\misc\makefile.w32-in ..\doc\misc\makefile
|
||||
copy /b config.settings+%MAKECMD%.defs+..\doc\lispref\makefile.w32-in ..\doc\lispref\makefile
|
||||
copy /b config.settings+%MAKECMD%.defs+..\doc\lispintro\makefile.w32-in ..\doc\lispintro\makefile
|
||||
if exist ..\lisp\makefile rm -f ../lisp/[Mm]akefile
|
||||
copy /b config.settings+%MAKECMD%.defs+..\lisp\makefile.w32-in ..\lisp\makefile
|
||||
rem Use the default (no-op) Makefile.in if the nt version is not present.
|
||||
if exist ..\leim\makefile.w32-in copy /b config.settings+%MAKECMD%.defs+..\leim\makefile.w32-in ..\leim\makefile
|
||||
if not exist ..\leim\makefile.w32-in copy /b config.settings+%MAKECMD%.defs+..\leim\Makefile.in ..\leim\makefile
|
||||
del config.settings
|
||||
|
||||
Rem Some people use WinZip which doesn't create empty directories!
|
||||
if not exist ..\site-lisp\nul mkdir ..\site-lisp\
|
||||
Rem Update subdirs.el only if it is different or fc.exe doesn't work.
|
||||
if exist foo.bar del foo.bar
|
||||
fc /b foo.bar foo.bar >nul 2>&1
|
||||
if not errorlevel 2 goto doUpdateSubdirs
|
||||
fc /b subdirs.el ..\site-lisp\subdirs.el >nul 2>&1
|
||||
if not errorlevel 1 goto dontUpdateSubdirs
|
||||
|
||||
:doUpdateSubdirs
|
||||
if exist ..\site-lisp\subdirs.el del ..\site-lisp\subdirs.el
|
||||
copy subdirs.el ..\site-lisp\subdirs.el
|
||||
|
||||
:dontUpdateSubdirs
|
||||
echo.
|
||||
|
||||
rem check that we have all the libraries we need.
|
||||
set libsOK=1
|
||||
|
||||
if not "(%HAVE_XPM%)" == "()" goto checkpng
|
||||
if (%xpmsupport%) == (N) goto checkpng
|
||||
set libsOK=0
|
||||
echo XPM support is missing. It is required for color icons in the toolbar.
|
||||
echo Install libXpm development files or use --without-xpm
|
||||
|
||||
:checkpng
|
||||
if not "(%HAVE_PNG%)" == "()" goto checkjpeg
|
||||
if (%pngsupport%) == (N) goto checkjpeg
|
||||
set libsOK=0
|
||||
echo PNG support is missing.
|
||||
echo Install libpng development files or use --without-png
|
||||
|
||||
:checkjpeg
|
||||
if not "(%HAVE_JPEG%)" == "()" goto checktiff
|
||||
if (%jpegsupport%) == (N) goto checktiff
|
||||
set libsOK=0
|
||||
echo JPEG support is missing.
|
||||
echo Install jpeg development files or use --without-jpeg
|
||||
|
||||
:checktiff
|
||||
if not "(%HAVE_TIFF%)" == "()" goto checkgif
|
||||
if (%tiffsupport%) == (N) goto checkgif
|
||||
set libsOK=0
|
||||
echo TIFF support is missing.
|
||||
echo Install libtiff development files or use --without-tiff
|
||||
|
||||
:checkgif
|
||||
if not "(%HAVE_GIF%)" == "()" goto checkdistfiles
|
||||
if (%gifsupport%) == (N) goto checkdistfiles
|
||||
set libsOK=0
|
||||
echo GIF support is missing.
|
||||
echo Install giflib or libungif development files or use --without-gif
|
||||
|
||||
:checkdistfiles
|
||||
if "(%HAVE_DISTFILES%)" == "()" goto donelibchecks
|
||||
if (%distFilesOk%) == (1) goto donelibchecks
|
||||
echo.
|
||||
echo Files specified with option --distfiles could not be found.
|
||||
echo Fix these issues before running make dist
|
||||
|
||||
:donelibchecks
|
||||
if (%libsOK%) == (1) goto success
|
||||
echo.
|
||||
echo Important libraries are missing. Fix these issues before running make.
|
||||
goto end
|
||||
|
||||
:success
|
||||
echo Emacs successfully configured.
|
||||
echo Emacs successfully configured. >>config.log
|
||||
if (%MAKECMD%) == (gmake) set MAKECMD=make
|
||||
echo Run `%MAKECMD%' to build, then run `%MAKECMD% install' to install.
|
||||
goto end
|
||||
|
||||
:SmallEnv
|
||||
echo Your environment size is too small. Please enlarge it and rerun configure.
|
||||
echo For example, type "command.com /e:2048" to have 2048 bytes available.
|
||||
set $foo$=
|
||||
|
||||
:end
|
||||
set prefix=
|
||||
set nodebug=
|
||||
set noopt=
|
||||
set enablechecking=
|
||||
set profile=
|
||||
set nocygwin=
|
||||
set COMPILER=
|
||||
set MAKECMD=
|
||||
set usercflags=
|
||||
set docflags=
|
||||
set userldflags=
|
||||
set doldflags=
|
||||
set mingwflag=
|
||||
set mf=
|
||||
set distfiles=
|
||||
set HAVE_DISTFILES=
|
||||
set distFilesOk=
|
||||
set pngsupport=
|
||||
set tlssupport=
|
||||
set libxml2support=
|
||||
set jpegsupport=
|
||||
set gifsupport=
|
||||
set tiffsupport=
|
||||
set xpmsupport=
|
||||
set svgsupport=
|
||||
set libsOK=
|
||||
set HAVE_GIF=
|
||||
set HAVE_JPEG=
|
||||
set HAVE_PNG=
|
||||
set HAVE_TIFF=
|
||||
set HAVE_XPM=
|
||||
set dbginfo=
|
||||
endlocal
|
||||
set use_extensions=
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
This file defines the regular expressions for etags to look for
|
||||
in the src directory. It is used by the w32 build to work around
|
||||
the annoyances of quoting command-line arguments with various
|
||||
w32 shell.
|
||||
|
||||
/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/
|
|
@ -1,43 +0,0 @@
|
|||
rem Hack to change/add environment variables in the makefiles for the
|
||||
rem Windows platform.
|
||||
|
||||
rem Copyright (C) 2003-2015 Free Software Foundation, Inc.
|
||||
|
||||
rem This file is part of GNU Emacs.
|
||||
|
||||
rem GNU Emacs is free software: you can redistribute it and/or modify
|
||||
rem it under the terms of the GNU General Public License as published by
|
||||
rem the Free Software Foundation, either version 3 of the License, or
|
||||
rem (at your option) any later version.
|
||||
|
||||
rem GNU Emacs is distributed in the hope that it will be useful,
|
||||
rem but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
rem GNU General Public License for more details.
|
||||
|
||||
rem You should have received a copy of the GNU General Public License
|
||||
rem along with GNU Emacs. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
|
||||
rem Usage:
|
||||
rem envadd "ENV1=VAL1" "ENV2=VAL2" ... /C <command line>
|
||||
rem
|
||||
rem The "/C" switch marks the end of environment variables, and the
|
||||
rem beginning of the command line.
|
||||
rem
|
||||
rem By Peter 'Luna' Runestig <peter@runestig.com> 2003
|
||||
|
||||
:Loop
|
||||
if .%1% == ./C goto EndLoop
|
||||
rem just to avoid an endless loop:
|
||||
if .%1% == . goto EndLoop
|
||||
set %1
|
||||
shift
|
||||
goto Loop
|
||||
:EndLoop
|
||||
|
||||
rem Eat the "/C"
|
||||
shift
|
||||
rem Now, run the command line
|
||||
%1 %2 %3 %4 %5 %6 %7 %8 %9
|
||||
|
333
nt/gmake.defs
333
nt/gmake.defs
|
@ -1,333 +0,0 @@
|
|||
# -*- Makefile -*- definition file for building GNU Emacs on Windows NT.
|
||||
# Copyright (C) 2000-2015 Free Software Foundation, Inc.
|
||||
|
||||
# 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Ensure 'all' is the default target
|
||||
all:
|
||||
|
||||
# NOTES
|
||||
#
|
||||
# I tried to force gmake to use the native shell for simplicity, by
|
||||
# setting SHELL as below, but this didn't work reliably because of
|
||||
# various case sensitivity niggles. Specifically, COMSPEC (which is in
|
||||
# fact usually spelled ComSpec on NT, to make life difficult) typically
|
||||
# references "cmd.exe" (on NT) when the file is actually called
|
||||
# "CMD.EXE" on disk for hysterical raisons. As a result, GNU make
|
||||
# thinks it doesn't exist (unless compiled with a switch to ignore
|
||||
# case), and so doesn't change which shell it will invoke to execute
|
||||
# commands.
|
||||
#
|
||||
# It would be possible, though very tedious using just gmake facilities,
|
||||
# to convert the COMSPEC value to uppercase to solve this problem, but
|
||||
# it isn't worth it. That is partly because, even when using the native
|
||||
# shell, gmake tends to not be happy with backslashes in command
|
||||
# strings. The obvious solution is to use forward slashes as much as
|
||||
# possible, which can be made to work most of the time (putting
|
||||
# filenames in quotes often helps), but there are still some internal
|
||||
# cmd.exe commands like `del' and `copy' that won't work with them.
|
||||
# Although it is possible to convert slashes to backslashes when
|
||||
# necessary, gmake requires explicitly calling its subst function, which
|
||||
# nmake does not understand). For this reason, it is simplest to
|
||||
# mandate that rm and cp be available, so we can use Unix-format file
|
||||
# names everywhere. (Fortunately both MS and GNU make, and the
|
||||
# respective compilers, are happy with Unix-format names.)
|
||||
#
|
||||
# Since we cannot easily force the choice of a particular shell, we must
|
||||
# make the effort to cope with whichever shell is being used.
|
||||
# Fortunately, the only command we need to use that is shell specific is
|
||||
# the testing of a file's existence for the purpose of working out when
|
||||
# we are copying files to their original location. That particular
|
||||
# requirement is abstracted easily enough.
|
||||
#
|
||||
# The only other problem area was the change of directory when running
|
||||
# temacs to dump emacs.exe (where gmake doesn't support cd foo in any
|
||||
# useful way), but that has been resolved by modifying the Windows
|
||||
# unexec function slightly to not require the directory change while
|
||||
# still allowing objects and binaries to be in subdirectories.
|
||||
|
||||
# This doesn't work.
|
||||
#SHELL:=$(COMSPEC)
|
||||
|
||||
# Determine whether make is using sh or cmd/command as shell; cmd.exe
|
||||
# will output "ECHO is on" when echo is given by itself, while sh will
|
||||
# not produce any output.
|
||||
sh_output := $(shell echo)
|
||||
ifeq "$(findstring ECHO, $(sh_output))" "ECHO"
|
||||
THE_SHELL = $(COMSPEC)$(ComSpec)
|
||||
SHELLTYPE=CMD
|
||||
SWITCHCHAR=/
|
||||
else
|
||||
USING_SH = 1
|
||||
THE_SHELL = $(SHELL)
|
||||
SHELLTYPE=SH
|
||||
# MSYS needs to double the slash in cmd-style switches to avoid
|
||||
# interpreting /x as a Posix style file name reference
|
||||
ifneq ($(MSYSTEM),)
|
||||
SWITCHCHAR=//
|
||||
else
|
||||
SWITCHCHAR=/
|
||||
endif
|
||||
endif
|
||||
|
||||
MAKETYPE=gmake
|
||||
|
||||
# The following "ifeq" does not appear to DTRT, and therefore breaks
|
||||
# the build on mingw32. Also the -m option does not exist in many
|
||||
# (reasonably recent even) versions of Cygwin. These issues need to be
|
||||
# remedied before putting this cygpath kludge back in.
|
||||
|
||||
# Convert CURDIR to native file name, if in Cygwin format
|
||||
#ifeq "$(shell cygpath $(CURDIR))" "$(CURDIR)"
|
||||
#CURDIR := $(shell cygpath -m $(CURDIR))
|
||||
#endif
|
||||
|
||||
THISDIR = .
|
||||
|
||||
# Cygwin has changed quoting rules somewhat since b20, in a way that
|
||||
# affects makefiles using sh as the command processor, so we need to
|
||||
# detect which rules to use.
|
||||
ifdef USING_SH
|
||||
sh_output := $(shell echo [Please ignore a syntax error on the next line - it is intentional] 1>&2)
|
||||
sh_output := $(shell echo foo")
|
||||
# This single quote " is to fix fontification due to previous line
|
||||
ifeq "$(sh_output)" ""
|
||||
NEW_CYGWIN = 1
|
||||
endif
|
||||
|
||||
# By default, newer versions of Cygwin mess with NTFS ACLs in an
|
||||
# attempt to emulate traditional posix file permissions. This can
|
||||
# cause bad effects, such as .exe files that are missing the
|
||||
# FILE_EXECUTE/FILE_GENERIC_EXECUTE permissions when they are created
|
||||
# with Cygwin commands that don't expect to be creating executable
|
||||
# files. Then when we later use a non-Cygwin program to create the
|
||||
# real .exe, the previous Cygwin defined ACL sticks.
|
||||
CYGWIN=nontsec
|
||||
export CYGWIN
|
||||
endif
|
||||
|
||||
ALL_DEPS = $^
|
||||
EMPTY =
|
||||
SPACE = $(EMPTY) $(EMPTY)
|
||||
|
||||
SUBSYSTEM_WINDOWS=-Wl,-subsystem,windows
|
||||
SUBSYSTEM_CONSOLE=-Wl,-subsystem,console
|
||||
|
||||
# INSTALL_DIR is the directory into which emacs will be installed.
|
||||
#
|
||||
ifndef INSTALL_DIR
|
||||
INSTALL_DIR = $(CURDIR)/..
|
||||
endif
|
||||
|
||||
export EMACSLOADPATH
|
||||
|
||||
# Determine the architecture we're running on.
|
||||
# Define ARCH for our purposes;
|
||||
# Define CPU for use by ntwin32.mak;
|
||||
# Define CONFIG_H to the appropriate config.h for the system;
|
||||
#
|
||||
ifdef PROCESSOR_ARCHITECTURE
|
||||
# We're on Windows NT
|
||||
CPU = $(PROCESSOR_ARCHITECTURE)
|
||||
CONFIG_H = config.nt
|
||||
OS_TYPE = windowsnt
|
||||
ifeq "$(PROCESSOR_ARCHITECTURE)" "x86"
|
||||
ARCH = i386
|
||||
CPU = i386
|
||||
EMACS_HEAPSIZE = 27
|
||||
EMACS_PURESIZE = 5000000
|
||||
EMACS_MANIFEST = emacs-x86.manifest
|
||||
else
|
||||
ifeq "$(PROCESSOR_ARCHITECTURE)" "MIPS"
|
||||
ARCH = mips
|
||||
EMACS_HEAPSIZE = 27
|
||||
EMACS_PURESIZE = 5000000
|
||||
EMACS_MANIFEST = emacs-mips.manifest
|
||||
else
|
||||
ifeq "$(PROCESSOR_ARCHITECTURE)" "ALPHA"
|
||||
ARCH = alpha
|
||||
EMACS_HEAPSIZE = 27
|
||||
EMACS_PURESIZE = 5000000
|
||||
EMACS_MANIFEST = emacs-alpha.manifest
|
||||
else
|
||||
ifeq "$(PROCESSOR_ARCHITECTURE)" "PPC"
|
||||
ARCH = ppc
|
||||
EMACS_HEAPSIZE = 27
|
||||
EMACS_PURESIZE = 5000000
|
||||
EMACS_MANIFEST = emacs-ppc.manifest
|
||||
else
|
||||
$(error Unknown architecture type "$(PROCESSOR_ARCHITECTURE)")
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
else
|
||||
# We're on Windows 95
|
||||
ARCH = i386
|
||||
CPU = i386
|
||||
CONFIG_H = config.nt
|
||||
OS_TYPE = windows95
|
||||
endif
|
||||
|
||||
AR = ar -rsc
|
||||
AR_OUT =
|
||||
CC = gcc
|
||||
CC_OUT = -o$(SPACE)
|
||||
LINK = gcc
|
||||
LINK_OUT = -o$(SPACE)
|
||||
RC = windres -O coff
|
||||
RC_OUT = -o$(SPACE)
|
||||
RC_INCLUDE = --include-dir$(SPACE)
|
||||
|
||||
libc =
|
||||
baselibs =
|
||||
O = o
|
||||
A = a
|
||||
|
||||
BASE_LIBS = $(libc) $(baselibs)
|
||||
|
||||
ADVAPI32 = -ladvapi32
|
||||
COMCTL32 = -lcomctl32
|
||||
COMDLG32 = -lcomdlg32
|
||||
GDI32 = -lgdi32
|
||||
MPR = -lmpr
|
||||
SHELL32 = -lshell32
|
||||
USER32 = -luser32
|
||||
WSOCK32 = -lwsock32
|
||||
WINMM = -lwinmm
|
||||
WINSPOOL = -lwinspool
|
||||
OLE32 = -lole32
|
||||
UNISCRIBE = -lusp10
|
||||
UUID = -luuid
|
||||
|
||||
# Used by src/makefile.w32-in, since Nmake barfs on $(func SOMETHING)
|
||||
OBJ0_c = $(patsubst $(BLD)%.$(O),$(CURDIR)%.c,$(OBJ0))
|
||||
OBJ1_c = $(patsubst $(BLD)%.$(O),$(CURDIR)%.c,$(OBJ1))
|
||||
OBJ2_c = $(patsubst $(BLD)%.$(O),$(CURDIR)%.c,$(OBJ2))
|
||||
|
||||
ifdef NOOPT
|
||||
DEBUG_CFLAGS = -DEMACSDEBUG -fno-crossjumping -std=gnu99
|
||||
else
|
||||
DEBUG_CFLAGS =
|
||||
endif
|
||||
|
||||
MWINDOWS = -mwindows
|
||||
|
||||
CFLAGS = -I. $(ARCH_CFLAGS) $(DEBUG_CFLAGS) $(PROFILE_CFLAGS) $(USER_CFLAGS) $(LOCAL_FLAGS)
|
||||
ESC_CFLAGS = -I. $(ARCH_CFLAGS) $(DEBUG_CFLAGS) $(PROFILE_CFLAGS) $(ESC_USER_CFLAGS) $(LOCAL_FLAGS)
|
||||
EMACS_EXTRA_C_FLAGS = -DUSE_CRT_DLL=1
|
||||
|
||||
ifdef PROFILE
|
||||
PROFILE_CFLAGS = -pg
|
||||
PROFILE_LDFLAGS = -pg
|
||||
else
|
||||
PROFILE_CFLAGS =
|
||||
PROFILE_LDFLAGS =
|
||||
endif
|
||||
|
||||
|
||||
# see comments in allocate_heap in w32heap.c before changing any of the
|
||||
# -stack, -heap, or -image-base settings.
|
||||
TEMACS_EXTRA_LINK = -Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 $(SUBSYSTEM_CONSOLE) -Wl,-entry,__start -Wl,-Map,$(BLD)/temacs.map
|
||||
|
||||
ifdef NOOPT
|
||||
OBJDIR = oo
|
||||
else
|
||||
OBJDIR = oo-spd
|
||||
endif
|
||||
$(OBJDIR):; -mkdir "$(OBJDIR)"
|
||||
BLD = $(OBJDIR)/$(ARCH)
|
||||
stamp_BLD: $(OBJDIR)
|
||||
-mkdir "$(BLD)"
|
||||
echo $(BLD) > $@
|
||||
|
||||
COMPILER_TEMP_FILES =
|
||||
|
||||
CP = cp -f
|
||||
CP_DIR = cp -rf
|
||||
DEL = rm
|
||||
DEL_TREE = rm -r
|
||||
|
||||
DIRNAME = $(notdir $(CURDIR))
|
||||
|
||||
ifdef USING_SH
|
||||
|
||||
IFNOTSAMEDIR = if [ ! -s ../$(DIRNAME)_same-dir.tst ] ; then
|
||||
FOREACH = for f in
|
||||
FORVAR = $${f}
|
||||
FORDO = ; do
|
||||
ENDFOR = ; done
|
||||
ENDIF = ; fi
|
||||
ARGQUOTE = '
|
||||
ifdef NEW_CYGWIN
|
||||
DQUOTE = "
|
||||
else
|
||||
DQUOTE = ""
|
||||
endif
|
||||
|
||||
else
|
||||
|
||||
IFNOTSAMEDIR = if not exist ../$(DIRNAME)_same-dir.tst
|
||||
FOREACH = for %%f in (
|
||||
FORVAR = %%f
|
||||
FORDO = ) do
|
||||
ENDFOR =
|
||||
ENDIF =
|
||||
ARGQUOTE = "
|
||||
DQUOTE = \"
|
||||
|
||||
endif
|
||||
|
||||
ifdef NODEBUG
|
||||
DEBUG_FLAG =
|
||||
DEBUG_LINK =
|
||||
else
|
||||
DEBUG_FLAG = $(DEBUG_INFO)
|
||||
DEBUG_LINK = $(DEBUG_INFO)
|
||||
endif
|
||||
|
||||
ifdef NOCYGWIN
|
||||
NOCYGWIN = -mno-cygwin
|
||||
endif
|
||||
|
||||
ifdef USER_LIBS
|
||||
USER_LIBS := $(patsubst %,-l%,$(USER_LIBS))
|
||||
endif
|
||||
|
||||
PRAGMA_SYSTEM_HEADER = \#pragma GCC system_header
|
||||
|
||||
ifeq "$(ARCH)" "i386"
|
||||
ifdef NOOPT
|
||||
ARCH_CFLAGS = -c $(DEBUG_FLAG) $(NOCYGWIN)
|
||||
else
|
||||
ARCH_CFLAGS = -c $(DEBUG_FLAG) $(NOCYGWIN) $(MCPU_FLAG) -O2 \
|
||||
# -fbuiltin \
|
||||
# -finline-functions \
|
||||
# -fomit-frame-pointer
|
||||
endif
|
||||
ARCH_LDFLAGS = $(SYS_LDFLAGS)
|
||||
else
|
||||
ERROR Unknown architecture type "$(ARCH)".
|
||||
endif
|
||||
|
||||
LINK_FLAGS = $(ARCH_LDFLAGS) $(DEBUG_LINK) $(PROFILE_LDFLAGS) $(NOCYGWIN) $(USER_LDFLAGS)
|
||||
|
||||
export XMFLAGS
|
||||
|
||||
.DEFAULT:
|
||||
|
||||
$(BLD)/%.o: %.c
|
||||
$(CC) $(CFLAGS) $(CC_OUT)$@ $<
|
|
@ -1,465 +0,0 @@
|
|||
# -*- Makefile -*- for GNU Emacs on the Microsoft Windows API.
|
||||
# Copyright (C) 2000-2015 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
# FIXME: This file uses DOS EOLs. Convert to Unix after 22.1 is out
|
||||
# (and remove or replace this comment).
|
||||
|
||||
VERSION = 25.0.50
|
||||
|
||||
TMP_DIST_DIR = emacs-$(VERSION)
|
||||
|
||||
TRES = $(BLD)/emacs.res
|
||||
CLIENTRES = $(BLD)/emacsclient.res
|
||||
|
||||
LOCAL_FLAGS = -DOLD_PATHS=1
|
||||
|
||||
XMFLAGS =
|
||||
|
||||
ALL = $(BLD)/addpm.exe $(BLD)/ddeclient.exe $(BLD)/runemacs.exe \
|
||||
$(BLD)/cmdproxy.exe $(BLD)/addsection.exe $(BLD)/preprep.exe
|
||||
|
||||
$(BLD)/addpm.exe: $(BLD)/addpm.$(O)
|
||||
$(LINK) $(LINK_OUT)$@ \
|
||||
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) \
|
||||
$(USER32) $(OLE32) $(UUID) $(SHELL32)
|
||||
|
||||
$(BLD)/ddeclient.exe: $(BLD)/ddeclient.$(O)
|
||||
$(LINK) $(LINK_OUT)$@ \
|
||||
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32)
|
||||
|
||||
$(BLD)/cmdproxy.exe: $(BLD)/cmdproxy.$(O)
|
||||
$(LINK) $(LINK_OUT)$@ \
|
||||
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32)
|
||||
|
||||
$(BLD)/addsection.exe: $(BLD)/addsection.$(O)
|
||||
$(LINK) $(LINK_OUT)$@ \
|
||||
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32)
|
||||
|
||||
$(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 icons/emacs.ico $(EMACS_MANIFEST) stamp_BLD
|
||||
$(RC) $(RC_OUT)$(TRES) emacs.rc
|
||||
|
||||
$(CLIENTRES): emacsclient.rc stamp_BLD
|
||||
$(RC) $(RC_OUT)$(CLIENTRES) emacsclient.rc
|
||||
|
||||
$(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.
|
||||
|
||||
# These depend on stamp_BLD to make sure the $(BLD) directory is created
|
||||
# before the compilation begins, even if Make runs several commands
|
||||
# in parallel under "make -j".
|
||||
#
|
||||
$(BLD)/addpm.$(O) $(BLD)/ddeclient.$(O) $(BLD)/runemacs.$(O) $(BLD)/cmdproxy.$(O) $(BLD)/addsection.$(O) $(BLD)/preprep.$(O): stamp_BLD
|
||||
|
||||
#
|
||||
# Build emacs
|
||||
#
|
||||
all: which-sh $(ALL) $(CLIENTRES) all-other-dirs-$(MAKETYPE)
|
||||
|
||||
all-other-dirs-$(MAKETYPE): maybe-bootstrap
|
||||
|
||||
all-other-dirs-nmake: $(BLD)/addsection.exe
|
||||
cd ..\lib
|
||||
$(MAKE) $(MFLAGS) all
|
||||
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: $(BLD)/addsection.exe
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib all
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src all
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src all
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp all
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim all
|
||||
|
||||
recompile: recompile-$(MAKETYPE)
|
||||
|
||||
recompile-nmake:
|
||||
cd ..\lisp
|
||||
$(MAKE) $(MFLAGS) recompile
|
||||
cd ..\nt
|
||||
|
||||
recompile-gmake:
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -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 depends on cmdproxy because some Lisp functions
|
||||
# loaded during bootstrap may need to run shell commands.
|
||||
bootstrap: $(BLD)/addsection.exe $(BLD)/cmdproxy.exe bootstrap-$(MAKETYPE)
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) all
|
||||
|
||||
bootstrap-nmake: $(BLD)/addsection.exe $(BLD)/cmdproxy.exe
|
||||
cd ..\lisp
|
||||
$(MAKE) $(MFLAGS) bootstrap-clean
|
||||
cd ..\src
|
||||
$(MAKE) $(MFLAGS) clean
|
||||
cd ..\lib-src
|
||||
$(MAKE) $(MFLAGS) clean make-docfile
|
||||
cd ..\lib
|
||||
$(MAKE) $(MFLAGS) clean all
|
||||
cd ..\src
|
||||
$(MAKE) $(MFLAGS) bootstrap
|
||||
$(MAKE) $(MFLAGS) bootstrap-clean
|
||||
cd ..\nt
|
||||
$(CP) $(BLD)/cmdproxy.exe ../bin
|
||||
cd ..\lisp
|
||||
$(MAKE) $(MFLAGS) SHELL=$(SHELLTYPE) bootstrap
|
||||
cd ..\lib-src
|
||||
$(MAKE) $(MFLAGS) DOC
|
||||
cd ..\nt
|
||||
|
||||
bootstrap-gmake: $(BLD)/addsection.exe $(BLD)/cmdproxy.exe
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap-clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src make-docfile
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib all
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap-clean
|
||||
$(CP) $(BLD)/cmdproxy.exe ../bin
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src DOC
|
||||
|
||||
bootstrap-clean: bootstrap-clean-$(MAKETYPE)
|
||||
|
||||
bootstrap-clean-nmake:
|
||||
cd ..\src
|
||||
$(MAKE) $(MFLAGS) bootstrap-clean
|
||||
cd ..\lib
|
||||
$(MAKE) $(MFLAGS) clean
|
||||
cd ..\lisp
|
||||
$(MAKE) $(MFLAGS) bootstrap-clean
|
||||
|
||||
bootstrap-clean-gmake:
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap-clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -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
|
||||
#
|
||||
.PHONY: install-bin install-shortcuts
|
||||
|
||||
install: install-bin install-shortcuts
|
||||
|
||||
install-bin: all $(INSTALL_DIR)/bin install-other-dirs-$(MAKETYPE)
|
||||
- $(CP) $(BLD)/ddeclient.exe $(INSTALL_DIR)/bin
|
||||
- $(CP) $(BLD)/cmdproxy.exe $(INSTALL_DIR)/bin
|
||||
- $(CP) $(BLD)/runemacs.exe $(INSTALL_DIR)/bin
|
||||
- $(CP) README.W32 $(INSTALL_DIR)
|
||||
- $(DEL) ../$(DIRNAME)_same-dir.tst
|
||||
- $(DEL) $(INSTALL_DIR)/$(DIRNAME)_same-dir.tst
|
||||
echo SameDirTest > "$(INSTALL_DIR)/$(DIRNAME)_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)
|
||||
$(IFNOTSAMEDIR) $(CP) ../COPYING $(INSTALL_DIR) $(ENDIF)
|
||||
- $(CP) ../COPYING $(INSTALL_DIR)/bin
|
||||
- $(DEL) ../$(DIRNAME)_same-dir.tst
|
||||
- $(DEL) $(INSTALL_DIR)/$(DIRNAME)_same-dir.tst
|
||||
|
||||
install-other-dirs-nmake: all
|
||||
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: all
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src install
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src install
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp install
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim install
|
||||
|
||||
install-addpm: $(INSTALL_DIR)/bin $(BLD)/addpm.exe
|
||||
- $(CP) $(BLD)/addpm.exe $(INSTALL_DIR)/bin
|
||||
|
||||
install-shortcuts: install-addpm
|
||||
"$(INSTALL_DIR)/bin/addpm" -q
|
||||
|
||||
maybe-copy-distfiles: maybe-copy-distfiles-$(SHELLTYPE)
|
||||
|
||||
maybe-copy-distfiles-CMD: create-tmp-dist-dir doit
|
||||
@if not $(ARGQUOTE)$(DIST_FILES)$(ARGQUOTE) == "" $(CP_DIR) $(DIST_FILES) $(TMP_DIST_DIR)/bin
|
||||
|
||||
maybe-copy-distfiles-SH: create-tmp-dist-dir doit
|
||||
@if [ ! $(ARGQUOTE)$(DIST_FILES)$(ARGQUOTE) == "" ] ; then \
|
||||
$(CP_DIR) $(DIST_FILES) $(TMP_DIST_DIR)/bin ; \
|
||||
fi
|
||||
|
||||
create-tmp-dist-dir:
|
||||
mkdir "$(TMP_DIST_DIR)"
|
||||
# Also create bin directory for dist files.
|
||||
mkdir "$(TMP_DIST_DIR)/bin"
|
||||
|
||||
dist: install-bin install-addpm maybe-copy-distfiles
|
||||
$(CP) "$(INSTALL_DIR)/BUGS" $(TMP_DIST_DIR)
|
||||
$(CP) "$(INSTALL_DIR)/COPYING" $(TMP_DIST_DIR)
|
||||
$(CP) "$(INSTALL_DIR)/README" $(TMP_DIST_DIR)
|
||||
$(CP) "$(INSTALL_DIR)/README.W32" $(TMP_DIST_DIR)
|
||||
$(CP_DIR) "$(INSTALL_DIR)/bin" $(TMP_DIST_DIR)
|
||||
$(CP_DIR) "$(INSTALL_DIR)/etc" $(TMP_DIST_DIR)
|
||||
$(CP_DIR) "$(INSTALL_DIR)/info" $(TMP_DIST_DIR)
|
||||
$(CP_DIR) "$(INSTALL_DIR)/lisp" $(TMP_DIST_DIR)
|
||||
$(CP_DIR) "$(INSTALL_DIR)/leim" $(TMP_DIST_DIR)
|
||||
$(CP_DIR) "$(INSTALL_DIR)/site-lisp" $(TMP_DIST_DIR)
|
||||
$(COMSPEC)$(ComSpec) /c $(ARGQUOTE)zipdist.bat $(VERSION)$(ARGQUOTE)
|
||||
$(DEL_TREE) $(TMP_DIST_DIR)
|
||||
|
||||
force-info:
|
||||
# Note that doc/emacs/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 ..\doc\emacs
|
||||
$(MAKE) $(MFLAGS) info
|
||||
cd ..\misc
|
||||
$(MAKE) $(MFLAGS) info
|
||||
cd ..\lispref
|
||||
$(MAKE) $(MFLAGS) info
|
||||
cd ..\lispintro
|
||||
$(MAKE) $(MFLAGS) info
|
||||
cd $(MAKEDIR)
|
||||
|
||||
info-gmake: emacs misc lispref lispintro
|
||||
|
||||
emacs misc lispref lispintro:
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/$@ info
|
||||
|
||||
#
|
||||
# Maintenance
|
||||
#
|
||||
clean: clean-other-dirs-$(MAKETYPE)
|
||||
- $(DEL) $(COMPILER_TEMP_FILES)
|
||||
- $(DEL_TREE) $(OBJDIR)
|
||||
- $(DEL) stamp_BLD
|
||||
- $(DEL) ../etc/DOC
|
||||
|
||||
clean-other-dirs-nmake:
|
||||
cd ..\lib
|
||||
$(MAKE) $(MFLAGS) clean
|
||||
cd ..\lib-src
|
||||
$(MAKE) $(MFLAGS) clean
|
||||
cd ..\src
|
||||
$(MAKE) $(MFLAGS) clean
|
||||
cd ..\doc\lispintro
|
||||
$(MAKE) $(MFLAGS) clean
|
||||
cd ..\lispref
|
||||
$(MAKE) $(MFLAGS) clean
|
||||
cd ..\..\leim
|
||||
$(MAKE) $(MFLAGS) clean
|
||||
cd ..\doc\emacs
|
||||
$(MAKE) $(MFLAGS) clean
|
||||
cd ..\misc
|
||||
$(MAKE) $(MFLAGS) clean
|
||||
cd ..\..\nt
|
||||
|
||||
clean-other-dirs-gmake:
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/emacs clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/misc clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispintro clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispref clean
|
||||
|
||||
cleanall-other-dirs-nmake:
|
||||
cd ..\lib
|
||||
$(MAKE) $(MFLAGS) cleanall
|
||||
cd ..\lib-src
|
||||
$(MAKE) $(MFLAGS) cleanall
|
||||
cd ..\src
|
||||
$(MAKE) $(MFLAGS) cleanall
|
||||
cd ..\nt
|
||||
|
||||
cleanall-other-dirs-gmake:
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib cleanall
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src cleanall
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src cleanall
|
||||
|
||||
# We used to delete *~ here, but that might inadvertently remove
|
||||
# precious files if it happens to match their short 8+3 aliases.
|
||||
cleanall: clean cleanall-other-dirs-$(MAKETYPE)
|
||||
- $(DEL_TREE) obj
|
||||
- $(DEL_TREE) obj-spd
|
||||
- $(DEL_TREE) oo
|
||||
- $(DEL_TREE) oo-spd
|
||||
|
||||
top-distclean:
|
||||
- $(DEL) $(COMPILER_TEMP_FILES)
|
||||
- $(DEL_TREE) obj
|
||||
- $(DEL_TREE) obj-spd
|
||||
- $(DEL_TREE) oo
|
||||
- $(DEL_TREE) oo-spd
|
||||
- $(DEL) stamp_BLD
|
||||
- $(DEL) ../etc/DOC
|
||||
- $(DEL) config.log Makefile
|
||||
- $(DEL) ../README.W32
|
||||
|
||||
distclean: distclean-other-dirs-$(MAKETYPE) top-distclean
|
||||
|
||||
distclean-other-dirs-nmake:
|
||||
cd ..\lib
|
||||
$(MAKE) $(MFLAGS) distclean
|
||||
cd ..\lib-src
|
||||
$(MAKE) $(MFLAGS) distclean
|
||||
cd ..\src
|
||||
$(MAKE) $(MFLAGS) distclean
|
||||
cd ..\lisp
|
||||
$(MAKE) $(MFLAGS) distclean
|
||||
cd ..\leim
|
||||
$(MAKE) $(MFLAGS) distclean
|
||||
cd ..\doc\emacs
|
||||
$(MAKE) $(MFLAGS) distclean
|
||||
cd ..\misc
|
||||
$(MAKE) $(MFLAGS) distclean
|
||||
cd ..\lispintro
|
||||
$(MAKE) $(MFLAGS) distclean
|
||||
cd ..\lispref
|
||||
$(MAKE) $(MFLAGS) distclean
|
||||
cd ..\..\nt
|
||||
|
||||
distclean-other-dirs-gmake:
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib distclean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src distclean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src distclean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp distclean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim distclean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/emacs distclean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/misc distclean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispintro distclean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispref distclean
|
||||
|
||||
maintainer-clean: maintainer-clean-other-dirs-$(MAKETYPE) top-distclean
|
||||
|
||||
maintainer-clean-other-dirs-nmake:
|
||||
cd ..\lib
|
||||
$(MAKE) $(MFLAGS) maintainer-clean
|
||||
cd ..\lib-src
|
||||
$(MAKE) $(MFLAGS) maintainer-clean
|
||||
cd ..\src
|
||||
$(MAKE) $(MFLAGS) maintainer-clean
|
||||
cd ..\lisp
|
||||
$(MAKE) $(MFLAGS) maintainer-clean
|
||||
cd ..\leim
|
||||
$(MAKE) $(MFLAGS) maintainer-clean
|
||||
cd ..\doc\emacs
|
||||
$(MAKE) $(MFLAGS) maintainer-clean
|
||||
cd ..\misc
|
||||
$(MAKE) $(MFLAGS) maintainer-clean
|
||||
cd ..\lispintro
|
||||
$(MAKE) $(MFLAGS) maintainer-clean
|
||||
cd ..\lispref
|
||||
$(MAKE) $(MFLAGS) maintainer-clean
|
||||
cd ..\..\nt
|
||||
|
||||
maintainer-clean-other-dirs-gmake:
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib maintainer-clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src maintainer-clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src maintainer-clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp maintainer-clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim maintainer-clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/emacs maintainer-clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/misc maintainer-clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispintro maintainer-clean
|
||||
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispref maintainer-clean
|
||||
|
||||
realclean: cleanall
|
||||
- $(DEL_TREE) ../bin
|
||||
|
||||
TAGS: TAGS-$(MAKETYPE)
|
||||
|
||||
frc:
|
||||
TAGS-gmake: frc
|
||||
../lib-src/$(BLD)/etags $(CURDIR)/*.c
|
||||
$(MAKE) $(MFLAGS) -C ../src TAGS TAGS-LISP
|
||||
$(MAKE) $(MFLAGS) -C ../lib-src TAGS
|
||||
$(MAKE) $(MFLAGS) -C ../lib TAGS
|
||||
|
||||
TAGS-nmake:
|
||||
echo This target is not supported with NMake
|
||||
|
||||
.PHONY: frc
|
|
@ -1,40 +0,0 @@
|
|||
@echo off
|
||||
|
||||
rem Hack to run install-info with multiple info files on the command
|
||||
rem line on the Windows platform.
|
||||
|
||||
rem Copyright (C) 2003-2015 Free Software Foundation, Inc.
|
||||
|
||||
rem This file is part of GNU Emacs.
|
||||
|
||||
rem GNU Emacs is free software: you can redistribute it and/or modify
|
||||
rem it under the terms of the GNU General Public License as published by
|
||||
rem the Free Software Foundation, either version 3 of the License, or
|
||||
rem (at your option) any later version.
|
||||
|
||||
rem GNU Emacs is distributed in the hope that it will be useful,
|
||||
rem but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
rem GNU General Public License for more details.
|
||||
|
||||
rem You should have received a copy of the GNU General Public License
|
||||
rem along with GNU Emacs. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
|
||||
rem Usage:
|
||||
rem multi-install-info <switch passed to install-info> FILE1 FILE2 ...
|
||||
rem
|
||||
rem By Peter 'Luna' Runestig <peter@runestig.com> 2003
|
||||
|
||||
set INSTALL_INFO=install-info
|
||||
set II_SWITCH=%1=%2
|
||||
rem Eat the install-info switch:
|
||||
shift
|
||||
|
||||
:Loop
|
||||
shift
|
||||
if .%1% == . goto EndLoop
|
||||
%INSTALL_INFO% %II_SWITCH% %1
|
||||
goto Loop
|
||||
:EndLoop
|
||||
|
294
nt/nmake.defs
294
nt/nmake.defs
|
@ -1,294 +0,0 @@
|
|||
# -*- Makefile -*- definition file for building GNU Emacs on Windows NT.
|
||||
# Copyright (C) 2000-2015 Free Software Foundation, Inc.
|
||||
|
||||
# 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
# Ensure 'all' is the default target
|
||||
all:
|
||||
|
||||
THE_SHELL = $(COMSPEC)
|
||||
SHELLTYPE=CMD
|
||||
SWITCHCHAR=/
|
||||
|
||||
MAKETYPE=nmake
|
||||
|
||||
CURDIR = $(MAKEDIR:\=/)
|
||||
THISDIR = $(MAKEDIR)
|
||||
DIRNAME =
|
||||
|
||||
ALL_DEPS = $**
|
||||
|
||||
SUBSYSTEM_WINDOWS=-subsystem:windows
|
||||
SUBSYSTEM_CONSOLE=-subsystem:console
|
||||
|
||||
# INSTALL_DIR is the directory into which emacs will be installed.
|
||||
#
|
||||
!ifndef INSTALL_DIR
|
||||
INSTALL_DIR = $(CURDIR)/..
|
||||
!endif
|
||||
|
||||
# Ensure EMACSLOADPATH is defined in the environment.
|
||||
#
|
||||
!if [set EMACSLOADPATH=foo]
|
||||
!endif
|
||||
|
||||
# Allow detection of builds with MSVC 5 or later, so we can
|
||||
# speed up compiles (see rule at end).
|
||||
#
|
||||
_NMAKE_VER_5=162
|
||||
_NMAKE_VER_4=0
|
||||
|
||||
!IFNDEF _NMAKE_VER
|
||||
_NMAKE_VER=$(_NMAKE_VER_4)
|
||||
!ENDIF
|
||||
|
||||
# Check that the INCLUDE and LIB environment variables are set.
|
||||
#
|
||||
!ifndef INCLUDE
|
||||
!error The INCLUDE environment variable needs to be set.
|
||||
!endif
|
||||
!ifndef LIB
|
||||
!error The LIB environment variable needs to be set.
|
||||
!endif
|
||||
|
||||
# Determine the architecture we're running on.
|
||||
# Define ARCH for our purposes;
|
||||
# Define CPU for use by ntwin32.mak;
|
||||
# Define CONFIG_H to the appropriate config.h for the system;
|
||||
#
|
||||
!ifdef PROCESSOR_ARCHITECTURE
|
||||
# We're on Windows NT
|
||||
CPU = $(PROCESSOR_ARCHITECTURE)
|
||||
CONFIG_H = config.nt
|
||||
OS_TYPE = windowsnt
|
||||
! if "$(PROCESSOR_ARCHITECTURE)" == "x86"
|
||||
ARCH = i386
|
||||
CPU = i386
|
||||
! else
|
||||
! if "$(PROCESSOR_ARCHITECTURE)" == "MIPS"
|
||||
ARCH = mips
|
||||
! else
|
||||
! if "$(PROCESSOR_ARCHITECTURE)" == "ALPHA"
|
||||
ARCH = alpha
|
||||
! else
|
||||
! if "$(PROCESSOR_ARCHITECTURE)" == "PPC"
|
||||
ARCH = ppc
|
||||
! else
|
||||
! if "$(PROCESSOR_ARCHITECTURE)" == "AMD64"
|
||||
ARCH = AMD64
|
||||
! else
|
||||
! error Unknown architecture type "$(PROCESSOR_ARCHITECTURE)"
|
||||
! endif
|
||||
! endif
|
||||
! endif
|
||||
! endif
|
||||
! endif
|
||||
!else
|
||||
# We're on Windows 95
|
||||
ARCH = i386
|
||||
CPU = i386
|
||||
CONFIG_H = config.nt
|
||||
OS_TYPE = windows95
|
||||
!endif
|
||||
|
||||
AR = lib
|
||||
AR_OUT = -out:
|
||||
CC = cl
|
||||
CC_OUT = -Fo
|
||||
LINK = link
|
||||
LINK_OUT = -out:
|
||||
RC = rc $(ARCH_RCFLAGS)
|
||||
RC_OUT = -Fo
|
||||
RC_INCLUDE = -i
|
||||
|
||||
USE_CRT_DLL = 1
|
||||
|
||||
!if $(USE_CRT_DLL)
|
||||
libc = msvcrt$(D).lib
|
||||
EMACS_EXTRA_C_FLAGS= -D_DLL -D_MT -DUSE_CRT_DLL=1
|
||||
!else
|
||||
libc = libcmt$(D).lib
|
||||
EMACS_EXTRA_C_FLAGS= -D_MT
|
||||
!endif
|
||||
baselibs =
|
||||
O = obj
|
||||
A = lib
|
||||
|
||||
BASE_LIBS = $(libc) $(baselibs) oldnames.lib
|
||||
|
||||
ADVAPI32 = advapi32.lib
|
||||
COMCTL32 = comctl32.lib
|
||||
COMDLG32 = comdlg32.lib
|
||||
GDI32 = gdi32.lib
|
||||
MPR = mpr.lib
|
||||
SHELL32 = shell32.lib
|
||||
USER32 = user32.lib
|
||||
WSOCK32 = wsock32.lib
|
||||
WINMM = winmm.lib
|
||||
WINSPOOL = winspool.lib
|
||||
OLE32 = ole32.lib
|
||||
UNISCRIBE = usp10.lib
|
||||
UUID = uuid.lib
|
||||
|
||||
!ifdef NOOPT
|
||||
DEBUG_CFLAGS = -DEMACSDEBUG
|
||||
!else
|
||||
DEBUG_CFLAGS =
|
||||
!endif
|
||||
|
||||
MWINDOWS = -subsystem:windows -entry:mainCRTStartup
|
||||
|
||||
CFLAGS = -I. $(ARCH_CFLAGS) -D_CRT_SECURE_NO_WARNINGS \
|
||||
$(DEBUG_CFLAGS) $(USER_CFLAGS) $(LOCAL_FLAGS)
|
||||
ESC_CFLAGS = -I. $(ARCH_CFLAGS) -D_CRT_SECURE_NO_WARNINGS \
|
||||
$(DEBUG_CFLAGS) $(ESC_USER_CFLAGS) $(LOCAL_FLAGS)
|
||||
|
||||
#SYS_LDFLAGS = -nologo -release -incremental:no -version:3.10 -swaprun:cd -swaprun:net setargv.obj
|
||||
SYS_LDFLAGS = -nologo -manifest -dynamicbase:no -incremental:no -version:3.10 -swaprun:cd -swaprun:net setargv.obj
|
||||
|
||||
# see comments in allocate_heap in w32heap.c before changing any of the
|
||||
# -stack, -heap, or -base settings.
|
||||
!if "$(ARCH)" == "i386"
|
||||
TEMACS_EXTRA_LINK = -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -pdb:$(BLD)\temacs.pdb -machine:x86 $(SUBSYSTEM_CONSOLE) -entry:_start -map:$(BLD)\temacs.map $(EXTRA_LINK)
|
||||
!elseif "$(ARCH)" == "AMD64"
|
||||
TEMACS_EXTRA_LINK = -stack:0x00800000 -heap:0x00100000 -base:0x400000000 -pdb:$(BLD)\temacs.pdb -machine:x64 $(SUBSYSTEM_CONSOLE) -entry:_start -map:$(BLD)\temacs.map $(EXTRA_LINK)
|
||||
!endif
|
||||
|
||||
!ifdef NOOPT
|
||||
OBJDIR = obj
|
||||
!else
|
||||
OBJDIR = obj-spd
|
||||
!endif
|
||||
$(OBJDIR):; -mkdir $(OBJDIR)
|
||||
BLD = $(OBJDIR)/$(ARCH)
|
||||
stamp_BLD: $(OBJDIR)
|
||||
-mkdir "$(BLD)"
|
||||
echo $(BLD) > $@
|
||||
|
||||
COMPILER_TEMP_FILES = *.pdb
|
||||
|
||||
CP = cp -f
|
||||
CP_DIR = cp -rf
|
||||
IFNOTSAMEDIR = if not exist ..\$(DIRNAME)_same-dir.tst
|
||||
ENDIF =
|
||||
FOREACH = for %%f in (
|
||||
FORVAR = %%f
|
||||
FORDO = ) do
|
||||
ENDFOR =
|
||||
ARGQUOTE = "
|
||||
# "
|
||||
DQUOTE = \"
|
||||
DEL = rm
|
||||
DEL_TREE = rm -r
|
||||
|
||||
!ifdef NODEBUG
|
||||
DEBUG_FLAG =
|
||||
DEBUG_LINK =
|
||||
D =
|
||||
!else
|
||||
DEBUG_FLAG = -Zi
|
||||
DEBUG_LINK = -debug
|
||||
D = d
|
||||
!endif
|
||||
|
||||
# gcc-specific pragma (ignore for MSVC)
|
||||
PRAGMA_SYSTEM_HEADER =
|
||||
|
||||
!if "$(ARCH)" == "i386"
|
||||
!ifdef NOOPT
|
||||
#ARCH_CFLAGS = -nologo -c -Zel -W2 -H63 -Od -G3d -Zp8 $(DEBUG_FLAG)
|
||||
ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zl -Zp8 -W2 -Od -Gd $(DEBUG_FLAG)
|
||||
!else
|
||||
#ARCH_CFLAGS = -nologo -c -Zel -W2 -H63 -Oxsb2 -Oy- -G6dF -Zp8 $(DEBUG_FLAG)
|
||||
ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zl -Zp8 -W2 -Oi -Ot -Oy- -Ob2 -GF -Gy -Gd $(DEBUG_FLAG)
|
||||
!endif
|
||||
ARCH_LDFLAGS = $(SYS_LDFLAGS)
|
||||
EMACS_HEAPSIZE = 27
|
||||
EMACS_PURESIZE = 5000000
|
||||
EMACS_MANIFEST = emacs-x86.manifest
|
||||
|
||||
!else
|
||||
!if "$(ARCH)" == "mips"
|
||||
ARCH_CFLAGS = -D_MIPS_=1 -c -W2 -Zi -Od -Gt0
|
||||
ARCH_LDFLAGS = $(SYS_LDFLAGS)
|
||||
EMACS_HEAPSIZE = 27
|
||||
EMACS_PURESIZE = 5000000
|
||||
EMACS_MANIFEST = emacs-mips.manifest
|
||||
|
||||
!else
|
||||
!if "$(ARCH)" == "alpha"
|
||||
!if "$(BUILD_TYPE)" == "spd"
|
||||
ARCH_CFLAGS = -D_ALPHA_=1 -c -Ze -Zi -W2 -Od -D__stdcall= -D__cdecl=
|
||||
!else
|
||||
ARCH_CFLAGS = -D_ALPHA_=1 -c -Ze -Zi -W2 -O1 -D__stdcall= -D__cdecl=
|
||||
!endif
|
||||
ARCH_LDFLAGS = $(SYS_LDFLAGS)
|
||||
EMACS_HEAPSIZE = 27
|
||||
EMACS_PURESIZE = 5000000
|
||||
EMACS_MANIFEST = emacs-alpha.manifest
|
||||
|
||||
!else
|
||||
!if "$(ARCH)" == "ppc"
|
||||
# These flags are a guess...if they don't work, please send me mail.
|
||||
ARCH_LDFLAGS = $(SYS_LDFLAGS)
|
||||
EMACS_HEAPSIZE = 27
|
||||
EMACS_PURESIZE = 5000000
|
||||
EMACS_MANIFEST = emacs-ppc.manifest
|
||||
|
||||
!else
|
||||
!if "$(ARCH)" == "AMD64"
|
||||
!ifdef NOOPT
|
||||
ARCH_CFLAGS = -nologo -D_AMD64_=1 -DWIN64 -D_WIN64 -DWIN32 -D_WIN32 -c -Zl -Zp8 -W2 -Od -Gd -Wp64 $(DEBUG_FLAG)
|
||||
!else
|
||||
ARCH_CFLAGS = -nologo -D_AMD64_=1 -DWIN64 -D_WIN64 -DWIN32 -D_WIN32 -c -Zl -Zp8 -W2 -O2x -GF -Gy -Gd $(DEBUG_FLAG)
|
||||
!endif
|
||||
ARCH_LDFLAGS = $(SYS_LDFLAGS) -machine:x64
|
||||
ARCH_RCFLAGS = -DWIN64
|
||||
EMACS_HEAPSIZE = 42
|
||||
EMACS_PURESIZE = 10000000
|
||||
EMACS_MANIFEST = emacs-x64.manifest
|
||||
|
||||
!else
|
||||
!ERROR Unknown architecture type "$(ARCH)".
|
||||
!endif
|
||||
!endif
|
||||
!endif
|
||||
!endif
|
||||
!endif
|
||||
|
||||
LINK_FLAGS = $(ARCH_LDFLAGS) $(DEBUG_LINK) $(USER_LDFLAGS)
|
||||
|
||||
# From MSVC 5.0 onwards, it seem base relocation information is not included,
|
||||
# at least in release builds. We need to ensure the reloc info is included
|
||||
# in order to use the MSVC profiler.
|
||||
!IF ("$(_NMAKE_VER)" == "$(_NMAKE_VER_4)")
|
||||
EXTRA_LINK =
|
||||
!ELSE
|
||||
EXTRA_LINK = -profile
|
||||
!ENDIF
|
||||
|
||||
#
|
||||
# If the compiler supports compiling multiple .c files to .o files at
|
||||
# one time, use this feature.
|
||||
#
|
||||
!IF ("$(_NMAKE_VER)" == "$(_NMAKE_VER_4)")
|
||||
.c{$(BLD)}.obj:
|
||||
$(CC) $(CFLAGS) -Fo$(BLD)\ $<
|
||||
!ELSE
|
||||
.c{$(BLD)}.obj::
|
||||
$(CC) $(CFLAGS) -Fo$(BLD)\ $<
|
||||
!ENDIF
|
66
nt/paths.h
66
nt/paths.h
|
@ -1,66 +0,0 @@
|
|||
/* paths.h file for MS Windows
|
||||
|
||||
Copyright (C) 1993, 1995, 1997, 1999, 2001-2015 Free Software
|
||||
Foundation, Inc.
|
||||
|
||||
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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Relative file names in this file that begin with "%emacs_dir%/" are
|
||||
treated specially by decode_env_path: they are expanded relative to
|
||||
the value of the emacs_dir environment variable, which points to
|
||||
the root of the Emacs tree. */
|
||||
|
||||
/* The default search path for Lisp function "load".
|
||||
Together with PATH_SITELOADSEARCH, this sets load-path. */
|
||||
/* #define PATH_LOADSEARCH "/usr/local/lib/emacs/lisp" */
|
||||
#define PATH_LOADSEARCH "%emacs_dir%/lisp"
|
||||
|
||||
/* Like PATH_LOADSEARCH, but contains the non-standard pieces. */
|
||||
#define PATH_SITELOADSEARCH "%emacs_dir%/site-lisp;%emacs_dir%/../site-lisp"
|
||||
|
||||
/* Like PATH_LOADSEARCH, but used only when Emacs is dumping. This
|
||||
path is usually identical to PATH_LOADSEARCH except that the entry
|
||||
for the directory containing the installed lisp files has been
|
||||
replaced with ../lisp. */
|
||||
#define PATH_DUMPLOADSEARCH "../lisp"
|
||||
|
||||
/* The extra search path for programs to invoke. This is appended to
|
||||
whatever the PATH environment variable says to set the Lisp
|
||||
variable exec-path and the first file name in it sets the Lisp
|
||||
variable exec-directory. exec-directory is used for finding
|
||||
executables and other architecture-dependent files. */
|
||||
/* #define PATH_EXEC "/usr/local/lib/emacs/etc" */
|
||||
#define PATH_EXEC "%emacs_dir%/bin;%emacs_dir%/lib-src/oo-spd/i386;%emacs_dir%/lib-src/oo/i386;%emacs_dir%/nt/oo-spd/i386;%emacs_dir%/nt/oo/i386"
|
||||
|
||||
/* Where Emacs should look for its architecture-independent data
|
||||
files, like the NEWS file. The lisp variable data-directory
|
||||
is set to this value. */
|
||||
/* #define PATH_DATA "/usr/local/lib/emacs/data" */
|
||||
#define PATH_DATA "%emacs_dir%/etc"
|
||||
|
||||
/* Where Emacs should look for X bitmap files.
|
||||
The lisp variable x-bitmap-file-path is set based on this value. */
|
||||
#define PATH_BITMAPS ""
|
||||
|
||||
/* Where Emacs should look for its docstring file. The lisp variable
|
||||
doc-directory is set to this value. */
|
||||
#define PATH_DOC "%emacs_dir%/etc"
|
||||
|
||||
/* Where the configuration process believes the info tree lives. The
|
||||
lisp variable configure-info-directory gets its value from this
|
||||
macro, and is then used to set the Info-default-directory-list. */
|
||||
/* #define PATH_INFO "/usr/local/info" */
|
||||
#define PATH_INFO "C:/emacs/info"
|
1725
src/makefile.w32-in
1725
src/makefile.w32-in
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue