(Button Types): For define-button-type, clarify type of NAME.
[emacs.git] / src / Makefile.in
blob88acbbf802f942fd527cc72c28b7d9a6e518c0a6
1 # Makefile for GNU Emacs.
2 # Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002,
3 # 2003, 2004, 2005, 2006, 2007, 2008
4 # Free Software Foundation, Inc.
6 # This file is part of GNU Emacs.
8 # GNU Emacs is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 3, or (at your option)
11 # any later version.
13 # GNU Emacs is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with GNU Emacs; see the file COPYING. If not, write to
20 # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 # Boston, MA 02110-1301, USA.
24 # Note that this file is edited by msdos/sed1v2.inp for MSDOS. That
25 # script may need modifying in sync with changes made here. Try to
26 # avoid shell-ism because the DOS build has to use the DOS shell.
28 # Don't try to replace the cpp processing using autoconf facilities,
29 # says rms.
31 # Here are the things that we expect ../configure to edit.
32 # We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
33 srcdir=@srcdir@
34 VPATH=@srcdir@
35 CC=@CC@
36 CPP=@CPP@
37 CFLAGS=@CFLAGS@
38 CPPFLAGS=@CPPFLAGS@
39 LDFLAGS=@LDFLAGS@
40 LN_S=@LN_S@
41 EXEEXT=@EXEEXT@
42 version=@version@
43 # Substitute an assignment for the MAKE variable, because
44 # BSD doesn't have it as a default.
45 @SET_MAKE@
46 # Don't use LIBS. configure puts stuff in it that either shouldn't be
47 # linked with Emacs or is duplicated by the cpp stuff below.
48 # LIBS = @LIBS@
49 LIBOBJS = @LIBOBJS@
51 # On Xenix and the IBM RS6000, double-dot gets screwed up.
52 dot = .
53 dotdot = ${dot}${dot}
54 lispsource = ${srcdir}/$(dot)$(dot)/lisp/
55 libsrc = $(dot)$(dot)/lib-src/
56 etc = $(dot)$(dot)/etc/
57 oldXMenudir = $(dot)$(dot)/oldXMenu/
58 lwlibdir = $(dot)$(dot)/lwlib/
59 lispdir = $(dot)$(dot)/lisp/
61 # Configuration files for .o files to depend on.
62 M_FILE = ${srcdir}/@machfile@
63 S_FILE = ${srcdir}/@opsysfile@
64 config_h = config.h $(M_FILE) $(S_FILE)
66 # ========================== start of cpp stuff =======================
67 /* From here on, comments must be done in C syntax. */
69 C_SWITCH_SYSTEM=
71 /* just to be sure the sh is used */
72 SHELL=/bin/sh
74 #define THIS_IS_MAKEFILE
75 #define NO_SHORTNAMES
76 #define NOT_C_CODE
77 #include "config.h"
79 /* Do not let the file name mktime.c get messed up. */
80 #ifdef mktime
81 #undef mktime
82 #endif
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. */
88 #ifdef X11
89 #define HAVE_X11
90 #undef X11
91 #endif
93 /* On some machines #define register is done in config;
94 do not let it interfere with this file. */
95 #undef register
97 /* On some systems we may not be able to use the system make command. */
98 #ifdef MAKE_COMMAND
99 MAKE = MAKE_COMMAND
100 #endif
102 #ifdef C_COMPILER
103 CC = C_COMPILER
104 #endif
106 /* GNU libc requires ORDINARY_LINK so that its own crt0 is used.
107 GNU/Linux is an exception because it uses a funny variant of GNU libc. */
108 #ifdef __GNU_LIBRARY__
109 #ifndef GNU_LINUX
110 #define ORDINARY_LINK
111 #endif
112 #endif
114 /* Some machines do not find the standard C libraries in the usual place. */
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
125 /* Unless inhibited or changed, use -lg to link for debugging. */
126 #ifndef LIBS_DEBUG
127 #define LIBS_DEBUG -lg
128 #endif
130 /* Some s/SYSTEM.h files define this to request special libraries. */
131 #ifndef LIBS_SYSTEM
132 #define LIBS_SYSTEM
133 #endif
135 /* Some m/MACHINE.h files define this to request special libraries. */
136 #ifndef LIBS_MACHINE
137 #define LIBS_MACHINE
138 #endif
140 #ifndef LIB_MATH
141 # define LIB_MATH -lm
142 #endif /* LIB_MATH */
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 */
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
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
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
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
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
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
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
191 #ifndef C_SWITCH_X_SYSTEM
192 #define C_SWITCH_X_SYSTEM
193 #endif
195 #ifndef C_SWITCH_X_SITE
196 #define C_SWITCH_X_SITE
197 #endif
199 #ifndef LD_SWITCH_X_SITE
200 #define LD_SWITCH_X_SITE
201 #endif
203 #ifndef LD_SWITCH_X_DEFAULT
204 #define LD_SWITCH_X_DEFAULT
205 #endif
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
213 #ifndef C_SWITCH_SITE
214 #define C_SWITCH_SITE
215 #endif
217 #ifndef ORDINARY_LINK
219 #ifndef CRT0_COMPILE
220 #define CRT0_COMPILE $(CC) -c $(ALL_CFLAGS) C_SWITCH_ASM
221 #endif
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 */
234 STARTFILES = START_FILES
236 #else /* ORDINARY_LINK */
238 /* config.h might want to force START_FILES anyway */
239 #ifdef START_FILES
240 STARTFILES = START_FILES
241 #endif /* START_FILES */
243 #endif /* not ORDINARY_LINK */
246 /* cc switches needed to make ``asm'' keyword work.
247 Nothing special needed on most machines. */
248 #ifndef C_SWITCH_ASM
249 #define C_SWITCH_ASM
250 #endif
252 #if HAVE_GTK
253 #define USE_GTK
254 TOOLKIT_DEFINES = -DUSE_GTK
255 #endif
257 #ifdef USE_X_TOOLKIT
258 #define USE_@X_TOOLKIT_TYPE@
259 TOOLKIT_DEFINES = -DUSE_@X_TOOLKIT_TYPE@
260 #else
261 #ifndef USE_GTK
262 TOOLKIT_DEFINES =
263 #endif
264 #endif
266 #ifdef HAVE_DBUS
267 DBUS_CFLAGS = @DBUS_CFLAGS@
268 DBUS_LIBS = @DBUS_LIBS@
269 DBUS_OBJ = dbusbind.o
270 #endif
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. */
277 /* -Demacs is needed to make some files produce the correct version
278 for use in Emacs.
280 -DHAVE_CONFIG_H is needed for some other files to take advantage of
281 the information in ``config.h''. */
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. */
285 ALL_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}
286 .c.o:
287 $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
289 #ifndef LIBX11_MACHINE
290 #define LIBX11_MACHINE
291 #endif
293 #ifndef LIBX11_SYSTEM
294 #define LIBX11_SYSTEM
295 #endif
297 #ifndef LIB_X11_LIB
298 #define LIB_X11_LIB -lX11
299 #endif
301 /* xmenu.c should not be compiled on OSX. */
302 #ifndef HAVE_CARBON
303 XMENU_OBJ = xmenu.o
304 #endif
306 #ifdef HAVE_X_WINDOWS
308 XOBJ= xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o
310 #ifdef HAVE_MENUS
312 #ifdef USE_GTK
313 GTK_OBJ= gtkutil.o
314 #endif
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
321 OLDXMENU=${lwlibdir}liblw.a
322 LIBXMENU= $(OLDXMENU)
323 #else /* not USE_X_TOOLKIT */
324 OLDXMENU= ${oldXMenudir}libXMenu11.a
325 LIBXMENU= $(OLDXMENU)
326 #endif /* not USE_X_TOOLKIT */
327 #else /* not HAVE_X11 */
328 LIBXMENU= -lXMenu
329 #endif /* not HAVE_X11 */
331 #else /* not HAVE_MENUS */
333 /* Otherwise, do not worry about the menu library at all. */
334 LIBXMENU=
335 #endif /* not HAVE_MENUS */
337 #ifdef USE_X_TOOLKIT
338 #define @X_TOOLKIT_TYPE@
339 #if defined (LUCID) || defined (ATHENA)
340 #if HAVE_XAW3D
341 LIBW= -lXaw3d
342 #else
343 LIBW= -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
353 LIBW= LIB_MOTIF LIB_MOTIF_EXTRA
354 #else
355 LIBW= -lXm LIB_MOTIF_EXTRA
356 #endif
357 #endif
358 #ifdef OPEN_LOOK
359 LIBW= -lXol
360 #endif
362 #ifdef HAVE_X11XTR6
363 #ifdef NEED_LIBW
364 LIBXTR6 = -lSM -lICE -lw
365 #else
366 LIBXTR6 = -lSM -lICE
367 #endif
368 #endif
370 #ifndef LIBXMU
371 #define LIBXMU -lXmu
372 #endif
374 #ifdef LIBXT_STATIC
375 /* We assume the config files have defined STATIC_OPTION
376 since that might depend on the operating system.
377 (Do not forget you need different definitions with and without __GNUC__.) */
378 LIBXT= STATIC_OPTION $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext DYNAMIC_OPTION
379 #else /* not LIBXT_STATIC */
380 LIBXT= $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext
381 #endif /* not LIBXT_STATIC */
383 #else /* not USE_X_TOOLKIT */
385 #ifdef USE_GTK
386 LIBW=@GTK_LIBS@
387 OLDXMENU=
388 LIBXMENU=
389 #endif /* USE_GTK */
391 #ifdef HAVE_X_SM
392 LIBXT=$(LIBW) -lSM -lICE
393 #else
394 LIBXT=$(LIBW)
395 #endif
396 #endif /* not USE_X_TOOLKIT */
398 #if HAVE_XFT
399 XFT_LIBS=@XFT_LIBS@
400 #endif /* HAVE_XFT */
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 */
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 */
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 */
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 */
434 #if HAVE_GIF
435 #ifndef LIBGIF
436 #define LIBGIF -lgif
437 #endif /* not defined LIBGIF */
438 #else /* not HAVE_GIF */
439 #define LIBGIF
440 #endif /* not HAVE_GIF */
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. */
445 X11_LDFLAGS = LD_SWITCH_X_SITE LD_SWITCH_X_DEFAULT
446 LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) LIBTIFF LIBJPEG LIBPNG LIBGIF LIBXPM LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM $(XFT_LIBS)
447 #else /* not HAVE_X11 */
448 LIBX= $(LIBXMENU) LD_SWITCH_X_SITE
449 #endif /* not HAVE_X11 */
450 #else /* not HAVE_X_WINDOWS */
451 #endif /* not HAVE_X_WINDOWS */
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 */
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 */
469 LIBSOUND= @LIBSOUND@
470 CFLAGS_SOUND= @CFLAGS_SOUND@
472 RSVG_LIBS= @RSVG_LIBS@
473 RSVG_CFLAGS= @RSVG_CFLAGS@
475 #ifndef ORDINARY_LINK
476 /* Fix linking if compiled with GCC. */
477 #ifdef __GNUC__
479 #if __GNUC__ > 1
481 #ifdef LINKER
482 #define LINKER_WAS_SPECIFIED
483 #endif
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
488 linker, so there is no reason not to use it as a linker.
490 Well, it is not quite perfect. The "-nostdlib" keeps GCC from
491 searching for libraries in its internal directories, so we have to
492 ask GCC explicitly where to find libgcc.a. */
494 #ifndef LINKER
495 #define LINKER $(CC) -nostdlib
496 #endif
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 */
503 GNULIB_VAR = LIB_GCC
505 #ifndef LINKER_WAS_SPECIFIED
506 /* GCC passes any argument prefixed with -Xlinker directly to the
507 linker. See prefix-args.c for an explanation of why we do not do
508 this with the shell''s ``for'' construct.
509 Note that some people do not have '.' in their paths, so we must
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
516 #else /* __GNUC__ < 2 */
518 #ifndef LIB_GCC
519 #define LIB_GCC /usr/local/lib/gcc-gnulib
520 #endif /* not LIB_GCC */
521 GNULIB_VAR = `if [ -f LIB_GCC ] ; then echo LIB_GCC; else echo; fi`
522 #endif /* __GNUC__ < 2 */
523 #else /* not __GNUC__ */
524 GNULIB_VAR =
526 #endif /* not __GNUC__ */
527 #endif /* not ORDINARY_LINK */
529 /* Specify address for ld to start loading at,
530 if requested by configuration. */
531 #ifdef LD_TEXT_START_ADDR
532 STARTFLAGS = -T LD_TEXT_START_ADDR -e __start
533 #endif
535 #ifdef ORDINARY_LINK
536 LD = $(CC)
537 #else
538 #ifdef COFF_ENCAPSULATE
539 LD=$(CC) -nostdlib
540 #else /* not ORDINARY_LINK */
541 #ifdef LINKER
542 LD=LINKER
543 #else /* not LINKER */
544 LD=ld
545 #endif /* not LINKER */
546 #endif /* not COFF_ENCAPSULATE */
547 #endif /* not ORDINARY_LINK */
549 /* Flags to pass to LD only for temacs. */
550 /* Do not split this line with a backslash. That can cause trouble with
551 some cpps. */
552 TEMACS_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE LD_SWITCH_MACHINE_TEMACS LD_SWITCH_SITE
554 /* A macro which other sections of Makefile can redefine to munge the
555 flags before they are passed to LD. This is helpful if you have
556 redefined LD to something odd, like "gcc".
557 (The YMF prefix is a holdover from the old name "ymakefile".)
559 #ifndef YMF_PASS_LDFLAGS
560 #define YMF_PASS_LDFLAGS(flags) flags
561 #endif
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
571 INTERVAL_SRC = intervals.h composite.h
573 GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
575 #ifdef MSDOS
576 #ifdef HAVE_X_WINDOWS
577 MSDOS_OBJ = dosfns.o msdos.o
578 #else
579 MSDOS_OBJ = dosfns.o msdos.o w16select.o
580 #endif
581 #endif
583 #ifdef CYGWIN
584 CYGWIN_OBJ = sheap.o
585 #endif
587 #ifdef HAVE_CARBON
588 mac = $(dot)$(dot)/mac/
589 MAC_OBJ = mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o fringe.o image.o
590 emacsapp = $(PWD)/$(mac)Emacs.app/
591 emacsappsrc = ${srcdir}/../mac/Emacs.app/
592 #endif
594 /* lastfile must follow all files
595 whose initialized data areas should be dumped as pure by dump-emacs. */
596 obj= dispnew.o frame.o scroll.o xdisp.o $(XMENU_OBJ) window.o \
597 charset.o coding.o category.o ccl.o \
598 cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \
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 \
605 syntax.o UNEXEC bytecode.o \
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 \
609 $(MSDOS_OBJ) $(MAC_OBJ) $(CYGWIN_OBJ)
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. */
614 SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
615 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
616 mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o \
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
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 */
627 termcapobj = terminfo.o
628 #else /* ! defined (TERMINFO) */
629 #ifndef LIBS_TERMCAP
630 #define LIBS_TERMCAP
631 termcapobj = termcap.o tparam.o
632 #else /* LIBS_TERMCAP */
633 termcapobj = tparam.o
634 #endif /* LIBS_TERMCAP */
635 #endif /* ! defined (TERMINFO) */
638 #ifndef SYSTEM_MALLOC
640 #ifndef DOUG_LEA_MALLOC
641 gmallocobj = gmalloc.o
642 #endif
644 #ifdef REL_ALLOC
645 rallocobj = ralloc.o
646 #endif
648 mallocobj = $(gmallocobj) $(rallocobj) vm-limit.o
650 #endif /* SYSTEM_MALLOC */
653 #ifdef USE_X_TOOLKIT
654 widgetobj= widget.o
655 #else /* not USE_X_TOOLKIT */
656 widgetobj=
657 #endif /* not USE_X_TOOLKIT */
660 /* define otherobj as list of object files that make-docfile
661 should not be told about. */
662 #ifdef CYGWIN
663 /* Cygwin differs because of its unexec(). */
664 otherobj= $(termcapobj) $(gmallocobj) $(rallocobj) lastfile.o vm-limit.o $(widgetobj) $(LIBOBJS)
665 #else
666 otherobj= $(termcapobj) lastfile.o $(mallocobj) $(widgetobj) $(LIBOBJS)
667 #endif
669 #ifdef HAVE_MOUSE
670 #define MOUSE_SUPPORT ${lispsource}mouse.elc \
671 ${lispsource}select.elc ${lispsource}scroll-bar.elc
672 #else
673 #ifdef HAVE_GPM
674 #define MOUSE_SUPPORT ${lispsource}mouse.elc
675 #else
676 #define MOUSE_SUPPORT
677 #endif
678 #endif
680 #ifdef VMS
681 #define VMS_SUPPORT ${lispsource}vmsproc.elc ${lispsource}vms-patch.elc
682 #else
683 #define VMS_SUPPORT
684 #endif
686 #ifdef MSDOS
687 #define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
688 ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc \
689 ${lispsource}international/ccl.elc ${lispsource}international/codepage.elc
691 #else
692 #define MSDOS_SUPPORT
693 #endif
695 #ifdef HAVE_WINDOW_SYSTEM
696 #ifdef HAVE_X_WINDOWS
697 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
698 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
699 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc ${lispsource}x-dnd.elc
700 #else
701 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
702 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
703 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc
704 #endif
705 #else
706 #define WINDOW_SUPPORT
707 #endif
709 #ifdef WINDOWSNT
710 #define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
711 ${lispsource}dos-w32.elc ${lispsource}w32-vars.elc \
712 ${lispsource}w32-fns.elc
713 #else
714 #define WINNT_SUPPORT
715 #endif
717 #ifdef HAVE_WINDOW_SYSTEM
718 #define TOOLTIP_SUPPORT ${lispsource}tooltip.elc
719 #else
720 #define TOOLTIP_SUPPORT
721 #endif
723 /* List of Lisp files loaded into the dumped Emacs. It is arranged
724 like this because it is easier to generate it semi-mechanically from
725 loadup.el this way.
727 Note that this list should not include lisp files which might not
728 be present, like site-load.el and site-init.el; this makefile
729 expects them all to be either present or buildable.
731 Files which are loaded unconditionally should be in shortlisp as well.
732 Files included conditionally here should be included (unconditionally)
733 in SOME_MACHINE_LISP. */
735 lisp= \
736 ${lispsource}abbrev.elc \
737 ${lispsource}buff-menu.elc \
738 ${lispsource}button.elc \
739 ${lispsource}emacs-lisp/byte-run.elc \
740 ${lispsource}cus-face.elc \
741 ${lispsource}cus-start.elc \
742 ${lispsource}custom.elc \
743 ${lispsource}emacs-lisp/backquote.elc \
744 ${lispsource}emacs-lisp/lisp-mode.elc \
745 ${lispsource}emacs-lisp/lisp.elc \
746 ${lispsource}env.elc \
747 ${lispsource}faces.elc \
748 ${lispsource}files.elc \
749 ${lispsource}format.elc \
750 ${lispsource}facemenu.elc \
751 MOUSE_SUPPORT \
752 ${lispsource}emacs-lisp/float-sup.elc \
753 ${lispsource}frame.elc \
754 ${lispsource}help.elc \
755 ${lispsource}indent.elc \
756 ${lispsource}isearch.elc \
757 ${lispsource}rfn-eshadow.elc \
758 ${lispsource}loadup.el \
759 ${lispsource}loaddefs.el \
760 ${lispsource}bindings.elc \
761 ${lispsource}emacs-lisp/map-ynp.elc \
762 ${lispsource}menu-bar.elc \
763 ${lispsource}international/mule.elc \
764 ${lispsource}international/mule-conf.el \
765 ${lispsource}international/mule-cmds.elc \
766 ${lispsource}international/characters.elc \
767 ${lispsource}international/ucs-tables.elc \
768 ${lispsource}international/utf-8.elc \
769 ${lispsource}international/utf-16.elc \
770 ${lispsource}international/latin-1.el \
771 ${lispsource}international/latin-2.el \
772 ${lispsource}international/latin-3.el \
773 ${lispsource}international/latin-4.el \
774 ${lispsource}international/latin-5.el \
775 ${lispsource}international/latin-8.el \
776 ${lispsource}international/latin-9.el \
777 ${lispsource}case-table.elc \
778 ${lispsource}language/chinese.elc \
779 ${lispsource}language/cyrillic.elc \
780 ${lispsource}language/indian.elc \
781 ${lispsource}language/devanagari.el \
782 ${lispsource}language/kannada.el \
783 ${lispsource}language/malayalam.el \
784 ${lispsource}language/tamil.el \
785 ${lispsource}language/english.el \
786 ${lispsource}language/ethiopic.elc \
787 ${lispsource}language/european.elc \
788 ${lispsource}language/czech.el \
789 ${lispsource}language/slovak.el \
790 ${lispsource}language/romanian.el \
791 ${lispsource}language/greek.el \
792 ${lispsource}language/hebrew.el \
793 ${lispsource}language/japanese.el \
794 ${lispsource}language/korean.el \
795 ${lispsource}language/lao.el \
796 ${lispsource}language/thai.el \
797 ${lispsource}language/tibetan.elc \
798 ${lispsource}language/vietnamese.elc \
799 ${lispsource}language/misc-lang.el \
800 ${lispsource}language/utf-8-lang.el \
801 ${lispsource}language/georgian.el \
802 ${lispsource}paths.el \
803 ${lispsource}register.elc \
804 ${lispsource}replace.elc \
805 ${lispsource}simple.elc \
806 ${lispsource}startup.elc \
807 ${lispsource}subr.elc \
808 ${lispsource}term/tty-colors.elc \
809 ${lispsource}font-core.elc \
810 ${lispsource}emacs-lisp/syntax.elc \
811 ${lispsource}font-lock.elc \
812 ${lispsource}jit-lock.elc \
813 ${lispsource}textmodes/fill.elc \
814 ${lispsource}textmodes/page.elc \
815 ${lispsource}textmodes/paragraphs.elc \
816 ${lispsource}textmodes/text-mode.elc \
817 ${lispsource}emacs-lisp/timer.elc \
818 ${lispsource}jka-cmpr-hook.elc \
819 ${lispsource}vc-hooks.elc \
820 ${lispsource}ediff-hook.elc \
821 TOOLTIP_SUPPORT \
822 VMS_SUPPORT \
823 MSDOS_SUPPORT \
824 WINNT_SUPPORT \
825 WINDOW_SUPPORT \
826 ${lispsource}widget.elc \
827 ${lispsource}window.elc \
828 ${lispsource}version.el
830 /* These are relative file names for the Lisp files
831 that are loaded unconditionally. This is used in make-docfile.
832 It need not contain the files that are loaded conditionally
833 because SOME_MACHINE_LISP has those. */
834 shortlisp= \
835 ../lisp/abbrev.elc \
836 ../lisp/buff-menu.elc \
837 ../lisp/button.elc \
838 ../lisp/emacs-lisp/byte-run.elc \
839 ../lisp/cus-face.elc \
840 ../lisp/cus-start.elc \
841 ../lisp/custom.elc \
842 ../lisp/emacs-lisp/backquote.elc \
843 ../lisp/emacs-lisp/lisp-mode.elc \
844 ../lisp/emacs-lisp/lisp.elc \
845 ../lisp/facemenu.elc \
846 ../lisp/faces.elc \
847 ../lisp/files.elc \
848 ../lisp/emacs-lisp/float-sup.elc \
849 ../lisp/format.elc \
850 ../lisp/frame.elc \
851 ../lisp/help.elc \
852 ../lisp/indent.elc \
853 ../lisp/isearch.elc \
854 ../lisp/rfn-eshadow.elc \
855 ../lisp/loadup.el \
856 ../lisp/loaddefs.el \
857 ../lisp/bindings.elc \
858 ../lisp/emacs-lisp/map-ynp.elc \
859 ../lisp/env.elc \
860 ../lisp/international/mule.elc \
861 ../lisp/international/mule-conf.el \
862 ../lisp/international/mule-cmds.elc \
863 ../lisp/international/characters.elc \
864 ../lisp/international/ucs-tables.elc \
865 ../lisp/international/utf-8.elc \
866 ../lisp/international/utf-16.elc \
867 ../lisp/international/latin-1.el \
868 ../lisp/international/latin-2.el \
869 ../lisp/international/latin-3.el \
870 ../lisp/international/latin-4.el \
871 ../lisp/international/latin-5.el \
872 ../lisp/international/latin-8.el \
873 ../lisp/international/latin-9.el \
874 ../lisp/case-table.elc \
875 ../lisp/language/chinese.elc \
876 ../lisp/language/cyrillic.elc \
877 ../lisp/language/indian.elc \
878 ../lisp/language/devanagari.el \
879 ../lisp/language/kannada.el \
880 ../lisp/language/malayalam.el \
881 ../lisp/language/tamil.el \
882 ../lisp/language/english.el \
883 ../lisp/language/ethiopic.elc \
884 ../lisp/language/european.elc \
885 ../lisp/language/czech.el \
886 ../lisp/language/slovak.el \
887 ../lisp/language/romanian.el \
888 ../lisp/language/greek.el \
889 ../lisp/language/hebrew.el \
890 ../lisp/language/japanese.el \
891 ../lisp/language/korean.el \
892 ../lisp/language/lao.el \
893 ../lisp/language/thai.el \
894 ../lisp/language/tibetan.elc \
895 ../lisp/language/vietnamese.elc \
896 ../lisp/language/misc-lang.el \
897 ../lisp/language/utf-8-lang.el \
898 ../lisp/language/georgian.el \
899 ../lisp/menu-bar.elc \
900 ../lisp/paths.el \
901 ../lisp/register.elc \
902 ../lisp/replace.elc \
903 ../lisp/simple.elc \
904 ../lisp/startup.elc \
905 ../lisp/subr.elc \
906 ../lisp/term/tty-colors.elc \
907 ../lisp/font-core.elc \
908 ../lisp/emacs-lisp/syntax.elc \
909 ../lisp/font-lock.elc \
910 ../lisp/jit-lock.elc \
911 ../lisp/textmodes/fill.elc \
912 ../lisp/textmodes/page.elc \
913 ../lisp/textmodes/paragraphs.elc \
914 ../lisp/textmodes/text-mode.elc \
915 ../lisp/emacs-lisp/timer.elc \
916 ../lisp/vc-hooks.elc \
917 ../lisp/jka-cmpr-hook.elc \
918 ../lisp/ediff-hook.elc \
919 ../lisp/widget.elc \
920 ../lisp/window.elc \
921 ../lisp/version.el
923 /* Lisp files that may or may not be used.
924 We must unconditionally put them in the DOC file.
925 We use ../lisp/ to start the file names
926 to reduce the size of the argument list for make-docfile
927 for the sake of systems which can''t handle large ones. */
928 SOME_MACHINE_LISP = ${dotdot}/lisp/mouse.elc \
929 ${dotdot}/lisp/select.elc ${dotdot}/lisp/scroll-bar.elc \
930 VMS_SUPPORT \
931 ${dotdot}/lisp/ls-lisp.elc ${dotdot}/lisp/dos-fns.elc \
932 ${dotdot}/lisp/w32-fns.elc ${dotdot}/lisp/dos-w32.elc \
933 ${dotdot}/lisp/disp-table.elc ${dotdot}/lisp/dos-vars.elc \
934 ${dotdot}/lisp/tooltip.elc ${dotdot}/lisp/image.elc \
935 ${dotdot}/lisp/fringe.elc ${dotdot}/lisp/dnd.elc \
936 ${dotdot}/lisp/mwheel.elc ${dotdot}/lisp/tool-bar.elc \
937 ${dotdot}/lisp/x-dnd.elc \
938 ${dotdot}/lisp/international/ccl.elc \
939 ${dotdot}/lisp/international/codepage.elc \
940 ${dotdot}/lisp/international/fontset.elc \
941 ${dotdot}/lisp/mouse.elc \
942 ${dotdot}/lisp/term/x-win.elc
944 /* Construct full set of libraries to be linked.
945 Note that SunOS needs -lm to come before -lc; otherwise, you get
946 duplicated symbols. If the standard libraries were compiled
947 with GCC, we might need gnulib again after them. */
948 LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) $(RSVG_LIBS) $(DBUS_LIBS) \
949 LIBGPM LIBRESOLV LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
950 LIBS_DEBUG $(GETLOADAVG_LIBS) $(GNULIB_VAR) LIB_MATH LIB_STANDARD \
951 $(GNULIB_VAR)
953 /* Enable recompilation of certain other files depending on system type. */
955 #ifndef OTHER_FILES
956 #define OTHER_FILES
957 #endif
959 #ifndef OBJECTS_MACHINE
960 #define OBJECTS_MACHINE
961 #endif
963 RUN_TEMACS = ./temacs
965 all: emacs${EXEEXT} OTHER_FILES
967 emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
968 #ifdef CANNOT_DUMP
969 rm -f emacs${EXEEXT}
970 ln temacs${EXEEXT} emacs${EXEEXT}
971 #else
972 #ifdef HAVE_SHM
973 LC_ALL=C $(RUN_TEMACS) -nl -batch -l loadup dump
974 #else /* ! defined (HAVE_SHM) */
975 LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
976 #endif /* ! defined (HAVE_SHM) */
977 #endif /* ! defined (CANNOT_DUMP) */
978 -./emacs -q -batch -f list-load-path-shadows
980 /* We run make-docfile twice because the command line may get too long
981 on some systems. */
982 /* ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may
983 or may not be included in ${obj}, but they are always included in
984 ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned
985 for the first time, this prevents any variation between configurations
986 in the contents of the DOC file.
987 Likewise for ${SOME_MACHINE_LISP}. */
988 ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
989 -rm -f ${etc}DOC
990 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
991 ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
993 ${libsrc}make-docfile${EXEEXT}:
994 cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
996 /* Some systems define this to cause parallel Make-ing. */
997 #ifndef MAKE_PARALLEL
998 #define MAKE_PARALLEL
999 #endif
1001 temacs${EXEEXT}: MAKE_PARALLEL $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} OBJECTS_MACHINE prefix-args${EXEEXT}
1002 echo "${obj} ${otherobj} " OBJECTS_MACHINE > buildobj.lst
1003 $(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS) \
1004 -o temacs ${STARTFILES} ${obj} ${otherobj} \
1005 OBJECTS_MACHINE ${LIBES}
1007 /* We do not use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE
1008 often contain options that have to do with using Emacs''s crt0,
1009 which are only good with temacs. */
1010 prefix-args${EXEEXT}: prefix-args.c $(config_h)
1011 $(CC) $(ALL_CFLAGS) $(LDFLAGS) ${srcdir}/prefix-args.c -o prefix-args
1013 /* Do not lose if this was not defined. */
1014 #ifndef OLDXMENU_OPTIONS
1015 #define OLDXMENU_OPTIONS
1016 #endif
1018 #if defined (HAVE_X_WINDOWS) && defined (HAVE_X11) && defined (HAVE_MENUS) && ! defined (HAVE_GTK)
1020 /* We use stamp-xmenu with these two deps
1021 to both ensure that lwlib gets remade based on its dependencies
1022 in its own makefile,
1023 and remake temacs if lwlib gets changed by this. */
1024 stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU)
1025 touch stamp-oldxmenu
1026 /* Supply an ordering for parallel make. */
1027 ../src/$(OLDXMENU): ${OLDXMENU}
1029 #ifdef USE_X_TOOLKIT
1030 $(OLDXMENU): really-lwlib
1032 /* Encode the values of these two macros in Make variables,
1033 so we can use $(...) to substitute their values within "...". */
1034 C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
1035 C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
1036 C_SWITCH_SITE_1 = C_SWITCH_SITE
1037 C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
1038 C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
1039 C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
1040 really-lwlib:
1041 cd ${lwlibdir}; ${MAKE} ${MFLAGS} \
1042 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
1043 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
1044 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
1045 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
1046 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
1047 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
1048 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
1049 @true /* make -t should not create really-lwlib. */
1050 .PHONY: really-lwlib
1051 #else /* not USE_X_TOOLKIT */
1052 $(OLDXMENU): really-oldXMenu
1054 /* Encode the values of these two macros in Make variables,
1055 so we can use $(...) to substitute their values within "...". */
1056 C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
1057 C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
1058 C_SWITCH_SITE_1 = C_SWITCH_SITE
1059 C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
1060 C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
1061 C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
1062 really-oldXMenu:
1063 cd ${oldXMenudir}; ${MAKE} ${MFLAGS} OLDXMENU_OPTIONS \
1064 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
1065 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
1066 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
1067 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
1068 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
1069 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
1070 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
1071 @true /* make -t should not create really-oldXMenu. */
1072 .PHONY: really-oldXMenu
1073 #endif /* not USE_X_TOOLKIT */
1074 #else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! HAVE_GTK) */
1076 /* We don''t really need this, but satisfy the dependency. */
1077 stamp-oldxmenu:
1078 touch stamp-oldxmenu
1079 #endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! HAVE_GTK) */
1081 ../config.status:: epaths.in
1082 @echo "The file epaths.h needs to be set up from epaths.in."
1083 @echo "Please run the `configure' script again."
1084 exit 1
1086 ../config.status:: config.in
1087 @echo "The file config.h needs to be set up from config.in."
1088 @echo "Please run the `configure' script again."
1089 exit 1
1091 /* Nearly all the following files depend on lisp.h,
1092 but it is not included as a dependency because
1093 it is so often changed in ways that do not require any recompilation
1094 and so rarely changed in ways that do require any. */
1096 buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \
1097 dispextern.h $(INTERVAL_SRC) blockinput.h atimer.h systime.h charset.h \
1098 $(config_h)
1099 callint.o: callint.c window.h commands.h buffer.h keymap.h \
1100 keyboard.h dispextern.h $(config_h)
1101 callproc.o: callproc.c epaths.h buffer.h commands.h $(config_h) \
1102 process.h systty.h syssignal.h charset.h coding.h ccl.h msdos.h \
1103 composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h
1104 casefiddle.o: casefiddle.c syntax.h commands.h buffer.h composite.h \
1105 charset.h keymap.h $(config_h)
1106 casetab.o: casetab.c buffer.h $(config_h)
1107 category.o: category.c category.h buffer.h charset.h keymap.h $(config_h)
1108 ccl.o: ccl.c ccl.h charset.h coding.h $(config_h)
1109 charset.o: charset.c charset.h buffer.h coding.h composite.h disptab.h \
1110 $(config_h)
1111 coding.o: coding.c coding.h ccl.h buffer.h charset.h intervals.h composite.h \
1112 window.h dispextern.h frame.h termhooks.h $(config_h)
1113 cm.o: cm.c frame.h cm.h termhooks.h termchar.h $(config_h)
1114 cmds.o: cmds.c syntax.h buffer.h charset.h commands.h window.h $(config_h) \
1115 msdos.h dispextern.h keyboard.h keymap.h
1116 pre-crt0.o: pre-crt0.c
1117 ecrt0.o: ecrt0.c $(config_h)
1118 CRT0_COMPILE ${srcdir}/ecrt0.c
1119 dired.o: dired.c commands.h buffer.h $(config_h) charset.h coding.h regex.h \
1120 systime.h blockinput.h atimer.h
1121 dispnew.o: dispnew.c systime.h commands.h process.h frame.h \
1122 window.h buffer.h dispextern.h termchar.h termopts.h termhooks.h cm.h \
1123 disptab.h indent.h intervals.h \
1124 xterm.h blockinput.h atimer.h charset.h msdos.h composite.h keyboard.h \
1125 $(config_h)
1126 doc.o: doc.c $(config_h) epaths.h buffer.h keyboard.h keymap.h charset.h
1127 doprnt.o: doprnt.c charset.h $(config_h)
1128 dosfns.o: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
1129 msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \
1130 $(config_h)
1131 editfns.o: editfns.c window.h buffer.h systime.h $(INTERVAL_SRC) charset.h \
1132 coding.h dispextern.h frame.h blockinput.h atimer.h $(config_h)
1133 emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
1134 termhooks.h buffer.h atimer.h systime.h $(INTERVAL_SRC) $(config_h) \
1135 window.h dispextern.h keyboard.h keymap.h
1136 fileio.o: fileio.c window.h buffer.h systime.h $(INTERVAL_SRC) charset.h \
1137 coding.h msdos.h dispextern.h blockinput.h atimer.h $(config_h)
1138 filelock.o: filelock.c buffer.h charset.h coding.h systime.h epaths.h $(config_h)
1139 filemode.o: filemode.c $(config_h)
1140 frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
1141 blockinput.h atimer.h systime.h buffer.h charset.h fontset.h \
1142 msdos.h dosfns.h dispextern.h w32term.h macterm.h termchar.h $(config_h)
1143 fringe.o: fringe.c dispextern.h frame.h window.h buffer.h termhooks.h $(config_h)
1144 fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h charset.h frame.h \
1145 keyboard.h termhooks.h $(config_h)
1146 getloadavg.o: getloadavg.c $(config_h)
1147 image.o: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
1148 systime.h xterm.h w32term.h w32gui.h macterm.h macgui.h $(config_h)
1149 indent.o: indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h \
1150 termopts.h disptab.h region-cache.h charset.h composite.h dispextern.h \
1151 keyboard.h
1152 insdel.o: insdel.c window.h buffer.h $(INTERVAL_SRC) blockinput.h charset.h \
1153 dispextern.h atimer.h systime.h region-cache.h $(config_h)
1154 keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h charset.h \
1155 commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
1156 systime.h dispextern.h syntax.h $(INTERVAL_SRC) blockinput.h \
1157 atimer.h xterm.h puresize.h msdos.h keymap.h w32term.h macterm.h $(config_h)
1158 keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
1159 atimer.h systime.h puresize.h charset.h intervals.h keymap.h window.h \
1160 $(config_h)
1161 lastfile.o: lastfile.c $(config_h)
1162 macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h \
1163 dispextern.h $(config_h)
1164 malloc.o: malloc.c $(config_h)
1165 gmalloc.o: gmalloc.c $(config_h)
1166 ralloc.o: ralloc.c $(config_h)
1167 vm-limit.o: vm-limit.c mem-limits.h $(config_h)
1168 marker.o: marker.c buffer.h charset.h $(config_h)
1169 md5.o: md5.c md5.h $(config_h)
1170 minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h \
1171 buffer.h commands.h charset.h msdos.h $(INTERVAL_SRC) keymap.h \
1172 termhooks.h $(config_h)
1173 mktime.o: mktime.c $(config_h)
1174 msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
1175 termopts.h termchar.h charset.h coding.h ccl.h disptab.h window.h \
1176 keyboard.h intervals.h buffer.h commands.h blockinput.h atimer.h $(config_h)
1177 process.o: process.c process.h buffer.h window.h termhooks.h termopts.h \
1178 commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
1179 blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
1180 keyboard.h $(config_h)
1181 regex.o: regex.c syntax.h buffer.h $(config_h) regex.h category.h charset.h
1182 region-cache.o: region-cache.c buffer.h region-cache.h $(config_h)
1183 scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
1184 termhooks.h $(config_h)
1185 search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
1186 blockinput.h atimer.h systime.h category.h charset.h composite.h \
1187 $(INTERVAL_SRC) $(config_h)
1188 strftime.o: strftime.c $(config_h)
1189 syntax.o: syntax.c syntax.h buffer.h commands.h category.h charset.h \
1190 composite.h keymap.h regex.h $(INTERVAL_SRC) $(config_h)
1191 sysdep.o: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
1192 process.h dispextern.h termhooks.h termchar.h termopts.h \
1193 frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h $(config_h)
1194 term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \
1195 disptab.h dispextern.h keyboard.h charset.h coding.h ccl.h msdos.h \
1196 window.h keymap.h blockinput.h atimer.h systime.h
1197 termcap.o: termcap.c $(config_h)
1198 terminal.o: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
1199 keyboard.h $(config_h)
1200 terminfo.o: terminfo.c $(config_h)
1201 tparam.o: tparam.c $(config_h)
1202 undo.o: undo.c buffer.h commands.h window.h $(config_h)
1203 /* This hack is to discard any space that cpp might put at the beginning
1204 of UNEXEC when substituting it in. */
1205 UNEXEC_ALIAS=UNEXEC
1206 $(UNEXEC_ALIAS): UNEXEC_SRC $(config_h)
1207 w16select.o: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
1208 msdos.h buffer.h charset.h coding.h composite.h $(config_h)
1209 widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h \
1210 $(srcdir)/../lwlib/lwlib.h $(config_h)
1211 window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
1212 disptab.h keyboard.h dispextern.h msdos.h composite.h \
1213 keymap.h blockinput.h atimer.h systime.h $(INTERVAL_SRC) \
1214 xterm.h w32term.h macterm.h $(config_h)
1215 xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h coding.h \
1216 termchar.h frame.h window.h disptab.h termhooks.h charset.h $(config_h) \
1217 keyboard.h $(INTERVAL_SRC) region-cache.h xterm.h w32term.h macterm.h \
1218 msdos.h composite.h fontset.h blockinput.h atimer.h systime.h keymap.h
1219 xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
1220 window.h charset.h msdos.h dosfns.h composite.h atimer.h systime.h \
1221 keyboard.h fontset.h w32term.h macterm.h $(INTERVAL_SRC) termchar.h \
1222 termhooks.h $(config_h)
1223 xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
1224 $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h \
1225 charset.h gtkutil.h termchar.h termhooks.h $(config_h)
1226 xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
1227 keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h \
1228 gtkutil.h msdos.h coding.h $(config_h)
1229 xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
1230 dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
1231 keyboard.h gnu.h charset.h ccl.h fontset.h composite.h \
1232 coding.h process.h gtkutil.h $(config_h)
1233 xselect.o: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
1234 buffer.h atimer.h systime.h termhooks.h $(config_h)
1235 xrdb.o: xrdb.c $(config_h) epaths.h
1236 xsmfns.o: xsmfns.c $(config_h) systime.h sysselect.h termhooks.h xterm.h \
1237 lisp.h termopts.h
1238 gtkutil.o: gtkutil.c gtkutil.h xterm.h lisp.h frame.h $(config_h) \
1239 blockinput.h window.h atimer.h systime.h termhooks.h keyboard.h \
1240 charset.h coding.h
1241 dbusbind.o: dbusbind.c termhooks.h $(config_h)
1243 hftctl.o: hftctl.c $(config_h)
1244 sound.o: sound.c dispextern.h $(config_h)
1245 atimer.o: atimer.c atimer.h systime.h $(config_h)
1247 /* The files of Lisp proper */
1249 alloc.o: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h keyboard.h \
1250 blockinput.h atimer.h systime.h charset.h dispextern.h $(config_h) $(INTERVAL_SRC)
1251 bytecode.o: bytecode.c buffer.h syntax.h charset.h window.h dispextern.h \
1252 frame.h xterm.h $(config_h)
1253 data.o: data.c buffer.h puresize.h charset.h syssignal.h keyboard.h frame.h termhooks.h $(config_h)
1254 eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
1255 dispextern.h $(config_h)
1256 floatfns.o: floatfns.c $(config_h)
1257 fns.o: fns.c commands.h $(config_h) frame.h buffer.h charset.h keyboard.h \
1258 keymap.h frame.h window.h dispextern.h $(INTERVAL_SRC) coding.h md5.h \
1259 blockinput.h atimer.h systime.h xterm.h termhooks.h
1260 print.o: print.c process.h frame.h window.h buffer.h keyboard.h charset.h \
1261 $(config_h) dispextern.h termchar.h $(INTERVAL_SRC) msdos.h composite.h \
1262 blockinput.h atimer.h systime.h
1263 lread.o: lread.c commands.h keyboard.h buffer.h epaths.h charset.h \
1264 $(config_h) $(INTERVAL_SRC) termhooks.h coding.h msdos.h
1266 /* Text properties support */
1267 textprop.o: textprop.c buffer.h window.h dispextern.h $(INTERVAL_SRC) \
1268 $(config_h)
1269 intervals.o: intervals.c buffer.h $(INTERVAL_SRC) keyboard.h puresize.h \
1270 keymap.h $(config_h)
1271 composite.o: composite.c buffer.h charset.h $(INTERVAL_SRC) $(config_h)
1273 /* System-specific programs to be made.
1274 OTHER_FILES and OBJECTS_MACHINE
1275 select which of these should be compiled. */
1277 #ifdef HAVE_CARBON
1278 buffer.o callint.o cmds.o dispnew.o editfns.o fileio.o frame.o \
1279 fontset.o indent.o insdel.o keyboard.o macros.o minibuf.o msdos.o process.o \
1280 scroll.o sysdep.o term.o terminal.o widget.o window.o xdisp.o xfaces.o xfns.o xmenu.o \
1281 xterm.o xselect.o sound.o: macgui.h
1282 mac.o: mac.c process.h sysselect.h blockinput.h atimer.h systime.h charset.h \
1283 coding.h ccl.h $(config_h)
1284 macfns.o: macfns.c charset.h macterm.h macgui.h frame.h window.h buffer.h \
1285 dispextern.h macgui.h fontset.h $(INTERVAL_SRC) keyboard.h blockinput.h \
1286 atimer.h systime.h epaths.h termhooks.h coding.h $(config_h)
1287 macmenu.o: macmenu.c termhooks.h frame.h window.h dispextern.h macgui.h \
1288 keyboard.h blockinput.h atimer.h systime.h buffer.h macterm.h $(config_h)
1289 macterm.o: blockinput.h atimer.h systime.h syssignal.h macterm.h macgui.h \
1290 frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h termopts.h \
1291 termchar.h gnu.h disptab.h buffer.h window.h keyboard.h $(INTERVAL_SRC) \
1292 process.h coding.h $(config_h)
1293 macselect.o: blockinput.h atimer.h systime.h macterm.h macgui.h frame.h \
1294 keymap.h $(config_h)
1296 ${emacsapp}Contents/Resources/English.lproj:
1297 mkdir -p $@
1299 ifneq (${emacsapp},${emacsappsrc})
1300 ${emacsapp}Contents/Info.plist: ${emacsappsrc}Contents/Info.plist
1301 cp $< $@
1302 ${emacsapp}Contents/PkgInfo: ${emacsappsrc}Contents/PkgInfo
1303 cp $< $@
1304 ${emacsapp}Contents/Resources/Emacs.icns: ${emacsappsrc}Contents/Resources/Emacs.icns
1305 mkdir -p ${emacsapp}Contents/Resources
1306 cp $< $@
1307 ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings: ${emacsappsrc}Contents/Resources/English.lproj/InfoPlist.strings
1308 cp $< $@
1309 endif
1311 macosx-bundle: ${emacsapp}Contents/Resources/English.lproj \
1312 ${emacsapp}Contents/Info.plist ${emacsapp}Contents/PkgInfo \
1313 ${emacsapp}Contents/Resources/Emacs.icns \
1314 ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings
1315 macosx-app: macosx-bundle ${emacsapp}Contents/MacOS/Emacs
1316 ${emacsapp}Contents/MacOS/Emacs: emacs${EXEEXT}
1317 mkdir -p ${emacsapp}Contents/MacOS/;
1318 cd ${emacsapp}Contents/MacOS/; cp ../../../../src/emacs${EXEEXT} Emacs${EXEEXT}
1319 #endif
1321 bootstrapclean:
1322 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
1323 mostlyclean:
1324 rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a
1325 rm -f ../etc/DOC
1326 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
1327 rm -f buildobj.lst
1328 clean: mostlyclean
1329 rm -f emacs-*${EXEEXT} emacs${EXEEXT}
1330 /**/# This is used in making a distribution.
1331 /**/# Do not use it on development directories!
1332 distclean: clean
1333 rm -f epaths.h config.h Makefile Makefile.c config.stamp stamp-oldxmenu ../etc/DOC-*
1334 mv ./.gdbinit ./.gdbinit.save
1335 if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
1336 else mv ./.gdbinit.save ./.gdbinit; fi
1337 maintainer-clean: distclean
1338 @echo "This command is intended for maintainers to use;"
1339 @echo "it deletes files that may require special tools to rebuild."
1340 rm -f TAGS
1341 versionclean:
1342 -rm -f emacs${EXEEXT} emacs-* ../etc/DOC*
1343 extraclean: distclean
1344 -rm -f *~ \#* m/?*~ s/?*~
1346 /* Arrange to make a tags table TAGS-LISP for ../lisp,
1347 plus TAGS for the C files, which includes ../lisp/TAGS by reference. */
1349 ctagsfiles1 = [xyzXYZ]*.[hc]
1350 ctagsfiles2 = [a-wA-W]*.[hc]
1352 TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1353 ../lib-src/etags --include=TAGS-LISP --include=${lwlibdir}/TAGS \
1354 --regex='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \
1355 $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1356 frc:
1357 TAGS-LISP: frc
1358 $(MAKE) -f ${lispdir}Makefile TAGS-LISP ETAGS=../lib-src/etags
1360 $(lwlibdir)TAGS:
1361 (cd $(lwlibdir); $(MAKE) -f $(lwlibdir)Makefile tags ETAGS=../lib-src/etags)
1363 tags: TAGS TAGS-LISP $(lwlibdir)TAGS
1364 .PHONY: tags
1367 /* Bootstrapping. */
1369 bootstrap: bootstrap-emacs${EXEEXT}
1371 /* Dump an Emacs executable named bootstrap-emacs containing the
1372 files from loadup.el in source form. */
1374 bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
1375 #ifdef CANNOT_DUMP
1376 ln temacs${EXEEXT} bootstrap-emacs${EXEEXT}
1377 #else
1378 #ifdef HAVE_SHM
1379 $(RUN_TEMACS) -nl -batch -l loadup bootstrap
1380 #else /* ! defined (HAVE_SHM) */
1381 $(RUN_TEMACS) --batch --load loadup bootstrap
1382 #endif /* ! defined (HAVE_SHM) */
1383 mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
1384 #endif /* ! defined (CANNOT_DUMP) */