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