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@
71 # ========================== start of cpp stuff =======================
72 /* From here on
, comments must be done in C syntax.
*/
76 /* just to be sure the sh is used
*/
79 #define THIS_IS_MAKEFILE
84 DEPFLAGS
= -MMD
-MF deps
/$*.d
87 /* Do not let the file name mktime.c
get messed up.
*/
92 /* Use HAVE_X11
as an alias for X11 in this file
93 to avoid problems with X11
as a subdirectory name
94 in
-I and other such options which pass through this file.
*/
101 /* On some machines
#define register is done in config;
102 do not let it interfere with this file.
*/
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__
109 #define ORDINARY_LINK
113 /* Some machines do not find the standard C libraries in the usual place.
*/
114 #ifndef ORDINARY_LINK
116 #define LIB_STANDARD -lc
124 /* Under GNUstep
, putting libc on the link line causes problems.
*/
125 #ifdef NS_IMPL_GNUSTEP
130 /* Some s
/SYSTEM.h files
define this to request special libraries.
*/
135 /* Some m
/MACHINE.h files
define this to request special libraries.
*/
141 # define LIB_MATH -lm
142 #endif /* LIB_MATH */
144 /* Some s
/SYSTEM.h files
define this to request special switches in
ld.
*/
145 #ifndef LD_SWITCH_SYSTEM
146 #if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
147 #define LD_SWITCH_SYSTEM -X
148 #else /* (defined (BSD_SYSTEM) && !defined (COFF)) */
149 #define LD_SWITCH_SYSTEM
150 #endif /* (defined (BSD_SYSTEM) && !defined (COFF)) */
151 #endif /* LD_SWITCH_SYSTEM */
153 /* This holds special options for linking temacs
154 that should be used for linking anything
else.
*/
155 #ifndef LD_SWITCH_SYSTEM_TEMACS
156 #define LD_SWITCH_SYSTEM_TEMACS
159 /* Some s
/SYSTEM.h files
define this to request special switches
160 for compiling temacs.
*/
161 #ifndef C_SWITCH_SYSTEM_TEMACS
162 #define C_SWITCH_SYSTEM_TEMACS
165 /* Some m
/MACHINE.h files
define this to request special switches in
ld.
*/
166 #ifndef LD_SWITCH_MACHINE
167 #define LD_SWITCH_MACHINE
170 /* This holds special options for linking temacs
171 that should be used for linking anything
else.
*/
172 #ifndef LD_SWITCH_MACHINE_TEMACS
173 #define LD_SWITCH_MACHINE_TEMACS
176 /* Some m
/MACHINE.h files
define this to request special switches in
cc.
*/
177 #ifndef C_SWITCH_MACHINE
178 #define C_SWITCH_MACHINE
181 /* Some s
/SYSTEM.h files
define this to request special switches in
cc.
*/
182 #ifndef C_SWITCH_SYSTEM
183 #define C_SWITCH_SYSTEM
186 /* These macros are for switches specifically related to X Windows.
*/
187 #ifndef C_SWITCH_X_MACHINE
188 #define C_SWITCH_X_MACHINE
191 #ifndef C_SWITCH_X_SYSTEM
192 #define C_SWITCH_X_SYSTEM
195 #ifndef C_SWITCH_X_SITE
196 #define C_SWITCH_X_SITE
199 #ifndef LD_SWITCH_X_SITE
200 #define LD_SWITCH_X_SITE
203 #ifndef LD_SWITCH_X_DEFAULT
204 #define LD_SWITCH_X_DEFAULT
207 #ifndef ORDINARY_LINK
210 #define CRT0_COMPILE $(CC) -c $(ALL_CFLAGS)
215 #define START_FILES pre-crt0.o /lib/crt0.o
216 #else /* ! defined (NO_REMAP) */
217 #define START_FILES ecrt0.o
218 #endif /* ! defined (NO_REMAP) */
219 #endif /* START_FILES */
220 STARTFILES
= START_FILES
222 #else /* ORDINARY_LINK */
224 /* config.h might want to
force START_FILES anyway
*/
226 STARTFILES
= START_FILES
227 #endif /* START_FILES */
229 #endif /* not ORDINARY_LINK */
232 #ifdef NS_IMPL_GNUSTEP
233 /* Pull in stuff from GNUstep-make.
*/
236 include @GNUSTEP_MAKEFILES@
/Additional
/base.make
237 include @GNUSTEP_MAKEFILES@
/Additional
/gui.make
242 DBUS_CFLAGS
= @DBUS_CFLAGS@
243 DBUS_LIBS
= @DBUS_LIBS@
244 DBUS_OBJ
= dbusbind.o
248 GCONF_CFLAGS
= @GCONF_CFLAGS@
249 GCONF_LIBS
= @GCONF_LIBS@
252 /* DO NOT use
-R. There is a special hack described in lastfile.c
253 which is used instead. Some initialized data areas are modified
254 at initial startup
, then labeled
as part of the text area when
255 Emacs is dumped for the first time
, and never changed again.
*/
257 /* -Demacs is needed to make some files produce the correct version
260 -DHAVE_CONFIG_H is needed for some other files to take advantage of
261 the information in
``config.h
''.
*/
263 /* C_SWITCH_X_SITE must come before C_SWITCH_X_MACHINE and C_SWITCH_X_SYSTEM
264 since it may have
-I options that should
override those two.
*/
265 ALL_CFLAGS
=-Demacs
-DHAVE_CONFIG_H
$(MYCPPFLAGS
) -I.
-I
${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM C_SWITCH_SYSTEM_TEMACS
${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} ${GCONF_CFLAGS} ${CFLAGS} @FREETYPE_CFLAGS@ @FONTCONFIG_CFLAGS@ @LIBOTF_CFLAGS@ @M17N_FLT_CFLAGS@
${DEPFLAGS}
266 ALL_OBJC_CFLAGS
=$(ALL_CFLAGS
) @GNU_OBJC_CFLAGS@
271 @
-test -d deps || mkdir deps
273 $(CC
) -c
$(CPPFLAGS
) $(ALL_CFLAGS
) $<
276 @
-test -d deps || mkdir deps
278 $(CC
) -c
$(CPPFLAGS
) $(ALL_OBJC_CFLAGS
) $<
280 #ifndef LIBX11_SYSTEM
281 #define LIBX11_SYSTEM
285 #define LIB_X11_LIB -lX11
288 #ifdef HAVE_X_WINDOWS
290 XOBJ
= xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o \
291 xsettings.o xgselect.o
299 /* The X Menu stuff is present in the X10 distribution
, but missing
300 from X11. If we have X10
, just use the installed library
;
301 otherwise
, use our own copy.
*/
304 OLDXMENU
=${lwlibdir}liblw.a
305 LIBXMENU
= $(OLDXMENU
)
306 #else /* not USE_X_TOOLKIT */
307 OLDXMENU
= ${oldXMenudir}libXMenu11.a
308 LIBXMENU
= $(OLDXMENU
)
309 #endif /* not USE_X_TOOLKIT */
310 #else /* not HAVE_X11 */
312 #endif /* not HAVE_X11 */
314 #else /* not HAVE_MENUS */
316 /* Otherwise
, do not worry about the menu library at
all.
*/
318 #endif /* not HAVE_MENUS */
321 # define @X_TOOLKIT_TYPE@
327 # if defined (HAVE_MOTIF_2_1) && defined (HAVE_LIBXP)
328 # define LIB_MOTIF_EXTRA -lXp
330 # define LIB_MOTIF_EXTRA
333 MOTIF_LIBW
= LIB_MOTIF LIB_MOTIF_EXTRA
335 MOTIF_LIBW
= -lXm LIB_MOTIF_EXTRA
337 LIBW
=$(@X_TOOLKIT_TYPE@_LIBW
)
341 LIBXTR6
= -lSM
-lICE
-lw
351 LIBXT
= $(LIBW
) LIBXMU
-lXt
$(LIBXTR6
) -lXext
353 #else /* not USE_X_TOOLKIT */
362 LIBXT
=$(LIBW
) -lSM
-lICE
366 #endif /* not USE_X_TOOLKIT */
369 /* LD_SWITCH_X_DEFAULT comes after everything
else that specifies
370 options for where to find X libraries
, but before those libraries.
*/
371 X11_LDFLAGS
= LD_SWITCH_X_SITE LD_SWITCH_X_DEFAULT
372 LIBX
= $(LIBXMENU
) $(X11_LDFLAGS
) $(LIBXT
) @LIBTIFF@ @LIBJPEG@ @LIBPNG@ @LIBGIF@ @LIBXPM@ LIB_X11_LIB LIBX11_SYSTEM @XFT_LIBS@
373 #else /* not HAVE_X11 */
374 LIBX
= $(LIBXMENU
) LD_SWITCH_X_SITE
375 #endif /* not HAVE_X11 */
376 #endif /* not HAVE_X_WINDOWS */
379 CFLAGS_SOUND
= @CFLAGS_SOUND@
381 RSVG_LIBS
= @RSVG_LIBS@
382 RSVG_CFLAGS
= @RSVG_CFLAGS@
384 #ifndef ORDINARY_LINK
385 /* Fix linking if compiled with GCC.
*/
389 #define LINKER_WAS_SPECIFIED
392 /* Versions of GCC
>= 2.0 put their library
, libgcc.a
, in obscure
393 places that are difficult to figure out at make time. Fortunately
,
394 these same versions allow you to pass arbitrary flags on to the
395 linker
, so there is no reason not to use it
as a linker.
397 Well
, it is not quite perfect. The
"-nostdlib" keeps GCC from
398 searching for libraries in its internal directories
, so we have to
399 ask GCC explicitly where to find libgcc.a.
*/
402 #define LINKER $(CC) -nostdlib
406 /* Ask GCC where to find libgcc.a.
*/
407 #define LIB_GCC `$(CC) -print-libgcc-file-name`
408 #endif /* not LIB_GCC */
412 #ifndef LINKER_WAS_SPECIFIED
413 /* GCC passes any argument prefixed with
-Xlinker directly to the
414 linker. See prefix-args.c for an explanation of why we do not do
415 this with the
shell''s
``for
'' construct.
416 Note that some people do not have
'.' in their paths
, so we must
417 use .
/prefix-args.
*/
418 #define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
420 #define YMF_PASS_LDFLAGS(flags) flags
423 #else /* not __GNUC__ */
426 #endif /* not __GNUC__ */
427 #endif /* not ORDINARY_LINK */
434 #else /* not LINKER */
436 #endif /* not LINKER */
437 #endif /* not ORDINARY_LINK */
439 /* Flags to pass to LD only for temacs.
*/
440 /* Do not split this line with a backslash. That can cause trouble with
442 TEMACS_LDFLAGS
= LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE LD_SWITCH_MACHINE_TEMACS
444 /* A macro which other sections of Makefile can redefine to munge the
445 flags before they are passed to LD. This is helpful if you have
446 redefined LD to something odd
, like
"gcc".
447 (The YMF
prefix is a holdover from the old name
"ymakefile".
)
449 #ifndef YMF_PASS_LDFLAGS
450 #define YMF_PASS_LDFLAGS(flags) flags
453 /* Allow config.h to specify a replacement file for unexec.c.
*/
455 #define UNEXEC unexec.o
458 INTERVALS_H
= dispextern.h intervals.h composite.h
460 GETLOADAVG_LIBS
= @GETLOADAVG_LIBS@
463 #ifdef HAVE_X_WINDOWS
464 MSDOS_OBJ
= dosfns.o msdos.o xmenu.o
466 MSDOS_OBJ
= dosfns.o msdos.o w16select.o xmenu.o termcap.o
475 ns_appdir
=@ns_appdir@
/
476 ns_appbindir
=@ns_appbindir@
/
477 ns_appresdir
=@ns_appresdir@
/
478 ns_appsrc
=@ns_appsrc@
479 /* Object files for NeXTstep
*/
480 NS_OBJ
= nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
481 fontset.o fringe.o image.o
484 #ifdef HAVE_WINDOW_SYSTEM
485 #ifdef HAVE_X_WINDOWS
486 #if defined (HAVE_XFT)
487 FONT_DRIVERS
= xfont.o ftfont.o xftfont.o ftxfont.o
488 #elif defined (HAVE_FREETYPE)
489 FONT_DRIVERS
= xfont.o ftfont.o ftxfont.o
490 #else /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
491 FONT_DRIVERS
= xfont.o
492 #endif /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
493 #endif /* HAVE_X_WINDOWS */
494 #endif /* HAVE_WINDOW_SYSTEM */
496 /* lastfile must follow
all files
497 whose initialized data areas should be dumped
as pure by dump-emacs.
*/
498 obj
= dispnew.o frame.o scroll.o xdisp.o menu.o
$(XMENU_OBJ
) window.o \
499 charset.o coding.o category.o ccl.o character.o chartab.o \
500 cm.o term.o terminal.o xfaces.o
$(XOBJ
) $(GTK_OBJ
) $(DBUS_OBJ
) \
501 emacs.o keyboard.o macros.o keymap.o sysdep.o \
502 buffer.o filelock.o insdel.o marker.o \
503 minibuf.o fileio.o dired.o filemode.o \
504 cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
505 alloc.o data.o doc.o editfns.o callint.o \
506 eval.o floatfns.o fns.o font.o
print.o lread.o \
507 syntax.o UNEXEC bytecode.o \
508 process.o callproc.o \
509 region-cache.o sound.o atimer.o \
510 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
511 $(MSDOS_OBJ
) $(NS_OBJ
) $(CYGWIN_OBJ
) $(FONT_DRIVERS
)
513 /* Object files used on some machine or other.
514 These go in the DOC file on
all machines
515 in case they are needed there.
*/
516 SOME_MACHINE_OBJECTS
= dosfns.o msdos.o \
517 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
519 nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
520 w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
521 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o
$(FONT_DRIVERS
)
525 /* Used to be
-ltermcap here. If your machine needs that
,
526 define LIBS_TERMCAP in the m
/MACHINE.h file.
*/
528 #define LIBS_TERMCAP -lcurses
529 #endif /* LIBS_TERMCAP */
530 termcapobj
= terminfo.o
531 #else /* ! defined (TERMINFO) */
534 #endif /* LIBS_TERMCAP */
535 termcapobj
= tparam.o
536 #endif /* ! defined (TERMINFO) */
539 #ifndef SYSTEM_MALLOC
541 #ifndef DOUG_LEA_MALLOC
542 gmallocobj
= gmalloc.o
549 mallocobj
= $(gmallocobj
) $(rallocobj
) vm-limit.o
551 #endif /* SYSTEM_MALLOC */
556 #else /* not USE_X_TOOLKIT */
558 #endif /* not USE_X_TOOLKIT */
561 /* define otherobj
as list of object files that make-docfile
562 should not be told about.
*/
564 /* Cygwin differs because of its unexec
().
*/
565 otherobj
= $(termcapobj
) $(gmallocobj
) $(rallocobj
) lastfile.o vm-limit.o
$(widgetobj
) $(LIBOBJS
)
567 otherobj
= $(termcapobj
) lastfile.o
$(mallocobj
) $(widgetobj
) $(LIBOBJS
)
571 #define MOUSE_SUPPORT ${lispsource}mouse.elc \
572 ${lispsource}select.elc
${lispsource}scroll-bar.elc
575 #define MOUSE_SUPPORT ${lispsource}mouse.elc
577 #define MOUSE_SUPPORT
582 #define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
583 ${lispsource}dos-fns.elc
${lispsource}dos-w32.elc
${lispsource}dos-vars.elc \
584 ${lispsource}term
/internal.elc
${lispsource}term
/pc-win.elc
587 #define MSDOS_SUPPORT
590 #ifdef HAVE_WINDOW_SYSTEM
591 #ifdef HAVE_X_WINDOWS
592 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
593 ${lispsource}international
/fontset.elc
${lispsource}dnd.elc \
594 ${lispsource}tool-bar.elc
${lispsource}mwheel.elc
${lispsource}x-dnd.elc \
595 ${lispsource}term
/common-win.elc
${lispsource}term
/x-win.elc \
596 ${lispsource}font-setting.elc
598 #define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
599 ${lispsource}international
/fontset.elc
${lispsource}dnd.elc \
600 ${lispsource}tool-bar.elc
${lispsource}mwheel.elc
603 #define WINDOW_SUPPORT
607 #define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
608 ${lispsource}dos-w32.elc
${lispsource}w32-vars.elc \
609 ${lispsource}w32-fns.elc
${lispsource}term
/common-win.elc \
610 ${lispsource}term
/w32-win.elc
612 #define WINNT_SUPPORT
615 #ifdef HAVE_WINDOW_SYSTEM
616 #define TOOLTIP_SUPPORT ${lispsource}tooltip.elc
618 #define TOOLTIP_SUPPORT
622 #define NS_SUPPORT ${lispsource}emacs-lisp/easymenu.elc \
623 ${lispsource}term
/ns-win.elc
628 /* This is the platform-specific list of Lisp files loaded into the
629 dumped Emacs. It is arranged like this because it is easier to generate
630 it semi-mechanically from loadup.el this way.
632 Note that this list should not
include lisp files which might not
633 be present
, like site-load.el and site-init.el
; this makefile
634 expects them
all to be either present or buildable.
636 Files which are loaded unconditionally
(i.e.
, on
all platforms
) should
637 also be in shortlisp. Files which are loaded conditionally
(i.e.
, only
638 on some platforms
) should instead be in SOME_MACHINE_LISP.
*/
640 /* Place loaddefs.el first
, so it gets generated first
, since it is on
641 the critical path
(relevant in parallel compilations
).
*/
644 ${lispsource}loaddefs.el \
645 ${lispsource}abbrev.elc \
646 ${lispsource}buff-menu.elc \
647 ${lispsource}button.elc \
648 ${lispsource}emacs-lisp
/byte-run.elc \
649 ${lispsource}composite.elc \
650 ${lispsource}cus-face.elc \
651 ${lispsource}cus-start.elc \
652 ${lispsource}custom.elc \
653 ${lispsource}emacs-lisp
/backquote.elc \
654 ${lispsource}emacs-lisp
/lisp-mode.elc \
655 ${lispsource}emacs-lisp
/lisp.elc \
656 ${lispsource}env.elc \
657 ${lispsource}faces.elc \
658 ${lispsource}files.elc \
659 ${lispsource}format.elc \
660 ${lispsource}facemenu.elc \
662 ${lispsource}emacs-lisp
/float-sup.elc \
663 ${lispsource}frame.elc \
664 ${lispsource}help.elc \
665 ${lispsource}indent.elc \
666 ${lispsource}isearch.elc \
667 ${lispsource}rfn-eshadow.elc \
668 ${lispsource}loadup.el \
669 ${lispsource}bindings.elc \
670 ${lispsource}emacs-lisp
/map-ynp.elc \
671 ${lispsource}menu-bar.elc \
672 ${lispsource}international
/mule.elc \
673 ${lispsource}international
/mule-conf.elc \
674 ${lispsource}international
/mule-cmds.elc \
675 ${lispsource}international
/characters.elc \
676 ${lispsource}international
/charprop.el \
677 ${lispsource}case-table.elc \
678 ${lispsource}language
/chinese.elc \
679 ${lispsource}language
/cyrillic.elc \
680 ${lispsource}language
/indian.elc \
681 ${lispsource}language
/sinhala.el \
682 ${lispsource}language
/english.el \
683 ${lispsource}language
/ethiopic.elc \
684 ${lispsource}language
/european.elc \
685 ${lispsource}language
/czech.el \
686 ${lispsource}language
/slovak.el \
687 ${lispsource}language
/romanian.el \
688 ${lispsource}language
/greek.el \
689 ${lispsource}language
/hebrew.el \
690 ${lispsource}language
/japanese.el \
691 ${lispsource}language
/korean.el \
692 ${lispsource}language
/lao.el \
693 ${lispsource}language
/cham.el \
694 ${lispsource}language
/tai-viet.el \
695 ${lispsource}language
/thai.el \
696 ${lispsource}language
/tibetan.elc \
697 ${lispsource}language
/vietnamese.elc \
698 ${lispsource}language
/misc-lang.el \
699 ${lispsource}language
/utf-8-lang.el \
700 ${lispsource}language
/georgian.el \
701 ${lispsource}language
/khmer.el \
702 ${lispsource}language
/burmese.el \
703 ${lispsource}paths.el \
704 ${lispsource}register.elc \
705 ${lispsource}replace.elc \
706 ${lispsource}simple.elc \
707 ${lispsource}minibuffer.elc \
708 ${lispsource}startup.elc \
709 ${lispsource}subr.elc \
710 ${lispsource}term
/tty-colors.elc \
711 ${lispsource}font-core.elc \
712 ${lispsource}emacs-lisp
/syntax.elc \
713 ${lispsource}font-lock.elc \
714 ${lispsource}jit-lock.elc \
715 ${lispsource}textmodes
/fill.elc \
716 ${lispsource}textmodes
/page.elc \
717 ${lispsource}textmodes
/paragraphs.elc \
718 ${lispsource}textmodes
/text-mode.elc \
719 ${lispsource}emacs-lisp
/timer.elc \
720 ${lispsource}jka-cmpr-hook.elc \
721 ${lispsource}vc-hooks.elc \
722 ${lispsource}ediff-hook.elc \
723 ${lispsource}epa-hook.elc \
729 ${lispsource}widget.elc \
730 ${lispsource}window.elc \
731 ${lispsource}version.el
733 /* List of relative names for those files from
$lisp that are loaded
734 unconditionally
(i.e. on
all platforms
). Files from
$lisp that
735 are only loaded on some platforms should instead be placed in
736 SOME_MACHINE_LISP. The only reason this variable exists is to prevent
737 the make-docfile command-line getting too long for some systems.
*/
739 ..
/lisp
/loaddefs.el \
741 ..
/lisp
/buff-menu.elc \
743 ..
/lisp
/emacs-lisp
/byte-run.elc \
744 ..
/lisp
/composite.elc \
745 ..
/lisp
/cus-face.elc \
746 ..
/lisp
/cus-start.elc \
748 ..
/lisp
/emacs-lisp
/backquote.elc \
749 ..
/lisp
/emacs-lisp
/lisp-mode.elc \
750 ..
/lisp
/emacs-lisp
/lisp.elc \
751 ..
/lisp
/facemenu.elc \
754 ..
/lisp
/emacs-lisp
/float-sup.elc \
759 ..
/lisp
/isearch.elc \
760 ..
/lisp
/rfn-eshadow.elc \
762 ..
/lisp
/bindings.elc \
763 ..
/lisp
/emacs-lisp
/map-ynp.elc \
765 ..
/lisp
/international
/mule.elc \
766 ..
/lisp
/international
/mule-conf.elc \
767 ..
/lisp
/international
/mule-cmds.elc \
768 ..
/lisp
/international
/characters.elc \
769 ..
/lisp
/case-table.elc \
770 ..
/lisp
/language
/chinese.elc \
771 ..
/lisp
/language
/cyrillic.elc \
772 ..
/lisp
/language
/indian.elc \
773 ..
/lisp
/language
/sinhala.el \
774 ..
/lisp
/language
/english.el \
775 ..
/lisp
/language
/ethiopic.elc \
776 ..
/lisp
/language
/european.elc \
777 ..
/lisp
/language
/czech.el \
778 ..
/lisp
/language
/slovak.el \
779 ..
/lisp
/language
/romanian.el \
780 ..
/lisp
/language
/greek.el \
781 ..
/lisp
/language
/hebrew.el \
782 ..
/lisp
/language
/japanese.el \
783 ..
/lisp
/language
/korean.el \
784 ..
/lisp
/language
/lao.el \
785 ..
/lisp
/language
/cham.el \
786 ..
/lisp
/language
/tai-viet.el \
787 ..
/lisp
/language
/thai.el \
788 ..
/lisp
/language
/tibetan.elc \
789 ..
/lisp
/language
/vietnamese.elc \
790 ..
/lisp
/language
/misc-lang.el \
791 ..
/lisp
/language
/utf-8-lang.el \
792 ..
/lisp
/language
/georgian.el \
793 ..
/lisp
/language
/khmer.el \
794 ..
/lisp
/language
/burmese.el \
795 ..
/lisp
/menu-bar.elc \
797 ..
/lisp
/register.elc \
798 ..
/lisp
/replace.elc \
800 ..
/lisp
/minibuffer.elc \
801 ..
/lisp
/startup.elc \
803 ..
/lisp
/term
/tty-colors.elc \
804 ..
/lisp
/font-core.elc \
805 ..
/lisp
/emacs-lisp
/syntax.elc \
806 ..
/lisp
/font-lock.elc \
807 ..
/lisp
/jit-lock.elc \
808 ..
/lisp
/textmodes
/fill.elc \
809 ..
/lisp
/textmodes
/page.elc \
810 ..
/lisp
/textmodes
/paragraphs.elc \
811 ..
/lisp
/textmodes
/text-mode.elc \
812 ..
/lisp
/emacs-lisp
/timer.elc \
813 ..
/lisp
/vc-hooks.elc \
814 ..
/lisp
/jka-cmpr-hook.elc \
815 ..
/lisp
/ediff-hook.elc \
816 ..
/lisp
/epa-hook.elc \
821 /* Like
$shortlisp, but includes only those files from
$lisp that are loaded
822 conditionally
(i.e.
, only on some platforms
).
*/
823 SOME_MACHINE_LISP
= ..
/lisp
/mouse.elc \
824 ..
/lisp
/select.elc ..
/lisp
/scroll-bar.elc \
825 ..
/lisp
/ls-lisp.elc ..
/lisp
/dos-fns.elc \
826 ..
/lisp
/w32-fns.elc ..
/lisp
/dos-w32.elc \
827 ..
/lisp
/disp-table.elc ..
/lisp
/dos-vars.elc \
828 ..
/lisp
/tooltip.elc ..
/lisp
/image.elc \
829 ..
/lisp
/fringe.elc ..
/lisp
/dnd.elc \
830 ..
/lisp
/mwheel.elc ..
/lisp
/tool-bar.elc \
831 ..
/lisp
/x-dnd.elc ..
/lisp
/font-setting.elc \
832 ..
/lisp
/international
/ccl.elc \
833 ..
/lisp
/international
/fontset.elc \
835 ..
/lisp
/term
/common-win.elc \
836 ..
/lisp
/term
/x-win.elc \
837 ..
/lisp
/term
/pc-win.elc ..
/lisp
/term
/internal.elc \
838 ..
/lisp
/term
/ns-win.elc ..
/lisp
/term
/w32-win.elc \
839 ..
/lisp
/emacs-lisp
/easymenu.elc
841 /* Construct full set of libraries to be linked.
842 Note that SunOS needs
-lm to come before
-lc
; otherwise
, you
get
843 duplicated symbols. If the standard libraries were compiled
844 with GCC
, we might need gnulib again after them.
*/
846 LIBES
= $(LOADLIBES
) $(LIBS
) $(LIBX
) $(LIBSOUND
) $(RSVG_LIBS
) $(DBUS_LIBS
) \
847 @LIBGPM@ @LIBRESOLV@ LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
848 $(GETLOADAVG_LIBS
) ${GCONF_LIBS} \
849 @FREETYPE_LIBS@ @FONTCONFIG_LIBS@ @LIBOTF_LIBS@ @M17N_FLT_LIBS@ \
850 $(GNULIB_VAR
) LIB_MATH LIB_STANDARD
$(GNULIB_VAR
)
852 RUN_TEMACS
= `/bin/pwd`/temacs
854 all: emacs
${EXEEXT} $(OTHER_FILES
)
856 emacs
${EXEEXT}: temacs
${EXEEXT} ${etc}DOC
${lisp}
859 ln temacs
${EXEEXT} emacs
${EXEEXT}
860 -EMACSLOADPATH
=${lispsource} .
/emacs
-q
-batch
-f list-load-path-shadows
862 LC_ALL
=C
$(RUN_TEMACS
) -batch
-l loadup dump
863 @
: This new Emacs is
as functional and more efficient then
864 @
: bootstrap-emacs
, so let us replace it.
865 -ln
-f emacs
${EXEEXT} bootstrap-emacs
${EXEEXT}
866 -.
/emacs
-q
-batch
-f list-load-path-shadows
867 #endif /* ! defined (CANNOT_DUMP) */
869 /* We run make-docfile twice because the command line may
get too long
871 /* ${SOME_MACHINE_OBJECTS} comes before
${obj} because some files may
872 or may not be included in
${obj}, but they are always included in
873 ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned
874 for the first time
, this prevents any variation between configurations
875 in the contents of the DOC file.
876 Likewise for
${SOME_MACHINE_LISP}.
*/
877 /* Most of this Makefile refers to Lisp files via
${lispsource}, so
878 we also use
${lisp} rather than
${shortlisp} for the dependency since
879 the Makefile uses string equality to decide when we talk about identical
880 files. Apparently we pass
${shortlisp} rather than
${lisp} to make-docfile
881 only in order to reduce the command line length.
--Stef
*/
882 ${etc}DOC
: ${libsrc}make-docfile
${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP}
884 ${libsrc}make-docfile
-d
${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
885 ${libsrc}make-docfile
-a
${etc}DOC
-d
${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
887 ${libsrc}make-docfile
${EXEEXT}:
888 cd
${libsrc}; ${MAKE} ${MFLAGS} make-docfile
${EXEEXT}
891 echo
"#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h
893 temacs
${EXEEXT}: $(LOCALCPP
) $(STARTFILES
) stamp-oldxmenu
${obj} ${otherobj} prefix-args
${EXEEXT}
894 #ifdef NS_IMPL_GNUSTEP
895 $(CC
) -rdynamic YMF_PASS_LDFLAGS
( ${TEMACS_LDFLAGS} \
896 -L@GNUSTEP_SYSTEM_LIBRARIES@
-lgnustep-gui
-lgnustep-base \
897 -lobjc
$(CONFIG_SYSTEM_LIBS
) -lpthread
) -o temacs \
898 ${obj} ${otherobj} ${LIBES}
900 $(LD
) YMF_PASS_LDFLAGS
(${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS
) \
901 -o temacs
${STARTFILES} ${obj} ${otherobj} \
905 /* We do not use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE
906 often contain options that have to do with using Emacs
''s crt0
,
907 which are only good with temacs.
*/
908 prefix-args
${EXEEXT}: prefix-args.o
$(config_h
)
909 $(CC
) $(LDFLAGS
) prefix-args.o
-o prefix-args
911 #if defined (HAVE_X_WINDOWS) && defined (HAVE_X11) && defined (HAVE_MENUS) && ! defined (USE_GTK)
913 /* We use stamp-xmenu with these two deps
914 to both ensure that lwlib gets remade based on its dependencies
916 and remake temacs if lwlib gets changed by this.
*/
917 stamp-oldxmenu
: ${OLDXMENU} ..
/src
/$(OLDXMENU
)
919 /* Supply an ordering for parallel make.
*/
920 ..
/src
/$(OLDXMENU
): ${OLDXMENU}
922 /* Encode the values of these two macros in Make variables
,
923 so we can use
$(...
) to substitute their values within
"...".
*/
924 C_SWITCH_MACHINE_1
= C_SWITCH_MACHINE
925 C_SWITCH_SYSTEM_1
= C_SWITCH_SYSTEM
926 C_SWITCH_X_SITE_1
= C_SWITCH_X_SITE
927 C_SWITCH_X_MACHINE_1
= C_SWITCH_X_MACHINE
928 C_SWITCH_X_SYSTEM_1
= C_SWITCH_X_SYSTEM
931 $(OLDXMENU
): really-lwlib
934 cd
${lwlibdir}; ${MAKE} ${MFLAGS} \
935 CC
='${CC}' CFLAGS
='${CFLAGS}' MAKE
='${MAKE}' \
936 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
937 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
938 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
939 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
940 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
941 @true
/* make
-t should not create really-lwlib.
*/
943 #else /* not USE_X_TOOLKIT */
944 $(OLDXMENU
): really-oldXMenu
947 cd
${oldXMenudir}; ${MAKE} ${MFLAGS} \
948 CC
='${CC}' CFLAGS
='${CFLAGS}' MAKE
='${MAKE}' \
949 "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
950 "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
951 "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
952 "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
953 "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
954 @true
/* make
-t should not create really-oldXMenu.
*/
955 .PHONY
: really-oldXMenu
956 #endif /* not USE_X_TOOLKIT */
957 #else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
959 /* We don
''t really need this
, but satisfy the dependency.
*/
962 #endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
964 ..
/config.status
:: epaths.in
965 @echo
"The file epaths.h needs to be set up from epaths.in."
966 @echo
"Please run the `configure' script again."
969 ..
/config.status
:: config.in
970 @echo
"The file config.h needs to be set up from config.in."
971 @echo
"Please run the `configure' script again."
974 ecrt0.o
: ecrt0.c
$(config_h
)
976 @
-test -d deps || mkdir deps
978 CRT0_COMPILE
${srcdir}/ecrt0.c
983 atimer.o
: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \
985 buffer.o
: buffer.c buffer.h region-cache.h commands.h window.h \
986 $(INTERVALS_H
) blockinput.h atimer.h systime.h character.h \
987 indent.h keyboard.h coding.h keymap.h frame.h lisp.h
$(config_h
)
988 callint.o
: callint.c window.h commands.h buffer.h keymap.h \
989 keyboard.h dispextern.h systime.h coding.h composite.h lisp.h
$(config_h
)
990 callproc.o
: callproc.c epaths.h buffer.h commands.h lisp.h
$(config_h
) \
991 process.h systty.h syssignal.h character.h coding.h ccl.h msdos.h \
992 composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h \
994 casefiddle.o
: casefiddle.c syntax.h commands.h buffer.h character.h \
995 composite.h keymap.h lisp.h
$(config_h
)
996 casetab.o
: casetab.c buffer.h character.h lisp.h
$(config_h
)
997 category.o
: category.c category.h buffer.h charset.h keymap.h \
998 character.h lisp.h
$(config_h
)
999 ccl.o
: ccl.c ccl.h charset.h character.h coding.h composite.h lisp.h
$(config_h
)
1000 character.o
: character.c character.h buffer.h charset.h composite.h disptab.h \
1002 charset.o
: charset.c charset.h character.h buffer.h coding.h composite.h \
1003 disptab.h lisp.h
$(config_h
)
1004 chartab.o
: charset.h character.h ccl.h lisp.h
$(config_h
)
1005 coding.o
: coding.c coding.h ccl.h buffer.h character.h charset.h composite.h \
1006 window.h dispextern.h frame.h termhooks.h lisp.h
$(config_h
)
1007 cm.o
: cm.c frame.h cm.h termhooks.h termchar.h dispextern.h lisp.h
$(config_h
)
1008 cmds.o
: cmds.c syntax.h buffer.h character.h commands.h window.h lisp.h
$(config_h
) \
1009 msdos.h dispextern.h keyboard.h keymap.h systime.h coding.h frame.h \
1011 pre-crt0.o
: pre-crt0.c
1012 dbusbind.o
: dbusbind.c termhooks.h frame.h keyboard.h lisp.h
$(config_h
)
1013 dired.o
: dired.c commands.h buffer.h lisp.h
$(config_h
) character.h charset.h \
1014 coding.h regex.h systime.h blockinput.h atimer.h composite.h
1015 dispnew.o
: dispnew.c systime.h commands.h process.h frame.h coding.h \
1016 window.h buffer.h termchar.h termopts.h termhooks.h cm.h \
1017 disptab.h indent.h
$(INTERVALS_H
) \
1018 xterm.h blockinput.h atimer.h character.h msdos.h keyboard.h \
1019 syssignal.h lisp.h
$(config_h
)
1020 doc.o
: doc.c lisp.h
$(config_h
) epaths.h buffer.h keyboard.h keymap.h \
1021 character.h systime.h coding.h composite.h
1022 doprnt.o
: doprnt.c character.h lisp.h
$(config_h
)
1023 dosfns.o
: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
1024 msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \
1026 editfns.o
: editfns.c window.h buffer.h systime.h
$(INTERVALS_H
) character.h \
1027 coding.h frame.h blockinput.h atimer.h lisp.h
$(config_h
)
1028 emacs.o
: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
1029 termhooks.h buffer.h atimer.h systime.h
$(INTERVALS_H
) lisp.h
$(config_h
) \
1030 window.h dispextern.h keyboard.h keymap.h frame.h coding.h
1031 fileio.o
: fileio.c window.h buffer.h systime.h
$(INTERVALS_H
) character.h \
1032 coding.h msdos.h blockinput.h atimer.h lisp.h
$(config_h
) frame.h commands.h
1033 filelock.o
: filelock.c buffer.h character.h coding.h systime.h composite.h \
1035 filemode.o
: filemode.c
$(config_h
)
1036 frame.o
: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
1037 blockinput.h atimer.h systime.h buffer.h character.h fontset.h font.h \
1038 msdos.h dosfns.h dispextern.h w32term.h termchar.h coding.h composite.h \
1039 lisp.h
$(config_h
) termhooks.h ccl.h
1040 fringe.o
: fringe.c dispextern.h frame.h window.h buffer.h termhooks.h \
1041 blockinput.h atimer.h systime.h lisp.h
$(config_h
)
1042 font.o
: font.c dispextern.h frame.h window.h ccl.h character.h charset.h \
1043 font.h lisp.h
$(config_h
) buffer.h composite.h fontset.h xterm.h
1044 ftfont.o
: dispextern.h frame.h character.h charset.h composite.h font.h \
1045 lisp.h
$(config_h
) blockinput.h atimer.h systime.h coding.h fontset.h \
1047 fontset.o
: fontset.c fontset.h ccl.h buffer.h character.h \
1048 charset.h frame.h keyboard.h termhooks.h font.h lisp.h
$(config_h
) \
1049 blockinput.h atimer.h systime.h coding.h
$(INTERVALS_H
) window.h xterm.h
1050 getloadavg.o
: getloadavg.c
$(config_h
)
1051 gtkutil.o
: gtkutil.c gtkutil.h xterm.h lisp.h frame.h lisp.h
$(config_h
) \
1052 blockinput.h window.h atimer.h systime.h termhooks.h keyboard.h \
1053 charset.h coding.h syssignal.h dispextern.h composite.h
1054 image.o
: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
1055 systime.h xterm.h w32term.h w32gui.h font.h epaths.h character.h coding.h \
1056 nsterm.h nsgui.h lisp.h
$(config_h
) composite.h termhooks.h ccl.h
1057 indent.o
: indent.c frame.h window.h indent.h buffer.h lisp.h
$(config_h
) termchar.h \
1058 termopts.h disptab.h region-cache.h character.h category.h \
1059 keyboard.h systime.h coding.h
$(INTERVALS_H
)
1060 insdel.o
: insdel.c window.h buffer.h
$(INTERVALS_H
) blockinput.h character.h \
1061 dispextern.h atimer.h systime.h region-cache.h lisp.h
$(config_h
)
1062 keyboard.o
: keyboard.c termchar.h termhooks.h termopts.h buffer.h character.h \
1063 commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
1064 systime.h syntax.h
$(INTERVALS_H
) blockinput.h atimer.h composite.h \
1065 xterm.h puresize.h msdos.h keymap.h w32term.h nsterm.h coding.h \
1067 keymap.o
: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
1068 atimer.h systime.h puresize.h character.h charset.h
$(INTERVALS_H
) keymap.h window.h \
1069 coding.h frame.h lisp.h
$(config_h
)
1070 lastfile.o
: lastfile.c
$(config_h
)
1071 macros.o
: macros.c window.h buffer.h commands.h macros.h keyboard.h \
1072 dispextern.h lisp.h
$(config_h
) systime.h coding.h composite.h
1073 gmalloc.o
: gmalloc.c
$(config_h
)
1074 ralloc.o
: ralloc.c lisp.h
$(config_h
)
1075 vm-limit.o
: vm-limit.c mem-limits.h lisp.h
$(config_h
)
1076 marker.o
: marker.c buffer.h character.h lisp.h
$(config_h
)
1077 md5.o
: md5.c md5.h
$(config_h
)
1078 minibuf.o
: minibuf.c syntax.h frame.h window.h keyboard.h systime.h \
1079 buffer.h commands.h character.h msdos.h
$(INTERVALS_H
) keymap.h \
1080 termhooks.h lisp.h
$(config_h
) coding.h
1081 mktime.o
: mktime.c
$(config_h
)
1082 msdos.o
: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
1083 termopts.h termchar.h character.h coding.h ccl.h disptab.h window.h \
1084 keyboard.h
$(INTERVALS_H
) buffer.h commands.h blockinput.h atimer.h lisp.h
$(config_h
)
1085 nsfns.o
: nsfns.m charset.h nsterm.h nsgui.h frame.h window.h buffer.h \
1086 dispextern.h nsgui.h fontset.h
$(INTERVALS_H
) keyboard.h blockinput.h \
1087 atimer.h systime.h epaths.h termhooks.h coding.h systime.h lisp.h
$(config_h
)
1088 nsfont.o
: nsterm.h dispextern.h frame.h lisp.h lisp.h
$(config_h
)
1089 nsimage.o
: nsimage.m nsterm.h lisp.h
$(config_h
)
1090 nsmenu.o
: nsmenu.m termhooks.h frame.h window.h dispextern.h \
1091 nsgui.h keyboard.h blockinput.h atimer.h systime.h buffer.h \
1092 nsterm.h lisp.h
$(config_h
)
1093 nsterm.o
: nsterm.m blockinput.h atimer.h systime.h syssignal.h nsterm.h \
1094 nsgui.h frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h \
1095 termopts.h termchar.h disptab.h buffer.h window.h keyboard.h \
1096 $(INTERVALS_H
) process.h coding.h lisp.h
$(config_h
)
1097 nsselect.o
: nsselect.m blockinput.h nsterm.h nsgui.h frame.h lisp.h
$(config_h
)
1098 process.o
: process.c process.h buffer.h window.h termhooks.h termopts.h \
1099 commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
1100 blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
1101 keyboard.h lisp.h
$(config_h
) character.h xgselect.h sysselect.h
1102 regex.o
: regex.c syntax.h buffer.h lisp.h
$(config_h
) regex.h category.h character.h
1103 region-cache.o
: region-cache.c buffer.h region-cache.h lisp.h
$(config_h
)
1104 scroll.o
: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
1105 termhooks.h lisp.h
$(config_h
) systime.h coding.h composite.h window.h
1106 search.o
: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
1107 blockinput.h atimer.h systime.h category.h character.h charset.h \
1110 sound.o
: sound.c dispextern.h syssignal.h lisp.h
$(config_h
) atimer.h systime.h
1111 strftime.o
: strftime.c
$(config_h
)
1112 syntax.o
: syntax.c syntax.h buffer.h commands.h category.h character.h \
1113 keymap.h regex.h
$(INTERVALS_H
) lisp.h
$(config_h
)
1114 sysdep.o
: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
1115 process.h dispextern.h termhooks.h termchar.h termopts.h coding.h \
1116 frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h lisp.h
$(config_h
) \
1118 term.o
: term.c termchar.h termhooks.h termopts.h lisp.h
$(config_h
) cm.h frame.h \
1119 disptab.h keyboard.h character.h charset.h coding.h ccl.h xterm.h \
1120 msdos.h window.h keymap.h blockinput.h atimer.h systime.h systty.h \
1121 syssignal.h
$(INTERVALS_H
) buffer.h
1122 termcap.o
: termcap.c lisp.h
$(config_h
)
1123 terminal.o
: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
1124 keyboard.h lisp.h
$(config_h
) dispextern.h composite.h systime.h
1125 terminfo.o
: terminfo.c lisp.h
$(config_h
)
1126 tparam.o
: tparam.c lisp.h
$(config_h
)
1127 undo.o
: undo.c buffer.h commands.h window.h dispextern.h lisp.h
$(config_h
)
1128 unexaix.o
: unexaix.c lisp.h
$(config_h
)
1129 unexalpha.o
: unexalpha.c
$(config_h
)
1130 unexcw.o
: unexcw.c lisp.h
$(config_h
)
1131 unexec.o
: unexec.c lisp.h
$(config_h
)
1132 unexelf.o
: unexelf.c
$(config_h
)
1133 unexhp9k800.o
: unexhp9k800.c
$(config_h
)
1134 unexmacosx.o
: unexmacosx.c
$(config_h
)
1135 unexsol.o
: unexsol.c lisp.h
$(config_h
)
1136 unexw32.o
: unexw32.c
$(config_h
)
1137 w16select.o
: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
1138 msdos.h buffer.h charset.h coding.h composite.h lisp.h
$(config_h
)
1139 widget.o
: widget.c xterm.h frame.h dispextern.h widgetprv.h \
1140 $(srcdir)/..
/lwlib
/lwlib.h lisp.h
$(config_h
)
1141 window.o
: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
1142 disptab.h keyboard.h msdos.h coding.h termhooks.h \
1143 keymap.h blockinput.h atimer.h systime.h
$(INTERVALS_H
) \
1144 xterm.h w32term.h nsterm.h lisp.h
$(config_h
)
1145 xdisp.o
: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h \
1146 coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h \
1147 charset.h lisp.h
$(config_h
) keyboard.h
$(INTERVALS_H
) region-cache.h xterm.h \
1148 w32term.h nsterm.h msdos.h composite.h fontset.h ccl.h \
1149 blockinput.h atimer.h systime.h keymap.h font.h
1150 xfaces.o
: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
1151 window.h character.h charset.h msdos.h dosfns.h composite.h atimer.h \
1152 systime.h keyboard.h fontset.h w32term.h nsterm.h coding.h ccl.h \
1153 $(INTERVALS_H
) termchar.h termhooks.h font.h lisp.h
$(config_h
)
1154 xfns.o
: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
1155 $(srcdir)/..
/lwlib
/lwlib.h blockinput.h atimer.h systime.h epaths.h \
1156 character.h charset.h coding.h gtkutil.h lisp.h
$(config_h
) termhooks.h \
1157 fontset.h termchar.h font.h xsettings.h
$(INTERVALS_H
) ccl.h
1158 xfont.o
: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1159 font.h lisp.h
$(config_h
) atimer.h systime.h fontset.h ccl.h
1160 xftfont.o
: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1161 font.h lisp.h
$(config_h
) atimer.h systime.h fontset.h ccl.h ftfont.h
1162 ftxfont.o
: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1163 font.h lisp.h
$(config_h
) atimer.h systime.h fontset.h ccl.h
1164 menu.o
: menu.c lisp.h keyboard.h keymap.h frame.h termhooks.h blockinput.h \
1165 dispextern.h
$(srcdir)/..
/lwlib
/lwlib.h xterm.h gtkutil.h menu.h \
1166 lisp.h
$(config_h
) systime.h coding.h composite.h window.h atimer.h
1167 xmenu.o
: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
1168 charset.h keyboard.h
$(srcdir)/..
/lwlib
/lwlib.h blockinput.h atimer.h \
1169 systime.h gtkutil.h msdos.h coding.h menu.h lisp.h
$(config_h
) composite.h \
1170 keymap.h sysselect.h
1171 xterm.o
: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
1172 dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
1173 keyboard.h emacs-icon.h character.h charset.h ccl.h fontset.h composite.h \
1174 coding.h process.h gtkutil.h font.h fontset.h lisp.h
$(config_h
) \
1175 xsettings.h intervals.h keymap.h xgselect.h sysselect.h
1176 xselect.o
: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
1177 buffer.h atimer.h systime.h termhooks.h lisp.h
$(config_h
) keyboard.h \
1178 coding.h composite.h
1179 xgselect.o
: xgselect.h systime.h sysselect.h lisp.h
$(config_h
)
1180 xrdb.o
: xrdb.c lisp.h
$(config_h
) epaths.h
1181 xsmfns.o
: xsmfns.c lisp.h
$(config_h
) systime.h sysselect.h termhooks.h xterm.h \
1182 lisp.h termopts.h frame.h dispextern.h
1183 xsettings.o
: xterm.h xsettings.h lisp.h frame.h termhooks.h
$(config_h
) \
1184 dispextern.h keyboard.h systime.h coding.h composite.h blockinput.h atimer.h \
1186 /* The files of Lisp proper
*/
1188 alloc.o
: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h \
1189 keyboard.h blockinput.h atimer.h systime.h character.h lisp.h
$(config_h
) \
1190 $(INTERVALS_H
) termhooks.h
1191 bytecode.o
: bytecode.c buffer.h syntax.h character.h window.h dispextern.h \
1192 frame.h xterm.h lisp.h
$(config_h
)
1193 data.o
: data.c buffer.h puresize.h character.h syssignal.h keyboard.h frame.h \
1194 termhooks.h systime.h coding.h composite.h dispextern.h font.h ccl.h \
1196 eval.o
: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
1197 dispextern.h lisp.h
$(config_h
) coding.h composite.h xterm.h
1198 floatfns.o
: floatfns.c syssignal.h lisp.h
$(config_h
)
1199 fns.o
: fns.c commands.h lisp.h
$(config_h
) frame.h buffer.h character.h keyboard.h \
1200 keymap.h window.h dispextern.h
$(INTERVALS_H
) coding.h md5.h \
1201 blockinput.h atimer.h systime.h xterm.h
1202 print.o
: print.c process.h frame.h window.h buffer.h keyboard.h character.h \
1203 lisp.h
$(config_h
) termchar.h
$(INTERVALS_H
) msdos.h termhooks.h \
1204 blockinput.h atimer.h systime.h font.h charset.h coding.h ccl.h
1205 lread.o
: lread.c commands.h keyboard.h buffer.h epaths.h character.h \
1206 charset.h lisp.h
$(config_h
) $(INTERVALS_H
) termhooks.h coding.h msdos.h \
1207 systime.h frame.h blockinput.h atimer.h
1209 /* Text properties support
*/
1210 composite.o
: composite.c buffer.h character.h coding.h font.h ccl.h \
1211 frame.h termhooks.h
$(INTERVALS_H
) window.h lisp.h
$(config_h
)
1212 intervals.o
: intervals.c buffer.h
$(INTERVALS_H
) keyboard.h puresize.h \
1213 keymap.h lisp.h
$(config_h
) systime.h coding.h
1214 textprop.o
: textprop.c buffer.h window.h
$(INTERVALS_H
) \
1217 #endif /* ! AUTO_DEPEND */
1219 /* System-specific programs to be made.
1221 select which of these should be compiled.
*/
1224 /* In fact
, every .o file depends directly or indirectly on dispextern.h
1225 and hence nsgui.h under NS. But the ones that actually use stuff there
1226 are more limited.
*/
1227 dispnew.o font.o fontset.o frame.o fringe.o image.o keyboard.o menu.o \
1228 window.o xdisp.o xfaces.o
: nsgui.h
1230 ${ns_appdir}: ${ns_appsrc}
1232 mkdir
-p
${ns_appdir}
1233 ( cd
${ns_appsrc} ; tar cfh
- .
) |
( cd
${ns_appdir} ; tar xf
- )
1234 ( cd
${ns_appdir} ; for subdir in
`find . -type d ! -name CVS -print` ; do \
1235 chmod a
+rx
$${subdir} ; \
1236 rm -rf
$${subdir}/CVS
; \
1237 rm -f
$${subdir}/.cvsignore
; done
; )
1239 ${ns_appbindir}Emacs
: emacs
${EXEEXT}
1240 mkdir
-p
${ns_appbindir}
1241 cp
-f emacs
${EXEEXT} ${ns_appbindir}Emacs
1243 ns-app
: ${ns_appdir} ${ns_appbindir}Emacs
1245 #endif /* HAVE_NS */
1248 rm -f temacs
${EXEEXT} prefix-args
${EXEEXT} core
*.core \
#* *.o libXMenu11.a liblw.a
1250 rm -f bootstrap-emacs
${EXEEXT} emacs-
${version}${EXEEXT}
1253 rm -f emacs-
*.
*.
*${EXEEXT} emacs
${EXEEXT}
1258 /* bootstrap-clean is used to
clean up just before a bootstrap.
1259 It should remove
all files generated during a compilation
/bootstrap
,
1260 but not things like config.status or TAGS.
*/
1261 bootstrap-clean
: clean
1262 rm -f epaths.h config.h Makefile.c config.stamp stamp-oldxmenu ..
/etc
/DOC-
*
1263 if
test -f .
/.gdbinit
; then \
1264 mv .
/.gdbinit .
/.gdbinit.save
; \
1265 if
test -f
"${srcdir}/.gdbinit"; then
rm -f .
/.gdbinit.save
; \
1266 else mv .
/.gdbinit.save .
/.gdbinit
; fi
; \
1268 /**/# This is used in making a distribution.
1269 /**/# Do not use it on development directories!
1270 distclean: bootstrap-clean
1272 maintainer-clean
: distclean
1273 @echo
"This command is intended for maintainers to use;"
1274 @echo
"it deletes files that may require special tools to rebuild."
1277 -rm -f emacs
${EXEEXT} emacs-
*.
*.
*${EXEEXT} ..
/etc
/DOC
*
1278 extraclean
: distclean
1279 -rm -f
*~ \
#* m/?*~ s/?*~
1281 /* Arrange to make a
tags table TAGS-LISP for ..
/lisp
,
1282 plus TAGS for the C files
, which includes ..
/lisp
/TAGS by reference.
*/
1284 ctagsfiles1
= [xyzXYZ
]*.
[hcm
]
1285 ctagsfiles2
= [a-wA-W
]*.
[hcm
]
1287 TAGS
: $(srcdir)/$(ctagsfiles1
) $(srcdir)/$(ctagsfiles2
)
1288 ..
/lib-src
/etags
--include=TAGS-LISP
--include=${lwlibdir}/TAGS \
1289 --regex
='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \
1290 $(srcdir)/$(ctagsfiles1
) $(srcdir)/$(ctagsfiles2
)
1293 $(MAKE
) -f
${lispdir}Makefile TAGS-LISP ETAGS
=..
/lib-src
/etags
1296 (cd
$(lwlibdir
); $(MAKE
) -f
$(lwlibdir
)Makefile
tags ETAGS
=..
/lib-src
/etags
)
1298 tags: TAGS TAGS-LISP
$(lwlibdir
)TAGS
1302 /* Bootstrapping.
*/
1303 /* Bootstrapping right is difficult because of the circular dependencies.
1304 Furthermore
, we have to deal with the fact that many compilation targets
1305 such
as loaddefs.el or
*.elc can typically be produced by any old
1306 Emacs executable
, so we would like to avoid rebuilding them whenever
1307 we build a new Emacs executable.
1308 To solve the circularity
, we use
2 different Emacs executables
,
1309 "emacs" is the main target and
"bootstrap-emacs" is the one used
1310 to build the
*.elc and loaddefs.el files.
1311 To solve the freshness issue
, we used to use a third file
"witness-emacs"
1312 which was used to witness the fact that there is a bootstrap-emacs
1313 executable
, and then have dependencies on witness-emacs rather than
1314 bootstrap-emacs
, but that lead to problems in parallel builds
(because
1315 witness-emacs needed to be free from dependencies
(to avoid rebuilding
1316 it
), so it was compiled in parallel
, leading typically to having
2
1317 processes dumping bootstrap-emacs at the same time
).
1318 So instead
, we replace the witness-emacs dependencies by conditional
1319 bootstrap-dependencies
(via
${BOOTSTRAPEMACS}). Of course
, since we do
1320 not want to rely on GNU Make features
, we have to rely on an external
1321 script to do the conditional part of the dependency
1322 (i.e. see the
${SUBDIR} rule ..
/Makefile.in
).
*/
1326 /* These
suffix rules do not allow additional dependencies
, sadly
, so
1327 instead of adding a
$(BOOTSTRAPEMACS
) dependency here
, we add it
1329 With GNU Make
, we would just say
"%.el : %.elc $(BOOTSTRAPEMACS)" */
1331 @cd ..
/lisp
; $(MAKE
) $(MFLAGS
) compile-onefile \
1332 THEFILE
=$< EMACS
=${bootstrap_exe}
1334 /* Since the .el.elc rule cannot specify an extra dependency
, we do it here.
*/
1335 ${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS
)
1337 ${lispsource}loaddefs.el
: $(BOOTSTRAPEMACS
)
1338 cd ..
/lisp
; $(MAKE
) $(MFLAGS
) autoloads EMACS
=${bootstrap_exe}
1340 /* Dump an Emacs executable named bootstrap-emacs containing the
1341 files from loadup.el in source form.
*/
1343 bootstrap-emacs
${EXEEXT}: temacs
${EXEEXT}
1344 cd ..
/lisp
; $(MAKE
) $(MFLAGS
) update-subdirs
1346 ln
-f temacs
${EXEEXT} bootstrap-emacs
${EXEEXT}
1348 $(RUN_TEMACS
) --batch
--load loadup bootstrap
1349 mv
-f emacs
${EXEEXT} bootstrap-emacs
${EXEEXT}
1350 #endif /* ! defined (CANNOT_DUMP) */
1351 @
: Compile some files earlier to speed up further compilation.
1352 cd ..
/lisp
; $(MAKE
) $(MFLAGS
) compile-first EMACS
=${bootstrap_exe}
1355 ALLOBJS
=$(STARTFILES
) ${obj} ${otherobj} prefix-args.o
1356 -include $(ALLOBJS
:%.o
=deps
/%.d
)