Switch to recommended form of GPLv3 permissions notice.
[bpt/emacs.git] / src / Makefile.in
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.
5
6 # This file is part of GNU Emacs.
7
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.
12
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.
17
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/>.
20
21
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.
25
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.
32
33
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@
53
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/
64
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)
69
70 # ========================== start of cpp stuff =======================
71 /* From here on, comments must be done in C syntax. */
72
73 C_SWITCH_SYSTEM=
74
75 /* just to be sure the sh is used */
76 SHELL=/bin/sh
77
78 #define THIS_IS_MAKEFILE
79 #define NOT_C_CODE
80 #include "config.h"
81
82 /* Do not let the file name mktime.c get messed up. */
83 #ifdef mktime
84 #undef mktime
85 #endif
86
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. */
90
91 #ifdef X11
92 #define HAVE_X11
93 #undef X11
94 #endif
95
96 /* On some machines #define register is done in config;
97 do not let it interfere with this file. */
98 #undef register
99
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
104
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
112
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
123
124 /* Unless inhibited or changed, use -lg to link for debugging. */
125 #ifndef LIBS_DEBUG
126 #define LIBS_DEBUG -lg
127 #endif
128
129 /* Some s/SYSTEM.h files define this to request special libraries. */
130 #ifndef LIBS_SYSTEM
131 #define LIBS_SYSTEM
132 #endif
133
134 /* Some m/MACHINE.h files define this to request special libraries. */
135 #ifndef LIBS_MACHINE
136 #define LIBS_MACHINE
137 #endif
138
139 #ifndef LIB_MATH
140 # define LIB_MATH -lm
141 #endif /* LIB_MATH */
142
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 */
151
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
157
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
163
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
168
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
174
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
179
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
184
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
189
190 #ifndef C_SWITCH_X_SYSTEM
191 #define C_SWITCH_X_SYSTEM
192 #endif
193
194 #ifndef C_SWITCH_X_SITE
195 #define C_SWITCH_X_SITE
196 #endif
197
198 #ifndef LD_SWITCH_X_SITE
199 #define LD_SWITCH_X_SITE
200 #endif
201
202 #ifndef LD_SWITCH_X_DEFAULT
203 #define LD_SWITCH_X_DEFAULT
204 #endif
205
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
211
212 #ifndef C_SWITCH_SITE
213 #define C_SWITCH_SITE
214 #endif
215
216 #ifndef ORDINARY_LINK
217
218 #ifndef CRT0_COMPILE
219 #define CRT0_COMPILE $(CC) -c $(ALL_CFLAGS)
220 #endif
221
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
230
231 #else /* ORDINARY_LINK */
232
233 /* config.h might want to force START_FILES anyway */
234 #ifdef START_FILES
235 STARTFILES = START_FILES
236 #endif /* START_FILES */
237
238 #endif /* not ORDINARY_LINK */
239
240
241 #ifdef HAVE_DBUS
242 DBUS_CFLAGS = @DBUS_CFLAGS@
243 DBUS_LIBS = @DBUS_LIBS@
244 DBUS_OBJ = dbusbind.o
245 #endif
246
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. */
251
252 /* -Demacs is needed to make some files produce the correct version
253 for use in Emacs.
254
255 -DHAVE_CONFIG_H is needed for some other files to take advantage of
256 the information in ``config.h''. */
257
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) $<
263
264 #ifndef LIBX11_SYSTEM
265 #define LIBX11_SYSTEM
266 #endif
267
268 #ifndef LIB_X11_LIB
269 #define LIB_X11_LIB -lX11
270 #endif
271
272 /* xmenu.c should not be compiled on OSX. */
273 #ifndef HAVE_CARBON
274 XMENU_OBJ = xmenu.o
275 #endif
276
277 #ifdef HAVE_X_WINDOWS
278
279 XOBJ= xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o
280
281 #ifdef HAVE_MENUS
282
283 #ifdef USE_GTK
284 GTK_OBJ= gtkutil.o
285 #endif
286
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 */
301
302 #else /* not HAVE_MENUS */
303
304 /* Otherwise, do not worry about the menu library at all. */
305 LIBXMENU=
306 #endif /* not HAVE_MENUS */
307
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)
326
327 #ifdef HAVE_X11XTR6
328 #ifdef NEED_LIBW
329 LIBXTR6 = -lSM -lICE -lw
330 #else
331 LIBXTR6 = -lSM -lICE
332 #endif
333 #endif
334
335 #ifndef LIBXMU
336 #define LIBXMU -lXmu
337 #endif
338
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 */
347
348 #else /* not USE_X_TOOLKIT */
349
350 #ifdef USE_GTK
351 LIBW=@GTK_LIBS@
352 OLDXMENU=
353 LIBXMENU=
354 #endif /* USE_GTK */
355
356 #ifdef HAVE_X_SM
357 LIBXT=$(LIBW) -lSM -lICE
358 #else
359 LIBXT=$(LIBW)
360 #endif
361 #endif /* not USE_X_TOOLKIT */
362
363 #if HAVE_XFT
364 XFT_LIBS=@XFT_LIBS@
365 #endif /* HAVE_XFT */
366
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 */
374
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 */
382
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 */
390
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 */
398
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 */
406
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 */
417
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 */
425
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 */
433
434 LIBSOUND= @LIBSOUND@
435 CFLAGS_SOUND= @CFLAGS_SOUND@
436
437 RSVG_LIBS= @RSVG_LIBS@
438 RSVG_CFLAGS= @RSVG_CFLAGS@
439
440 #ifndef ORDINARY_LINK
441 /* Fix linking if compiled with GCC. */
442 #ifdef __GNUC__
443
444 #ifdef LINKER
445 #define LINKER_WAS_SPECIFIED
446 #endif
447
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.
452
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. */
456
457 #ifndef LINKER
458 #define LINKER $(CC) -nostdlib
459 #endif
460
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 */
465
466 GNULIB_VAR = LIB_GCC
467
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
478
479 #else /* not __GNUC__ */
480 GNULIB_VAR =
481
482 #endif /* not __GNUC__ */
483 #endif /* not ORDINARY_LINK */
484
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 */
494
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
499
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".)
504 */
505 #ifndef YMF_PASS_LDFLAGS
506 #define YMF_PASS_LDFLAGS(flags) flags
507 #endif
508
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
516
517 INTERVAL_SRC = intervals.h composite.h
518
519 GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
520
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
528
529 #ifdef CYGWIN
530 CYGWIN_OBJ = sheap.o
531 #endif
532
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
539
540 #ifdef HAVE_WINDOW_SYSTEM
541 FONTSRC = font.h
542 #ifdef HAVE_X_WINDOWS
543 #if defined (HAVE_XFT)
544 FONTOBJ = font.o xfont.o ftfont.o xftfont.o ftxfont.o
545 #elif defined (HAVE_FREETYPE)
546 FONTOBJ = font.o xfont.o ftfont.o ftxfont.o
547 #else /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
548 FONTOBJ = font.o xfont.o
549 #endif /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
550 #else /* ! HAVE_X_WINDOWS */
551 FONTOBJ = font.o
552 #endif /* ! HAVE_X_WINDOWS */
553 #endif /* HAVE_WINDOW_SYSTEM */
554
555 /* lastfile must follow all files
556 whose initialized data areas should be dumped as pure by dump-emacs. */
557 obj= dispnew.o frame.o scroll.o xdisp.o $(XMENU_OBJ) window.o \
558 charset.o coding.o category.o ccl.o character.o chartab.o \
559 cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \
560 emacs.o keyboard.o macros.o keymap.o sysdep.o \
561 buffer.o filelock.o insdel.o marker.o \
562 minibuf.o fileio.o dired.o filemode.o \
563 cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
564 alloc.o data.o doc.o editfns.o callint.o \
565 eval.o floatfns.o fns.o print.o lread.o \
566 syntax.o UNEXEC bytecode.o \
567 process.o callproc.o \
568 region-cache.o sound.o atimer.o \
569 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
570 $(MSDOS_OBJ) $(MAC_OBJ) $(CYGWIN_OBJ) $(FONTOBJ)
571
572 /* Object files used on some machine or other.
573 These go in the DOC file on all machines
574 in case they are needed there. */
575 SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
576 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
577 mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o \
578 w32.o w32bdf.o w32console.o w32fns.o w32heap.o w32inevt.o \
579 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONTOBJ)
580
581
582 #ifdef TERMINFO
583 /* Used to be -ltermcap here. If your machine needs that,
584 define LIBS_TERMCAP in the m/MACHINE.h file. */
585 #ifndef LIBS_TERMCAP
586 #define LIBS_TERMCAP -lcurses
587 #endif /* LIBS_TERMCAP */
588 termcapobj = terminfo.o
589 #else /* ! defined (TERMINFO) */
590 #ifndef LIBS_TERMCAP
591 #define LIBS_TERMCAP
592 termcapobj = termcap.o tparam.o
593 #else /* LIBS_TERMCAP */
594 termcapobj = tparam.o
595 #endif /* LIBS_TERMCAP */
596 #endif /* ! defined (TERMINFO) */
597
598
599 #ifndef SYSTEM_MALLOC
600
601 #ifndef DOUG_LEA_MALLOC
602 gmallocobj = gmalloc.o
603 #endif
604
605 #ifdef REL_ALLOC
606 rallocobj = ralloc.o
607 #endif
608
609 mallocobj = $(gmallocobj) $(rallocobj) vm-limit.o
610
611 #endif /* SYSTEM_MALLOC */
612
613
614 #ifdef USE_X_TOOLKIT
615 widgetobj= widget.o
616 #else /* not USE_X_TOOLKIT */
617 widgetobj=
618 #endif /* not USE_X_TOOLKIT */
619
620
621 /* define otherobj as list of object files that make-docfile
622 should not be told about. */
623 #ifdef CYGWIN
624 /* Cygwin differs because of its unexec(). */
625 otherobj= $(termcapobj) $(gmallocobj) $(rallocobj) lastfile.o vm-limit.o $(widgetobj) $(LIBOBJS)
626 #else
627 otherobj= $(termcapobj) lastfile.o $(mallocobj) $(widgetobj) $(LIBOBJS)
628 #endif
629
630 #ifdef HAVE_MOUSE
631 #define MOUSE_SUPPORT ${lispsource}mouse.elc \
632 ${lispsource}select.elc ${lispsource}scroll-bar.elc
633 #else
634 #ifdef HAVE_GPM
635 #define MOUSE_SUPPORT ${lispsource}mouse.elc
636 #else
637 #define MOUSE_SUPPORT
638 #endif
639 #endif
640
641 #ifdef VMS
642 #define VMS_SUPPORT ${lispsource}vmsproc.elc ${lispsource}vms-patch.elc
643 #else
644 #define VMS_SUPPORT
645 #endif
646
647 #ifdef MSDOS
648 #define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
649 ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc \
650 ${lispsource}international/ccl.elc ${lispsource}international/codepage.elc
651
652 #else
653 #define MSDOS_SUPPORT
654 #endif
655
656 #ifdef HAVE_WINDOW_SYSTEM
657 #ifdef HAVE_X_WINDOWS
658 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
659 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
660 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc ${lispsource}x-dnd.elc
661 #else
662 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
663 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
664 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc
665 #endif
666 #else
667 #define WINDOW_SUPPORT
668 #endif
669
670 #ifdef WINDOWSNT
671 #define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
672 ${lispsource}dos-w32.elc ${lispsource}w32-vars.elc \
673 ${lispsource}w32-fns.elc
674 #else
675 #define WINNT_SUPPORT
676 #endif
677
678 #ifdef HAVE_WINDOW_SYSTEM
679 #define TOOLTIP_SUPPORT ${lispsource}tooltip.elc
680 #else
681 #define TOOLTIP_SUPPORT
682 #endif
683
684 /* List of Lisp files loaded into the dumped Emacs. It is arranged
685 like this because it is easier to generate it semi-mechanically from
686 loadup.el this way.
687
688 Note that this list should not include lisp files which might not
689 be present, like site-load.el and site-init.el; this makefile
690 expects them all to be either present or buildable.
691
692 Files which are loaded unconditionally should be in shortlisp as well.
693 Files included conditionally here should be included (unconditionally)
694 in SOME_MACHINE_LISP. */
695
696 lisp= \
697 ${lispsource}abbrev.elc \
698 ${lispsource}buff-menu.elc \
699 ${lispsource}button.elc \
700 ${lispsource}emacs-lisp/byte-run.elc \
701 ${lispsource}composite.elc \
702 ${lispsource}cus-face.elc \
703 ${lispsource}cus-start.elc \
704 ${lispsource}custom.elc \
705 ${lispsource}emacs-lisp/backquote.elc \
706 ${lispsource}emacs-lisp/lisp-mode.elc \
707 ${lispsource}emacs-lisp/lisp.elc \
708 ${lispsource}env.elc \
709 ${lispsource}faces.elc \
710 ${lispsource}files.elc \
711 ${lispsource}format.elc \
712 ${lispsource}facemenu.elc \
713 MOUSE_SUPPORT \
714 ${lispsource}emacs-lisp/float-sup.elc \
715 ${lispsource}frame.elc \
716 ${lispsource}help.elc \
717 ${lispsource}indent.elc \
718 ${lispsource}isearch.elc \
719 ${lispsource}rfn-eshadow.elc \
720 ${lispsource}loadup.el \
721 ${lispsource}loaddefs.el \
722 ${lispsource}bindings.elc \
723 ${lispsource}emacs-lisp/map-ynp.elc \
724 ${lispsource}menu-bar.elc \
725 ${lispsource}international/mule.elc \
726 ${lispsource}international/mule-conf.el \
727 ${lispsource}international/mule-cmds.elc \
728 ${lispsource}international/characters.elc \
729 ${lispsource}international/charprop.el \
730 ${lispsource}case-table.elc \
731 ${lispsource}language/chinese.el \
732 ${lispsource}language/cyrillic.el \
733 ${lispsource}language/indian.el \
734 ${lispsource}language/sinhala.el \
735 ${lispsource}language/english.el \
736 ${lispsource}language/ethiopic.elc \
737 ${lispsource}language/european.elc \
738 ${lispsource}language/czech.el \
739 ${lispsource}language/slovak.el \
740 ${lispsource}language/romanian.el \
741 ${lispsource}language/greek.el \
742 ${lispsource}language/hebrew.el \
743 ${lispsource}language/japanese.el \
744 ${lispsource}language/korean.el \
745 ${lispsource}language/lao.el \
746 ${lispsource}language/cham.el \
747 ${lispsource}language/tai-viet.el \
748 ${lispsource}language/thai.el \
749 ${lispsource}language/tibetan.elc \
750 ${lispsource}language/vietnamese.el \
751 ${lispsource}language/misc-lang.el \
752 ${lispsource}language/utf-8-lang.el \
753 ${lispsource}language/georgian.el \
754 ${lispsource}language/khmer.el \
755 ${lispsource}language/burmese.el \
756 ${lispsource}paths.el \
757 ${lispsource}register.elc \
758 ${lispsource}replace.elc \
759 ${lispsource}simple.elc \
760 ${lispsource}minibuffer.elc \
761 ${lispsource}startup.elc \
762 ${lispsource}subr.elc \
763 ${lispsource}term/tty-colors.elc \
764 ${lispsource}font-core.elc \
765 ${lispsource}emacs-lisp/syntax.elc \
766 ${lispsource}font-lock.elc \
767 ${lispsource}jit-lock.elc \
768 ${lispsource}textmodes/fill.elc \
769 ${lispsource}textmodes/page.elc \
770 ${lispsource}textmodes/paragraphs.elc \
771 ${lispsource}textmodes/text-mode.elc \
772 ${lispsource}emacs-lisp/timer.elc \
773 ${lispsource}jka-cmpr-hook.elc \
774 ${lispsource}vc-hooks.elc \
775 ${lispsource}ediff-hook.elc \
776 ${lispsource}epa-hook.elc \
777 TOOLTIP_SUPPORT \
778 VMS_SUPPORT \
779 MSDOS_SUPPORT \
780 WINNT_SUPPORT \
781 WINDOW_SUPPORT \
782 ${lispsource}widget.elc \
783 ${lispsource}window.elc \
784 ${lispsource}version.el
785
786 /* These are relative file names for the Lisp files
787 that are loaded unconditionally. This is used in make-docfile.
788 It need not contain the files that are loaded conditionally
789 because SOME_MACHINE_LISP has those. */
790 shortlisp= \
791 ../lisp/abbrev.elc \
792 ../lisp/buff-menu.elc \
793 ../lisp/button.elc \
794 ../lisp/emacs-lisp/byte-run.elc \
795 ../lisp/composite.elc \
796 ../lisp/cus-face.elc \
797 ../lisp/cus-start.elc \
798 ../lisp/custom.elc \
799 ../lisp/emacs-lisp/backquote.elc \
800 ../lisp/emacs-lisp/lisp-mode.elc \
801 ../lisp/emacs-lisp/lisp.elc \
802 ../lisp/facemenu.elc \
803 ../lisp/faces.elc \
804 ../lisp/files.elc \
805 ../lisp/emacs-lisp/float-sup.elc \
806 ../lisp/format.elc \
807 ../lisp/frame.elc \
808 ../lisp/help.elc \
809 ../lisp/indent.elc \
810 ../lisp/isearch.elc \
811 ../lisp/rfn-eshadow.elc \
812 ../lisp/loadup.el \
813 ../lisp/loaddefs.el \
814 ../lisp/bindings.elc \
815 ../lisp/emacs-lisp/map-ynp.elc \
816 ../lisp/env.elc \
817 ../lisp/international/mule.elc \
818 ../lisp/international/mule-conf.el \
819 ../lisp/international/mule-cmds.elc \
820 ../lisp/international/characters.elc \
821 ../lisp/case-table.elc \
822 ../lisp/language/chinese.el \
823 ../lisp/language/cyrillic.el \
824 ../lisp/language/indian.el \
825 ../lisp/language/sinhala.el \
826 ../lisp/language/english.el \
827 ../lisp/language/ethiopic.elc \
828 ../lisp/language/european.elc \
829 ../lisp/language/czech.el \
830 ../lisp/language/slovak.el \
831 ../lisp/language/romanian.el \
832 ../lisp/language/greek.el \
833 ../lisp/language/hebrew.el \
834 ../lisp/language/japanese.el \
835 ../lisp/language/korean.el \
836 ../lisp/language/lao.el \
837 ../lisp/language/cham.el \
838 ../lisp/language/tai-viet.el \
839 ../lisp/language/thai.el \
840 ../lisp/language/tibetan.elc \
841 ../lisp/language/vietnamese.el \
842 ../lisp/language/misc-lang.el \
843 ../lisp/language/utf-8-lang.el \
844 ../lisp/language/georgian.el \
845 ../lisp/language/khmer.el \
846 ../lisp/language/burmese.el \
847 ../lisp/menu-bar.elc \
848 ../lisp/paths.el \
849 ../lisp/register.elc \
850 ../lisp/replace.elc \
851 ../lisp/simple.elc \
852 ../lisp/minibuffer.elc \
853 ../lisp/startup.elc \
854 ../lisp/subr.elc \
855 ../lisp/term/tty-colors.elc \
856 ../lisp/font-core.elc \
857 ../lisp/emacs-lisp/syntax.elc \
858 ../lisp/font-lock.elc \
859 ../lisp/jit-lock.elc \
860 ../lisp/textmodes/fill.elc \
861 ../lisp/textmodes/page.elc \
862 ../lisp/textmodes/paragraphs.elc \
863 ../lisp/textmodes/text-mode.elc \
864 ../lisp/emacs-lisp/timer.elc \
865 ../lisp/vc-hooks.elc \
866 ../lisp/jka-cmpr-hook.elc \
867 ../lisp/ediff-hook.elc \
868 ../lisp/epa-hook.elc \
869 ../lisp/widget.elc \
870 ../lisp/window.elc \
871 ../lisp/version.el
872
873 /* Lisp files that may or may not be used.
874 We must unconditionally put them in the DOC file.
875 We use ../lisp/ to start the file names
876 to reduce the size of the argument list for make-docfile
877 for the sake of systems which can''t handle large ones. */
878 SOME_MACHINE_LISP = ${dotdot}/lisp/mouse.elc \
879 ${dotdot}/lisp/select.elc ${dotdot}/lisp/scroll-bar.elc \
880 VMS_SUPPORT \
881 ${dotdot}/lisp/ls-lisp.elc ${dotdot}/lisp/dos-fns.elc \
882 ${dotdot}/lisp/w32-fns.elc ${dotdot}/lisp/dos-w32.elc \
883 ${dotdot}/lisp/disp-table.elc ${dotdot}/lisp/dos-vars.elc \
884 ${dotdot}/lisp/tooltip.elc ${dotdot}/lisp/image.elc \
885 ${dotdot}/lisp/fringe.elc ${dotdot}/lisp/dnd.elc \
886 ${dotdot}/lisp/mwheel.elc ${dotdot}/lisp/tool-bar.elc \
887 ${dotdot}/lisp/x-dnd.elc \
888 ${dotdot}/lisp/international/ccl.elc \
889 ${dotdot}/lisp/international/codepage.elc \
890 ${dotdot}/lisp/international/fontset.elc \
891 ${dotdot}/lisp/mouse.elc \
892 ${dotdot}/lisp/term/x-win.elc
893
894 /* Construct full set of libraries to be linked.
895 Note that SunOS needs -lm to come before -lc; otherwise, you get
896 duplicated symbols. If the standard libraries were compiled
897 with GCC, we might need gnulib again after them. */
898 LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) $(RSVG_LIBS) $(DBUS_LIBS) \
899 LIBGPM LIBRESOLV LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
900 LIBS_DEBUG $(GETLOADAVG_LIBS) \
901 @FREETYPE_LIBS@ @FONTCONFIG_LIBS@ @LIBOTF_LIBS@ @M17N_FLT_LIBS@ \
902 $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR)
903
904 /* Enable recompilation of certain other files depending on system type. */
905
906 #ifndef OTHER_FILES
907 #define OTHER_FILES
908 #endif
909
910 #ifndef OBJECTS_MACHINE
911 #define OBJECTS_MACHINE
912 #endif
913
914 #ifdef HAVE_SHM
915 RUN_TEMACS = `/bin/pwd`/temacs -nl
916 #else
917 RUN_TEMACS = `/bin/pwd`/temacs
918 #endif
919
920 all: emacs${EXEEXT} OTHER_FILES
921
922 emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
923 #ifdef CANNOT_DUMP
924 rm -f emacs${EXEEXT}
925 ln temacs${EXEEXT} emacs${EXEEXT}
926 #else
927 LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
928 #endif /* ! defined (CANNOT_DUMP) */
929 -./emacs -q -batch -f list-load-path-shadows
930
931 /* We run make-docfile twice because the command line may get too long
932 on some systems. */
933 /* ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may
934 or may not be included in ${obj}, but they are always included in
935 ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned
936 for the first time, this prevents any variation between configurations
937 in the contents of the DOC file.
938 Likewise for ${SOME_MACHINE_LISP}. */
939 ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
940 -rm -f ${etc}DOC
941 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
942 ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
943
944 ${libsrc}make-docfile${EXEEXT}:
945 cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
946
947 temacs${EXEEXT}: $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} OBJECTS_MACHINE prefix-args${EXEEXT}
948 echo "${obj} ${otherobj} " OBJECTS_MACHINE > buildobj.lst
949 $(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS) \
950 -o temacs ${STARTFILES} ${obj} ${otherobj} \
951 OBJECTS_MACHINE ${LIBES}
952
953 /* We do not use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE
954 often contain options that have to do with using Emacs''s crt0,
955 which are only good with temacs. */
956 prefix-args${EXEEXT}: prefix-args.c $(config_h)
957 $(CC) $(ALL_CFLAGS) $(LDFLAGS) ${srcdir}/prefix-args.c -o prefix-args
958
959 #if defined (HAVE_X_WINDOWS) && defined (HAVE_X11) && defined (HAVE_MENUS) && ! defined (USE_GTK)
960
961 /* We use stamp-xmenu with these two deps
962 to both ensure that lwlib gets remade based on its dependencies
963 in its own makefile,
964 and remake temacs if lwlib gets changed by this. */
965 stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU)
966 touch stamp-oldxmenu
967 /* Supply an ordering for parallel make. */
968 ../src/$(OLDXMENU): ${OLDXMENU}
969
970 /* Encode the values of these two macros in Make variables,
971 so we can use $(...) to substitute their values within "...". */
972 C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
973 C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
974 C_SWITCH_SITE_1 = C_SWITCH_SITE
975 C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
976 C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
977 C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM
978
979 #ifdef USE_X_TOOLKIT
980 $(OLDXMENU): really-lwlib
981
982 really-lwlib:
983 cd ${lwlibdir}; ${MAKE} ${MFLAGS} \
984 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
985 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
986 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
987 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
988 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
989 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
990 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
991 @true /* make -t should not create really-lwlib. */
992 .PHONY: really-lwlib
993 #else /* not USE_X_TOOLKIT */
994 $(OLDXMENU): really-oldXMenu
995
996 really-oldXMenu:
997 cd ${oldXMenudir}; ${MAKE} ${MFLAGS} \
998 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
999 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
1000 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
1001 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
1002 "C_SWITCH_SITE=$(C_SWITCH_SITE_1)" \
1003 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
1004 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
1005 @true /* make -t should not create really-oldXMenu. */
1006 .PHONY: really-oldXMenu
1007 #endif /* not USE_X_TOOLKIT */
1008 #else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
1009
1010 /* We don''t really need this, but satisfy the dependency. */
1011 stamp-oldxmenu:
1012 touch stamp-oldxmenu
1013 #endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
1014
1015 ../config.status:: epaths.in
1016 @echo "The file epaths.h needs to be set up from epaths.in."
1017 @echo "Please run the `configure' script again."
1018 exit 1
1019
1020 ../config.status:: config.in
1021 @echo "The file config.h needs to be set up from config.in."
1022 @echo "Please run the `configure' script again."
1023 exit 1
1024
1025 /* Nearly all the following files depend on lisp.h,
1026 but it is not included as a dependency because
1027 it is so often changed in ways that do not require any recompilation
1028 and so rarely changed in ways that do require any. */
1029
1030 abbrev.o: abbrev.c buffer.h window.h dispextern.h commands.h character.h \
1031 syntax.h $(config_h)
1032 buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \
1033 dispextern.h $(INTERVAL_SRC) blockinput.h atimer.h systime.h character.h \
1034 $(config_h)
1035 callint.o: callint.c window.h commands.h buffer.h keymap.h \
1036 keyboard.h dispextern.h $(config_h)
1037 callproc.o: callproc.c epaths.h buffer.h commands.h $(config_h) \
1038 process.h systty.h syssignal.h character.h coding.h ccl.h msdos.h \
1039 composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h
1040 casefiddle.o: casefiddle.c syntax.h commands.h buffer.h character.h \
1041 composite.h \
1042 charset.h keymap.h $(config_h)
1043 casetab.o: casetab.c buffer.h $(config_h)
1044 category.o: category.c category.h buffer.h charset.h keymap.h \
1045 character.h $(config_h)
1046 ccl.o: ccl.c ccl.h charset.h character.h coding.h $(config_h)
1047 character.o: character.c character.h buffer.h charset.h composite.h disptab.h \
1048 $(config.h)
1049 charset.o: charset.c charset.h character.h buffer.h coding.h composite.h \
1050 disptab.h $(config_h)
1051 chartab.o: charset.h character.h $(config.h)
1052 coding.o: coding.c coding.h ccl.h buffer.h character.h charset.h intervals.h composite.h \
1053 window.h dispextern.h frame.h termhooks.h $(config_h)
1054 cm.o: cm.c frame.h cm.h termhooks.h termchar.h $(config_h)
1055 cmds.o: cmds.c syntax.h buffer.h character.h commands.h window.h $(config_h) \
1056 msdos.h dispextern.h keyboard.h keymap.h
1057 pre-crt0.o: pre-crt0.c
1058 ecrt0.o: ecrt0.c $(config_h)
1059 CRT0_COMPILE ${srcdir}/ecrt0.c
1060 dired.o: dired.c commands.h buffer.h $(config_h) character.h charset.h \
1061 coding.h regex.h systime.h blockinput.h atimer.h
1062 dispnew.o: dispnew.c systime.h commands.h process.h frame.h \
1063 window.h buffer.h dispextern.h termchar.h termopts.h termhooks.h cm.h \
1064 disptab.h indent.h intervals.h \
1065 xterm.h blockinput.h atimer.h character.h msdos.h composite.h keyboard.h \
1066 $(config_h)
1067 doc.o: doc.c $(config_h) epaths.h buffer.h keyboard.h keymap.h character.h
1068 doprnt.o: doprnt.c character.h $(config_h)
1069 dosfns.o: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
1070 msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \
1071 $(config_h)
1072 editfns.o: editfns.c window.h buffer.h systime.h $(INTERVAL_SRC) character.h \
1073 coding.h dispextern.h frame.h blockinput.h atimer.h $(config_h)
1074 emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
1075 termhooks.h buffer.h atimer.h systime.h $(INTERVAL_SRC) $(config_h) \
1076 window.h dispextern.h keyboard.h keymap.h
1077 fileio.o: fileio.c window.h buffer.h systime.h $(INTERVAL_SRC) character.h \
1078 coding.h msdos.h dispextern.h blockinput.h atimer.h $(config_h)
1079 filelock.o: filelock.c buffer.h character.h charset.h coding.h systime.h \
1080 epaths.h $(config_h)
1081 filemode.o: filemode.c $(config_h)
1082 frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
1083 blockinput.h atimer.h systime.h buffer.h character.h fontset.h $(FONTSRC) \
1084 msdos.h dosfns.h dispextern.h w32term.h macterm.h termchar.h $(config_h)
1085 fringe.o: fringe.c dispextern.h frame.h window.h buffer.h termhooks.h $(config_h)
1086 font.o: font.c dispextern.h frame.h window.h ccl.h character.h charset.h \
1087 font.h $(config_h)
1088 ftfont.o: dispextern.h frame.h character.h charset.h font.h $(config_h)
1089 fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h character.h \
1090 charset.h frame.h keyboard.h termhooks.h $(FONTSRC) $(config_h)
1091 getloadavg.o: getloadavg.c $(config_h)
1092 image.o: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
1093 systime.h xterm.h w32term.h w32gui.h macterm.h macgui.h $(FONTSRC) \
1094 $(config_h)
1095 indent.o: indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h \
1096 termopts.h disptab.h region-cache.h character.h category.h composite.h \
1097 dispextern.h keyboard.h
1098 insdel.o: insdel.c window.h buffer.h $(INTERVAL_SRC) blockinput.h character.h \
1099 dispextern.h atimer.h systime.h region-cache.h $(config_h)
1100 keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h character.h \
1101 commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
1102 systime.h dispextern.h syntax.h $(INTERVAL_SRC) blockinput.h \
1103 atimer.h xterm.h puresize.h msdos.h keymap.h w32term.h macterm.h $(config_h)
1104 keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
1105 atimer.h systime.h puresize.h character.h intervals.h keymap.h window.h \
1106 $(config_h)
1107 lastfile.o: lastfile.c $(config_h)
1108 macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h \
1109 dispextern.h $(config_h)
1110 malloc.o: malloc.c $(config_h)
1111 gmalloc.o: gmalloc.c $(config_h)
1112 ralloc.o: ralloc.c $(config_h)
1113 vm-limit.o: vm-limit.c mem-limits.h $(config_h)
1114 marker.o: marker.c buffer.h character.h $(config_h)
1115 md5.o: md5.c md5.h $(config_h)
1116 minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h \
1117 buffer.h commands.h character.h msdos.h $(INTERVAL_SRC) keymap.h \
1118 termhooks.h $(config_h)
1119 mktime.o: mktime.c $(config_h)
1120 msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
1121 termopts.h termchar.h character.h coding.h ccl.h disptab.h window.h \
1122 keyboard.h intervals.h buffer.h commands.h blockinput.h atimer.h $(config_h)
1123 process.o: process.c process.h buffer.h window.h termhooks.h termopts.h \
1124 commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
1125 blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
1126 keyboard.h $(config_h)
1127 regex.o: regex.c syntax.h buffer.h $(config_h) regex.h category.h character.h \
1128 charset.h
1129 region-cache.o: region-cache.c buffer.h region-cache.h $(config_h)
1130 scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
1131 termhooks.h $(config_h)
1132 search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
1133 blockinput.h atimer.h systime.h category.h character.h charset.h \
1134 composite.h $(INTERVAL_SRC) \
1135 $(config_h)
1136 strftime.o: strftime.c $(config_h)
1137 syntax.o: syntax.c syntax.h buffer.h commands.h category.h character.h \
1138 composite.h keymap.h regex.h $(INTERVAL_SRC) $(config_h)
1139 sysdep.o: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
1140 process.h dispextern.h termhooks.h termchar.h termopts.h \
1141 frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h $(config_h)
1142 term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \
1143 disptab.h dispextern.h keyboard.h character.h charset.h coding.h ccl.h \
1144 msdos.h window.h keymap.h blockinput.h atimer.h systime.h
1145 termcap.o: termcap.c $(config_h)
1146 terminal.o: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
1147 keyboard.h $(config_h)
1148 terminfo.o: terminfo.c $(config_h)
1149 tparam.o: tparam.c $(config_h)
1150 undo.o: undo.c buffer.h commands.h window.h $(config_h)
1151 /* This hack is to discard any space that cpp might put at the beginning
1152 of UNEXEC when substituting it in. */
1153 UNEXEC_ALIAS=UNEXEC
1154 $(UNEXEC_ALIAS): UNEXEC_SRC $(config_h)
1155 w16select.o: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
1156 msdos.h buffer.h charset.h coding.h composite.h $(config_h)
1157 widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h \
1158 $(srcdir)/../lwlib/lwlib.h $(config_h)
1159 window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
1160 disptab.h keyboard.h dispextern.h msdos.h composite.h \
1161 keymap.h blockinput.h atimer.h systime.h $(INTERVAL_SRC) \
1162 xterm.h w32term.h macterm.h $(config_h)
1163 xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h \
1164 coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h \
1165 charset.h $(config_h) keyboard.h $(INTERVAL_SRC) region-cache.h xterm.h \
1166 w32term.h macterm.h msdos.h composite.h fontset.h blockinput.h atimer.h \
1167 systime.h keymap.h $(FONTSRC)
1168 xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
1169 window.h character.h charset.h msdos.h dosfns.h composite.h atimer.h \
1170 systime.h keyboard.h fontset.h w32term.h macterm.h $(INTERVAL_SRC) \
1171 termchar.h termhooks.h $(FONTSRC) $(config_h)
1172 xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
1173 $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h \
1174 character.h charset.h coding.h gtkutil.h $(config_h) termhooks.h \
1175 fontset.h termchar.h $(FONTSRC)
1176 xfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1177 font.h $(config_h)
1178 xftfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1179 font.h $(config_h)
1180 ftxfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1181 font.h $(config_h)
1182 xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
1183 charset.h keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h \
1184 systime.h gtkutil.h msdos.h coding.h $(config_h)
1185 xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
1186 dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
1187 keyboard.h emacs-icon.h character.h charset.h ccl.h fontset.h composite.h \
1188 coding.h process.h gtkutil.h $(FONTSRC) $(config_h)
1189 xselect.o: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
1190 buffer.h atimer.h systime.h termhooks.h $(config_h)
1191 xrdb.o: xrdb.c $(config_h) epaths.h
1192 xsmfns.o: xsmfns.c $(config_h) systime.h sysselect.h termhooks.h xterm.h \
1193 lisp.h termopts.h
1194 gtkutil.o: gtkutil.c gtkutil.h xterm.h lisp.h frame.h $(config_h) \
1195 blockinput.h window.h atimer.h systime.h termhooks.h keyboard.h \
1196 charset.h coding.h
1197 dbusbind.o: dbusbind.c termhooks.h $(config_h)
1198
1199 hftctl.o: hftctl.c $(config_h)
1200 sound.o: sound.c dispextern.h $(config_h)
1201 atimer.o: atimer.c atimer.h systime.h $(config_h)
1202
1203 /* The files of Lisp proper */
1204
1205 alloc.o: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h keyboard.h \
1206 blockinput.h atimer.h systime.h character.h dispextern.h $(config_h) \
1207 $(INTERVAL_SRC)
1208 bytecode.o: bytecode.c buffer.h syntax.h character.h window.h dispextern.h \
1209 frame.h xterm.h $(config_h)
1210 data.o: data.c buffer.h puresize.h character.h syssignal.h keyboard.h frame.h \
1211 termhooks.h $(config_h)
1212 eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
1213 dispextern.h $(config_h)
1214 floatfns.o: floatfns.c $(config_h)
1215 fns.o: fns.c commands.h $(config_h) frame.h buffer.h character.h keyboard.h \
1216 keymap.h frame.h window.h dispextern.h $(INTERVAL_SRC) coding.h md5.h \
1217 blockinput.h atimer.h systime.h xterm.h termhooks.h
1218 print.o: print.c process.h frame.h window.h buffer.h keyboard.h character.h \
1219 $(config_h) dispextern.h termchar.h $(INTERVAL_SRC) msdos.h composite.h \
1220 blockinput.h atimer.h systime.h $(FONTSRC)
1221 lread.o: lread.c commands.h keyboard.h buffer.h epaths.h character.h \
1222 charset.h $(config_h) $(INTERVAL_SRC) termhooks.h coding.h msdos.h
1223
1224 /* Text properties support */
1225 textprop.o: textprop.c buffer.h window.h dispextern.h $(INTERVAL_SRC) \
1226 $(config_h)
1227 intervals.o: intervals.c buffer.h $(INTERVAL_SRC) keyboard.h puresize.h \
1228 keymap.h $(config_h)
1229 composite.o: composite.c buffer.h character.h $(INTERVAL_SRC) $(config_h)
1230
1231 /* System-specific programs to be made.
1232 OTHER_FILES and OBJECTS_MACHINE
1233 select which of these should be compiled. */
1234
1235 #ifdef HAVE_CARBON
1236 buffer.o callint.o cmds.o dispnew.o editfns.o fileio.o frame.o \
1237 fontset.o indent.o insdel.o keyboard.o macros.o minibuf.o msdos.o process.o \
1238 scroll.o sysdep.o term.o terminal.o widget.o window.o xdisp.o xfaces.o xfns.o xmenu.o \
1239 xterm.o xselect.o sound.o: macgui.h
1240 mac.o: mac.c process.h sysselect.h blockinput.h atimer.h systime.h charset.h \
1241 coding.h ccl.h $(config_h)
1242 macfns.o: macfns.c charset.h macterm.h macgui.h frame.h window.h buffer.h \
1243 dispextern.h macgui.h fontset.h $(INTERVAL_SRC) keyboard.h blockinput.h \
1244 atimer.h systime.h epaths.h termhooks.h coding.h $(config_h)
1245 macmenu.o: macmenu.c termhooks.h frame.h window.h dispextern.h macgui.h \
1246 keyboard.h blockinput.h atimer.h systime.h buffer.h macterm.h $(config_h)
1247 macterm.o: blockinput.h atimer.h systime.h syssignal.h macterm.h macgui.h \
1248 frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h termopts.h \
1249 termchar.h disptab.h buffer.h window.h keyboard.h $(INTERVAL_SRC) \
1250 process.h coding.h $(config_h)
1251 macselect.o: blockinput.h atimer.h systime.h macterm.h macgui.h frame.h \
1252 keymap.h $(config_h)
1253 mactoolbox.o: blockinput.h atimer.h systime.h macterm.h macgui.h frame.h \
1254 charset.h coding.h ccl.h dispextern.h fontset.h termhooks.h buffer.h \
1255 window.h keyboard.h $(config_h)
1256
1257 ${emacsapp}Contents/Resources/English.lproj:
1258 mkdir -p $@
1259
1260 ifneq (${emacsapp},${emacsappsrc})
1261 ${emacsapp}Contents/Info.plist: ${emacsappsrc}Contents/Info.plist
1262 cp $< $@
1263 ${emacsapp}Contents/PkgInfo: ${emacsappsrc}Contents/PkgInfo
1264 cp $< $@
1265 ${emacsapp}Contents/Resources/Emacs.icns: ${emacsappsrc}Contents/Resources/Emacs.icns
1266 mkdir -p ${emacsapp}Contents/Resources
1267 cp $< $@
1268 ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings: ${emacsappsrc}Contents/Resources/English.lproj/InfoPlist.strings
1269 cp $< $@
1270 endif
1271
1272 macosx-bundle: ${emacsapp}Contents/Resources/English.lproj \
1273 ${emacsapp}Contents/Info.plist ${emacsapp}Contents/PkgInfo \
1274 ${emacsapp}Contents/Resources/Emacs.icns \
1275 ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings
1276 macosx-app: macosx-bundle ${emacsapp}Contents/MacOS/Emacs
1277 ${emacsapp}Contents/MacOS/Emacs: emacs${EXEEXT}
1278 mkdir -p ${emacsapp}Contents/MacOS/;
1279 cd ${emacsapp}Contents/MacOS/; cp ../../../../src/emacs${EXEEXT} Emacs${EXEEXT}
1280 #endif
1281
1282 bootstrapclean:
1283 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
1284 mostlyclean:
1285 rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a
1286 rm -f ../etc/DOC
1287 rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
1288 rm -f buildobj.lst
1289 clean: mostlyclean
1290 rm -f emacs-*.*.*${EXEEXT} emacs${EXEEXT}
1291 /**/# This is used in making a distribution.
1292 /**/# Do not use it on development directories!
1293 distclean: clean
1294 rm -f epaths.h config.h Makefile Makefile.c config.stamp stamp-oldxmenu ../etc/DOC-*
1295 mv ./.gdbinit ./.gdbinit.save
1296 if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
1297 else mv ./.gdbinit.save ./.gdbinit; fi
1298 maintainer-clean: distclean
1299 @echo "This command is intended for maintainers to use;"
1300 @echo "it deletes files that may require special tools to rebuild."
1301 rm -f TAGS
1302 versionclean:
1303 -rm -f emacs${EXEEXT} emacs-*.*.*${EXEEXT} ../etc/DOC*
1304 extraclean: distclean
1305 -rm -f *~ \#* m/?*~ s/?*~
1306
1307 /* Arrange to make a tags table TAGS-LISP for ../lisp,
1308 plus TAGS for the C files, which includes ../lisp/TAGS by reference. */
1309
1310 ctagsfiles1 = [xyzXYZ]*.[hc]
1311 ctagsfiles2 = [a-wA-W]*.[hc]
1312
1313 TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1314 ../lib-src/etags --include=TAGS-LISP --include=${lwlibdir}/TAGS \
1315 --regex='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \
1316 $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
1317 frc:
1318 TAGS-LISP: frc
1319 $(MAKE) -f ${lispdir}Makefile TAGS-LISP ETAGS=../lib-src/etags
1320
1321 $(lwlibdir)TAGS:
1322 (cd $(lwlibdir); $(MAKE) -f $(lwlibdir)Makefile tags ETAGS=../lib-src/etags)
1323
1324 tags: TAGS TAGS-LISP $(lwlibdir)TAGS
1325 .PHONY: tags
1326
1327
1328 /* Bootstrapping. */
1329
1330 bootstrap: bootstrap-emacs${EXEEXT}
1331
1332 /* Dump an Emacs executable named bootstrap-emacs containing the
1333 files from loadup.el in source form. */
1334
1335 bootstrap-emacs${EXEEXT}: temacs${EXEEXT} ${lispsource}international/charprop.el
1336 #ifdef CANNOT_DUMP
1337 ln temacs${EXEEXT} bootstrap-emacs${EXEEXT}
1338 #else
1339 $(RUN_TEMACS) --batch --load loadup bootstrap
1340 mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
1341 #endif /* ! defined (CANNOT_DUMP) */