7328
|
1 # Makefile for GNU Emacs.
|
11235
|
2 # Copyright (C) 1985, 87, 88, 93, 94, 95 Free Software Foundation, Inc.
|
4796
|
3
|
7328
|
4 # This file is part of GNU Emacs.
|
4796
|
5
|
7328
|
6 # GNU Emacs is free software; you can redistribute it and/or modify
|
|
7 # it under the terms of the GNU General Public License as published by
|
|
8 # the Free Software Foundation; either version 2, or (at your option)
|
|
9 # any later version.
|
4796
|
10
|
7328
|
11 # GNU Emacs is distributed in the hope that it will be useful,
|
|
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14 # GNU General Public License for more details.
|
4796
|
15
|
7328
|
16 # You should have received a copy of the GNU General Public License
|
|
17 # along with GNU Emacs; see the file COPYING. If not, write to
|
|
18 # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
4796
|
19
|
7328
|
20 # Here are the things that we expect ../configure to edit.
|
4796
|
21 srcdir=@srcdir@
|
|
22 VPATH=@srcdir@
|
|
23 CC=@CC@
|
|
24 CPP=@CPP@
|
|
25 CFLAGS=@CFLAGS@
|
|
26 LN_S=@LN_S@
|
7328
|
27 # Substitute an assignment for the MAKE variable, because
|
|
28 # BSD doesn't have it as a default.
|
6927
|
29 @SET_MAKE@
|
4796
|
30
|
7328
|
31 # On Xenix and the IBM RS6000, double-dot gets screwed up.
|
4796
|
32 dot = .
|
|
33 lispdir = ${srcdir}/$(dot)$(dot)/lisp/
|
|
34 libsrc = $(dot)$(dot)/lib-src/
|
|
35 etc = $(dot)$(dot)/etc/
|
|
36 shortnamesdir = $(dot)$(dot)/shortnames/
|
|
37 cppdir = $(dot)$(dot)/cpp/
|
|
38 oldXMenudir = $(dot)$(dot)/oldXMenu/
|
5670
|
39 lwlibdir = $(dot)$(dot)/lwlib/
|
7045
|
40
|
7328
|
41 # Configuration files for .o files to depend on.
|
7045
|
42 M_FILE = ${srcdir}/@machfile@
|
|
43 S_FILE = ${srcdir}/@opsysfile@
|
|
44 config_h = config.h $(M_FILE) $(S_FILE)
|
4796
|
45
|
7328
|
46 # ========================== start of cpp stuff ======================= */
|
|
47 /* From here on, comments must be done in C syntax. */
|
|
48
|
5434
|
49 CPPFLAGS=
|
|
50 LDFLAGS=
|
|
51 C_SWITCH_SYSTEM=
|
|
52
|
4796
|
53 /* just to be sure the sh is used */
|
|
54 SHELL=/bin/sh
|
|
55
|
|
56 #define NO_SHORTNAMES
|
|
57 #define THIS_IS_YMAKEFILE
|
|
58 #define NOT_C_CODE
|
|
59 #include "config.h"
|
|
60
|
8327
|
61 /* We won't really call alloca;
|
|
62 don't let the file name alloca.c get messed up. */
|
|
63 #ifdef alloca
|
|
64 #undef alloca
|
|
65 #endif
|
|
66
|
4796
|
67 /* Use HAVE_X11 as an alias for X11 in this file
|
|
68 to avoid problems with X11 as a subdirectory name
|
|
69 in -I and other such options which pass through this file. */
|
|
70
|
|
71 #ifdef X11
|
|
72 #define HAVE_X11
|
|
73 #undef X11
|
|
74 #endif
|
|
75
|
|
76 /* On some machines #define register is done in config;
|
|
77 don't let it interfere with this file. */
|
|
78 #undef register
|
|
79
|
|
80 /* On some systems we may not be able to use the system make command. */
|
|
81 #ifdef MAKE_COMMAND
|
|
82 MAKE = MAKE_COMMAND
|
|
83 #endif
|
|
84
|
|
85 #ifdef C_COMPILER
|
|
86 CC = C_COMPILER
|
|
87 #endif
|
|
88
|
7580
|
89 /* GNU libc requires ORDINARY_LINK so that its own crt0 is used.
|
|
90 Linux is an exception because it uses a funny variant of GNU libc. */
|
|
91 #ifdef __GNU_LIBRARY__
|
|
92 #ifndef LINUX
|
|
93 #define ORDINARY_LINK
|
|
94 #endif
|
|
95 #endif
|
|
96
|
4796
|
97 /* Some machines don't find the standard C libraries in the usual place. */
|
|
98 #ifndef ORDINARY_LINK
|
|
99 #ifndef LIB_STANDARD
|
|
100 #define LIB_STANDARD -lc
|
|
101 #endif
|
|
102 #else
|
|
103 #ifndef LIB_STANDARD
|
|
104 #define LIB_STANDARD
|
|
105 #endif
|
|
106 #endif
|
|
107
|
|
108 /* Unless inhibited or changed, use -lg to link for debugging. */
|
|
109 #ifndef LIBS_DEBUG
|
|
110 #define LIBS_DEBUG -lg
|
|
111 #endif
|
|
112
|
|
113 /* Some s/*.h files define this to request special libraries. */
|
|
114 #ifndef LIBS_SYSTEM
|
|
115 #define LIBS_SYSTEM
|
|
116 #endif
|
|
117
|
|
118 /* Some m/*.h files define this to request special libraries. */
|
|
119 #ifndef LIBS_MACHINE
|
|
120 #define LIBS_MACHINE
|
|
121 #endif
|
|
122
|
|
123 #ifndef LIB_MATH
|
|
124 # ifdef LISP_FLOAT_TYPE
|
|
125 # define LIB_MATH -lm
|
|
126 # else /* ! defined (LISP_FLOAT_TYPE) */
|
|
127 # define LIB_MATH
|
|
128 # endif /* ! defined (LISP_FLOAT_TYPE) */
|
|
129 #endif /* LIB_MATH */
|
|
130
|
|
131 /* Some s/*.h files define this to request special switches in ld. */
|
|
132 #ifndef LD_SWITCH_SYSTEM
|
|
133 #if !defined (__GNUC__) && (defined(COFF_ENCAPSULATE) || (defined (BSD) && !defined (COFF)))
|
|
134 #define LD_SWITCH_SYSTEM -X
|
|
135 #else /* ! defined(COFF_ENCAPSULATE) || (defined (BSD) && !defined (COFF)) */
|
|
136 #define LD_SWITCH_SYSTEM
|
|
137 #endif /* ! defined(COFF_ENCAPSULATE) || (defined (BSD) && !defined (COFF)) */
|
|
138 #endif /* LD_SWITCH_SYSTEM */
|
|
139
|
|
140 /* Some m/*.h files define this to request special switches in ld. */
|
|
141 #ifndef LD_SWITCH_MACHINE
|
|
142 #define LD_SWITCH_MACHINE
|
|
143 #endif
|
|
144
|
|
145 /* Some m/*.h files define this to request special switches in cc. */
|
|
146 #ifndef C_SWITCH_MACHINE
|
|
147 #define C_SWITCH_MACHINE
|
|
148 #endif
|
|
149
|
|
150 /* Some s/*.h files define this to request special switches in cc. */
|
|
151 #ifndef C_SWITCH_SYSTEM
|
|
152 #define C_SWITCH_SYSTEM
|
|
153 #endif
|
|
154
|
|
155 /* These macros are for switches specifically related to X Windows. */
|
|
156 #ifndef C_SWITCH_X_MACHINE
|
|
157 #define C_SWITCH_X_MACHINE
|
|
158 #endif
|
|
159
|
|
160 #ifndef C_SWITCH_X_SYSTEM
|
|
161 #define C_SWITCH_X_SYSTEM
|
|
162 #endif
|
|
163
|
|
164 #ifndef C_SWITCH_X_SITE
|
|
165 #define C_SWITCH_X_SITE
|
|
166 #endif
|
|
167
|
|
168 #ifndef LD_SWITCH_X_SITE
|
|
169 #define LD_SWITCH_X_SITE
|
|
170 #endif
|
|
171
|
7723
|
172 #ifndef LD_SWITCH_X_DEFAULT
|
|
173 #define LD_SWITCH_X_DEFAULT
|
|
174 #endif
|
|
175
|
4796
|
176 /* These can be passed in from config.h to define special load and
|
|
177 compile switches needed by individual sites */
|
|
178 #ifndef LD_SWITCH_SITE
|
|
179 #define LD_SWITCH_SITE
|
|
180 #endif
|
|
181
|
|
182 #ifndef C_SWITCH_SITE
|
|
183 #define C_SWITCH_SITE
|
|
184 #endif
|
|
185
|
|
186 #ifndef ORDINARY_LINK
|
|
187
|
|
188 #ifndef CRT0_COMPILE
|
|
189 #define CRT0_COMPILE $(CC) -c $(ALL_CFLAGS) C_SWITCH_ASM
|
|
190 #endif
|
|
191
|
|
192 #ifndef START_FILES
|
|
193 #ifdef NO_REMAP
|
|
194 #ifdef COFF_ENCAPSULATE
|
|
195 #define START_FILES pre-crt0.o /usr/local/lib/gcc-crt0.o
|
|
196 #else /* ! defined (COFF_ENCAPSULATE) */
|
|
197 #define START_FILES pre-crt0.o /lib/crt0.o
|
|
198 #endif /* ! defined (COFF_ENCAPSULATE) */
|
|
199 #else /* ! defined (NO_REMAP) */
|
10585
|
200 #define START_FILES ecrt0.o
|
4796
|
201 #endif /* ! defined (NO_REMAP) */
|
|
202 #endif /* START_FILES */
|
|
203 STARTFILES = START_FILES
|
|
204
|
|
205 #else /* ORDINARY_LINK */
|
|
206
|
|
207 /* config.h might want to force START_FILES anyway */
|
|
208 #ifdef START_FILES
|
|
209 STARTFILES = START_FILES
|
|
210 #endif /* START_FILES */
|
|
211
|
|
212 #endif /* not ORDINARY_LINK */
|
|
213
|
|
214
|
|
215 /* cc switches needed to make `asm' keyword work.
|
|
216 Nothing special needed on most machines. */
|
|
217 #ifndef C_SWITCH_ASM
|
|
218 #define C_SWITCH_ASM
|
|
219 #endif
|
|
220
|
|
221 /* Figure out whether the system cpp can handle long names.
|
|
222 Do it by testing it right now.
|
|
223 If it loses, arrange to use the GNU cpp. */
|
|
224
|
|
225 #define LONGNAMEBBBFOOX
|
|
226 #ifdef LONGNAMEBBBARFOOX
|
|
227 /* Installed cpp fails to distinguish those names! */
|
|
228 /* Arrange to compile the GNU cpp later on */
|
|
229 #define NEED_CPP
|
|
230 /* Cause cc to invoke the cpp that comes with Emacs,
|
|
231 which will be in a file named localcpp. */
|
|
232 MYCPPFLAG= -Blocal
|
|
233 /* LOCALCPP is the local one or nothing.
|
|
234 CPP is the local one or the standardone. */
|
|
235 LOCALCPP= localcpp
|
|
236 #endif /* ! defined (LONGNAMEBBBARFOOX) */
|
|
237
|
|
238 #ifdef SHORTNAMES
|
|
239 SHORT= shortnames
|
|
240 #endif
|
|
241
|
12095
|
242 #ifdef USE_X_TOOLKIT
|
|
243 TOOLKIT_DEFINES = -DUSE_@X_TOOLKIT_TYPE@
|
|
244 #else
|
|
245 TOOLKIT_DEFINES =
|
|
246 #endif
|
|
247
|
4796
|
248 /* DO NOT use -R. There is a special hack described in lastfile.c
|
|
249 which is used instead. Some initialized data areas are modified
|
|
250 at initial startup, then labeled as part of the text area when
|
|
251 Emacs is dumped for the first time, and never changed again. */
|
|
252
|
|
253 /* -Demacs is needed to make some files produce the correct version
|
|
254 for use in Emacs.
|
|
255
|
|
256 -DHAVE_CONFIG_H is needed for some other files to take advantage of
|
|
257 the information in `config.h'. */
|
5030
|
258
|
4796
|
259 /* C_SWITCH_X_SITE must come before C_SWITCH_X_MACHINE and C_SWITCH_X_SYSTEM
|
|
260 since it may have -I options that should override those two. */
|
12095
|
261 ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(TOOLKIT_DEFINES) $(MYCPPFLAG) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM ${CFLAGS}
|
4796
|
262 .c.o:
|
|
263 $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
|
|
264
|
|
265 #ifndef LIBX10_MACHINE
|
|
266 #define LIBX10_MACHINE
|
|
267 #endif
|
|
268
|
|
269 #ifndef LIBX11_MACHINE
|
|
270 #define LIBX11_MACHINE
|
|
271 #endif
|
|
272
|
|
273 #ifndef LIBX10_SYSTEM
|
|
274 #define LIBX10_SYSTEM
|
|
275 #endif
|
|
276
|
|
277 #ifndef LIBX11_SYSTEM
|
|
278 #define LIBX11_SYSTEM
|
|
279 #endif
|
|
280
|
|
281 #ifndef LIB_X11_LIB
|
|
282 #define LIB_X11_LIB -lX11
|
|
283 #endif
|
|
284
|
|
285 #ifdef HAVE_X_WINDOWS
|
|
286 #ifdef HAVE_X_MENU
|
|
287
|
|
288 /* Include xmenu.o in the list of X object files. */
|
|
289 XOBJ= xterm.o xfns.o xfaces.o xmenu.o xselect.o xrdb.o
|
|
290
|
|
291 /* The X Menu stuff is present in the X10 distribution, but missing
|
|
292 from X11. If we have X10, just use the installed library;
|
|
293 otherwise, use our own copy. */
|
|
294 #ifdef HAVE_X11
|
5670
|
295 #ifdef USE_X_TOOLKIT
|
8787
|
296 OLDXMENU=${lwlibdir}liblw.a
|
5670
|
297 LIBXMENU= $(OLDXMENU)
|
|
298 #else /* not USE_X_TOOLKIT */
|
8787
|
299 OLDXMENU= ${oldXMenudir}libXMenu11.a
|
4796
|
300 LIBXMENU= $(OLDXMENU)
|
5670
|
301 #endif /* not USE_X_TOOLKIT */
|
|
302 #else /* not HAVE_X11 */
|
4796
|
303 LIBXMENU= -lXMenu
|
5670
|
304 #endif /* not HAVE_X11 */
|
4796
|
305
|
5670
|
306 #else /* not HAVE_X_MENU */
|
4796
|
307
|
|
308 /* Otherwise, omit xmenu.o from the list of X object files, and
|
|
309 don't worry about the menu library at all. */
|
|
310 XOBJ= xterm.o xfns.o xfaces.o xselect.o xrdb.o
|
|
311 LIBXMENU=
|
5670
|
312 #endif /* not HAVE_X_MENU */
|
|
313
|
|
314 #ifdef USE_X_TOOLKIT
|
7479
|
315 #define @X_TOOLKIT_TYPE@
|
|
316 #if defined (LUCID) || defined (ATHENA)
|
|
317 LIBW= -lXaw
|
|
318 #endif
|
|
319 #ifdef MOTIF
|
|
320 #ifdef LIB_MOTIF
|
|
321 LIBW= LIB_MOTIF
|
|
322 #else
|
|
323 LIBW= -lXm
|
|
324 #endif
|
|
325 #endif
|
|
326 #ifdef OPEN_LOOK
|
|
327 LIBW= -lXol
|
|
328 #endif
|
|
329
|
7488
|
330 #ifdef HAVE_X11XTR6
|
9205
|
331 #ifdef NEED_LIBW
|
|
332 LIBXTR6 = -lSM -lICE -lw
|
|
333 #else
|
7484
|
334 LIBXTR6 = -lSM -lICE
|
|
335 #endif
|
9205
|
336 #endif
|
7484
|
337
|
7661
|
338 LIBXT= $(LIBW) -lXmu -lXt $(LIBXTR6) -lXext
|
5670
|
339 #else
|
|
340 LIBXT=
|
|
341 #endif
|
4796
|
342
|
|
343 #ifdef HAVE_X11
|
7723
|
344 /* LD_SWITCH_X_DEFAULT comes after everything else that specifies
|
|
345 options for where to find X libraries, but before those libraries. */
|
9203
|
346 X11_LDFLAGS = LD_SWITCH_X_SITE LD_SWITCH_X_DEFAULT
|
|
347 LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
|
5670
|
348 #else /* not HAVE_X11 */
|
4796
|
349 LIBX= $(LIBXMENU) LD_SWITCH_X_SITE -lX10 LIBX10_MACHINE LIBX10_SYSTEM
|
5670
|
350 #endif /* not HAVE_X11 */
|
|
351 #endif /* not HAVE_X_WINDOWS */
|
4796
|
352
|
|
353 #ifndef ORDINARY_LINK
|
|
354 /* Fix linking if compiled with GCC. */
|
|
355 #ifdef __GNUC__
|
|
356
|
|
357 #if __GNUC__ > 1
|
|
358
|
5234
|
359 #ifdef LINKER
|
|
360 #define LINKER_WAS_SPECIFIED
|
|
361 #endif
|
|
362
|
4796
|
363 /* Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
|
|
364 places that are difficult to figure out at make time. Fortunately,
|
|
365 these same versions allow you to pass arbitrary flags on to the
|
|
366 linker, so there's no reason not to use it as a linker.
|
|
367
|
|
368 Well, it's not quite perfect. The `-nostdlib' keeps GCC from
|
|
369 searching for libraries in its internal directories, so we have to
|
|
370 ask GCC explicitly where to find libgcc.a. */
|
|
371
|
|
372 #ifndef LINKER
|
|
373 #define LINKER $(CC) -nostdlib
|
|
374 #endif
|
|
375
|
|
376 #ifndef LIB_GCC
|
|
377 /* Ask GCC where to find libgcc.a. */
|
|
378 #define LIB_GCC `$(CC) -print-libgcc-file-name`
|
5670
|
379 #endif /* not LIB_GCC */
|
4796
|
380
|
|
381 GNULIB_VAR = LIB_GCC
|
|
382
|
5234
|
383 #ifndef LINKER_WAS_SPECIFIED
|
4796
|
384 /* GCC passes any argument prefixed with -Xlinker directly to the
|
|
385 linker. See prefix-args.c for an explanation of why we don't do
|
|
386 this with the shell's `for' construct.
|
|
387 Note that some people don't have '.' in their paths, so we must
|
|
388 use ./prefix-args. */
|
|
389 #define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
|
5234
|
390 #else
|
|
391 #define YMF_PASS_LDFLAGS(flags) flags
|
|
392 #endif
|
4796
|
393
|
|
394 #else /* __GNUC__ < 2 */
|
|
395
|
|
396 #ifndef LIB_GCC
|
|
397 #define LIB_GCC /usr/local/lib/gcc-gnulib
|
5670
|
398 #endif /* not LIB_GCC */
|
4796
|
399 GNULIB_VAR = `if [ -f LIB_GCC ] ; then echo LIB_GCC; else echo; fi`
|
|
400 #endif /* __GNUC__ < 2 */
|
5670
|
401 #else /* not __GNUC__ */
|
4796
|
402 GNULIB_VAR =
|
|
403
|
5670
|
404 #endif /* not __GNUC__ */
|
4796
|
405 #endif /* not ORDINARY_LINK */
|
|
406
|
|
407 /* Specify address for ld to start loading at,
|
|
408 if requested by configuration. */
|
|
409 #ifdef LD_TEXT_START_ADDR
|
|
410 STARTFLAGS = -T LD_TEXT_START_ADDR -e __start
|
|
411 #endif
|
|
412
|
|
413 #ifdef ORDINARY_LINK
|
|
414 LD = $(CC)
|
|
415 #else
|
|
416 #ifdef COFF_ENCAPSULATE
|
|
417 LD=$(CC) -nostdlib
|
|
418 #else /* not ORDINARY_LINK */
|
|
419 #ifdef LINKER
|
|
420 LD=LINKER
|
5670
|
421 #else /* not LINKER */
|
4796
|
422 LD=ld
|
5670
|
423 #endif /* not LINKER */
|
|
424 #endif /* not COFF_ENCAPSULATE */
|
4796
|
425 #endif /* not ORDINARY_LINK */
|
|
426
|
7531
|
427 ALL_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_MACHINE LD_SWITCH_SITE $(LDFLAGS)
|
4796
|
428
|
11835
|
429 /* A macro which other sections of Makefile can redefine to munge the
|
4796
|
430 flags before they're passed to LD. This is helpful if you have
|
11835
|
431 redefined LD to something odd, like "gcc".
|
|
432 (The YMF prefix is a holdover from the old name "ymakefile".)
|
|
433 */
|
4796
|
434 #ifndef YMF_PASS_LDFLAGS
|
|
435 #define YMF_PASS_LDFLAGS(flags) flags
|
|
436 #endif
|
|
437
|
|
438 /* Allow config.h to specify a replacement file for unexec.c. */
|
|
439 #ifndef UNEXEC
|
|
440 #define UNEXEC unexec.o
|
|
441 #endif
|
|
442 #ifndef UNEXEC_SRC
|
|
443 #define UNEXEC_SRC unexec.c
|
|
444 #endif
|
|
445
|
|
446 #ifdef USE_TEXT_PROPERTIES
|
|
447 #define INTERVAL_SRC intervals.h
|
|
448 #define INTERVAL_OBJ intervals.o textprop.o
|
|
449 #else
|
|
450 #define INTERVAL_SRC
|
|
451 #define INTERVAL_OBJ
|
|
452 #endif
|
|
453
|
|
454 #ifdef HAVE_GETLOADAVG
|
|
455 #define GETLOADAVG_OBJ
|
|
456 #else
|
|
457 #define GETLOADAVG_OBJ getloadavg.o
|
|
458 #endif
|
|
459
|
9254
|
460 #ifdef HAVE_MKTIME
|
|
461 #define MKTIME_OBJ
|
|
462 #else
|
|
463 #define MKTIME_OBJ mktime.o
|
|
464 #endif
|
|
465
|
9572
|
466 #ifdef MSDOS
|
|
467 #ifdef HAVE_X_WINDOWS
|
|
468 #define MSDOS_OBJ dosfns.o msdos.o
|
|
469 #else
|
|
470 #define MSDOS_OBJ dosfns.o msdos.o xfaces.o xmenu.o
|
|
471 #endif
|
|
472 #else
|
|
473 #define MSDOS_OBJ
|
|
474 #endif
|
|
475
|
|
476
|
4796
|
477 /* lastfile must follow all files
|
|
478 whose initialized data areas should be dumped as pure by dump-emacs. */
|
|
479 obj= dispnew.o frame.o scroll.o xdisp.o window.o \
|
8625
00437255eed7
(obj): Put cm.o before term.o. (Avoids mysterious lossage on Irix.)
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
480 cm.o term.o $(XOBJ) \
|
4796
|
481 emacs.o keyboard.o macros.o keymap.o sysdep.o \
|
|
482 buffer.o filelock.o insdel.o marker.o INTERVAL_OBJ \
|
|
483 minibuf.o fileio.o dired.o filemode.o \
|
|
484 cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
|
|
485 alloc.o data.o doc.o editfns.o callint.o \
|
|
486 eval.o floatfns.o fns.o print.o lread.o \
|
|
487 abbrev.o syntax.o UNEXEC mocklisp.o bytecode.o \
|
|
488 process.o callproc.o \
|
9402
|
489 region-cache.o \
|
9572
|
490 doprnt.o strftime.o MKTIME_OBJ GETLOADAVG_OBJ MSDOS_OBJ
|
4796
|
491
|
5401
|
492 /* Object files used on some machine or other.
|
|
493 These go in the DOC file on all machines
|
|
494 in case they are needed there. */
|
9595
|
495 SOME_MACHINE_OBJECTS = sunfns.o msdos.o \
|
|
496 xterm.o xfns.o xfaces.o xmenu.o xselect.o xrdb.o
|
|
497
|
5401
|
498
|
4796
|
499 #ifdef TERMINFO
|
|
500 /* Used to be -ltermcap here. If your machine needs that,
|
|
501 define LIBS_TERMCAP in the m/*.h file. */
|
|
502 #ifndef LIBS_TERMCAP
|
|
503 #define LIBS_TERMCAP -lcurses
|
|
504 #endif /* LIBS_TERMCAP */
|
|
505 termcapobj = terminfo.o
|
|
506 #else /* ! defined (TERMINFO) */
|
|
507 #ifndef LIBS_TERMCAP
|
|
508 #define LIBS_TERMCAP
|
|
509 termcapobj = termcap.o tparam.o
|
|
510 #else /* LIBS_TERMCAP */
|
|
511 termcapobj = tparam.o
|
|
512 #endif /* LIBS_TERMCAP */
|
|
513 #endif /* ! defined (TERMINFO) */
|
|
514
|
|
515
|
|
516 #ifndef SYSTEM_MALLOC
|
|
517
|
|
518 #ifdef GNU_MALLOC /* New GNU malloc */
|
|
519 #ifdef REL_ALLOC
|
|
520 mallocobj = gmalloc.o ralloc.o vm-limit.o
|
|
521 #else /* ! defined (REL_ALLOC) */
|
|
522 mallocobj = gmalloc.o vm-limit.o
|
|
523 #endif /* ! defined (REL_ALLOC) */
|
|
524 #else /* Old GNU malloc */
|
|
525 mallocobj = malloc.o
|
|
526 #endif /* Old GNU malloc */
|
|
527
|
|
528 #endif /* SYSTEM_MALLOC */
|
|
529
|
|
530
|
|
531 #ifndef HAVE_ALLOCA
|
|
532 allocaobj = alloca.o
|
|
533 #else
|
|
534 allocaobj =
|
|
535 #endif
|
|
536
|
5670
|
537 #ifdef USE_X_TOOLKIT
|
|
538 widgetobj= widget.o
|
|
539 #else /* not USE_X_TOOLKIT */
|
|
540 widgetobj=
|
|
541 #endif /* not USE_X_TOOLKIT */
|
|
542
|
4796
|
543
|
|
544 /* define otherobj as list of object files that make-docfile
|
|
545 should not be told about. */
|
5670
|
546 otherobj= $(termcapobj) lastfile.o $(mallocobj) $(allocaobj) $(widgetobj)
|
4796
|
547
|
11106
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
548 #ifdef HAVE_FACES
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
549 #define FACE_SUPPORT ${lispdir}faces.elc ${lispdir}facemenu.elc
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
550 #else
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
551 #define FACE_SUPPORT
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
552 #endif
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
553
|
4796
|
554 #ifdef LISP_FLOAT_TYPE
|
|
555 #define FLOAT_SUPPORT ${lispdir}float-sup.elc
|
|
556 #else
|
|
557 #define FLOAT_SUPPORT
|
|
558 #endif
|
|
559
|
|
560 #ifdef MULTI_FRAME
|
11106
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
561 #define FRAME_SUPPORT ${lispdir}frame.elc
|
4796
|
562 #else
|
|
563 #define FRAME_SUPPORT
|
|
564 #endif
|
|
565
|
11106
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
566 #ifdef HAVE_MOUSE
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
567 #define MOUSE_SUPPORT ${lispdir}menu-bar.elc ${lispdir}mouse.elc \
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
568 ${lispdir}select.elc ${lispdir}scroll-bar.elc
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
569 #else
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
570 #define MOUSE_SUPPORT
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
571 #endif
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
572
|
6398
|
573 #ifdef HAVE_X_WINDOWS
|
6405
|
574 #define X_WINDOWS_SUPPORT
|
6398
|
575 #else
|
|
576 #define X_WINDOWS_SUPPORT
|
|
577 #endif
|
|
578
|
4796
|
579 #ifdef VMS
|
11776
|
580 #define VMS_SUPPORT ${lispdir}vmsproc.elc ${lispdir}vms-patch.elc
|
4796
|
581 #else
|
|
582 #define VMS_SUPPORT
|
|
583 #endif
|
|
584
|
7654
|
585 #ifdef MSDOS
|
11106
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
586 #define MSDOS_SUPPORT ${lispdir}ls-lisp.elc ${lispdir}disp-tab.elc ${lispdir}dos-fns.elc
|
7654
|
587 #else
|
|
588 #define MSDOS_SUPPORT
|
|
589 #endif
|
|
590
|
11106
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
591 #ifdef WINDOWSNT
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
592 #define WINNT_SUPPORT ${lispdir}ls-lisp.elc ${lispdir}winnt.elc
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
593 #else
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
594 #define WINNT_SUPPORT
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
595 #endif
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
596
|
4796
|
597 /* List of Lisp files loaded into the dumped Emacs. It's arranged
|
|
598 like this because it's easier to generate it semi-mechanically from
|
|
599 loadup.el this way.
|
|
600
|
|
601 Note that this list should not include lisp files which might not
|
|
602 be present, like site-load.el and site-init.el; this makefile
|
6398
|
603 expects them all to be either present or buildable. */
|
4796
|
604 lisp= \
|
|
605 ${lispdir}abbrev.elc \
|
|
606 ${lispdir}buff-menu.elc \
|
|
607 ${lispdir}byte-run.elc \
|
|
608 ${lispdir}c-mode.elc \
|
|
609 ${lispdir}files.elc \
|
|
610 ${lispdir}fill.elc \
|
11106
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
611 ${lispdir}format.elc \
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
612 FACE_SUPPORT \
|
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
613 MOUSE_SUPPORT \
|
4796
|
614 FLOAT_SUPPORT \
|
|
615 FRAME_SUPPORT \
|
6398
|
616 X_WINDOWS_SUPPORT \
|
4796
|
617 ${lispdir}help.elc \
|
|
618 ${lispdir}indent.elc \
|
|
619 ${lispdir}isearch.elc \
|
|
620 ${lispdir}lisp-mode.elc \
|
|
621 ${lispdir}lisp.elc \
|
|
622 ${lispdir}loaddefs.el \
|
|
623 ${lispdir}map-ynp.elc \
|
|
624 ${lispdir}page.elc \
|
|
625 ${lispdir}paragraphs.elc \
|
|
626 ${lispdir}paths.el \
|
|
627 ${lispdir}register.elc \
|
|
628 ${lispdir}replace.elc \
|
|
629 ${lispdir}simple.elc \
|
|
630 ${lispdir}startup.elc \
|
|
631 ${lispdir}subr.elc \
|
|
632 ${lispdir}text-mode.elc \
|
|
633 ${lispdir}vc-hooks.elc \
|
|
634 VMS_SUPPORT \
|
7654
|
635 MSDOS_SUPPORT \
|
11106
30ec7c9dcdb9
(FRAME_SUPPORT, MSDOS_SUPPORT): Don't list face and mouse related files here.
Karl Heuer <kwzh@gnu.org>
diff
changeset
|
636 WINNT_SUPPORT \
|
6398
|
637 ${lispdir}window.elc \
|
6404
|
638 ${lispdir}version.el
|
4796
|
639
|
11776
|
640 /* Lisp files that may or may not be used.
|
|
641 We must unconditionally put them in the DOC file. */
|
|
642 SOME_MACHINE_LISP = ${lispdir}faces.elc ${lispdir}facemenu.elc \
|
|
643 ${lispdir}float-sup.elc ${lispdir}frame.elc \
|
|
644 ${lispdir}menu-bar.elc ${lispdir}mouse.elc \
|
|
645 ${lispdir}select.elc ${lispdir}scroll-bar.elc \
|
|
646 ${lispdir}vmsproc.elc ${lispdir}vms-patch.elc \
|
|
647 ${lispdir}ls-lisp.elc ${lispdir}dos-fns.elc \
|
|
648 ${lispdir}winnt.elc
|
|
649
|
4796
|
650 /* Construct full set of libraries to be linked.
|
|
651 Note that SunOS needs -lm to come before -lc; otherwise, you get
|
4814
|
652 duplicated symbols. If the standard libraries were compiled
|
|
653 with GCC, we might need gnulib again after them. */
|
4796
|
654 LIBES = $(LIBX) LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
|
4814
|
655 LIBS_DEBUG $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR)
|
4796
|
656
|
|
657 /* Enable recompilation of certain other files depending on system type. */
|
|
658
|
|
659 #ifndef OTHER_FILES
|
|
660 #define OTHER_FILES
|
|
661 #endif
|
|
662
|
|
663 /* Enable inclusion of object files in temacs depending on system type. */
|
|
664 #ifndef OBJECTS_SYSTEM
|
|
665 #define OBJECTS_SYSTEM
|
|
666 #endif
|
|
667
|
|
668 #ifndef OBJECTS_MACHINE
|
|
669 #define OBJECTS_MACHINE
|
|
670 #endif
|
|
671
|
|
672 all: emacs OTHER_FILES
|
|
673
|
|
674 emacs: temacs ${etc}DOC ${lisp}
|
|
675 #ifdef CANNOT_DUMP
|
6430
|
676 rm -f emacs
|
4796
|
677 ln temacs emacs
|
|
678 #else
|
|
679 #ifdef HAVE_SHM
|
|
680 ./temacs -nl -batch -l loadup dump
|
|
681 #else /* ! defined (HAVE_SHM) */
|
|
682 ./temacs -batch -l loadup dump
|
|
683 #endif /* ! defined (HAVE_SHM) */
|
|
684 #endif /* ! defined (CANNOT_DUMP) */
|
|
685
|
10078
|
686 /* We run make-docfile twice because the command line may get too long
|
|
687 on some systems. */
|
11689
|
688 /* ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may
|
|
689 or may not be included in ${obj}, but they are always included in
|
|
690 ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned
|
|
691 for the first time, this prevents any variation between configurations
|
11776
|
692 in the contents of the DOC file.
|
|
693 Likewise for ${SOME_MACHINE_LISP}. */
|
5402
|
694 ${etc}DOC: ${libsrc}make-docfile ${obj} ${lisp}
|
7654
|
695 -rm -f ${etc}DOC
|
11689
|
696 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
|
11776
|
697 ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${lisp}
|
4796
|
698
|
|
699 ${libsrc}make-docfile:
|
5921
28b3aa222dde
(${libsrc}make-docfile): Don't pass ../arch-lib as target to submake.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
700 cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile
|
4796
|
701
|
|
702 /* Some systems define this to cause parallel Make-ing. */
|
|
703 #ifndef MAKE_PARALLEL
|
|
704 #define MAKE_PARALLEL
|
|
705 #endif
|
|
706
|
|
707 temacs: MAKE_PARALLEL $(LOCALCPP) $(SHORT) $(STARTFILES) $(OLDXMENU) ${obj} ${otherobj} OBJECTS_SYSTEM OBJECTS_MACHINE prefix-args
|
6810
6a097e7b87dc
(temacs): Include ${ALL_LDFLAGS} within the call to YMF_PASS_LDFLAGS.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
708 $(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${ALL_LDFLAGS}) \
|
4796
|
709 -o temacs ${STARTFILES} ${obj} ${otherobj} \
|
|
710 OBJECTS_SYSTEM OBJECTS_MACHINE ${LIBES}
|
|
711
|
|
712 prefix-args: prefix-args.c $(config_h)
|
|
713 $(CC) $(ALL_CFLAGS) ${srcdir}/prefix-args.c -o prefix-args
|
|
714
|
|
715 /* These are needed for C compilation, on the systems that need them */
|
|
716 #ifdef NEED_CPP
|
|
717 CPP = ./localcpp
|
|
718 localcpp:
|
|
719 cd ${cppdir}; ${MAKE} ${MFLAGS} EMACS=-DEMACS
|
|
720 ln ${cppdir}cpp localcpp /* Name where ALL_CFLAGS will refer to it */
|
|
721 /* cc appears to be cretinous and require all of these to exist
|
|
722 if -B is specified -- we can't use one local pass and let the
|
|
723 others be the standard ones. What a loser.
|
|
724 We can't even use ln, since they are probably
|
|
725 on different disks. */
|
|
726 cp /lib/ccom localccom
|
|
727 -cp /lib/optim localoptim
|
|
728 -cp /lib/c2 localc2
|
|
729 cp /bin/as localas
|
|
730 #else /* ! defined (NEED_CPP) */
|
|
731 CPP = $(CC) -E
|
|
732 #endif /* ! defined (NEED_CPP) */
|
|
733
|
|
734 #ifdef SHORTNAMES
|
|
735 shortnames:
|
|
736 cd ${shortnamesdir}; ${MAKE} ${MFLAGS}
|
|
737 #endif
|
|
738
|
|
739 /* Don't lose if this was not defined. */
|
|
740 #ifndef OLDXMENU_OPTIONS
|
|
741 #define OLDXMENU_OPTIONS
|
|
742 #endif
|
|
743
|
5670
|
744 /* Don't lose if this was not defined. */
|
|
745 #ifndef LWLIB_OPTIONS
|
|
746 #define LWLIB_OPTIONS
|
|
747 #endif
|
|
748
|
4796
|
749 #ifdef HAVE_X_WINDOWS
|
5670
|
750 #ifdef HAVE_X11
|
|
751 #ifdef USE_X_TOOLKIT
|
|
752 $(OLDXMENU): really-lwlib
|
|
753
|
|
754 /* Encode the values of these two macros in Make variables,
|
|
755 so we can use $(...) to substitute their values within "...". */
|
|
756 C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
|
|
757 C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
|
|
758 C_SWITCH_SITE_1 = C_SWITCH_SITE
|
|
759 C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
|
|
760 C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
|
|
761 C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
|
|
762 really-lwlib:
|
|
763 cd ${lwlibdir}; ${MAKE} ${MFLAGS} LWLIB_OPTIONS \
|
|
764 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
|
|
765 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
|
|
766 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
|
|
767 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
|
|
768 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
|
|
769 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
|
|
770 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
|
|
771 @true /* make -t should not create really-lwlib. */
|
11460
|
772 .PHONY: really-lwlib
|
5670
|
773 #else /* not USE_X_TOOLKIT */
|
4796
|
774 #ifdef HAVE_X_MENU
|
|
775 $(OLDXMENU): really-oldXMenu
|
|
776
|
|
777 /* Encode the values of these two macros in Make variables,
|
|
778 so we can use $(...) to substitute their values within "...". */
|
|
779 C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
|
|
780 C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
|
|
781 C_SWITCH_SITE_1 = C_SWITCH_SITE
|
|
782 C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
|
|
783 C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
|
|
784 C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
|
|
785 really-oldXMenu:
|
|
786 cd ${oldXMenudir}; ${MAKE} ${MFLAGS} OLDXMENU_OPTIONS \
|
|
787 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
|
|
788 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
|
|
789 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
|
|
790 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
|
|
791 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
|
|
792 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
|
|
793 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
|
|
794 @true /* make -t should not create really-oldXMenu. */
|
11460
|
795 .PHONY: really-oldXMenu
|
5670
|
796 #endif /* HAVE_X_MENU */
|
|
797 #endif /* not USE_X_TOOLKIT */
|
|
798 #endif /* HAVE_X11 */
|
|
799 #endif /* HAVE_X_WINDOWS */
|
4796
|
800
|
|
801 paths.h: paths.h.in
|
|
802 @echo "The file paths.h needs to be set up from paths.h.in."
|
|
803 @echo "Consult the file \`INSTALL' for instructions for building Emacs."
|
|
804 exit 1
|
|
805
|
|
806 config.h: config.h.in
|
|
807 @echo "The file config.h needs to be set up from config.h.in."
|
|
808 @echo "Consult the file \`INSTALL' for instructions for building Emacs."
|
|
809 exit 1
|
|
810
|
|
811 /* Some machines have alloca built-in.
|
|
812 They should define HAVE_ALLOCA, or may just let alloca.s
|
|
813 be used but generate no code.
|
|
814 Some have it written in assembler in alloca.s.
|
|
815 Some use the C version in alloca.c (these define C_ALLOCA in config.h).
|
|
816 */
|
|
817
|
|
818 #ifdef C_ALLOCA
|
|
819 /* We could put something in alloca.c to #define free and malloc
|
|
820 whenever emacs was #defined, but that's not appropriate for all
|
|
821 users of alloca in Emacs. Check out ../lib-src/getopt.c. */
|
|
822 alloca.o : alloca.c
|
|
823 $(CC) -c $(CPPFLAGS) -Dfree=xfree -Dmalloc=xmalloc \
|
|
824 $(ALL_CFLAGS) ${srcdir}/alloca.c
|
|
825 #else
|
|
826 #ifndef HAVE_ALLOCA
|
7045
|
827 alloca.o : alloca.s $(config_h)
|
4796
|
828 /* $(CPP) is cc -E, which may get confused by filenames
|
|
829 that do not end in .c. So copy file to a safe name. */
|
8176
|
830 -rm -f allocatem.c
|
4796
|
831 cp ${srcdir}/alloca.s allocatem.c
|
|
832 /* Remove any ^L, blank lines, and preprocessor comments,
|
|
833 since some assemblers barf on them. Use a different basename for the
|
|
834 output file, since some stupid compilers (Green Hill's) use that
|
|
835 name for the intermediate assembler file. */
|
|
836 $(CPP) $(CPPFLAGS) $(ALL_CFLAGS) allocatem.c | \
|
|
837 sed -e 's///' -e 's/^#.*//' | \
|
|
838 sed -n -e '/^..*$$/p' > allocax.s
|
|
839 -rm -f alloca.o
|
|
840 /* Xenix, in particular, needs to run assembler via cc. */
|
|
841 $(CC) -c allocax.s
|
|
842 mv allocax.o alloca.o
|
8429
|
843 -rm -f allocax.s allocatem.c
|
4796
|
844 #endif /* HAVE_ALLOCA */
|
|
845 #endif /* ! defined (C_ALLOCA) */
|
|
846
|
|
847 /* Nearly all the following files depend on lisp.h,
|
|
848 but it is not included as a dependency because
|
|
849 it is so often changed in ways that do not require any recompilation
|
|
850 and so rarely changed in ways that do require any. */
|
|
851
|
7953
|
852 abbrev.o: abbrev.c buffer.h commands.h $(config_h)
|
9402
|
853 buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \
|
4796
|
854 INTERVAL_SRC blockinput.h $(config_h)
|
7953
|
855 callint.o: callint.c window.h commands.h buffer.h mocklisp.h \
|
4796
|
856 keyboard.h $(config_h)
|
7953
|
857 callproc.o: callproc.c paths.h buffer.h commands.h $(config_h) \
|
5349
|
858 process.h systty.h syssignal.h
|
7953
|
859 casefiddle.o: casefiddle.c syntax.h commands.h buffer.h $(config_h)
|
|
860 casetab.o: casetab.c buffer.h $(config_h)
|
|
861 cm.o: cm.c cm.h termhooks.h $(config_h)
|
8787
|
862 cmds.o: cmds.c syntax.h buffer.h commands.h window.h $(config_h)
|
7953
|
863 pre-crt0.o: pre-crt0.c
|
10585
|
864 ecrt0.o: ecrt0.c $(config_h)
|
|
865 CRT0_COMPILE ${srcdir}/ecrt0.c
|
7953
|
866 dired.o: dired.c commands.h buffer.h $(config_h) regex.h
|
|
867 dispnew.o: dispnew.c commands.h frame.h window.h buffer.h dispextern.h \
|
11534
|
868 termchar.h termopts.h termhooks.h cm.h disptab.h systty.h systime.h \
|
|
869 xterm.h $(config_h)
|
7953
|
870 doc.o: doc.c $(config_h) paths.h buffer.h keyboard.h
|
|
871 doprnt.o: doprnt.c $(config_h)
|
9572
|
872 dosfns.o: buffer.h termchar.h termhooks.h frame.h msdos.h dosfns.h $(config_h)
|
7953
|
873 editfns.o: editfns.c window.h buffer.h systime.h INTERVAL_SRC $(config_h)
|
|
874 emacs.o: emacs.c commands.h systty.h syssignal.h process.h INTERVAL_SRC $(config_h)
|
|
875 fileio.o: fileio.c window.h buffer.h systime.h INTERVAL_SRC $(config_h)
|
|
876 filelock.o: filelock.c buffer.h paths.h $(config_h)
|
|
877 filemode.o: filemode.c $(config_h)
|
|
878 getloadavg.o: getloadavg.c $(config_h)
|
|
879 indent.o: indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h \
|
9402
|
880 termopts.h disptab.h region-cache.h
|
7953
|
881 insdel.o: insdel.c window.h buffer.h INTERVAL_SRC blockinput.h $(config_h)
|
|
882 keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h \
|
4796
|
883 commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
|
11534
|
884 systty.h systime.h dispextern.h intervals.h blockinput.h xterm.h $(config_h)
|
7953
|
885 keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
|
4796
|
886 $(config_h)
|
7953
|
887 lastfile.o: lastfile.c $(config_h)
|
11343
34a2e8b9f4ba
(alloc.o, data.o, macros.o, minibuf.o, print.o, xdisp.o): Depend on keyboard.h.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
888 macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h $(config_h)
|
7953
|
889 malloc.o: malloc.c $(config_h)
|
9572
|
890 msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h \
|
|
891 termopts.h frame.h window.h $(config_h)
|
9159
|
892 mktime.o: mktime.c $(config_h)
|
7953
|
893 gmalloc.o: gmalloc.c $(config_h)
|
|
894 ralloc.o: ralloc.c $(config_h)
|
|
895 vm-limit.o: vm-limit.c mem-limits.h $(config_h)
|
|
896 marker.o: marker.c buffer.h $(config_h)
|
|
897 minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h \
|
11347
|
898 buffer.h commands.h $(config_h)
|
7953
|
899 mocklisp.o: mocklisp.c buffer.h $(config_h)
|
|
900 process.o: process.c process.h buffer.h window.h termhooks.h termopts.h \
|
4796
|
901 commands.h syssignal.h systime.h systty.h syswait.h frame.h $(config_h)
|
7953
|
902 regex.o: regex.c syntax.h buffer.h $(config_h) regex.h
|
9402
|
903 region-cache.o: region-cache.c buffer.h region-cache.h
|
7953
|
904 frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
|
4796
|
905 buffer.h $(config_h)
|
9077
|
906 scroll.o: scroll.c termchar.h dispextern.h frame.h $(config_h)
|
9402
|
907 search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
|
|
908 blockinput.h $(config_h)
|
9077
|
909 strftime.o: strftime.c $(config_h)
|
11334
|
910 $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) -Dstrftime=emacs_strftime $<
|
7953
|
911 syntax.o: syntax.c syntax.h buffer.h commands.h $(config_h)
|
|
912 sysdep.o: sysdep.c $(config_h) dispextern.h termhooks.h termchar.h termopts.h \
|
4796
|
913 frame.h syssignal.h systty.h systime.h syswait.h blockinput.h window.h
|
7953
|
914 term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \
|
11541
|
915 disptab.h keyboard.h
|
7953
|
916 termcap.o: termcap.c $(config_h)
|
|
917 terminfo.o: terminfo.c $(config_h)
|
|
918 tparam.o: tparam.c $(config_h)
|
|
919 undo.o: undo.c buffer.h commands.h $(config_h)
|
7586
db8237533825
(UNEXEC_ALIAS): New variable, used to make the unex...o target.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
920 /* This hack is to discard any space that cpp might put at the beginning
|
db8237533825
(UNEXEC_ALIAS): New variable, used to make the unex...o target.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
921 of UNEXEC when substituting it in. */
|
db8237533825
(UNEXEC_ALIAS): New variable, used to make the unex...o target.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
922 UNEXEC_ALIAS=UNEXEC
|
7953
|
923 $(UNEXEC_ALIAS): UNEXEC_SRC $(config_h)
|
|
924 widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h $(config_h)
|
|
925 window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
|
4796
|
926 termhooks.h disptab.h keyboard.h $(config_h)
|
7953
|
927 xdisp.o: xdisp.c macros.h commands.h indent.h buffer.h dispextern.h \
|
11347
|
928 termchar.h frame.h window.h disptab.h termhooks.h $(config_h)
|
7953
|
929 xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
|
4796
|
930 window.h $(config_h)
|
7953
|
931 xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h \
|
9559
|
932 blockinput.h paths.h $(config_h)
|
7953
|
933 xmenu.o: xmenu.c xterm.h window.h dispextern.h frame.h keyboard.h \
|
10508
|
934 blockinput.h puresize.h msdos.h $(config_h)
|
7953
|
935 xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h \
|
5575
|
936 dispextern.h frame.h disptab.h blockinput.h systime.h syssignal.h \
|
8637
|
937 keyboard.h gnu.h sink.h sinkmask.h $(config_h)
|
7953
|
938 xselect.o: xselect.c dispextern.h frame.h xterm.h blockinput.h $(config_h)
|
|
939 xrdb.o: xrdb.c $(config_h)
|
|
940 hftctl.o: hftctl.c $(config_h)
|
4796
|
941
|
|
942 /* The files of Lisp proper */
|
|
943
|
11343
34a2e8b9f4ba
(alloc.o, data.o, macros.o, minibuf.o, print.o, xdisp.o): Depend on keyboard.h.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
944 alloc.o: alloc.c frame.h window.h buffer.h puresize.h syssignal.h keyboard.h \
|
34a2e8b9f4ba
(alloc.o, data.o, macros.o, minibuf.o, print.o, xdisp.o): Depend on keyboard.h.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
945 blockinput.h $(config_h) INTERVAL_SRC
|
7953
|
946 bytecode.o: bytecode.c buffer.h $(config_h)
|
11343
34a2e8b9f4ba
(alloc.o, data.o, macros.o, minibuf.o, print.o, xdisp.o): Depend on keyboard.h.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
947 data.o: data.c buffer.h puresize.h syssignal.h keyboard.h $(config_h)
|
7953
|
948 eval.o: eval.c commands.h keyboard.h blockinput.h $(config_h)
|
|
949 floatfns.o: floatfns.c $(config_h)
|
|
950 fns.o: fns.c commands.h $(config_h) frame.h buffer.h keyboard.h INTERVAL_SRC
|
11343
34a2e8b9f4ba
(alloc.o, data.o, macros.o, minibuf.o, print.o, xdisp.o): Depend on keyboard.h.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
951 print.o: print.c process.h frame.h window.h buffer.h keyboard.h $(config_h)
|
7953
|
952 lread.o: lread.c commands.h keyboard.h buffer.h paths.h $(config_h) \
|
4796
|
953 termhooks.h
|
|
954
|
|
955 /* Text properties support */
|
7953
|
956 textprop.o: textprop.c buffer.h intervals.h $(config_h)
|
11541
|
957 intervals.o: intervals.c buffer.h intervals.h keyboard.h puresize.h $(config_h)
|
4796
|
958
|
|
959 /* System-specific programs to be made.
|
|
960 OTHER_FILES, OBJECTS_SYSTEM and OBJECTS_MACHINE
|
|
961 select which of these should be compiled. */
|
|
962
|
7953
|
963 sunfns.o: sunfns.c buffer.h $(config_h)
|
4796
|
964
|
|
965 ${libsrc}emacstool: ${libsrc}emacstool.c
|
|
966 cd ${libsrc}; ${MAKE} ${MFLAGS} emacstool
|
|
967 mostlyclean:
|
7719
|
968 rm -f temacs prefix-args core \#* *.o libXMenu11.a liblw.a
|
4796
|
969 rm -f ../etc/DOC
|
|
970 clean: mostlyclean
|
|
971 rm -f emacs-* emacs
|
|
972 /**/# This is used in making a distribution.
|
|
973 /**/# Do not use it on development directories!
|
|
974 distclean: clean
|
5045
|
975 rm -f paths.h config.h Makefile Makefile.in ../etc/DOC-*
|
10684
|
976 maintainer-clean: distclean
|
|
977 @echo "This command is intended for maintainers to use;"
|
|
978 @echo "it deletes files that may require special tools to rebuild."
|
4796
|
979 rm -f TAGS
|
|
980 versionclean:
|
|
981 -rm -f emacs emacs-* ../etc/DOC*
|
|
982 extraclean: distclean
|
5035
|
983 -rm -f *~ \#* m/?*~ s/?*~
|
4796
|
984
|
|
985 /* The rule for the [sm] files has to be written a little funny to
|
|
986 avoid looking like a C comment to CPP. */
|
12170
|
987 SOURCES = *.[ch] [sm]/?* COPYING Makefile.in.in \
|
4796
|
988 config.h.in README COPYING ChangeLog vms.pp-trans
|
|
989 unlock:
|
|
990 chmod u+w $(SOURCES)
|
|
991
|
|
992 relock:
|
|
993 chmod -w $(SOURCES)
|
|
994 chmod +w paths.h
|
6988
|
995
|
7137
|
996 /* Arrange to make a tags table in ../lisp, and another in this dir
|
|
997 which includes ../lisp/TAGS by reference. */
|
8210
|
998 ctagsfiles = [a-zA-Z]*.[hc]
|
6988
|
999 lisptagsfiles = ../lisp/[a-zA-Z]*.el ../lisp/term/[a-zA-Z]*.el
|
|
1000 TAGS: $(ctagsfiles)
|
9979
|
1001 ../lib-src/etags --include=../lisp/TAGS \
|
|
1002 --regex='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' $(ctagsfiles)
|
6988
|
1003 ../lisp/TAGS: $(lisptagsfiles)
|
|
1004 cd ../lisp; $(MAKE) TAGS
|
|
1005 tags: TAGS ../lisp/TAGS
|
4796
|
1006 .PHONY: tags
|