Tweak ns_app*dir values set by configure.
[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 && HAVE_X_WINDOWS, -lXMenu (this case no longer possible).
184 ## Else if !HAVE_X11 || USE_GTK, empty.
185 ## Else $(OLDXMENU).
186 LIBXMENU=@LIBXMENU@
187
188 XMENU_OBJ=@XMENU_OBJ@
189 XOBJ=@XOBJ@
190
191 TOOLKIT_LIBW=@TOOLKIT_LIBW@
192
193 ## Only used if HAVE_X11, in LIBX_OTHER.
194 LIBXT=$(TOOLKIT_LIBW) $(LIBXT_OTHER)
195
196 ## If HAVE_X11, $(LIBXT) $(LIBX_EXTRA), else empty.
197 LIBX_OTHER=@LIBX_OTHER@
198
199 ## LIBXMENU is nil if !HAVE_X_WINDOWS.
200 ## LD_SWITCH_X_SITE should not be used if not using X, but nothing
201 ## sets it at present, and if something ever does, it should be
202 ## configure, which should set it to nil in non-X builds.
203 LIBX_BASE=$(LIBXMENU) $(LD_SWITCH_X_SITE)
204
205 LIBSOUND= @LIBSOUND@
206 CFLAGS_SOUND= @CFLAGS_SOUND@
207
208 RSVG_LIBS= @RSVG_LIBS@
209 RSVG_CFLAGS= @RSVG_CFLAGS@
210
211 ## widget.o if USE_X_TOOLKIT, otherwise empty.
212 WIDGET_OBJ=@WIDGET_OBJ@
213
214 ## sheap.o if CYGWIN, otherwise empty.
215 CYGWIN_OBJ=@CYGWIN_OBJ@
216
217 ## dosfns.o msdos.o w16select.o if MSDOS.
218 MSDOS_OBJ =
219 ## w16select.o termcap.o if MSDOS && HAVE_X_WINDOWS.
220 MSDOS_X_OBJ =
221 MSDOS_SUPPORT_REAL = ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
222 ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc \
223 ${lispsource}term/internal.elc ${lispsource}term/pc-win.elc
224 ## $MSDOS_SUPPORT_REAL if MSDOS.
225 MSDOS_SUPPORT =
226
227 ns_appdir=@ns_appdir@
228 ns_appbindir=@ns_appbindir@
229 ns_appsrc=@ns_appsrc@
230 NS_OBJ=@NS_OBJ@
231 NS_SUPPORT=@NS_SUPPORT@
232 ## Only set if NS_IMPL_GNUSTEP.
233 GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@
234
235 ## Empty if !HAVE_X_WINDOWS
236 ## xfont.o ftfont.o xftfont.o ftxfont.o if HAVE_XFT
237 ## xfont.o ftfont.o ftxfont.o if HAVE_FREETYPE
238 ## else xfont.o
239 FONT_OBJ=@FONT_OBJ@
240
241 ## Used if HAVE_MOUSE.
242 REAL_MOUSE_SUPPORT=${lispsource}mouse.elc ${lispsource}select.elc \
243 ${lispsource}scroll-bar.elc
244 ## Used if HAVE_GPM && !HAVE_MOUSE
245 GPM_MOUSE_SUPPORT=${lispsource}mouse.elc
246 LIBGPM = @LIBGPM@
247 ## Either of the two preceding options, or empty.
248 MOUSE_SUPPORT=@MOUSE_SUPPORT@
249
250 ## ${lispsource}tooltip.elc if HAVE_WINDOW_SYSTEM, else empty.
251 TOOLTIP_SUPPORT=@TOOLTIP_SUPPORT@
252
253 BASE_WINDOW_SUPPORT=${lispsource}fringe.elc ${lispsource}image.elc \
254 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
255 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc
256
257 X_WINDOW_SUPPORT=${lispsource}x-dnd.elc ${lispsource}term/common-win.elc \
258 ${lispsource}term/x-win.elc ${lispsource}dynamic-setting.elc
259
260 ## If HAVE_X_WINDOWS, both the above
261 ## else if HAVE_WINDOW_SYSTEM (ie, HAVE_NS) just the former; else empty.
262 WINDOW_SUPPORT=@WINDOW_SUPPORT@
263
264 ## -lresolv, or empty.
265 LIBRESOLV = @LIBRESOLV@
266
267 LIBSELINUX_LIBS = @LIBSELINUX_LIBS@
268
269 INTERVALS_H = dispextern.h intervals.h composite.h
270
271 GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
272
273 RUN_TEMACS = `/bin/pwd`/temacs
274
275 START_FILES = @START_FILES@
276
277 UNEXEC_OBJ = @unexec@
278
279 # ========================== start of cpp stuff =======================
280 /* From here on, comments must be done in C syntax. */
281
282 #define NOT_C_CODE
283 #include "config.h"
284
285 #ifdef AUTO_DEPEND
286 DEPFLAGS = -MMD -MF deps/$*.d
287 #endif
288
289 /* If NS_IMPL_GNUSTEP, some definitions and includes are expanded here. */
290 @NS_IMPL_GNUSTEP_INC@
291
292 /* FIXME move to LD_SWITCH_SYSTEM_TEMACS?
293 This uses ${CONFIG_SYSTEM_LIBS}, presumably set by the above include. */
294 NS_IMPL_GNUSTEP_TEMACS_LDFLAGS=@NS_IMPL_GNUSTEP_TEMACS_LDFLAGS@
295
296 /* DO NOT use -R. There is a special hack described in lastfile.c
297 which is used instead. Some initialized data areas are modified
298 at initial startup, then labeled as part of the text area when
299 Emacs is dumped for the first time, and never changed again. */
300
301 /* -Demacs is needed to make some files produce the correct version
302 for use in Emacs.
303
304 -DHAVE_CONFIG_H is needed for some other files to take advantage of
305 the information in ``config.h''. */
306
307 /* C_SWITCH_X_SITE must come before C_SWITCH_X_SYSTEM
308 since it may have -I options that should override those. */
309 /* MYCPPFLAGS only referenced in etc/DEBUG. */
310 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}
311 ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS)
312
313 .SUFFIXES: .m
314 .c.o:
315 #ifdef AUTO_DEPEND
316 @-test -d deps || mkdir deps
317 #endif
318 $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
319 .m.o:
320 #ifdef AUTO_DEPEND
321 @-test -d deps || mkdir deps
322 #endif
323 $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $<
324
325
326 /* A macro which other sections of Makefile can redefine to munge the
327 flags before they are passed to LD. This is helpful if you have
328 redefined LD to something odd, like "gcc".
329 (The YMF prefix is a holdover from the old name "ymakefile".) */
330 #define YMF_PASS_LDFLAGS(flags) flags
331
332
333 #ifdef ORDINARY_LINK
334 LD = $(CC)
335
336 #else /* not ORDINARY_LINK */
337 GNULIB_VAR = $(LIB_GCC)
338
339 /* Fix linking if compiled with GCC. */
340 #if defined (__GNUC__) && ! defined (LINKER)
341 /* Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
342 places that are difficult to figure out at make time. Fortunately,
343 these same versions allow you to pass arbitrary flags on to the
344 linker, so there is no reason not to use it as a linker.
345
346 Well, it is not quite perfect. The "-nostdlib" keeps GCC from
347 searching for libraries in its internal directories, so we have to
348 ask GCC explicitly where to find libgcc.a. */
349 #define LINKER $(CC) -nostdlib
350 /* GCC passes any argument prefixed with -Xlinker directly to the linker.
351 See prefix-args.c for an explanation of why we do not do this with the
352 shell''s ``for'' construct. Note that sane people do not have '.' in
353 their paths, so we must use ./prefix-args. */
354 #undef YMF_PASS_LDFLAGS
355 #define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
356 #endif /* defined (__GNUC__) && ! defined (LINKER) */
357
358 #ifdef LINKER
359 LD=LINKER
360 #else /* not LINKER */
361 LD=ld
362 #endif /* not LINKER */
363
364 #endif /* not ORDINARY_LINK */
365
366
367 #ifdef NS_IMPL_GNUSTEP
368 LD=$(CC) -rdynamic
369 #endif
370
371
372 /* lastfile must follow all files whose initialized data areas should
373 be dumped as pure by dump-emacs. */
374 obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \
375 charset.o coding.o category.o ccl.o character.o chartab.o bidi.o \
376 cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \
377 emacs.o keyboard.o macros.o keymap.o sysdep.o \
378 buffer.o filelock.o insdel.o marker.o \
379 minibuf.o fileio.o dired.o filemode.o \
380 cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
381 alloc.o data.o doc.o editfns.o callint.o \
382 eval.o floatfns.o fns.o font.o print.o lread.o \
383 syntax.o $(UNEXEC_OBJ) bytecode.o \
384 process.o callproc.o \
385 region-cache.o sound.o atimer.o \
386 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
387 $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ)
388
389 /* Object files used on some machine or other.
390 These go in the DOC file on all machines in case they are needed. */
391 SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
392 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
393 fontset.o dbusbind.o \
394 nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
395 w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
396 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_OBJ)
397
398 gmallocobj =
399 rallocobj =
400 vmlimitobj =
401 #ifndef SYSTEM_MALLOC
402 #ifndef DOUG_LEA_MALLOC
403 gmallocobj = gmalloc.o
404 #endif
405
406 #ifdef REL_ALLOC
407 rallocobj = ralloc.o
408 #endif
409
410 vmlimitobj = vm-limit.o
411 #endif /* !SYSTEM_MALLOC */
412
413 /* Empty on Cygwin, lastfile.o elsewhere. */
414 PRE_ALLOC_OBJ=@PRE_ALLOC_OBJ@
415 /* lastfile.o vm-limit.o on Cygwin, $vmlimitobj 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) $(gmallocobj) $(rallocobj) \
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 /* HAVE_X11 implies HAVE_X_WINDOWS and HAVE_MENUS. */
710 #if defined (HAVE_X11) && ! defined (USE_GTK)
711 /* We use stamp-xmenu with these two deps to both ensure that lwlib
712 gets remade based on its dependencies in its own makefile,
713 and remake temacs if lwlib gets changed by this. */
714 stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU)
715 touch stamp-oldxmenu
716 /* Supply an ordering for parallel make. */
717 ../src/$(OLDXMENU): ${OLDXMENU}
718
719 $(OLDXMENU): $(OLDXMENU_TARGET)
720
721 #else /* !HAVE_X11 || USE_GTK */
722 /* We don''t really need this, but satisfy the dependency. */
723 stamp-oldxmenu:
724 touch stamp-oldxmenu
725 #endif /* HAVE_X11 && !USE_GTK */
726
727 ../config.status:: epaths.in
728 @echo "The file epaths.h needs to be set up from epaths.in."
729 @echo "Please run the `configure' script again."
730 exit 1
731
732 ../config.status:: config.in
733 @echo "The file config.h needs to be set up from config.in."
734 @echo "Please run the `configure' script again."
735 exit 1
736
737 ecrt0.o: ecrt0.c $(config_h)
738 #ifdef AUTO_DEPEND
739 @-test -d deps || mkdir deps
740 #endif
741 $(CC) -c $(ALL_CFLAGS) ${srcdir}/ecrt0.c
742 doc.o: buildobj.h
743
744 #ifndef AUTO_DEPEND
745
746 /* FIXME some of these dependencies are platform-specific.
747 Eg callproc.c only depends on w32.h for WINDOWSNT builds.
748 One way to fix this would be to replace w32.h (etc) by $(W32_H),
749 a variable set by configure. Does not seem worth the trouble.
750 Since the w32 build does not even use this file, you might ask
751 why these dependencies are here at all...
752
753 nsgui.h: In fact, every .o file depends directly or indirectly on
754 dispextern.h and hence nsgui.h under NS. But the ones that actually
755 use stuff there are more limited. */
756 atimer.o: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \
757 $(config_h)
758 bidi.o: bidi.c buffer.h character.h dispextern.h lisp.h $(config_h)
759 buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \
760 $(INTERVALS_H) blockinput.h atimer.h systime.h character.h \
761 indent.h keyboard.h coding.h keymap.h frame.h lisp.h $(config_h)
762 callint.o: callint.c window.h commands.h buffer.h keymap.h \
763 keyboard.h dispextern.h systime.h coding.h composite.h lisp.h $(config_h)
764 callproc.o: callproc.c epaths.h buffer.h commands.h lisp.h $(config_h) \
765 process.h systty.h syssignal.h character.h coding.h ccl.h msdos.h \
766 composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h \
767 buffer.h
768 casefiddle.o: casefiddle.c syntax.h commands.h buffer.h character.h \
769 composite.h keymap.h lisp.h $(config_h)
770 casetab.o: casetab.c buffer.h character.h lisp.h $(config_h)
771 category.o: category.c category.h buffer.h charset.h keymap.h \
772 character.h lisp.h $(config_h)
773 ccl.o: ccl.c ccl.h charset.h character.h coding.h composite.h lisp.h $(config_h)
774 character.o: character.c character.h buffer.h charset.h composite.h disptab.h \
775 lisp.h $(config_h)
776 charset.o: charset.c charset.h character.h buffer.h coding.h composite.h \
777 disptab.h lisp.h $(config_h)
778 chartab.o: charset.h character.h ccl.h lisp.h $(config_h)
779 coding.o: coding.c coding.h ccl.h buffer.h character.h charset.h composite.h \
780 window.h dispextern.h frame.h termhooks.h lisp.h $(config_h)
781 cm.o: cm.c frame.h cm.h termhooks.h termchar.h dispextern.h lisp.h $(config_h)
782 cmds.o: cmds.c syntax.h buffer.h character.h commands.h window.h lisp.h $(config_h) \
783 msdos.h dispextern.h keyboard.h keymap.h systime.h coding.h frame.h \
784 composite.h
785 pre-crt0.o: pre-crt0.c
786 dbusbind.o: dbusbind.c termhooks.h frame.h keyboard.h lisp.h $(config_h)
787 dired.o: dired.c commands.h buffer.h lisp.h $(config_h) character.h charset.h \
788 coding.h regex.h systime.h blockinput.h atimer.h composite.h
789 dispnew.o: dispnew.c systime.h commands.h process.h frame.h coding.h \
790 window.h buffer.h termchar.h termopts.h termhooks.h cm.h \
791 disptab.h indent.h $(INTERVALS_H) nsgui.h \
792 xterm.h blockinput.h atimer.h character.h msdos.h keyboard.h \
793 syssignal.h lisp.h $(config_h)
794 doc.o: doc.c lisp.h $(config_h) epaths.h buffer.h keyboard.h keymap.h \
795 character.h systime.h coding.h composite.h
796 doprnt.o: doprnt.c character.h lisp.h $(config_h)
797 dosfns.o: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
798 msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \
799 lisp.h $(config_h)
800 editfns.o: editfns.c window.h buffer.h systime.h $(INTERVALS_H) character.h \
801 coding.h frame.h blockinput.h atimer.h lisp.h $(config_h)
802 emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
803 termhooks.h buffer.h atimer.h systime.h $(INTERVALS_H) lisp.h $(config_h) \
804 window.h dispextern.h keyboard.h keymap.h frame.h coding.h
805 fileio.o: fileio.c window.h buffer.h systime.h $(INTERVALS_H) character.h \
806 coding.h msdos.h blockinput.h atimer.h lisp.h $(config_h) frame.h commands.h
807 filelock.o: filelock.c buffer.h character.h coding.h systime.h composite.h \
808 lisp.h $(config_h)
809 filemode.o: filemode.c $(config_h)
810 frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
811 blockinput.h atimer.h systime.h buffer.h character.h fontset.h font.h \
812 msdos.h dosfns.h dispextern.h w32term.h nsgui.h termchar.h coding.h \
813 composite.h lisp.h $(config_h) termhooks.h ccl.h
814 fringe.o: fringe.c dispextern.h nsgui.h frame.h window.h buffer.h termhooks.h \
815 blockinput.h atimer.h systime.h lisp.h $(config_h)
816 font.o: font.c dispextern.h frame.h window.h ccl.h character.h charset.h \
817 font.h lisp.h $(config_h) buffer.h composite.h fontset.h xterm.h nsgui.h
818 ftfont.o: dispextern.h frame.h character.h charset.h composite.h font.h \
819 lisp.h $(config_h) blockinput.h atimer.h systime.h coding.h fontset.h \
820 ccl.h ftfont.h
821 fontset.o: fontset.c fontset.h ccl.h buffer.h character.h \
822 charset.h frame.h keyboard.h termhooks.h font.h lisp.h $(config_h) \
823 blockinput.h atimer.h systime.h coding.h $(INTERVALS_H) nsgui.h \
824 window.h xterm.h
825 getloadavg.o: getloadavg.c $(config_h)
826 gtkutil.o: gtkutil.c gtkutil.h xterm.h lisp.h frame.h lisp.h $(config_h) \
827 blockinput.h window.h atimer.h systime.h termhooks.h keyboard.h \
828 charset.h coding.h syssignal.h dispextern.h composite.h
829 image.o: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
830 systime.h xterm.h w32term.h w32gui.h font.h epaths.h character.h coding.h \
831 nsterm.h nsgui.h lisp.h $(config_h) composite.h termhooks.h ccl.h
832 indent.o: indent.c frame.h window.h indent.h buffer.h lisp.h $(config_h) termchar.h \
833 termopts.h disptab.h region-cache.h character.h category.h \
834 keyboard.h systime.h coding.h $(INTERVALS_H)
835 insdel.o: insdel.c window.h buffer.h $(INTERVALS_H) blockinput.h character.h \
836 dispextern.h atimer.h systime.h region-cache.h lisp.h $(config_h)
837 keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h character.h \
838 commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
839 systime.h syntax.h $(INTERVALS_H) blockinput.h atimer.h composite.h \
840 xterm.h puresize.h msdos.h keymap.h w32term.h nsterm.h nsgui.h coding.h \
841 lisp.h $(config_h)
842 keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
843 atimer.h systime.h puresize.h character.h charset.h $(INTERVALS_H) keymap.h window.h \
844 coding.h frame.h lisp.h $(config_h)
845 lastfile.o: lastfile.c $(config_h)
846 macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h \
847 dispextern.h lisp.h $(config_h) systime.h coding.h composite.h
848 gmalloc.o: gmalloc.c $(config_h)
849 ralloc.o: ralloc.c lisp.h $(config_h)
850 vm-limit.o: vm-limit.c mem-limits.h lisp.h $(config_h)
851 marker.o: marker.c buffer.h character.h lisp.h $(config_h)
852 md5.o: md5.c md5.h $(config_h)
853 minibuf.o: minibuf.c syntax.h frame.h window.h keyboard.h systime.h \
854 buffer.h commands.h character.h msdos.h $(INTERVALS_H) keymap.h \
855 termhooks.h lisp.h $(config_h) coding.h
856 mktime.o: mktime.c $(config_h)
857 msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
858 termopts.h termchar.h character.h coding.h ccl.h disptab.h window.h \
859 keyboard.h $(INTERVALS_H) buffer.h commands.h blockinput.h atimer.h lisp.h $(config_h)
860 nsfns.o: nsfns.m charset.h nsterm.h nsgui.h frame.h window.h buffer.h \
861 dispextern.h fontset.h $(INTERVALS_H) keyboard.h blockinput.h \
862 atimer.h systime.h epaths.h termhooks.h coding.h systime.h lisp.h $(config_h)
863 nsfont.o: nsterm.h dispextern.h frame.h lisp.h lisp.h $(config_h)
864 nsimage.o: nsimage.m nsterm.h lisp.h $(config_h)
865 nsmenu.o: nsmenu.m termhooks.h frame.h window.h dispextern.h \
866 nsgui.h keyboard.h blockinput.h atimer.h systime.h buffer.h \
867 nsterm.h lisp.h $(config_h)
868 nsterm.o: nsterm.m blockinput.h atimer.h systime.h syssignal.h nsterm.h \
869 nsgui.h frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h \
870 termopts.h termchar.h disptab.h buffer.h window.h keyboard.h \
871 $(INTERVALS_H) process.h coding.h lisp.h $(config_h)
872 nsselect.o: nsselect.m blockinput.h nsterm.h nsgui.h frame.h lisp.h $(config_h)
873 process.o: process.c process.h buffer.h window.h termhooks.h termopts.h \
874 commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
875 blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
876 keyboard.h lisp.h $(config_h) character.h xgselect.h sysselect.h
877 regex.o: regex.c syntax.h buffer.h lisp.h $(config_h) regex.h category.h character.h
878 region-cache.o: region-cache.c buffer.h region-cache.h lisp.h $(config_h)
879 scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
880 termhooks.h lisp.h $(config_h) systime.h coding.h composite.h window.h
881 search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
882 blockinput.h atimer.h systime.h category.h character.h charset.h \
883 $(INTERVALS_H) \
884 lisp.h $(config_h)
885 sound.o: sound.c dispextern.h syssignal.h lisp.h $(config_h) atimer.h systime.h
886 strftime.o: strftime.c $(config_h)
887 syntax.o: syntax.c syntax.h buffer.h commands.h category.h character.h \
888 keymap.h regex.h $(INTERVALS_H) lisp.h $(config_h)
889 sysdep.o: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
890 process.h dispextern.h termhooks.h termchar.h termopts.h coding.h \
891 frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h lisp.h $(config_h) \
892 composite.h
893 term.o: term.c termchar.h termhooks.h termopts.h lisp.h $(config_h) cm.h frame.h \
894 disptab.h keyboard.h character.h charset.h coding.h ccl.h xterm.h \
895 msdos.h window.h keymap.h blockinput.h atimer.h systime.h systty.h \
896 syssignal.h $(INTERVALS_H) buffer.h
897 termcap.o: termcap.c lisp.h $(config_h)
898 terminal.o: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
899 keyboard.h lisp.h $(config_h) dispextern.h composite.h systime.h
900 terminfo.o: terminfo.c lisp.h $(config_h)
901 tparam.o: tparam.c lisp.h $(config_h)
902 undo.o: undo.c buffer.h commands.h window.h dispextern.h lisp.h $(config_h)
903 unexaix.o: unexaix.c lisp.h $(config_h)
904 unexalpha.o: unexalpha.c $(config_h)
905 unexcw.o: unexcw.c lisp.h $(config_h)
906 unexec.o: unexec.c lisp.h $(config_h)
907 unexelf.o: unexelf.c $(config_h)
908 unexhp9k800.o: unexhp9k800.c $(config_h)
909 unexmacosx.o: unexmacosx.c $(config_h)
910 unexsol.o: unexsol.c lisp.h $(config_h)
911 unexw32.o: unexw32.c $(config_h)
912 w16select.o: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
913 msdos.h buffer.h charset.h coding.h composite.h lisp.h $(config_h)
914 widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h \
915 $(srcdir)/../lwlib/lwlib.h lisp.h $(config_h)
916 window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
917 disptab.h keyboard.h msdos.h coding.h termhooks.h \
918 keymap.h blockinput.h atimer.h systime.h $(INTERVALS_H) \
919 xterm.h w32term.h nsterm.h nsgui.h lisp.h $(config_h)
920 xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h \
921 coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h \
922 charset.h lisp.h $(config_h) keyboard.h $(INTERVALS_H) region-cache.h \
923 xterm.h w32term.h nsterm.h nsgui.h msdos.h composite.h fontset.h ccl.h \
924 blockinput.h atimer.h systime.h keymap.h font.h
925 xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
926 window.h character.h charset.h msdos.h dosfns.h composite.h atimer.h \
927 systime.h keyboard.h fontset.h w32term.h nsterm.h coding.h ccl.h \
928 $(INTERVALS_H) nsgui.h termchar.h termhooks.h font.h lisp.h $(config_h)
929 xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
930 $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h \
931 character.h charset.h coding.h gtkutil.h lisp.h $(config_h) termhooks.h \
932 fontset.h termchar.h font.h xsettings.h $(INTERVALS_H) ccl.h
933 xfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
934 font.h lisp.h $(config_h) atimer.h systime.h fontset.h ccl.h
935 xftfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
936 font.h lisp.h $(config_h) atimer.h systime.h fontset.h ccl.h ftfont.h
937 ftxfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
938 font.h lisp.h $(config_h) atimer.h systime.h fontset.h ccl.h
939 menu.o: menu.c lisp.h keyboard.h keymap.h frame.h termhooks.h blockinput.h \
940 dispextern.h $(srcdir)/../lwlib/lwlib.h xterm.h gtkutil.h menu.h \
941 lisp.h $(config_h) systime.h coding.h composite.h window.h atimer.h nsgui.h
942 xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
943 charset.h keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h \
944 systime.h gtkutil.h msdos.h coding.h menu.h lisp.h $(config_h) composite.h \
945 keymap.h sysselect.h
946 xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
947 dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
948 keyboard.h emacs-icon.h character.h charset.h ccl.h fontset.h composite.h \
949 coding.h process.h gtkutil.h font.h fontset.h lisp.h $(config_h) \
950 xsettings.h intervals.h keymap.h xgselect.h sysselect.h
951 xselect.o: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
952 buffer.h atimer.h systime.h termhooks.h lisp.h $(config_h) keyboard.h \
953 coding.h composite.h
954 xgselect.o: xgselect.h systime.h sysselect.h lisp.h $(config_h)
955 xrdb.o: xrdb.c lisp.h $(config_h) epaths.h
956 xsmfns.o: xsmfns.c lisp.h $(config_h) systime.h sysselect.h termhooks.h xterm.h \
957 lisp.h termopts.h frame.h dispextern.h
958 xsettings.o: xterm.h xsettings.h lisp.h frame.h termhooks.h $(config_h) \
959 dispextern.h keyboard.h systime.h coding.h composite.h blockinput.h atimer.h \
960 termopts.h
961
962 /* The files of Lisp proper. */
963 alloc.o: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h \
964 keyboard.h blockinput.h atimer.h systime.h character.h lisp.h $(config_h) \
965 $(INTERVALS_H) termhooks.h
966 bytecode.o: bytecode.c buffer.h syntax.h character.h window.h dispextern.h \
967 frame.h xterm.h lisp.h $(config_h)
968 data.o: data.c buffer.h puresize.h character.h syssignal.h keyboard.h frame.h \
969 termhooks.h systime.h coding.h composite.h dispextern.h font.h ccl.h \
970 lisp.h $(config_h)
971 eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
972 dispextern.h lisp.h $(config_h) coding.h composite.h xterm.h
973 floatfns.o: floatfns.c syssignal.h lisp.h $(config_h)
974 fns.o: fns.c commands.h lisp.h $(config_h) frame.h buffer.h character.h keyboard.h \
975 keymap.h window.h dispextern.h $(INTERVALS_H) coding.h md5.h \
976 blockinput.h atimer.h systime.h xterm.h
977 print.o: print.c process.h frame.h window.h buffer.h keyboard.h character.h \
978 lisp.h $(config_h) termchar.h $(INTERVALS_H) msdos.h termhooks.h \
979 blockinput.h atimer.h systime.h font.h charset.h coding.h ccl.h
980 lread.o: lread.c commands.h keyboard.h buffer.h epaths.h character.h \
981 charset.h lisp.h $(config_h) $(INTERVALS_H) termhooks.h coding.h msdos.h \
982 systime.h frame.h blockinput.h atimer.h
983
984 /* Text properties support. */
985 composite.o: composite.c buffer.h character.h coding.h font.h ccl.h \
986 frame.h termhooks.h $(INTERVALS_H) window.h lisp.h $(config_h)
987 intervals.o: intervals.c buffer.h $(INTERVALS_H) keyboard.h puresize.h \
988 keymap.h lisp.h $(config_h) systime.h coding.h
989 textprop.o: textprop.c buffer.h window.h $(INTERVALS_H) \
990 lisp.h $(config_h)
991
992 #endif /* ! AUTO_DEPEND */
993
994 /* System-specific programs to be made.
995 OTHER_FILES select which of these should be compiled. */
996
997 #ifdef HAVE_NS
998 ${ns_appdir}: ${ns_appsrc}
999 rm -fr ${ns_appdir}
1000 mkdir -p ${ns_appdir}
1001 ( cd ${ns_appsrc} ; tar cfh - . ) | ( cd ${ns_appdir} ; umask 022; tar xf - )
1002
1003 ${ns_appbindir}Emacs: emacs${EXEEXT}
1004 mkdir -p ${ns_appbindir}
1005 cp -f emacs${EXEEXT} ${ns_appbindir}Emacs
1006
1007 ns-app: ${ns_appdir} ${ns_appbindir}Emacs
1008 #endif /* HAVE_NS */
1009
1010 mostlyclean:
1011 rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a
1012 rm -f ../etc/DOC
1013 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
1014 rm -f buildobj.h
1015 clean: mostlyclean
1016 rm -f emacs-*.*.*${EXEEXT} emacs${EXEEXT}
1017 -rm -rf deps
1018 #ifdef HAVE_NS
1019 rm -fr ${ns_appdir}
1020 #endif
1021 /* bootstrap-clean is used to clean up just before a bootstrap.
1022 It should remove all files generated during a compilation/bootstrap,
1023 but not things like config.status or TAGS. */
1024 bootstrap-clean: clean
1025 rm -f epaths.h config.h Makefile.c config.stamp stamp-oldxmenu ../etc/DOC-*
1026 if test -f ./.gdbinit; then \
1027 mv ./.gdbinit ./.gdbinit.save; \
1028 if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
1029 else mv ./.gdbinit.save ./.gdbinit; fi; \
1030 fi
1031 /**/# This is used in making a distribution.
1032 /**/# Do not use it on development directories!
1033 distclean: bootstrap-clean
1034 rm -f Makefile
1035 maintainer-clean: distclean
1036 @echo "This command is intended for maintainers to use;"
1037 @echo "it deletes files that may require special tools to rebuild."
1038 rm -f TAGS
1039 versionclean:
1040 -rm -f emacs${EXEEXT} emacs-*.*.*${EXEEXT} ../etc/DOC*
1041 extraclean: distclean
1042 -rm -f *~ \#* m/?*~ s/?*~
1043
1044 /* Arrange to make a tags table TAGS-LISP for ../lisp,
1045 plus TAGS for the C files, which includes ../lisp/TAGS by reference. */
1046
1047 ctagsfiles1 = [xyzXYZ]*.[hcm]
1048 ctagsfiles2 = [a-wA-W]*.[hcm]
1049
1050 TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1051 ../lib-src/etags --include=TAGS-LISP --include=${lwlibdir}/TAGS \
1052 --regex='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \
1053 $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1054 frc:
1055 TAGS-LISP: frc
1056 $(MAKE) -f ${lispdir}Makefile TAGS-LISP ETAGS=../lib-src/etags
1057
1058 $(lwlibdir)TAGS:
1059 (cd $(lwlibdir); $(MAKE) -f $(lwlibdir)Makefile tags ETAGS=../lib-src/etags)
1060
1061 tags: TAGS TAGS-LISP $(lwlibdir)TAGS
1062 .PHONY: tags
1063
1064
1065 /* Bootstrapping. */
1066 /* Bootstrapping right is difficult because of the circular dependencies.
1067 Furthermore, we have to deal with the fact that many compilation targets
1068 such as loaddefs.el or *.elc can typically be produced by any old
1069 Emacs executable, so we would like to avoid rebuilding them whenever
1070 we build a new Emacs executable.
1071 To solve the circularity, we use 2 different Emacs executables,
1072 "emacs" is the main target and "bootstrap-emacs" is the one used
1073 to build the *.elc and loaddefs.el files.
1074 To solve the freshness issue, we used to use a third file "witness-emacs"
1075 which was used to witness the fact that there is a bootstrap-emacs
1076 executable, and then have dependencies on witness-emacs rather than
1077 bootstrap-emacs, but that lead to problems in parallel builds (because
1078 witness-emacs needed to be free from dependencies (to avoid rebuilding
1079 it), so it was compiled in parallel, leading typically to having 2
1080 processes dumping bootstrap-emacs at the same time).
1081 So instead, we replace the witness-emacs dependencies by conditional
1082 bootstrap-dependencies (via ${BOOTSTRAPEMACS}). Of course, since we do
1083 not want to rely on GNU Make features, we have to rely on an external
1084 script to do the conditional part of the dependency
1085 (i.e. see the ${SUBDIR} rule ../Makefile.in). */
1086
1087 .SUFFIXES: .elc .el
1088
1089 /* These suffix rules do not allow additional dependencies, sadly, so
1090 instead of adding a $(BOOTSTRAPEMACS) dependency here, we add it
1091 separately below.
1092 With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)" */
1093 .el.elc:
1094 @cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \
1095 THEFILE=$< EMACS=${bootstrap_exe}
1096
1097 /* Since the .el.elc rule cannot specify an extra dependency, we do it here. */
1098 ${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS)
1099
1100 ${lispsource}loaddefs.el: $(BOOTSTRAPEMACS)
1101 cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=${bootstrap_exe}
1102
1103 /* Dump an Emacs executable named bootstrap-emacs containing the
1104 files from loadup.el in source form. */
1105
1106 bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
1107 cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs
1108 #ifdef CANNOT_DUMP
1109 ln -f temacs${EXEEXT} bootstrap-emacs${EXEEXT}
1110 #else
1111 $(RUN_TEMACS) --batch --load loadup bootstrap
1112 mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
1113 #endif /* ! defined (CANNOT_DUMP) */
1114 @: Compile some files earlier to speed up further compilation.
1115 cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=${bootstrap_exe}
1116
1117 #ifdef AUTO_DEPEND
1118 ALLOBJS=$(START_FILES) ${obj} ${otherobj} prefix-args.o
1119 -include $(ALLOBJS:%.o=deps/%.d)
1120 #endif