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, 2009, 2010
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,
28 # Replacing a particular part of the conditionals to work via autoconf
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.
37 abs_builddir
= @abs_builddir@
47 # Substitute an assignment for the MAKE variable, because
48 # BSD doesn't have it as a default.
50 # Don't use LIBS. configure puts stuff in it that either shouldn't be
51 # linked with Emacs or is duplicated by the cpp stuff below.
55 lispsource
= ${srcdir}/..
/lisp
/
58 oldXMenudir
= ..
/oldXMenu
/
62 # Configuration files for .o files to depend on.
63 M_FILE
= ${srcdir}/@machfile@
64 S_FILE
= ${srcdir}/@opsysfile@
65 config_h
= config.h
$(M_FILE
) $(S_FILE
)
67 bootstrap_exe
= ${abs_builddir}/bootstrap-emacs
${EXEEXT}
69 OTHER_FILES
= @OTHER_FILES@
73 ## Machine-specific CFLAGS.
74 C_SWITCH_MACHINE
=@C_SWITCH_MACHINE@
75 ## System-specific CFLAGS.
76 C_SWITCH_SYSTEM
=@C_SWITCH_SYSTEM@
77 ## This holds any special options for linking temacs only (ie, not
78 ## used by configure).
79 LD_SWITCH_SYSTEM_TEMACS
=@LD_SWITCH_SYSTEM_TEMACS@
80 ## Next two must come before LD_SWITCH_SYSTEM.
81 ## If needed, a -R option that says where to find X windows at run time.
82 LD_SWITCH_X_SITE_AUX
=@LD_SWITCH_X_SITE_AUX@
83 ## As above, but using -rpath instead.
84 LD_SWITCH_X_SITE_AUX_RPATH
=@LD_SWITCH_X_SITE_AUX_RPATH@
92 LIBX_EXTRA
=$(LIBTIFF
) $(LIBJPEG
) $(LIBPNG
) $(LIBGIF
) $(LIBXPM
) -lX11
$(XFT_LIBS
)
94 DBUS_CFLAGS
= @DBUS_CFLAGS@
95 DBUS_LIBS
= @DBUS_LIBS@
98 GCONF_CFLAGS
= @GCONF_CFLAGS@
99 GCONF_LIBS
= @GCONF_LIBS@
109 ## $(LIBXMU) -lXt $(LIBXTR6) -lXext if USE_X_TOOLKIT, else $(LIBXSM).
110 ## Only used if HAVE_X_WINDOWS.
111 LIBXT_OTHER
=@LIBXT_OTHER@
113 XMENU_OBJ
=@XMENU_OBJ@
116 TOOLKIT_LIBW
=@TOOLKIT_LIBW@
119 CFLAGS_SOUND
= @CFLAGS_SOUND@
121 RSVG_LIBS
= @RSVG_LIBS@
122 RSVG_CFLAGS
= @RSVG_CFLAGS@
124 ## widget.o if USE_X_TOOLKIT, otherwise empty.
125 WIDGET_OBJ
=@WIDGET_OBJ@
127 ## sheap.o if CYGWIN, otherwise empty.
128 CYGWIN_OBJ
=@CYGWIN_OBJ@
131 NS_SUPPORT
=@NS_SUPPORT@
133 ## Only used if HAVE_X_WINDOWS and HAVE_WINDOW_SYSTEM.
136 ## ${lispsource}mouse.elc if HAVE_GPM, otherwise empty.
137 ## Not used if HAVE_MOUSE.
138 GPM_MOUSE_SUPPORT
=@GPM_MOUSE_SUPPORT@
140 BASE_WINDOW_SUPPORT
=${lispsource}fringe.elc
${lispsource}image.elc \
141 ${lispsource}international
/fontset.elc
${lispsource}dnd.elc \
142 ${lispsource}tool-bar.elc
${lispsource}mwheel.elc
144 X_WINDOW_SUPPORT
=${lispsource}x-dnd.elc
${lispsource}term
/common-win.elc \
145 ${lispsource}term
/x-win.elc
${lispsource}dynamic-setting.elc
147 LIBSELINUX_LIBS
= @LIBSELINUX_LIBS@
149 INTERVALS_H
= dispextern.h intervals.h composite.h
151 GETLOADAVG_LIBS
= @GETLOADAVG_LIBS@
153 RUN_TEMACS
= `/bin/pwd`/temacs
155 # ========================== start of cpp stuff =======================
156 /* From here on
, comments must be done in C syntax.
*/
158 /* just to be sure the sh is used
*/
161 #define THIS_IS_MAKEFILE
166 DEPFLAGS
= -MMD
-MF deps
/$*.d
169 /* Do not let the file name mktime.c
get messed up.
*/
174 /* Use HAVE_X11
as an alias for X11 in this file
175 to avoid problems with X11
as a subdirectory name
176 in
-I and other such options which pass through this file.
*/
183 /* On some machines
#define register is done in config;
184 do not let it interfere with this file.
*/
187 /* Some machines do not find the standard C libraries in the usual place.
*/
192 /* Under GNUstep
, putting libc on the link line causes problems.
*/
193 #ifdef NS_IMPL_GNUSTEP
198 /* Some s
/SYSTEM.h files
define this to request special libraries.
*/
203 /* Some s
/SYSTEM.h files
define this to request special switches in
ld.
*/
204 #ifndef LD_SWITCH_SYSTEM
205 #if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
206 #define LD_SWITCH_SYSTEM -X
207 #else /* (defined (BSD_SYSTEM) && !defined (COFF)) */
208 #define LD_SWITCH_SYSTEM
209 #endif /* (defined (BSD_SYSTEM) && !defined (COFF)) */
210 #endif /* LD_SWITCH_SYSTEM */
212 /* These macros are for switches specifically related to X Windows.
*/
213 #ifndef LD_SWITCH_X_SITE
214 #define LD_SWITCH_X_SITE
217 STARTFILES
= START_FILES
220 #ifdef NS_IMPL_GNUSTEP
221 /* Pull in stuff from GNUstep-make.
*/
224 include @GNUSTEP_MAKEFILES@
/Additional
/base.make
225 include @GNUSTEP_MAKEFILES@
/Additional
/gui.make
229 /* DO NOT use
-R. There is a special hack described in lastfile.c
230 which is used instead. Some initialized data areas are modified
231 at initial startup
, then labeled
as part of the text area when
232 Emacs is dumped for the first time
, and never changed again.
*/
234 /* -Demacs is needed to make some files produce the correct version
237 -DHAVE_CONFIG_H is needed for some other files to take advantage of
238 the information in
``config.h
''.
*/
240 /* C_SWITCH_X_SITE must come before C_SWITCH_X_SYSTEM
241 since it may have
-I options that should
override those two.
*/
242 ALL_CFLAGS
=-Demacs
-DHAVE_CONFIG_H
$(MYCPPFLAGS
) -I.
-I
${srcdir} ${C_SWITCH_MACHINE} ${C_SWITCH_SYSTEM} @C_SWITCH_X_SITE@ @C_SWITCH_X_SYSTEM@
${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} ${GCONF_CFLAGS} ${CFLAGS} @FREETYPE_CFLAGS@ @FONTCONFIG_CFLAGS@ @LIBOTF_CFLAGS@ @M17N_FLT_CFLAGS@
${DEPFLAGS}
243 ALL_OBJC_CFLAGS
=$(ALL_CFLAGS
) @GNU_OBJC_CFLAGS@
248 @
-test -d deps || mkdir deps
250 $(CC
) -c
$(CPPFLAGS
) $(ALL_CFLAGS
) $<
253 @
-test -d deps || mkdir deps
255 $(CC
) -c
$(CPPFLAGS
) $(ALL_OBJC_CFLAGS
) $<
257 #ifdef HAVE_X_WINDOWS
258 /* This
test needs to say in
cpp for the time being
, since s
/ms-w32.h and
259 s
/msdos.h
define HAVE_MENUS
, possibly overriding configure.
*/
263 #else /* not HAVE_MENUS */
266 #endif /* not HAVE_MENUS */
268 LIBXT
=$(TOOLKIT_LIBW
) $(LIBXT_OTHER
)
269 LIBX_BASE
=$(LIBXMENU
) LD_SWITCH_X_SITE
270 LIBX_OTHER
=@LIBX_OTHER@
271 #endif /* not HAVE_X_WINDOWS */
273 #ifndef ORDINARY_LINK
274 /* Fix linking if compiled with GCC.
*/
278 #define LINKER_WAS_SPECIFIED
281 /* Versions of GCC
>= 2.0 put their library
, libgcc.a
, in obscure
282 places that are difficult to figure out at make time. Fortunately
,
283 these same versions allow you to pass arbitrary flags on to the
284 linker
, so there is no reason not to use it
as a linker.
286 Well
, it is not quite perfect. The
"-nostdlib" keeps GCC from
287 searching for libraries in its internal directories
, so we have to
288 ask GCC explicitly where to find libgcc.a.
*/
291 #define LINKER $(CC) -nostdlib
295 /* Ask GCC where to find libgcc.a.
*/
296 #define LIB_GCC `$(CC) -print-libgcc-file-name`
297 #endif /* not LIB_GCC */
301 #ifndef LINKER_WAS_SPECIFIED
302 /* GCC passes any argument prefixed with
-Xlinker directly to the
303 linker. See prefix-args.c for an explanation of why we do not do
304 this with the
shell''s
``for
'' construct.
305 Note that some people do not have
'.' in their paths
, so we must
306 use .
/prefix-args.
*/
307 #define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
309 #define YMF_PASS_LDFLAGS(flags) flags
312 #else /* not __GNUC__ */
315 #endif /* not __GNUC__ */
316 #endif /* not ORDINARY_LINK */
323 #else /* not LINKER */
325 #endif /* not LINKER */
326 #endif /* not ORDINARY_LINK */
328 /* Flags to pass to LD only for temacs.
*/
329 /* Do not split this line with a backslash. That can cause trouble with
331 TEMACS_LDFLAGS
= LD_SWITCH_SYSTEM
$(LD_SWITCH_SYSTEM_TEMACS
)
333 /* A macro which other sections of Makefile can redefine to munge the
334 flags before they are passed to LD. This is helpful if you have
335 redefined LD to something odd
, like
"gcc".
336 (The YMF
prefix is a holdover from the old name
"ymakefile".
)
338 #ifndef YMF_PASS_LDFLAGS
339 #define YMF_PASS_LDFLAGS(flags) flags
343 #ifdef HAVE_X_WINDOWS
344 MSDOS_OBJ
= dosfns.o msdos.o xmenu.o
346 MSDOS_OBJ
= dosfns.o msdos.o w16select.o xmenu.o termcap.o
351 ns_appdir
=@ns_appdir@
/
352 ns_appbindir
=@ns_appbindir@
/
353 ns_appresdir
=@ns_appresdir@
/
354 ns_appsrc
=@ns_appsrc@
357 #ifdef HAVE_WINDOW_SYSTEM
358 #ifdef HAVE_X_WINDOWS
359 FONT_DRIVERS
=$(FONT_OBJ
)
360 #endif /* HAVE_X_WINDOWS */
361 #endif /* HAVE_WINDOW_SYSTEM */
363 /* lastfile must follow
all files
364 whose initialized data areas should be dumped
as pure by dump-emacs.
*/
365 obj
= dispnew.o frame.o scroll.o xdisp.o menu.o
$(XMENU_OBJ
) window.o \
366 charset.o coding.o category.o ccl.o character.o chartab.o bidi.o \
367 cm.o term.o terminal.o xfaces.o
$(XOBJ
) $(GTK_OBJ
) $(DBUS_OBJ
) \
368 emacs.o keyboard.o macros.o keymap.o sysdep.o \
369 buffer.o filelock.o insdel.o marker.o \
370 minibuf.o fileio.o dired.o filemode.o \
371 cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
372 alloc.o data.o doc.o editfns.o callint.o \
373 eval.o floatfns.o fns.o font.o
print.o lread.o \
374 syntax.o @unexec@ bytecode.o \
375 process.o callproc.o \
376 region-cache.o sound.o atimer.o \
377 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
378 $(MSDOS_OBJ
) $(NS_OBJ
) $(CYGWIN_OBJ
) $(FONT_DRIVERS
)
380 /* Object files used on some machine or other.
381 These go in the DOC file on
all machines
382 in case they are needed there.
*/
383 SOME_MACHINE_OBJECTS
= dosfns.o msdos.o \
384 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
385 fontset.o dbusbind.o \
386 nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
387 w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
388 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o
$(FONT_DRIVERS
)
392 /* Used to be
-ltermcap here. If your machine needs that
,
393 define LIBS_TERMCAP in the m
/MACHINE.h file.
*/
395 #define LIBS_TERMCAP -lcurses
396 #endif /* LIBS_TERMCAP */
397 termcapobj
= terminfo.o
398 #else /* ! defined (TERMINFO) */
401 #endif /* LIBS_TERMCAP */
402 termcapobj
= tparam.o
403 #endif /* ! defined (TERMINFO) */
408 #ifndef SYSTEM_MALLOC
409 #ifndef DOUG_LEA_MALLOC
410 gmallocobj
= gmalloc.o
417 vmlimitobj
= vm-limit.o
418 #endif /* !SYSTEM_MALLOC */
420 ## Empty on Cygwin, lastfile.o elsewhere.
421 PRE_ALLOC_OBJ
=@PRE_ALLOC_OBJ@
422 ## lastfile.o vm-limit.o on Cygwin, $vmlimitobj elsewhere.
423 POST_ALLOC_OBJ
=@POST_ALLOC_OBJ@
425 /* List of object files that make-docfile should not be told about.
*/
426 otherobj
= $(termcapobj
) $(PRE_ALLOC_OBJ
) $(gmallocobj
) $(rallocobj
) \
427 $(POST_ALLOC_OBJ
) $(WIDGET_OBJ
) $(LIBOBJS
)
430 #define MOUSE_SUPPORT ${lispsource}mouse.elc \
431 ${lispsource}select.elc
${lispsource}scroll-bar.elc
433 #define MOUSE_SUPPORT $(GPM_MOUSE_SUPPORT)
437 #define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
438 ${lispsource}dos-fns.elc
${lispsource}dos-w32.elc
${lispsource}dos-vars.elc \
439 ${lispsource}term
/internal.elc
${lispsource}term
/pc-win.elc
442 #define MSDOS_SUPPORT
445 #ifdef HAVE_WINDOW_SYSTEM
446 #ifdef HAVE_X_WINDOWS
447 #define WINDOW_SUPPORT $(BASE_WINDOW_SUPPORT) $(X_WINDOW_SUPPORT)
449 #define WINDOW_SUPPORT $(BASE_WINDOW_SUPPORT)
452 #define WINDOW_SUPPORT
456 #define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
457 ${lispsource}dos-w32.elc
${lispsource}w32-vars.elc \
458 ${lispsource}w32-fns.elc
${lispsource}term
/common-win.elc \
459 ${lispsource}term
/w32-win.elc
461 #define WINNT_SUPPORT
464 #ifdef HAVE_WINDOW_SYSTEM
465 #define TOOLTIP_SUPPORT ${lispsource}tooltip.elc
467 #define TOOLTIP_SUPPORT
470 /* This is the platform-specific list of Lisp files loaded into the
471 dumped Emacs. It is arranged like this because it is easier to generate
472 it semi-mechanically from loadup.el this way.
474 Note that this list should not
include lisp files which might not
475 be present
, like site-load.el and site-init.el
; this makefile
476 expects them
all to be either present or buildable.
478 Files which are loaded unconditionally
(i.e.
, on
all platforms
) should
479 also be in shortlisp. Files which are loaded conditionally
(i.e.
, only
480 on some platforms
) should instead be in SOME_MACHINE_LISP.
*/
482 /* Place loaddefs.el first
, so it gets generated first
, since it is on
483 the critical path
(relevant in parallel compilations
).
*/
486 ${lispsource}loaddefs.el \
487 ${lispsource}abbrev.elc \
488 ${lispsource}buff-menu.elc \
489 ${lispsource}button.elc \
490 ${lispsource}emacs-lisp
/byte-run.elc \
491 ${lispsource}composite.elc \
492 ${lispsource}cus-face.elc \
493 ${lispsource}cus-start.elc \
494 ${lispsource}custom.elc \
495 ${lispsource}emacs-lisp
/backquote.elc \
496 ${lispsource}emacs-lisp
/lisp-mode.elc \
497 ${lispsource}emacs-lisp
/lisp.elc \
498 ${lispsource}env.elc \
499 ${lispsource}faces.elc \
500 ${lispsource}files.elc \
501 ${lispsource}format.elc \
502 ${lispsource}facemenu.elc \
504 ${lispsource}emacs-lisp
/float-sup.elc \
505 ${lispsource}frame.elc \
506 ${lispsource}help.elc \
507 ${lispsource}indent.elc \
508 ${lispsource}isearch.elc \
509 ${lispsource}rfn-eshadow.elc \
510 ${lispsource}loadup.el \
511 ${lispsource}bindings.elc \
512 ${lispsource}emacs-lisp
/map-ynp.elc \
513 ${lispsource}menu-bar.elc \
514 ${lispsource}international
/mule.elc \
515 ${lispsource}international
/mule-conf.elc \
516 ${lispsource}international
/mule-cmds.elc \
517 ${lispsource}international
/characters.elc \
518 ${lispsource}international
/charprop.el \
519 ${lispsource}case-table.elc \
520 ${lispsource}language
/chinese.elc \
521 ${lispsource}language
/cyrillic.elc \
522 ${lispsource}language
/indian.elc \
523 ${lispsource}language
/sinhala.el \
524 ${lispsource}language
/english.el \
525 ${lispsource}language
/ethiopic.elc \
526 ${lispsource}language
/european.elc \
527 ${lispsource}language
/czech.el \
528 ${lispsource}language
/slovak.el \
529 ${lispsource}language
/romanian.el \
530 ${lispsource}language
/greek.el \
531 ${lispsource}language
/hebrew.el \
532 ${lispsource}language
/japanese.el \
533 ${lispsource}language
/korean.el \
534 ${lispsource}language
/lao.el \
535 ${lispsource}language
/cham.el \
536 ${lispsource}language
/tai-viet.el \
537 ${lispsource}language
/thai.el \
538 ${lispsource}language
/tibetan.elc \
539 ${lispsource}language
/vietnamese.elc \
540 ${lispsource}language
/misc-lang.el \
541 ${lispsource}language
/utf-8-lang.el \
542 ${lispsource}language
/georgian.el \
543 ${lispsource}language
/khmer.el \
544 ${lispsource}language
/burmese.el \
545 ${lispsource}paths.el \
546 ${lispsource}register.elc \
547 ${lispsource}replace.elc \
548 ${lispsource}simple.elc \
549 ${lispsource}minibuffer.elc \
550 ${lispsource}startup.elc \
551 ${lispsource}subr.elc \
552 ${lispsource}term
/tty-colors.elc \
553 ${lispsource}font-core.elc \
554 ${lispsource}emacs-lisp
/syntax.elc \
555 ${lispsource}font-lock.elc \
556 ${lispsource}jit-lock.elc \
557 ${lispsource}textmodes
/fill.elc \
558 ${lispsource}textmodes
/page.elc \
559 ${lispsource}textmodes
/paragraphs.elc \
560 ${lispsource}textmodes
/text-mode.elc \
561 ${lispsource}emacs-lisp
/timer.elc \
562 ${lispsource}jka-cmpr-hook.elc \
563 ${lispsource}vc-hooks.elc \
564 ${lispsource}ediff-hook.elc \
565 ${lispsource}epa-hook.elc \
571 ${lispsource}widget.elc \
572 ${lispsource}window.elc \
573 ${lispsource}version.el
575 /* List of relative names for those files from
$lisp that are loaded
576 unconditionally
(i.e. on
all platforms
). Files from
$lisp that
577 are only loaded on some platforms should instead be placed in
578 SOME_MACHINE_LISP. The only reason this variable exists is to prevent
579 the make-docfile command-line getting too long for some systems.
*/
581 ..
/lisp
/loaddefs.el \
583 ..
/lisp
/buff-menu.elc \
585 ..
/lisp
/emacs-lisp
/byte-run.elc \
586 ..
/lisp
/composite.elc \
587 ..
/lisp
/cus-face.elc \
588 ..
/lisp
/cus-start.elc \
590 ..
/lisp
/emacs-lisp
/backquote.elc \
591 ..
/lisp
/emacs-lisp
/lisp-mode.elc \
592 ..
/lisp
/emacs-lisp
/lisp.elc \
593 ..
/lisp
/facemenu.elc \
596 ..
/lisp
/emacs-lisp
/float-sup.elc \
601 ..
/lisp
/isearch.elc \
602 ..
/lisp
/rfn-eshadow.elc \
604 ..
/lisp
/bindings.elc \
605 ..
/lisp
/emacs-lisp
/map-ynp.elc \
607 ..
/lisp
/international
/mule.elc \
608 ..
/lisp
/international
/mule-conf.elc \
609 ..
/lisp
/international
/mule-cmds.elc \
610 ..
/lisp
/international
/characters.elc \
611 ..
/lisp
/case-table.elc \
612 ..
/lisp
/language
/chinese.elc \
613 ..
/lisp
/language
/cyrillic.elc \
614 ..
/lisp
/language
/indian.elc \
615 ..
/lisp
/language
/sinhala.el \
616 ..
/lisp
/language
/english.el \
617 ..
/lisp
/language
/ethiopic.elc \
618 ..
/lisp
/language
/european.elc \
619 ..
/lisp
/language
/czech.el \
620 ..
/lisp
/language
/slovak.el \
621 ..
/lisp
/language
/romanian.el \
622 ..
/lisp
/language
/greek.el \
623 ..
/lisp
/language
/hebrew.el \
624 ..
/lisp
/language
/japanese.el \
625 ..
/lisp
/language
/korean.el \
626 ..
/lisp
/language
/lao.el \
627 ..
/lisp
/language
/cham.el \
628 ..
/lisp
/language
/tai-viet.el \
629 ..
/lisp
/language
/thai.el \
630 ..
/lisp
/language
/tibetan.elc \
631 ..
/lisp
/language
/vietnamese.elc \
632 ..
/lisp
/language
/misc-lang.el \
633 ..
/lisp
/language
/utf-8-lang.el \
634 ..
/lisp
/language
/georgian.el \
635 ..
/lisp
/language
/khmer.el \
636 ..
/lisp
/language
/burmese.el \
637 ..
/lisp
/menu-bar.elc \
639 ..
/lisp
/register.elc \
640 ..
/lisp
/replace.elc \
642 ..
/lisp
/minibuffer.elc \
643 ..
/lisp
/startup.elc \
645 ..
/lisp
/term
/tty-colors.elc \
646 ..
/lisp
/font-core.elc \
647 ..
/lisp
/emacs-lisp
/syntax.elc \
648 ..
/lisp
/font-lock.elc \
649 ..
/lisp
/jit-lock.elc \
650 ..
/lisp
/textmodes
/fill.elc \
651 ..
/lisp
/textmodes
/page.elc \
652 ..
/lisp
/textmodes
/paragraphs.elc \
653 ..
/lisp
/textmodes
/text-mode.elc \
654 ..
/lisp
/emacs-lisp
/timer.elc \
655 ..
/lisp
/vc-hooks.elc \
656 ..
/lisp
/jka-cmpr-hook.elc \
657 ..
/lisp
/ediff-hook.elc \
658 ..
/lisp
/epa-hook.elc \
663 /* Like
$shortlisp, but includes only those files from
$lisp that are loaded
664 conditionally
(i.e.
, only on some platforms
).
*/
665 SOME_MACHINE_LISP
= ..
/lisp
/mouse.elc \
666 ..
/lisp
/select.elc ..
/lisp
/scroll-bar.elc \
667 ..
/lisp
/ls-lisp.elc ..
/lisp
/dos-fns.elc \
668 ..
/lisp
/w32-fns.elc ..
/lisp
/dos-w32.elc \
669 ..
/lisp
/disp-table.elc ..
/lisp
/dos-vars.elc \
670 ..
/lisp
/tooltip.elc ..
/lisp
/image.elc \
671 ..
/lisp
/fringe.elc ..
/lisp
/dnd.elc \
672 ..
/lisp
/mwheel.elc ..
/lisp
/tool-bar.elc \
673 ..
/lisp
/x-dnd.elc ..
/lisp
/dynamic-setting.elc \
674 ..
/lisp
/international
/ccl.elc \
675 ..
/lisp
/international
/fontset.elc \
677 ..
/lisp
/term
/common-win.elc \
678 ..
/lisp
/term
/x-win.elc \
679 ..
/lisp
/term
/pc-win.elc ..
/lisp
/term
/internal.elc \
680 ..
/lisp
/term
/ns-win.elc ..
/lisp
/term
/w32-win.elc \
681 ..
/lisp
/emacs-lisp
/easymenu.elc
683 /* Construct full set of libraries to be linked.
684 Note that SunOS needs
-lm to come before
-lc
; otherwise
, you
get
685 duplicated symbols. If the standard libraries were compiled
686 with GCC
, we might need gnulib again after them.
*/
688 LIBES
= $(LOADLIBES
) $(LIBS
) $(LIBX_BASE
) $(LIBX_OTHER
) $(LIBSOUND
) \
689 $(RSVG_LIBS
) $(DBUS_LIBS
) @LIBGPM@ @LIBRESOLV@ LIBS_SYSTEM LIBS_TERMCAP \
690 $(GETLOADAVG_LIBS
) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \
691 @FREETYPE_LIBS@ @FONTCONFIG_LIBS@ @LIBOTF_LIBS@ @M17N_FLT_LIBS@ \
692 $(GNULIB_VAR
) @LIB_MATH@ LIB_STANDARD
$(GNULIB_VAR
)
694 all: emacs
${EXEEXT} $(OTHER_FILES
)
696 emacs
${EXEEXT}: temacs
${EXEEXT} ${etc}DOC
${lisp}
699 ln temacs
${EXEEXT} emacs
${EXEEXT}
700 -EMACSLOADPATH
=${lispsource} .
/emacs
-q
-batch
-f list-load-path-shadows
702 LC_ALL
=C
$(RUN_TEMACS
) -batch
-l loadup dump
703 @
: This new Emacs is
as functional and more efficient then
704 @
: bootstrap-emacs
, so let us replace it.
705 -ln
-f emacs
${EXEEXT} bootstrap-emacs
${EXEEXT}
706 -.
/emacs
-q
-batch
-f list-load-path-shadows
707 #endif /* ! defined (CANNOT_DUMP) */
709 /* We run make-docfile twice because the command line may
get too long
711 /* ${SOME_MACHINE_OBJECTS} comes before
${obj} because some files may
712 or may not be included in
${obj}, but they are always included in
713 ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned
714 for the first time
, this prevents any variation between configurations
715 in the contents of the DOC file.
716 Likewise for
${SOME_MACHINE_LISP}.
*/
717 /* Most of this Makefile refers to Lisp files via
${lispsource}, so
718 we also use
${lisp} rather than
${shortlisp} for the dependency since
719 the Makefile uses string equality to decide when we talk about identical
720 files. Apparently we pass
${shortlisp} rather than
${lisp} to make-docfile
721 only in order to reduce the command line length.
--Stef
*/
722 ${etc}DOC
: ${libsrc}make-docfile
${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP}
724 ${libsrc}make-docfile
-d
${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
725 ${libsrc}make-docfile
-a
${etc}DOC
-d
${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
727 ${libsrc}make-docfile
${EXEEXT}:
728 cd
${libsrc}; ${MAKE} ${MFLAGS} make-docfile
${EXEEXT}
731 echo
"#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h
733 temacs
${EXEEXT}: $(LOCALCPP
) $(STARTFILES
) stamp-oldxmenu
${obj} ${otherobj} prefix-args
${EXEEXT}
734 #ifdef NS_IMPL_GNUSTEP
735 $(CC
) -rdynamic YMF_PASS_LDFLAGS
( ${TEMACS_LDFLAGS} \
736 -L@GNUSTEP_SYSTEM_LIBRARIES@
-lgnustep-gui
-lgnustep-base \
737 -lobjc
$(CONFIG_SYSTEM_LIBS
) -lpthread
) -o temacs \
738 ${obj} ${otherobj} ${LIBES}
740 $(LD
) YMF_PASS_LDFLAGS
(${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS
) \
741 -o temacs
${STARTFILES} ${obj} ${otherobj} \
745 /* We do not use ALL_LDFLAGS because LD_SWITCH_SYSTEM
746 often contains options that have to do with using Emacs
''s crt0
,
747 which are only good with temacs.
*/
748 prefix-args
${EXEEXT}: prefix-args.o
$(config_h
)
749 $(CC
) $(LDFLAGS
) prefix-args.o
-o prefix-args
751 #if defined (HAVE_X_WINDOWS) && defined (HAVE_X11) && defined (HAVE_MENUS) && ! defined (USE_GTK)
753 /* We use stamp-xmenu with these two deps
754 to both ensure that lwlib gets remade based on its dependencies
756 and remake temacs if lwlib gets changed by this.
*/
757 stamp-oldxmenu
: ${OLDXMENU} ..
/src
/$(OLDXMENU
)
759 /* Supply an ordering for parallel make.
*/
760 ..
/src
/$(OLDXMENU
): ${OLDXMENU}
763 $(OLDXMENU
): really-lwlib
766 cd
${lwlibdir}; ${MAKE} ${MFLAGS} \
767 CC
='${CC}' CFLAGS
='${CFLAGS}' MAKE
='${MAKE}'
768 @true
/* make
-t should not create really-lwlib.
*/
770 #else /* not USE_X_TOOLKIT */
771 $(OLDXMENU
): really-oldXMenu
774 cd
${oldXMenudir}; ${MAKE} ${MFLAGS} \
775 CC
='${CC}' CFLAGS
='${CFLAGS}' MAKE
='${MAKE}'
776 @true
/* make
-t should not create really-oldXMenu.
*/
777 .PHONY
: really-oldXMenu
778 #endif /* not USE_X_TOOLKIT */
779 #else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
781 /* We don
''t really need this
, but satisfy the dependency.
*/
784 #endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
786 ..
/config.status
:: epaths.in
787 @echo
"The file epaths.h needs to be set up from epaths.in."
788 @echo
"Please run the `configure' script again."
791 ..
/config.status
:: config.in
792 @echo
"The file config.h needs to be set up from config.in."
793 @echo
"Please run the `configure' script again."
796 ecrt0.o
: ecrt0.c
$(config_h
)
798 @
-test -d deps || mkdir deps
800 $(CC
) -c
$(ALL_CFLAGS
) ${srcdir}/ecrt0.c
805 ## FIXME some of these dependencies are platform-specific.
806 ## Eg callproc.c only depends on w32.h for WINDOWSNT builds.
807 ## One way to fix this would be to replace w32.h (etc) by $(W32_H),
808 ## a variable set by configure. Doesn't seem worth the trouble.
810 ## nsgui.h: In fact, every .o file depends directly or indirectly on
811 ## dispextern.h and hence nsgui.h under NS. But the ones that actually
812 ## use stuff there are more limited.
813 atimer.o
: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \
815 bidi.o
: bidi.c buffer.h character.h dispextern.h lisp.h
$(config_h
)
816 buffer.o
: buffer.c buffer.h region-cache.h commands.h window.h \
817 $(INTERVALS_H
) blockinput.h atimer.h systime.h character.h \
818 indent.h keyboard.h coding.h keymap.h frame.h lisp.h
$(config_h
)
819 callint.o
: callint.c window.h commands.h buffer.h keymap.h \
820 keyboard.h dispextern.h systime.h coding.h composite.h lisp.h
$(config_h
)
821 callproc.o
: callproc.c epaths.h buffer.h commands.h lisp.h
$(config_h
) \
822 process.h systty.h syssignal.h character.h coding.h ccl.h msdos.h \
823 composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h \
825 casefiddle.o
: casefiddle.c syntax.h commands.h buffer.h character.h \
826 composite.h keymap.h lisp.h
$(config_h
)
827 casetab.o
: casetab.c buffer.h character.h lisp.h
$(config_h
)
828 category.o
: category.c category.h buffer.h charset.h keymap.h \
829 character.h lisp.h
$(config_h
)
830 ccl.o
: ccl.c ccl.h charset.h character.h coding.h composite.h lisp.h
$(config_h
)
831 character.o
: character.c character.h buffer.h charset.h composite.h disptab.h \
833 charset.o
: charset.c charset.h character.h buffer.h coding.h composite.h \
834 disptab.h lisp.h
$(config_h
)
835 chartab.o
: charset.h character.h ccl.h lisp.h
$(config_h
)
836 coding.o
: coding.c coding.h ccl.h buffer.h character.h charset.h composite.h \
837 window.h dispextern.h frame.h termhooks.h lisp.h
$(config_h
)
838 cm.o
: cm.c frame.h cm.h termhooks.h termchar.h dispextern.h lisp.h
$(config_h
)
839 cmds.o
: cmds.c syntax.h buffer.h character.h commands.h window.h lisp.h
$(config_h
) \
840 msdos.h dispextern.h keyboard.h keymap.h systime.h coding.h frame.h \
842 pre-crt0.o
: pre-crt0.c
843 dbusbind.o
: dbusbind.c termhooks.h frame.h keyboard.h lisp.h
$(config_h
)
844 dired.o
: dired.c commands.h buffer.h lisp.h
$(config_h
) character.h charset.h \
845 coding.h regex.h systime.h blockinput.h atimer.h composite.h
846 dispnew.o
: dispnew.c systime.h commands.h process.h frame.h coding.h \
847 window.h buffer.h termchar.h termopts.h termhooks.h cm.h \
848 disptab.h indent.h
$(INTERVALS_H
) nsgui.h \
849 xterm.h blockinput.h atimer.h character.h msdos.h keyboard.h \
850 syssignal.h lisp.h
$(config_h
)
851 doc.o
: doc.c lisp.h
$(config_h
) epaths.h buffer.h keyboard.h keymap.h \
852 character.h systime.h coding.h composite.h
853 doprnt.o
: doprnt.c character.h lisp.h
$(config_h
)
854 dosfns.o
: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
855 msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \
857 editfns.o
: editfns.c window.h buffer.h systime.h
$(INTERVALS_H
) character.h \
858 coding.h frame.h blockinput.h atimer.h lisp.h
$(config_h
)
859 emacs.o
: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
860 termhooks.h buffer.h atimer.h systime.h
$(INTERVALS_H
) lisp.h
$(config_h
) \
861 window.h dispextern.h keyboard.h keymap.h frame.h coding.h
862 fileio.o
: fileio.c window.h buffer.h systime.h
$(INTERVALS_H
) character.h \
863 coding.h msdos.h blockinput.h atimer.h lisp.h
$(config_h
) frame.h commands.h
864 filelock.o
: filelock.c buffer.h character.h coding.h systime.h composite.h \
866 filemode.o
: filemode.c
$(config_h
)
867 frame.o
: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
868 blockinput.h atimer.h systime.h buffer.h character.h fontset.h font.h \
869 msdos.h dosfns.h dispextern.h w32term.h nsgui.h termchar.h coding.h \
870 composite.h lisp.h
$(config_h
) termhooks.h ccl.h
871 fringe.o
: fringe.c dispextern.h nsgui.h frame.h window.h buffer.h termhooks.h \
872 blockinput.h atimer.h systime.h lisp.h
$(config_h
)
873 font.o
: font.c dispextern.h frame.h window.h ccl.h character.h charset.h \
874 font.h lisp.h
$(config_h
) buffer.h composite.h fontset.h xterm.h nsgui.h
875 ftfont.o
: dispextern.h frame.h character.h charset.h composite.h font.h \
876 lisp.h
$(config_h
) blockinput.h atimer.h systime.h coding.h fontset.h \
878 fontset.o
: fontset.c fontset.h ccl.h buffer.h character.h \
879 charset.h frame.h keyboard.h termhooks.h font.h lisp.h
$(config_h
) \
880 blockinput.h atimer.h systime.h coding.h
$(INTERVALS_H
) nsgui.h \
882 getloadavg.o
: getloadavg.c
$(config_h
)
883 gtkutil.o
: gtkutil.c gtkutil.h xterm.h lisp.h frame.h lisp.h
$(config_h
) \
884 blockinput.h window.h atimer.h systime.h termhooks.h keyboard.h \
885 charset.h coding.h syssignal.h dispextern.h composite.h
886 image.o
: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
887 systime.h xterm.h w32term.h w32gui.h font.h epaths.h character.h coding.h \
888 nsterm.h nsgui.h lisp.h
$(config_h
) composite.h termhooks.h ccl.h
889 indent.o
: indent.c frame.h window.h indent.h buffer.h lisp.h
$(config_h
) termchar.h \
890 termopts.h disptab.h region-cache.h character.h category.h \
891 keyboard.h systime.h coding.h
$(INTERVALS_H
)
892 insdel.o
: insdel.c window.h buffer.h
$(INTERVALS_H
) blockinput.h character.h \
893 dispextern.h atimer.h systime.h region-cache.h lisp.h
$(config_h
)
894 keyboard.o
: keyboard.c termchar.h termhooks.h termopts.h buffer.h character.h \
895 commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
896 systime.h syntax.h
$(INTERVALS_H
) blockinput.h atimer.h composite.h \
897 xterm.h puresize.h msdos.h keymap.h w32term.h nsterm.h nsgui.h coding.h \
899 keymap.o
: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
900 atimer.h systime.h puresize.h character.h charset.h
$(INTERVALS_H
) keymap.h window.h \
901 coding.h frame.h lisp.h
$(config_h
)
902 lastfile.o
: lastfile.c
$(config_h
)
903 macros.o
: macros.c window.h buffer.h commands.h macros.h keyboard.h \
904 dispextern.h lisp.h
$(config_h
) systime.h coding.h composite.h
905 gmalloc.o
: gmalloc.c
$(config_h
)
906 ralloc.o
: ralloc.c lisp.h
$(config_h
)
907 vm-limit.o
: vm-limit.c mem-limits.h lisp.h
$(config_h
)
908 marker.o
: marker.c buffer.h character.h lisp.h
$(config_h
)
909 md5.o
: md5.c md5.h
$(config_h
)
910 minibuf.o
: minibuf.c syntax.h frame.h window.h keyboard.h systime.h \
911 buffer.h commands.h character.h msdos.h
$(INTERVALS_H
) keymap.h \
912 termhooks.h lisp.h
$(config_h
) coding.h
913 mktime.o
: mktime.c
$(config_h
)
914 msdos.o
: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
915 termopts.h termchar.h character.h coding.h ccl.h disptab.h window.h \
916 keyboard.h
$(INTERVALS_H
) buffer.h commands.h blockinput.h atimer.h lisp.h
$(config_h
)
917 nsfns.o
: nsfns.m charset.h nsterm.h nsgui.h frame.h window.h buffer.h \
918 dispextern.h fontset.h
$(INTERVALS_H
) keyboard.h blockinput.h \
919 atimer.h systime.h epaths.h termhooks.h coding.h systime.h lisp.h
$(config_h
)
920 nsfont.o
: nsterm.h dispextern.h frame.h lisp.h lisp.h
$(config_h
)
921 nsimage.o
: nsimage.m nsterm.h lisp.h
$(config_h
)
922 nsmenu.o
: nsmenu.m termhooks.h frame.h window.h dispextern.h \
923 nsgui.h keyboard.h blockinput.h atimer.h systime.h buffer.h \
924 nsterm.h lisp.h
$(config_h
)
925 nsterm.o
: nsterm.m blockinput.h atimer.h systime.h syssignal.h nsterm.h \
926 nsgui.h frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h \
927 termopts.h termchar.h disptab.h buffer.h window.h keyboard.h \
928 $(INTERVALS_H
) process.h coding.h lisp.h
$(config_h
)
929 nsselect.o
: nsselect.m blockinput.h nsterm.h nsgui.h frame.h lisp.h
$(config_h
)
930 process.o
: process.c process.h buffer.h window.h termhooks.h termopts.h \
931 commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
932 blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
933 keyboard.h lisp.h
$(config_h
) character.h xgselect.h sysselect.h
934 regex.o
: regex.c syntax.h buffer.h lisp.h
$(config_h
) regex.h category.h character.h
935 region-cache.o
: region-cache.c buffer.h region-cache.h lisp.h
$(config_h
)
936 scroll.o
: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
937 termhooks.h lisp.h
$(config_h
) systime.h coding.h composite.h window.h
938 search.o
: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
939 blockinput.h atimer.h systime.h category.h character.h charset.h \
942 sound.o
: sound.c dispextern.h syssignal.h lisp.h
$(config_h
) atimer.h systime.h
943 strftime.o
: strftime.c
$(config_h
)
944 syntax.o
: syntax.c syntax.h buffer.h commands.h category.h character.h \
945 keymap.h regex.h
$(INTERVALS_H
) lisp.h
$(config_h
)
946 sysdep.o
: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
947 process.h dispextern.h termhooks.h termchar.h termopts.h coding.h \
948 frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h lisp.h
$(config_h
) \
950 term.o
: term.c termchar.h termhooks.h termopts.h lisp.h
$(config_h
) cm.h frame.h \
951 disptab.h keyboard.h character.h charset.h coding.h ccl.h xterm.h \
952 msdos.h window.h keymap.h blockinput.h atimer.h systime.h systty.h \
953 syssignal.h
$(INTERVALS_H
) buffer.h
954 termcap.o
: termcap.c lisp.h
$(config_h
)
955 terminal.o
: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
956 keyboard.h lisp.h
$(config_h
) dispextern.h composite.h systime.h
957 terminfo.o
: terminfo.c lisp.h
$(config_h
)
958 tparam.o
: tparam.c lisp.h
$(config_h
)
959 undo.o
: undo.c buffer.h commands.h window.h dispextern.h lisp.h
$(config_h
)
960 unexaix.o
: unexaix.c lisp.h
$(config_h
)
961 unexalpha.o
: unexalpha.c
$(config_h
)
962 unexcw.o
: unexcw.c lisp.h
$(config_h
)
963 unexec.o
: unexec.c lisp.h
$(config_h
)
964 unexelf.o
: unexelf.c
$(config_h
)
965 unexhp9k800.o
: unexhp9k800.c
$(config_h
)
966 unexmacosx.o
: unexmacosx.c
$(config_h
)
967 unexsol.o
: unexsol.c lisp.h
$(config_h
)
968 unexw32.o
: unexw32.c
$(config_h
)
969 w16select.o
: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
970 msdos.h buffer.h charset.h coding.h composite.h lisp.h
$(config_h
)
971 widget.o
: widget.c xterm.h frame.h dispextern.h widgetprv.h \
972 $(srcdir)/..
/lwlib
/lwlib.h lisp.h
$(config_h
)
973 window.o
: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
974 disptab.h keyboard.h msdos.h coding.h termhooks.h \
975 keymap.h blockinput.h atimer.h systime.h
$(INTERVALS_H
) \
976 xterm.h w32term.h nsterm.h nsgui.h lisp.h
$(config_h
)
977 xdisp.o
: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h \
978 coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h \
979 charset.h lisp.h
$(config_h
) keyboard.h
$(INTERVALS_H
) region-cache.h \
980 xterm.h w32term.h nsterm.h nsgui.h msdos.h composite.h fontset.h ccl.h \
981 blockinput.h atimer.h systime.h keymap.h font.h
982 xfaces.o
: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
983 window.h character.h charset.h msdos.h dosfns.h composite.h atimer.h \
984 systime.h keyboard.h fontset.h w32term.h nsterm.h coding.h ccl.h \
985 $(INTERVALS_H
) nsgui.h termchar.h termhooks.h font.h lisp.h
$(config_h
)
986 xfns.o
: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
987 $(srcdir)/..
/lwlib
/lwlib.h blockinput.h atimer.h systime.h epaths.h \
988 character.h charset.h coding.h gtkutil.h lisp.h
$(config_h
) termhooks.h \
989 fontset.h termchar.h font.h xsettings.h
$(INTERVALS_H
) ccl.h
990 xfont.o
: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
991 font.h lisp.h
$(config_h
) atimer.h systime.h fontset.h ccl.h
992 xftfont.o
: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
993 font.h lisp.h
$(config_h
) atimer.h systime.h fontset.h ccl.h ftfont.h
994 ftxfont.o
: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
995 font.h lisp.h
$(config_h
) atimer.h systime.h fontset.h ccl.h
996 menu.o
: menu.c lisp.h keyboard.h keymap.h frame.h termhooks.h blockinput.h \
997 dispextern.h
$(srcdir)/..
/lwlib
/lwlib.h xterm.h gtkutil.h menu.h \
998 lisp.h
$(config_h
) systime.h coding.h composite.h window.h atimer.h nsgui.h
999 xmenu.o
: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
1000 charset.h keyboard.h
$(srcdir)/..
/lwlib
/lwlib.h blockinput.h atimer.h \
1001 systime.h gtkutil.h msdos.h coding.h menu.h lisp.h
$(config_h
) composite.h \
1002 keymap.h sysselect.h
1003 xterm.o
: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
1004 dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
1005 keyboard.h emacs-icon.h character.h charset.h ccl.h fontset.h composite.h \
1006 coding.h process.h gtkutil.h font.h fontset.h lisp.h
$(config_h
) \
1007 xsettings.h intervals.h keymap.h xgselect.h sysselect.h
1008 xselect.o
: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
1009 buffer.h atimer.h systime.h termhooks.h lisp.h
$(config_h
) keyboard.h \
1010 coding.h composite.h
1011 xgselect.o
: xgselect.h systime.h sysselect.h lisp.h
$(config_h
)
1012 xrdb.o
: xrdb.c lisp.h
$(config_h
) epaths.h
1013 xsmfns.o
: xsmfns.c lisp.h
$(config_h
) systime.h sysselect.h termhooks.h xterm.h \
1014 lisp.h termopts.h frame.h dispextern.h
1015 xsettings.o
: xterm.h xsettings.h lisp.h frame.h termhooks.h
$(config_h
) \
1016 dispextern.h keyboard.h systime.h coding.h composite.h blockinput.h atimer.h \
1018 /* The files of Lisp proper
*/
1020 alloc.o
: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h \
1021 keyboard.h blockinput.h atimer.h systime.h character.h lisp.h
$(config_h
) \
1022 $(INTERVALS_H
) termhooks.h
1023 bytecode.o
: bytecode.c buffer.h syntax.h character.h window.h dispextern.h \
1024 frame.h xterm.h lisp.h
$(config_h
)
1025 data.o
: data.c buffer.h puresize.h character.h syssignal.h keyboard.h frame.h \
1026 termhooks.h systime.h coding.h composite.h dispextern.h font.h ccl.h \
1028 eval.o
: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
1029 dispextern.h lisp.h
$(config_h
) coding.h composite.h xterm.h
1030 floatfns.o
: floatfns.c syssignal.h lisp.h
$(config_h
)
1031 fns.o
: fns.c commands.h lisp.h
$(config_h
) frame.h buffer.h character.h keyboard.h \
1032 keymap.h window.h dispextern.h
$(INTERVALS_H
) coding.h md5.h \
1033 blockinput.h atimer.h systime.h xterm.h
1034 print.o
: print.c process.h frame.h window.h buffer.h keyboard.h character.h \
1035 lisp.h
$(config_h
) termchar.h
$(INTERVALS_H
) msdos.h termhooks.h \
1036 blockinput.h atimer.h systime.h font.h charset.h coding.h ccl.h
1037 lread.o
: lread.c commands.h keyboard.h buffer.h epaths.h character.h \
1038 charset.h lisp.h
$(config_h
) $(INTERVALS_H
) termhooks.h coding.h msdos.h \
1039 systime.h frame.h blockinput.h atimer.h
1041 /* Text properties support
*/
1042 composite.o
: composite.c buffer.h character.h coding.h font.h ccl.h \
1043 frame.h termhooks.h
$(INTERVALS_H
) window.h lisp.h
$(config_h
)
1044 intervals.o
: intervals.c buffer.h
$(INTERVALS_H
) keyboard.h puresize.h \
1045 keymap.h lisp.h
$(config_h
) systime.h coding.h
1046 textprop.o
: textprop.c buffer.h window.h
$(INTERVALS_H
) \
1049 #endif /* ! AUTO_DEPEND */
1051 /* System-specific programs to be made.
1053 select which of these should be compiled.
*/
1056 ${ns_appdir}: ${ns_appsrc}
1058 mkdir
-p
${ns_appdir}
1059 ( cd
${ns_appsrc} ; tar cfh
- .
) |
( cd
${ns_appdir} ; tar xf
- )
1060 ( cd
${ns_appdir} ; for subdir in
`find . -type d ! -name CVS -print` ; do \
1061 chmod a
+rx
$${subdir} ; \
1062 rm -rf
$${subdir}/CVS
; \
1063 rm -f
$${subdir}/.cvsignore
; done
; )
1065 ${ns_appbindir}Emacs
: emacs
${EXEEXT}
1066 mkdir
-p
${ns_appbindir}
1067 cp
-f emacs
${EXEEXT} ${ns_appbindir}Emacs
1069 ns-app
: ${ns_appdir} ${ns_appbindir}Emacs
1071 #endif /* HAVE_NS */
1074 rm -f temacs
${EXEEXT} prefix-args
${EXEEXT} core
*.core \
#* *.o libXMenu11.a liblw.a
1076 rm -f bootstrap-emacs
${EXEEXT} emacs-
${version}${EXEEXT}
1079 rm -f emacs-
*.
*.
*${EXEEXT} emacs
${EXEEXT}
1084 /* bootstrap-clean is used to
clean up just before a bootstrap.
1085 It should remove
all files generated during a compilation
/bootstrap
,
1086 but not things like config.status or TAGS.
*/
1087 bootstrap-clean
: clean
1088 rm -f epaths.h config.h Makefile.c config.stamp stamp-oldxmenu ..
/etc
/DOC-
*
1089 if
test -f .
/.gdbinit
; then \
1090 mv .
/.gdbinit .
/.gdbinit.save
; \
1091 if
test -f
"${srcdir}/.gdbinit"; then
rm -f .
/.gdbinit.save
; \
1092 else mv .
/.gdbinit.save .
/.gdbinit
; fi
; \
1094 /**/# This is used in making a distribution.
1095 /**/# Do not use it on development directories!
1096 distclean: bootstrap-clean
1098 maintainer-clean
: distclean
1099 @echo
"This command is intended for maintainers to use;"
1100 @echo
"it deletes files that may require special tools to rebuild."
1103 -rm -f emacs
${EXEEXT} emacs-
*.
*.
*${EXEEXT} ..
/etc
/DOC
*
1104 extraclean
: distclean
1105 -rm -f
*~ \
#* m/?*~ s/?*~
1107 /* Arrange to make a
tags table TAGS-LISP for ..
/lisp
,
1108 plus TAGS for the C files
, which includes ..
/lisp
/TAGS by reference.
*/
1110 ctagsfiles1
= [xyzXYZ
]*.
[hcm
]
1111 ctagsfiles2
= [a-wA-W
]*.
[hcm
]
1113 TAGS
: $(srcdir)/$(ctagsfiles1
) $(srcdir)/$(ctagsfiles2
)
1114 ..
/lib-src
/etags
--include=TAGS-LISP
--include=${lwlibdir}/TAGS \
1115 --regex
='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \
1116 $(srcdir)/$(ctagsfiles1
) $(srcdir)/$(ctagsfiles2
)
1119 $(MAKE
) -f
${lispdir}Makefile TAGS-LISP ETAGS
=..
/lib-src
/etags
1122 (cd
$(lwlibdir
); $(MAKE
) -f
$(lwlibdir
)Makefile
tags ETAGS
=..
/lib-src
/etags
)
1124 tags: TAGS TAGS-LISP
$(lwlibdir
)TAGS
1128 /* Bootstrapping.
*/
1129 /* Bootstrapping right is difficult because of the circular dependencies.
1130 Furthermore
, we have to deal with the fact that many compilation targets
1131 such
as loaddefs.el or
*.elc can typically be produced by any old
1132 Emacs executable
, so we would like to avoid rebuilding them whenever
1133 we build a new Emacs executable.
1134 To solve the circularity
, we use
2 different Emacs executables
,
1135 "emacs" is the main target and
"bootstrap-emacs" is the one used
1136 to build the
*.elc and loaddefs.el files.
1137 To solve the freshness issue
, we used to use a third file
"witness-emacs"
1138 which was used to witness the fact that there is a bootstrap-emacs
1139 executable
, and then have dependencies on witness-emacs rather than
1140 bootstrap-emacs
, but that lead to problems in parallel builds
(because
1141 witness-emacs needed to be free from dependencies
(to avoid rebuilding
1142 it
), so it was compiled in parallel
, leading typically to having
2
1143 processes dumping bootstrap-emacs at the same time
).
1144 So instead
, we replace the witness-emacs dependencies by conditional
1145 bootstrap-dependencies
(via
${BOOTSTRAPEMACS}). Of course
, since we do
1146 not want to rely on GNU Make features
, we have to rely on an external
1147 script to do the conditional part of the dependency
1148 (i.e. see the
${SUBDIR} rule ..
/Makefile.in
).
*/
1152 /* These
suffix rules do not allow additional dependencies
, sadly
, so
1153 instead of adding a
$(BOOTSTRAPEMACS
) dependency here
, we add it
1155 With GNU Make
, we would just say
"%.el : %.elc $(BOOTSTRAPEMACS)" */
1157 @cd ..
/lisp
; $(MAKE
) $(MFLAGS
) compile-onefile \
1158 THEFILE
=$< EMACS
=${bootstrap_exe}
1160 /* Since the .el.elc rule cannot specify an extra dependency
, we do it here.
*/
1161 ${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS
)
1163 ${lispsource}loaddefs.el
: $(BOOTSTRAPEMACS
)
1164 cd ..
/lisp
; $(MAKE
) $(MFLAGS
) autoloads EMACS
=${bootstrap_exe}
1166 /* Dump an Emacs executable named bootstrap-emacs containing the
1167 files from loadup.el in source form.
*/
1169 bootstrap-emacs
${EXEEXT}: temacs
${EXEEXT}
1170 cd ..
/lisp
; $(MAKE
) $(MFLAGS
) update-subdirs
1172 ln
-f temacs
${EXEEXT} bootstrap-emacs
${EXEEXT}
1174 $(RUN_TEMACS
) --batch
--load loadup bootstrap
1175 mv
-f emacs
${EXEEXT} bootstrap-emacs
${EXEEXT}
1176 #endif /* ! defined (CANNOT_DUMP) */
1177 @
: Compile some files earlier to speed up further compilation.
1178 cd ..
/lisp
; $(MAKE
) $(MFLAGS
) compile-first EMACS
=${bootstrap_exe}
1181 ALLOBJS
=$(STARTFILES
) ${obj} ${otherobj} prefix-args.o
1182 -include $(ALLOBJS
:%.o
=deps
/%.d
)