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