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