Fix up multi-tty merge
[bpt/emacs.git] / src / Makefile.in
1 # Makefile for GNU Emacs.
2 # Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002,
3 # 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
4
5 # This file is part of GNU Emacs.
6
7 # GNU Emacs is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3, or (at your option)
10 # any later version.
11
12 # GNU Emacs is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
16
17 # You should have received a copy of the GNU General Public License
18 # along with GNU Emacs; see the file COPYING. If not, write to
19 # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 # Boston, MA 02110-1301, USA.
21
22
23 # Note that this file is edited by msdos/sed1v2.inp for MSDOS. That
24 # script may need modifying in sync with changes made here. Try to
25 # avoid shell-ism because the DOS build has to use the DOS shell.
26
27 # Don't try to replace the cpp processing using autoconf facilities,
28 # says rms.
29
30 # Here are the things that we expect ../configure to edit.
31 # We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
32 srcdir=@srcdir@
33 VPATH=@srcdir@
34 CC=@CC@
35 CPP=@CPP@
36 CFLAGS=@CFLAGS@
37 CPPFLAGS=@CPPFLAGS@
38 LDFLAGS=@LDFLAGS@
39 LN_S=@LN_S@
40 EXEEXT=@EXEEXT@
41 version=@version@
42 # Substitute an assignment for the MAKE variable, because
43 # BSD doesn't have it as a default.
44 @SET_MAKE@
45 # Don't use LIBS. configure puts stuff in it that either shouldn't be
46 # linked with Emacs or is duplicated by the cpp stuff below.
47 # LIBS = @LIBS@
48 LIBOBJS = @LIBOBJS@
49
50 # On Xenix and the IBM RS6000, double-dot gets screwed up.
51 dot = .
52 dotdot = ${dot}${dot}
53 lispsource = ${srcdir}/$(dot)$(dot)/lisp/
54 admindir = $(srcdir)/$(dot)$(dot)/admin/
55 libsrc = $(dot)$(dot)/lib-src/
56 etc = $(dot)$(dot)/etc/
57 oldXMenudir = $(dot)$(dot)/oldXMenu/
58 lwlibdir = $(dot)$(dot)/lwlib/
59 lispdir = $(dot)$(dot)/lisp/
60
61 # Configuration files for .o files to depend on.
62 M_FILE = ${srcdir}/@machfile@
63 S_FILE = ${srcdir}/@opsysfile@
64 config_h = config.h $(M_FILE) $(S_FILE)
65
66 # ========================== start of cpp stuff =======================
67 /* From here on, comments must be done in C syntax. */
68
69 C_SWITCH_SYSTEM=
70
71 /* just to be sure the sh is used */
72 SHELL=/bin/sh
73
74 #define THIS_IS_MAKEFILE
75 #define NO_SHORTNAMES
76 #define NOT_C_CODE
77 #include "config.h"
78
79 /* Do not let the file name mktime.c get messed up. */
80 #ifdef mktime
81 #undef mktime
82 #endif
83
84 /* Use HAVE_X11 as an alias for X11 in this file
85 to avoid problems with X11 as a subdirectory name
86 in -I and other such options which pass through this file. */
87
88 #ifdef X11
89 #define HAVE_X11
90 #undef X11
91 #endif
92
93 /* On some machines #define register is done in config;
94 do not let it interfere with this file. */
95 #undef register
96
97 /* On some systems we may not be able to use the system make command. */
98 #ifdef MAKE_COMMAND
99 MAKE = MAKE_COMMAND
100 #endif
101
102 #ifdef C_COMPILER
103 CC = C_COMPILER
104 #endif
105
106 /* GNU libc requires ORDINARY_LINK so that its own crt0 is used.
107 GNU/Linux is an exception because it uses a funny variant of GNU libc. */
108 #ifdef __GNU_LIBRARY__
109 #ifndef GNU_LINUX
110 #define ORDINARY_LINK
111 #endif
112 #endif
113
114 /* Some machines do not find the standard C libraries in the usual place. */
115 #ifndef ORDINARY_LINK
116 #ifndef LIB_STANDARD
117 #define LIB_STANDARD -lc
118 #endif
119 #else
120 #ifndef LIB_STANDARD
121 #define LIB_STANDARD
122 #endif
123 #endif
124
125 /* Unless inhibited or changed, use -lg to link for debugging. */
126 #ifndef LIBS_DEBUG
127 #define LIBS_DEBUG -lg
128 #endif
129
130 /* Some s/SYSTEM.h files define this to request special libraries. */
131 #ifndef LIBS_SYSTEM
132 #define LIBS_SYSTEM
133 #endif
134
135 /* Some m/MACHINE.h files define this to request special libraries. */
136 #ifndef LIBS_MACHINE
137 #define LIBS_MACHINE
138 #endif
139
140 #ifndef LIB_MATH
141 # define LIB_MATH -lm
142 #endif /* LIB_MATH */
143
144 /* Some s/SYSTEM.h files define this to request special switches in ld. */
145 #ifndef LD_SWITCH_SYSTEM
146 #if !defined (__GNUC__) && (defined(COFF_ENCAPSULATE) || (defined (BSD_SYSTEM) && !defined (COFF)))
147 #define LD_SWITCH_SYSTEM -X
148 #else /* ! defined(COFF_ENCAPSULATE) || (defined (BSD_SYSTEM) && !defined (COFF)) */
149 #define LD_SWITCH_SYSTEM
150 #endif /* ! defined(COFF_ENCAPSULATE) || (defined (BSD_SYSTEM) && !defined (COFF)) */
151 #endif /* LD_SWITCH_SYSTEM */
152
153 /* This holds special options for linking temacs
154 that should be used for linking anything else. */
155 #ifndef LD_SWITCH_SYSTEM_TEMACS
156 #define LD_SWITCH_SYSTEM_TEMACS
157 #endif
158
159 /* Some s/SYSTEM.h files define this to request special switches
160 for compiling temacs. */
161 #ifndef C_SWITCH_SYSTEM_TEMACS
162 #define C_SWITCH_SYSTEM_TEMACS
163 #endif
164
165 /* Some m/MACHINE.h files define this to request special switches in ld. */
166 #ifndef LD_SWITCH_MACHINE
167 #define LD_SWITCH_MACHINE
168 #endif
169
170 /* This holds special options for linking temacs
171 that should be used for linking anything else. */
172 #ifndef LD_SWITCH_MACHINE_TEMACS
173 #define LD_SWITCH_MACHINE_TEMACS
174 #endif
175
176 /* Some m/MACHINE.h files define this to request special switches in cc. */
177 #ifndef C_SWITCH_MACHINE
178 #define C_SWITCH_MACHINE
179 #endif
180
181 /* Some s/SYSTEM.h files define this to request special switches in cc. */
182 #ifndef C_SWITCH_SYSTEM
183 #define C_SWITCH_SYSTEM
184 #endif
185
186 /* These macros are for switches specifically related to X Windows. */
187 #ifndef C_SWITCH_X_MACHINE
188 #define C_SWITCH_X_MACHINE
189 #endif
190
191 #ifndef C_SWITCH_X_SYSTEM
192 #define C_SWITCH_X_SYSTEM
193 #endif
194
195 #ifndef C_SWITCH_X_SITE
196 #define C_SWITCH_X_SITE
197 #endif
198
199 #ifndef LD_SWITCH_X_SITE
200 #define LD_SWITCH_X_SITE
201 #endif
202
203 #ifndef LD_SWITCH_X_DEFAULT
204 #define LD_SWITCH_X_DEFAULT
205 #endif
206
207 /* These can be passed in from config.h to define special load and
208 compile switches needed by individual sites */
209 #ifndef LD_SWITCH_SITE
210 #define LD_SWITCH_SITE
211 #endif
212
213 #ifndef C_SWITCH_SITE
214 #define C_SWITCH_SITE
215 #endif
216
217 #ifndef ORDINARY_LINK
218
219 #ifndef CRT0_COMPILE
220 #define CRT0_COMPILE $(CC) -c $(ALL_CFLAGS) C_SWITCH_ASM
221 #endif
222
223 #ifndef START_FILES
224 #ifdef NO_REMAP
225 #ifdef COFF_ENCAPSULATE
226 #define START_FILES pre-crt0.o /usr/local/lib/gcc-crt0.o
227 #else /* ! defined (COFF_ENCAPSULATE) */
228 #define START_FILES pre-crt0.o /lib/crt0.o
229 #endif /* ! defined (COFF_ENCAPSULATE) */
230 #else /* ! defined (NO_REMAP) */
231 #define START_FILES ecrt0.o
232 #endif /* ! defined (NO_REMAP) */
233 #endif /* START_FILES */
234 STARTFILES = START_FILES
235
236 #else /* ORDINARY_LINK */
237
238 /* config.h might want to force START_FILES anyway */
239 #ifdef START_FILES
240 STARTFILES = START_FILES
241 #endif /* START_FILES */
242
243 #endif /* not ORDINARY_LINK */
244
245
246 /* cc switches needed to make ``asm'' keyword work.
247 Nothing special needed on most machines. */
248 #ifndef C_SWITCH_ASM
249 #define C_SWITCH_ASM
250 #endif
251
252 #if HAVE_GTK
253 #define USE_GTK
254 TOOLKIT_DEFINES = -DUSE_GTK
255 #endif
256
257 #ifdef USE_X_TOOLKIT
258 #define USE_@X_TOOLKIT_TYPE@
259 TOOLKIT_DEFINES = -DUSE_@X_TOOLKIT_TYPE@
260 #else
261 #ifndef USE_GTK
262 TOOLKIT_DEFINES =
263 #endif
264 #endif
265
266 /* DO NOT use -R. There is a special hack described in lastfile.c
267 which is used instead. Some initialized data areas are modified
268 at initial startup, then labeled as part of the text area when
269 Emacs is dumped for the first time, and never changed again. */
270
271 /* -Demacs is needed to make some files produce the correct version
272 for use in Emacs.
273
274 -DHAVE_CONFIG_H is needed for some other files to take advantage of
275 the information in ``config.h''. */
276
277 /* C_SWITCH_X_SITE must come before C_SWITCH_X_MACHINE and C_SWITCH_X_SYSTEM
278 since it may have -I options that should override those two. */
279 ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(TOOLKIT_DEFINES) $(MYCPPFLAGS) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM C_SWITCH_SYSTEM_TEMACS ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${CFLAGS} @FREETYPE_CFLAGS@ @FONTCONFIG_CFLAGS@ @LIBOTF_CFLAGS@
280 .c.o:
281 $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
282
283 #ifndef LIBX10_MACHINE
284 #define LIBX10_MACHINE
285 #endif
286
287 #ifndef LIBX11_MACHINE
288 #define LIBX11_MACHINE
289 #endif
290
291 #ifndef LIBX10_SYSTEM
292 #define LIBX10_SYSTEM
293 #endif
294
295 #ifndef LIBX11_SYSTEM
296 #define LIBX11_SYSTEM
297 #endif
298
299 #ifndef LIB_X11_LIB
300 #define LIB_X11_LIB -lX11
301 #endif
302
303 /* xmenu.c should not be compiled on OSX. */
304 #ifndef HAVE_CARBON
305 XMENU_OBJ = xmenu.o
306 #endif
307
308 #ifdef HAVE_X_WINDOWS
309
310 XOBJ= xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o
311
312 #ifdef HAVE_MENUS
313
314 #ifdef USE_GTK
315 GTK_OBJ= gtkutil.o
316 #endif
317
318 /* The X Menu stuff is present in the X10 distribution, but missing
319 from X11. If we have X10, just use the installed library;
320 otherwise, use our own copy. */
321 #ifdef HAVE_X11
322 #ifdef USE_X_TOOLKIT
323 OLDXMENU=${lwlibdir}liblw.a
324 LIBXMENU= $(OLDXMENU)
325 #else /* not USE_X_TOOLKIT */
326 OLDXMENU= ${oldXMenudir}libXMenu11.a
327 LIBXMENU= $(OLDXMENU)
328 #endif /* not USE_X_TOOLKIT */
329 #else /* not HAVE_X11 */
330 LIBXMENU= -lXMenu
331 #endif /* not HAVE_X11 */
332
333 #else /* not HAVE_MENUS */
334
335 /* Otherwise, do not worry about the menu library at all. */
336 LIBXMENU=
337 #endif /* not HAVE_MENUS */
338
339 #ifdef USE_X_TOOLKIT
340 #define @X_TOOLKIT_TYPE@
341 #if defined (LUCID) || defined (ATHENA)
342 #if HAVE_XAW3D
343 LIBW= -lXaw3d
344 #else
345 LIBW= -lXaw
346 #endif
347 #endif
348 #ifdef MOTIF
349 #if defined (HAVE_MOTIF_2_1) && defined (HAVE_LIBXP)
350 #define LIB_MOTIF_EXTRA -lXp
351 #else
352 #define LIB_MOTIF_EXTRA
353 #endif
354 #ifdef LIB_MOTIF
355 LIBW= LIB_MOTIF LIB_MOTIF_EXTRA
356 #else
357 LIBW= -lXm LIB_MOTIF_EXTRA
358 #endif
359 #endif
360 #ifdef OPEN_LOOK
361 LIBW= -lXol
362 #endif
363
364 #ifdef HAVE_X11XTR6
365 #ifdef NEED_LIBW
366 LIBXTR6 = -lSM -lICE -lw
367 #else
368 LIBXTR6 = -lSM -lICE
369 #endif
370 #endif
371
372 #ifndef LIBXMU
373 #define LIBXMU -lXmu
374 #endif
375
376 #ifdef LIBXT_STATIC
377 /* We assume the config files have defined STATIC_OPTION
378 since that might depend on the operating system.
379 (Do not forget you need different definitions with and without __GNUC__.) */
380 LIBXT= STATIC_OPTION $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext DYNAMIC_OPTION
381 #else /* not LIBXT_STATIC */
382 LIBXT= $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext
383 #endif /* not LIBXT_STATIC */
384
385 #else /* not USE_X_TOOLKIT */
386
387 #ifdef USE_GTK
388 LIBW=@GTK_LIBS@
389 OLDXMENU=
390 LIBXMENU=
391 #endif /* USE_GTK */
392
393 #ifdef HAVE_X_SM
394 LIBXT=$(LIBW) -lSM -lICE
395 #else
396 LIBXT=$(LIBW)
397 #endif
398 #endif /* not USE_X_TOOLKIT */
399
400 #if HAVE_XFT
401 XFT_LIBS=@XFT_LIBS@
402 #endif /* HAVE_XFT */
403
404 #if HAVE_XPM
405 #ifndef LIBXPM
406 #define LIBXPM -lXpm
407 #endif /* not defined LIBXPM */
408 #else /* not HAVE_XPM */
409 #define LIBXPM
410 #endif /* not HAVE_XPM */
411
412 #if HAVE_JPEG
413 #ifndef LIBJPEG
414 #define LIBJPEG -ljpeg
415 #endif /* not defined LIBJPEG */
416 #else /* not HAVE_JPEG */
417 #define LIBJPEG
418 #endif /* not HAVE_JPEG */
419
420 #if HAVE_PNG
421 #ifndef LIBPNG
422 #define LIBPNG -lpng -lz -lm
423 #endif /* not defined LIBPNG */
424 #else /* not HAVE_PNG */
425 #define LIBPNG
426 #endif /* not HAVE_PNG */
427
428 #if HAVE_TIFF
429 #ifndef LIBTIFF
430 #define LIBTIFF -ltiff
431 #endif /* not defined LIBTIFF */
432 #else /* not HAVE_TIFF */
433 #define LIBTIFF
434 #endif /* not HAVE_TIFF */
435
436 #if HAVE_GIF
437 #ifndef LIBGIF
438 #define LIBGIF -lgif
439 #endif /* not defined LIBGIF */
440 #else /* not HAVE_GIF */
441 #define LIBGIF
442 #endif /* not HAVE_GIF */
443
444 #ifdef HAVE_X11
445 /* LD_SWITCH_X_DEFAULT comes after everything else that specifies
446 options for where to find X libraries, but before those libraries. */
447 X11_LDFLAGS = LD_SWITCH_X_SITE LD_SWITCH_X_DEFAULT
448 LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) LIBTIFF LIBJPEG LIBPNG LIBGIF LIBXPM LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM $(XFT_LIBS)
449 #else /* not HAVE_X11 */
450 LIBX= $(LIBXMENU) LD_SWITCH_X_SITE -lX10 LIBX10_MACHINE LIBX10_SYSTEM
451 #endif /* not HAVE_X11 */
452 #else /* not HAVE_X_WINDOWS */
453 #endif /* not HAVE_X_WINDOWS */
454
455 #if HAVE_GPM
456 #ifndef LIBGPM
457 #define LIBGPM -lgpm
458 #endif /* not defined LIBGPM */
459 #else /* not HAVE_GPM */
460 #define LIBGPM
461 #endif /* not HAVE_GPM */
462
463
464 LIBSOUND= @LIBSOUND@
465 CFLAGS_SOUND= @CFLAGS_SOUND@
466
467 RSVG_LIBS= @RSVG_LIBS@
468 RSVG_CFLAGS= @RSVG_CFLAGS@
469
470 #ifndef ORDINARY_LINK
471 /* Fix linking if compiled with GCC. */
472 #ifdef __GNUC__
473
474 #if __GNUC__ > 1
475
476 #ifdef LINKER
477 #define LINKER_WAS_SPECIFIED
478 #endif
479
480 /* Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
481 places that are difficult to figure out at make time. Fortunately,
482 these same versions allow you to pass arbitrary flags on to the
483 linker, so there is no reason not to use it as a linker.
484
485 Well, it is not quite perfect. The "-nostdlib" keeps GCC from
486 searching for libraries in its internal directories, so we have to
487 ask GCC explicitly where to find libgcc.a. */
488
489 #ifndef LINKER
490 #define LINKER $(CC) -nostdlib
491 #endif
492
493 #ifndef LIB_GCC
494 /* Ask GCC where to find libgcc.a. */
495 #define LIB_GCC `$(CC) -print-libgcc-file-name`
496 #endif /* not LIB_GCC */
497
498 GNULIB_VAR = LIB_GCC
499
500 #ifndef LINKER_WAS_SPECIFIED
501 /* GCC passes any argument prefixed with -Xlinker directly to the
502 linker. See prefix-args.c for an explanation of why we do not do
503 this with the shell''s ``for'' construct.
504 Note that some people do not have '.' in their paths, so we must
505 use ./prefix-args. */
506 #define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
507 #else
508 #define YMF_PASS_LDFLAGS(flags) flags
509 #endif
510
511 #else /* __GNUC__ < 2 */
512
513 #ifndef LIB_GCC
514 #define LIB_GCC /usr/local/lib/gcc-gnulib
515 #endif /* not LIB_GCC */
516 GNULIB_VAR = `if [ -f LIB_GCC ] ; then echo LIB_GCC; else echo; fi`
517 #endif /* __GNUC__ < 2 */
518 #else /* not __GNUC__ */
519 GNULIB_VAR =
520
521 #endif /* not __GNUC__ */
522 #endif /* not ORDINARY_LINK */
523
524 /* Specify address for ld to start loading at,
525 if requested by configuration. */
526 #ifdef LD_TEXT_START_ADDR
527 STARTFLAGS = -T LD_TEXT_START_ADDR -e __start
528 #endif
529
530 #ifdef ORDINARY_LINK
531 LD = $(CC)
532 #else
533 #ifdef COFF_ENCAPSULATE
534 LD=$(CC) -nostdlib
535 #else /* not ORDINARY_LINK */
536 #ifdef LINKER
537 LD=LINKER
538 #else /* not LINKER */
539 LD=ld
540 #endif /* not LINKER */
541 #endif /* not COFF_ENCAPSULATE */
542 #endif /* not ORDINARY_LINK */
543
544 /* Flags to pass to LD only for temacs. */
545 /* Do not split this line with a backslash. That can cause trouble with
546 some cpps. */
547 TEMACS_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE LD_SWITCH_MACHINE_TEMACS LD_SWITCH_SITE
548
549 /* A macro which other sections of Makefile can redefine to munge the
550 flags before they are passed to LD. This is helpful if you have
551 redefined LD to something odd, like "gcc".
552 (The YMF prefix is a holdover from the old name "ymakefile".)
553 */
554 #ifndef YMF_PASS_LDFLAGS
555 #define YMF_PASS_LDFLAGS(flags) flags
556 #endif
557
558 /* Allow config.h to specify a replacement file for unexec.c. */
559 #ifndef UNEXEC
560 #define UNEXEC unexec.o
561 #endif
562 #ifndef UNEXEC_SRC
563 #define UNEXEC_SRC unexec.c
564 #endif
565
566 INTERVAL_SRC = intervals.h composite.h
567
568 GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
569
570 #ifdef MSDOS
571 #ifdef HAVE_X_WINDOWS
572 MSDOS_OBJ = dosfns.o msdos.o
573 #else
574 MSDOS_OBJ = dosfns.o msdos.o w16select.o
575 #endif
576 #endif
577
578 #ifdef CYGWIN
579 CYGWIN_OBJ = sheap.o
580 #endif
581
582 #ifdef HAVE_CARBON
583 mac = $(dot)$(dot)/mac/
584 MAC_OBJ = mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o fringe.o image.o
585 emacsapp = $(PWD)/$(mac)Emacs.app/
586 emacsappsrc = ${srcdir}/../mac/Emacs.app/
587 #endif
588
589 #ifdef HAVE_WINDOW_SYSTEM
590 #ifdef USE_FONT_BACKEND
591 FONTSRC = font.h
592 #ifdef HAVE_X_WINDOWS
593 #if defined (HAVE_XFT)
594 FONTOBJ = font.o xfont.o ftfont.o xftfont.o ftxfont.o
595 #elif defined (HAVE_FREETYPE)
596 FONTOBJ = font.o xfont.o ftfont.o ftxfont.o
597 #else /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
598 FONTOBJ = font.o xfont.o
599 #endif /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
600 #else /* ! HAVE_X_WINDOWS */
601 FONTOBJ = font.o
602 #endif /* ! HAVE_X_WINDOWS */
603 #endif /* USE_FONT_BACKEND */
604 #endif /* HAVE_WINDOW_SYSTEM */
605
606 /* lastfile must follow all files
607 whose initialized data areas should be dumped as pure by dump-emacs. */
608 obj= dispnew.o frame.o scroll.o xdisp.o $(XMENU_OBJ) window.o \
609 charset.o coding.o category.o ccl.o character.o chartab.o \
610 cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ)\
611 emacs.o keyboard.o macros.o keymap.o sysdep.o \
612 buffer.o filelock.o insdel.o marker.o \
613 minibuf.o fileio.o dired.o filemode.o \
614 cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
615 alloc.o data.o doc.o editfns.o callint.o \
616 eval.o floatfns.o fns.o print.o lread.o \
617 abbrev.o syntax.o UNEXEC bytecode.o \
618 process.o callproc.o \
619 region-cache.o sound.o atimer.o \
620 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
621 $(MSDOS_OBJ) $(MAC_OBJ) $(CYGWIN_OBJ) $(FONTOBJ)
622
623 /* Object files used on some machine or other.
624 These go in the DOC file on all machines
625 in case they are needed there. */
626 SOME_MACHINE_OBJECTS = sunfns.o dosfns.o msdos.o \
627 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
628 mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o \
629 w32.o w32bdf.o w32console.o w32fns.o w32heap.o w32inevt.o \
630 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONTOBJ)
631
632
633 #ifdef TERMINFO
634 /* Used to be -ltermcap here. If your machine needs that,
635 define LIBS_TERMCAP in the m/MACHINE.h file. */
636 #ifndef LIBS_TERMCAP
637 #define LIBS_TERMCAP -lcurses
638 #endif /* LIBS_TERMCAP */
639 termcapobj = terminfo.o
640 #else /* ! defined (TERMINFO) */
641 #ifndef LIBS_TERMCAP
642 #define LIBS_TERMCAP
643 termcapobj = termcap.o tparam.o
644 #else /* LIBS_TERMCAP */
645 termcapobj = tparam.o
646 #endif /* LIBS_TERMCAP */
647 #endif /* ! defined (TERMINFO) */
648
649
650 #ifndef SYSTEM_MALLOC
651
652 #ifndef DOUG_LEA_MALLOC
653 gmallocobj = gmalloc.o
654 #endif
655
656 #ifdef REL_ALLOC
657 rallocobj = ralloc.o
658 #endif
659
660 mallocobj = $(gmallocobj) $(rallocobj) vm-limit.o
661
662 #endif /* SYSTEM_MALLOC */
663
664
665 #ifdef USE_X_TOOLKIT
666 widgetobj= widget.o
667 #else /* not USE_X_TOOLKIT */
668 widgetobj=
669 #endif /* not USE_X_TOOLKIT */
670
671
672 /* define otherobj as list of object files that make-docfile
673 should not be told about. */
674 #ifdef CYGWIN
675 /* Cygwin differs because of its unexec(). */
676 otherobj= $(termcapobj) $(gmallocobj) $(rallocobj) lastfile.o vm-limit.o $(widgetobj) $(LIBOBJS)
677 #else
678 otherobj= $(termcapobj) lastfile.o $(mallocobj) $(widgetobj) $(LIBOBJS)
679 #endif
680
681 #ifdef HAVE_MOUSE
682 #define MOUSE_SUPPORT ${lispsource}mouse.elc \
683 ${lispsource}select.elc ${lispsource}scroll-bar.elc
684 #else
685 #ifdef HAVE_GPM
686 #define MOUSE_SUPPORT ${lispsource}mouse.elc
687 #else
688 #define MOUSE_SUPPORT
689 #endif
690 #endif
691
692 #ifdef VMS
693 #define VMS_SUPPORT ${lispsource}vmsproc.elc ${lispsource}vms-patch.elc
694 #else
695 #define VMS_SUPPORT
696 #endif
697
698 #ifdef MSDOS
699 #define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
700 ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc \
701 ${lispsource}international/ccl.elc ${lispsource}international/codepage.elc
702
703 #else
704 #define MSDOS_SUPPORT
705 #endif
706
707 #ifdef HAVE_WINDOW_SYSTEM
708 #ifdef HAVE_X_WINDOWS
709 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
710 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
711 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc ${lispsource}x-dnd.elc
712 #else
713 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
714 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
715 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc
716 #endif
717 #else
718 #define WINDOW_SUPPORT
719 #endif
720
721 #ifdef WINDOWSNT
722 #define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
723 ${lispsource}dos-w32.elc ${lispsource}w32-vars.elc \
724 ${lispsource}w32-fns.elc
725 #else
726 #define WINNT_SUPPORT
727 #endif
728
729 #ifdef HAVE_WINDOW_SYSTEM
730 #define TOOLTIP_SUPPORT ${lispsource}tooltip.elc
731 #else
732 #define TOOLTIP_SUPPORT
733 #endif
734
735 /* List of Lisp files loaded into the dumped Emacs. It is arranged
736 like this because it is easier to generate it semi-mechanically from
737 loadup.el this way.
738
739 Note that this list should not include lisp files which might not
740 be present, like site-load.el and site-init.el; this makefile
741 expects them all to be either present or buildable.
742
743 Files which are loaded unconditionally should be in shortlisp as well.
744 Files included conditionally here should be included (unconditionally)
745 in SOME_MACHINE_LISP. */
746
747 lisp= \
748 ${lispsource}abbrev.elc \
749 ${lispsource}buff-menu.elc \
750 ${lispsource}button.elc \
751 ${lispsource}emacs-lisp/byte-run.elc \
752 ${lispsource}composite.elc \
753 ${lispsource}cus-face.elc \
754 ${lispsource}cus-start.elc \
755 ${lispsource}custom.elc \
756 ${lispsource}emacs-lisp/backquote.elc \
757 ${lispsource}emacs-lisp/lisp-mode.elc \
758 ${lispsource}emacs-lisp/lisp.elc \
759 ${lispsource}env.elc \
760 ${lispsource}faces.elc \
761 ${lispsource}files.elc \
762 ${lispsource}format.elc \
763 ${lispsource}facemenu.elc \
764 MOUSE_SUPPORT \
765 ${lispsource}emacs-lisp/float-sup.elc \
766 ${lispsource}frame.elc \
767 ${lispsource}help.elc \
768 ${lispsource}indent.elc \
769 ${lispsource}isearch.elc \
770 ${lispsource}rfn-eshadow.elc \
771 ${lispsource}loadup.el \
772 ${lispsource}loaddefs.el \
773 ${lispsource}bindings.elc \
774 ${lispsource}emacs-lisp/map-ynp.elc \
775 ${lispsource}menu-bar.elc \
776 ${lispsource}international/mule.elc \
777 ${lispsource}international/mule-conf.el \
778 ${lispsource}international/mule-cmds.elc \
779 ${lispsource}international/characters.elc \
780 ${lispsource}international/charprop.el \
781 ${lispsource}case-table.elc \
782 ${lispsource}language/chinese.el \
783 ${lispsource}language/cyrillic.el \
784 ${lispsource}language/indian.el \
785 ${lispsource}language/devanagari.el \
786 ${lispsource}language/kannada.el \
787 ${lispsource}language/malayalam.el \
788 ${lispsource}language/tamil.el \
789 ${lispsource}language/english.el \
790 ${lispsource}language/ethiopic.elc \
791 ${lispsource}language/european.elc \
792 ${lispsource}language/czech.el \
793 ${lispsource}language/slovak.el \
794 ${lispsource}language/romanian.el \
795 ${lispsource}language/greek.el \
796 ${lispsource}language/hebrew.el \
797 ${lispsource}language/japanese.el \
798 ${lispsource}language/korean.el \
799 ${lispsource}language/lao.el \
800 ${lispsource}language/tai-viet.el \
801 ${lispsource}language/thai.el \
802 ${lispsource}language/tibetan.elc \
803 ${lispsource}language/vietnamese.el \
804 ${lispsource}language/misc-lang.el \
805 ${lispsource}language/utf-8-lang.el \
806 ${lispsource}language/georgian.el \
807 ${lispsource}paths.el \
808 ${lispsource}register.elc \
809 ${lispsource}replace.elc \
810 ${lispsource}simple.elc \
811 ${lispsource}startup.elc \
812 ${lispsource}subr.elc \
813 ${lispsource}term/tty-colors.elc \
814 ${lispsource}font-core.elc \
815 ${lispsource}emacs-lisp/syntax.elc \
816 ${lispsource}font-lock.elc \
817 ${lispsource}jit-lock.elc \
818 ${lispsource}textmodes/fill.elc \
819 ${lispsource}textmodes/page.elc \
820 ${lispsource}textmodes/paragraphs.elc \
821 ${lispsource}textmodes/text-mode.elc \
822 ${lispsource}emacs-lisp/timer.elc \
823 ${lispsource}jka-cmpr-hook.elc \
824 ${lispsource}vc-hooks.elc \
825 ${lispsource}ediff-hook.elc \
826 TOOLTIP_SUPPORT \
827 VMS_SUPPORT \
828 MSDOS_SUPPORT \
829 WINNT_SUPPORT \
830 WINDOW_SUPPORT \
831 ${lispsource}widget.elc \
832 ${lispsource}window.elc \
833 ${lispsource}version.el
834
835 /* These are relative file names for the Lisp files
836 that are loaded unconditionally. This is used in make-docfile.
837 It need not contain the files that are loaded conditionally
838 because SOME_MACHINE_LISP has those. */
839 shortlisp= \
840 ../lisp/abbrev.elc \
841 ../lisp/buff-menu.elc \
842 ../lisp/button.elc \
843 ../lisp/emacs-lisp/byte-run.elc \
844 ../lisp/composite.elc \
845 ../lisp/cus-face.elc \
846 ../lisp/cus-start.elc \
847 ../lisp/custom.elc \
848 ../lisp/emacs-lisp/backquote.elc \
849 ../lisp/emacs-lisp/lisp-mode.elc \
850 ../lisp/emacs-lisp/lisp.elc \
851 ../lisp/facemenu.elc \
852 ../lisp/faces.elc \
853 ../lisp/files.elc \
854 ../lisp/emacs-lisp/float-sup.elc \
855 ../lisp/format.elc \
856 ../lisp/frame.elc \
857 ../lisp/help.elc \
858 ../lisp/indent.elc \
859 ../lisp/isearch.elc \
860 ../lisp/rfn-eshadow.elc \
861 ../lisp/loadup.el \
862 ../lisp/loaddefs.el \
863 ../lisp/bindings.elc \
864 ../lisp/emacs-lisp/map-ynp.elc \
865 ../lisp/env.elc \
866 ../lisp/international/mule.elc \
867 ../lisp/international/mule-conf.el \
868 ../lisp/international/mule-cmds.elc \
869 ../lisp/international/characters.elc \
870 ../lisp/case-table.elc \
871 ../lisp/language/chinese.el \
872 ../lisp/language/cyrillic.el \
873 ../lisp/language/indian.el \
874 ../lisp/language/devanagari.el \
875 ../lisp/language/kannada.el \
876 ../lisp/language/malayalam.el \
877 ../lisp/language/tamil.el \
878 ../lisp/language/english.el \
879 ../lisp/language/ethiopic.elc \
880 ../lisp/language/european.elc \
881 ../lisp/language/czech.el \
882 ../lisp/language/slovak.el \
883 ../lisp/language/romanian.el \
884 ../lisp/language/greek.el \
885 ../lisp/language/hebrew.el \
886 ../lisp/language/japanese.el \
887 ../lisp/language/korean.el \
888 ../lisp/language/lao.el \
889 ../lisp/language/tai-viet.el \
890 ../lisp/language/thai.el \
891 ../lisp/language/tibetan.elc \
892 ../lisp/language/vietnamese.el \
893 ../lisp/language/misc-lang.el \
894 ../lisp/language/utf-8-lang.el \
895 ../lisp/language/georgian.el \
896 ../lisp/menu-bar.elc \
897 ../lisp/paths.el \
898 ../lisp/register.elc \
899 ../lisp/replace.elc \
900 ../lisp/simple.elc \
901 ../lisp/startup.elc \
902 ../lisp/subr.elc \
903 ../lisp/term/tty-colors.elc \
904 ../lisp/font-core.elc \
905 ../lisp/emacs-lisp/syntax.elc \
906 ../lisp/font-lock.elc \
907 ../lisp/jit-lock.elc \
908 ../lisp/textmodes/fill.elc \
909 ../lisp/textmodes/page.elc \
910 ../lisp/textmodes/paragraphs.elc \
911 ../lisp/textmodes/text-mode.elc \
912 ../lisp/emacs-lisp/timer.elc \
913 ../lisp/vc-hooks.elc \
914 ../lisp/jka-cmpr-hook.elc \
915 ../lisp/ediff-hook.elc \
916 ../lisp/widget.elc \
917 ../lisp/window.elc \
918 ../lisp/version.el
919
920 /* Lisp files that may or may not be used.
921 We must unconditionally put them in the DOC file.
922 We use ../lisp/ to start the file names
923 to reduce the size of the argument list for make-docfile
924 for the sake of systems which can''t handle large ones. */
925 SOME_MACHINE_LISP = ${dotdot}/lisp/mouse.elc \
926 ${dotdot}/lisp/select.elc ${dotdot}/lisp/scroll-bar.elc \
927 ${dotdot}/lisp/vmsproc.elc ${dotdot}/lisp/vms-patch.elc \
928 ${dotdot}/lisp/ls-lisp.elc ${dotdot}/lisp/dos-fns.elc \
929 ${dotdot}/lisp/w32-fns.elc ${dotdot}/lisp/dos-w32.elc \
930 ${dotdot}/lisp/disp-table.elc ${dotdot}/lisp/dos-vars.elc \
931 ${dotdot}/lisp/tooltip.elc ${dotdot}/lisp/image.elc \
932 ${dotdot}/lisp/fringe.elc ${dotdot}/lisp/dnd.elc \
933 ${dotdot}/lisp/mwheel.elc ${dotdot}/lisp/tool-bar.elc \
934 ${dotdot}/lisp/x-dnd.elc \
935 ${dotdot}/lisp/international/ccl.elc \
936 ${dotdot}/lisp/international/codepage.elc \
937 ${dotdot}/lisp/international/fontset.elc \
938 ${dotdot}/lisp/mouse.elc \
939 ${dotdot}/lisp/term/x-win.elc
940
941 /* Construct full set of libraries to be linked.
942 Note that SunOS needs -lm to come before -lc; otherwise, you get
943 duplicated symbols. If the standard libraries were compiled
944 with GCC, we might need gnulib again after them. */
945 LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) $(RSVG_LIBS) LIBGPM \
946 LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
947 LIBS_DEBUG $(GETLOADAVG_LIBS) \
948 @FREETYPE_LIBS@ @FONTCONFIG_LIBS@ @LIBOTF_LIBS@ \
949 $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR)
950
951 /* Enable recompilation of certain other files depending on system type. */
952
953 #ifndef OTHER_FILES
954 #define OTHER_FILES
955 #endif
956
957 #ifndef OBJECTS_MACHINE
958 #define OBJECTS_MACHINE
959 #endif
960
961 #ifdef HAVE_SHM
962 RUN_TEMACS = `/bin/pwd`/temacs -nl
963 #else
964 RUN_TEMACS = `/bin/pwd`/temacs
965 #endif
966
967 all: emacs${EXEEXT} OTHER_FILES
968
969 emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
970 #ifdef CANNOT_DUMP
971 rm -f emacs${EXEEXT}
972 ln temacs${EXEEXT} emacs${EXEEXT}
973 #else
974 LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
975 #endif /* ! defined (CANNOT_DUMP) */
976 -./emacs -q -batch -f list-load-path-shadows
977
978 /* We run make-docfile twice because the command line may get too long
979 on some systems. */
980 /* ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may
981 or may not be included in ${obj}, but they are always included in
982 ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned
983 for the first time, this prevents any variation between configurations
984 in the contents of the DOC file.
985 Likewise for ${SOME_MACHINE_LISP}. */
986 ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
987 -rm -f ${etc}DOC
988 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
989 ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
990
991 ${libsrc}make-docfile${EXEEXT}:
992 cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
993
994 #ifdef HAVE_UNIDATA
995 UNIDATA=${admindir}unidata/UnicodeData.txt
996
997 ${lispsource}international/charprop.el: temacs${EXEEXT} ${UNIDATA}
998 RUNEMACS="$(RUN_TEMACS)"; \
999 cd ${admindir}unidata; \
1000 $(MAKE) $(MFLAGS) \
1001 RUNEMACS="$${RUNEMACS}" DSTDIR=${lispsource}international
1002 #endif
1003
1004 /* Some systems define this to cause parallel Make-ing. */
1005 #ifndef MAKE_PARALLEL
1006 #define MAKE_PARALLEL
1007 #endif
1008
1009 temacs${EXEEXT}: MAKE_PARALLEL $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} OBJECTS_MACHINE prefix-args${EXEEXT}
1010 echo "${obj} ${otherobj} " OBJECTS_MACHINE > ${etc}buildobj.lst
1011 $(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS) \
1012 -o temacs ${STARTFILES} ${obj} ${otherobj} \
1013 OBJECTS_MACHINE ${LIBES}
1014
1015 /* We do not use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE
1016 often contain options that have to do with using Emacs''s crt0,
1017 which are only good with temacs. */
1018 prefix-args${EXEEXT}: prefix-args.c $(config_h)
1019 $(CC) $(ALL_CFLAGS) $(LDFLAGS) ${srcdir}/prefix-args.c -o prefix-args
1020
1021 /* Do not lose if this was not defined. */
1022 #ifndef OLDXMENU_OPTIONS
1023 #define OLDXMENU_OPTIONS
1024 #endif
1025
1026 #if defined (HAVE_X_WINDOWS) && defined (HAVE_X11) && defined (HAVE_MENUS) && ! defined (HAVE_GTK)
1027
1028 /* We use stamp-xmenu with these two deps
1029 to both ensure that lwlib gets remade based on its dependencies
1030 in its own makefile,
1031 and remake temacs if lwlib gets changed by this. */
1032 stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU)
1033 touch stamp-oldxmenu
1034 /* Supply an ordering for parallel make. */
1035 ../src/$(OLDXMENU): ${OLDXMENU}
1036
1037 #ifdef USE_X_TOOLKIT
1038 $(OLDXMENU): really-lwlib
1039
1040 /* Encode the values of these two macros in Make variables,
1041 so we can use $(...) to substitute their values within "...". */
1042 C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
1043 C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
1044 C_SWITCH_SITE_1 = C_SWITCH_SITE
1045 C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
1046 C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
1047 C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
1048 really-lwlib:
1049 cd ${lwlibdir}; ${MAKE} ${MFLAGS} \
1050 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
1051 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
1052 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
1053 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
1054 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
1055 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
1056 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
1057 @true /* make -t should not create really-lwlib. */
1058 .PHONY: really-lwlib
1059 #else /* not USE_X_TOOLKIT */
1060 $(OLDXMENU): really-oldXMenu
1061
1062 /* Encode the values of these two macros in Make variables,
1063 so we can use $(...) to substitute their values within "...". */
1064 C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
1065 C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
1066 C_SWITCH_SITE_1 = C_SWITCH_SITE
1067 C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
1068 C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
1069 C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
1070 really-oldXMenu:
1071 cd ${oldXMenudir}; ${MAKE} ${MFLAGS} OLDXMENU_OPTIONS \
1072 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
1073 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
1074 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
1075 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
1076 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
1077 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
1078 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
1079 @true /* make -t should not create really-oldXMenu. */
1080 .PHONY: really-oldXMenu
1081 #endif /* not USE_X_TOOLKIT */
1082 #else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! HAVE_GTK) */
1083
1084 /* We don''t really need this, but satisfy the dependency. */
1085 stamp-oldxmenu:
1086 touch stamp-oldxmenu
1087 #endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! HAVE_GTK) */
1088
1089 ../config.status:: epaths.in
1090 @echo "The file epaths.h needs to be set up from epaths.in."
1091 @echo "Please run the `configure' script again."
1092 exit 1
1093
1094 ../config.status:: config.in
1095 @echo "The file config.h needs to be set up from config.in."
1096 @echo "Please run the `configure' script again."
1097 exit 1
1098
1099 /* Nearly all the following files depend on lisp.h,
1100 but it is not included as a dependency because
1101 it is so often changed in ways that do not require any recompilation
1102 and so rarely changed in ways that do require any. */
1103
1104 abbrev.o: abbrev.c buffer.h window.h dispextern.h commands.h character.h \
1105 syntax.h $(config_h)
1106 buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \
1107 dispextern.h $(INTERVAL_SRC) blockinput.h atimer.h systime.h character.h \
1108 $(config_h)
1109 callint.o: callint.c window.h commands.h buffer.h keymap.h \
1110 keyboard.h dispextern.h $(config_h)
1111 callproc.o: callproc.c epaths.h buffer.h commands.h $(config_h) \
1112 process.h systty.h syssignal.h character.h coding.h ccl.h msdos.h \
1113 composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h
1114 casefiddle.o: casefiddle.c syntax.h commands.h buffer.h character.h \
1115 composite.h \
1116 charset.h keymap.h $(config_h)
1117 casetab.o: casetab.c buffer.h $(config_h)
1118 category.o: category.c category.h buffer.h charset.h keymap.h \
1119 character.h $(config_h)
1120 ccl.o: ccl.c ccl.h charset.h character.h coding.h $(config_h)
1121 character.o: character.c character.h buffer.h charset.h composite.h disptab.h \
1122 $(config.h)
1123 charset.o: charset.c charset.h character.h buffer.h coding.h composite.h \
1124 disptab.h $(config_h)
1125 chartab.o: charset.h character.h $(config.h)
1126 coding.o: coding.c coding.h ccl.h buffer.h character.h charset.h intervals.h composite.h \
1127 window.h dispextern.h frame.h termhooks.h $(config_h)
1128 cm.o: cm.c frame.h cm.h termhooks.h termchar.h $(config_h)
1129 cmds.o: cmds.c syntax.h buffer.h character.h commands.h window.h $(config_h) \
1130 msdos.h dispextern.h keyboard.h keymap.h
1131 pre-crt0.o: pre-crt0.c
1132 ecrt0.o: ecrt0.c $(config_h)
1133 CRT0_COMPILE ${srcdir}/ecrt0.c
1134 dired.o: dired.c commands.h buffer.h $(config_h) character.h charset.h \
1135 coding.h regex.h systime.h blockinput.h atimer.h
1136 dispnew.o: dispnew.c systime.h commands.h process.h frame.h \
1137 window.h buffer.h dispextern.h termchar.h termopts.h termhooks.h cm.h \
1138 disptab.h indent.h intervals.h \
1139 xterm.h blockinput.h atimer.h character.h msdos.h composite.h keyboard.h \
1140 $(config_h)
1141 doc.o: doc.c $(config_h) epaths.h buffer.h keyboard.h keymap.h character.h
1142 doprnt.o: doprnt.c character.h $(config_h)
1143 dosfns.o: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
1144 msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \
1145 $(config_h)
1146 editfns.o: editfns.c window.h buffer.h systime.h $(INTERVAL_SRC) character.h \
1147 coding.h dispextern.h frame.h blockinput.h atimer.h $(config_h)
1148 emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
1149 termhooks.h buffer.h atimer.h systime.h $(INTERVAL_SRC) $(config_h) \
1150 window.h dispextern.h keyboard.h keymap.h
1151 fileio.o: fileio.c window.h buffer.h systime.h $(INTERVAL_SRC) character.h \
1152 coding.h msdos.h dispextern.h blockinput.h atimer.h $(config_h)
1153 filelock.o: filelock.c buffer.h character.h charset.h coding.h systime.h \
1154 epaths.h $(config_h)
1155 filemode.o: filemode.c $(config_h)
1156 frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
1157 blockinput.h atimer.h systime.h buffer.h character.h fontset.h \
1158 msdos.h dosfns.h dispextern.h w32term.h macterm.h termchar.h $(config_h)
1159 fringe.o: fringe.c dispextern.h frame.h window.h buffer.h termhooks.h $(config_h)
1160 font.o: font.c dispextern.h frame.h window.h ccl.h character.h charset.h \
1161 font.h $(config_h)
1162 ftfont.o: dispextern.h frame.h character.h charset.h font.h $(config_h)
1163 fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h character.h \
1164 charset.h frame.h keyboard.h termhooks.h $(FONTSRC) $(config_h)
1165 getloadavg.o: getloadavg.c $(config_h)
1166 image.o: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
1167 systime.h xterm.h w32term.h w32gui.h macterm.h macgui.h $(config_h)
1168 indent.o: indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h \
1169 termopts.h disptab.h region-cache.h character.h category.h composite.h \
1170 dispextern.h keyboard.h
1171 insdel.o: insdel.c window.h buffer.h $(INTERVAL_SRC) blockinput.h character.h \
1172 dispextern.h atimer.h systime.h region-cache.h $(config_h)
1173 keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h character.h \
1174 commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
1175 systime.h dispextern.h syntax.h $(INTERVAL_SRC) blockinput.h \
1176 atimer.h xterm.h puresize.h msdos.h keymap.h w32term.h macterm.h $(config_h)
1177 keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
1178 atimer.h systime.h puresize.h character.h intervals.h keymap.h window.h \
1179 $(config_h)
1180 lastfile.o: lastfile.c $(config_h)
1181 macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h \
1182 dispextern.h $(config_h)
1183 malloc.o: malloc.c $(config_h)
1184 gmalloc.o: gmalloc.c $(config_h)
1185 ralloc.o: ralloc.c $(config_h)
1186 vm-limit.o: vm-limit.c mem-limits.h $(config_h)
1187 marker.o: marker.c buffer.h character.h $(config_h)
1188 md5.o: md5.c md5.h $(config_h)
1189 minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h \
1190 buffer.h commands.h character.h msdos.h $(INTERVAL_SRC) keymap.h \
1191 termhooks.h $(config_h)
1192 mktime.o: mktime.c $(config_h)
1193 msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
1194 termopts.h termchar.h character.h coding.h ccl.h disptab.h window.h \
1195 keyboard.h intervals.h buffer.h commands.h blockinput.h atimer.h $(config_h)
1196 process.o: process.c process.h buffer.h window.h termhooks.h termopts.h \
1197 commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
1198 blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
1199 keyboard.h $(config_h)
1200 regex.o: regex.c syntax.h buffer.h $(config_h) regex.h category.h character.h \
1201 charset.h
1202 region-cache.o: region-cache.c buffer.h region-cache.h $(config_h)
1203 scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
1204 termhooks.h $(config_h)
1205 search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
1206 blockinput.h atimer.h systime.h category.h character.h charset.h \
1207 composite.h $(INTERVAL_SRC) \
1208 $(config_h)
1209 strftime.o: strftime.c $(config_h)
1210 syntax.o: syntax.c syntax.h buffer.h commands.h category.h character.h \
1211 composite.h keymap.h regex.h $(INTERVAL_SRC) $(config_h)
1212 sysdep.o: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
1213 process.h dispextern.h termhooks.h termchar.h termopts.h \
1214 frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h $(config_h)
1215 term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \
1216 disptab.h dispextern.h keyboard.h character.h charset.h coding.h ccl.h \
1217 msdos.h window.h keymap.h blockinput.h atimer.h systime.h
1218 termcap.o: termcap.c $(config_h)
1219 terminal.o: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
1220 keyboard.h $(config_h)
1221 terminfo.o: terminfo.c $(config_h)
1222 tparam.o: tparam.c $(config_h)
1223 undo.o: undo.c buffer.h commands.h window.h $(config_h)
1224 /* This hack is to discard any space that cpp might put at the beginning
1225 of UNEXEC when substituting it in. */
1226 UNEXEC_ALIAS=UNEXEC
1227 $(UNEXEC_ALIAS): UNEXEC_SRC $(config_h)
1228 w16select.o: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
1229 msdos.h buffer.h charset.h coding.h composite.h $(config_h)
1230 widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h \
1231 $(srcdir)/../lwlib/lwlib.h $(config_h)
1232 window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
1233 disptab.h keyboard.h dispextern.h msdos.h composite.h \
1234 keymap.h blockinput.h atimer.h systime.h $(INTERVAL_SRC) \
1235 xterm.h w32term.h macterm.h $(config_h)
1236 xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h \
1237 coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h \
1238 charset.h $(config_h) keyboard.h $(INTERVAL_SRC) region-cache.h xterm.h \
1239 w32term.h macterm.h msdos.h composite.h fontset.h blockinput.h atimer.h \
1240 systime.h keymap.h $(FONTSRC)
1241 xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
1242 window.h character.h charset.h msdos.h dosfns.h composite.h atimer.h \
1243 systime.h keyboard.h fontset.h w32term.h macterm.h $(INTERVAL_SRC) \
1244 termchar.h termhooks.h $(FONTSRC) $(config_h)
1245 xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
1246 $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h \
1247 character.h charset.h coding.h gtkutil.h $(config_h) termhooks.h \
1248 fontset.h termchar.h $(FONTSRC)
1249 xfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1250 font.h $(config_h)
1251 xftfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1252 font.h $(config_h)
1253 ftxfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1254 font.h $(config_h)
1255 xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
1256 charset.h keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h \
1257 systime.h gtkutil.h msdos.h coding.h $(config_h)
1258 xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
1259 dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
1260 keyboard.h gnu.h character.h charset.h ccl.h fontset.h composite.h \
1261 coding.h process.h gtkutil.h $(FONTSRC) $(config_h)
1262 xselect.o: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
1263 buffer.h atimer.h systime.h termhooks.h $(config_h)
1264 xrdb.o: xrdb.c $(config_h) epaths.h
1265 xsmfns.o: xsmfns.c $(config_h) systime.h sysselect.h termhooks.h xterm.h \
1266 lisp.h termopts.h
1267 gtkutil.o: gtkutil.c gtkutil.h xterm.h lisp.h frame.h $(config_h) \
1268 blockinput.h window.h atimer.h systime.h termhooks.h keyboard.h \
1269 charset.h coding.h
1270
1271 hftctl.o: hftctl.c $(config_h)
1272 sound.o: sound.c dispextern.h $(config_h)
1273 atimer.o: atimer.c atimer.h systime.h $(config_h)
1274
1275 /* The files of Lisp proper */
1276
1277 alloc.o: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h keyboard.h \
1278 blockinput.h atimer.h systime.h character.h dispextern.h $(config_h) \
1279 $(INTERVAL_SRC)
1280 bytecode.o: bytecode.c buffer.h syntax.h character.h window.h dispextern.h \
1281 frame.h xterm.h $(config_h)
1282 data.o: data.c buffer.h puresize.h character.h syssignal.h keyboard.h frame.h \
1283 termhooks.h $(config_h)
1284 eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
1285 dispextern.h $(config_h)
1286 floatfns.o: floatfns.c $(config_h)
1287 fns.o: fns.c commands.h $(config_h) frame.h buffer.h character.h keyboard.h \
1288 keymap.h frame.h window.h dispextern.h $(INTERVAL_SRC) coding.h md5.h \
1289 blockinput.h atimer.h systime.h xterm.h termhooks.h
1290 print.o: print.c process.h frame.h window.h buffer.h keyboard.h character.h \
1291 $(config_h) dispextern.h termchar.h $(INTERVAL_SRC) msdos.h composite.h \
1292 blockinput.h atimer.h systime.h
1293 lread.o: lread.c commands.h keyboard.h buffer.h epaths.h character.h \
1294 charset.h $(config_h) $(INTERVAL_SRC) termhooks.h coding.h msdos.h
1295
1296 /* Text properties support */
1297 textprop.o: textprop.c buffer.h window.h dispextern.h $(INTERVAL_SRC) \
1298 $(config_h)
1299 intervals.o: intervals.c buffer.h $(INTERVAL_SRC) keyboard.h puresize.h \
1300 keymap.h $(config_h)
1301 composite.o: composite.c buffer.h character.h $(INTERVAL_SRC) $(config_h)
1302
1303 /* System-specific programs to be made.
1304 OTHER_FILES and OBJECTS_MACHINE
1305 select which of these should be compiled. */
1306
1307 sunfns.o: sunfns.c buffer.h window.h dispextern.h termhooks.h $(config_h)
1308
1309 #ifdef HAVE_CARBON
1310 abbrev.o buffer.o callint.o cmds.o dispnew.o editfns.o fileio.o frame.o \
1311 fontset.o indent.o insdel.o keyboard.o macros.o minibuf.o msdos.o process.o \
1312 scroll.o sysdep.o term.o terminal.o widget.o window.o xdisp.o xfaces.o xfns.o xmenu.o \
1313 xterm.o xselect.o sound.o: macgui.h
1314 mac.o: mac.c process.h sysselect.h blockinput.h atimer.h systime.h charset.h \
1315 coding.h ccl.h $(config_h)
1316 macfns.o: macfns.c charset.h macterm.h macgui.h frame.h window.h buffer.h \
1317 dispextern.h macgui.h fontset.h $(INTERVAL_SRC) keyboard.h blockinput.h \
1318 atimer.h systime.h epaths.h termhooks.h coding.h $(config_h)
1319 macmenu.o: macmenu.c termhooks.h frame.h window.h dispextern.h macgui.h \
1320 keyboard.h blockinput.h atimer.h systime.h buffer.h macterm.h $(config_h)
1321 macterm.o: blockinput.h atimer.h systime.h syssignal.h macterm.h macgui.h \
1322 frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h termopts.h \
1323 termchar.h gnu.h disptab.h buffer.h window.h keyboard.h $(INTERVAL_SRC) \
1324 process.h coding.h $(config_h)
1325 macselect.o: blockinput.h atimer.h systime.h macterm.h macgui.h frame.h \
1326 keymap.h $(config_h)
1327
1328 ${emacsapp}Contents/Resources/English.lproj:
1329 mkdir -p $@
1330
1331 ifneq (${emacsapp},${emacsappsrc})
1332 ${emacsapp}Contents/Info.plist: ${emacsappsrc}Contents/Info.plist
1333 cp $< $@
1334 ${emacsapp}Contents/PkgInfo: ${emacsappsrc}Contents/PkgInfo
1335 cp $< $@
1336 ${emacsapp}Contents/Resources/Emacs.icns: ${emacsappsrc}Contents/Resources/Emacs.icns
1337 mkdir -p ${emacsapp}Contents/Resources
1338 cp $< $@
1339 ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings: ${emacsappsrc}Contents/Resources/English.lproj/InfoPlist.strings
1340 cp $< $@
1341 endif
1342
1343 macosx-bundle: ${emacsapp}Contents/Resources/English.lproj \
1344 ${emacsapp}Contents/Info.plist ${emacsapp}Contents/PkgInfo \
1345 ${emacsapp}Contents/Resources/Emacs.icns \
1346 ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings
1347 macosx-app: macosx-bundle ${emacsapp}Contents/MacOS/Emacs
1348 ${emacsapp}Contents/MacOS/Emacs: emacs${EXEEXT}
1349 mkdir -p ${emacsapp}Contents/MacOS/;
1350 cd ${emacsapp}Contents/MacOS/; cp ../../../../src/emacs${EXEEXT} Emacs${EXEEXT}
1351 #endif
1352
1353 bootstrapclean:
1354 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
1355 mostlyclean:
1356 rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a
1357 rm -f ../etc/DOC
1358 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
1359 rm -f ${etc}buildobj.lst
1360 clean: mostlyclean
1361 rm -f emacs-*${EXEEXT} emacs${EXEEXT}
1362 /**/# This is used in making a distribution.
1363 /**/# Do not use it on development directories!
1364 distclean: clean
1365 rm -f epaths.h config.h Makefile Makefile.c config.stamp stamp-oldxmenu ../etc/DOC-*
1366 mv ./.gdbinit ./.gdbinit.save
1367 if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
1368 else mv ./.gdbinit.save ./.gdbinit; fi
1369 maintainer-clean: distclean
1370 @echo "This command is intended for maintainers to use;"
1371 @echo "it deletes files that may require special tools to rebuild."
1372 rm -f TAGS
1373 versionclean:
1374 -rm -f emacs${EXEEXT} emacs-* ../etc/DOC*
1375 extraclean: distclean
1376 -rm -f *~ \#* m/?*~ s/?*~
1377
1378 /* Arrange to make a tags table TAGS-LISP for ../lisp,
1379 plus TAGS for the C files, which includes ../lisp/TAGS by reference. */
1380
1381 ctagsfiles1 = [xyzXYZ]*.[hc]
1382 ctagsfiles2 = [a-wA-W]*.[hc]
1383
1384 TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1385 ../lib-src/etags --include=TAGS-LISP --include=${lwlibdir}/TAGS \
1386 --regex='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \
1387 $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1388 frc:
1389 TAGS-LISP: frc
1390 $(MAKE) -f ${lispdir}Makefile TAGS-LISP ETAGS=../lib-src/etags
1391
1392 $(lwlibdir)TAGS:
1393 (cd $(lwlibdir); $(MAKE) -f $(lwlibdir)Makefile tags ETAGS=../lib-src/etags)
1394
1395 tags: TAGS TAGS-LISP $(lwlibdir)TAGS
1396 .PHONY: tags
1397
1398
1399 /* Bootstrapping. */
1400
1401 bootstrap: bootstrap-emacs${EXEEXT}
1402
1403 /* Dump an Emacs executable named bootstrap-emacs containing the
1404 files from loadup.el in source form. */
1405
1406 bootstrap-emacs${EXEEXT}: temacs${EXEEXT} ${lispsource}international/charprop.el
1407 #ifdef CANNOT_DUMP
1408 ln temacs${EXEEXT} bootstrap-emacs${EXEEXT}
1409 #else
1410 $(RUN_TEMACS) --batch --load loadup bootstrap
1411 mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
1412 #endif /* ! defined (CANNOT_DUMP) */