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