Set GPM part of MOUSE_SUPPORT with configure, not cpp.
[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, 2009, 2010
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 of the License, or
11 # (at your option) 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. If not, see <http://www.gnu.org/licenses/>.
20
21
22 # Note that this file is edited by msdos/sed1v2.inp for MSDOS. That
23 # script may need modifying in sync with changes made here. Try to
24 # avoid shell-ism because the DOS build has to use the DOS shell.
25
26 # Don't try to replace the cpp processing using autoconf facilities,
27 # says rms.
28 # Replacing a particular part of the conditionals to work via autoconf
29 # is OK.
30 # Some of the conditionals might be dead now. Finding them and
31 # deleting them would be fine.
32
33
34 # Here are the things that we expect ../configure to edit.
35 # We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
36 srcdir = @srcdir@
37 abs_builddir = @abs_builddir@
38 VPATH = $(srcdir)
39 CC = @CC@
40 CPP = @CPP@
41 CFLAGS = @CFLAGS@
42 CPPFLAGS = @CPPFLAGS@
43 LDFLAGS = @LDFLAGS@
44 LN_S = @LN_S@
45 EXEEXT = @EXEEXT@
46 version = @version@
47 # Substitute an assignment for the MAKE variable, because
48 # BSD doesn't have it as a default.
49 @SET_MAKE@
50 # Don't use LIBS. configure puts stuff in it that either shouldn't be
51 # linked with Emacs or is duplicated by the cpp stuff below.
52 # LIBS = @LIBS@
53 LIBOBJS = @LIBOBJS@
54
55 lispsource = ${srcdir}/../lisp/
56 libsrc = ../lib-src/
57 etc = ../etc/
58 oldXMenudir = ../oldXMenu/
59 lwlibdir = ../lwlib/
60 lispdir = ../lisp/
61
62 # Configuration files for .o files to depend on.
63 M_FILE = ${srcdir}/@machfile@
64 S_FILE = ${srcdir}/@opsysfile@
65 config_h = config.h $(M_FILE) $(S_FILE)
66
67 bootstrap_exe = ${abs_builddir}/bootstrap-emacs${EXEEXT}
68
69 OTHER_FILES = @OTHER_FILES@
70
71 CRT_DIR=@CRT_DIR@
72
73 LIBTIFF=@LIBTIFF@
74 LIBJPEG=@LIBJPEG@
75 LIBPNG=@LIBPNG@
76 LIBGIF=@LIBGIF@
77 LIBXPM=@LIBXPM@
78 XFT_LIBS=@XFT_LIBS@
79
80 DBUS_CFLAGS = @DBUS_CFLAGS@
81 DBUS_LIBS = @DBUS_LIBS@
82 DBUS_OBJ = @DBUS_OBJ@
83
84 GCONF_CFLAGS = @GCONF_CFLAGS@
85 GCONF_LIBS = @GCONF_LIBS@
86
87 GTK_OBJ=@GTK_OBJ@
88
89 LIBXMU=@LIBXMU@
90
91 LIBXSM=@LIBXSM@
92
93 LIBXTR6=@LIBXTR6@
94
95 XMENU_OBJ=@XMENU_OBJ@
96 XOBJ=@XOBJ@
97
98 TOOLKIT_LIBW=@TOOLKIT_LIBW@
99
100 LIBSOUND= @LIBSOUND@
101 CFLAGS_SOUND= @CFLAGS_SOUND@
102
103 RSVG_LIBS= @RSVG_LIBS@
104 RSVG_CFLAGS= @RSVG_CFLAGS@
105
106 ## widget.o if USE_X_TOOLKIT, otherwise empty.
107 WIDGET_OBJ=@WIDGET_OBJ@
108
109 NS_OBJ=@NS_OBJ@
110 NS_SUPPORT=@NS_SUPPORT@
111
112 ## Only used if HAVE_X_WINDOWS and HAVE_WINDOW_SYSTEM.
113 FONT_OBJ=@FONT_OBJ@
114
115 ## ${lispsource}mouse.elc if HAVE_GPM, otherwise empty.
116 ## Not used if HAVE_MOUSE.
117 GPM_MOUSE_SUPPORT=@GPM_MOUSE_SUPPORT@
118
119 LIBSELINUX_LIBS = @LIBSELINUX_LIBS@
120
121 INTERVALS_H = dispextern.h intervals.h composite.h
122
123 GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
124
125 RUN_TEMACS = `/bin/pwd`/temacs
126
127 # ========================== start of cpp stuff =======================
128 /* From here on, comments must be done in C syntax. */
129
130 /* just to be sure the sh is used */
131 SHELL=/bin/sh
132
133 #define THIS_IS_MAKEFILE
134 #define NOT_C_CODE
135 #include "config.h"
136
137 #ifdef AUTO_DEPEND
138 DEPFLAGS = -MMD -MF deps/$*.d
139 #endif
140
141 /* Do not let the file name mktime.c get messed up. */
142 #ifdef mktime
143 #undef mktime
144 #endif
145
146 /* Use HAVE_X11 as an alias for X11 in this file
147 to avoid problems with X11 as a subdirectory name
148 in -I and other such options which pass through this file. */
149
150 #ifdef X11
151 #define HAVE_X11
152 #undef X11
153 #endif
154
155 /* On some machines #define register is done in config;
156 do not let it interfere with this file. */
157 #undef register
158
159 /* Some machines do not find the standard C libraries in the usual place. */
160 #ifndef ORDINARY_LINK
161 #ifndef LIB_STANDARD
162 #define LIB_STANDARD -lc
163 #endif
164 #else
165 #ifndef LIB_STANDARD
166 #define LIB_STANDARD
167 #endif
168 #endif
169
170 /* Under GNUstep, putting libc on the link line causes problems. */
171 #ifdef NS_IMPL_GNUSTEP
172 #undef LIB_STANDARD
173 #define LIB_STANDARD
174 #endif
175
176 /* Some s/SYSTEM.h files define this to request special libraries. */
177 #ifndef LIBS_SYSTEM
178 #define LIBS_SYSTEM
179 #endif
180
181 /* Some s/SYSTEM.h files define this to request special switches in ld. */
182 #ifndef LD_SWITCH_SYSTEM
183 #if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
184 #define LD_SWITCH_SYSTEM -X
185 #else /* (defined (BSD_SYSTEM) && !defined (COFF)) */
186 #define LD_SWITCH_SYSTEM
187 #endif /* (defined (BSD_SYSTEM) && !defined (COFF)) */
188 #endif /* LD_SWITCH_SYSTEM */
189
190 /* This holds special options for linking temacs
191 that should be used for linking anything else. */
192 #ifndef LD_SWITCH_SYSTEM_TEMACS
193 #define LD_SWITCH_SYSTEM_TEMACS
194 #endif
195
196 /* Some m/MACHINE.h files define this to request special switches in ld. */
197 #ifndef LD_SWITCH_MACHINE
198 #define LD_SWITCH_MACHINE
199 #endif
200
201 /* These macros are for switches specifically related to X Windows. */
202 #ifndef LD_SWITCH_X_SITE
203 #define LD_SWITCH_X_SITE
204 #endif
205
206 STARTFILES = START_FILES
207
208
209 #ifdef NS_IMPL_GNUSTEP
210 /* Pull in stuff from GNUstep-make. */
211 FOUNDATION_LIB=gnu
212 GUI_LIB=gnu
213 include @GNUSTEP_MAKEFILES@/Additional/base.make
214 include @GNUSTEP_MAKEFILES@/Additional/gui.make
215 shared=no
216 #endif
217
218 /* DO NOT use -R. There is a special hack described in lastfile.c
219 which is used instead. Some initialized data areas are modified
220 at initial startup, then labeled as part of the text area when
221 Emacs is dumped for the first time, and never changed again. */
222
223 /* -Demacs is needed to make some files produce the correct version
224 for use in Emacs.
225
226 -DHAVE_CONFIG_H is needed for some other files to take advantage of
227 the information in ``config.h''. */
228
229 /* C_SWITCH_X_SITE must come before C_SWITCH_X_SYSTEM
230 since it may have -I options that should override those two. */
231 ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I${srcdir} @c_switch_machine@ @c_switch_system@ @C_SWITCH_X_SITE@ @C_SWITCH_X_SYSTEM@ ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} ${GCONF_CFLAGS} ${CFLAGS} @FREETYPE_CFLAGS@ @FONTCONFIG_CFLAGS@ @LIBOTF_CFLAGS@ @M17N_FLT_CFLAGS@ ${DEPFLAGS}
232 ALL_OBJC_CFLAGS=$(ALL_CFLAGS) @GNU_OBJC_CFLAGS@
233
234 .SUFFIXES: .m
235 .c.o:
236 #ifdef AUTO_DEPEND
237 @-test -d deps || mkdir deps
238 #endif
239 $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
240 .m.o:
241 #ifdef AUTO_DEPEND
242 @-test -d deps || mkdir deps
243 #endif
244 $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $<
245
246 #ifdef HAVE_X_WINDOWS
247 #ifdef HAVE_MENUS
248
249 /* The X Menu stuff is present in the X10 distribution, but missing
250 from X11. If we have X10, just use the installed library;
251 otherwise, use our own copy. */
252 #ifdef HAVE_X11
253 #ifdef USE_X_TOOLKIT
254 OLDXMENU=${lwlibdir}liblw.a
255 LIBXMENU= $(OLDXMENU)
256 #else /* not USE_X_TOOLKIT */
257 OLDXMENU= ${oldXMenudir}libXMenu11.a
258 LIBXMENU= $(OLDXMENU)
259 #endif /* not USE_X_TOOLKIT */
260 #else /* not HAVE_X11 */
261 LIBXMENU= -lXMenu
262 #endif /* not HAVE_X11 */
263
264 #else /* not HAVE_MENUS */
265
266 /* Otherwise, do not worry about the menu library at all. */
267 LIBXMENU=
268 #endif /* not HAVE_MENUS */
269
270 #ifdef USE_X_TOOLKIT
271 LIBW=$(TOOLKIT_LIBW)
272
273 LIBXT= $(LIBW) $(LIBXMU) -lXt $(LIBXTR6) -lXext
274
275 #else /* not USE_X_TOOLKIT */
276
277 #ifdef USE_GTK
278 LIBW=@GTK_LIBS@
279 OLDXMENU=
280 LIBXMENU=
281 #endif /* USE_GTK */
282
283 LIBXT=$(LIBW) $(LIBXSM)
284 #endif /* not USE_X_TOOLKIT */
285
286 #ifdef HAVE_X11
287 X11_LDFLAGS = LD_SWITCH_X_SITE
288 LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) $(LIBTIFF) $(LIBJPEG) $(LIBPNG) $(LIBGIF) $(LIBXPM) -lX11 $(XFT_LIBS)
289 #else /* not HAVE_X11 */
290 LIBX= $(LIBXMENU) LD_SWITCH_X_SITE
291 #endif /* not HAVE_X11 */
292 #endif /* not HAVE_X_WINDOWS */
293
294 #ifndef ORDINARY_LINK
295 /* Fix linking if compiled with GCC. */
296 #ifdef __GNUC__
297
298 #ifdef LINKER
299 #define LINKER_WAS_SPECIFIED
300 #endif
301
302 /* Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
303 places that are difficult to figure out at make time. Fortunately,
304 these same versions allow you to pass arbitrary flags on to the
305 linker, so there is no reason not to use it as a linker.
306
307 Well, it is not quite perfect. The "-nostdlib" keeps GCC from
308 searching for libraries in its internal directories, so we have to
309 ask GCC explicitly where to find libgcc.a. */
310
311 #ifndef LINKER
312 #define LINKER $(CC) -nostdlib
313 #endif
314
315 #ifndef LIB_GCC
316 /* Ask GCC where to find libgcc.a. */
317 #define LIB_GCC `$(CC) -print-libgcc-file-name`
318 #endif /* not LIB_GCC */
319
320 GNULIB_VAR = LIB_GCC
321
322 #ifndef LINKER_WAS_SPECIFIED
323 /* GCC passes any argument prefixed with -Xlinker directly to the
324 linker. See prefix-args.c for an explanation of why we do not do
325 this with the shell''s ``for'' construct.
326 Note that some people do not have '.' in their paths, so we must
327 use ./prefix-args. */
328 #define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
329 #else
330 #define YMF_PASS_LDFLAGS(flags) flags
331 #endif
332
333 #else /* not __GNUC__ */
334 GNULIB_VAR =
335
336 #endif /* not __GNUC__ */
337 #endif /* not ORDINARY_LINK */
338
339 #ifdef ORDINARY_LINK
340 LD = $(CC)
341 #else
342 #ifdef LINKER
343 LD=LINKER
344 #else /* not LINKER */
345 LD=ld
346 #endif /* not LINKER */
347 #endif /* not ORDINARY_LINK */
348
349 /* Flags to pass to LD only for temacs. */
350 /* Do not split this line with a backslash. That can cause trouble with
351 some cpps. */
352 TEMACS_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE
353
354 /* A macro which other sections of Makefile can redefine to munge the
355 flags before they are passed to LD. This is helpful if you have
356 redefined LD to something odd, like "gcc".
357 (The YMF prefix is a holdover from the old name "ymakefile".)
358 */
359 #ifndef YMF_PASS_LDFLAGS
360 #define YMF_PASS_LDFLAGS(flags) flags
361 #endif
362
363 #ifdef MSDOS
364 #ifdef HAVE_X_WINDOWS
365 MSDOS_OBJ = dosfns.o msdos.o xmenu.o
366 #else
367 MSDOS_OBJ = dosfns.o msdos.o w16select.o xmenu.o termcap.o
368 #endif
369 #endif
370
371 #ifdef CYGWIN
372 CYGWIN_OBJ = sheap.o
373 #endif
374
375 #ifdef HAVE_NS
376 ns_appdir=@ns_appdir@/
377 ns_appbindir=@ns_appbindir@/
378 ns_appresdir=@ns_appresdir@/
379 ns_appsrc=@ns_appsrc@
380 #endif /* HAVE_NS */
381
382 #ifdef HAVE_WINDOW_SYSTEM
383 #ifdef HAVE_X_WINDOWS
384 FONT_DRIVERS=$(FONT_OBJ)
385 #endif /* HAVE_X_WINDOWS */
386 #endif /* HAVE_WINDOW_SYSTEM */
387
388 /* lastfile must follow all files
389 whose initialized data areas should be dumped as pure by dump-emacs. */
390 obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \
391 charset.o coding.o category.o ccl.o character.o chartab.o bidi.o \
392 cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \
393 emacs.o keyboard.o macros.o keymap.o sysdep.o \
394 buffer.o filelock.o insdel.o marker.o \
395 minibuf.o fileio.o dired.o filemode.o \
396 cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
397 alloc.o data.o doc.o editfns.o callint.o \
398 eval.o floatfns.o fns.o font.o print.o lread.o \
399 syntax.o @unexec@ bytecode.o \
400 process.o callproc.o \
401 region-cache.o sound.o atimer.o \
402 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
403 $(MSDOS_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_DRIVERS)
404
405 /* Object files used on some machine or other.
406 These go in the DOC file on all machines
407 in case they are needed there. */
408 SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
409 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
410 fontset.o dbusbind.o \
411 nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
412 w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
413 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_DRIVERS)
414
415
416 #ifdef TERMINFO
417 /* Used to be -ltermcap here. If your machine needs that,
418 define LIBS_TERMCAP in the m/MACHINE.h file. */
419 #ifndef LIBS_TERMCAP
420 #define LIBS_TERMCAP -lcurses
421 #endif /* LIBS_TERMCAP */
422 termcapobj = terminfo.o
423 #else /* ! defined (TERMINFO) */
424 #ifndef LIBS_TERMCAP
425 #define LIBS_TERMCAP
426 #endif /* LIBS_TERMCAP */
427 termcapobj = tparam.o
428 #endif /* ! defined (TERMINFO) */
429
430
431 #ifndef SYSTEM_MALLOC
432
433 #ifndef DOUG_LEA_MALLOC
434 gmallocobj = gmalloc.o
435 #endif
436
437 #ifdef REL_ALLOC
438 rallocobj = ralloc.o
439 #endif
440
441 mallocobj = $(gmallocobj) $(rallocobj) vm-limit.o
442
443 #endif /* SYSTEM_MALLOC */
444
445
446 /* define otherobj as list of object files that make-docfile
447 should not be told about. */
448 #ifdef CYGWIN
449 /* Cygwin differs because of its unexec(). */
450 otherobj= $(termcapobj) $(gmallocobj) $(rallocobj) lastfile.o vm-limit.o $(WIDGET_OBJ) $(LIBOBJS)
451 #else
452 otherobj= $(termcapobj) lastfile.o $(mallocobj) $(WIDGET_OBJ) $(LIBOBJS)
453 #endif
454
455 #ifdef HAVE_MOUSE
456 #define MOUSE_SUPPORT ${lispsource}mouse.elc \
457 ${lispsource}select.elc ${lispsource}scroll-bar.elc
458 #else
459 #define MOUSE_SUPPORT $(GPM_MOUSE_SUPPORT)
460 #endif
461
462 #ifdef MSDOS
463 #define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
464 ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc \
465 ${lispsource}term/internal.elc ${lispsource}term/pc-win.elc
466
467 #else
468 #define MSDOS_SUPPORT
469 #endif
470
471 #ifdef HAVE_WINDOW_SYSTEM
472 #ifdef HAVE_X_WINDOWS
473 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
474 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
475 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc ${lispsource}x-dnd.elc \
476 ${lispsource}term/common-win.elc ${lispsource}term/x-win.elc \
477 ${lispsource}dynamic-setting.elc
478 #else
479 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
480 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
481 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc
482 #endif
483 #else
484 #define WINDOW_SUPPORT
485 #endif
486
487 #ifdef WINDOWSNT
488 #define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
489 ${lispsource}dos-w32.elc ${lispsource}w32-vars.elc \
490 ${lispsource}w32-fns.elc ${lispsource}term/common-win.elc \
491 ${lispsource}term/w32-win.elc
492 #else
493 #define WINNT_SUPPORT
494 #endif
495
496 #ifdef HAVE_WINDOW_SYSTEM
497 #define TOOLTIP_SUPPORT ${lispsource}tooltip.elc
498 #else
499 #define TOOLTIP_SUPPORT
500 #endif
501
502 /* This is the platform-specific list of Lisp files loaded into the
503 dumped Emacs. It is arranged like this because it is easier to generate
504 it semi-mechanically from loadup.el this way.
505
506 Note that this list should not include lisp files which might not
507 be present, like site-load.el and site-init.el; this makefile
508 expects them all to be either present or buildable.
509
510 Files which are loaded unconditionally (i.e., on all platforms) should
511 also be in shortlisp. Files which are loaded conditionally (i.e., only
512 on some platforms) should instead be in SOME_MACHINE_LISP. */
513
514 /* Place loaddefs.el first, so it gets generated first, since it is on
515 the critical path (relevant in parallel compilations). */
516
517 lisp= \
518 ${lispsource}loaddefs.el \
519 ${lispsource}abbrev.elc \
520 ${lispsource}buff-menu.elc \
521 ${lispsource}button.elc \
522 ${lispsource}emacs-lisp/byte-run.elc \
523 ${lispsource}composite.elc \
524 ${lispsource}cus-face.elc \
525 ${lispsource}cus-start.elc \
526 ${lispsource}custom.elc \
527 ${lispsource}emacs-lisp/backquote.elc \
528 ${lispsource}emacs-lisp/lisp-mode.elc \
529 ${lispsource}emacs-lisp/lisp.elc \
530 ${lispsource}env.elc \
531 ${lispsource}faces.elc \
532 ${lispsource}files.elc \
533 ${lispsource}format.elc \
534 ${lispsource}facemenu.elc \
535 MOUSE_SUPPORT \
536 ${lispsource}emacs-lisp/float-sup.elc \
537 ${lispsource}frame.elc \
538 ${lispsource}help.elc \
539 ${lispsource}indent.elc \
540 ${lispsource}isearch.elc \
541 ${lispsource}rfn-eshadow.elc \
542 ${lispsource}loadup.el \
543 ${lispsource}bindings.elc \
544 ${lispsource}emacs-lisp/map-ynp.elc \
545 ${lispsource}menu-bar.elc \
546 ${lispsource}international/mule.elc \
547 ${lispsource}international/mule-conf.elc \
548 ${lispsource}international/mule-cmds.elc \
549 ${lispsource}international/characters.elc \
550 ${lispsource}international/charprop.el \
551 ${lispsource}case-table.elc \
552 ${lispsource}language/chinese.elc \
553 ${lispsource}language/cyrillic.elc \
554 ${lispsource}language/indian.elc \
555 ${lispsource}language/sinhala.el \
556 ${lispsource}language/english.el \
557 ${lispsource}language/ethiopic.elc \
558 ${lispsource}language/european.elc \
559 ${lispsource}language/czech.el \
560 ${lispsource}language/slovak.el \
561 ${lispsource}language/romanian.el \
562 ${lispsource}language/greek.el \
563 ${lispsource}language/hebrew.el \
564 ${lispsource}language/japanese.el \
565 ${lispsource}language/korean.el \
566 ${lispsource}language/lao.el \
567 ${lispsource}language/cham.el \
568 ${lispsource}language/tai-viet.el \
569 ${lispsource}language/thai.el \
570 ${lispsource}language/tibetan.elc \
571 ${lispsource}language/vietnamese.elc \
572 ${lispsource}language/misc-lang.el \
573 ${lispsource}language/utf-8-lang.el \
574 ${lispsource}language/georgian.el \
575 ${lispsource}language/khmer.el \
576 ${lispsource}language/burmese.el \
577 ${lispsource}paths.el \
578 ${lispsource}register.elc \
579 ${lispsource}replace.elc \
580 ${lispsource}simple.elc \
581 ${lispsource}minibuffer.elc \
582 ${lispsource}startup.elc \
583 ${lispsource}subr.elc \
584 ${lispsource}term/tty-colors.elc \
585 ${lispsource}font-core.elc \
586 ${lispsource}emacs-lisp/syntax.elc \
587 ${lispsource}font-lock.elc \
588 ${lispsource}jit-lock.elc \
589 ${lispsource}textmodes/fill.elc \
590 ${lispsource}textmodes/page.elc \
591 ${lispsource}textmodes/paragraphs.elc \
592 ${lispsource}textmodes/text-mode.elc \
593 ${lispsource}emacs-lisp/timer.elc \
594 ${lispsource}jka-cmpr-hook.elc \
595 ${lispsource}vc-hooks.elc \
596 ${lispsource}ediff-hook.elc \
597 ${lispsource}epa-hook.elc \
598 TOOLTIP_SUPPORT \
599 MSDOS_SUPPORT \
600 WINNT_SUPPORT \
601 WINDOW_SUPPORT \
602 ${NS_SUPPORT} \
603 ${lispsource}widget.elc \
604 ${lispsource}window.elc \
605 ${lispsource}version.el
606
607 /* List of relative names for those files from $lisp that are loaded
608 unconditionally (i.e. on all platforms). Files from $lisp that
609 are only loaded on some platforms should instead be placed in
610 SOME_MACHINE_LISP. The only reason this variable exists is to prevent
611 the make-docfile command-line getting too long for some systems. */
612 shortlisp= \
613 ../lisp/loaddefs.el \
614 ../lisp/abbrev.elc \
615 ../lisp/buff-menu.elc \
616 ../lisp/button.elc \
617 ../lisp/emacs-lisp/byte-run.elc \
618 ../lisp/composite.elc \
619 ../lisp/cus-face.elc \
620 ../lisp/cus-start.elc \
621 ../lisp/custom.elc \
622 ../lisp/emacs-lisp/backquote.elc \
623 ../lisp/emacs-lisp/lisp-mode.elc \
624 ../lisp/emacs-lisp/lisp.elc \
625 ../lisp/facemenu.elc \
626 ../lisp/faces.elc \
627 ../lisp/files.elc \
628 ../lisp/emacs-lisp/float-sup.elc \
629 ../lisp/format.elc \
630 ../lisp/frame.elc \
631 ../lisp/help.elc \
632 ../lisp/indent.elc \
633 ../lisp/isearch.elc \
634 ../lisp/rfn-eshadow.elc \
635 ../lisp/loadup.el \
636 ../lisp/bindings.elc \
637 ../lisp/emacs-lisp/map-ynp.elc \
638 ../lisp/env.elc \
639 ../lisp/international/mule.elc \
640 ../lisp/international/mule-conf.elc \
641 ../lisp/international/mule-cmds.elc \
642 ../lisp/international/characters.elc \
643 ../lisp/case-table.elc \
644 ../lisp/language/chinese.elc \
645 ../lisp/language/cyrillic.elc \
646 ../lisp/language/indian.elc \
647 ../lisp/language/sinhala.el \
648 ../lisp/language/english.el \
649 ../lisp/language/ethiopic.elc \
650 ../lisp/language/european.elc \
651 ../lisp/language/czech.el \
652 ../lisp/language/slovak.el \
653 ../lisp/language/romanian.el \
654 ../lisp/language/greek.el \
655 ../lisp/language/hebrew.el \
656 ../lisp/language/japanese.el \
657 ../lisp/language/korean.el \
658 ../lisp/language/lao.el \
659 ../lisp/language/cham.el \
660 ../lisp/language/tai-viet.el \
661 ../lisp/language/thai.el \
662 ../lisp/language/tibetan.elc \
663 ../lisp/language/vietnamese.elc \
664 ../lisp/language/misc-lang.el \
665 ../lisp/language/utf-8-lang.el \
666 ../lisp/language/georgian.el \
667 ../lisp/language/khmer.el \
668 ../lisp/language/burmese.el \
669 ../lisp/menu-bar.elc \
670 ../lisp/paths.el \
671 ../lisp/register.elc \
672 ../lisp/replace.elc \
673 ../lisp/simple.elc \
674 ../lisp/minibuffer.elc \
675 ../lisp/startup.elc \
676 ../lisp/subr.elc \
677 ../lisp/term/tty-colors.elc \
678 ../lisp/font-core.elc \
679 ../lisp/emacs-lisp/syntax.elc \
680 ../lisp/font-lock.elc \
681 ../lisp/jit-lock.elc \
682 ../lisp/textmodes/fill.elc \
683 ../lisp/textmodes/page.elc \
684 ../lisp/textmodes/paragraphs.elc \
685 ../lisp/textmodes/text-mode.elc \
686 ../lisp/emacs-lisp/timer.elc \
687 ../lisp/vc-hooks.elc \
688 ../lisp/jka-cmpr-hook.elc \
689 ../lisp/ediff-hook.elc \
690 ../lisp/epa-hook.elc \
691 ../lisp/widget.elc \
692 ../lisp/window.elc \
693 ../lisp/version.el
694
695 /* Like $shortlisp, but includes only those files from $lisp that are loaded
696 conditionally (i.e., only on some platforms). */
697 SOME_MACHINE_LISP = ../lisp/mouse.elc \
698 ../lisp/select.elc ../lisp/scroll-bar.elc \
699 ../lisp/ls-lisp.elc ../lisp/dos-fns.elc \
700 ../lisp/w32-fns.elc ../lisp/dos-w32.elc \
701 ../lisp/disp-table.elc ../lisp/dos-vars.elc \
702 ../lisp/tooltip.elc ../lisp/image.elc \
703 ../lisp/fringe.elc ../lisp/dnd.elc \
704 ../lisp/mwheel.elc ../lisp/tool-bar.elc \
705 ../lisp/x-dnd.elc ../lisp/dynamic-setting.elc \
706 ../lisp/international/ccl.elc \
707 ../lisp/international/fontset.elc \
708 ../lisp/mouse.elc \
709 ../lisp/term/common-win.elc \
710 ../lisp/term/x-win.elc \
711 ../lisp/term/pc-win.elc ../lisp/term/internal.elc \
712 ../lisp/term/ns-win.elc ../lisp/term/w32-win.elc \
713 ../lisp/emacs-lisp/easymenu.elc
714
715 /* Construct full set of libraries to be linked.
716 Note that SunOS needs -lm to come before -lc; otherwise, you get
717 duplicated symbols. If the standard libraries were compiled
718 with GCC, we might need gnulib again after them. */
719
720 LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) $(RSVG_LIBS) $(DBUS_LIBS) \
721 @LIBGPM@ @LIBRESOLV@ LIBS_SYSTEM LIBS_TERMCAP \
722 $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \
723 @FREETYPE_LIBS@ @FONTCONFIG_LIBS@ @LIBOTF_LIBS@ @M17N_FLT_LIBS@ \
724 $(GNULIB_VAR) @LIB_MATH@ LIB_STANDARD $(GNULIB_VAR)
725
726 all: emacs${EXEEXT} $(OTHER_FILES)
727
728 emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
729 #ifdef CANNOT_DUMP
730 rm -f emacs${EXEEXT}
731 ln temacs${EXEEXT} emacs${EXEEXT}
732 -EMACSLOADPATH=${lispsource} ./emacs -q -batch -f list-load-path-shadows
733 #else
734 LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
735 @: This new Emacs is as functional and more efficient then
736 @: bootstrap-emacs, so let us replace it.
737 -ln -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
738 -./emacs -q -batch -f list-load-path-shadows
739 #endif /* ! defined (CANNOT_DUMP) */
740
741 /* We run make-docfile twice because the command line may get too long
742 on some systems. */
743 /* ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may
744 or may not be included in ${obj}, but they are always included in
745 ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned
746 for the first time, this prevents any variation between configurations
747 in the contents of the DOC file.
748 Likewise for ${SOME_MACHINE_LISP}. */
749 /* Most of this Makefile refers to Lisp files via ${lispsource}, so
750 we also use ${lisp} rather than ${shortlisp} for the dependency since
751 the Makefile uses string equality to decide when we talk about identical
752 files. Apparently we pass ${shortlisp} rather than ${lisp} to make-docfile
753 only in order to reduce the command line length. --Stef */
754 ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP}
755 -rm -f ${etc}DOC
756 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
757 ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
758
759 ${libsrc}make-docfile${EXEEXT}:
760 cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
761
762 buildobj.h: Makefile
763 echo "#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h
764
765 temacs${EXEEXT}: $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} prefix-args${EXEEXT}
766 #ifdef NS_IMPL_GNUSTEP
767 $(CC) -rdynamic YMF_PASS_LDFLAGS ( ${TEMACS_LDFLAGS} \
768 -L@GNUSTEP_SYSTEM_LIBRARIES@ -lgnustep-gui -lgnustep-base \
769 -lobjc $(CONFIG_SYSTEM_LIBS) -lpthread ) -o temacs \
770 ${obj} ${otherobj} ${LIBES}
771 #else
772 $(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS) \
773 -o temacs ${STARTFILES} ${obj} ${otherobj} \
774 ${LIBES}
775 #endif
776
777 /* We do not use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE
778 often contain options that have to do with using Emacs''s crt0,
779 which are only good with temacs. */
780 prefix-args${EXEEXT}: prefix-args.o $(config_h)
781 $(CC) $(LDFLAGS) prefix-args.o -o prefix-args
782
783 #if defined (HAVE_X_WINDOWS) && defined (HAVE_X11) && defined (HAVE_MENUS) && ! defined (USE_GTK)
784
785 /* We use stamp-xmenu with these two deps
786 to both ensure that lwlib gets remade based on its dependencies
787 in its own makefile,
788 and remake temacs if lwlib gets changed by this. */
789 stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU)
790 touch stamp-oldxmenu
791 /* Supply an ordering for parallel make. */
792 ../src/$(OLDXMENU): ${OLDXMENU}
793
794 #ifdef USE_X_TOOLKIT
795 $(OLDXMENU): really-lwlib
796
797 really-lwlib:
798 cd ${lwlibdir}; ${MAKE} ${MFLAGS} \
799 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'
800 @true /* make -t should not create really-lwlib. */
801 .PHONY: really-lwlib
802 #else /* not USE_X_TOOLKIT */
803 $(OLDXMENU): really-oldXMenu
804
805 really-oldXMenu:
806 cd ${oldXMenudir}; ${MAKE} ${MFLAGS} \
807 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'
808 @true /* make -t should not create really-oldXMenu. */
809 .PHONY: really-oldXMenu
810 #endif /* not USE_X_TOOLKIT */
811 #else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
812
813 /* We don''t really need this, but satisfy the dependency. */
814 stamp-oldxmenu:
815 touch stamp-oldxmenu
816 #endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
817
818 ../config.status:: epaths.in
819 @echo "The file epaths.h needs to be set up from epaths.in."
820 @echo "Please run the `configure' script again."
821 exit 1
822
823 ../config.status:: config.in
824 @echo "The file config.h needs to be set up from config.in."
825 @echo "Please run the `configure' script again."
826 exit 1
827
828 ecrt0.o: ecrt0.c $(config_h)
829 #ifdef AUTO_DEPEND
830 @-test -d deps || mkdir deps
831 #endif
832 $(CC) -c $(ALL_CFLAGS) ${srcdir}/ecrt0.c
833 doc.o: buildobj.h
834
835 #ifndef AUTO_DEPEND
836
837 atimer.o: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \
838 $(config_h)
839 bidi.o: bidi.c buffer.h character.h dispextern.h lisp.h $(config_h)
840 buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \
841 $(INTERVALS_H) blockinput.h atimer.h systime.h character.h \
842 indent.h keyboard.h coding.h keymap.h frame.h lisp.h $(config_h)
843 callint.o: callint.c window.h commands.h buffer.h keymap.h \
844 keyboard.h dispextern.h systime.h coding.h composite.h lisp.h $(config_h)
845 callproc.o: callproc.c epaths.h buffer.h commands.h lisp.h $(config_h) \
846 process.h systty.h syssignal.h character.h coding.h ccl.h msdos.h \
847 composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h \
848 buffer.h
849 casefiddle.o: casefiddle.c syntax.h commands.h buffer.h character.h \
850 composite.h keymap.h lisp.h $(config_h)
851 casetab.o: casetab.c buffer.h character.h lisp.h $(config_h)
852 category.o: category.c category.h buffer.h charset.h keymap.h \
853 character.h lisp.h $(config_h)
854 ccl.o: ccl.c ccl.h charset.h character.h coding.h composite.h lisp.h $(config_h)
855 character.o: character.c character.h buffer.h charset.h composite.h disptab.h \
856 lisp.h $(config_h)
857 charset.o: charset.c charset.h character.h buffer.h coding.h composite.h \
858 disptab.h lisp.h $(config_h)
859 chartab.o: charset.h character.h ccl.h lisp.h $(config_h)
860 coding.o: coding.c coding.h ccl.h buffer.h character.h charset.h composite.h \
861 window.h dispextern.h frame.h termhooks.h lisp.h $(config_h)
862 cm.o: cm.c frame.h cm.h termhooks.h termchar.h dispextern.h lisp.h $(config_h)
863 cmds.o: cmds.c syntax.h buffer.h character.h commands.h window.h lisp.h $(config_h) \
864 msdos.h dispextern.h keyboard.h keymap.h systime.h coding.h frame.h \
865 composite.h
866 pre-crt0.o: pre-crt0.c
867 dbusbind.o: dbusbind.c termhooks.h frame.h keyboard.h lisp.h $(config_h)
868 dired.o: dired.c commands.h buffer.h lisp.h $(config_h) character.h charset.h \
869 coding.h regex.h systime.h blockinput.h atimer.h composite.h
870 dispnew.o: dispnew.c systime.h commands.h process.h frame.h coding.h \
871 window.h buffer.h termchar.h termopts.h termhooks.h cm.h \
872 disptab.h indent.h $(INTERVALS_H) \
873 xterm.h blockinput.h atimer.h character.h msdos.h keyboard.h \
874 syssignal.h lisp.h $(config_h)
875 doc.o: doc.c lisp.h $(config_h) epaths.h buffer.h keyboard.h keymap.h \
876 character.h systime.h coding.h composite.h
877 doprnt.o: doprnt.c character.h lisp.h $(config_h)
878 dosfns.o: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
879 msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \
880 lisp.h $(config_h)
881 editfns.o: editfns.c window.h buffer.h systime.h $(INTERVALS_H) character.h \
882 coding.h frame.h blockinput.h atimer.h lisp.h $(config_h)
883 emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
884 termhooks.h buffer.h atimer.h systime.h $(INTERVALS_H) lisp.h $(config_h) \
885 window.h dispextern.h keyboard.h keymap.h frame.h coding.h
886 fileio.o: fileio.c window.h buffer.h systime.h $(INTERVALS_H) character.h \
887 coding.h msdos.h blockinput.h atimer.h lisp.h $(config_h) frame.h commands.h
888 filelock.o: filelock.c buffer.h character.h coding.h systime.h composite.h \
889 lisp.h $(config_h)
890 filemode.o: filemode.c $(config_h)
891 frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
892 blockinput.h atimer.h systime.h buffer.h character.h fontset.h font.h \
893 msdos.h dosfns.h dispextern.h w32term.h termchar.h coding.h composite.h \
894 lisp.h $(config_h) termhooks.h ccl.h
895 fringe.o: fringe.c dispextern.h frame.h window.h buffer.h termhooks.h \
896 blockinput.h atimer.h systime.h lisp.h $(config_h)
897 font.o: font.c dispextern.h frame.h window.h ccl.h character.h charset.h \
898 font.h lisp.h $(config_h) buffer.h composite.h fontset.h xterm.h
899 ftfont.o: dispextern.h frame.h character.h charset.h composite.h font.h \
900 lisp.h $(config_h) blockinput.h atimer.h systime.h coding.h fontset.h \
901 ccl.h ftfont.h
902 fontset.o: fontset.c fontset.h ccl.h buffer.h character.h \
903 charset.h frame.h keyboard.h termhooks.h font.h lisp.h $(config_h) \
904 blockinput.h atimer.h systime.h coding.h $(INTERVALS_H) window.h xterm.h
905 getloadavg.o: getloadavg.c $(config_h)
906 gtkutil.o: gtkutil.c gtkutil.h xterm.h lisp.h frame.h lisp.h $(config_h) \
907 blockinput.h window.h atimer.h systime.h termhooks.h keyboard.h \
908 charset.h coding.h syssignal.h dispextern.h composite.h
909 image.o: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
910 systime.h xterm.h w32term.h w32gui.h font.h epaths.h character.h coding.h \
911 nsterm.h nsgui.h lisp.h $(config_h) composite.h termhooks.h ccl.h
912 indent.o: indent.c frame.h window.h indent.h buffer.h lisp.h $(config_h) termchar.h \
913 termopts.h disptab.h region-cache.h character.h category.h \
914 keyboard.h systime.h coding.h $(INTERVALS_H)
915 insdel.o: insdel.c window.h buffer.h $(INTERVALS_H) blockinput.h character.h \
916 dispextern.h atimer.h systime.h region-cache.h lisp.h $(config_h)
917 keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h character.h \
918 commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
919 systime.h syntax.h $(INTERVALS_H) blockinput.h atimer.h composite.h \
920 xterm.h puresize.h msdos.h keymap.h w32term.h nsterm.h coding.h \
921 lisp.h $(config_h)
922 keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
923 atimer.h systime.h puresize.h character.h charset.h $(INTERVALS_H) keymap.h window.h \
924 coding.h frame.h lisp.h $(config_h)
925 lastfile.o: lastfile.c $(config_h)
926 macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h \
927 dispextern.h lisp.h $(config_h) systime.h coding.h composite.h
928 gmalloc.o: gmalloc.c $(config_h)
929 ralloc.o: ralloc.c lisp.h $(config_h)
930 vm-limit.o: vm-limit.c mem-limits.h lisp.h $(config_h)
931 marker.o: marker.c buffer.h character.h lisp.h $(config_h)
932 md5.o: md5.c md5.h $(config_h)
933 minibuf.o: minibuf.c syntax.h frame.h window.h keyboard.h systime.h \
934 buffer.h commands.h character.h msdos.h $(INTERVALS_H) keymap.h \
935 termhooks.h lisp.h $(config_h) coding.h
936 mktime.o: mktime.c $(config_h)
937 msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
938 termopts.h termchar.h character.h coding.h ccl.h disptab.h window.h \
939 keyboard.h $(INTERVALS_H) buffer.h commands.h blockinput.h atimer.h lisp.h $(config_h)
940 nsfns.o: nsfns.m charset.h nsterm.h nsgui.h frame.h window.h buffer.h \
941 dispextern.h nsgui.h fontset.h $(INTERVALS_H) keyboard.h blockinput.h \
942 atimer.h systime.h epaths.h termhooks.h coding.h systime.h lisp.h $(config_h)
943 nsfont.o: nsterm.h dispextern.h frame.h lisp.h lisp.h $(config_h)
944 nsimage.o: nsimage.m nsterm.h lisp.h $(config_h)
945 nsmenu.o: nsmenu.m termhooks.h frame.h window.h dispextern.h \
946 nsgui.h keyboard.h blockinput.h atimer.h systime.h buffer.h \
947 nsterm.h lisp.h $(config_h)
948 nsterm.o: nsterm.m blockinput.h atimer.h systime.h syssignal.h nsterm.h \
949 nsgui.h frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h \
950 termopts.h termchar.h disptab.h buffer.h window.h keyboard.h \
951 $(INTERVALS_H) process.h coding.h lisp.h $(config_h)
952 nsselect.o: nsselect.m blockinput.h nsterm.h nsgui.h frame.h lisp.h $(config_h)
953 process.o: process.c process.h buffer.h window.h termhooks.h termopts.h \
954 commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
955 blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
956 keyboard.h lisp.h $(config_h) character.h xgselect.h sysselect.h
957 regex.o: regex.c syntax.h buffer.h lisp.h $(config_h) regex.h category.h character.h
958 region-cache.o: region-cache.c buffer.h region-cache.h lisp.h $(config_h)
959 scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
960 termhooks.h lisp.h $(config_h) systime.h coding.h composite.h window.h
961 search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
962 blockinput.h atimer.h systime.h category.h character.h charset.h \
963 $(INTERVALS_H) \
964 lisp.h $(config_h)
965 sound.o: sound.c dispextern.h syssignal.h lisp.h $(config_h) atimer.h systime.h
966 strftime.o: strftime.c $(config_h)
967 syntax.o: syntax.c syntax.h buffer.h commands.h category.h character.h \
968 keymap.h regex.h $(INTERVALS_H) lisp.h $(config_h)
969 sysdep.o: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
970 process.h dispextern.h termhooks.h termchar.h termopts.h coding.h \
971 frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h lisp.h $(config_h) \
972 composite.h
973 term.o: term.c termchar.h termhooks.h termopts.h lisp.h $(config_h) cm.h frame.h \
974 disptab.h keyboard.h character.h charset.h coding.h ccl.h xterm.h \
975 msdos.h window.h keymap.h blockinput.h atimer.h systime.h systty.h \
976 syssignal.h $(INTERVALS_H) buffer.h
977 termcap.o: termcap.c lisp.h $(config_h)
978 terminal.o: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
979 keyboard.h lisp.h $(config_h) dispextern.h composite.h systime.h
980 terminfo.o: terminfo.c lisp.h $(config_h)
981 tparam.o: tparam.c lisp.h $(config_h)
982 undo.o: undo.c buffer.h commands.h window.h dispextern.h lisp.h $(config_h)
983 unexaix.o: unexaix.c lisp.h $(config_h)
984 unexalpha.o: unexalpha.c $(config_h)
985 unexcw.o: unexcw.c lisp.h $(config_h)
986 unexec.o: unexec.c lisp.h $(config_h)
987 unexelf.o: unexelf.c $(config_h)
988 unexhp9k800.o: unexhp9k800.c $(config_h)
989 unexmacosx.o: unexmacosx.c $(config_h)
990 unexsol.o: unexsol.c lisp.h $(config_h)
991 unexw32.o: unexw32.c $(config_h)
992 w16select.o: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
993 msdos.h buffer.h charset.h coding.h composite.h lisp.h $(config_h)
994 widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h \
995 $(srcdir)/../lwlib/lwlib.h lisp.h $(config_h)
996 window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
997 disptab.h keyboard.h msdos.h coding.h termhooks.h \
998 keymap.h blockinput.h atimer.h systime.h $(INTERVALS_H) \
999 xterm.h w32term.h nsterm.h lisp.h $(config_h)
1000 xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h \
1001 coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h \
1002 charset.h lisp.h $(config_h) keyboard.h $(INTERVALS_H) region-cache.h xterm.h \
1003 w32term.h nsterm.h msdos.h composite.h fontset.h ccl.h \
1004 blockinput.h atimer.h systime.h keymap.h font.h
1005 xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
1006 window.h character.h charset.h msdos.h dosfns.h composite.h atimer.h \
1007 systime.h keyboard.h fontset.h w32term.h nsterm.h coding.h ccl.h \
1008 $(INTERVALS_H) termchar.h termhooks.h font.h lisp.h $(config_h)
1009 xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
1010 $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h \
1011 character.h charset.h coding.h gtkutil.h lisp.h $(config_h) termhooks.h \
1012 fontset.h termchar.h font.h xsettings.h $(INTERVALS_H) ccl.h
1013 xfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1014 font.h lisp.h $(config_h) atimer.h systime.h fontset.h ccl.h
1015 xftfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1016 font.h lisp.h $(config_h) atimer.h systime.h fontset.h ccl.h ftfont.h
1017 ftxfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1018 font.h lisp.h $(config_h) atimer.h systime.h fontset.h ccl.h
1019 menu.o: menu.c lisp.h keyboard.h keymap.h frame.h termhooks.h blockinput.h \
1020 dispextern.h $(srcdir)/../lwlib/lwlib.h xterm.h gtkutil.h menu.h \
1021 lisp.h $(config_h) systime.h coding.h composite.h window.h atimer.h
1022 xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
1023 charset.h keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h \
1024 systime.h gtkutil.h msdos.h coding.h menu.h lisp.h $(config_h) composite.h \
1025 keymap.h sysselect.h
1026 xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
1027 dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
1028 keyboard.h emacs-icon.h character.h charset.h ccl.h fontset.h composite.h \
1029 coding.h process.h gtkutil.h font.h fontset.h lisp.h $(config_h) \
1030 xsettings.h intervals.h keymap.h xgselect.h sysselect.h
1031 xselect.o: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
1032 buffer.h atimer.h systime.h termhooks.h lisp.h $(config_h) keyboard.h \
1033 coding.h composite.h
1034 xgselect.o: xgselect.h systime.h sysselect.h lisp.h $(config_h)
1035 xrdb.o: xrdb.c lisp.h $(config_h) epaths.h
1036 xsmfns.o: xsmfns.c lisp.h $(config_h) systime.h sysselect.h termhooks.h xterm.h \
1037 lisp.h termopts.h frame.h dispextern.h
1038 xsettings.o: xterm.h xsettings.h lisp.h frame.h termhooks.h $(config_h) \
1039 dispextern.h keyboard.h systime.h coding.h composite.h blockinput.h atimer.h \
1040 termopts.h
1041 /* The files of Lisp proper */
1042
1043 alloc.o: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h \
1044 keyboard.h blockinput.h atimer.h systime.h character.h lisp.h $(config_h) \
1045 $(INTERVALS_H) termhooks.h
1046 bytecode.o: bytecode.c buffer.h syntax.h character.h window.h dispextern.h \
1047 frame.h xterm.h lisp.h $(config_h)
1048 data.o: data.c buffer.h puresize.h character.h syssignal.h keyboard.h frame.h \
1049 termhooks.h systime.h coding.h composite.h dispextern.h font.h ccl.h \
1050 lisp.h $(config_h)
1051 eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
1052 dispextern.h lisp.h $(config_h) coding.h composite.h xterm.h
1053 floatfns.o: floatfns.c syssignal.h lisp.h $(config_h)
1054 fns.o: fns.c commands.h lisp.h $(config_h) frame.h buffer.h character.h keyboard.h \
1055 keymap.h window.h dispextern.h $(INTERVALS_H) coding.h md5.h \
1056 blockinput.h atimer.h systime.h xterm.h
1057 print.o: print.c process.h frame.h window.h buffer.h keyboard.h character.h \
1058 lisp.h $(config_h) termchar.h $(INTERVALS_H) msdos.h termhooks.h \
1059 blockinput.h atimer.h systime.h font.h charset.h coding.h ccl.h
1060 lread.o: lread.c commands.h keyboard.h buffer.h epaths.h character.h \
1061 charset.h lisp.h $(config_h) $(INTERVALS_H) termhooks.h coding.h msdos.h \
1062 systime.h frame.h blockinput.h atimer.h
1063
1064 /* Text properties support */
1065 composite.o: composite.c buffer.h character.h coding.h font.h ccl.h \
1066 frame.h termhooks.h $(INTERVALS_H) window.h lisp.h $(config_h)
1067 intervals.o: intervals.c buffer.h $(INTERVALS_H) keyboard.h puresize.h \
1068 keymap.h lisp.h $(config_h) systime.h coding.h
1069 textprop.o: textprop.c buffer.h window.h $(INTERVALS_H) \
1070 lisp.h $(config_h)
1071
1072 #endif /* ! AUTO_DEPEND */
1073
1074 /* System-specific programs to be made.
1075 OTHER_FILES
1076 select which of these should be compiled. */
1077
1078 #ifdef HAVE_NS
1079 /* In fact, every .o file depends directly or indirectly on dispextern.h
1080 and hence nsgui.h under NS. But the ones that actually use stuff there
1081 are more limited. */
1082 dispnew.o font.o fontset.o frame.o fringe.o image.o keyboard.o menu.o \
1083 window.o xdisp.o xfaces.o: nsgui.h
1084
1085 ${ns_appdir}: ${ns_appsrc}
1086 rm -fr ${ns_appdir}
1087 mkdir -p ${ns_appdir}
1088 ( cd ${ns_appsrc} ; tar cfh - . ) | ( cd ${ns_appdir} ; tar xf - )
1089 ( cd ${ns_appdir} ; for subdir in `find . -type d ! -name CVS -print` ; do \
1090 chmod a+rx $${subdir} ; \
1091 rm -rf $${subdir}/CVS ; \
1092 rm -f $${subdir}/.cvsignore ; done ; )
1093
1094 ${ns_appbindir}Emacs: emacs${EXEEXT}
1095 mkdir -p ${ns_appbindir}
1096 cp -f emacs${EXEEXT} ${ns_appbindir}Emacs
1097
1098 ns-app: ${ns_appdir} ${ns_appbindir}Emacs
1099
1100 #endif /* HAVE_NS */
1101
1102 mostlyclean:
1103 rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a
1104 rm -f ../etc/DOC
1105 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
1106 rm -f buildobj.h
1107 clean: mostlyclean
1108 rm -f emacs-*.*.*${EXEEXT} emacs${EXEEXT}
1109 -rm -rf deps
1110 #ifdef HAVE_NS
1111 rm -fr ${ns_appdir}
1112 #endif
1113 /* bootstrap-clean is used to clean up just before a bootstrap.
1114 It should remove all files generated during a compilation/bootstrap,
1115 but not things like config.status or TAGS. */
1116 bootstrap-clean: clean
1117 rm -f epaths.h config.h Makefile.c config.stamp stamp-oldxmenu ../etc/DOC-*
1118 if test -f ./.gdbinit; then \
1119 mv ./.gdbinit ./.gdbinit.save; \
1120 if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
1121 else mv ./.gdbinit.save ./.gdbinit; fi; \
1122 fi
1123 /**/# This is used in making a distribution.
1124 /**/# Do not use it on development directories!
1125 distclean: bootstrap-clean
1126 rm -f Makefile
1127 maintainer-clean: distclean
1128 @echo "This command is intended for maintainers to use;"
1129 @echo "it deletes files that may require special tools to rebuild."
1130 rm -f TAGS
1131 versionclean:
1132 -rm -f emacs${EXEEXT} emacs-*.*.*${EXEEXT} ../etc/DOC*
1133 extraclean: distclean
1134 -rm -f *~ \#* m/?*~ s/?*~
1135
1136 /* Arrange to make a tags table TAGS-LISP for ../lisp,
1137 plus TAGS for the C files, which includes ../lisp/TAGS by reference. */
1138
1139 ctagsfiles1 = [xyzXYZ]*.[hcm]
1140 ctagsfiles2 = [a-wA-W]*.[hcm]
1141
1142 TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1143 ../lib-src/etags --include=TAGS-LISP --include=${lwlibdir}/TAGS \
1144 --regex='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \
1145 $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1146 frc:
1147 TAGS-LISP: frc
1148 $(MAKE) -f ${lispdir}Makefile TAGS-LISP ETAGS=../lib-src/etags
1149
1150 $(lwlibdir)TAGS:
1151 (cd $(lwlibdir); $(MAKE) -f $(lwlibdir)Makefile tags ETAGS=../lib-src/etags)
1152
1153 tags: TAGS TAGS-LISP $(lwlibdir)TAGS
1154 .PHONY: tags
1155
1156
1157 /* Bootstrapping. */
1158 /* Bootstrapping right is difficult because of the circular dependencies.
1159 Furthermore, we have to deal with the fact that many compilation targets
1160 such as loaddefs.el or *.elc can typically be produced by any old
1161 Emacs executable, so we would like to avoid rebuilding them whenever
1162 we build a new Emacs executable.
1163 To solve the circularity, we use 2 different Emacs executables,
1164 "emacs" is the main target and "bootstrap-emacs" is the one used
1165 to build the *.elc and loaddefs.el files.
1166 To solve the freshness issue, we used to use a third file "witness-emacs"
1167 which was used to witness the fact that there is a bootstrap-emacs
1168 executable, and then have dependencies on witness-emacs rather than
1169 bootstrap-emacs, but that lead to problems in parallel builds (because
1170 witness-emacs needed to be free from dependencies (to avoid rebuilding
1171 it), so it was compiled in parallel, leading typically to having 2
1172 processes dumping bootstrap-emacs at the same time).
1173 So instead, we replace the witness-emacs dependencies by conditional
1174 bootstrap-dependencies (via ${BOOTSTRAPEMACS}). Of course, since we do
1175 not want to rely on GNU Make features, we have to rely on an external
1176 script to do the conditional part of the dependency
1177 (i.e. see the ${SUBDIR} rule ../Makefile.in). */
1178
1179 .SUFFIXES: .elc .el
1180
1181 /* These suffix rules do not allow additional dependencies, sadly, so
1182 instead of adding a $(BOOTSTRAPEMACS) dependency here, we add it
1183 separately below.
1184 With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)" */
1185 .el.elc:
1186 @cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \
1187 THEFILE=$< EMACS=${bootstrap_exe}
1188
1189 /* Since the .el.elc rule cannot specify an extra dependency, we do it here. */
1190 ${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS)
1191
1192 ${lispsource}loaddefs.el: $(BOOTSTRAPEMACS)
1193 cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=${bootstrap_exe}
1194
1195 /* Dump an Emacs executable named bootstrap-emacs containing the
1196 files from loadup.el in source form. */
1197
1198 bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
1199 cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs
1200 #ifdef CANNOT_DUMP
1201 ln -f temacs${EXEEXT} bootstrap-emacs${EXEEXT}
1202 #else
1203 $(RUN_TEMACS) --batch --load loadup bootstrap
1204 mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
1205 #endif /* ! defined (CANNOT_DUMP) */
1206 @: Compile some files earlier to speed up further compilation.
1207 cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=${bootstrap_exe}
1208
1209 #ifdef AUTO_DEPEND
1210 ALLOBJS=$(STARTFILES) ${obj} ${otherobj} prefix-args.o
1211 -include $(ALLOBJS:%.o=deps/%.d)
1212 #endif