* src/fileio.c (Fwrite_region): Delay the defaulting to beg&z to after
[emacs.git] / src / Makefile.in
blob4f9ccb81e7e90ae7e2994cf7cda77e100de557d1
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 of the License, or
11 # (at your option) 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. If not, see <http://www.gnu.org/licenses/>.
22 # Note that this file is edited by msdos/sed1v2.inp for MSDOS. That
23 # script may need modifying in sync with changes made here. Try to
24 # avoid shell-ism because the DOS build has to use the DOS shell.
26 # Don't try to replace the cpp processing using autoconf facilities,
27 # says rms.
28 # Replacing a particular part of the conditionals to work via autoconf
29 # is OK.
30 # Some of the conditionals might be dead now. Finding them and
31 # deleting them would be fine.
34 # Here are the things that we expect ../configure to edit.
35 # We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
36 srcdir=@srcdir@
37 VPATH=@srcdir@
38 CC=@CC@
39 CPP=@CPP@
40 CFLAGS=@CFLAGS@
41 CPPFLAGS=@CPPFLAGS@
42 LDFLAGS=@LDFLAGS@
43 LN_S=@LN_S@
44 EXEEXT=@EXEEXT@
45 version=@version@
46 # Substitute an assignment for the MAKE variable, because
47 # BSD doesn't have it as a default.
48 @SET_MAKE@
49 # Don't use LIBS. configure puts stuff in it that either shouldn't be
50 # linked with Emacs or is duplicated by the cpp stuff below.
51 # LIBS = @LIBS@
52 LIBOBJS = @LIBOBJS@
54 # On Xenix and the IBM RS6000, double-dot gets screwed up.
55 dot = .
56 dotdot = ${dot}${dot}
57 lispsource = ${srcdir}/$(dot)$(dot)/lisp/
58 admindir = $(srcdir)/$(dot)$(dot)/admin/
59 libsrc = $(dot)$(dot)/lib-src/
60 etc = $(dot)$(dot)/etc/
61 oldXMenudir = $(dot)$(dot)/oldXMenu/
62 lwlibdir = $(dot)$(dot)/lwlib/
63 lispdir = $(dot)$(dot)/lisp/
65 # Configuration files for .o files to depend on.
66 M_FILE = ${srcdir}/@machfile@
67 S_FILE = ${srcdir}/@opsysfile@
68 config_h = config.h $(M_FILE) $(S_FILE)
70 # ========================== start of cpp stuff =======================
71 /* From here on, comments must be done in C syntax. */
73 C_SWITCH_SYSTEM=
75 /* just to be sure the sh is used */
76 SHELL=/bin/sh
78 #define THIS_IS_MAKEFILE
79 #define NOT_C_CODE
80 #include "config.h"
82 /* Do not let the file name mktime.c get messed up. */
83 #ifdef mktime
84 #undef mktime
85 #endif
87 /* Use HAVE_X11 as an alias for X11 in this file
88 to avoid problems with X11 as a subdirectory name
89 in -I and other such options which pass through this file. */
91 #ifdef X11
92 #define HAVE_X11
93 #undef X11
94 #endif
96 /* On some machines #define register is done in config;
97 do not let it interfere with this file. */
98 #undef register
100 /* On some systems we may not be able to use the system make command. */
101 #ifdef MAKE_COMMAND
102 MAKE = MAKE_COMMAND
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 (BSD_SYSTEM) && !defined (COFF)))
146 #define LD_SWITCH_SYSTEM -X
147 #else /* (defined (BSD_SYSTEM) && !defined (COFF)) */
148 #define LD_SWITCH_SYSTEM
149 #endif /* (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)
220 #endif
222 #ifndef START_FILES
223 #ifdef NO_REMAP
224 #define START_FILES pre-crt0.o /lib/crt0.o
225 #else /* ! defined (NO_REMAP) */
226 #define START_FILES ecrt0.o
227 #endif /* ! defined (NO_REMAP) */
228 #endif /* START_FILES */
229 STARTFILES = START_FILES
231 #else /* ORDINARY_LINK */
233 /* config.h might want to force START_FILES anyway */
234 #ifdef START_FILES
235 STARTFILES = START_FILES
236 #endif /* START_FILES */
238 #endif /* not ORDINARY_LINK */
241 #ifdef HAVE_DBUS
242 DBUS_CFLAGS = @DBUS_CFLAGS@
243 DBUS_LIBS = @DBUS_LIBS@
244 DBUS_OBJ = dbusbind.o
245 #endif
247 /* DO NOT use -R. There is a special hack described in lastfile.c
248 which is used instead. Some initialized data areas are modified
249 at initial startup, then labeled as part of the text area when
250 Emacs is dumped for the first time, and never changed again. */
252 /* -Demacs is needed to make some files produce the correct version
253 for use in Emacs.
255 -DHAVE_CONFIG_H is needed for some other files to take advantage of
256 the information in ``config.h''. */
258 /* C_SWITCH_X_SITE must come before C_SWITCH_X_MACHINE and C_SWITCH_X_SYSTEM
259 since it may have -I options that should override those two. */
260 ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM C_SWITCH_SYSTEM_TEMACS ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} ${CFLAGS} @FREETYPE_CFLAGS@ @FONTCONFIG_CFLAGS@ @LIBOTF_CFLAGS@ @M17N_FLT_CFLAGS@
261 .c.o:
262 $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
264 #ifndef LIBX11_SYSTEM
265 #define LIBX11_SYSTEM
266 #endif
268 #ifndef LIB_X11_LIB
269 #define LIB_X11_LIB -lX11
270 #endif
272 /* xmenu.c should not be compiled on OSX. */
273 #ifndef HAVE_CARBON
274 XMENU_OBJ = xmenu.o
275 #endif
277 #ifdef HAVE_X_WINDOWS
279 XOBJ= xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o
281 #ifdef HAVE_MENUS
283 #ifdef USE_GTK
284 GTK_OBJ= gtkutil.o
285 #endif
287 /* The X Menu stuff is present in the X10 distribution, but missing
288 from X11. If we have X10, just use the installed library;
289 otherwise, use our own copy. */
290 #ifdef HAVE_X11
291 #ifdef USE_X_TOOLKIT
292 OLDXMENU=${lwlibdir}liblw.a
293 LIBXMENU= $(OLDXMENU)
294 #else /* not USE_X_TOOLKIT */
295 OLDXMENU= ${oldXMenudir}libXMenu11.a
296 LIBXMENU= $(OLDXMENU)
297 #endif /* not USE_X_TOOLKIT */
298 #else /* not HAVE_X11 */
299 LIBXMENU= -lXMenu
300 #endif /* not HAVE_X11 */
302 #else /* not HAVE_MENUS */
304 /* Otherwise, do not worry about the menu library at all. */
305 LIBXMENU=
306 #endif /* not HAVE_MENUS */
308 #ifdef USE_X_TOOLKIT
309 # define @X_TOOLKIT_TYPE@
310 # if HAVE_XAW3D
311 LUCID_LIBW= -lXaw3d
312 # else
313 LUCID_LIBW= -lXaw
314 # endif
315 # if defined (HAVE_MOTIF_2_1) && defined (HAVE_LIBXP)
316 # define LIB_MOTIF_EXTRA -lXp
317 # else
318 # define LIB_MOTIF_EXTRA
319 # endif
320 # ifdef LIB_MOTIF
321 MOTIF_LIBW= LIB_MOTIF LIB_MOTIF_EXTRA
322 # else
323 MOTIF_LIBW= -lXm LIB_MOTIF_EXTRA
324 # endif
325 LIBW=$(@X_TOOLKIT_TYPE@_LIBW)
327 #ifdef HAVE_X11XTR6
328 #ifdef NEED_LIBW
329 LIBXTR6 = -lSM -lICE -lw
330 #else
331 LIBXTR6 = -lSM -lICE
332 #endif
333 #endif
335 #ifndef LIBXMU
336 #define LIBXMU -lXmu
337 #endif
339 #ifdef LIBXT_STATIC
340 /* We assume the config files have defined STATIC_OPTION
341 since that might depend on the operating system.
342 (Do not forget you need different definitions with and without __GNUC__.) */
343 LIBXT= STATIC_OPTION $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext DYNAMIC_OPTION
344 #else /* not LIBXT_STATIC */
345 LIBXT= $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext
346 #endif /* not LIBXT_STATIC */
348 #else /* not USE_X_TOOLKIT */
350 #ifdef USE_GTK
351 LIBW=@GTK_LIBS@
352 OLDXMENU=
353 LIBXMENU=
354 #endif /* USE_GTK */
356 #ifdef HAVE_X_SM
357 LIBXT=$(LIBW) -lSM -lICE
358 #else
359 LIBXT=$(LIBW)
360 #endif
361 #endif /* not USE_X_TOOLKIT */
363 #if HAVE_XFT
364 XFT_LIBS=@XFT_LIBS@
365 #endif /* HAVE_XFT */
367 #if HAVE_XPM
368 #ifndef LIBXPM
369 #define LIBXPM -lXpm
370 #endif /* not defined LIBXPM */
371 #else /* not HAVE_XPM */
372 #define LIBXPM
373 #endif /* not HAVE_XPM */
375 #if HAVE_JPEG
376 #ifndef LIBJPEG
377 #define LIBJPEG -ljpeg
378 #endif /* not defined LIBJPEG */
379 #else /* not HAVE_JPEG */
380 #define LIBJPEG
381 #endif /* not HAVE_JPEG */
383 #if HAVE_PNG
384 #ifndef LIBPNG
385 #define LIBPNG -lpng -lz -lm
386 #endif /* not defined LIBPNG */
387 #else /* not HAVE_PNG */
388 #define LIBPNG
389 #endif /* not HAVE_PNG */
391 #if HAVE_TIFF
392 #ifndef LIBTIFF
393 #define LIBTIFF -ltiff
394 #endif /* not defined LIBTIFF */
395 #else /* not HAVE_TIFF */
396 #define LIBTIFF
397 #endif /* not HAVE_TIFF */
399 #if HAVE_GIF
400 #ifndef LIBGIF
401 #define LIBGIF -lgif
402 #endif /* not defined LIBGIF */
403 #else /* not HAVE_GIF */
404 #define LIBGIF
405 #endif /* not HAVE_GIF */
407 #ifdef HAVE_X11
408 /* LD_SWITCH_X_DEFAULT comes after everything else that specifies
409 options for where to find X libraries, but before those libraries. */
410 X11_LDFLAGS = LD_SWITCH_X_SITE LD_SWITCH_X_DEFAULT
411 LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) LIBTIFF LIBJPEG LIBPNG LIBGIF LIBXPM LIB_X11_LIB LIBX11_SYSTEM $(XFT_LIBS)
412 #else /* not HAVE_X11 */
413 LIBX= $(LIBXMENU) LD_SWITCH_X_SITE
414 #endif /* not HAVE_X11 */
415 #else /* not HAVE_X_WINDOWS */
416 #endif /* not HAVE_X_WINDOWS */
418 #if HAVE_GPM
419 #ifndef LIBGPM
420 #define LIBGPM -lgpm
421 #endif /* not defined LIBGPM */
422 #else /* not HAVE_GPM */
423 #define LIBGPM
424 #endif /* not HAVE_GPM */
426 #if HAVE_LIBRESOLV
427 #ifndef LIBRESOLV
428 #define LIBRESOLV -lresolv
429 #endif /* not defined LIBRESOLV */
430 #else /* not HAVE_LIBRESOLV */
431 #define LIBRESOLV
432 #endif /* not HAVE_LIBRESOLV */
434 LIBSOUND= @LIBSOUND@
435 CFLAGS_SOUND= @CFLAGS_SOUND@
437 RSVG_LIBS= @RSVG_LIBS@
438 RSVG_CFLAGS= @RSVG_CFLAGS@
440 #ifndef ORDINARY_LINK
441 /* Fix linking if compiled with GCC. */
442 #ifdef __GNUC__
444 #ifdef LINKER
445 #define LINKER_WAS_SPECIFIED
446 #endif
448 /* Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
449 places that are difficult to figure out at make time. Fortunately,
450 these same versions allow you to pass arbitrary flags on to the
451 linker, so there is no reason not to use it as a linker.
453 Well, it is not quite perfect. The "-nostdlib" keeps GCC from
454 searching for libraries in its internal directories, so we have to
455 ask GCC explicitly where to find libgcc.a. */
457 #ifndef LINKER
458 #define LINKER $(CC) -nostdlib
459 #endif
461 #ifndef LIB_GCC
462 /* Ask GCC where to find libgcc.a. */
463 #define LIB_GCC `$(CC) -print-libgcc-file-name`
464 #endif /* not LIB_GCC */
466 GNULIB_VAR = LIB_GCC
468 #ifndef LINKER_WAS_SPECIFIED
469 /* GCC passes any argument prefixed with -Xlinker directly to the
470 linker. See prefix-args.c for an explanation of why we do not do
471 this with the shell''s ``for'' construct.
472 Note that some people do not have '.' in their paths, so we must
473 use ./prefix-args. */
474 #define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
475 #else
476 #define YMF_PASS_LDFLAGS(flags) flags
477 #endif
479 #else /* not __GNUC__ */
480 GNULIB_VAR =
482 #endif /* not __GNUC__ */
483 #endif /* not ORDINARY_LINK */
485 #ifdef ORDINARY_LINK
486 LD = $(CC)
487 #else
488 #ifdef LINKER
489 LD=LINKER
490 #else /* not LINKER */
491 LD=ld
492 #endif /* not LINKER */
493 #endif /* not ORDINARY_LINK */
495 /* Flags to pass to LD only for temacs. */
496 /* Do not split this line with a backslash. That can cause trouble with
497 some cpps. */
498 TEMACS_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE LD_SWITCH_MACHINE_TEMACS LD_SWITCH_SITE
500 /* A macro which other sections of Makefile can redefine to munge the
501 flags before they are passed to LD. This is helpful if you have
502 redefined LD to something odd, like "gcc".
503 (The YMF prefix is a holdover from the old name "ymakefile".)
505 #ifndef YMF_PASS_LDFLAGS
506 #define YMF_PASS_LDFLAGS(flags) flags
507 #endif
509 /* Allow config.h to specify a replacement file for unexec.c. */
510 #ifndef UNEXEC
511 #define UNEXEC unexec.o
512 #endif
513 #ifndef UNEXEC_SRC
514 #define UNEXEC_SRC unexec.c
515 #endif
517 INTERVAL_SRC = intervals.h composite.h
519 GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
521 #ifdef MSDOS
522 #ifdef HAVE_X_WINDOWS
523 MSDOS_OBJ = dosfns.o msdos.o
524 #else
525 MSDOS_OBJ = dosfns.o msdos.o w16select.o
526 #endif
527 #endif
529 #ifdef CYGWIN
530 CYGWIN_OBJ = sheap.o
531 #endif
533 #ifdef HAVE_CARBON
534 mac = $(dot)$(dot)/mac/
535 MAC_OBJ = mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o fringe.o image.o mactoolbox.o
536 emacsapp = $(PWD)/$(mac)Emacs.app/
537 emacsappsrc = ${srcdir}/../mac/Emacs.app/
538 #endif
540 #ifdef HAVE_WINDOW_SYSTEM
541 #ifdef HAVE_X_WINDOWS
542 #if defined (HAVE_XFT)
543 FONT_DRIVERS = xfont.o ftfont.o xftfont.o ftxfont.o
544 #elif defined (HAVE_FREETYPE)
545 FONT_DRIVERS = xfont.o ftfont.o ftxfont.o
546 #else /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
547 FONT_DRIVERS = xfont.o
548 #endif /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
549 #endif /* HAVE_X_WINDOWS */
550 #endif /* HAVE_WINDOW_SYSTEM */
552 /* lastfile must follow all files
553 whose initialized data areas should be dumped as pure by dump-emacs. */
554 obj= dispnew.o frame.o scroll.o xdisp.o $(XMENU_OBJ) window.o \
555 charset.o coding.o category.o ccl.o character.o chartab.o \
556 cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \
557 emacs.o keyboard.o macros.o keymap.o sysdep.o \
558 buffer.o filelock.o insdel.o marker.o \
559 minibuf.o fileio.o dired.o filemode.o \
560 cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
561 alloc.o data.o doc.o editfns.o callint.o \
562 eval.o floatfns.o fns.o font.o print.o lread.o \
563 syntax.o UNEXEC bytecode.o \
564 process.o callproc.o \
565 region-cache.o sound.o atimer.o \
566 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
567 $(MSDOS_OBJ) $(MAC_OBJ) $(CYGWIN_OBJ) $(FONT_DRIVERS)
569 /* Object files used on some machine or other.
570 These go in the DOC file on all machines
571 in case they are needed there. */
572 SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
573 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
574 mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o \
575 w32.o w32bdf.o w32console.o w32fns.o w32heap.o w32inevt.o \
576 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_DRIVERS)
579 #ifdef TERMINFO
580 /* Used to be -ltermcap here. If your machine needs that,
581 define LIBS_TERMCAP in the m/MACHINE.h file. */
582 #ifndef LIBS_TERMCAP
583 #define LIBS_TERMCAP -lcurses
584 #endif /* LIBS_TERMCAP */
585 termcapobj = terminfo.o
586 #else /* ! defined (TERMINFO) */
587 #ifndef LIBS_TERMCAP
588 #define LIBS_TERMCAP
589 termcapobj = termcap.o tparam.o
590 #else /* LIBS_TERMCAP */
591 termcapobj = tparam.o
592 #endif /* LIBS_TERMCAP */
593 #endif /* ! defined (TERMINFO) */
596 #ifndef SYSTEM_MALLOC
598 #ifndef DOUG_LEA_MALLOC
599 gmallocobj = gmalloc.o
600 #endif
602 #ifdef REL_ALLOC
603 rallocobj = ralloc.o
604 #endif
606 mallocobj = $(gmallocobj) $(rallocobj) vm-limit.o
608 #endif /* SYSTEM_MALLOC */
611 #ifdef USE_X_TOOLKIT
612 widgetobj= widget.o
613 #else /* not USE_X_TOOLKIT */
614 widgetobj=
615 #endif /* not USE_X_TOOLKIT */
618 /* define otherobj as list of object files that make-docfile
619 should not be told about. */
620 #ifdef CYGWIN
621 /* Cygwin differs because of its unexec(). */
622 otherobj= $(termcapobj) $(gmallocobj) $(rallocobj) lastfile.o vm-limit.o $(widgetobj) $(LIBOBJS)
623 #else
624 otherobj= $(termcapobj) lastfile.o $(mallocobj) $(widgetobj) $(LIBOBJS)
625 #endif
627 #ifdef HAVE_MOUSE
628 #define MOUSE_SUPPORT ${lispsource}mouse.elc \
629 ${lispsource}select.elc ${lispsource}scroll-bar.elc
630 #else
631 #ifdef HAVE_GPM
632 #define MOUSE_SUPPORT ${lispsource}mouse.elc
633 #else
634 #define MOUSE_SUPPORT
635 #endif
636 #endif
638 #ifdef VMS
639 #define VMS_SUPPORT ${lispsource}vmsproc.elc ${lispsource}vms-patch.elc
640 #else
641 #define VMS_SUPPORT
642 #endif
644 #ifdef MSDOS
645 #define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
646 ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc \
647 ${lispsource}international/ccl.elc ${lispsource}international/codepage.elc
649 #else
650 #define MSDOS_SUPPORT
651 #endif
653 #ifdef HAVE_WINDOW_SYSTEM
654 #ifdef HAVE_X_WINDOWS
655 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
656 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
657 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc ${lispsource}x-dnd.elc
658 #else
659 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
660 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
661 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc
662 #endif
663 #else
664 #define WINDOW_SUPPORT
665 #endif
667 #ifdef WINDOWSNT
668 #define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
669 ${lispsource}dos-w32.elc ${lispsource}w32-vars.elc \
670 ${lispsource}w32-fns.elc
671 #else
672 #define WINNT_SUPPORT
673 #endif
675 #ifdef HAVE_WINDOW_SYSTEM
676 #define TOOLTIP_SUPPORT ${lispsource}tooltip.elc
677 #else
678 #define TOOLTIP_SUPPORT
679 #endif
681 /* List of Lisp files loaded into the dumped Emacs. It is arranged
682 like this because it is easier to generate it semi-mechanically from
683 loadup.el this way.
685 Note that this list should not include lisp files which might not
686 be present, like site-load.el and site-init.el; this makefile
687 expects them all to be either present or buildable.
689 Files which are loaded unconditionally should be in shortlisp as well.
690 Files included conditionally here should be included (unconditionally)
691 in SOME_MACHINE_LISP. */
693 lisp= \
694 ${lispsource}abbrev.elc \
695 ${lispsource}buff-menu.elc \
696 ${lispsource}button.elc \
697 ${lispsource}emacs-lisp/byte-run.elc \
698 ${lispsource}composite.elc \
699 ${lispsource}cus-face.elc \
700 ${lispsource}cus-start.elc \
701 ${lispsource}custom.elc \
702 ${lispsource}emacs-lisp/backquote.elc \
703 ${lispsource}emacs-lisp/lisp-mode.elc \
704 ${lispsource}emacs-lisp/lisp.elc \
705 ${lispsource}env.elc \
706 ${lispsource}faces.elc \
707 ${lispsource}files.elc \
708 ${lispsource}format.elc \
709 ${lispsource}facemenu.elc \
710 MOUSE_SUPPORT \
711 ${lispsource}emacs-lisp/float-sup.elc \
712 ${lispsource}frame.elc \
713 ${lispsource}help.elc \
714 ${lispsource}indent.elc \
715 ${lispsource}isearch.elc \
716 ${lispsource}rfn-eshadow.elc \
717 ${lispsource}loadup.el \
718 ${lispsource}loaddefs.el \
719 ${lispsource}bindings.elc \
720 ${lispsource}emacs-lisp/map-ynp.elc \
721 ${lispsource}menu-bar.elc \
722 ${lispsource}international/mule.elc \
723 ${lispsource}international/mule-conf.el \
724 ${lispsource}international/mule-cmds.elc \
725 ${lispsource}international/characters.elc \
726 ${lispsource}international/charprop.el \
727 ${lispsource}case-table.elc \
728 ${lispsource}language/chinese.el \
729 ${lispsource}language/cyrillic.el \
730 ${lispsource}language/indian.el \
731 ${lispsource}language/sinhala.el \
732 ${lispsource}language/english.el \
733 ${lispsource}language/ethiopic.elc \
734 ${lispsource}language/european.elc \
735 ${lispsource}language/czech.el \
736 ${lispsource}language/slovak.el \
737 ${lispsource}language/romanian.el \
738 ${lispsource}language/greek.el \
739 ${lispsource}language/hebrew.el \
740 ${lispsource}language/japanese.el \
741 ${lispsource}language/korean.el \
742 ${lispsource}language/lao.el \
743 ${lispsource}language/cham.el \
744 ${lispsource}language/tai-viet.el \
745 ${lispsource}language/thai.el \
746 ${lispsource}language/tibetan.elc \
747 ${lispsource}language/vietnamese.el \
748 ${lispsource}language/misc-lang.el \
749 ${lispsource}language/utf-8-lang.el \
750 ${lispsource}language/georgian.el \
751 ${lispsource}language/khmer.el \
752 ${lispsource}language/burmese.el \
753 ${lispsource}paths.el \
754 ${lispsource}register.elc \
755 ${lispsource}replace.elc \
756 ${lispsource}simple.elc \
757 ${lispsource}minibuffer.elc \
758 ${lispsource}startup.elc \
759 ${lispsource}subr.elc \
760 ${lispsource}term/tty-colors.elc \
761 ${lispsource}font-core.elc \
762 ${lispsource}emacs-lisp/syntax.elc \
763 ${lispsource}font-lock.elc \
764 ${lispsource}jit-lock.elc \
765 ${lispsource}textmodes/fill.elc \
766 ${lispsource}textmodes/page.elc \
767 ${lispsource}textmodes/paragraphs.elc \
768 ${lispsource}textmodes/text-mode.elc \
769 ${lispsource}emacs-lisp/timer.elc \
770 ${lispsource}jka-cmpr-hook.elc \
771 ${lispsource}vc-hooks.elc \
772 ${lispsource}ediff-hook.elc \
773 ${lispsource}epa-hook.elc \
774 TOOLTIP_SUPPORT \
775 VMS_SUPPORT \
776 MSDOS_SUPPORT \
777 WINNT_SUPPORT \
778 WINDOW_SUPPORT \
779 ${lispsource}widget.elc \
780 ${lispsource}window.elc \
781 ${lispsource}version.el
783 /* These are relative file names for the Lisp files
784 that are loaded unconditionally. This is used in make-docfile.
785 It need not contain the files that are loaded conditionally
786 because SOME_MACHINE_LISP has those. */
787 shortlisp= \
788 ../lisp/abbrev.elc \
789 ../lisp/buff-menu.elc \
790 ../lisp/button.elc \
791 ../lisp/emacs-lisp/byte-run.elc \
792 ../lisp/composite.elc \
793 ../lisp/cus-face.elc \
794 ../lisp/cus-start.elc \
795 ../lisp/custom.elc \
796 ../lisp/emacs-lisp/backquote.elc \
797 ../lisp/emacs-lisp/lisp-mode.elc \
798 ../lisp/emacs-lisp/lisp.elc \
799 ../lisp/facemenu.elc \
800 ../lisp/faces.elc \
801 ../lisp/files.elc \
802 ../lisp/emacs-lisp/float-sup.elc \
803 ../lisp/format.elc \
804 ../lisp/frame.elc \
805 ../lisp/help.elc \
806 ../lisp/indent.elc \
807 ../lisp/isearch.elc \
808 ../lisp/rfn-eshadow.elc \
809 ../lisp/loadup.el \
810 ../lisp/loaddefs.el \
811 ../lisp/bindings.elc \
812 ../lisp/emacs-lisp/map-ynp.elc \
813 ../lisp/env.elc \
814 ../lisp/international/mule.elc \
815 ../lisp/international/mule-conf.el \
816 ../lisp/international/mule-cmds.elc \
817 ../lisp/international/characters.elc \
818 ../lisp/case-table.elc \
819 ../lisp/language/chinese.el \
820 ../lisp/language/cyrillic.el \
821 ../lisp/language/indian.el \
822 ../lisp/language/sinhala.el \
823 ../lisp/language/english.el \
824 ../lisp/language/ethiopic.elc \
825 ../lisp/language/european.elc \
826 ../lisp/language/czech.el \
827 ../lisp/language/slovak.el \
828 ../lisp/language/romanian.el \
829 ../lisp/language/greek.el \
830 ../lisp/language/hebrew.el \
831 ../lisp/language/japanese.el \
832 ../lisp/language/korean.el \
833 ../lisp/language/lao.el \
834 ../lisp/language/cham.el \
835 ../lisp/language/tai-viet.el \
836 ../lisp/language/thai.el \
837 ../lisp/language/tibetan.elc \
838 ../lisp/language/vietnamese.el \
839 ../lisp/language/misc-lang.el \
840 ../lisp/language/utf-8-lang.el \
841 ../lisp/language/georgian.el \
842 ../lisp/language/khmer.el \
843 ../lisp/language/burmese.el \
844 ../lisp/menu-bar.elc \
845 ../lisp/paths.el \
846 ../lisp/register.elc \
847 ../lisp/replace.elc \
848 ../lisp/simple.elc \
849 ../lisp/minibuffer.elc \
850 ../lisp/startup.elc \
851 ../lisp/subr.elc \
852 ../lisp/term/tty-colors.elc \
853 ../lisp/font-core.elc \
854 ../lisp/emacs-lisp/syntax.elc \
855 ../lisp/font-lock.elc \
856 ../lisp/jit-lock.elc \
857 ../lisp/textmodes/fill.elc \
858 ../lisp/textmodes/page.elc \
859 ../lisp/textmodes/paragraphs.elc \
860 ../lisp/textmodes/text-mode.elc \
861 ../lisp/emacs-lisp/timer.elc \
862 ../lisp/vc-hooks.elc \
863 ../lisp/jka-cmpr-hook.elc \
864 ../lisp/ediff-hook.elc \
865 ../lisp/epa-hook.elc \
866 ../lisp/widget.elc \
867 ../lisp/window.elc \
868 ../lisp/version.el
870 /* Lisp files that may or may not be used.
871 We must unconditionally put them in the DOC file.
872 We use ../lisp/ to start the file names
873 to reduce the size of the argument list for make-docfile
874 for the sake of systems which can''t handle large ones. */
875 SOME_MACHINE_LISP = ${dotdot}/lisp/mouse.elc \
876 ${dotdot}/lisp/select.elc ${dotdot}/lisp/scroll-bar.elc \
877 VMS_SUPPORT \
878 ${dotdot}/lisp/ls-lisp.elc ${dotdot}/lisp/dos-fns.elc \
879 ${dotdot}/lisp/w32-fns.elc ${dotdot}/lisp/dos-w32.elc \
880 ${dotdot}/lisp/disp-table.elc ${dotdot}/lisp/dos-vars.elc \
881 ${dotdot}/lisp/tooltip.elc ${dotdot}/lisp/image.elc \
882 ${dotdot}/lisp/fringe.elc ${dotdot}/lisp/dnd.elc \
883 ${dotdot}/lisp/mwheel.elc ${dotdot}/lisp/tool-bar.elc \
884 ${dotdot}/lisp/x-dnd.elc \
885 ${dotdot}/lisp/international/ccl.elc \
886 ${dotdot}/lisp/international/codepage.elc \
887 ${dotdot}/lisp/international/fontset.elc \
888 ${dotdot}/lisp/mouse.elc \
889 ${dotdot}/lisp/term/x-win.elc
891 /* Construct full set of libraries to be linked.
892 Note that SunOS needs -lm to come before -lc; otherwise, you get
893 duplicated symbols. If the standard libraries were compiled
894 with GCC, we might need gnulib again after them. */
895 LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) $(RSVG_LIBS) $(DBUS_LIBS) \
896 LIBGPM LIBRESOLV LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
897 LIBS_DEBUG $(GETLOADAVG_LIBS) \
898 @FREETYPE_LIBS@ @FONTCONFIG_LIBS@ @LIBOTF_LIBS@ @M17N_FLT_LIBS@ \
899 $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR)
901 /* Enable recompilation of certain other files depending on system type. */
903 #ifndef OTHER_FILES
904 #define OTHER_FILES
905 #endif
907 #ifndef OBJECTS_MACHINE
908 #define OBJECTS_MACHINE
909 #endif
911 #ifdef HAVE_SHM
912 RUN_TEMACS = `/bin/pwd`/temacs -nl
913 #else
914 RUN_TEMACS = `/bin/pwd`/temacs
915 #endif
917 all: emacs${EXEEXT} OTHER_FILES
919 emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
920 #ifdef CANNOT_DUMP
921 rm -f emacs${EXEEXT}
922 ln temacs${EXEEXT} emacs${EXEEXT}
923 #else
924 LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
925 #endif /* ! defined (CANNOT_DUMP) */
926 -./emacs -q -batch -f list-load-path-shadows
928 /* We run make-docfile twice because the command line may get too long
929 on some systems. */
930 /* ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may
931 or may not be included in ${obj}, but they are always included in
932 ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned
933 for the first time, this prevents any variation between configurations
934 in the contents of the DOC file.
935 Likewise for ${SOME_MACHINE_LISP}. */
936 ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
937 -rm -f ${etc}DOC
938 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
939 ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
941 ${libsrc}make-docfile${EXEEXT}:
942 cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
944 temacs${EXEEXT}: $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} OBJECTS_MACHINE prefix-args${EXEEXT}
945 echo "${obj} ${otherobj} " OBJECTS_MACHINE > buildobj.lst
946 $(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS) \
947 -o temacs ${STARTFILES} ${obj} ${otherobj} \
948 OBJECTS_MACHINE ${LIBES}
950 /* We do not use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE
951 often contain options that have to do with using Emacs''s crt0,
952 which are only good with temacs. */
953 prefix-args${EXEEXT}: prefix-args.c $(config_h)
954 $(CC) $(ALL_CFLAGS) $(LDFLAGS) ${srcdir}/prefix-args.c -o prefix-args
956 #if defined (HAVE_X_WINDOWS) && defined (HAVE_X11) && defined (HAVE_MENUS) && ! defined (USE_GTK)
958 /* We use stamp-xmenu with these two deps
959 to both ensure that lwlib gets remade based on its dependencies
960 in its own makefile,
961 and remake temacs if lwlib gets changed by this. */
962 stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU)
963 touch stamp-oldxmenu
964 /* Supply an ordering for parallel make. */
965 ../src/$(OLDXMENU): ${OLDXMENU}
967 /* Encode the values of these two macros in Make variables,
968 so we can use $(...) to substitute their values within "...". */
969 C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
970 C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
971 C_SWITCH_SITE_1 = C_SWITCH_SITE
972 C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
973 C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
974 C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
976 #ifdef USE_X_TOOLKIT
977 $(OLDXMENU): really-lwlib
979 really-lwlib:
980 cd ${lwlibdir}; ${MAKE} ${MFLAGS} \
981 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
982 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
983 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
984 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
985 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
986 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
987 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
988 @true /* make -t should not create really-lwlib. */
989 .PHONY: really-lwlib
990 #else /* not USE_X_TOOLKIT */
991 $(OLDXMENU): really-oldXMenu
993 really-oldXMenu:
994 cd ${oldXMenudir}; ${MAKE} ${MFLAGS} \
995 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
996 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
997 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
998 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
999 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
1000 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
1001 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
1002 @true /* make -t should not create really-oldXMenu. */
1003 .PHONY: really-oldXMenu
1004 #endif /* not USE_X_TOOLKIT */
1005 #else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
1007 /* We don''t really need this, but satisfy the dependency. */
1008 stamp-oldxmenu:
1009 touch stamp-oldxmenu
1010 #endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
1012 ../config.status:: epaths.in
1013 @echo "The file epaths.h needs to be set up from epaths.in."
1014 @echo "Please run the `configure' script again."
1015 exit 1
1017 ../config.status:: config.in
1018 @echo "The file config.h needs to be set up from config.in."
1019 @echo "Please run the `configure' script again."
1020 exit 1
1022 /* Nearly all the following files depend on lisp.h,
1023 but it is not included as a dependency because
1024 it is so often changed in ways that do not require any recompilation
1025 and so rarely changed in ways that do require any. */
1027 abbrev.o: abbrev.c buffer.h window.h dispextern.h commands.h character.h \
1028 syntax.h $(config_h)
1029 buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \
1030 dispextern.h $(INTERVAL_SRC) blockinput.h atimer.h systime.h character.h \
1031 $(config_h)
1032 callint.o: callint.c window.h commands.h buffer.h keymap.h \
1033 keyboard.h dispextern.h $(config_h)
1034 callproc.o: callproc.c epaths.h buffer.h commands.h $(config_h) \
1035 process.h systty.h syssignal.h character.h coding.h ccl.h msdos.h \
1036 composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h
1037 casefiddle.o: casefiddle.c syntax.h commands.h buffer.h character.h \
1038 composite.h \
1039 charset.h keymap.h $(config_h)
1040 casetab.o: casetab.c buffer.h $(config_h)
1041 category.o: category.c category.h buffer.h charset.h keymap.h \
1042 character.h $(config_h)
1043 ccl.o: ccl.c ccl.h charset.h character.h coding.h $(config_h)
1044 character.o: character.c character.h buffer.h charset.h composite.h disptab.h \
1045 $(config.h)
1046 charset.o: charset.c charset.h character.h buffer.h coding.h composite.h \
1047 disptab.h $(config_h)
1048 chartab.o: charset.h character.h $(config.h)
1049 coding.o: coding.c coding.h ccl.h buffer.h character.h charset.h intervals.h composite.h \
1050 window.h dispextern.h frame.h termhooks.h $(config_h)
1051 cm.o: cm.c frame.h cm.h termhooks.h termchar.h $(config_h)
1052 cmds.o: cmds.c syntax.h buffer.h character.h commands.h window.h $(config_h) \
1053 msdos.h dispextern.h keyboard.h keymap.h
1054 pre-crt0.o: pre-crt0.c
1055 ecrt0.o: ecrt0.c $(config_h)
1056 CRT0_COMPILE ${srcdir}/ecrt0.c
1057 dired.o: dired.c commands.h buffer.h $(config_h) character.h charset.h \
1058 coding.h regex.h systime.h blockinput.h atimer.h
1059 dispnew.o: dispnew.c systime.h commands.h process.h frame.h \
1060 window.h buffer.h dispextern.h termchar.h termopts.h termhooks.h cm.h \
1061 disptab.h indent.h intervals.h \
1062 xterm.h blockinput.h atimer.h character.h msdos.h composite.h keyboard.h \
1063 $(config_h)
1064 doc.o: doc.c $(config_h) epaths.h buffer.h keyboard.h keymap.h character.h
1065 doprnt.o: doprnt.c character.h $(config_h)
1066 dosfns.o: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
1067 msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \
1068 $(config_h)
1069 editfns.o: editfns.c window.h buffer.h systime.h $(INTERVAL_SRC) character.h \
1070 coding.h dispextern.h frame.h blockinput.h atimer.h $(config_h)
1071 emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
1072 termhooks.h buffer.h atimer.h systime.h $(INTERVAL_SRC) $(config_h) \
1073 window.h dispextern.h keyboard.h keymap.h
1074 fileio.o: fileio.c window.h buffer.h systime.h $(INTERVAL_SRC) character.h \
1075 coding.h msdos.h dispextern.h blockinput.h atimer.h $(config_h)
1076 filelock.o: filelock.c buffer.h character.h charset.h coding.h systime.h \
1077 epaths.h $(config_h)
1078 filemode.o: filemode.c $(config_h)
1079 frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
1080 blockinput.h atimer.h systime.h buffer.h character.h fontset.h font.h \
1081 msdos.h dosfns.h dispextern.h w32term.h macterm.h termchar.h $(config_h)
1082 fringe.o: fringe.c dispextern.h frame.h window.h buffer.h termhooks.h $(config_h)
1083 font.o: font.c dispextern.h frame.h window.h ccl.h character.h charset.h \
1084 font.h $(config_h)
1085 ftfont.o: dispextern.h frame.h character.h charset.h font.h $(config_h)
1086 fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h character.h \
1087 charset.h frame.h keyboard.h termhooks.h font.h $(config_h)
1088 getloadavg.o: getloadavg.c $(config_h)
1089 image.o: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
1090 systime.h xterm.h w32term.h w32gui.h macterm.h macgui.h font.h \
1091 $(config_h)
1092 indent.o: indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h \
1093 termopts.h disptab.h region-cache.h character.h category.h composite.h \
1094 dispextern.h keyboard.h
1095 insdel.o: insdel.c window.h buffer.h $(INTERVAL_SRC) blockinput.h character.h \
1096 dispextern.h atimer.h systime.h region-cache.h $(config_h)
1097 keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h character.h \
1098 commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
1099 systime.h dispextern.h syntax.h $(INTERVAL_SRC) blockinput.h \
1100 atimer.h xterm.h puresize.h msdos.h keymap.h w32term.h macterm.h $(config_h)
1101 keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
1102 atimer.h systime.h puresize.h character.h intervals.h keymap.h window.h \
1103 $(config_h)
1104 lastfile.o: lastfile.c $(config_h)
1105 macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h \
1106 dispextern.h $(config_h)
1107 malloc.o: malloc.c $(config_h)
1108 gmalloc.o: gmalloc.c $(config_h)
1109 ralloc.o: ralloc.c $(config_h)
1110 vm-limit.o: vm-limit.c mem-limits.h $(config_h)
1111 marker.o: marker.c buffer.h character.h $(config_h)
1112 md5.o: md5.c md5.h $(config_h)
1113 minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h \
1114 buffer.h commands.h character.h msdos.h $(INTERVAL_SRC) keymap.h \
1115 termhooks.h $(config_h)
1116 mktime.o: mktime.c $(config_h)
1117 msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
1118 termopts.h termchar.h character.h coding.h ccl.h disptab.h window.h \
1119 keyboard.h intervals.h buffer.h commands.h blockinput.h atimer.h $(config_h)
1120 process.o: process.c process.h buffer.h window.h termhooks.h termopts.h \
1121 commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
1122 blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
1123 keyboard.h $(config_h)
1124 regex.o: regex.c syntax.h buffer.h $(config_h) regex.h category.h character.h \
1125 charset.h
1126 region-cache.o: region-cache.c buffer.h region-cache.h $(config_h)
1127 scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
1128 termhooks.h $(config_h)
1129 search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
1130 blockinput.h atimer.h systime.h category.h character.h charset.h \
1131 composite.h $(INTERVAL_SRC) \
1132 $(config_h)
1133 strftime.o: strftime.c $(config_h)
1134 syntax.o: syntax.c syntax.h buffer.h commands.h category.h character.h \
1135 composite.h keymap.h regex.h $(INTERVAL_SRC) $(config_h)
1136 sysdep.o: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
1137 process.h dispextern.h termhooks.h termchar.h termopts.h \
1138 frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h $(config_h)
1139 term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \
1140 disptab.h dispextern.h keyboard.h character.h charset.h coding.h ccl.h \
1141 msdos.h window.h keymap.h blockinput.h atimer.h systime.h
1142 termcap.o: termcap.c $(config_h)
1143 terminal.o: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
1144 keyboard.h $(config_h)
1145 terminfo.o: terminfo.c $(config_h)
1146 tparam.o: tparam.c $(config_h)
1147 undo.o: undo.c buffer.h commands.h window.h $(config_h)
1148 /* This hack is to discard any space that cpp might put at the beginning
1149 of UNEXEC when substituting it in. */
1150 UNEXEC_ALIAS=UNEXEC
1151 $(UNEXEC_ALIAS): UNEXEC_SRC $(config_h)
1152 w16select.o: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
1153 msdos.h buffer.h charset.h coding.h composite.h $(config_h)
1154 widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h \
1155 $(srcdir)/../lwlib/lwlib.h $(config_h)
1156 window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
1157 disptab.h keyboard.h dispextern.h msdos.h composite.h \
1158 keymap.h blockinput.h atimer.h systime.h $(INTERVAL_SRC) \
1159 xterm.h w32term.h macterm.h $(config_h)
1160 xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h \
1161 coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h \
1162 charset.h $(config_h) keyboard.h $(INTERVAL_SRC) region-cache.h xterm.h \
1163 w32term.h macterm.h msdos.h composite.h fontset.h blockinput.h atimer.h \
1164 systime.h keymap.h font.h
1165 xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
1166 window.h character.h charset.h msdos.h dosfns.h composite.h atimer.h \
1167 systime.h keyboard.h fontset.h w32term.h macterm.h $(INTERVAL_SRC) \
1168 termchar.h termhooks.h font.h $(config_h)
1169 xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
1170 $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h \
1171 character.h charset.h coding.h gtkutil.h $(config_h) termhooks.h \
1172 fontset.h termchar.h font.h
1173 xfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1174 font.h $(config_h)
1175 xftfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1176 font.h $(config_h)
1177 ftxfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1178 font.h $(config_h)
1179 xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
1180 charset.h keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h \
1181 systime.h gtkutil.h msdos.h coding.h $(config_h)
1182 xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
1183 dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
1184 keyboard.h emacs-icon.h character.h charset.h ccl.h fontset.h composite.h \
1185 coding.h process.h gtkutil.h font.h $(config_h)
1186 xselect.o: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
1187 buffer.h atimer.h systime.h termhooks.h $(config_h)
1188 xrdb.o: xrdb.c $(config_h) epaths.h
1189 xsmfns.o: xsmfns.c $(config_h) systime.h sysselect.h termhooks.h xterm.h \
1190 lisp.h termopts.h
1191 gtkutil.o: gtkutil.c gtkutil.h xterm.h lisp.h frame.h $(config_h) \
1192 blockinput.h window.h atimer.h systime.h termhooks.h keyboard.h \
1193 charset.h coding.h
1194 dbusbind.o: dbusbind.c termhooks.h $(config_h)
1196 hftctl.o: hftctl.c $(config_h)
1197 sound.o: sound.c dispextern.h $(config_h)
1198 atimer.o: atimer.c atimer.h systime.h $(config_h)
1200 /* The files of Lisp proper */
1202 alloc.o: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h keyboard.h \
1203 blockinput.h atimer.h systime.h character.h dispextern.h $(config_h) \
1204 $(INTERVAL_SRC)
1205 bytecode.o: bytecode.c buffer.h syntax.h character.h window.h dispextern.h \
1206 frame.h xterm.h $(config_h)
1207 data.o: data.c buffer.h puresize.h character.h syssignal.h keyboard.h frame.h \
1208 termhooks.h $(config_h)
1209 eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
1210 dispextern.h $(config_h)
1211 floatfns.o: floatfns.c $(config_h)
1212 fns.o: fns.c commands.h $(config_h) frame.h buffer.h character.h keyboard.h \
1213 keymap.h frame.h window.h dispextern.h $(INTERVAL_SRC) coding.h md5.h \
1214 blockinput.h atimer.h systime.h xterm.h termhooks.h
1215 print.o: print.c process.h frame.h window.h buffer.h keyboard.h character.h \
1216 $(config_h) dispextern.h termchar.h $(INTERVAL_SRC) msdos.h composite.h \
1217 blockinput.h atimer.h systime.h font.h
1218 lread.o: lread.c commands.h keyboard.h buffer.h epaths.h character.h \
1219 charset.h $(config_h) $(INTERVAL_SRC) termhooks.h coding.h msdos.h
1221 /* Text properties support */
1222 textprop.o: textprop.c buffer.h window.h dispextern.h $(INTERVAL_SRC) \
1223 $(config_h)
1224 intervals.o: intervals.c buffer.h $(INTERVAL_SRC) keyboard.h puresize.h \
1225 keymap.h $(config_h)
1226 composite.o: composite.c buffer.h character.h $(INTERVAL_SRC) $(config_h)
1228 /* System-specific programs to be made.
1229 OTHER_FILES and OBJECTS_MACHINE
1230 select which of these should be compiled. */
1232 #ifdef HAVE_CARBON
1233 buffer.o callint.o cmds.o dispnew.o editfns.o fileio.o frame.o \
1234 fontset.o indent.o insdel.o keyboard.o macros.o minibuf.o msdos.o process.o \
1235 scroll.o sysdep.o term.o terminal.o widget.o window.o xdisp.o xfaces.o xfns.o xmenu.o \
1236 xterm.o xselect.o sound.o: macgui.h
1237 mac.o: mac.c process.h sysselect.h blockinput.h atimer.h systime.h charset.h \
1238 coding.h ccl.h $(config_h)
1239 macfns.o: macfns.c charset.h macterm.h macgui.h frame.h window.h buffer.h \
1240 dispextern.h macgui.h fontset.h $(INTERVAL_SRC) keyboard.h blockinput.h \
1241 atimer.h systime.h epaths.h termhooks.h coding.h $(config_h)
1242 macmenu.o: macmenu.c termhooks.h frame.h window.h dispextern.h macgui.h \
1243 keyboard.h blockinput.h atimer.h systime.h buffer.h macterm.h $(config_h)
1244 macterm.o: blockinput.h atimer.h systime.h syssignal.h macterm.h macgui.h \
1245 frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h termopts.h \
1246 termchar.h disptab.h buffer.h window.h keyboard.h $(INTERVAL_SRC) \
1247 process.h coding.h $(config_h)
1248 macselect.o: blockinput.h atimer.h systime.h macterm.h macgui.h frame.h \
1249 keymap.h $(config_h)
1250 mactoolbox.o: blockinput.h atimer.h systime.h macterm.h macgui.h frame.h \
1251 charset.h coding.h ccl.h dispextern.h fontset.h termhooks.h buffer.h \
1252 window.h keyboard.h $(config_h)
1254 ${emacsapp}Contents/Resources/English.lproj:
1255 mkdir -p $@
1257 ifneq (${emacsapp},${emacsappsrc})
1258 ${emacsapp}Contents/Info.plist: ${emacsappsrc}Contents/Info.plist
1259 cp $< $@
1260 ${emacsapp}Contents/PkgInfo: ${emacsappsrc}Contents/PkgInfo
1261 cp $< $@
1262 ${emacsapp}Contents/Resources/Emacs.icns: ${emacsappsrc}Contents/Resources/Emacs.icns
1263 mkdir -p ${emacsapp}Contents/Resources
1264 cp $< $@
1265 ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings: ${emacsappsrc}Contents/Resources/English.lproj/InfoPlist.strings
1266 cp $< $@
1267 endif
1269 macosx-bundle: ${emacsapp}Contents/Resources/English.lproj \
1270 ${emacsapp}Contents/Info.plist ${emacsapp}Contents/PkgInfo \
1271 ${emacsapp}Contents/Resources/Emacs.icns \
1272 ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings
1273 macosx-app: macosx-bundle ${emacsapp}Contents/MacOS/Emacs
1274 ${emacsapp}Contents/MacOS/Emacs: emacs${EXEEXT}
1275 mkdir -p ${emacsapp}Contents/MacOS/;
1276 cd ${emacsapp}Contents/MacOS/; cp ../../../../src/emacs${EXEEXT} Emacs${EXEEXT}
1277 #endif
1279 bootstrapclean:
1280 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
1281 mostlyclean:
1282 rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a
1283 rm -f ../etc/DOC
1284 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
1285 rm -f buildobj.lst
1286 clean: mostlyclean
1287 rm -f emacs-*.*.*${EXEEXT} emacs${EXEEXT}
1288 /**/# This is used in making a distribution.
1289 /**/# Do not use it on development directories!
1290 distclean: clean
1291 rm -f epaths.h config.h Makefile Makefile.c config.stamp stamp-oldxmenu ../etc/DOC-*
1292 mv ./.gdbinit ./.gdbinit.save
1293 if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
1294 else mv ./.gdbinit.save ./.gdbinit; fi
1295 maintainer-clean: distclean
1296 @echo "This command is intended for maintainers to use;"
1297 @echo "it deletes files that may require special tools to rebuild."
1298 rm -f TAGS
1299 versionclean:
1300 -rm -f emacs${EXEEXT} emacs-*.*.*${EXEEXT} ../etc/DOC*
1301 extraclean: distclean
1302 -rm -f *~ \#* m/?*~ s/?*~
1304 /* Arrange to make a tags table TAGS-LISP for ../lisp,
1305 plus TAGS for the C files, which includes ../lisp/TAGS by reference. */
1307 ctagsfiles1 = [xyzXYZ]*.[hc]
1308 ctagsfiles2 = [a-wA-W]*.[hc]
1310 TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1311 ../lib-src/etags --include=TAGS-LISP --include=${lwlibdir}/TAGS \
1312 --regex='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \
1313 $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1314 frc:
1315 TAGS-LISP: frc
1316 $(MAKE) -f ${lispdir}Makefile TAGS-LISP ETAGS=../lib-src/etags
1318 $(lwlibdir)TAGS:
1319 (cd $(lwlibdir); $(MAKE) -f $(lwlibdir)Makefile tags ETAGS=../lib-src/etags)
1321 tags: TAGS TAGS-LISP $(lwlibdir)TAGS
1322 .PHONY: tags
1325 /* Bootstrapping. */
1327 bootstrap: bootstrap-emacs${EXEEXT}
1329 /* Dump an Emacs executable named bootstrap-emacs containing the
1330 files from loadup.el in source form. */
1332 bootstrap-emacs${EXEEXT}: temacs${EXEEXT} ${lispsource}international/charprop.el
1333 #ifdef CANNOT_DUMP
1334 ln temacs${EXEEXT} bootstrap-emacs${EXEEXT}
1335 #else
1336 $(RUN_TEMACS) --batch --load loadup bootstrap
1337 mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
1338 #endif /* ! defined (CANNOT_DUMP) */