Merge from emacs--rel--22
[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, 2008
4 # Free Software Foundation, Inc.
5
6 # This file is part of GNU Emacs.
7
8 # GNU Emacs is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 3, or (at your option)
11 # any later version.
12
13 # GNU Emacs is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
17
18 # You should have received a copy of the GNU General Public License
19 # along with GNU Emacs; see the file COPYING. If not, write to
20 # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 # Boston, MA 02110-1301, USA.
22
23
24 # Note that this file is edited by msdos/sed1v2.inp for MSDOS. That
25 # script may need modifying in sync with changes made here. Try to
26 # avoid shell-ism because the DOS build has to use the DOS shell.
27
28 # Don't try to replace the cpp processing using autoconf facilities,
29 # says rms.
30
31 # Here are the things that we expect ../configure to edit.
32 # We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
33 srcdir=@srcdir@
34 VPATH=@srcdir@
35 CC=@CC@
36 CPP=@CPP@
37 CFLAGS=@CFLAGS@
38 CPPFLAGS=@CPPFLAGS@
39 LDFLAGS=@LDFLAGS@
40 LN_S=@LN_S@
41 EXEEXT=@EXEEXT@
42 version=@version@
43 # Substitute an assignment for the MAKE variable, because
44 # BSD doesn't have it as a default.
45 @SET_MAKE@
46 # Don't use LIBS. configure puts stuff in it that either shouldn't be
47 # linked with Emacs or is duplicated by the cpp stuff below.
48 # LIBS = @LIBS@
49 LIBOBJS = @LIBOBJS@
50
51 # On Xenix and the IBM RS6000, double-dot gets screwed up.
52 dot = .
53 dotdot = ${dot}${dot}
54 lispsource = ${srcdir}/$(dot)$(dot)/lisp/
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}
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 /* lastfile must follow all files
595 whose initialized data areas should be dumped as pure by dump-emacs. */
596 obj= dispnew.o frame.o scroll.o xdisp.o $(XMENU_OBJ) window.o \
597 charset.o coding.o category.o ccl.o \
598 cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \
599 emacs.o keyboard.o macros.o keymap.o sysdep.o \
600 buffer.o filelock.o insdel.o marker.o \
601 minibuf.o fileio.o dired.o filemode.o \
602 cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
603 alloc.o data.o doc.o editfns.o callint.o \
604 eval.o floatfns.o fns.o print.o lread.o \
605 syntax.o UNEXEC bytecode.o \
606 process.o callproc.o \
607 region-cache.o sound.o atimer.o \
608 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
609 $(MSDOS_OBJ) $(MAC_OBJ) $(CYGWIN_OBJ)
610
611 /* Object files used on some machine or other.
612 These go in the DOC file on all machines
613 in case they are needed there. */
614 SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
615 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
616 mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o \
617 w32.o w32bdf.o w32console.o w32fns.o w32heap.o w32inevt.o \
618 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o
619
620
621 #ifdef TERMINFO
622 /* Used to be -ltermcap here. If your machine needs that,
623 define LIBS_TERMCAP in the m/MACHINE.h file. */
624 #ifndef LIBS_TERMCAP
625 #define LIBS_TERMCAP -lcurses
626 #endif /* LIBS_TERMCAP */
627 termcapobj = terminfo.o
628 #else /* ! defined (TERMINFO) */
629 #ifndef LIBS_TERMCAP
630 #define LIBS_TERMCAP
631 termcapobj = termcap.o tparam.o
632 #else /* LIBS_TERMCAP */
633 termcapobj = tparam.o
634 #endif /* LIBS_TERMCAP */
635 #endif /* ! defined (TERMINFO) */
636
637
638 #ifndef SYSTEM_MALLOC
639
640 #ifndef DOUG_LEA_MALLOC
641 gmallocobj = gmalloc.o
642 #endif
643
644 #ifdef REL_ALLOC
645 rallocobj = ralloc.o
646 #endif
647
648 mallocobj = $(gmallocobj) $(rallocobj) vm-limit.o
649
650 #endif /* SYSTEM_MALLOC */
651
652
653 #ifdef USE_X_TOOLKIT
654 widgetobj= widget.o
655 #else /* not USE_X_TOOLKIT */
656 widgetobj=
657 #endif /* not USE_X_TOOLKIT */
658
659
660 /* define otherobj as list of object files that make-docfile
661 should not be told about. */
662 #ifdef CYGWIN
663 /* Cygwin differs because of its unexec(). */
664 otherobj= $(termcapobj) $(gmallocobj) $(rallocobj) lastfile.o vm-limit.o $(widgetobj) $(LIBOBJS)
665 #else
666 otherobj= $(termcapobj) lastfile.o $(mallocobj) $(widgetobj) $(LIBOBJS)
667 #endif
668
669 #ifdef HAVE_MOUSE
670 #define MOUSE_SUPPORT ${lispsource}mouse.elc \
671 ${lispsource}select.elc ${lispsource}scroll-bar.elc
672 #else
673 #ifdef HAVE_GPM
674 #define MOUSE_SUPPORT ${lispsource}mouse.elc
675 #else
676 #define MOUSE_SUPPORT
677 #endif
678 #endif
679
680 #ifdef VMS
681 #define VMS_SUPPORT ${lispsource}vmsproc.elc ${lispsource}vms-patch.elc
682 #else
683 #define VMS_SUPPORT
684 #endif
685
686 #ifdef MSDOS
687 #define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
688 ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc \
689 ${lispsource}international/ccl.elc ${lispsource}international/codepage.elc
690
691 #else
692 #define MSDOS_SUPPORT
693 #endif
694
695 #ifdef HAVE_WINDOW_SYSTEM
696 #ifdef HAVE_X_WINDOWS
697 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
698 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
699 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc ${lispsource}x-dnd.elc
700 #else
701 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
702 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
703 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc
704 #endif
705 #else
706 #define WINDOW_SUPPORT
707 #endif
708
709 #ifdef WINDOWSNT
710 #define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
711 ${lispsource}dos-w32.elc ${lispsource}w32-vars.elc \
712 ${lispsource}w32-fns.elc
713 #else
714 #define WINNT_SUPPORT
715 #endif
716
717 #ifdef HAVE_WINDOW_SYSTEM
718 #define TOOLTIP_SUPPORT ${lispsource}tooltip.elc
719 #else
720 #define TOOLTIP_SUPPORT
721 #endif
722
723 /* List of Lisp files loaded into the dumped Emacs. It is arranged
724 like this because it is easier to generate it semi-mechanically from
725 loadup.el this way.
726
727 Note that this list should not include lisp files which might not
728 be present, like site-load.el and site-init.el; this makefile
729 expects them all to be either present or buildable.
730
731 Files which are loaded unconditionally should be in shortlisp as well.
732 Files included conditionally here should be included (unconditionally)
733 in SOME_MACHINE_LISP. */
734
735 lisp= \
736 ${lispsource}abbrev.elc \
737 ${lispsource}buff-menu.elc \
738 ${lispsource}button.elc \
739 ${lispsource}emacs-lisp/byte-run.elc \
740 ${lispsource}cus-face.elc \
741 ${lispsource}cus-start.elc \
742 ${lispsource}custom.elc \
743 ${lispsource}emacs-lisp/backquote.elc \
744 ${lispsource}emacs-lisp/lisp-mode.elc \
745 ${lispsource}emacs-lisp/lisp.elc \
746 ${lispsource}env.elc \
747 ${lispsource}faces.elc \
748 ${lispsource}files.elc \
749 ${lispsource}format.elc \
750 ${lispsource}facemenu.elc \
751 MOUSE_SUPPORT \
752 ${lispsource}emacs-lisp/float-sup.elc \
753 ${lispsource}frame.elc \
754 ${lispsource}help.elc \
755 ${lispsource}indent.elc \
756 ${lispsource}isearch.elc \
757 ${lispsource}rfn-eshadow.elc \
758 ${lispsource}loadup.el \
759 ${lispsource}loaddefs.el \
760 ${lispsource}bindings.elc \
761 ${lispsource}emacs-lisp/map-ynp.elc \
762 ${lispsource}menu-bar.elc \
763 ${lispsource}international/mule.elc \
764 ${lispsource}international/mule-conf.el \
765 ${lispsource}international/mule-cmds.elc \
766 ${lispsource}international/characters.elc \
767 ${lispsource}international/ucs-tables.elc \
768 ${lispsource}international/utf-8.elc \
769 ${lispsource}international/utf-16.elc \
770 ${lispsource}international/latin-1.el \
771 ${lispsource}international/latin-2.el \
772 ${lispsource}international/latin-3.el \
773 ${lispsource}international/latin-4.el \
774 ${lispsource}international/latin-5.el \
775 ${lispsource}international/latin-8.el \
776 ${lispsource}international/latin-9.el \
777 ${lispsource}case-table.elc \
778 ${lispsource}language/chinese.elc \
779 ${lispsource}language/cyrillic.elc \
780 ${lispsource}language/indian.elc \
781 ${lispsource}language/devanagari.el \
782 ${lispsource}language/kannada.el \
783 ${lispsource}language/malayalam.el \
784 ${lispsource}language/tamil.el \
785 ${lispsource}language/english.el \
786 ${lispsource}language/ethiopic.elc \
787 ${lispsource}language/european.elc \
788 ${lispsource}language/czech.el \
789 ${lispsource}language/slovak.el \
790 ${lispsource}language/romanian.el \
791 ${lispsource}language/greek.el \
792 ${lispsource}language/hebrew.el \
793 ${lispsource}language/japanese.el \
794 ${lispsource}language/korean.el \
795 ${lispsource}language/lao.el \
796 ${lispsource}language/thai.el \
797 ${lispsource}language/tibetan.elc \
798 ${lispsource}language/vietnamese.elc \
799 ${lispsource}language/misc-lang.el \
800 ${lispsource}language/utf-8-lang.el \
801 ${lispsource}language/georgian.el \
802 ${lispsource}paths.el \
803 ${lispsource}register.elc \
804 ${lispsource}replace.elc \
805 ${lispsource}simple.elc \
806 ${lispsource}startup.elc \
807 ${lispsource}subr.elc \
808 ${lispsource}term/tty-colors.elc \
809 ${lispsource}font-core.elc \
810 ${lispsource}emacs-lisp/syntax.elc \
811 ${lispsource}font-lock.elc \
812 ${lispsource}jit-lock.elc \
813 ${lispsource}textmodes/fill.elc \
814 ${lispsource}textmodes/page.elc \
815 ${lispsource}textmodes/paragraphs.elc \
816 ${lispsource}textmodes/text-mode.elc \
817 ${lispsource}emacs-lisp/timer.elc \
818 ${lispsource}jka-cmpr-hook.elc \
819 ${lispsource}vc-hooks.elc \
820 ${lispsource}ediff-hook.elc \
821 TOOLTIP_SUPPORT \
822 VMS_SUPPORT \
823 MSDOS_SUPPORT \
824 WINNT_SUPPORT \
825 WINDOW_SUPPORT \
826 ${lispsource}widget.elc \
827 ${lispsource}window.elc \
828 ${lispsource}version.el
829
830 /* These are relative file names for the Lisp files
831 that are loaded unconditionally. This is used in make-docfile.
832 It need not contain the files that are loaded conditionally
833 because SOME_MACHINE_LISP has those. */
834 shortlisp= \
835 ../lisp/abbrev.elc \
836 ../lisp/buff-menu.elc \
837 ../lisp/button.elc \
838 ../lisp/emacs-lisp/byte-run.elc \
839 ../lisp/cus-face.elc \
840 ../lisp/cus-start.elc \
841 ../lisp/custom.elc \
842 ../lisp/emacs-lisp/backquote.elc \
843 ../lisp/emacs-lisp/lisp-mode.elc \
844 ../lisp/emacs-lisp/lisp.elc \
845 ../lisp/facemenu.elc \
846 ../lisp/faces.elc \
847 ../lisp/files.elc \
848 ../lisp/emacs-lisp/float-sup.elc \
849 ../lisp/format.elc \
850 ../lisp/frame.elc \
851 ../lisp/help.elc \
852 ../lisp/indent.elc \
853 ../lisp/isearch.elc \
854 ../lisp/rfn-eshadow.elc \
855 ../lisp/loadup.el \
856 ../lisp/loaddefs.el \
857 ../lisp/bindings.elc \
858 ../lisp/emacs-lisp/map-ynp.elc \
859 ../lisp/env.elc \
860 ../lisp/international/mule.elc \
861 ../lisp/international/mule-conf.el \
862 ../lisp/international/mule-cmds.elc \
863 ../lisp/international/characters.elc \
864 ../lisp/international/ucs-tables.elc \
865 ../lisp/international/utf-8.elc \
866 ../lisp/international/utf-16.elc \
867 ../lisp/international/latin-1.el \
868 ../lisp/international/latin-2.el \
869 ../lisp/international/latin-3.el \
870 ../lisp/international/latin-4.el \
871 ../lisp/international/latin-5.el \
872 ../lisp/international/latin-8.el \
873 ../lisp/international/latin-9.el \
874 ../lisp/case-table.elc \
875 ../lisp/language/chinese.elc \
876 ../lisp/language/cyrillic.elc \
877 ../lisp/language/indian.elc \
878 ../lisp/language/devanagari.el \
879 ../lisp/language/kannada.el \
880 ../lisp/language/malayalam.el \
881 ../lisp/language/tamil.el \
882 ../lisp/language/english.el \
883 ../lisp/language/ethiopic.elc \
884 ../lisp/language/european.elc \
885 ../lisp/language/czech.el \
886 ../lisp/language/slovak.el \
887 ../lisp/language/romanian.el \
888 ../lisp/language/greek.el \
889 ../lisp/language/hebrew.el \
890 ../lisp/language/japanese.el \
891 ../lisp/language/korean.el \
892 ../lisp/language/lao.el \
893 ../lisp/language/thai.el \
894 ../lisp/language/tibetan.elc \
895 ../lisp/language/vietnamese.elc \
896 ../lisp/language/misc-lang.el \
897 ../lisp/language/utf-8-lang.el \
898 ../lisp/language/georgian.el \
899 ../lisp/menu-bar.elc \
900 ../lisp/paths.el \
901 ../lisp/register.elc \
902 ../lisp/replace.elc \
903 ../lisp/simple.elc \
904 ../lisp/startup.elc \
905 ../lisp/subr.elc \
906 ../lisp/term/tty-colors.elc \
907 ../lisp/font-core.elc \
908 ../lisp/emacs-lisp/syntax.elc \
909 ../lisp/font-lock.elc \
910 ../lisp/jit-lock.elc \
911 ../lisp/textmodes/fill.elc \
912 ../lisp/textmodes/page.elc \
913 ../lisp/textmodes/paragraphs.elc \
914 ../lisp/textmodes/text-mode.elc \
915 ../lisp/emacs-lisp/timer.elc \
916 ../lisp/vc-hooks.elc \
917 ../lisp/jka-cmpr-hook.elc \
918 ../lisp/ediff-hook.elc \
919 ../lisp/widget.elc \
920 ../lisp/window.elc \
921 ../lisp/version.el
922
923 /* Lisp files that may or may not be used.
924 We must unconditionally put them in the DOC file.
925 We use ../lisp/ to start the file names
926 to reduce the size of the argument list for make-docfile
927 for the sake of systems which can''t handle large ones. */
928 SOME_MACHINE_LISP = ${dotdot}/lisp/mouse.elc \
929 ${dotdot}/lisp/select.elc ${dotdot}/lisp/scroll-bar.elc \
930 VMS_SUPPORT \
931 ${dotdot}/lisp/ls-lisp.elc ${dotdot}/lisp/dos-fns.elc \
932 ${dotdot}/lisp/w32-fns.elc ${dotdot}/lisp/dos-w32.elc \
933 ${dotdot}/lisp/disp-table.elc ${dotdot}/lisp/dos-vars.elc \
934 ${dotdot}/lisp/tooltip.elc ${dotdot}/lisp/image.elc \
935 ${dotdot}/lisp/fringe.elc ${dotdot}/lisp/dnd.elc \
936 ${dotdot}/lisp/mwheel.elc ${dotdot}/lisp/tool-bar.elc \
937 ${dotdot}/lisp/x-dnd.elc \
938 ${dotdot}/lisp/international/ccl.elc \
939 ${dotdot}/lisp/international/codepage.elc \
940 ${dotdot}/lisp/international/fontset.elc \
941 ${dotdot}/lisp/mouse.elc \
942 ${dotdot}/lisp/term/x-win.elc
943
944 /* Construct full set of libraries to be linked.
945 Note that SunOS needs -lm to come before -lc; otherwise, you get
946 duplicated symbols. If the standard libraries were compiled
947 with GCC, we might need gnulib again after them. */
948 LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) $(RSVG_LIBS) $(DBUS_LIBS) \
949 LIBGPM LIBRESOLV LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
950 LIBS_DEBUG $(GETLOADAVG_LIBS) $(GNULIB_VAR) LIB_MATH LIB_STANDARD \
951 $(GNULIB_VAR)
952
953 /* Enable recompilation of certain other files depending on system type. */
954
955 #ifndef OTHER_FILES
956 #define OTHER_FILES
957 #endif
958
959 #ifndef OBJECTS_MACHINE
960 #define OBJECTS_MACHINE
961 #endif
962
963 RUN_TEMACS = ./temacs
964
965 all: emacs${EXEEXT} OTHER_FILES
966
967 emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
968 #ifdef CANNOT_DUMP
969 rm -f emacs${EXEEXT}
970 ln temacs${EXEEXT} emacs${EXEEXT}
971 #else
972 #ifdef HAVE_SHM
973 LC_ALL=C $(RUN_TEMACS) -nl -batch -l loadup dump
974 #else /* ! defined (HAVE_SHM) */
975 LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
976 #endif /* ! defined (HAVE_SHM) */
977 #endif /* ! defined (CANNOT_DUMP) */
978 -./emacs -q -batch -f list-load-path-shadows
979
980 /* We run make-docfile twice because the command line may get too long
981 on some systems. */
982 /* ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may
983 or may not be included in ${obj}, but they are always included in
984 ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned
985 for the first time, this prevents any variation between configurations
986 in the contents of the DOC file.
987 Likewise for ${SOME_MACHINE_LISP}. */
988 ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
989 -rm -f ${etc}DOC
990 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
991 ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
992
993 ${libsrc}make-docfile${EXEEXT}:
994 cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
995
996 temacs${EXEEXT}: $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} OBJECTS_MACHINE prefix-args${EXEEXT}
997 echo "${obj} ${otherobj} " OBJECTS_MACHINE > buildobj.lst
998 $(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS) \
999 -o temacs ${STARTFILES} ${obj} ${otherobj} \
1000 OBJECTS_MACHINE ${LIBES}
1001
1002 /* We do not use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE
1003 often contain options that have to do with using Emacs''s crt0,
1004 which are only good with temacs. */
1005 prefix-args${EXEEXT}: prefix-args.c $(config_h)
1006 $(CC) $(ALL_CFLAGS) $(LDFLAGS) ${srcdir}/prefix-args.c -o prefix-args
1007
1008 #if defined (HAVE_X_WINDOWS) && defined (HAVE_X11) && defined (HAVE_MENUS) && ! defined (HAVE_GTK)
1009
1010 /* We use stamp-xmenu with these two deps
1011 to both ensure that lwlib gets remade based on its dependencies
1012 in its own makefile,
1013 and remake temacs if lwlib gets changed by this. */
1014 stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU)
1015 touch stamp-oldxmenu
1016 /* Supply an ordering for parallel make. */
1017 ../src/$(OLDXMENU): ${OLDXMENU}
1018
1019 #ifdef USE_X_TOOLKIT
1020 $(OLDXMENU): really-lwlib
1021
1022 /* Encode the values of these two macros in Make variables,
1023 so we can use $(...) to substitute their values within "...". */
1024 C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
1025 C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
1026 C_SWITCH_SITE_1 = C_SWITCH_SITE
1027 C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
1028 C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
1029 C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
1030 really-lwlib:
1031 cd ${lwlibdir}; ${MAKE} ${MFLAGS} \
1032 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
1033 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
1034 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
1035 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
1036 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
1037 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
1038 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
1039 @true /* make -t should not create really-lwlib. */
1040 .PHONY: really-lwlib
1041 #else /* not USE_X_TOOLKIT */
1042 $(OLDXMENU): really-oldXMenu
1043
1044 /* Encode the values of these two macros in Make variables,
1045 so we can use $(...) to substitute their values within "...". */
1046 C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
1047 C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
1048 C_SWITCH_SITE_1 = C_SWITCH_SITE
1049 C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
1050 C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
1051 C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
1052 really-oldXMenu:
1053 cd ${oldXMenudir}; ${MAKE} ${MFLAGS} \
1054 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
1055 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
1056 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
1057 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
1058 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
1059 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
1060 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
1061 @true /* make -t should not create really-oldXMenu. */
1062 .PHONY: really-oldXMenu
1063 #endif /* not USE_X_TOOLKIT */
1064 #else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! HAVE_GTK) */
1065
1066 /* We don''t really need this, but satisfy the dependency. */
1067 stamp-oldxmenu:
1068 touch stamp-oldxmenu
1069 #endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! HAVE_GTK) */
1070
1071 ../config.status:: epaths.in
1072 @echo "The file epaths.h needs to be set up from epaths.in."
1073 @echo "Please run the `configure' script again."
1074 exit 1
1075
1076 ../config.status:: config.in
1077 @echo "The file config.h needs to be set up from config.in."
1078 @echo "Please run the `configure' script again."
1079 exit 1
1080
1081 /* Nearly all the following files depend on lisp.h,
1082 but it is not included as a dependency because
1083 it is so often changed in ways that do not require any recompilation
1084 and so rarely changed in ways that do require any. */
1085
1086 buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \
1087 dispextern.h $(INTERVAL_SRC) blockinput.h atimer.h systime.h charset.h \
1088 $(config_h)
1089 callint.o: callint.c window.h commands.h buffer.h keymap.h \
1090 keyboard.h dispextern.h $(config_h)
1091 callproc.o: callproc.c epaths.h buffer.h commands.h $(config_h) \
1092 process.h systty.h syssignal.h charset.h coding.h ccl.h msdos.h \
1093 composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h
1094 casefiddle.o: casefiddle.c syntax.h commands.h buffer.h composite.h \
1095 charset.h keymap.h $(config_h)
1096 casetab.o: casetab.c buffer.h $(config_h)
1097 category.o: category.c category.h buffer.h charset.h keymap.h $(config_h)
1098 ccl.o: ccl.c ccl.h charset.h coding.h $(config_h)
1099 charset.o: charset.c charset.h buffer.h coding.h composite.h disptab.h \
1100 $(config_h)
1101 coding.o: coding.c coding.h ccl.h buffer.h charset.h intervals.h composite.h \
1102 window.h dispextern.h frame.h termhooks.h $(config_h)
1103 cm.o: cm.c frame.h cm.h termhooks.h termchar.h $(config_h)
1104 cmds.o: cmds.c syntax.h buffer.h charset.h commands.h window.h $(config_h) \
1105 msdos.h dispextern.h keyboard.h keymap.h
1106 pre-crt0.o: pre-crt0.c
1107 ecrt0.o: ecrt0.c $(config_h)
1108 CRT0_COMPILE ${srcdir}/ecrt0.c
1109 dired.o: dired.c commands.h buffer.h $(config_h) charset.h coding.h regex.h \
1110 systime.h blockinput.h atimer.h
1111 dispnew.o: dispnew.c systime.h commands.h process.h frame.h \
1112 window.h buffer.h dispextern.h termchar.h termopts.h termhooks.h cm.h \
1113 disptab.h indent.h intervals.h \
1114 xterm.h blockinput.h atimer.h charset.h msdos.h composite.h keyboard.h \
1115 $(config_h)
1116 doc.o: doc.c $(config_h) epaths.h buffer.h keyboard.h keymap.h charset.h
1117 doprnt.o: doprnt.c charset.h $(config_h)
1118 dosfns.o: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
1119 msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \
1120 $(config_h)
1121 editfns.o: editfns.c window.h buffer.h systime.h $(INTERVAL_SRC) charset.h \
1122 coding.h dispextern.h frame.h blockinput.h atimer.h $(config_h)
1123 emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
1124 termhooks.h buffer.h atimer.h systime.h $(INTERVAL_SRC) $(config_h) \
1125 window.h dispextern.h keyboard.h keymap.h
1126 fileio.o: fileio.c window.h buffer.h systime.h $(INTERVAL_SRC) charset.h \
1127 coding.h msdos.h dispextern.h blockinput.h atimer.h $(config_h)
1128 filelock.o: filelock.c buffer.h charset.h coding.h systime.h epaths.h $(config_h)
1129 filemode.o: filemode.c $(config_h)
1130 frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
1131 blockinput.h atimer.h systime.h buffer.h charset.h fontset.h \
1132 msdos.h dosfns.h dispextern.h w32term.h macterm.h termchar.h $(config_h)
1133 fringe.o: fringe.c dispextern.h frame.h window.h buffer.h termhooks.h $(config_h)
1134 fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h charset.h frame.h \
1135 keyboard.h termhooks.h $(config_h)
1136 getloadavg.o: getloadavg.c $(config_h)
1137 image.o: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
1138 systime.h xterm.h w32term.h w32gui.h macterm.h macgui.h $(config_h)
1139 indent.o: indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h \
1140 termopts.h disptab.h region-cache.h charset.h composite.h dispextern.h \
1141 keyboard.h
1142 insdel.o: insdel.c window.h buffer.h $(INTERVAL_SRC) blockinput.h charset.h \
1143 dispextern.h atimer.h systime.h region-cache.h $(config_h)
1144 keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h charset.h \
1145 commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
1146 systime.h dispextern.h syntax.h $(INTERVAL_SRC) blockinput.h \
1147 atimer.h xterm.h puresize.h msdos.h keymap.h w32term.h macterm.h $(config_h)
1148 keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
1149 atimer.h systime.h puresize.h charset.h intervals.h keymap.h window.h \
1150 $(config_h)
1151 lastfile.o: lastfile.c $(config_h)
1152 macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h \
1153 dispextern.h $(config_h)
1154 malloc.o: malloc.c $(config_h)
1155 gmalloc.o: gmalloc.c $(config_h)
1156 ralloc.o: ralloc.c $(config_h)
1157 vm-limit.o: vm-limit.c mem-limits.h $(config_h)
1158 marker.o: marker.c buffer.h charset.h $(config_h)
1159 md5.o: md5.c md5.h $(config_h)
1160 minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h \
1161 buffer.h commands.h charset.h msdos.h $(INTERVAL_SRC) keymap.h \
1162 termhooks.h $(config_h)
1163 mktime.o: mktime.c $(config_h)
1164 msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
1165 termopts.h termchar.h charset.h coding.h ccl.h disptab.h window.h \
1166 keyboard.h intervals.h buffer.h commands.h blockinput.h atimer.h $(config_h)
1167 process.o: process.c process.h buffer.h window.h termhooks.h termopts.h \
1168 commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
1169 blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
1170 keyboard.h $(config_h)
1171 regex.o: regex.c syntax.h buffer.h $(config_h) regex.h category.h charset.h
1172 region-cache.o: region-cache.c buffer.h region-cache.h $(config_h)
1173 scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
1174 termhooks.h $(config_h)
1175 search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
1176 blockinput.h atimer.h systime.h category.h charset.h composite.h \
1177 $(INTERVAL_SRC) $(config_h)
1178 strftime.o: strftime.c $(config_h)
1179 syntax.o: syntax.c syntax.h buffer.h commands.h category.h charset.h \
1180 composite.h keymap.h regex.h $(INTERVAL_SRC) $(config_h)
1181 sysdep.o: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
1182 process.h dispextern.h termhooks.h termchar.h termopts.h \
1183 frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h $(config_h)
1184 term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \
1185 disptab.h dispextern.h keyboard.h charset.h coding.h ccl.h msdos.h \
1186 window.h keymap.h blockinput.h atimer.h systime.h
1187 termcap.o: termcap.c $(config_h)
1188 terminal.o: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
1189 keyboard.h $(config_h)
1190 terminfo.o: terminfo.c $(config_h)
1191 tparam.o: tparam.c $(config_h)
1192 undo.o: undo.c buffer.h commands.h window.h $(config_h)
1193 /* This hack is to discard any space that cpp might put at the beginning
1194 of UNEXEC when substituting it in. */
1195 UNEXEC_ALIAS=UNEXEC
1196 $(UNEXEC_ALIAS): UNEXEC_SRC $(config_h)
1197 w16select.o: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
1198 msdos.h buffer.h charset.h coding.h composite.h $(config_h)
1199 widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h \
1200 $(srcdir)/../lwlib/lwlib.h $(config_h)
1201 window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
1202 disptab.h keyboard.h dispextern.h msdos.h composite.h \
1203 keymap.h blockinput.h atimer.h systime.h $(INTERVAL_SRC) \
1204 xterm.h w32term.h macterm.h $(config_h)
1205 xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h coding.h \
1206 termchar.h frame.h window.h disptab.h termhooks.h charset.h $(config_h) \
1207 keyboard.h $(INTERVAL_SRC) region-cache.h xterm.h w32term.h macterm.h \
1208 msdos.h composite.h fontset.h blockinput.h atimer.h systime.h keymap.h
1209 xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
1210 window.h charset.h msdos.h dosfns.h composite.h atimer.h systime.h \
1211 keyboard.h fontset.h w32term.h macterm.h $(INTERVAL_SRC) termchar.h \
1212 termhooks.h $(config_h)
1213 xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
1214 $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h \
1215 charset.h gtkutil.h termchar.h termhooks.h $(config_h)
1216 xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
1217 keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h \
1218 gtkutil.h msdos.h coding.h $(config_h)
1219 xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
1220 dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
1221 keyboard.h gnu.h charset.h ccl.h fontset.h composite.h \
1222 coding.h process.h gtkutil.h $(config_h)
1223 xselect.o: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
1224 buffer.h atimer.h systime.h termhooks.h $(config_h)
1225 xrdb.o: xrdb.c $(config_h) epaths.h
1226 xsmfns.o: xsmfns.c $(config_h) systime.h sysselect.h termhooks.h xterm.h \
1227 lisp.h termopts.h
1228 gtkutil.o: gtkutil.c gtkutil.h xterm.h lisp.h frame.h $(config_h) \
1229 blockinput.h window.h atimer.h systime.h termhooks.h keyboard.h \
1230 charset.h coding.h
1231 dbusbind.o: dbusbind.c termhooks.h $(config_h)
1232
1233 hftctl.o: hftctl.c $(config_h)
1234 sound.o: sound.c dispextern.h $(config_h)
1235 atimer.o: atimer.c atimer.h systime.h $(config_h)
1236
1237 /* The files of Lisp proper */
1238
1239 alloc.o: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h keyboard.h \
1240 blockinput.h atimer.h systime.h charset.h dispextern.h $(config_h) $(INTERVAL_SRC)
1241 bytecode.o: bytecode.c buffer.h syntax.h charset.h window.h dispextern.h \
1242 frame.h xterm.h $(config_h)
1243 data.o: data.c buffer.h puresize.h charset.h syssignal.h keyboard.h frame.h termhooks.h $(config_h)
1244 eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
1245 dispextern.h $(config_h)
1246 floatfns.o: floatfns.c $(config_h)
1247 fns.o: fns.c commands.h $(config_h) frame.h buffer.h charset.h keyboard.h \
1248 keymap.h frame.h window.h dispextern.h $(INTERVAL_SRC) coding.h md5.h \
1249 blockinput.h atimer.h systime.h xterm.h termhooks.h
1250 print.o: print.c process.h frame.h window.h buffer.h keyboard.h charset.h \
1251 $(config_h) dispextern.h termchar.h $(INTERVAL_SRC) msdos.h composite.h \
1252 blockinput.h atimer.h systime.h
1253 lread.o: lread.c commands.h keyboard.h buffer.h epaths.h charset.h \
1254 $(config_h) $(INTERVAL_SRC) termhooks.h coding.h msdos.h
1255
1256 /* Text properties support */
1257 textprop.o: textprop.c buffer.h window.h dispextern.h $(INTERVAL_SRC) \
1258 $(config_h)
1259 intervals.o: intervals.c buffer.h $(INTERVAL_SRC) keyboard.h puresize.h \
1260 keymap.h $(config_h)
1261 composite.o: composite.c buffer.h charset.h $(INTERVAL_SRC) $(config_h)
1262
1263 /* System-specific programs to be made.
1264 OTHER_FILES and OBJECTS_MACHINE
1265 select which of these should be compiled. */
1266
1267 #ifdef HAVE_CARBON
1268 buffer.o callint.o cmds.o dispnew.o editfns.o fileio.o frame.o \
1269 fontset.o indent.o insdel.o keyboard.o macros.o minibuf.o msdos.o process.o \
1270 scroll.o sysdep.o term.o terminal.o widget.o window.o xdisp.o xfaces.o xfns.o xmenu.o \
1271 xterm.o xselect.o sound.o: macgui.h
1272 mac.o: mac.c process.h sysselect.h blockinput.h atimer.h systime.h charset.h \
1273 coding.h ccl.h $(config_h)
1274 macfns.o: macfns.c charset.h macterm.h macgui.h frame.h window.h buffer.h \
1275 dispextern.h macgui.h fontset.h $(INTERVAL_SRC) keyboard.h blockinput.h \
1276 atimer.h systime.h epaths.h termhooks.h coding.h $(config_h)
1277 macmenu.o: macmenu.c termhooks.h frame.h window.h dispextern.h macgui.h \
1278 keyboard.h blockinput.h atimer.h systime.h buffer.h macterm.h $(config_h)
1279 macterm.o: blockinput.h atimer.h systime.h syssignal.h macterm.h macgui.h \
1280 frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h termopts.h \
1281 termchar.h gnu.h disptab.h buffer.h window.h keyboard.h $(INTERVAL_SRC) \
1282 process.h coding.h $(config_h)
1283 macselect.o: blockinput.h atimer.h systime.h macterm.h macgui.h frame.h \
1284 keymap.h $(config_h)
1285
1286 ${emacsapp}Contents/Resources/English.lproj:
1287 mkdir -p $@
1288
1289 ifneq (${emacsapp},${emacsappsrc})
1290 ${emacsapp}Contents/Info.plist: ${emacsappsrc}Contents/Info.plist
1291 cp $< $@
1292 ${emacsapp}Contents/PkgInfo: ${emacsappsrc}Contents/PkgInfo
1293 cp $< $@
1294 ${emacsapp}Contents/Resources/Emacs.icns: ${emacsappsrc}Contents/Resources/Emacs.icns
1295 mkdir -p ${emacsapp}Contents/Resources
1296 cp $< $@
1297 ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings: ${emacsappsrc}Contents/Resources/English.lproj/InfoPlist.strings
1298 cp $< $@
1299 endif
1300
1301 macosx-bundle: ${emacsapp}Contents/Resources/English.lproj \
1302 ${emacsapp}Contents/Info.plist ${emacsapp}Contents/PkgInfo \
1303 ${emacsapp}Contents/Resources/Emacs.icns \
1304 ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings
1305 macosx-app: macosx-bundle ${emacsapp}Contents/MacOS/Emacs
1306 ${emacsapp}Contents/MacOS/Emacs: emacs${EXEEXT}
1307 mkdir -p ${emacsapp}Contents/MacOS/;
1308 cd ${emacsapp}Contents/MacOS/; cp ../../../../src/emacs${EXEEXT} Emacs${EXEEXT}
1309 #endif
1310
1311 bootstrapclean:
1312 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
1313 mostlyclean:
1314 rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a
1315 rm -f ../etc/DOC
1316 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
1317 rm -f buildobj.lst
1318 clean: mostlyclean
1319 rm -f emacs-*${EXEEXT} emacs${EXEEXT}
1320 /**/# This is used in making a distribution.
1321 /**/# Do not use it on development directories!
1322 distclean: clean
1323 rm -f epaths.h config.h Makefile Makefile.c config.stamp stamp-oldxmenu ../etc/DOC-*
1324 mv ./.gdbinit ./.gdbinit.save
1325 if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
1326 else mv ./.gdbinit.save ./.gdbinit; fi
1327 maintainer-clean: distclean
1328 @echo "This command is intended for maintainers to use;"
1329 @echo "it deletes files that may require special tools to rebuild."
1330 rm -f TAGS
1331 versionclean:
1332 -rm -f emacs${EXEEXT} emacs-* ../etc/DOC*
1333 extraclean: distclean
1334 -rm -f *~ \#* m/?*~ s/?*~
1335
1336 /* Arrange to make a tags table TAGS-LISP for ../lisp,
1337 plus TAGS for the C files, which includes ../lisp/TAGS by reference. */
1338
1339 ctagsfiles1 = [xyzXYZ]*.[hc]
1340 ctagsfiles2 = [a-wA-W]*.[hc]
1341
1342 TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1343 ../lib-src/etags --include=TAGS-LISP --include=${lwlibdir}/TAGS \
1344 --regex='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \
1345 $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1346 frc:
1347 TAGS-LISP: frc
1348 $(MAKE) -f ${lispdir}Makefile TAGS-LISP ETAGS=../lib-src/etags
1349
1350 $(lwlibdir)TAGS:
1351 (cd $(lwlibdir); $(MAKE) -f $(lwlibdir)Makefile tags ETAGS=../lib-src/etags)
1352
1353 tags: TAGS TAGS-LISP $(lwlibdir)TAGS
1354 .PHONY: tags
1355
1356
1357 /* Bootstrapping. */
1358
1359 bootstrap: bootstrap-emacs${EXEEXT}
1360
1361 /* Dump an Emacs executable named bootstrap-emacs containing the
1362 files from loadup.el in source form. */
1363
1364 bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
1365 #ifdef CANNOT_DUMP
1366 ln temacs${EXEEXT} bootstrap-emacs${EXEEXT}
1367 #else
1368 #ifdef HAVE_SHM
1369 $(RUN_TEMACS) -nl -batch -l loadup bootstrap
1370 #else /* ! defined (HAVE_SHM) */
1371 $(RUN_TEMACS) --batch --load loadup bootstrap
1372 #endif /* ! defined (HAVE_SHM) */
1373 mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
1374 #endif /* ! defined (CANNOT_DUMP) */