(decode_options): -t implies -c.
[emacs.git] / src / Makefile.in
blob6e91db7262daa7db036e67aa7461c15eae1804fb
1 # Makefile for GNU Emacs.
2 # Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002,
3 # 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
5 # This file is part of GNU Emacs.
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
9 # the Free Software Foundation; either version 3, or (at your option)
10 # any later version.
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.
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
19 # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 # Boston, MA 02110-1301, USA.
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.
27 # Don't try to replace the cpp processing using autoconf facilities,
28 # says rms.
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.
32 srcdir=@srcdir@
33 VPATH=@srcdir@
34 CC=@CC@
35 CPP=@CPP@
36 CFLAGS=@CFLAGS@
37 CPPFLAGS=@CPPFLAGS@
38 LDFLAGS=@LDFLAGS@
39 LN_S=@LN_S@
40 EXEEXT=@EXEEXT@
41 version=@version@
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@
48 LIBOBJS = @LIBOBJS@
50 # On Xenix and the IBM RS6000, double-dot gets screwed up.
51 dot = .
52 dotdot = ${dot}${dot}
53 lispsource = ${srcdir}/$(dot)$(dot)/lisp/
54 libsrc = $(dot)$(dot)/lib-src/
55 etc = $(dot)$(dot)/etc/
56 oldXMenudir = $(dot)$(dot)/oldXMenu/
57 lwlibdir = $(dot)$(dot)/lwlib/
58 lispdir = $(dot)$(dot)/lisp/
60 # Configuration files for .o files to depend on.
61 M_FILE = ${srcdir}/@machfile@
62 S_FILE = ${srcdir}/@opsysfile@
63 config_h = config.h $(M_FILE) $(S_FILE)
65 # ========================== start of cpp stuff =======================
66 /* From here on, comments must be done in C syntax. */
68 C_SWITCH_SYSTEM=
70 /* just to be sure the sh is used */
71 SHELL=/bin/sh
73 #define THIS_IS_MAKEFILE
74 #define NO_SHORTNAMES
75 #define NOT_C_CODE
76 #include "config.h"
78 /* Do not let the file name mktime.c get messed up. */
79 #ifdef mktime
80 #undef mktime
81 #endif
83 /* Use HAVE_X11 as an alias for X11 in this file
84 to avoid problems with X11 as a subdirectory name
85 in -I and other such options which pass through this file. */
87 #ifdef X11
88 #define HAVE_X11
89 #undef X11
90 #endif
92 /* On some machines #define register is done in config;
93 do not let it interfere with this file. */
94 #undef register
96 /* On some systems we may not be able to use the system make command. */
97 #ifdef MAKE_COMMAND
98 MAKE = MAKE_COMMAND
99 #endif
101 #ifdef C_COMPILER
102 CC = C_COMPILER
103 #endif
105 /* GNU libc requires ORDINARY_LINK so that its own crt0 is used.
106 GNU/Linux is an exception because it uses a funny variant of GNU libc. */
107 #ifdef __GNU_LIBRARY__
108 #ifndef GNU_LINUX
109 #define ORDINARY_LINK
110 #endif
111 #endif
113 /* Some machines do not find the standard C libraries in the usual place. */
114 #ifndef ORDINARY_LINK
115 #ifndef LIB_STANDARD
116 #define LIB_STANDARD -lc
117 #endif
118 #else
119 #ifndef LIB_STANDARD
120 #define LIB_STANDARD
121 #endif
122 #endif
124 /* Unless inhibited or changed, use -lg to link for debugging. */
125 #ifndef LIBS_DEBUG
126 #define LIBS_DEBUG -lg
127 #endif
129 /* Some s/SYSTEM.h files define this to request special libraries. */
130 #ifndef LIBS_SYSTEM
131 #define LIBS_SYSTEM
132 #endif
134 /* Some m/MACHINE.h files define this to request special libraries. */
135 #ifndef LIBS_MACHINE
136 #define LIBS_MACHINE
137 #endif
139 #ifndef LIB_MATH
140 # define LIB_MATH -lm
141 #endif /* LIB_MATH */
143 /* Some s/SYSTEM.h files define this to request special switches in ld. */
144 #ifndef LD_SWITCH_SYSTEM
145 #if !defined (__GNUC__) && (defined(COFF_ENCAPSULATE) || (defined (BSD_SYSTEM) && !defined (COFF)))
146 #define LD_SWITCH_SYSTEM -X
147 #else /* ! defined(COFF_ENCAPSULATE) || (defined (BSD_SYSTEM) && !defined (COFF)) */
148 #define LD_SWITCH_SYSTEM
149 #endif /* ! defined(COFF_ENCAPSULATE) || (defined (BSD_SYSTEM) && !defined (COFF)) */
150 #endif /* LD_SWITCH_SYSTEM */
152 /* This holds special options for linking temacs
153 that should be used for linking anything else. */
154 #ifndef LD_SWITCH_SYSTEM_TEMACS
155 #define LD_SWITCH_SYSTEM_TEMACS
156 #endif
158 /* Some s/SYSTEM.h files define this to request special switches
159 for compiling temacs. */
160 #ifndef C_SWITCH_SYSTEM_TEMACS
161 #define C_SWITCH_SYSTEM_TEMACS
162 #endif
164 /* Some m/MACHINE.h files define this to request special switches in ld. */
165 #ifndef LD_SWITCH_MACHINE
166 #define LD_SWITCH_MACHINE
167 #endif
169 /* This holds special options for linking temacs
170 that should be used for linking anything else. */
171 #ifndef LD_SWITCH_MACHINE_TEMACS
172 #define LD_SWITCH_MACHINE_TEMACS
173 #endif
175 /* Some m/MACHINE.h files define this to request special switches in cc. */
176 #ifndef C_SWITCH_MACHINE
177 #define C_SWITCH_MACHINE
178 #endif
180 /* Some s/SYSTEM.h files define this to request special switches in cc. */
181 #ifndef C_SWITCH_SYSTEM
182 #define C_SWITCH_SYSTEM
183 #endif
185 /* These macros are for switches specifically related to X Windows. */
186 #ifndef C_SWITCH_X_MACHINE
187 #define C_SWITCH_X_MACHINE
188 #endif
190 #ifndef C_SWITCH_X_SYSTEM
191 #define C_SWITCH_X_SYSTEM
192 #endif
194 #ifndef C_SWITCH_X_SITE
195 #define C_SWITCH_X_SITE
196 #endif
198 #ifndef LD_SWITCH_X_SITE
199 #define LD_SWITCH_X_SITE
200 #endif
202 #ifndef LD_SWITCH_X_DEFAULT
203 #define LD_SWITCH_X_DEFAULT
204 #endif
206 /* These can be passed in from config.h to define special load and
207 compile switches needed by individual sites */
208 #ifndef LD_SWITCH_SITE
209 #define LD_SWITCH_SITE
210 #endif
212 #ifndef C_SWITCH_SITE
213 #define C_SWITCH_SITE
214 #endif
216 #ifndef ORDINARY_LINK
218 #ifndef CRT0_COMPILE
219 #define CRT0_COMPILE $(CC) -c $(ALL_CFLAGS) C_SWITCH_ASM
220 #endif
222 #ifndef START_FILES
223 #ifdef NO_REMAP
224 #ifdef COFF_ENCAPSULATE
225 #define START_FILES pre-crt0.o /usr/local/lib/gcc-crt0.o
226 #else /* ! defined (COFF_ENCAPSULATE) */
227 #define START_FILES pre-crt0.o /lib/crt0.o
228 #endif /* ! defined (COFF_ENCAPSULATE) */
229 #else /* ! defined (NO_REMAP) */
230 #define START_FILES ecrt0.o
231 #endif /* ! defined (NO_REMAP) */
232 #endif /* START_FILES */
233 STARTFILES = START_FILES
235 #else /* ORDINARY_LINK */
237 /* config.h might want to force START_FILES anyway */
238 #ifdef START_FILES
239 STARTFILES = START_FILES
240 #endif /* START_FILES */
242 #endif /* not ORDINARY_LINK */
245 /* cc switches needed to make ``asm'' keyword work.
246 Nothing special needed on most machines. */
247 #ifndef C_SWITCH_ASM
248 #define C_SWITCH_ASM
249 #endif
251 #if HAVE_GTK
252 #define USE_GTK
253 TOOLKIT_DEFINES = -DUSE_GTK
254 #endif
256 #ifdef USE_X_TOOLKIT
257 #define USE_@X_TOOLKIT_TYPE@
258 TOOLKIT_DEFINES = -DUSE_@X_TOOLKIT_TYPE@
259 #else
260 #ifndef USE_GTK
261 TOOLKIT_DEFINES =
262 #endif
263 #endif
265 /* DO NOT use -R. There is a special hack described in lastfile.c
266 which is used instead. Some initialized data areas are modified
267 at initial startup, then labeled as part of the text area when
268 Emacs is dumped for the first time, and never changed again. */
270 /* -Demacs is needed to make some files produce the correct version
271 for use in Emacs.
273 -DHAVE_CONFIG_H is needed for some other files to take advantage of
274 the information in ``config.h''. */
276 /* C_SWITCH_X_SITE must come before C_SWITCH_X_MACHINE and C_SWITCH_X_SYSTEM
277 since it may have -I options that should override those two. */
278 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} ${CFLAGS}
279 .c.o:
280 $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
282 #ifndef LIBX10_MACHINE
283 #define LIBX10_MACHINE
284 #endif
286 #ifndef LIBX11_MACHINE
287 #define LIBX11_MACHINE
288 #endif
290 #ifndef LIBX10_SYSTEM
291 #define LIBX10_SYSTEM
292 #endif
294 #ifndef LIBX11_SYSTEM
295 #define LIBX11_SYSTEM
296 #endif
298 #ifndef LIB_X11_LIB
299 #define LIB_X11_LIB -lX11
300 #endif
302 /* xmenu.c should not be compiled on OSX. */
303 #ifndef HAVE_CARBON
304 XMENU_OBJ = xmenu.o
305 #endif
307 #ifdef HAVE_X_WINDOWS
309 XOBJ= xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o
311 #ifdef HAVE_MENUS
313 #ifdef USE_GTK
314 GTK_OBJ= gtkutil.o
315 #endif
317 /* The X Menu stuff is present in the X10 distribution, but missing
318 from X11. If we have X10, just use the installed library;
319 otherwise, use our own copy. */
320 #ifdef HAVE_X11
321 #ifdef USE_X_TOOLKIT
322 OLDXMENU=${lwlibdir}liblw.a
323 LIBXMENU= $(OLDXMENU)
324 #else /* not USE_X_TOOLKIT */
325 OLDXMENU= ${oldXMenudir}libXMenu11.a
326 LIBXMENU= $(OLDXMENU)
327 #endif /* not USE_X_TOOLKIT */
328 #else /* not HAVE_X11 */
329 LIBXMENU= -lXMenu
330 #endif /* not HAVE_X11 */
332 #else /* not HAVE_MENUS */
334 /* Otherwise, do not worry about the menu library at all. */
335 LIBXMENU=
336 #endif /* not HAVE_MENUS */
338 #ifdef USE_X_TOOLKIT
339 #define @X_TOOLKIT_TYPE@
340 #if defined (LUCID) || defined (ATHENA)
341 #if HAVE_XAW3D
342 LIBW= -lXaw3d
343 #else
344 LIBW= -lXaw
345 #endif
346 #endif
347 #ifdef MOTIF
348 #if defined (HAVE_MOTIF_2_1) && defined (HAVE_LIBXP)
349 #define LIB_MOTIF_EXTRA -lXp
350 #else
351 #define LIB_MOTIF_EXTRA
352 #endif
353 #ifdef LIB_MOTIF
354 LIBW= LIB_MOTIF LIB_MOTIF_EXTRA
355 #else
356 LIBW= -lXm LIB_MOTIF_EXTRA
357 #endif
358 #endif
359 #ifdef OPEN_LOOK
360 LIBW= -lXol
361 #endif
363 #ifdef HAVE_X11XTR6
364 #ifdef NEED_LIBW
365 LIBXTR6 = -lSM -lICE -lw
366 #else
367 LIBXTR6 = -lSM -lICE
368 #endif
369 #endif
371 #ifndef LIBXMU
372 #define LIBXMU -lXmu
373 #endif
375 #ifdef LIBXT_STATIC
376 /* We assume the config files have defined STATIC_OPTION
377 since that might depend on the operating system.
378 (Do not forget you need different definitions with and without __GNUC__.) */
379 LIBXT= STATIC_OPTION $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext DYNAMIC_OPTION
380 #else /* not LIBXT_STATIC */
381 LIBXT= $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext
382 #endif /* not LIBXT_STATIC */
384 #else /* not USE_X_TOOLKIT */
386 #ifdef USE_GTK
387 LIBW=@GTK_LIBS@
388 OLDXMENU=
389 LIBXMENU=
390 #endif /* USE_GTK */
392 #ifdef HAVE_X_SM
393 LIBXT=$(LIBW) -lSM -lICE
394 #else
395 LIBXT=$(LIBW)
396 #endif
397 #endif /* not USE_X_TOOLKIT */
399 #if HAVE_XFT
400 XFT_LIBS=@XFT_LIBS@
401 #endif /* HAVE_XFT */
403 #if HAVE_XPM
404 #ifndef LIBXPM
405 #define LIBXPM -lXpm
406 #endif /* not defined LIBXPM */
407 #else /* not HAVE_XPM */
408 #define LIBXPM
409 #endif /* not HAVE_XPM */
411 #if HAVE_JPEG
412 #ifndef LIBJPEG
413 #define LIBJPEG -ljpeg
414 #endif /* not defined LIBJPEG */
415 #else /* not HAVE_JPEG */
416 #define LIBJPEG
417 #endif /* not HAVE_JPEG */
419 #if HAVE_PNG
420 #ifndef LIBPNG
421 #define LIBPNG -lpng -lz -lm
422 #endif /* not defined LIBPNG */
423 #else /* not HAVE_PNG */
424 #define LIBPNG
425 #endif /* not HAVE_PNG */
427 #if HAVE_TIFF
428 #ifndef LIBTIFF
429 #define LIBTIFF -ltiff
430 #endif /* not defined LIBTIFF */
431 #else /* not HAVE_TIFF */
432 #define LIBTIFF
433 #endif /* not HAVE_TIFF */
435 #if HAVE_GIF
436 #ifndef LIBGIF
437 #define LIBGIF -lgif
438 #endif /* not defined LIBGIF */
439 #else /* not HAVE_GIF */
440 #define LIBGIF
441 #endif /* not HAVE_GIF */
443 #ifdef HAVE_X11
444 /* LD_SWITCH_X_DEFAULT comes after everything else that specifies
445 options for where to find X libraries, but before those libraries. */
446 X11_LDFLAGS = LD_SWITCH_X_SITE LD_SWITCH_X_DEFAULT
447 LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) LIBTIFF LIBJPEG LIBPNG LIBGIF LIBXPM LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM $(XFT_LIBS)
448 #else /* not HAVE_X11 */
449 LIBX= $(LIBXMENU) LD_SWITCH_X_SITE -lX10 LIBX10_MACHINE LIBX10_SYSTEM
450 #endif /* not HAVE_X11 */
451 #else /* not HAVE_X_WINDOWS */
452 #endif /* not HAVE_X_WINDOWS */
454 #if HAVE_GPM
455 #ifndef LIBGPM
456 #define LIBGPM -lgpm
457 #endif /* not defined LIBGPM */
458 #else /* not HAVE_GPM */
459 #define LIBGPM
460 #endif /* not HAVE_GPM */
463 LIBSOUND= @LIBSOUND@
464 CFLAGS_SOUND= @CFLAGS_SOUND@
466 RSVG_LIBS= @RSVG_LIBS@
467 RSVG_CFLAGS= @RSVG_CFLAGS@
469 #ifndef ORDINARY_LINK
470 /* Fix linking if compiled with GCC. */
471 #ifdef __GNUC__
473 #if __GNUC__ > 1
475 #ifdef LINKER
476 #define LINKER_WAS_SPECIFIED
477 #endif
479 /* Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
480 places that are difficult to figure out at make time. Fortunately,
481 these same versions allow you to pass arbitrary flags on to the
482 linker, so there is no reason not to use it as a linker.
484 Well, it is not quite perfect. The "-nostdlib" keeps GCC from
485 searching for libraries in its internal directories, so we have to
486 ask GCC explicitly where to find libgcc.a. */
488 #ifndef LINKER
489 #define LINKER $(CC) -nostdlib
490 #endif
492 #ifndef LIB_GCC
493 /* Ask GCC where to find libgcc.a. */
494 #define LIB_GCC `$(CC) -print-libgcc-file-name`
495 #endif /* not LIB_GCC */
497 GNULIB_VAR = LIB_GCC
499 #ifndef LINKER_WAS_SPECIFIED
500 /* GCC passes any argument prefixed with -Xlinker directly to the
501 linker. See prefix-args.c for an explanation of why we do not do
502 this with the shell''s ``for'' construct.
503 Note that some people do not have '.' in their paths, so we must
504 use ./prefix-args. */
505 #define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
506 #else
507 #define YMF_PASS_LDFLAGS(flags) flags
508 #endif
510 #else /* __GNUC__ < 2 */
512 #ifndef LIB_GCC
513 #define LIB_GCC /usr/local/lib/gcc-gnulib
514 #endif /* not LIB_GCC */
515 GNULIB_VAR = `if [ -f LIB_GCC ] ; then echo LIB_GCC; else echo; fi`
516 #endif /* __GNUC__ < 2 */
517 #else /* not __GNUC__ */
518 GNULIB_VAR =
520 #endif /* not __GNUC__ */
521 #endif /* not ORDINARY_LINK */
523 /* Specify address for ld to start loading at,
524 if requested by configuration. */
525 #ifdef LD_TEXT_START_ADDR
526 STARTFLAGS = -T LD_TEXT_START_ADDR -e __start
527 #endif
529 #ifdef ORDINARY_LINK
530 LD = $(CC)
531 #else
532 #ifdef COFF_ENCAPSULATE
533 LD=$(CC) -nostdlib
534 #else /* not ORDINARY_LINK */
535 #ifdef LINKER
536 LD=LINKER
537 #else /* not LINKER */
538 LD=ld
539 #endif /* not LINKER */
540 #endif /* not COFF_ENCAPSULATE */
541 #endif /* not ORDINARY_LINK */
543 /* Flags to pass to LD only for temacs. */
544 /* Do not split this line with a backslash. That can cause trouble with
545 some cpps. */
546 TEMACS_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE LD_SWITCH_MACHINE_TEMACS LD_SWITCH_SITE
548 /* A macro which other sections of Makefile can redefine to munge the
549 flags before they are passed to LD. This is helpful if you have
550 redefined LD to something odd, like "gcc".
551 (The YMF prefix is a holdover from the old name "ymakefile".)
553 #ifndef YMF_PASS_LDFLAGS
554 #define YMF_PASS_LDFLAGS(flags) flags
555 #endif
557 /* Allow config.h to specify a replacement file for unexec.c. */
558 #ifndef UNEXEC
559 #define UNEXEC unexec.o
560 #endif
561 #ifndef UNEXEC_SRC
562 #define UNEXEC_SRC unexec.c
563 #endif
565 INTERVAL_SRC = intervals.h composite.h
567 GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
569 #ifdef MSDOS
570 #ifdef HAVE_X_WINDOWS
571 MSDOS_OBJ = dosfns.o msdos.o
572 #else
573 MSDOS_OBJ = dosfns.o msdos.o w16select.o
574 #endif
575 #endif
577 #ifdef CYGWIN
578 CYGWIN_OBJ = sheap.o
579 #endif
581 #ifdef HAVE_CARBON
582 mac = $(dot)$(dot)/mac/
583 MAC_OBJ = mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o fringe.o image.o
584 emacsapp = $(PWD)/$(mac)Emacs.app/
585 emacsappsrc = ${srcdir}/../mac/Emacs.app/
586 #endif
588 /* lastfile must follow all files
589 whose initialized data areas should be dumped as pure by dump-emacs. */
590 obj= dispnew.o frame.o scroll.o xdisp.o $(XMENU_OBJ) window.o \
591 charset.o coding.o category.o ccl.o \
592 cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ)\
593 emacs.o keyboard.o macros.o keymap.o sysdep.o \
594 buffer.o filelock.o insdel.o marker.o \
595 minibuf.o fileio.o dired.o filemode.o \
596 cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
597 alloc.o data.o doc.o editfns.o callint.o \
598 eval.o floatfns.o fns.o print.o lread.o \
599 abbrev.o syntax.o UNEXEC bytecode.o \
600 process.o callproc.o \
601 region-cache.o sound.o atimer.o \
602 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
603 $(MSDOS_OBJ) $(MAC_OBJ) $(CYGWIN_OBJ)
605 /* Object files used on some machine or other.
606 These go in the DOC file on all machines
607 in case they are needed there. */
608 SOME_MACHINE_OBJECTS = sunfns.o dosfns.o msdos.o \
609 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
610 mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o \
611 w32.o w32bdf.o w32console.o w32fns.o w32heap.o w32inevt.o \
612 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o
615 #ifdef TERMINFO
616 /* Used to be -ltermcap here. If your machine needs that,
617 define LIBS_TERMCAP in the m/MACHINE.h file. */
618 #ifndef LIBS_TERMCAP
619 #define LIBS_TERMCAP -lcurses
620 #endif /* LIBS_TERMCAP */
621 termcapobj = terminfo.o
622 #else /* ! defined (TERMINFO) */
623 #ifndef LIBS_TERMCAP
624 #define LIBS_TERMCAP
625 termcapobj = termcap.o tparam.o
626 #else /* LIBS_TERMCAP */
627 termcapobj = tparam.o
628 #endif /* LIBS_TERMCAP */
629 #endif /* ! defined (TERMINFO) */
632 #ifndef SYSTEM_MALLOC
634 #ifndef DOUG_LEA_MALLOC
635 gmallocobj = gmalloc.o
636 #endif
638 #ifdef REL_ALLOC
639 rallocobj = ralloc.o
640 #endif
642 mallocobj = $(gmallocobj) $(rallocobj) vm-limit.o
644 #endif /* SYSTEM_MALLOC */
647 #ifdef USE_X_TOOLKIT
648 widgetobj= widget.o
649 #else /* not USE_X_TOOLKIT */
650 widgetobj=
651 #endif /* not USE_X_TOOLKIT */
654 /* define otherobj as list of object files that make-docfile
655 should not be told about. */
656 #ifdef CYGWIN
657 /* Cygwin differs because of its unexec(). */
658 otherobj= $(termcapobj) $(gmallocobj) $(rallocobj) lastfile.o vm-limit.o $(widgetobj) $(LIBOBJS)
659 #else
660 otherobj= $(termcapobj) lastfile.o $(mallocobj) $(widgetobj) $(LIBOBJS)
661 #endif
663 #ifdef HAVE_MOUSE
664 #define MOUSE_SUPPORT ${lispsource}mouse.elc \
665 ${lispsource}select.elc ${lispsource}scroll-bar.elc
666 #else
667 #ifdef HAVE_GPM
668 #define MOUSE_SUPPORT ${lispsource}mouse.elc
669 #else
670 #define MOUSE_SUPPORT
671 #endif
672 #endif
674 #ifdef VMS
675 #define VMS_SUPPORT ${lispsource}vmsproc.elc ${lispsource}vms-patch.elc
676 #else
677 #define VMS_SUPPORT
678 #endif
680 #ifdef MSDOS
681 #define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
682 ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc \
683 ${lispsource}international/ccl.elc ${lispsource}international/codepage.elc
685 #else
686 #define MSDOS_SUPPORT
687 #endif
689 #ifdef HAVE_WINDOW_SYSTEM
690 #ifdef HAVE_X_WINDOWS
691 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
692 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
693 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc ${lispsource}x-dnd.elc
694 #else
695 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
696 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
697 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc
698 #endif
699 #else
700 #define WINDOW_SUPPORT
701 #endif
703 #ifdef WINDOWSNT
704 #define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
705 ${lispsource}dos-w32.elc ${lispsource}w32-vars.elc \
706 ${lispsource}w32-fns.elc
707 #else
708 #define WINNT_SUPPORT
709 #endif
711 #ifdef HAVE_WINDOW_SYSTEM
712 #define TOOLTIP_SUPPORT ${lispsource}tooltip.elc
713 #else
714 #define TOOLTIP_SUPPORT
715 #endif
717 /* List of Lisp files loaded into the dumped Emacs. It is arranged
718 like this because it is easier to generate it semi-mechanically from
719 loadup.el this way.
721 Note that this list should not include lisp files which might not
722 be present, like site-load.el and site-init.el; this makefile
723 expects them all to be either present or buildable.
725 Files which are loaded unconditionally should be in shortlisp as well.
726 Files included conditionally here should be included (unconditionally)
727 in SOME_MACHINE_LISP. */
729 lisp= \
730 ${lispsource}abbrev.elc \
731 ${lispsource}buff-menu.elc \
732 ${lispsource}server.elc \
733 ${lispsource}button.elc \
734 ${lispsource}emacs-lisp/byte-run.elc \
735 ${lispsource}cus-face.elc \
736 ${lispsource}cus-start.elc \
737 ${lispsource}custom.elc \
738 ${lispsource}emacs-lisp/backquote.elc \
739 ${lispsource}emacs-lisp/lisp-mode.elc \
740 ${lispsource}emacs-lisp/lisp.elc \
741 ${lispsource}env.elc \
742 ${lispsource}faces.elc \
743 ${lispsource}files.elc \
744 ${lispsource}format.elc \
745 ${lispsource}facemenu.elc \
746 MOUSE_SUPPORT \
747 ${lispsource}emacs-lisp/float-sup.elc \
748 ${lispsource}frame.elc \
749 ${lispsource}termdev.elc \
750 ${lispsource}help.elc \
751 ${lispsource}indent.elc \
752 ${lispsource}isearch.elc \
753 ${lispsource}rfn-eshadow.elc \
754 ${lispsource}loadup.el \
755 ${lispsource}loaddefs.el \
756 ${lispsource}bindings.elc \
757 ${lispsource}emacs-lisp/map-ynp.elc \
758 ${lispsource}menu-bar.elc \
759 ${lispsource}international/mule.elc \
760 ${lispsource}international/mule-conf.el \
761 ${lispsource}international/mule-cmds.elc \
762 ${lispsource}international/characters.elc \
763 ${lispsource}international/ucs-tables.elc \
764 ${lispsource}international/utf-8.elc \
765 ${lispsource}international/utf-16.elc \
766 ${lispsource}international/latin-1.el \
767 ${lispsource}international/latin-2.el \
768 ${lispsource}international/latin-3.el \
769 ${lispsource}international/latin-4.el \
770 ${lispsource}international/latin-5.el \
771 ${lispsource}international/latin-8.el \
772 ${lispsource}international/latin-9.el \
773 ${lispsource}case-table.elc \
774 ${lispsource}language/chinese.elc \
775 ${lispsource}language/cyrillic.elc \
776 ${lispsource}language/indian.elc \
777 ${lispsource}language/devanagari.el \
778 ${lispsource}language/kannada.el \
779 ${lispsource}language/malayalam.el \
780 ${lispsource}language/tamil.el \
781 ${lispsource}language/english.el \
782 ${lispsource}language/ethiopic.elc \
783 ${lispsource}language/european.elc \
784 ${lispsource}language/czech.el \
785 ${lispsource}language/slovak.el \
786 ${lispsource}language/romanian.el \
787 ${lispsource}language/greek.el \
788 ${lispsource}language/hebrew.el \
789 ${lispsource}language/japanese.el \
790 ${lispsource}language/korean.el \
791 ${lispsource}language/lao.el \
792 ${lispsource}language/thai.el \
793 ${lispsource}language/tibetan.elc \
794 ${lispsource}language/vietnamese.elc \
795 ${lispsource}language/misc-lang.el \
796 ${lispsource}language/utf-8-lang.el \
797 ${lispsource}language/georgian.el \
798 ${lispsource}paths.el \
799 ${lispsource}register.elc \
800 ${lispsource}replace.elc \
801 ${lispsource}simple.elc \
802 ${lispsource}startup.elc \
803 ${lispsource}subr.elc \
804 ${lispsource}term/tty-colors.elc \
805 ${lispsource}font-core.elc \
806 ${lispsource}emacs-lisp/syntax.elc \
807 ${lispsource}font-lock.elc \
808 ${lispsource}jit-lock.elc \
809 ${lispsource}textmodes/fill.elc \
810 ${lispsource}textmodes/page.elc \
811 ${lispsource}textmodes/paragraphs.elc \
812 ${lispsource}textmodes/text-mode.elc \
813 ${lispsource}emacs-lisp/timer.elc \
814 ${lispsource}jka-cmpr-hook.elc \
815 ${lispsource}vc-hooks.elc \
816 ${lispsource}ediff-hook.elc \
817 TOOLTIP_SUPPORT \
818 VMS_SUPPORT \
819 MSDOS_SUPPORT \
820 WINNT_SUPPORT \
821 WINDOW_SUPPORT \
822 ${lispsource}widget.elc \
823 ${lispsource}window.elc \
824 ${lispsource}version.el
826 /* These are relative file names for the Lisp files
827 that are loaded unconditionally. This is used in make-docfile.
828 It need not contain the files that are loaded conditionally
829 because SOME_MACHINE_LISP has those. */
830 shortlisp= \
831 ../lisp/abbrev.elc \
832 ../lisp/buff-menu.elc \
833 ../lisp/server.elc \
834 ../lisp/button.elc \
835 ../lisp/emacs-lisp/byte-run.elc \
836 ../lisp/cus-face.elc \
837 ../lisp/cus-start.elc \
838 ../lisp/custom.elc \
839 ../lisp/emacs-lisp/backquote.elc \
840 ../lisp/emacs-lisp/lisp-mode.elc \
841 ../lisp/emacs-lisp/lisp.elc \
842 ../lisp/facemenu.elc \
843 ../lisp/faces.elc \
844 ../lisp/files.elc \
845 ../lisp/emacs-lisp/float-sup.elc \
846 ../lisp/format.elc \
847 ../lisp/frame.elc \
848 ../lisp/termdev.elc \
849 ../lisp/help.elc \
850 ../lisp/indent.elc \
851 ../lisp/isearch.elc \
852 ../lisp/rfn-eshadow.elc \
853 ../lisp/loadup.el \
854 ../lisp/loaddefs.el \
855 ../lisp/bindings.elc \
856 ../lisp/emacs-lisp/map-ynp.elc \
857 ../lisp/env.elc \
858 ../lisp/international/mule.elc \
859 ../lisp/international/mule-conf.el \
860 ../lisp/international/mule-cmds.elc \
861 ../lisp/international/characters.elc \
862 ../lisp/international/ucs-tables.elc \
863 ../lisp/international/utf-8.elc \
864 ../lisp/international/utf-16.elc \
865 ../lisp/international/latin-1.el \
866 ../lisp/international/latin-2.el \
867 ../lisp/international/latin-3.el \
868 ../lisp/international/latin-4.el \
869 ../lisp/international/latin-5.el \
870 ../lisp/international/latin-8.el \
871 ../lisp/international/latin-9.el \
872 ../lisp/case-table.elc \
873 ../lisp/language/chinese.elc \
874 ../lisp/language/cyrillic.elc \
875 ../lisp/language/indian.elc \
876 ../lisp/language/devanagari.el \
877 ../lisp/language/kannada.el \
878 ../lisp/language/malayalam.el \
879 ../lisp/language/tamil.el \
880 ../lisp/language/english.el \
881 ../lisp/language/ethiopic.elc \
882 ../lisp/language/european.elc \
883 ../lisp/language/czech.el \
884 ../lisp/language/slovak.el \
885 ../lisp/language/romanian.el \
886 ../lisp/language/greek.el \
887 ../lisp/language/hebrew.el \
888 ../lisp/language/japanese.el \
889 ../lisp/language/korean.el \
890 ../lisp/language/lao.el \
891 ../lisp/language/thai.el \
892 ../lisp/language/tibetan.elc \
893 ../lisp/language/vietnamese.elc \
894 ../lisp/language/misc-lang.el \
895 ../lisp/language/utf-8-lang.el \
896 ../lisp/language/georgian.el \
897 ../lisp/menu-bar.elc \
898 ../lisp/paths.el \
899 ../lisp/register.elc \
900 ../lisp/replace.elc \
901 ../lisp/simple.elc \
902 ../lisp/startup.elc \
903 ../lisp/subr.elc \
904 ../lisp/term/tty-colors.elc \
905 ../lisp/font-core.elc \
906 ../lisp/emacs-lisp/syntax.elc \
907 ../lisp/font-lock.elc \
908 ../lisp/jit-lock.elc \
909 ../lisp/textmodes/fill.elc \
910 ../lisp/textmodes/page.elc \
911 ../lisp/textmodes/paragraphs.elc \
912 ../lisp/textmodes/text-mode.elc \
913 ../lisp/emacs-lisp/timer.elc \
914 ../lisp/vc-hooks.elc \
915 ../lisp/jka-cmpr-hook.elc \
916 ../lisp/ediff-hook.elc \
917 ../lisp/widget.elc \
918 ../lisp/window.elc \
919 ../lisp/version.el
921 /* Lisp files that may or may not be used.
922 We must unconditionally put them in the DOC file.
923 We use ../lisp/ to start the file names
924 to reduce the size of the argument list for make-docfile
925 for the sake of systems which can''t handle large ones. */
926 SOME_MACHINE_LISP = ${dotdot}/lisp/mouse.elc \
927 ${dotdot}/lisp/select.elc ${dotdot}/lisp/scroll-bar.elc \
928 ${dotdot}/lisp/vmsproc.elc ${dotdot}/lisp/vms-patch.elc \
929 ${dotdot}/lisp/ls-lisp.elc ${dotdot}/lisp/dos-fns.elc \
930 ${dotdot}/lisp/w32-fns.elc ${dotdot}/lisp/dos-w32.elc \
931 ${dotdot}/lisp/disp-table.elc ${dotdot}/lisp/dos-vars.elc \
932 ${dotdot}/lisp/tooltip.elc ${dotdot}/lisp/image.elc \
933 ${dotdot}/lisp/fringe.elc ${dotdot}/lisp/dnd.elc \
934 ${dotdot}/lisp/mwheel.elc ${dotdot}/lisp/tool-bar.elc \
935 ${dotdot}/lisp/x-dnd.elc \
936 ${dotdot}/lisp/international/ccl.elc \
937 ${dotdot}/lisp/international/codepage.elc \
938 ${dotdot}/lisp/international/fontset.elc \
939 ${dotdot}/lisp/mouse.elc \
940 ${dotdot}/lisp/term/x-win.elc
942 /* Construct full set of libraries to be linked.
943 Note that SunOS needs -lm to come before -lc; otherwise, you get
944 duplicated symbols. If the standard libraries were compiled
945 with GCC, we might need gnulib again after them. */
946 LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) $(RSVG_LIBS) LIBGPM \
947 LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
948 LIBS_DEBUG $(GETLOADAVG_LIBS) $(GNULIB_VAR) LIB_MATH LIB_STANDARD \
949 $(GNULIB_VAR)
951 /* Enable recompilation of certain other files depending on system type. */
953 #ifndef OTHER_FILES
954 #define OTHER_FILES
955 #endif
957 #ifndef OBJECTS_MACHINE
958 #define OBJECTS_MACHINE
959 #endif
961 RUN_TEMACS = ./temacs
963 all: emacs${EXEEXT} OTHER_FILES
965 emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
966 #ifdef CANNOT_DUMP
967 rm -f emacs${EXEEXT}
968 ln temacs${EXEEXT} emacs${EXEEXT}
969 #else
970 #ifdef HAVE_SHM
971 LC_ALL=C $(RUN_TEMACS) -nl -batch -l loadup dump
972 #else /* ! defined (HAVE_SHM) */
973 LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
974 #endif /* ! defined (HAVE_SHM) */
975 #endif /* ! defined (CANNOT_DUMP) */
976 -./emacs -q -batch -f list-load-path-shadows
978 /* We run make-docfile twice because the command line may get too long
979 on some systems. */
980 /* ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may
981 or may not be included in ${obj}, but they are always included in
982 ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned
983 for the first time, this prevents any variation between configurations
984 in the contents of the DOC file.
985 Likewise for ${SOME_MACHINE_LISP}. */
986 ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
987 -rm -f ${etc}DOC
988 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
989 ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
991 ${libsrc}make-docfile${EXEEXT}:
992 cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
994 /* Some systems define this to cause parallel Make-ing. */
995 #ifndef MAKE_PARALLEL
996 #define MAKE_PARALLEL
997 #endif
999 temacs${EXEEXT}: MAKE_PARALLEL $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} OBJECTS_MACHINE prefix-args${EXEEXT}
1000 echo "${obj} ${otherobj} " OBJECTS_MACHINE > buildobj.lst
1001 $(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS) \
1002 -o temacs ${STARTFILES} ${obj} ${otherobj} \
1003 OBJECTS_MACHINE ${LIBES}
1005 /* We do not use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE
1006 often contain options that have to do with using Emacs''s crt0,
1007 which are only good with temacs. */
1008 prefix-args${EXEEXT}: prefix-args.c $(config_h)
1009 $(CC) $(ALL_CFLAGS) $(LDFLAGS) ${srcdir}/prefix-args.c -o prefix-args
1011 /* Do not lose if this was not defined. */
1012 #ifndef OLDXMENU_OPTIONS
1013 #define OLDXMENU_OPTIONS
1014 #endif
1016 #if defined (HAVE_X_WINDOWS) && defined (HAVE_X11) && defined (HAVE_MENUS) && ! defined (HAVE_GTK)
1018 /* We use stamp-xmenu with these two deps
1019 to both ensure that lwlib gets remade based on its dependencies
1020 in its own makefile,
1021 and remake temacs if lwlib gets changed by this. */
1022 stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU)
1023 touch stamp-oldxmenu
1024 /* Supply an ordering for parallel make. */
1025 ../src/$(OLDXMENU): ${OLDXMENU}
1027 #ifdef USE_X_TOOLKIT
1028 $(OLDXMENU): really-lwlib
1030 /* Encode the values of these two macros in Make variables,
1031 so we can use $(...) to substitute their values within "...". */
1032 C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
1033 C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
1034 C_SWITCH_SITE_1 = C_SWITCH_SITE
1035 C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
1036 C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
1037 C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
1038 really-lwlib:
1039 cd ${lwlibdir}; ${MAKE} ${MFLAGS} \
1040 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
1041 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
1042 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
1043 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
1044 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
1045 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
1046 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
1047 @true /* make -t should not create really-lwlib. */
1048 .PHONY: really-lwlib
1049 #else /* not USE_X_TOOLKIT */
1050 $(OLDXMENU): really-oldXMenu
1052 /* Encode the values of these two macros in Make variables,
1053 so we can use $(...) to substitute their values within "...". */
1054 C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
1055 C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
1056 C_SWITCH_SITE_1 = C_SWITCH_SITE
1057 C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
1058 C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
1059 C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
1060 really-oldXMenu:
1061 cd ${oldXMenudir}; ${MAKE} ${MFLAGS} OLDXMENU_OPTIONS \
1062 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
1063 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
1064 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
1065 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
1066 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
1067 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
1068 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
1069 @true /* make -t should not create really-oldXMenu. */
1070 .PHONY: really-oldXMenu
1071 #endif /* not USE_X_TOOLKIT */
1072 #else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! HAVE_GTK) */
1074 /* We don''t really need this, but satisfy the dependency. */
1075 stamp-oldxmenu:
1076 touch stamp-oldxmenu
1077 #endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! HAVE_GTK) */
1079 ../config.status:: epaths.in
1080 @echo "The file epaths.h needs to be set up from epaths.in."
1081 @echo "Please run the `configure' script again."
1082 exit 1
1084 ../config.status:: config.in
1085 @echo "The file config.h needs to be set up from config.in."
1086 @echo "Please run the `configure' script again."
1087 exit 1
1089 /* Nearly all the following files depend on lisp.h,
1090 but it is not included as a dependency because
1091 it is so often changed in ways that do not require any recompilation
1092 and so rarely changed in ways that do require any. */
1094 abbrev.o: abbrev.c buffer.h window.h dispextern.h commands.h charset.h \
1095 syntax.h $(config_h)
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
1242 hftctl.o: hftctl.c $(config_h)
1243 sound.o: sound.c dispextern.h $(config_h)
1244 atimer.o: atimer.c atimer.h systime.h $(config_h)
1246 /* The files of Lisp proper */
1248 alloc.o: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h keyboard.h \
1249 blockinput.h atimer.h systime.h charset.h dispextern.h $(config_h) $(INTERVAL_SRC)
1250 bytecode.o: bytecode.c buffer.h syntax.h charset.h window.h dispextern.h \
1251 frame.h xterm.h $(config_h)
1252 data.o: data.c buffer.h puresize.h charset.h syssignal.h keyboard.h frame.h termhooks.h $(config_h)
1253 eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
1254 dispextern.h $(config_h)
1255 floatfns.o: floatfns.c $(config_h)
1256 fns.o: fns.c commands.h $(config_h) frame.h buffer.h charset.h keyboard.h \
1257 keymap.h frame.h window.h dispextern.h $(INTERVAL_SRC) coding.h md5.h \
1258 blockinput.h atimer.h systime.h xterm.h termhooks.h
1259 print.o: print.c process.h frame.h window.h buffer.h keyboard.h charset.h \
1260 $(config_h) dispextern.h termchar.h $(INTERVAL_SRC) msdos.h composite.h \
1261 blockinput.h atimer.h systime.h
1262 lread.o: lread.c commands.h keyboard.h buffer.h epaths.h charset.h \
1263 $(config_h) $(INTERVAL_SRC) termhooks.h coding.h msdos.h
1265 /* Text properties support */
1266 textprop.o: textprop.c buffer.h window.h dispextern.h $(INTERVAL_SRC) \
1267 $(config_h)
1268 intervals.o: intervals.c buffer.h $(INTERVAL_SRC) keyboard.h puresize.h \
1269 keymap.h $(config_h)
1270 composite.o: composite.c buffer.h charset.h $(INTERVAL_SRC) $(config_h)
1272 /* System-specific programs to be made.
1273 OTHER_FILES and OBJECTS_MACHINE
1274 select which of these should be compiled. */
1276 sunfns.o: sunfns.c buffer.h window.h dispextern.h termhooks.h $(config_h)
1278 #ifdef HAVE_CARBON
1279 abbrev.o buffer.o callint.o cmds.o dispnew.o editfns.o fileio.o frame.o \
1280 fontset.o indent.o insdel.o keyboard.o macros.o minibuf.o msdos.o process.o \
1281 scroll.o sysdep.o term.o terminal.o widget.o window.o xdisp.o xfaces.o xfns.o xmenu.o \
1282 xterm.o xselect.o sound.o: macgui.h
1283 mac.o: mac.c process.h sysselect.h blockinput.h atimer.h systime.h charset.h \
1284 coding.h ccl.h $(config_h)
1285 macfns.o: macfns.c charset.h macterm.h macgui.h frame.h window.h buffer.h \
1286 dispextern.h macgui.h fontset.h $(INTERVAL_SRC) keyboard.h blockinput.h \
1287 atimer.h systime.h epaths.h termhooks.h coding.h $(config_h)
1288 macmenu.o: macmenu.c termhooks.h frame.h window.h dispextern.h macgui.h \
1289 keyboard.h blockinput.h atimer.h systime.h buffer.h macterm.h $(config_h)
1290 macterm.o: blockinput.h atimer.h systime.h syssignal.h macterm.h macgui.h \
1291 frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h termopts.h \
1292 termchar.h gnu.h disptab.h buffer.h window.h keyboard.h $(INTERVAL_SRC) \
1293 process.h coding.h $(config_h)
1294 macselect.o: blockinput.h atimer.h systime.h macterm.h macgui.h frame.h \
1295 keymap.h $(config_h)
1297 ${emacsapp}Contents/Resources/English.lproj:
1298 mkdir -p $@
1300 ifneq (${emacsapp},${emacsappsrc})
1301 ${emacsapp}Contents/Info.plist: ${emacsappsrc}Contents/Info.plist
1302 cp $< $@
1303 ${emacsapp}Contents/PkgInfo: ${emacsappsrc}Contents/PkgInfo
1304 cp $< $@
1305 ${emacsapp}Contents/Resources/Emacs.icns: ${emacsappsrc}Contents/Resources/Emacs.icns
1306 mkdir -p ${emacsapp}Contents/Resources
1307 cp $< $@
1308 ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings: ${emacsappsrc}Contents/Resources/English.lproj/InfoPlist.strings
1309 cp $< $@
1310 endif
1312 macosx-bundle: ${emacsapp}Contents/Resources/English.lproj \
1313 ${emacsapp}Contents/Info.plist ${emacsapp}Contents/PkgInfo \
1314 ${emacsapp}Contents/Resources/Emacs.icns \
1315 ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings
1316 macosx-app: macosx-bundle ${emacsapp}Contents/MacOS/Emacs
1317 ${emacsapp}Contents/MacOS/Emacs: emacs${EXEEXT}
1318 mkdir -p ${emacsapp}Contents/MacOS/;
1319 cd ${emacsapp}Contents/MacOS/; cp ../../../../src/emacs${EXEEXT} Emacs${EXEEXT}
1320 #endif
1322 ${libsrc}emacstool${EXEEXT}: ${libsrc}emacstool.c
1323 cd ${libsrc}; ${MAKE} ${MFLAGS} emacstool${EXEEXT}
1324 bootstrapclean:
1325 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
1326 mostlyclean:
1327 rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a
1328 rm -f ../etc/DOC
1329 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
1330 rm -f buildobj.lst
1331 clean: mostlyclean
1332 rm -f emacs-*${EXEEXT} emacs${EXEEXT}
1333 /**/# This is used in making a distribution.
1334 /**/# Do not use it on development directories!
1335 distclean: clean
1336 rm -f epaths.h config.h Makefile Makefile.c config.stamp stamp-oldxmenu ../etc/DOC-*
1337 mv ./.gdbinit ./.gdbinit.save
1338 if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
1339 else mv ./.gdbinit.save ./.gdbinit; fi
1340 maintainer-clean: distclean
1341 @echo "This command is intended for maintainers to use;"
1342 @echo "it deletes files that may require special tools to rebuild."
1343 rm -f TAGS
1344 versionclean:
1345 -rm -f emacs${EXEEXT} emacs-* ../etc/DOC*
1346 extraclean: distclean
1347 -rm -f *~ \#* m/?*~ s/?*~
1349 /* Arrange to make a tags table TAGS-LISP for ../lisp,
1350 plus TAGS for the C files, which includes ../lisp/TAGS by reference. */
1352 ctagsfiles1 = [xyzXYZ]*.[hc]
1353 ctagsfiles2 = [a-wA-W]*.[hc]
1355 TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1356 ../lib-src/etags --include=TAGS-LISP --include=${lwlibdir}/TAGS \
1357 --regex='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \
1358 $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1359 frc:
1360 TAGS-LISP: frc
1361 $(MAKE) -f ${lispdir}Makefile TAGS-LISP ETAGS=../lib-src/etags
1363 $(lwlibdir)TAGS:
1364 (cd $(lwlibdir); $(MAKE) -f $(lwlibdir)Makefile tags ETAGS=../lib-src/etags)
1366 tags: TAGS TAGS-LISP $(lwlibdir)TAGS
1367 .PHONY: tags
1370 /* Bootstrapping. */
1372 bootstrap: bootstrap-emacs${EXEEXT}
1374 /* Dump an Emacs executable named bootstrap-emacs containing the
1375 files from loadup.el in source form. */
1377 bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
1378 #ifdef CANNOT_DUMP
1379 ln temacs${EXEEXT} bootstrap-emacs${EXEEXT}
1380 #else
1381 #ifdef HAVE_SHM
1382 $(RUN_TEMACS) -nl -batch -l loadup bootstrap
1383 #else /* ! defined (HAVE_SHM) */
1384 $(RUN_TEMACS) --batch --load loadup bootstrap
1385 #endif /* ! defined (HAVE_SHM) */
1386 mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
1387 #endif /* ! defined (CANNOT_DUMP) */