1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
# Top-level Makefile for Emacs under MS-DOS/DJGPP v2.0 or higher. -*-makefile-*-
# Copyright (C) 1996,1997,1998,1999,2000,2001,2002
# 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 2, or (at your option)
# any later version.
# GNU Emacs is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with GNU Emacs; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
# make all to compile and build Emacs.
# make install to install it.
# make TAGS to update tags tables.
#
# make clean or make mostlyclean
# Delete all files from the current directory that are normally
# created by building the program. Don't delete the files that
# record the configuration. Also preserve files that could be made
# by building, but normally aren't because the distribution comes
# with them.
#
# Delete `.dvi' files here if they are not part of the distribution.
#
# make distclean
# Delete all files from the current directory that are created by
# configuring or building the program. If you have unpacked the
# source and built the program without creating any other files,
# `make distclean' should leave only the files that were in the
# distribution.
#
# make realclean
# Delete everything from the current directory that can be
# reconstructed with this Makefile. This typically includes
# everything deleted by distclean, plus more: C source files
# produced by Bison, tags tables, info files, and so on.
#
# make extraclean
# Still more severe - delete backup and autosave files, too.
# This gork is required for those who use a Unix-style shell, and
# have SHELL in the environment pointing to it. Here we force
# Make to use COMMAND.COM instead. This Makefile won't work otherwise.
# (The /xyzzy directory is used to minimize the chance that someone
# actually has such a directory with an incompatible command.com. We
# used to have /dos there, but some Windows installations have an old
# version of DOS stashed in that directory, and command.com from there
# won't run on Windows, complaining about "Incorrect DOS version".
# Make will look up PATH for the shell executable, so the directory name
# is not important.)
SHELL=/xyzzy/command
MAKESHELL=/xyzzy/command
# Generate a full pathname of the top-level installation directory
top_srcdir := $(subst \,/,$(shell cd))
# Find out which version of Emacs this is.
version := ${shell sed -n -e '/(defconst emacs-version/s/^[^"]*\("[^"]*"\).*/\1/p' lisp/version.el}
all: maybe_bootstrap lib-src src man lispref lispintro
lib-src: FRC
cd lib-src
$(MAKE) top_srcdir=${top_srcdir} version=${version}
cd ..
src: FRC
cd src
$(MAKE) top_srcdir=${top_srcdir}
djecho -s '/-geometry/s,^.*,set environment HOME $(top_srcdir),' \
'/environment *TERM/s/^.*/set environment TERM internal/' \
'/x_error_quitter/s/^.*/set environment NAME root/' >gdb.sed
sed -f gdb.sed _gdbinit >gdb.tmp
djecho -a gdb.tmp -s 'set environment USER root' \
'set environment EMACSPATH $(top_srcdir)/bin' \
'set environment SHELL $(subst \,/,$(COMSPEC))' \
'set environment PATH $(subst \,/,$(PATH))'
update gdb.tmp gdb.ini
rm -f gdb.tmp gdb.sed
cd ..
if exist leim\Makefile redir $(MAKE) -C leim top_srcdir=${top_srcdir}
man lispref lispintro: FRC
cd $@
$(MAKE) top_srcdir=${top_srcdir}
cd ..
install: all
if not exist bin\nul md bin
cd lib-src
command.com /c >/dev/null for %p in (hexl etags ctags b2m ebrowse) do\
if exist %p.exe mv -f %p.exe ../bin
if exist fns.el update fns.el ../bin/fns.el
cd ..
cd src
stubify emacs
stubedit emacs.exe minstack=512k
mv -f emacs.exe ../bin/
cd ..
djecho -s "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)" \
" (normal-top-level-add-subdirs-to-load-path))" \
> ./subdirs.el
if not exist .\site-lisp\subdirs.el \
update ./subdirs.el ./site-lisp/subdirs.el
rm -f ./subdirs.el
FRC:
# We cannot use [a-zA-Z]* like the mainline distribution does, because
# that causes all file names to be returned in upper-case on DOS...
TAGS tags: lib-src FRC
cd lib-src
if exist etags.exe mv -f etags.exe ../bin
cd ..
cd lisp
../bin/etags .../*.el
cd ..
cd src
../bin/etags --include=../lisp/TAGS \
'--regex=/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' *.c *.h s/msdos.h m/intel386.h
cd ..
./bin/etags --include=src/TAGS
check:
@echo "We don't have any tests for GNU Emacs yet."
clean:
cd lib-src
$(MAKE) clean
cd ..
cd src
$(MAKE) clean
cd ..
cd oldxmenu
-$(MAKE) clean
cd ..
cd leim
if exist Makefile redir $(MAKE) clean
cd ..
.PHONY: bootstrap bootstrap-lisp-1 boostrap-src bootstrap-lisp bootstrap-clean
.PHONY: maybe_bootstrap
maybe_bootstrap:
@if not exist lisp\abbrev.elc djecho \
"Some *.elc files are missing. You should do a `make bootstrap'."
@if not exist lisp\abbrev.elc redir -e /dev/null -oe redir fail-this-make.exe
bootstrap: bootstrap-clean-before bootstrap-lisp-1 bootstrap-src bootstrap-lisp bootstrap-clean-after all info
bootstrap-lisp-1:
cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean; cd ..
bootstrap-lisp:
cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=${top_srcdir}/src/b-emacs.exe lisp=${top_srcdir}/lisp; cd ..
bootstrap-src:
cd src; $(MAKE) $(MFLAGS) bootstrap; cd ..
### Used for `bootstrap' to avoid deleting existing dumped Emacs executables.
bootstrap-clean-before: FRC
cd src; $(MAKE) $(MFLAGS) mostlyclean; cd ..
cd lib-src; $(MAKE) $(MFLAGS) clean; cd ..
cd leim; $(MAKE) $(MFLAGS) clean; cd ..
bootstrap-clean-after:
cd src; $(MAKE) $(MFLAGS) mostlyclean; cd ..
|