*** empty log message ***
[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,
4e6835db 3# 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
a0528984
EZ
4
5# This file is part of GNU Emacs.
6
7# GNU Emacs is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
684d6f5b 9# the Free Software Foundation; either version 3, or (at your option)
a0528984
EZ
10# any later version.
11
12# GNU Emacs is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16
17# You should have received a copy of the GNU General Public License
18# along with GNU Emacs; see the file COPYING. If not, write to
4fc5845f
LK
19# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20# Boston, MA 02110-1301, USA.
a0528984
EZ
21
22
23# Note that this file is edited by msdos/sed1v2.inp for MSDOS. That
24# script may need modifying in sync with changes made here. Try to
25# avoid shell-ism because the DOS build has to use the DOS shell.
26
5f351ff1 27# Don't try to replace the cpp processing using autoconf facilities,
a0528984
EZ
28# says rms.
29
30# Here are the things that we expect ../configure to edit.
31# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
32srcdir=@srcdir@
33VPATH=@srcdir@
34CC=@CC@
35CPP=@CPP@
36CFLAGS=@CFLAGS@
37CPPFLAGS=@CPPFLAGS@
38LDFLAGS=@LDFLAGS@
39LN_S=@LN_S@
108c7c97 40EXEEXT=@EXEEXT@
4a3363c5 41version=@version@
a0528984
EZ
42# Substitute an assignment for the MAKE variable, because
43# BSD doesn't have it as a default.
44@SET_MAKE@
45# Don't use LIBS. configure puts stuff in it that either shouldn't be
46# linked with Emacs or is duplicated by the cpp stuff below.
47# LIBS = @LIBS@
48LIBOBJS = @LIBOBJS@
49
50# On Xenix and the IBM RS6000, double-dot gets screwed up.
51dot = .
52dotdot = ${dot}${dot}
53lispsource = ${srcdir}/$(dot)$(dot)/lisp/
54libsrc = $(dot)$(dot)/lib-src/
55etc = $(dot)$(dot)/etc/
56oldXMenudir = $(dot)$(dot)/oldXMenu/
57lwlibdir = $(dot)$(dot)/lwlib/
99b7e543 58lispdir = $(dot)$(dot)/lisp/
a0528984
EZ
59
60# Configuration files for .o files to depend on.
61M_FILE = ${srcdir}/@machfile@
62S_FILE = ${srcdir}/@opsysfile@
63config_h = config.h $(M_FILE) $(S_FILE)
64
65# ========================== start of cpp stuff =======================
66/* From here on, comments must be done in C syntax. */
67
68C_SWITCH_SYSTEM=
69
70/* just to be sure the sh is used */
71SHELL=/bin/sh
72
73#define THIS_IS_MAKEFILE
74#define NO_SHORTNAMES
75#define NOT_C_CODE
76#include "config.h"
77
be9b5a60 78/* Do not let the file name mktime.c get messed up. */
a0528984
EZ
79#ifdef mktime
80#undef mktime
81#endif
82
83/* Use HAVE_X11 as an alias for X11 in this file
84 to avoid problems with X11 as a subdirectory name
85 in -I and other such options which pass through this file. */
86
87#ifdef X11
88#define HAVE_X11
89#undef X11
90#endif
91
92/* On some machines #define register is done in config;
be9b5a60 93 do not let it interfere with this file. */
a0528984
EZ
94#undef register
95
96/* On some systems we may not be able to use the system make command. */
97#ifdef MAKE_COMMAND
98MAKE = MAKE_COMMAND
99#endif
100
101#ifdef C_COMPILER
102CC = C_COMPILER
103#endif
104
105/* GNU libc requires ORDINARY_LINK so that its own crt0 is used.
09fcea18 106 GNU/Linux is an exception because it uses a funny variant of GNU libc. */
a0528984 107#ifdef __GNU_LIBRARY__
8a2a6032 108#ifndef GNU_LINUX
a0528984
EZ
109#define ORDINARY_LINK
110#endif
111#endif
112
be9b5a60 113/* Some machines do not find the standard C libraries in the usual place. */
a0528984
EZ
114#ifndef ORDINARY_LINK
115#ifndef LIB_STANDARD
116#define LIB_STANDARD -lc
117#endif
118#else
119#ifndef LIB_STANDARD
120#define LIB_STANDARD
121#endif
122#endif
123
124/* Unless inhibited or changed, use -lg to link for debugging. */
125#ifndef LIBS_DEBUG
126#define LIBS_DEBUG -lg
127#endif
128
129/* Some s/SYSTEM.h files define this to request special libraries. */
130#ifndef LIBS_SYSTEM
131#define LIBS_SYSTEM
132#endif
133
134/* Some m/MACHINE.h files define this to request special libraries. */
135#ifndef LIBS_MACHINE
136#define LIBS_MACHINE
137#endif
138
139#ifndef LIB_MATH
140# define LIB_MATH -lm
141#endif /* LIB_MATH */
142
143/* Some s/SYSTEM.h files define this to request special switches in ld. */
144#ifndef LD_SWITCH_SYSTEM
145#if !defined (__GNUC__) && (defined(COFF_ENCAPSULATE) || (defined (BSD_SYSTEM) && !defined (COFF)))
146#define LD_SWITCH_SYSTEM -X
147#else /* ! defined(COFF_ENCAPSULATE) || (defined (BSD_SYSTEM) && !defined (COFF)) */
148#define LD_SWITCH_SYSTEM
149#endif /* ! defined(COFF_ENCAPSULATE) || (defined (BSD_SYSTEM) && !defined (COFF)) */
150#endif /* LD_SWITCH_SYSTEM */
151
152/* This holds special options for linking temacs
153 that should be used for linking anything else. */
154#ifndef LD_SWITCH_SYSTEM_TEMACS
155#define LD_SWITCH_SYSTEM_TEMACS
156#endif
157
e0f712ba
AC
158/* Some s/SYSTEM.h files define this to request special switches
159 for compiling temacs. */
160#ifndef C_SWITCH_SYSTEM_TEMACS
161#define C_SWITCH_SYSTEM_TEMACS
162#endif
163
a0528984
EZ
164/* Some m/MACHINE.h files define this to request special switches in ld. */
165#ifndef LD_SWITCH_MACHINE
166#define LD_SWITCH_MACHINE
167#endif
168
169/* This holds special options for linking temacs
170 that should be used for linking anything else. */
171#ifndef LD_SWITCH_MACHINE_TEMACS
172#define LD_SWITCH_MACHINE_TEMACS
173#endif
174
175/* Some m/MACHINE.h files define this to request special switches in cc. */
176#ifndef C_SWITCH_MACHINE
177#define C_SWITCH_MACHINE
178#endif
179
180/* Some s/SYSTEM.h files define this to request special switches in cc. */
181#ifndef C_SWITCH_SYSTEM
182#define C_SWITCH_SYSTEM
183#endif
184
185/* These macros are for switches specifically related to X Windows. */
186#ifndef C_SWITCH_X_MACHINE
187#define C_SWITCH_X_MACHINE
188#endif
189
190#ifndef C_SWITCH_X_SYSTEM
191#define C_SWITCH_X_SYSTEM
192#endif
193
194#ifndef C_SWITCH_X_SITE
195#define C_SWITCH_X_SITE
196#endif
197
198#ifndef LD_SWITCH_X_SITE
199#define LD_SWITCH_X_SITE
200#endif
201
202#ifndef LD_SWITCH_X_DEFAULT
203#define LD_SWITCH_X_DEFAULT
204#endif
205
206/* These can be passed in from config.h to define special load and
207 compile switches needed by individual sites */
208#ifndef LD_SWITCH_SITE
209#define LD_SWITCH_SITE
210#endif
211
212#ifndef C_SWITCH_SITE
213#define C_SWITCH_SITE
214#endif
215
216#ifndef ORDINARY_LINK
217
218#ifndef CRT0_COMPILE
219#define CRT0_COMPILE $(CC) -c $(ALL_CFLAGS) C_SWITCH_ASM
220#endif
221
222#ifndef START_FILES
223#ifdef NO_REMAP
224#ifdef COFF_ENCAPSULATE
225#define START_FILES pre-crt0.o /usr/local/lib/gcc-crt0.o
226#else /* ! defined (COFF_ENCAPSULATE) */
227#define START_FILES pre-crt0.o /lib/crt0.o
228#endif /* ! defined (COFF_ENCAPSULATE) */
229#else /* ! defined (NO_REMAP) */
230#define START_FILES ecrt0.o
231#endif /* ! defined (NO_REMAP) */
232#endif /* START_FILES */
233STARTFILES = START_FILES
234
235#else /* ORDINARY_LINK */
236
237/* config.h might want to force START_FILES anyway */
238#ifdef START_FILES
239STARTFILES = START_FILES
240#endif /* START_FILES */
241
242#endif /* not ORDINARY_LINK */
243
244
5aa17bb2 245/* cc switches needed to make ``asm'' keyword work.
a0528984
EZ
246 Nothing special needed on most machines. */
247#ifndef C_SWITCH_ASM
248#define C_SWITCH_ASM
249#endif
250
488dd4c4
JD
251#if HAVE_GTK
252#define USE_GTK
253TOOLKIT_DEFINES = -DUSE_GTK
254#endif
255
a0528984
EZ
256#ifdef USE_X_TOOLKIT
257#define USE_@X_TOOLKIT_TYPE@
258TOOLKIT_DEFINES = -DUSE_@X_TOOLKIT_TYPE@
259#else
488dd4c4 260#ifndef USE_GTK
a0528984
EZ
261TOOLKIT_DEFINES =
262#endif
488dd4c4 263#endif
a0528984
EZ
264
265/* DO NOT use -R. There is a special hack described in lastfile.c
266 which is used instead. Some initialized data areas are modified
267 at initial startup, then labeled as part of the text area when
268 Emacs is dumped for the first time, and never changed again. */
269
270/* -Demacs is needed to make some files produce the correct version
271 for use in Emacs.
272
273 -DHAVE_CONFIG_H is needed for some other files to take advantage of
5aa17bb2 274 the information in ``config.h''. */
a0528984
EZ
275
276/* C_SWITCH_X_SITE must come before C_SWITCH_X_MACHINE and C_SWITCH_X_SYSTEM
277 since it may have -I options that should override those two. */
a1b7773a 278ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(TOOLKIT_DEFINES) $(MYCPPFLAGS) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM C_SWITCH_SYSTEM_TEMACS ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${CFLAGS}
a0528984
EZ
279.c.o:
280 $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
281
a0528984
EZ
282#ifndef LIBX11_MACHINE
283#define LIBX11_MACHINE
284#endif
285
a0528984
EZ
286#ifndef LIBX11_SYSTEM
287#define LIBX11_SYSTEM
288#endif
289
290#ifndef LIB_X11_LIB
291#define LIB_X11_LIB -lX11
292#endif
293
cbf223e1
EZ
294/* xmenu.c should not be compiled on OSX. */
295#ifndef HAVE_CARBON
296XMENU_OBJ = xmenu.o
297#endif
298
a0528984 299#ifdef HAVE_X_WINDOWS
a12d3d87
KS
300
301XOBJ= xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o
302
a0528984
EZ
303#ifdef HAVE_MENUS
304
488dd4c4 305#ifdef USE_GTK
a12d3d87 306GTK_OBJ= gtkutil.o
488dd4c4 307#endif
a0528984
EZ
308
309/* The X Menu stuff is present in the X10 distribution, but missing
310 from X11. If we have X10, just use the installed library;
311 otherwise, use our own copy. */
312#ifdef HAVE_X11
313#ifdef USE_X_TOOLKIT
314OLDXMENU=${lwlibdir}liblw.a
315LIBXMENU= $(OLDXMENU)
316#else /* not USE_X_TOOLKIT */
317OLDXMENU= ${oldXMenudir}libXMenu11.a
318LIBXMENU= $(OLDXMENU)
319#endif /* not USE_X_TOOLKIT */
320#else /* not HAVE_X11 */
321LIBXMENU= -lXMenu
322#endif /* not HAVE_X11 */
323
324#else /* not HAVE_MENUS */
325
be9b5a60 326/* Otherwise, do not worry about the menu library at all. */
a0528984
EZ
327LIBXMENU=
328#endif /* not HAVE_MENUS */
329
330#ifdef USE_X_TOOLKIT
331#define @X_TOOLKIT_TYPE@
332#if defined (LUCID) || defined (ATHENA)
333#if HAVE_XAW3D
334LIBW= -lXaw3d
335#else
336LIBW= -lXaw
337#endif
338#endif
339#ifdef MOTIF
340#if defined (HAVE_MOTIF_2_1) && defined (HAVE_LIBXP)
341#define LIB_MOTIF_EXTRA -lXp
342#else
343#define LIB_MOTIF_EXTRA
344#endif
345#ifdef LIB_MOTIF
346LIBW= LIB_MOTIF LIB_MOTIF_EXTRA
347#else
348LIBW= -lXm LIB_MOTIF_EXTRA
349#endif
350#endif
351#ifdef OPEN_LOOK
352LIBW= -lXol
353#endif
354
355#ifdef HAVE_X11XTR6
356#ifdef NEED_LIBW
357LIBXTR6 = -lSM -lICE -lw
358#else
359LIBXTR6 = -lSM -lICE
360#endif
361#endif
362
363#ifndef LIBXMU
364#define LIBXMU -lXmu
365#endif
366
367#ifdef LIBXT_STATIC
368/* We assume the config files have defined STATIC_OPTION
369 since that might depend on the operating system.
be9b5a60 370 (Do not forget you need different definitions with and without __GNUC__.) */
a0528984
EZ
371LIBXT= STATIC_OPTION $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext DYNAMIC_OPTION
372#else /* not LIBXT_STATIC */
373LIBXT= $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext
374#endif /* not LIBXT_STATIC */
375
376#else /* not USE_X_TOOLKIT */
488dd4c4
JD
377
378#ifdef USE_GTK
379LIBW=@GTK_LIBS@
380OLDXMENU=
381LIBXMENU=
382#endif /* USE_GTK */
383
618c30cb 384#ifdef HAVE_X_SM
488dd4c4 385LIBXT=$(LIBW) -lSM -lICE
618c30cb 386#else
488dd4c4 387LIBXT=$(LIBW)
618c30cb 388#endif
a0528984
EZ
389#endif /* not USE_X_TOOLKIT */
390
7e660140 391#if HAVE_XFT
8d097e47 392XFT_LIBS=@XFT_LIBS@
7e660140
JD
393#endif /* HAVE_XFT */
394
a0528984
EZ
395#if HAVE_XPM
396#ifndef LIBXPM
397#define LIBXPM -lXpm
398#endif /* not defined LIBXPM */
399#else /* not HAVE_XPM */
400#define LIBXPM
401#endif /* not HAVE_XPM */
402
403#if HAVE_JPEG
404#ifndef LIBJPEG
405#define LIBJPEG -ljpeg
406#endif /* not defined LIBJPEG */
407#else /* not HAVE_JPEG */
408#define LIBJPEG
409#endif /* not HAVE_JPEG */
410
411#if HAVE_PNG
412#ifndef LIBPNG
413#define LIBPNG -lpng -lz -lm
414#endif /* not defined LIBPNG */
415#else /* not HAVE_PNG */
416#define LIBPNG
417#endif /* not HAVE_PNG */
418
419#if HAVE_TIFF
420#ifndef LIBTIFF
421#define LIBTIFF -ltiff
422#endif /* not defined LIBTIFF */
423#else /* not HAVE_TIFF */
424#define LIBTIFF
425#endif /* not HAVE_TIFF */
426
427#if HAVE_GIF
428#ifndef LIBGIF
31840c43 429#define LIBGIF -lgif
a0528984
EZ
430#endif /* not defined LIBGIF */
431#else /* not HAVE_GIF */
432#define LIBGIF
433#endif /* not HAVE_GIF */
434
435#ifdef HAVE_X11
436/* LD_SWITCH_X_DEFAULT comes after everything else that specifies
437 options for where to find X libraries, but before those libraries. */
438X11_LDFLAGS = LD_SWITCH_X_SITE LD_SWITCH_X_DEFAULT
106bfcae 439LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) LIBTIFF LIBJPEG LIBPNG LIBGIF LIBXPM LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM $(XFT_LIBS)
a0528984 440#else /* not HAVE_X11 */
c22140f6 441LIBX= $(LIBXMENU) LD_SWITCH_X_SITE
a0528984 442#endif /* not HAVE_X11 */
c8e35ff0 443#else /* not HAVE_X_WINDOWS */
a0528984
EZ
444#endif /* not HAVE_X_WINDOWS */
445
26114bc0
JD
446#if HAVE_GPM
447#ifndef LIBGPM
448#define LIBGPM -lgpm
449#endif /* not defined LIBGPM */
450#else /* not HAVE_GPM */
451#define LIBGPM
452#endif /* not HAVE_GPM */
453
b5322ed7
CY
454#if HAVE_LIBRESOLV
455#ifndef LIBRESOLV
456#define LIBRESOLV -lresolv
457#endif /* not defined LIBRESOLV */
458#else /* not HAVE_LIBRESOLV */
459#define LIBRESOLV
460#endif /* not HAVE_LIBRESOLV */
26114bc0 461
a0528984 462LIBSOUND= @LIBSOUND@
4900d996 463CFLAGS_SOUND= @CFLAGS_SOUND@
a0528984 464
a1b7773a
YM
465RSVG_LIBS= @RSVG_LIBS@
466RSVG_CFLAGS= @RSVG_CFLAGS@
467
a0528984
EZ
468#ifndef ORDINARY_LINK
469/* Fix linking if compiled with GCC. */
470#ifdef __GNUC__
471
472#if __GNUC__ > 1
473
474#ifdef LINKER
475#define LINKER_WAS_SPECIFIED
476#endif
477
478/* Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
479 places that are difficult to figure out at make time. Fortunately,
480 these same versions allow you to pass arbitrary flags on to the
be9b5a60 481 linker, so there is no reason not to use it as a linker.
a0528984 482
be9b5a60 483 Well, it is not quite perfect. The "-nostdlib" keeps GCC from
a0528984
EZ
484 searching for libraries in its internal directories, so we have to
485 ask GCC explicitly where to find libgcc.a. */
486
487#ifndef LINKER
488#define LINKER $(CC) -nostdlib
489#endif
490
491#ifndef LIB_GCC
492/* Ask GCC where to find libgcc.a. */
493#define LIB_GCC `$(CC) -print-libgcc-file-name`
494#endif /* not LIB_GCC */
495
496GNULIB_VAR = LIB_GCC
497
498#ifndef LINKER_WAS_SPECIFIED
499/* GCC passes any argument prefixed with -Xlinker directly to the
be9b5a60 500 linker. See prefix-args.c for an explanation of why we do not do
5aa17bb2 501 this with the shell''s ``for'' construct.
be9b5a60 502 Note that some people do not have '.' in their paths, so we must
a0528984
EZ
503 use ./prefix-args. */
504#define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
505#else
506#define YMF_PASS_LDFLAGS(flags) flags
507#endif
508
509#else /* __GNUC__ < 2 */
510
511#ifndef LIB_GCC
512#define LIB_GCC /usr/local/lib/gcc-gnulib
513#endif /* not LIB_GCC */
514GNULIB_VAR = `if [ -f LIB_GCC ] ; then echo LIB_GCC; else echo; fi`
515#endif /* __GNUC__ < 2 */
516#else /* not __GNUC__ */
517GNULIB_VAR =
518
519#endif /* not __GNUC__ */
520#endif /* not ORDINARY_LINK */
521
522/* Specify address for ld to start loading at,
523 if requested by configuration. */
524#ifdef LD_TEXT_START_ADDR
525STARTFLAGS = -T LD_TEXT_START_ADDR -e __start
526#endif
527
528#ifdef ORDINARY_LINK
529LD = $(CC)
530#else
531#ifdef COFF_ENCAPSULATE
532LD=$(CC) -nostdlib
533#else /* not ORDINARY_LINK */
534#ifdef LINKER
535LD=LINKER
536#else /* not LINKER */
537LD=ld
538#endif /* not LINKER */
539#endif /* not COFF_ENCAPSULATE */
540#endif /* not ORDINARY_LINK */
541
dfe15ea3 542/* Flags to pass to LD only for temacs. */
be9b5a60 543/* Do not split this line with a backslash. That can cause trouble with
afb44cc2
DL
544 some cpps. */
545TEMACS_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE LD_SWITCH_MACHINE_TEMACS LD_SWITCH_SITE
a0528984
EZ
546
547/* A macro which other sections of Makefile can redefine to munge the
be9b5a60 548 flags before they are passed to LD. This is helpful if you have
a0528984
EZ
549 redefined LD to something odd, like "gcc".
550 (The YMF prefix is a holdover from the old name "ymakefile".)
551 */
552#ifndef YMF_PASS_LDFLAGS
553#define YMF_PASS_LDFLAGS(flags) flags
554#endif
555
556/* Allow config.h to specify a replacement file for unexec.c. */
557#ifndef UNEXEC
558#define UNEXEC unexec.o
559#endif
560#ifndef UNEXEC_SRC
561#define UNEXEC_SRC unexec.c
562#endif
563
564INTERVAL_SRC = intervals.h composite.h
565
566GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
567
568#ifdef MSDOS
569#ifdef HAVE_X_WINDOWS
570MSDOS_OBJ = dosfns.o msdos.o
571#else
572MSDOS_OBJ = dosfns.o msdos.o w16select.o
573#endif
574#endif
575
d845b2f3
SM
576#ifdef CYGWIN
577CYGWIN_OBJ = sheap.o
578#endif
579
e0f712ba 580#ifdef HAVE_CARBON
ce0669d4 581mac = $(dot)$(dot)/mac/
03cb0f35 582MAC_OBJ = mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o fringe.o image.o
ce0669d4
ST
583emacsapp = $(PWD)/$(mac)Emacs.app/
584emacsappsrc = ${srcdir}/../mac/Emacs.app/
e0f712ba 585#endif
a0528984
EZ
586
587/* lastfile must follow all files
588 whose initialized data areas should be dumped as pure by dump-emacs. */
cbf223e1 589obj= dispnew.o frame.o scroll.o xdisp.o $(XMENU_OBJ) window.o \
af0ad939 590 charset.o coding.o category.o ccl.o \
ed8dad6b 591 cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ)\
a0528984
EZ
592 emacs.o keyboard.o macros.o keymap.o sysdep.o \
593 buffer.o filelock.o insdel.o marker.o \
594 minibuf.o fileio.o dired.o filemode.o \
595 cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
596 alloc.o data.o doc.o editfns.o callint.o \
597 eval.o floatfns.o fns.o print.o lread.o \
e047f448 598 syntax.o UNEXEC bytecode.o \
a0528984
EZ
599 process.o callproc.o \
600 region-cache.o sound.o atimer.o \
601 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
d845b2f3 602 $(MSDOS_OBJ) $(MAC_OBJ) $(CYGWIN_OBJ)
a0528984
EZ
603
604/* Object files used on some machine or other.
605 These go in the DOC file on all machines
606 in case they are needed there. */
04a697fe 607SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
fccb803e 608 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
03cb0f35 609 mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o \
d87a9ab8
JD
610 w32.o w32bdf.o w32console.o w32fns.o w32heap.o w32inevt.o \
611 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o
a0528984
EZ
612
613
614#ifdef TERMINFO
615/* Used to be -ltermcap here. If your machine needs that,
616 define LIBS_TERMCAP in the m/MACHINE.h file. */
617#ifndef LIBS_TERMCAP
618#define LIBS_TERMCAP -lcurses
619#endif /* LIBS_TERMCAP */
620termcapobj = terminfo.o
621#else /* ! defined (TERMINFO) */
622#ifndef LIBS_TERMCAP
623#define LIBS_TERMCAP
624termcapobj = termcap.o tparam.o
625#else /* LIBS_TERMCAP */
626termcapobj = tparam.o
627#endif /* LIBS_TERMCAP */
628#endif /* ! defined (TERMINFO) */
629
630
631#ifndef SYSTEM_MALLOC
632
2fa0eedf
RS
633#ifndef DOUG_LEA_MALLOC
634gmallocobj = gmalloc.o
635#endif
636
a0528984 637#ifdef REL_ALLOC
2fa0eedf
RS
638rallocobj = ralloc.o
639#endif
640
641mallocobj = $(gmallocobj) $(rallocobj) vm-limit.o
a0528984
EZ
642
643#endif /* SYSTEM_MALLOC */
644
645
a0528984
EZ
646#ifdef USE_X_TOOLKIT
647widgetobj= widget.o
648#else /* not USE_X_TOOLKIT */
649widgetobj=
650#endif /* not USE_X_TOOLKIT */
651
652
653/* define otherobj as list of object files that make-docfile
654 should not be told about. */
d845b2f3
SM
655#ifdef CYGWIN
656/* Cygwin differs because of its unexec(). */
67d20687 657otherobj= $(termcapobj) $(gmallocobj) $(rallocobj) lastfile.o vm-limit.o $(widgetobj) $(LIBOBJS)
d845b2f3 658#else
67d20687 659otherobj= $(termcapobj) lastfile.o $(mallocobj) $(widgetobj) $(LIBOBJS)
d845b2f3 660#endif
a0528984
EZ
661
662#ifdef HAVE_MOUSE
663#define MOUSE_SUPPORT ${lispsource}mouse.elc \
664 ${lispsource}select.elc ${lispsource}scroll-bar.elc
665#else
dd7c5963
NR
666#ifdef HAVE_GPM
667#define MOUSE_SUPPORT ${lispsource}mouse.elc
668#else
a0528984
EZ
669#define MOUSE_SUPPORT
670#endif
dd7c5963 671#endif
a0528984
EZ
672
673#ifdef VMS
674#define VMS_SUPPORT ${lispsource}vmsproc.elc ${lispsource}vms-patch.elc
675#else
676#define VMS_SUPPORT
677#endif
678
679#ifdef MSDOS
680#define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
681 ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc \
682 ${lispsource}international/ccl.elc ${lispsource}international/codepage.elc
683
684#else
685#define MSDOS_SUPPORT
686#endif
687
414546fb
NR
688#ifdef HAVE_WINDOW_SYSTEM
689#ifdef HAVE_X_WINDOWS
d76c7a77 690#define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
414546fb
NR
691 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
692 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc ${lispsource}x-dnd.elc
693#else
d76c7a77 694#define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
414546fb
NR
695 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
696 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc
697#endif
698#else
699#define WINDOW_SUPPORT
700#endif
701
a0528984 702#ifdef WINDOWSNT
1f1bce0e
JR
703#define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
704 ${lispsource}dos-w32.elc ${lispsource}w32-vars.elc \
705 ${lispsource}w32-fns.elc
a0528984
EZ
706#else
707#define WINNT_SUPPORT
708#endif
709
875baa34
LT
710#ifdef HAVE_WINDOW_SYSTEM
711#define TOOLTIP_SUPPORT ${lispsource}tooltip.elc
712#else
713#define TOOLTIP_SUPPORT
714#endif
715
be9b5a60
SM
716/* List of Lisp files loaded into the dumped Emacs. It is arranged
717 like this because it is easier to generate it semi-mechanically from
a0528984
EZ
718 loadup.el this way.
719
720 Note that this list should not include lisp files which might not
721 be present, like site-load.el and site-init.el; this makefile
722 expects them all to be either present or buildable.
723
724 Files which are loaded unconditionally should be in shortlisp as well.
725 Files included conditionally here should be included (unconditionally)
726 in SOME_MACHINE_LISP. */
727
728lisp= \
729 ${lispsource}abbrev.elc \
730 ${lispsource}buff-menu.elc \
aae5b722 731 ${lispsource}button.elc \
f984e73e 732 ${lispsource}emacs-lisp/byte-run.elc \
bfcf6dbe 733 ${lispsource}cus-face.elc \
d381a855 734 ${lispsource}cus-start.elc \
a0528984 735 ${lispsource}custom.elc \
6e860d15 736 ${lispsource}emacs-lisp/backquote.elc \
a0528984
EZ
737 ${lispsource}emacs-lisp/lisp-mode.elc \
738 ${lispsource}emacs-lisp/lisp.elc \
739 ${lispsource}env.elc \
740 ${lispsource}faces.elc \
741 ${lispsource}files.elc \
742 ${lispsource}format.elc \
743 ${lispsource}facemenu.elc \
744 MOUSE_SUPPORT \
f984e73e 745 ${lispsource}emacs-lisp/float-sup.elc \
af0ad939 746 ${lispsource}frame.elc \
a0528984
EZ
747 ${lispsource}help.elc \
748 ${lispsource}indent.elc \
749 ${lispsource}isearch.elc \
29f05691 750 ${lispsource}rfn-eshadow.elc \
a0528984
EZ
751 ${lispsource}loadup.el \
752 ${lispsource}loaddefs.el \
aae5b722 753 ${lispsource}bindings.elc \
f984e73e 754 ${lispsource}emacs-lisp/map-ynp.elc \
a0528984
EZ
755 ${lispsource}menu-bar.elc \
756 ${lispsource}international/mule.elc \
757 ${lispsource}international/mule-conf.el \
758 ${lispsource}international/mule-cmds.elc \
759 ${lispsource}international/characters.elc \
e4b653e1 760 ${lispsource}international/ucs-tables.elc \
a0528984 761 ${lispsource}international/utf-8.elc \
24778020 762 ${lispsource}international/utf-16.elc \
f7d5d963
EZ
763 ${lispsource}international/latin-1.el \
764 ${lispsource}international/latin-2.el \
765 ${lispsource}international/latin-3.el \
766 ${lispsource}international/latin-4.el \
767 ${lispsource}international/latin-5.el \
768 ${lispsource}international/latin-8.el \
769 ${lispsource}international/latin-9.el \
a0528984
EZ
770 ${lispsource}case-table.elc \
771 ${lispsource}language/chinese.elc \
772 ${lispsource}language/cyrillic.elc \
773 ${lispsource}language/indian.elc \
74fc84af 774 ${lispsource}language/devanagari.el \
908f3e60 775 ${lispsource}language/kannada.el \
ed4049a2
KH
776 ${lispsource}language/malayalam.el \
777 ${lispsource}language/tamil.el \
74fc84af 778 ${lispsource}language/english.el \
a0528984
EZ
779 ${lispsource}language/ethiopic.elc \
780 ${lispsource}language/european.elc \
74fc84af
EZ
781 ${lispsource}language/czech.el \
782 ${lispsource}language/slovak.el \
783 ${lispsource}language/romanian.el \
784 ${lispsource}language/greek.el \
785 ${lispsource}language/hebrew.el \
786 ${lispsource}language/japanese.el \
787 ${lispsource}language/korean.el \
788 ${lispsource}language/lao.el \
789 ${lispsource}language/thai.el \
a0528984
EZ
790 ${lispsource}language/tibetan.elc \
791 ${lispsource}language/vietnamese.elc \
74fc84af 792 ${lispsource}language/misc-lang.el \
1e9a6186
DL
793 ${lispsource}language/utf-8-lang.el \
794 ${lispsource}language/georgian.el \
a0528984
EZ
795 ${lispsource}paths.el \
796 ${lispsource}register.elc \
797 ${lispsource}replace.elc \
798 ${lispsource}simple.elc \
799 ${lispsource}startup.elc \
800 ${lispsource}subr.elc \
801 ${lispsource}term/tty-colors.elc \
bfcf6dbe 802 ${lispsource}font-core.elc \
1f7b1131
DN
803 ${lispsource}emacs-lisp/syntax.elc \
804 ${lispsource}font-lock.elc \
805 ${lispsource}jit-lock.elc \
a0528984
EZ
806 ${lispsource}textmodes/fill.elc \
807 ${lispsource}textmodes/page.elc \
808 ${lispsource}textmodes/paragraphs.elc \
809 ${lispsource}textmodes/text-mode.elc \
f984e73e 810 ${lispsource}emacs-lisp/timer.elc \
6e6851b0 811 ${lispsource}jka-cmpr-hook.elc \
a0528984
EZ
812 ${lispsource}vc-hooks.elc \
813 ${lispsource}ediff-hook.elc \
875baa34 814 TOOLTIP_SUPPORT \
a0528984
EZ
815 VMS_SUPPORT \
816 MSDOS_SUPPORT \
817 WINNT_SUPPORT \
414546fb 818 WINDOW_SUPPORT \
a0528984
EZ
819 ${lispsource}widget.elc \
820 ${lispsource}window.elc \
821 ${lispsource}version.el
822
823/* These are relative file names for the Lisp files
824 that are loaded unconditionally. This is used in make-docfile.
825 It need not contain the files that are loaded conditionally
826 because SOME_MACHINE_LISP has those. */
827shortlisp= \
828 ../lisp/abbrev.elc \
829 ../lisp/buff-menu.elc \
aae5b722 830 ../lisp/button.elc \
f984e73e 831 ../lisp/emacs-lisp/byte-run.elc \
bfcf6dbe 832 ../lisp/cus-face.elc \
d381a855 833 ../lisp/cus-start.elc \
a0528984 834 ../lisp/custom.elc \
f7d5d963 835 ../lisp/emacs-lisp/backquote.elc \
a0528984
EZ
836 ../lisp/emacs-lisp/lisp-mode.elc \
837 ../lisp/emacs-lisp/lisp.elc \
838 ../lisp/facemenu.elc \
839 ../lisp/faces.elc \
840 ../lisp/files.elc \
f984e73e 841 ../lisp/emacs-lisp/float-sup.elc \
a0528984
EZ
842 ../lisp/format.elc \
843 ../lisp/frame.elc \
844 ../lisp/help.elc \
845 ../lisp/indent.elc \
846 ../lisp/isearch.elc \
29f05691 847 ../lisp/rfn-eshadow.elc \
a0528984
EZ
848 ../lisp/loadup.el \
849 ../lisp/loaddefs.el \
aae5b722 850 ../lisp/bindings.elc \
f984e73e 851 ../lisp/emacs-lisp/map-ynp.elc \
a0528984
EZ
852 ../lisp/env.elc \
853 ../lisp/international/mule.elc \
854 ../lisp/international/mule-conf.el \
855 ../lisp/international/mule-cmds.elc \
856 ../lisp/international/characters.elc \
e4b653e1 857 ../lisp/international/ucs-tables.elc \
f7d5d963 858 ../lisp/international/utf-8.elc \
24778020 859 ../lisp/international/utf-16.elc \
f7d5d963
EZ
860 ../lisp/international/latin-1.el \
861 ../lisp/international/latin-2.el \
862 ../lisp/international/latin-3.el \
863 ../lisp/international/latin-4.el \
864 ../lisp/international/latin-5.el \
865 ../lisp/international/latin-8.el \
866 ../lisp/international/latin-9.el \
a0528984
EZ
867 ../lisp/case-table.elc \
868 ../lisp/language/chinese.elc \
869 ../lisp/language/cyrillic.elc \
870 ../lisp/language/indian.elc \
74fc84af 871 ../lisp/language/devanagari.el \
908f3e60 872 ../lisp/language/kannada.el \
ed4049a2
KH
873 ../lisp/language/malayalam.el \
874 ../lisp/language/tamil.el \
74fc84af 875 ../lisp/language/english.el \
a0528984
EZ
876 ../lisp/language/ethiopic.elc \
877 ../lisp/language/european.elc \
74fc84af
EZ
878 ../lisp/language/czech.el \
879 ../lisp/language/slovak.el \
880 ../lisp/language/romanian.el \
881 ../lisp/language/greek.el \
882 ../lisp/language/hebrew.el \
883 ../lisp/language/japanese.el \
884 ../lisp/language/korean.el \
885 ../lisp/language/lao.el \
886 ../lisp/language/thai.el \
a0528984
EZ
887 ../lisp/language/tibetan.elc \
888 ../lisp/language/vietnamese.elc \
74fc84af 889 ../lisp/language/misc-lang.el \
1e9a6186
DL
890 ../lisp/language/utf-8-lang.el \
891 ../lisp/language/georgian.el \
f7d5d963 892 ../lisp/menu-bar.elc \
a0528984
EZ
893 ../lisp/paths.el \
894 ../lisp/register.elc \
895 ../lisp/replace.elc \
896 ../lisp/simple.elc \
897 ../lisp/startup.elc \
898 ../lisp/subr.elc \
899 ../lisp/term/tty-colors.elc \
59809627 900 ../lisp/font-core.elc \
1f7b1131
DN
901 ../lisp/emacs-lisp/syntax.elc \
902 ../lisp/font-lock.elc \
903 ../lisp/jit-lock.elc \
a0528984
EZ
904 ../lisp/textmodes/fill.elc \
905 ../lisp/textmodes/page.elc \
906 ../lisp/textmodes/paragraphs.elc \
907 ../lisp/textmodes/text-mode.elc \
f984e73e 908 ../lisp/emacs-lisp/timer.elc \
a0528984 909 ../lisp/vc-hooks.elc \
6e6851b0 910 ../lisp/jka-cmpr-hook.elc \
a0528984
EZ
911 ../lisp/ediff-hook.elc \
912 ../lisp/widget.elc \
913 ../lisp/window.elc \
914 ../lisp/version.el
915
916/* Lisp files that may or may not be used.
917 We must unconditionally put them in the DOC file.
918 We use ../lisp/ to start the file names
919 to reduce the size of the argument list for make-docfile
5aa17bb2 920 for the sake of systems which can''t handle large ones. */
f7d5d963 921SOME_MACHINE_LISP = ${dotdot}/lisp/mouse.elc \
a0528984
EZ
922 ${dotdot}/lisp/select.elc ${dotdot}/lisp/scroll-bar.elc \
923 ${dotdot}/lisp/vmsproc.elc ${dotdot}/lisp/vms-patch.elc \
924 ${dotdot}/lisp/ls-lisp.elc ${dotdot}/lisp/dos-fns.elc \
925 ${dotdot}/lisp/w32-fns.elc ${dotdot}/lisp/dos-w32.elc \
926 ${dotdot}/lisp/disp-table.elc ${dotdot}/lisp/dos-vars.elc \
414546fb 927 ${dotdot}/lisp/tooltip.elc ${dotdot}/lisp/image.elc \
6e9fa979
EZ
928 ${dotdot}/lisp/fringe.elc ${dotdot}/lisp/dnd.elc \
929 ${dotdot}/lisp/mwheel.elc ${dotdot}/lisp/tool-bar.elc \
414546fb 930 ${dotdot}/lisp/x-dnd.elc \
a0528984 931 ${dotdot}/lisp/international/ccl.elc \
91b726f0 932 ${dotdot}/lisp/international/codepage.elc \
ae4a0f10 933 ${dotdot}/lisp/international/fontset.elc \
c3a63088 934 ${dotdot}/lisp/mouse.elc \
774a8da1 935 ${dotdot}/lisp/term/x-win.elc
a0528984
EZ
936
937/* Construct full set of libraries to be linked.
938 Note that SunOS needs -lm to come before -lc; otherwise, you get
939 duplicated symbols. If the standard libraries were compiled
940 with GCC, we might need gnulib again after them. */
a1b7773a 941LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) $(RSVG_LIBS) LIBGPM \
b5322ed7 942 LIBRESOLV LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
a0528984
EZ
943 LIBS_DEBUG $(GETLOADAVG_LIBS) $(GNULIB_VAR) LIB_MATH LIB_STANDARD \
944 $(GNULIB_VAR)
945
946/* Enable recompilation of certain other files depending on system type. */
947
948#ifndef OTHER_FILES
949#define OTHER_FILES
950#endif
951
952#ifndef OBJECTS_MACHINE
953#define OBJECTS_MACHINE
954#endif
955
83f1cb94 956RUN_TEMACS = ./temacs
83f1cb94 957
108c7c97 958all: emacs${EXEEXT} OTHER_FILES
a0528984 959
108c7c97 960emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
a0528984 961#ifdef CANNOT_DUMP
108c7c97
AS
962 rm -f emacs${EXEEXT}
963 ln temacs${EXEEXT} emacs${EXEEXT}
a0528984
EZ
964#else
965#ifdef HAVE_SHM
83f1cb94 966 LC_ALL=C $(RUN_TEMACS) -nl -batch -l loadup dump
a0528984 967#else /* ! defined (HAVE_SHM) */
83f1cb94 968 LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
a0528984
EZ
969#endif /* ! defined (HAVE_SHM) */
970#endif /* ! defined (CANNOT_DUMP) */
971 -./emacs -q -batch -f list-load-path-shadows
972
973/* We run make-docfile twice because the command line may get too long
974 on some systems. */
975/* ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may
976 or may not be included in ${obj}, but they are always included in
977 ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned
978 for the first time, this prevents any variation between configurations
979 in the contents of the DOC file.
980 Likewise for ${SOME_MACHINE_LISP}. */
b88c11ac 981${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
a0528984
EZ
982 -rm -f ${etc}DOC
983 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
984 ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
985
108c7c97
AS
986${libsrc}make-docfile${EXEEXT}:
987 cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
a0528984
EZ
988
989/* Some systems define this to cause parallel Make-ing. */
990#ifndef MAKE_PARALLEL
991#define MAKE_PARALLEL
992#endif
993
108c7c97 994temacs${EXEEXT}: MAKE_PARALLEL $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} OBJECTS_MACHINE prefix-args${EXEEXT}
d87a9ab8 995 echo "${obj} ${otherobj} " OBJECTS_MACHINE > buildobj.lst
dfe15ea3 996 $(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS) \
a0528984
EZ
997 -o temacs ${STARTFILES} ${obj} ${otherobj} \
998 OBJECTS_MACHINE ${LIBES}
999
be9b5a60 1000/* We do not use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE
5aa17bb2 1001 often contain options that have to do with using Emacs''s crt0,
a0528984 1002 which are only good with temacs. */
108c7c97 1003prefix-args${EXEEXT}: prefix-args.c $(config_h)
a0528984
EZ
1004 $(CC) $(ALL_CFLAGS) $(LDFLAGS) ${srcdir}/prefix-args.c -o prefix-args
1005
be9b5a60 1006/* Do not lose if this was not defined. */
a0528984
EZ
1007#ifndef OLDXMENU_OPTIONS
1008#define OLDXMENU_OPTIONS
1009#endif
1010
16bf4e32 1011#if defined (HAVE_X_WINDOWS) && defined (HAVE_X11) && defined (HAVE_MENUS) && ! defined (HAVE_GTK)
a0528984
EZ
1012
1013/* We use stamp-xmenu with these two deps
1014 to both ensure that lwlib gets remade based on its dependencies
1015 in its own makefile,
1016 and remake temacs if lwlib gets changed by this. */
c60ee5e7 1017stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU)
a0528984
EZ
1018 touch stamp-oldxmenu
1019/* Supply an ordering for parallel make. */
1020../src/$(OLDXMENU): ${OLDXMENU}
1021
1022#ifdef USE_X_TOOLKIT
1023$(OLDXMENU): really-lwlib
1024
1025/* Encode the values of these two macros in Make variables,
1026 so we can use $(...) to substitute their values within "...". */
1027C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
1028C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
1029C_SWITCH_SITE_1 = C_SWITCH_SITE
1030C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
1031C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
1032C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
1033really-lwlib:
50e9cc3a 1034 cd ${lwlibdir}; ${MAKE} ${MFLAGS} \
a0528984
EZ
1035 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
1036 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
1037 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
1038 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
1039 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
1040 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
1041 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
1042 @true /* make -t should not create really-lwlib. */
1043.PHONY: really-lwlib
1044#else /* not USE_X_TOOLKIT */
1045$(OLDXMENU): really-oldXMenu
1046
1047/* Encode the values of these two macros in Make variables,
1048 so we can use $(...) to substitute their values within "...". */
1049C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
1050C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
1051C_SWITCH_SITE_1 = C_SWITCH_SITE
1052C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
1053C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
1054C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
1055really-oldXMenu:
1056 cd ${oldXMenudir}; ${MAKE} ${MFLAGS} OLDXMENU_OPTIONS \
1057 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
1058 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
1059 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
1060 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
1061 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
1062 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
1063 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
1064 @true /* make -t should not create really-oldXMenu. */
1065.PHONY: really-oldXMenu
1066#endif /* not USE_X_TOOLKIT */
16bf4e32 1067#else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! HAVE_GTK) */
a0528984 1068
5aa17bb2 1069/* We don''t really need this, but satisfy the dependency. */
a0528984
EZ
1070stamp-oldxmenu:
1071 touch stamp-oldxmenu
16bf4e32 1072#endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! HAVE_GTK) */
a0528984
EZ
1073
1074../config.status:: epaths.in
1075 @echo "The file epaths.h needs to be set up from epaths.in."
1076 @echo "Please run the `configure' script again."
1077 exit 1
1078
1079../config.status:: config.in
1080 @echo "The file config.h needs to be set up from config.in."
1081 @echo "Please run the `configure' script again."
1082 exit 1
1083
a0528984
EZ
1084/* Nearly all the following files depend on lisp.h,
1085 but it is not included as a dependency because
1086 it is so often changed in ways that do not require any recompilation
1087 and so rarely changed in ways that do require any. */
1088
a0528984
EZ
1089buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \
1090 dispextern.h $(INTERVAL_SRC) blockinput.h atimer.h systime.h charset.h \
1091 $(config_h)
21065c92 1092callint.o: callint.c window.h commands.h buffer.h keymap.h \
a0528984
EZ
1093 keyboard.h dispextern.h $(config_h)
1094callproc.o: callproc.c epaths.h buffer.h commands.h $(config_h) \
1095 process.h systty.h syssignal.h charset.h coding.h ccl.h msdos.h \
f105f403 1096 composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h
21065c92
EZ
1097casefiddle.o: casefiddle.c syntax.h commands.h buffer.h composite.h \
1098 charset.h keymap.h $(config_h)
a0528984 1099casetab.o: casetab.c buffer.h $(config_h)
21065c92 1100category.o: category.c category.h buffer.h charset.h keymap.h $(config_h)
a0528984
EZ
1101ccl.o: ccl.c ccl.h charset.h coding.h $(config_h)
1102charset.o: charset.c charset.h buffer.h coding.h composite.h disptab.h \
1103 $(config_h)
21065c92 1104coding.o: coding.c coding.h ccl.h buffer.h charset.h intervals.h composite.h \
267eea21 1105 window.h dispextern.h frame.h termhooks.h $(config_h)
91b726f0 1106cm.o: cm.c frame.h cm.h termhooks.h termchar.h $(config_h)
a0528984 1107cmds.o: cmds.c syntax.h buffer.h charset.h commands.h window.h $(config_h) \
21065c92 1108 msdos.h dispextern.h keyboard.h keymap.h
a0528984
EZ
1109pre-crt0.o: pre-crt0.c
1110ecrt0.o: ecrt0.c $(config_h)
1111 CRT0_COMPILE ${srcdir}/ecrt0.c
1112dired.o: dired.c commands.h buffer.h $(config_h) charset.h coding.h regex.h \
ffb72b67 1113 systime.h blockinput.h atimer.h
91b726f0 1114dispnew.o: dispnew.c systime.h commands.h process.h frame.h \
4524691f 1115 window.h buffer.h dispextern.h termchar.h termopts.h termhooks.h cm.h \
21065c92 1116 disptab.h indent.h intervals.h \
a0528984
EZ
1117 xterm.h blockinput.h atimer.h charset.h msdos.h composite.h keyboard.h \
1118 $(config_h)
21065c92 1119doc.o: doc.c $(config_h) epaths.h buffer.h keyboard.h keymap.h charset.h
a0528984 1120doprnt.o: doprnt.c charset.h $(config_h)
21065c92 1121dosfns.o: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
ffb72b67
YM
1122 msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \
1123 $(config_h)
a0528984 1124editfns.o: editfns.c window.h buffer.h systime.h $(INTERVAL_SRC) charset.h \
ffb72b67 1125 coding.h dispextern.h frame.h blockinput.h atimer.h $(config_h)
a0528984 1126emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
c0175e24 1127 termhooks.h buffer.h atimer.h systime.h $(INTERVAL_SRC) $(config_h) \
21065c92 1128 window.h dispextern.h keyboard.h keymap.h
a0528984 1129fileio.o: fileio.c window.h buffer.h systime.h $(INTERVAL_SRC) charset.h \
ffb72b67 1130 coding.h msdos.h dispextern.h blockinput.h atimer.h $(config_h)
21065c92 1131filelock.o: filelock.c buffer.h charset.h coding.h systime.h epaths.h $(config_h)
a0528984
EZ
1132filemode.o: filemode.c $(config_h)
1133frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
eee66ed5 1134 blockinput.h atimer.h systime.h buffer.h charset.h fontset.h \
267eea21 1135 msdos.h dosfns.h dispextern.h w32term.h macterm.h termchar.h $(config_h)
91b726f0 1136fringe.o: fringe.c dispextern.h frame.h window.h buffer.h termhooks.h $(config_h)
c2d0b18a 1137fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h charset.h frame.h \
91b726f0 1138 keyboard.h termhooks.h $(config_h)
a0528984 1139getloadavg.o: getloadavg.c $(config_h)
3cdbfa19
KS
1140image.o: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
1141 systime.h xterm.h w32term.h w32gui.h macterm.h macgui.h $(config_h)
a0528984
EZ
1142indent.o: indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h \
1143 termopts.h disptab.h region-cache.h charset.h composite.h dispextern.h \
1144 keyboard.h
af0ad939 1145insdel.o: insdel.c window.h buffer.h $(INTERVAL_SRC) blockinput.h charset.h \
21065c92 1146 dispextern.h atimer.h systime.h region-cache.h $(config_h)
a0528984
EZ
1147keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h charset.h \
1148 commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
91b726f0 1149 systime.h dispextern.h syntax.h $(INTERVAL_SRC) blockinput.h \
21065c92 1150 atimer.h xterm.h puresize.h msdos.h keymap.h w32term.h macterm.h $(config_h)
a0528984 1151keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
b74e16a3
DK
1152 atimer.h systime.h puresize.h charset.h intervals.h keymap.h window.h \
1153 $(config_h)
a0528984
EZ
1154lastfile.o: lastfile.c $(config_h)
1155macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h \
1156 dispextern.h $(config_h)
1157malloc.o: malloc.c $(config_h)
1158gmalloc.o: gmalloc.c $(config_h)
1159ralloc.o: ralloc.c $(config_h)
1160vm-limit.o: vm-limit.c mem-limits.h $(config_h)
1161marker.o: marker.c buffer.h charset.h $(config_h)
39c9a034 1162md5.o: md5.c md5.h $(config_h)
a0528984 1163minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h \
aeeb7075 1164 buffer.h commands.h charset.h msdos.h $(INTERVAL_SRC) keymap.h \
267eea21 1165 termhooks.h $(config_h)
a0528984 1166mktime.o: mktime.c $(config_h)
a0528984
EZ
1167msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
1168 termopts.h termchar.h charset.h coding.h ccl.h disptab.h window.h \
ffb72b67 1169 keyboard.h intervals.h buffer.h commands.h blockinput.h atimer.h $(config_h)
a0528984
EZ
1170process.o: process.c process.h buffer.h window.h termhooks.h termopts.h \
1171 commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
1172 blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
1173 keyboard.h $(config_h)
1174regex.o: regex.c syntax.h buffer.h $(config_h) regex.h category.h charset.h
1644f4e4 1175region-cache.o: region-cache.c buffer.h region-cache.h $(config_h)
a0528984 1176scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
91b726f0 1177 termhooks.h $(config_h)
a0528984 1178search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
21065c92
EZ
1179 blockinput.h atimer.h systime.h category.h charset.h composite.h \
1180 $(INTERVAL_SRC) $(config_h)
a0528984
EZ
1181strftime.o: strftime.c $(config_h)
1182syntax.o: syntax.c syntax.h buffer.h commands.h category.h charset.h \
21065c92 1183 composite.h keymap.h regex.h $(INTERVAL_SRC) $(config_h)
4524691f
RS
1184sysdep.o: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
1185 process.h dispextern.h termhooks.h termchar.h termopts.h \
91b726f0 1186 frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h $(config_h)
a0528984 1187term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \
21065c92 1188 disptab.h dispextern.h keyboard.h charset.h coding.h ccl.h msdos.h \
ffb72b67 1189 window.h keymap.h blockinput.h atimer.h systime.h
a0528984 1190termcap.o: termcap.c $(config_h)
ed8dad6b
KL
1191terminal.o: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
1192 keyboard.h $(config_h)
a0528984
EZ
1193terminfo.o: terminfo.c $(config_h)
1194tparam.o: tparam.c $(config_h)
9cb38333 1195undo.o: undo.c buffer.h commands.h window.h $(config_h)
a0528984
EZ
1196/* This hack is to discard any space that cpp might put at the beginning
1197 of UNEXEC when substituting it in. */
1198UNEXEC_ALIAS=UNEXEC
1199$(UNEXEC_ALIAS): UNEXEC_SRC $(config_h)
1200w16select.o: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
21065c92 1201 msdos.h buffer.h charset.h coding.h composite.h $(config_h)
a0528984
EZ
1202widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h \
1203 $(srcdir)/../lwlib/lwlib.h $(config_h)
1204window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
91b726f0 1205 disptab.h keyboard.h dispextern.h msdos.h composite.h \
ffb72b67
YM
1206 keymap.h blockinput.h atimer.h systime.h $(INTERVAL_SRC) \
1207 xterm.h w32term.h macterm.h $(config_h)
4524691f 1208xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h coding.h \
a0528984 1209 termchar.h frame.h window.h disptab.h termhooks.h charset.h $(config_h) \
21065c92 1210 keyboard.h $(INTERVAL_SRC) region-cache.h xterm.h w32term.h macterm.h \
2091fe04 1211 msdos.h composite.h fontset.h blockinput.h atimer.h systime.h keymap.h
a0528984 1212xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
91b726f0 1213 window.h charset.h msdos.h dosfns.h composite.h atimer.h systime.h \
267eea21
KL
1214 keyboard.h fontset.h w32term.h macterm.h $(INTERVAL_SRC) termchar.h \
1215 termhooks.h $(config_h)
a0528984
EZ
1216xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
1217 $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h \
91b726f0 1218 charset.h gtkutil.h termchar.h termhooks.h $(config_h)
c2d0b18a
RS
1219xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
1220 keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h \
a0fc3644 1221 gtkutil.h msdos.h coding.h $(config_h)
c2d0b18a 1222xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
a0528984 1223 dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
d1182bc4 1224 keyboard.h gnu.h charset.h ccl.h fontset.h composite.h \
488dd4c4 1225 coding.h process.h gtkutil.h $(config_h)
4524691f 1226xselect.o: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
91b726f0 1227 buffer.h atimer.h systime.h termhooks.h $(config_h)
a0528984 1228xrdb.o: xrdb.c $(config_h) epaths.h
231d6cfb
JD
1229xsmfns.o: xsmfns.c $(config_h) systime.h sysselect.h termhooks.h xterm.h \
1230 lisp.h termopts.h
488dd4c4 1231gtkutil.o: gtkutil.c gtkutil.h xterm.h lisp.h frame.h $(config_h) \
ffb72b67
YM
1232 blockinput.h window.h atimer.h systime.h termhooks.h keyboard.h \
1233 charset.h coding.h
488dd4c4 1234
a0528984
EZ
1235hftctl.o: hftctl.c $(config_h)
1236sound.o: sound.c dispextern.h $(config_h)
1237atimer.o: atimer.c atimer.h systime.h $(config_h)
1238
1239/* The files of Lisp proper */
1240
4524691f 1241alloc.o: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h keyboard.h \
a0528984 1242 blockinput.h atimer.h systime.h charset.h dispextern.h $(config_h) $(INTERVAL_SRC)
21065c92
EZ
1243bytecode.o: bytecode.c buffer.h syntax.h charset.h window.h dispextern.h \
1244 frame.h xterm.h $(config_h)
256c9c3a 1245data.o: data.c buffer.h puresize.h charset.h syssignal.h keyboard.h frame.h termhooks.h $(config_h)
a0528984 1246eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
942b13fa 1247 dispextern.h $(config_h)
a0528984
EZ
1248floatfns.o: floatfns.c $(config_h)
1249fns.o: fns.c commands.h $(config_h) frame.h buffer.h charset.h keyboard.h \
21065c92 1250 keymap.h frame.h window.h dispextern.h $(INTERVAL_SRC) coding.h md5.h \
e18c7093 1251 blockinput.h atimer.h systime.h xterm.h termhooks.h
af0ad939 1252print.o: print.c process.h frame.h window.h buffer.h keyboard.h charset.h \
267eea21 1253 $(config_h) dispextern.h termchar.h $(INTERVAL_SRC) msdos.h composite.h \
ffb72b67 1254 blockinput.h atimer.h systime.h
21065c92
EZ
1255lread.o: lread.c commands.h keyboard.h buffer.h epaths.h charset.h \
1256 $(config_h) $(INTERVAL_SRC) termhooks.h coding.h msdos.h
a0528984
EZ
1257
1258/* Text properties support */
1259textprop.o: textprop.c buffer.h window.h dispextern.h $(INTERVAL_SRC) \
1260 $(config_h)
21065c92
EZ
1261intervals.o: intervals.c buffer.h $(INTERVAL_SRC) keyboard.h puresize.h \
1262 keymap.h $(config_h)
a0528984
EZ
1263composite.o: composite.c buffer.h charset.h $(INTERVAL_SRC) $(config_h)
1264
1265/* System-specific programs to be made.
1266 OTHER_FILES and OBJECTS_MACHINE
1267 select which of these should be compiled. */
1268
e0f712ba 1269#ifdef HAVE_CARBON
e047f448 1270buffer.o callint.o cmds.o dispnew.o editfns.o fileio.o frame.o \
e0f712ba 1271 fontset.o indent.o insdel.o keyboard.o macros.o minibuf.o msdos.o process.o \
ed8dad6b 1272 scroll.o sysdep.o term.o terminal.o widget.o window.o xdisp.o xfaces.o xfns.o xmenu.o \
e0f712ba 1273 xterm.o xselect.o sound.o: macgui.h
f3cf04d3 1274mac.o: mac.c process.h sysselect.h blockinput.h atimer.h systime.h charset.h \
03cb0f35 1275 coding.h ccl.h $(config_h)
e0f712ba
AC
1276macfns.o: macfns.c charset.h macterm.h macgui.h frame.h window.h buffer.h \
1277 dispextern.h macgui.h fontset.h $(INTERVAL_SRC) keyboard.h blockinput.h \
ffb72b67 1278 atimer.h systime.h epaths.h termhooks.h coding.h $(config_h)
e0f712ba
AC
1279macmenu.o: macmenu.c termhooks.h frame.h window.h dispextern.h macgui.h \
1280 keyboard.h blockinput.h atimer.h systime.h buffer.h macterm.h $(config_h)
1281macterm.o: blockinput.h atimer.h systime.h syssignal.h macterm.h macgui.h \
1282 frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h termopts.h \
1283 termchar.h gnu.h disptab.h buffer.h window.h keyboard.h $(INTERVAL_SRC) \
1284 process.h coding.h $(config_h)
ffb72b67
YM
1285macselect.o: blockinput.h atimer.h systime.h macterm.h macgui.h frame.h \
1286 keymap.h $(config_h)
e0f712ba 1287
ce0669d4
ST
1288${emacsapp}Contents/Resources/English.lproj:
1289 mkdir -p $@
1290
1291ifneq (${emacsapp},${emacsappsrc})
1292${emacsapp}Contents/Info.plist: ${emacsappsrc}Contents/Info.plist
1293 cp $< $@
1294${emacsapp}Contents/PkgInfo: ${emacsappsrc}Contents/PkgInfo
1295 cp $< $@
1296${emacsapp}Contents/Resources/Emacs.icns: ${emacsappsrc}Contents/Resources/Emacs.icns
1297 mkdir -p ${emacsapp}Contents/Resources
1298 cp $< $@
1299${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings: ${emacsappsrc}Contents/Resources/English.lproj/InfoPlist.strings
1300 cp $< $@
1301endif
1302
1303macosx-bundle: ${emacsapp}Contents/Resources/English.lproj \
af0ad939 1304 ${emacsapp}Contents/Info.plist ${emacsapp}Contents/PkgInfo \
ce0669d4
ST
1305 ${emacsapp}Contents/Resources/Emacs.icns \
1306 ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings
bc23733a 1307macosx-app: macosx-bundle ${emacsapp}Contents/MacOS/Emacs
108c7c97 1308${emacsapp}Contents/MacOS/Emacs: emacs${EXEEXT}
ce0669d4 1309 mkdir -p ${emacsapp}Contents/MacOS/;
108c7c97 1310 cd ${emacsapp}Contents/MacOS/; cp ../../../../src/emacs${EXEEXT} Emacs${EXEEXT}
e0f712ba
AC
1311#endif
1312
a282cc8c 1313bootstrapclean:
4a3363c5 1314 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
a0528984 1315mostlyclean:
108c7c97 1316 rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a
a0528984 1317 rm -f ../etc/DOC
4a3363c5 1318 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
d87a9ab8 1319 rm -f buildobj.lst
a0528984 1320clean: mostlyclean
108c7c97 1321 rm -f emacs-*${EXEEXT} emacs${EXEEXT}
a0528984
EZ
1322/**/# This is used in making a distribution.
1323/**/# Do not use it on development directories!
1324distclean: clean
1325 rm -f epaths.h config.h Makefile Makefile.c config.stamp stamp-oldxmenu ../etc/DOC-*
966bda3a
EZ
1326 mv ./.gdbinit ./.gdbinit.save
1327 if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
1328 else mv ./.gdbinit.save ./.gdbinit; fi
a0528984
EZ
1329maintainer-clean: distclean
1330 @echo "This command is intended for maintainers to use;"
1331 @echo "it deletes files that may require special tools to rebuild."
1332 rm -f TAGS
1333versionclean:
108c7c97 1334 -rm -f emacs${EXEEXT} emacs-* ../etc/DOC*
a0528984
EZ
1335extraclean: distclean
1336 -rm -f *~ \#* m/?*~ s/?*~
1337
a0528984
EZ
1338/* Arrange to make a tags table TAGS-LISP for ../lisp,
1339 plus TAGS for the C files, which includes ../lisp/TAGS by reference. */
1340
c60ee5e7 1341ctagsfiles1 = [xyzXYZ]*.[hc]
a0528984
EZ
1342ctagsfiles2 = [a-wA-W]*.[hc]
1343
1344TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1345 ../lib-src/etags --include=TAGS-LISP --include=${lwlibdir}/TAGS \
1346 --regex='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \
1347 $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1348frc:
1349TAGS-LISP: frc
99b7e543 1350 $(MAKE) -f ${lispdir}Makefile TAGS-LISP ETAGS=../lib-src/etags
a0528984
EZ
1351
1352$(lwlibdir)TAGS:
1353 (cd $(lwlibdir); $(MAKE) -f $(lwlibdir)Makefile tags ETAGS=../lib-src/etags)
1354
1355tags: TAGS TAGS-LISP $(lwlibdir)TAGS
1356.PHONY: tags
1357
1358
1359/* Bootstrapping. */
1360
108c7c97 1361bootstrap: bootstrap-emacs${EXEEXT}
a0528984 1362
c60ee5e7 1363/* Dump an Emacs executable named bootstrap-emacs containing the
a0528984
EZ
1364 files from loadup.el in source form. */
1365
108c7c97 1366bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
a0528984 1367#ifdef CANNOT_DUMP
108c7c97 1368 ln temacs${EXEEXT} bootstrap-emacs${EXEEXT}
a0528984
EZ
1369#else
1370#ifdef HAVE_SHM
83f1cb94 1371 $(RUN_TEMACS) -nl -batch -l loadup bootstrap
a0528984 1372#else /* ! defined (HAVE_SHM) */
83f1cb94 1373 $(RUN_TEMACS) --batch --load loadup bootstrap
a0528984 1374#endif /* ! defined (HAVE_SHM) */
108c7c97 1375 mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
a0528984 1376#endif /* ! defined (CANNOT_DUMP) */