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