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