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