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