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