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