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