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