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