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