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:
Eli Zaretskii 2015-08-15 10:56:51 +03:00
parent 8fa49a6786
commit 8db2b2a7d3
22 changed files with 18 additions and 9182 deletions

View file

@ -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

View file

@ -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.

View file

@ -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:

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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 $@

View file

@ -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

View file

@ -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)

View file

@ -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/>.

File diff suppressed because it is too large Load diff

View file

@ -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=

View file

@ -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_ (]+"\([^"]+\)"/

View file

@ -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

View file

@ -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)$@ $<

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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"

File diff suppressed because it is too large Load diff