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@
80 DBUS_CFLAGS
= @DBUS_CFLAGS@
81 DBUS_LIBS
= @DBUS_LIBS@
84 GCONF_CFLAGS
= @GCONF_CFLAGS@
85 GCONF_LIBS
= @GCONF_LIBS@
98 TOOLKIT_LIBW
=@TOOLKIT_LIBW@
101 CFLAGS_SOUND
= @CFLAGS_SOUND@
103 RSVG_LIBS
= @RSVG_LIBS@
104 RSVG_CFLAGS
= @RSVG_CFLAGS@
106 ## widget.o if USE_X_TOOLKIT, otherwise empty.
107 WIDGET_OBJ
=@WIDGET_OBJ@
109 ## sheap.o if CYGWIN, otherwise empty.
110 CYGWIN_OBJ
=@CYGWIN_OBJ@
113 NS_SUPPORT
=@NS_SUPPORT@
115 ## Only used if HAVE_X_WINDOWS and HAVE_WINDOW_SYSTEM.
118 ## ${lispsource}mouse.elc if HAVE_GPM, otherwise empty.
119 ## Not used if HAVE_MOUSE.
120 GPM_MOUSE_SUPPORT
=@GPM_MOUSE_SUPPORT@
122 BASE_WINDOW_SUPPORT
=${lispsource}fringe.elc
${lispsource}image.elc \
123 ${lispsource}international
/fontset.elc
${lispsource}dnd.elc \
124 ${lispsource}tool-bar.elc
${lispsource}mwheel.elc
126 X_WINDOW_SUPPORT
=${lispsource}x-dnd.elc
${lispsource}term
/common-win.elc \
127 ${lispsource}term
/x-win.elc
${lispsource}dynamic-setting.elc
129 LIBSELINUX_LIBS
= @LIBSELINUX_LIBS@
131 INTERVALS_H
= dispextern.h intervals.h composite.h
133 GETLOADAVG_LIBS
= @GETLOADAVG_LIBS@
135 RUN_TEMACS
= `/bin/pwd`/temacs
137 # ========================== start of cpp stuff =======================
138 /* From here on
, comments must be done in C syntax.
*/
140 /* just to be sure the sh is used
*/
143 #define THIS_IS_MAKEFILE
148 DEPFLAGS
= -MMD
-MF deps
/$*.d
151 /* Do not let the file name mktime.c
get messed up.
*/
156 /* Use HAVE_X11
as an alias for X11 in this file
157 to avoid problems with X11
as a subdirectory name
158 in
-I and other such options which pass through this file.
*/
165 /* On some machines
#define register is done in config;
166 do not let it interfere with this file.
*/
169 /* Some machines do not find the standard C libraries in the usual place.
*/
170 #ifndef ORDINARY_LINK
172 #define LIB_STANDARD -lc
180 /* Under GNUstep
, putting libc on the link line causes problems.
*/
181 #ifdef NS_IMPL_GNUSTEP
186 /* Some s
/SYSTEM.h files
define this to request special libraries.
*/
191 /* Some s
/SYSTEM.h files
define this to request special switches in
ld.
*/
192 #ifndef LD_SWITCH_SYSTEM
193 #if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
194 #define LD_SWITCH_SYSTEM -X
195 #else /* (defined (BSD_SYSTEM) && !defined (COFF)) */
196 #define LD_SWITCH_SYSTEM
197 #endif /* (defined (BSD_SYSTEM) && !defined (COFF)) */
198 #endif /* LD_SWITCH_SYSTEM */
200 /* This holds special options for linking temacs
201 that should be used for linking anything
else.
*/
202 #ifndef LD_SWITCH_SYSTEM_TEMACS
203 #define LD_SWITCH_SYSTEM_TEMACS
206 /* Some m
/MACHINE.h files
define this to request special switches in
ld.
*/
207 #ifndef LD_SWITCH_MACHINE
208 #define LD_SWITCH_MACHINE
211 /* These macros are for switches specifically related to X Windows.
*/
212 #ifndef LD_SWITCH_X_SITE
213 #define LD_SWITCH_X_SITE
216 STARTFILES
= START_FILES
219 #ifdef NS_IMPL_GNUSTEP
220 /* Pull in stuff from GNUstep-make.
*/
223 include @GNUSTEP_MAKEFILES@
/Additional
/base.make
224 include @GNUSTEP_MAKEFILES@
/Additional
/gui.make
228 /* DO NOT use
-R. There is a special hack described in lastfile.c
229 which is used instead. Some initialized data areas are modified
230 at initial startup
, then labeled
as part of the text area when
231 Emacs is dumped for the first time
, and never changed again.
*/
233 /* -Demacs is needed to make some files produce the correct version
236 -DHAVE_CONFIG_H is needed for some other files to take advantage of
237 the information in
``config.h
''.
*/
239 /* C_SWITCH_X_SITE must come before C_SWITCH_X_SYSTEM
240 since it may have
-I options that should
override those two.
*/
241 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}
242 ALL_OBJC_CFLAGS
=$(ALL_CFLAGS
) @GNU_OBJC_CFLAGS@
247 @
-test -d deps || mkdir deps
249 $(CC
) -c
$(CPPFLAGS
) $(ALL_CFLAGS
) $<
252 @
-test -d deps || mkdir deps
254 $(CC
) -c
$(CPPFLAGS
) $(ALL_OBJC_CFLAGS
) $<
256 #ifdef HAVE_X_WINDOWS
259 /* The X Menu stuff is present in the X10 distribution
, but missing
260 from X11. If we have X10
, just use the installed library
;
261 otherwise
, use our own copy.
*/
264 OLDXMENU
=${lwlibdir}liblw.a
265 LIBXMENU
= $(OLDXMENU
)
266 #else /* not USE_X_TOOLKIT */
267 OLDXMENU
= ${oldXMenudir}libXMenu11.a
268 LIBXMENU
= $(OLDXMENU
)
269 #endif /* not USE_X_TOOLKIT */
270 #else /* not HAVE_X11 */
272 #endif /* not HAVE_X11 */
274 #else /* not HAVE_MENUS */
276 /* Otherwise
, do not worry about the menu library at
all.
*/
278 #endif /* not HAVE_MENUS */
283 LIBXT
= $(LIBW
) $(LIBXMU
) -lXt
$(LIBXTR6
) -lXext
285 #else /* not USE_X_TOOLKIT */
293 LIBXT
=$(LIBW
) $(LIBXSM
)
294 #endif /* not USE_X_TOOLKIT */
297 X11_LDFLAGS
= LD_SWITCH_X_SITE
298 LIBX
= $(LIBXMENU
) $(X11_LDFLAGS
) $(LIBXT
) $(LIBTIFF
) $(LIBJPEG
) $(LIBPNG
) $(LIBGIF
) $(LIBXPM
) -lX11
$(XFT_LIBS
)
299 #else /* not HAVE_X11 */
300 LIBX
= $(LIBXMENU
) LD_SWITCH_X_SITE
301 #endif /* not HAVE_X11 */
302 #endif /* not HAVE_X_WINDOWS */
304 #ifndef ORDINARY_LINK
305 /* Fix linking if compiled with GCC.
*/
309 #define LINKER_WAS_SPECIFIED
312 /* Versions of GCC
>= 2.0 put their library
, libgcc.a
, in obscure
313 places that are difficult to figure out at make time. Fortunately
,
314 these same versions allow you to pass arbitrary flags on to the
315 linker
, so there is no reason not to use it
as a linker.
317 Well
, it is not quite perfect. The
"-nostdlib" keeps GCC from
318 searching for libraries in its internal directories
, so we have to
319 ask GCC explicitly where to find libgcc.a.
*/
322 #define LINKER $(CC) -nostdlib
326 /* Ask GCC where to find libgcc.a.
*/
327 #define LIB_GCC `$(CC) -print-libgcc-file-name`
328 #endif /* not LIB_GCC */
332 #ifndef LINKER_WAS_SPECIFIED
333 /* GCC passes any argument prefixed with
-Xlinker directly to the
334 linker. See prefix-args.c for an explanation of why we do not do
335 this with the
shell''s
``for
'' construct.
336 Note that some people do not have
'.' in their paths
, so we must
337 use .
/prefix-args.
*/
338 #define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
340 #define YMF_PASS_LDFLAGS(flags) flags
343 #else /* not __GNUC__ */
346 #endif /* not __GNUC__ */
347 #endif /* not ORDINARY_LINK */
354 #else /* not LINKER */
356 #endif /* not LINKER */
357 #endif /* not ORDINARY_LINK */
359 /* Flags to pass to LD only for temacs.
*/
360 /* Do not split this line with a backslash. That can cause trouble with
362 TEMACS_LDFLAGS
= LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE
364 /* A macro which other sections of Makefile can redefine to munge the
365 flags before they are passed to LD. This is helpful if you have
366 redefined LD to something odd
, like
"gcc".
367 (The YMF
prefix is a holdover from the old name
"ymakefile".
)
369 #ifndef YMF_PASS_LDFLAGS
370 #define YMF_PASS_LDFLAGS(flags) flags
374 #ifdef HAVE_X_WINDOWS
375 MSDOS_OBJ
= dosfns.o msdos.o xmenu.o
377 MSDOS_OBJ
= dosfns.o msdos.o w16select.o xmenu.o termcap.o
382 ns_appdir
=@ns_appdir@
/
383 ns_appbindir
=@ns_appbindir@
/
384 ns_appresdir
=@ns_appresdir@
/
385 ns_appsrc
=@ns_appsrc@
388 #ifdef HAVE_WINDOW_SYSTEM
389 #ifdef HAVE_X_WINDOWS
390 FONT_DRIVERS
=$(FONT_OBJ
)
391 #endif /* HAVE_X_WINDOWS */
392 #endif /* HAVE_WINDOW_SYSTEM */
394 /* lastfile must follow
all files
395 whose initialized data areas should be dumped
as pure by dump-emacs.
*/
396 obj
= dispnew.o frame.o scroll.o xdisp.o menu.o
$(XMENU_OBJ
) window.o \
397 charset.o coding.o category.o ccl.o character.o chartab.o bidi.o \
398 cm.o term.o terminal.o xfaces.o
$(XOBJ
) $(GTK_OBJ
) $(DBUS_OBJ
) \
399 emacs.o keyboard.o macros.o keymap.o sysdep.o \
400 buffer.o filelock.o insdel.o marker.o \
401 minibuf.o fileio.o dired.o filemode.o \
402 cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
403 alloc.o data.o doc.o editfns.o callint.o \
404 eval.o floatfns.o fns.o font.o
print.o lread.o \
405 syntax.o @unexec@ bytecode.o \
406 process.o callproc.o \
407 region-cache.o sound.o atimer.o \
408 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
409 $(MSDOS_OBJ
) $(NS_OBJ
) $(CYGWIN_OBJ
) $(FONT_DRIVERS
)
411 /* Object files used on some machine or other.
412 These go in the DOC file on
all machines
413 in case they are needed there.
*/
414 SOME_MACHINE_OBJECTS
= dosfns.o msdos.o \
415 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
416 fontset.o dbusbind.o \
417 nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
418 w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
419 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o
$(FONT_DRIVERS
)
423 /* Used to be
-ltermcap here. If your machine needs that
,
424 define LIBS_TERMCAP in the m
/MACHINE.h file.
*/
426 #define LIBS_TERMCAP -lcurses
427 #endif /* LIBS_TERMCAP */
428 termcapobj
= terminfo.o
429 #else /* ! defined (TERMINFO) */
432 #endif /* LIBS_TERMCAP */
433 termcapobj
= tparam.o
434 #endif /* ! defined (TERMINFO) */
437 #ifndef SYSTEM_MALLOC
439 #ifndef DOUG_LEA_MALLOC
440 gmallocobj
= gmalloc.o
447 mallocobj
= $(gmallocobj
) $(rallocobj
) vm-limit.o
449 #endif /* SYSTEM_MALLOC */
452 /* define otherobj
as list of object files that make-docfile
453 should not be told about.
*/
455 /* Cygwin differs because of its unexec
().
*/
456 otherobj
= $(termcapobj
) $(gmallocobj
) $(rallocobj
) lastfile.o vm-limit.o
$(WIDGET_OBJ
) $(LIBOBJS
)
458 otherobj
= $(termcapobj
) lastfile.o
$(mallocobj
) $(WIDGET_OBJ
) $(LIBOBJS
)
462 #define MOUSE_SUPPORT ${lispsource}mouse.elc \
463 ${lispsource}select.elc
${lispsource}scroll-bar.elc
465 #define MOUSE_SUPPORT $(GPM_MOUSE_SUPPORT)
469 #define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
470 ${lispsource}dos-fns.elc
${lispsource}dos-w32.elc
${lispsource}dos-vars.elc \
471 ${lispsource}term
/internal.elc
${lispsource}term
/pc-win.elc
474 #define MSDOS_SUPPORT
477 #ifdef HAVE_WINDOW_SYSTEM
478 #ifdef HAVE_X_WINDOWS
479 #define WINDOW_SUPPORT $(BASE_WINDOW_SUPPORT) $(X_WINDOW_SUPPORT)
481 #define WINDOW_SUPPORT $(BASE_WINDOW_SUPPORT)
484 #define WINDOW_SUPPORT
488 #define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
489 ${lispsource}dos-w32.elc
${lispsource}w32-vars.elc \
490 ${lispsource}w32-fns.elc
${lispsource}term
/common-win.elc \
491 ${lispsource}term
/w32-win.elc
493 #define WINNT_SUPPORT
496 #ifdef HAVE_WINDOW_SYSTEM
497 #define TOOLTIP_SUPPORT ${lispsource}tooltip.elc
499 #define TOOLTIP_SUPPORT
502 /* This is the platform-specific list of Lisp files loaded into the
503 dumped Emacs. It is arranged like this because it is easier to generate
504 it semi-mechanically from loadup.el this way.
506 Note that this list should not
include lisp files which might not
507 be present
, like site-load.el and site-init.el
; this makefile
508 expects them
all to be either present or buildable.
510 Files which are loaded unconditionally
(i.e.
, on
all platforms
) should
511 also be in shortlisp. Files which are loaded conditionally
(i.e.
, only
512 on some platforms
) should instead be in SOME_MACHINE_LISP.
*/
514 /* Place loaddefs.el first
, so it gets generated first
, since it is on
515 the critical path
(relevant in parallel compilations
).
*/
518 ${lispsource}loaddefs.el \
519 ${lispsource}abbrev.elc \
520 ${lispsource}buff-menu.elc \
521 ${lispsource}button.elc \
522 ${lispsource}emacs-lisp
/byte-run.elc \
523 ${lispsource}composite.elc \
524 ${lispsource}cus-face.elc \
525 ${lispsource}cus-start.elc \
526 ${lispsource}custom.elc \
527 ${lispsource}emacs-lisp
/backquote.elc \
528 ${lispsource}emacs-lisp
/lisp-mode.elc \
529 ${lispsource}emacs-lisp
/lisp.elc \
530 ${lispsource}env.elc \
531 ${lispsource}faces.elc \
532 ${lispsource}files.elc \
533 ${lispsource}format.elc \
534 ${lispsource}facemenu.elc \
536 ${lispsource}emacs-lisp
/float-sup.elc \
537 ${lispsource}frame.elc \
538 ${lispsource}help.elc \
539 ${lispsource}indent.elc \
540 ${lispsource}isearch.elc \
541 ${lispsource}rfn-eshadow.elc \
542 ${lispsource}loadup.el \
543 ${lispsource}bindings.elc \
544 ${lispsource}emacs-lisp
/map-ynp.elc \
545 ${lispsource}menu-bar.elc \
546 ${lispsource}international
/mule.elc \
547 ${lispsource}international
/mule-conf.elc \
548 ${lispsource}international
/mule-cmds.elc \
549 ${lispsource}international
/characters.elc \
550 ${lispsource}international
/charprop.el \
551 ${lispsource}case-table.elc \
552 ${lispsource}language
/chinese.elc \
553 ${lispsource}language
/cyrillic.elc \
554 ${lispsource}language
/indian.elc \
555 ${lispsource}language
/sinhala.el \
556 ${lispsource}language
/english.el \
557 ${lispsource}language
/ethiopic.elc \
558 ${lispsource}language
/european.elc \
559 ${lispsource}language
/czech.el \
560 ${lispsource}language
/slovak.el \
561 ${lispsource}language
/romanian.el \
562 ${lispsource}language
/greek.el \
563 ${lispsource}language
/hebrew.el \
564 ${lispsource}language
/japanese.el \
565 ${lispsource}language
/korean.el \
566 ${lispsource}language
/lao.el \
567 ${lispsource}language
/cham.el \
568 ${lispsource}language
/tai-viet.el \
569 ${lispsource}language
/thai.el \
570 ${lispsource}language
/tibetan.elc \
571 ${lispsource}language
/vietnamese.elc \
572 ${lispsource}language
/misc-lang.el \
573 ${lispsource}language
/utf-8-lang.el \
574 ${lispsource}language
/georgian.el \
575 ${lispsource}language
/khmer.el \
576 ${lispsource}language
/burmese.el \
577 ${lispsource}paths.el \
578 ${lispsource}register.elc \
579 ${lispsource}replace.elc \
580 ${lispsource}simple.elc \
581 ${lispsource}minibuffer.elc \
582 ${lispsource}startup.elc \
583 ${lispsource}subr.elc \
584 ${lispsource}term
/tty-colors.elc \
585 ${lispsource}font-core.elc \
586 ${lispsource}emacs-lisp
/syntax.elc \
587 ${lispsource}font-lock.elc \
588 ${lispsource}jit-lock.elc \
589 ${lispsource}textmodes
/fill.elc \
590 ${lispsource}textmodes
/page.elc \
591 ${lispsource}textmodes
/paragraphs.elc \
592 ${lispsource}textmodes
/text-mode.elc \
593 ${lispsource}emacs-lisp
/timer.elc \
594 ${lispsource}jka-cmpr-hook.elc \
595 ${lispsource}vc-hooks.elc \
596 ${lispsource}ediff-hook.elc \
597 ${lispsource}epa-hook.elc \
603 ${lispsource}widget.elc \
604 ${lispsource}window.elc \
605 ${lispsource}version.el
607 /* List of relative names for those files from
$lisp that are loaded
608 unconditionally
(i.e. on
all platforms
). Files from
$lisp that
609 are only loaded on some platforms should instead be placed in
610 SOME_MACHINE_LISP. The only reason this variable exists is to prevent
611 the make-docfile command-line getting too long for some systems.
*/
613 ..
/lisp
/loaddefs.el \
615 ..
/lisp
/buff-menu.elc \
617 ..
/lisp
/emacs-lisp
/byte-run.elc \
618 ..
/lisp
/composite.elc \
619 ..
/lisp
/cus-face.elc \
620 ..
/lisp
/cus-start.elc \
622 ..
/lisp
/emacs-lisp
/backquote.elc \
623 ..
/lisp
/emacs-lisp
/lisp-mode.elc \
624 ..
/lisp
/emacs-lisp
/lisp.elc \
625 ..
/lisp
/facemenu.elc \
628 ..
/lisp
/emacs-lisp
/float-sup.elc \
633 ..
/lisp
/isearch.elc \
634 ..
/lisp
/rfn-eshadow.elc \
636 ..
/lisp
/bindings.elc \
637 ..
/lisp
/emacs-lisp
/map-ynp.elc \
639 ..
/lisp
/international
/mule.elc \
640 ..
/lisp
/international
/mule-conf.elc \
641 ..
/lisp
/international
/mule-cmds.elc \
642 ..
/lisp
/international
/characters.elc \
643 ..
/lisp
/case-table.elc \
644 ..
/lisp
/language
/chinese.elc \
645 ..
/lisp
/language
/cyrillic.elc \
646 ..
/lisp
/language
/indian.elc \
647 ..
/lisp
/language
/sinhala.el \
648 ..
/lisp
/language
/english.el \
649 ..
/lisp
/language
/ethiopic.elc \
650 ..
/lisp
/language
/european.elc \
651 ..
/lisp
/language
/czech.el \
652 ..
/lisp
/language
/slovak.el \
653 ..
/lisp
/language
/romanian.el \
654 ..
/lisp
/language
/greek.el \
655 ..
/lisp
/language
/hebrew.el \
656 ..
/lisp
/language
/japanese.el \
657 ..
/lisp
/language
/korean.el \
658 ..
/lisp
/language
/lao.el \
659 ..
/lisp
/language
/cham.el \
660 ..
/lisp
/language
/tai-viet.el \
661 ..
/lisp
/language
/thai.el \
662 ..
/lisp
/language
/tibetan.elc \
663 ..
/lisp
/language
/vietnamese.elc \
664 ..
/lisp
/language
/misc-lang.el \
665 ..
/lisp
/language
/utf-8-lang.el \
666 ..
/lisp
/language
/georgian.el \
667 ..
/lisp
/language
/khmer.el \
668 ..
/lisp
/language
/burmese.el \
669 ..
/lisp
/menu-bar.elc \
671 ..
/lisp
/register.elc \
672 ..
/lisp
/replace.elc \
674 ..
/lisp
/minibuffer.elc \
675 ..
/lisp
/startup.elc \
677 ..
/lisp
/term
/tty-colors.elc \
678 ..
/lisp
/font-core.elc \
679 ..
/lisp
/emacs-lisp
/syntax.elc \
680 ..
/lisp
/font-lock.elc \
681 ..
/lisp
/jit-lock.elc \
682 ..
/lisp
/textmodes
/fill.elc \
683 ..
/lisp
/textmodes
/page.elc \
684 ..
/lisp
/textmodes
/paragraphs.elc \
685 ..
/lisp
/textmodes
/text-mode.elc \
686 ..
/lisp
/emacs-lisp
/timer.elc \
687 ..
/lisp
/vc-hooks.elc \
688 ..
/lisp
/jka-cmpr-hook.elc \
689 ..
/lisp
/ediff-hook.elc \
690 ..
/lisp
/epa-hook.elc \
695 /* Like
$shortlisp, but includes only those files from
$lisp that are loaded
696 conditionally
(i.e.
, only on some platforms
).
*/
697 SOME_MACHINE_LISP
= ..
/lisp
/mouse.elc \
698 ..
/lisp
/select.elc ..
/lisp
/scroll-bar.elc \
699 ..
/lisp
/ls-lisp.elc ..
/lisp
/dos-fns.elc \
700 ..
/lisp
/w32-fns.elc ..
/lisp
/dos-w32.elc \
701 ..
/lisp
/disp-table.elc ..
/lisp
/dos-vars.elc \
702 ..
/lisp
/tooltip.elc ..
/lisp
/image.elc \
703 ..
/lisp
/fringe.elc ..
/lisp
/dnd.elc \
704 ..
/lisp
/mwheel.elc ..
/lisp
/tool-bar.elc \
705 ..
/lisp
/x-dnd.elc ..
/lisp
/dynamic-setting.elc \
706 ..
/lisp
/international
/ccl.elc \
707 ..
/lisp
/international
/fontset.elc \
709 ..
/lisp
/term
/common-win.elc \
710 ..
/lisp
/term
/x-win.elc \
711 ..
/lisp
/term
/pc-win.elc ..
/lisp
/term
/internal.elc \
712 ..
/lisp
/term
/ns-win.elc ..
/lisp
/term
/w32-win.elc \
713 ..
/lisp
/emacs-lisp
/easymenu.elc
715 /* Construct full set of libraries to be linked.
716 Note that SunOS needs
-lm to come before
-lc
; otherwise
, you
get
717 duplicated symbols. If the standard libraries were compiled
718 with GCC
, we might need gnulib again after them.
*/
720 LIBES
= $(LOADLIBES
) $(LIBS
) $(LIBX
) $(LIBSOUND
) $(RSVG_LIBS
) $(DBUS_LIBS
) \
721 @LIBGPM@ @LIBRESOLV@ LIBS_SYSTEM LIBS_TERMCAP \
722 $(GETLOADAVG_LIBS
) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \
723 @FREETYPE_LIBS@ @FONTCONFIG_LIBS@ @LIBOTF_LIBS@ @M17N_FLT_LIBS@ \
724 $(GNULIB_VAR
) @LIB_MATH@ LIB_STANDARD
$(GNULIB_VAR
)
726 all: emacs
${EXEEXT} $(OTHER_FILES
)
728 emacs
${EXEEXT}: temacs
${EXEEXT} ${etc}DOC
${lisp}
731 ln temacs
${EXEEXT} emacs
${EXEEXT}
732 -EMACSLOADPATH
=${lispsource} .
/emacs
-q
-batch
-f list-load-path-shadows
734 LC_ALL
=C
$(RUN_TEMACS
) -batch
-l loadup dump
735 @
: This new Emacs is
as functional and more efficient then
736 @
: bootstrap-emacs
, so let us replace it.
737 -ln
-f emacs
${EXEEXT} bootstrap-emacs
${EXEEXT}
738 -.
/emacs
-q
-batch
-f list-load-path-shadows
739 #endif /* ! defined (CANNOT_DUMP) */
741 /* We run make-docfile twice because the command line may
get too long
743 /* ${SOME_MACHINE_OBJECTS} comes before
${obj} because some files may
744 or may not be included in
${obj}, but they are always included in
745 ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned
746 for the first time
, this prevents any variation between configurations
747 in the contents of the DOC file.
748 Likewise for
${SOME_MACHINE_LISP}.
*/
749 /* Most of this Makefile refers to Lisp files via
${lispsource}, so
750 we also use
${lisp} rather than
${shortlisp} for the dependency since
751 the Makefile uses string equality to decide when we talk about identical
752 files. Apparently we pass
${shortlisp} rather than
${lisp} to make-docfile
753 only in order to reduce the command line length.
--Stef
*/
754 ${etc}DOC
: ${libsrc}make-docfile
${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP}
756 ${libsrc}make-docfile
-d
${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
757 ${libsrc}make-docfile
-a
${etc}DOC
-d
${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
759 ${libsrc}make-docfile
${EXEEXT}:
760 cd
${libsrc}; ${MAKE} ${MFLAGS} make-docfile
${EXEEXT}
763 echo
"#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h
765 temacs
${EXEEXT}: $(LOCALCPP
) $(STARTFILES
) stamp-oldxmenu
${obj} ${otherobj} prefix-args
${EXEEXT}
766 #ifdef NS_IMPL_GNUSTEP
767 $(CC
) -rdynamic YMF_PASS_LDFLAGS
( ${TEMACS_LDFLAGS} \
768 -L@GNUSTEP_SYSTEM_LIBRARIES@
-lgnustep-gui
-lgnustep-base \
769 -lobjc
$(CONFIG_SYSTEM_LIBS
) -lpthread
) -o temacs \
770 ${obj} ${otherobj} ${LIBES}
772 $(LD
) YMF_PASS_LDFLAGS
(${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS
) \
773 -o temacs
${STARTFILES} ${obj} ${otherobj} \
777 /* We do not use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE
778 often contain options that have to do with using Emacs
''s crt0
,
779 which are only good with temacs.
*/
780 prefix-args
${EXEEXT}: prefix-args.o
$(config_h
)
781 $(CC
) $(LDFLAGS
) prefix-args.o
-o prefix-args
783 #if defined (HAVE_X_WINDOWS) && defined (HAVE_X11) && defined (HAVE_MENUS) && ! defined (USE_GTK)
785 /* We use stamp-xmenu with these two deps
786 to both ensure that lwlib gets remade based on its dependencies
788 and remake temacs if lwlib gets changed by this.
*/
789 stamp-oldxmenu
: ${OLDXMENU} ..
/src
/$(OLDXMENU
)
791 /* Supply an ordering for parallel make.
*/
792 ..
/src
/$(OLDXMENU
): ${OLDXMENU}
795 $(OLDXMENU
): really-lwlib
798 cd
${lwlibdir}; ${MAKE} ${MFLAGS} \
799 CC
='${CC}' CFLAGS
='${CFLAGS}' MAKE
='${MAKE}'
800 @true
/* make
-t should not create really-lwlib.
*/
802 #else /* not USE_X_TOOLKIT */
803 $(OLDXMENU
): really-oldXMenu
806 cd
${oldXMenudir}; ${MAKE} ${MFLAGS} \
807 CC
='${CC}' CFLAGS
='${CFLAGS}' MAKE
='${MAKE}'
808 @true
/* make
-t should not create really-oldXMenu.
*/
809 .PHONY
: really-oldXMenu
810 #endif /* not USE_X_TOOLKIT */
811 #else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
813 /* We don
''t really need this
, but satisfy the dependency.
*/
816 #endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
818 ..
/config.status
:: epaths.in
819 @echo
"The file epaths.h needs to be set up from epaths.in."
820 @echo
"Please run the `configure' script again."
823 ..
/config.status
:: config.in
824 @echo
"The file config.h needs to be set up from config.in."
825 @echo
"Please run the `configure' script again."
828 ecrt0.o
: ecrt0.c
$(config_h
)
830 @
-test -d deps || mkdir deps
832 $(CC
) -c
$(ALL_CFLAGS
) ${srcdir}/ecrt0.c
837 atimer.o
: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \
839 bidi.o
: bidi.c buffer.h character.h dispextern.h lisp.h
$(config_h
)
840 buffer.o
: buffer.c buffer.h region-cache.h commands.h window.h \
841 $(INTERVALS_H
) blockinput.h atimer.h systime.h character.h \
842 indent.h keyboard.h coding.h keymap.h frame.h lisp.h
$(config_h
)
843 callint.o
: callint.c window.h commands.h buffer.h keymap.h \
844 keyboard.h dispextern.h systime.h coding.h composite.h lisp.h
$(config_h
)
845 callproc.o
: callproc.c epaths.h buffer.h commands.h lisp.h
$(config_h
) \
846 process.h systty.h syssignal.h character.h coding.h ccl.h msdos.h \
847 composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h \
849 casefiddle.o
: casefiddle.c syntax.h commands.h buffer.h character.h \
850 composite.h keymap.h lisp.h
$(config_h
)
851 casetab.o
: casetab.c buffer.h character.h lisp.h
$(config_h
)
852 category.o
: category.c category.h buffer.h charset.h keymap.h \
853 character.h lisp.h
$(config_h
)
854 ccl.o
: ccl.c ccl.h charset.h character.h coding.h composite.h lisp.h
$(config_h
)
855 character.o
: character.c character.h buffer.h charset.h composite.h disptab.h \
857 charset.o
: charset.c charset.h character.h buffer.h coding.h composite.h \
858 disptab.h lisp.h
$(config_h
)
859 chartab.o
: charset.h character.h ccl.h lisp.h
$(config_h
)
860 coding.o
: coding.c coding.h ccl.h buffer.h character.h charset.h composite.h \
861 window.h dispextern.h frame.h termhooks.h lisp.h
$(config_h
)
862 cm.o
: cm.c frame.h cm.h termhooks.h termchar.h dispextern.h lisp.h
$(config_h
)
863 cmds.o
: cmds.c syntax.h buffer.h character.h commands.h window.h lisp.h
$(config_h
) \
864 msdos.h dispextern.h keyboard.h keymap.h systime.h coding.h frame.h \
866 pre-crt0.o
: pre-crt0.c
867 dbusbind.o
: dbusbind.c termhooks.h frame.h keyboard.h lisp.h
$(config_h
)
868 dired.o
: dired.c commands.h buffer.h lisp.h
$(config_h
) character.h charset.h \
869 coding.h regex.h systime.h blockinput.h atimer.h composite.h
870 dispnew.o
: dispnew.c systime.h commands.h process.h frame.h coding.h \
871 window.h buffer.h termchar.h termopts.h termhooks.h cm.h \
872 disptab.h indent.h
$(INTERVALS_H
) \
873 xterm.h blockinput.h atimer.h character.h msdos.h keyboard.h \
874 syssignal.h lisp.h
$(config_h
)
875 doc.o
: doc.c lisp.h
$(config_h
) epaths.h buffer.h keyboard.h keymap.h \
876 character.h systime.h coding.h composite.h
877 doprnt.o
: doprnt.c character.h lisp.h
$(config_h
)
878 dosfns.o
: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
879 msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \
881 editfns.o
: editfns.c window.h buffer.h systime.h
$(INTERVALS_H
) character.h \
882 coding.h frame.h blockinput.h atimer.h lisp.h
$(config_h
)
883 emacs.o
: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
884 termhooks.h buffer.h atimer.h systime.h
$(INTERVALS_H
) lisp.h
$(config_h
) \
885 window.h dispextern.h keyboard.h keymap.h frame.h coding.h
886 fileio.o
: fileio.c window.h buffer.h systime.h
$(INTERVALS_H
) character.h \
887 coding.h msdos.h blockinput.h atimer.h lisp.h
$(config_h
) frame.h commands.h
888 filelock.o
: filelock.c buffer.h character.h coding.h systime.h composite.h \
890 filemode.o
: filemode.c
$(config_h
)
891 frame.o
: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
892 blockinput.h atimer.h systime.h buffer.h character.h fontset.h font.h \
893 msdos.h dosfns.h dispextern.h w32term.h termchar.h coding.h composite.h \
894 lisp.h
$(config_h
) termhooks.h ccl.h
895 fringe.o
: fringe.c dispextern.h frame.h window.h buffer.h termhooks.h \
896 blockinput.h atimer.h systime.h lisp.h
$(config_h
)
897 font.o
: font.c dispextern.h frame.h window.h ccl.h character.h charset.h \
898 font.h lisp.h
$(config_h
) buffer.h composite.h fontset.h xterm.h
899 ftfont.o
: dispextern.h frame.h character.h charset.h composite.h font.h \
900 lisp.h
$(config_h
) blockinput.h atimer.h systime.h coding.h fontset.h \
902 fontset.o
: fontset.c fontset.h ccl.h buffer.h character.h \
903 charset.h frame.h keyboard.h termhooks.h font.h lisp.h
$(config_h
) \
904 blockinput.h atimer.h systime.h coding.h
$(INTERVALS_H
) window.h xterm.h
905 getloadavg.o
: getloadavg.c
$(config_h
)
906 gtkutil.o
: gtkutil.c gtkutil.h xterm.h lisp.h frame.h lisp.h
$(config_h
) \
907 blockinput.h window.h atimer.h systime.h termhooks.h keyboard.h \
908 charset.h coding.h syssignal.h dispextern.h composite.h
909 image.o
: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
910 systime.h xterm.h w32term.h w32gui.h font.h epaths.h character.h coding.h \
911 nsterm.h nsgui.h lisp.h
$(config_h
) composite.h termhooks.h ccl.h
912 indent.o
: indent.c frame.h window.h indent.h buffer.h lisp.h
$(config_h
) termchar.h \
913 termopts.h disptab.h region-cache.h character.h category.h \
914 keyboard.h systime.h coding.h
$(INTERVALS_H
)
915 insdel.o
: insdel.c window.h buffer.h
$(INTERVALS_H
) blockinput.h character.h \
916 dispextern.h atimer.h systime.h region-cache.h lisp.h
$(config_h
)
917 keyboard.o
: keyboard.c termchar.h termhooks.h termopts.h buffer.h character.h \
918 commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
919 systime.h syntax.h
$(INTERVALS_H
) blockinput.h atimer.h composite.h \
920 xterm.h puresize.h msdos.h keymap.h w32term.h nsterm.h coding.h \
922 keymap.o
: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
923 atimer.h systime.h puresize.h character.h charset.h
$(INTERVALS_H
) keymap.h window.h \
924 coding.h frame.h lisp.h
$(config_h
)
925 lastfile.o
: lastfile.c
$(config_h
)
926 macros.o
: macros.c window.h buffer.h commands.h macros.h keyboard.h \
927 dispextern.h lisp.h
$(config_h
) systime.h coding.h composite.h
928 gmalloc.o
: gmalloc.c
$(config_h
)
929 ralloc.o
: ralloc.c lisp.h
$(config_h
)
930 vm-limit.o
: vm-limit.c mem-limits.h lisp.h
$(config_h
)
931 marker.o
: marker.c buffer.h character.h lisp.h
$(config_h
)
932 md5.o
: md5.c md5.h
$(config_h
)
933 minibuf.o
: minibuf.c syntax.h frame.h window.h keyboard.h systime.h \
934 buffer.h commands.h character.h msdos.h
$(INTERVALS_H
) keymap.h \
935 termhooks.h lisp.h
$(config_h
) coding.h
936 mktime.o
: mktime.c
$(config_h
)
937 msdos.o
: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
938 termopts.h termchar.h character.h coding.h ccl.h disptab.h window.h \
939 keyboard.h
$(INTERVALS_H
) buffer.h commands.h blockinput.h atimer.h lisp.h
$(config_h
)
940 nsfns.o
: nsfns.m charset.h nsterm.h nsgui.h frame.h window.h buffer.h \
941 dispextern.h nsgui.h fontset.h
$(INTERVALS_H
) keyboard.h blockinput.h \
942 atimer.h systime.h epaths.h termhooks.h coding.h systime.h lisp.h
$(config_h
)
943 nsfont.o
: nsterm.h dispextern.h frame.h lisp.h lisp.h
$(config_h
)
944 nsimage.o
: nsimage.m nsterm.h lisp.h
$(config_h
)
945 nsmenu.o
: nsmenu.m termhooks.h frame.h window.h dispextern.h \
946 nsgui.h keyboard.h blockinput.h atimer.h systime.h buffer.h \
947 nsterm.h lisp.h
$(config_h
)
948 nsterm.o
: nsterm.m blockinput.h atimer.h systime.h syssignal.h nsterm.h \
949 nsgui.h frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h \
950 termopts.h termchar.h disptab.h buffer.h window.h keyboard.h \
951 $(INTERVALS_H
) process.h coding.h lisp.h
$(config_h
)
952 nsselect.o
: nsselect.m blockinput.h nsterm.h nsgui.h frame.h lisp.h
$(config_h
)
953 process.o
: process.c process.h buffer.h window.h termhooks.h termopts.h \
954 commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
955 blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
956 keyboard.h lisp.h
$(config_h
) character.h xgselect.h sysselect.h
957 regex.o
: regex.c syntax.h buffer.h lisp.h
$(config_h
) regex.h category.h character.h
958 region-cache.o
: region-cache.c buffer.h region-cache.h lisp.h
$(config_h
)
959 scroll.o
: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
960 termhooks.h lisp.h
$(config_h
) systime.h coding.h composite.h window.h
961 search.o
: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
962 blockinput.h atimer.h systime.h category.h character.h charset.h \
965 sound.o
: sound.c dispextern.h syssignal.h lisp.h
$(config_h
) atimer.h systime.h
966 strftime.o
: strftime.c
$(config_h
)
967 syntax.o
: syntax.c syntax.h buffer.h commands.h category.h character.h \
968 keymap.h regex.h
$(INTERVALS_H
) lisp.h
$(config_h
)
969 sysdep.o
: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
970 process.h dispextern.h termhooks.h termchar.h termopts.h coding.h \
971 frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h lisp.h
$(config_h
) \
973 term.o
: term.c termchar.h termhooks.h termopts.h lisp.h
$(config_h
) cm.h frame.h \
974 disptab.h keyboard.h character.h charset.h coding.h ccl.h xterm.h \
975 msdos.h window.h keymap.h blockinput.h atimer.h systime.h systty.h \
976 syssignal.h
$(INTERVALS_H
) buffer.h
977 termcap.o
: termcap.c lisp.h
$(config_h
)
978 terminal.o
: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
979 keyboard.h lisp.h
$(config_h
) dispextern.h composite.h systime.h
980 terminfo.o
: terminfo.c lisp.h
$(config_h
)
981 tparam.o
: tparam.c lisp.h
$(config_h
)
982 undo.o
: undo.c buffer.h commands.h window.h dispextern.h lisp.h
$(config_h
)
983 unexaix.o
: unexaix.c lisp.h
$(config_h
)
984 unexalpha.o
: unexalpha.c
$(config_h
)
985 unexcw.o
: unexcw.c lisp.h
$(config_h
)
986 unexec.o
: unexec.c lisp.h
$(config_h
)
987 unexelf.o
: unexelf.c
$(config_h
)
988 unexhp9k800.o
: unexhp9k800.c
$(config_h
)
989 unexmacosx.o
: unexmacosx.c
$(config_h
)
990 unexsol.o
: unexsol.c lisp.h
$(config_h
)
991 unexw32.o
: unexw32.c
$(config_h
)
992 w16select.o
: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
993 msdos.h buffer.h charset.h coding.h composite.h lisp.h
$(config_h
)
994 widget.o
: widget.c xterm.h frame.h dispextern.h widgetprv.h \
995 $(srcdir)/..
/lwlib
/lwlib.h lisp.h
$(config_h
)
996 window.o
: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
997 disptab.h keyboard.h msdos.h coding.h termhooks.h \
998 keymap.h blockinput.h atimer.h systime.h
$(INTERVALS_H
) \
999 xterm.h w32term.h nsterm.h lisp.h
$(config_h
)
1000 xdisp.o
: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h \
1001 coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h \
1002 charset.h lisp.h
$(config_h
) keyboard.h
$(INTERVALS_H
) region-cache.h xterm.h \
1003 w32term.h nsterm.h msdos.h composite.h fontset.h ccl.h \
1004 blockinput.h atimer.h systime.h keymap.h font.h
1005 xfaces.o
: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
1006 window.h character.h charset.h msdos.h dosfns.h composite.h atimer.h \
1007 systime.h keyboard.h fontset.h w32term.h nsterm.h coding.h ccl.h \
1008 $(INTERVALS_H
) termchar.h termhooks.h font.h lisp.h
$(config_h
)
1009 xfns.o
: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
1010 $(srcdir)/..
/lwlib
/lwlib.h blockinput.h atimer.h systime.h epaths.h \
1011 character.h charset.h coding.h gtkutil.h lisp.h
$(config_h
) termhooks.h \
1012 fontset.h termchar.h font.h xsettings.h
$(INTERVALS_H
) ccl.h
1013 xfont.o
: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1014 font.h lisp.h
$(config_h
) atimer.h systime.h fontset.h ccl.h
1015 xftfont.o
: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1016 font.h lisp.h
$(config_h
) atimer.h systime.h fontset.h ccl.h ftfont.h
1017 ftxfont.o
: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
1018 font.h lisp.h
$(config_h
) atimer.h systime.h fontset.h ccl.h
1019 menu.o
: menu.c lisp.h keyboard.h keymap.h frame.h termhooks.h blockinput.h \
1020 dispextern.h
$(srcdir)/..
/lwlib
/lwlib.h xterm.h gtkutil.h menu.h \
1021 lisp.h
$(config_h
) systime.h coding.h composite.h window.h atimer.h
1022 xmenu.o
: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
1023 charset.h keyboard.h
$(srcdir)/..
/lwlib
/lwlib.h blockinput.h atimer.h \
1024 systime.h gtkutil.h msdos.h coding.h menu.h lisp.h
$(config_h
) composite.h \
1025 keymap.h sysselect.h
1026 xterm.o
: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
1027 dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
1028 keyboard.h emacs-icon.h character.h charset.h ccl.h fontset.h composite.h \
1029 coding.h process.h gtkutil.h font.h fontset.h lisp.h
$(config_h
) \
1030 xsettings.h intervals.h keymap.h xgselect.h sysselect.h
1031 xselect.o
: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
1032 buffer.h atimer.h systime.h termhooks.h lisp.h
$(config_h
) keyboard.h \
1033 coding.h composite.h
1034 xgselect.o
: xgselect.h systime.h sysselect.h lisp.h
$(config_h
)
1035 xrdb.o
: xrdb.c lisp.h
$(config_h
) epaths.h
1036 xsmfns.o
: xsmfns.c lisp.h
$(config_h
) systime.h sysselect.h termhooks.h xterm.h \
1037 lisp.h termopts.h frame.h dispextern.h
1038 xsettings.o
: xterm.h xsettings.h lisp.h frame.h termhooks.h
$(config_h
) \
1039 dispextern.h keyboard.h systime.h coding.h composite.h blockinput.h atimer.h \
1041 /* The files of Lisp proper
*/
1043 alloc.o
: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h \
1044 keyboard.h blockinput.h atimer.h systime.h character.h lisp.h
$(config_h
) \
1045 $(INTERVALS_H
) termhooks.h
1046 bytecode.o
: bytecode.c buffer.h syntax.h character.h window.h dispextern.h \
1047 frame.h xterm.h lisp.h
$(config_h
)
1048 data.o
: data.c buffer.h puresize.h character.h syssignal.h keyboard.h frame.h \
1049 termhooks.h systime.h coding.h composite.h dispextern.h font.h ccl.h \
1051 eval.o
: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
1052 dispextern.h lisp.h
$(config_h
) coding.h composite.h xterm.h
1053 floatfns.o
: floatfns.c syssignal.h lisp.h
$(config_h
)
1054 fns.o
: fns.c commands.h lisp.h
$(config_h
) frame.h buffer.h character.h keyboard.h \
1055 keymap.h window.h dispextern.h
$(INTERVALS_H
) coding.h md5.h \
1056 blockinput.h atimer.h systime.h xterm.h
1057 print.o
: print.c process.h frame.h window.h buffer.h keyboard.h character.h \
1058 lisp.h
$(config_h
) termchar.h
$(INTERVALS_H
) msdos.h termhooks.h \
1059 blockinput.h atimer.h systime.h font.h charset.h coding.h ccl.h
1060 lread.o
: lread.c commands.h keyboard.h buffer.h epaths.h character.h \
1061 charset.h lisp.h
$(config_h
) $(INTERVALS_H
) termhooks.h coding.h msdos.h \
1062 systime.h frame.h blockinput.h atimer.h
1064 /* Text properties support
*/
1065 composite.o
: composite.c buffer.h character.h coding.h font.h ccl.h \
1066 frame.h termhooks.h
$(INTERVALS_H
) window.h lisp.h
$(config_h
)
1067 intervals.o
: intervals.c buffer.h
$(INTERVALS_H
) keyboard.h puresize.h \
1068 keymap.h lisp.h
$(config_h
) systime.h coding.h
1069 textprop.o
: textprop.c buffer.h window.h
$(INTERVALS_H
) \
1072 #endif /* ! AUTO_DEPEND */
1074 /* System-specific programs to be made.
1076 select which of these should be compiled.
*/
1079 /* In fact
, every .o file depends directly or indirectly on dispextern.h
1080 and hence nsgui.h under NS. But the ones that actually use stuff there
1081 are more limited.
*/
1082 dispnew.o font.o fontset.o frame.o fringe.o image.o keyboard.o menu.o \
1083 window.o xdisp.o xfaces.o
: nsgui.h
1085 ${ns_appdir}: ${ns_appsrc}
1087 mkdir
-p
${ns_appdir}
1088 ( cd
${ns_appsrc} ; tar cfh
- .
) |
( cd
${ns_appdir} ; tar xf
- )
1089 ( cd
${ns_appdir} ; for subdir in
`find . -type d ! -name CVS -print` ; do \
1090 chmod a
+rx
$${subdir} ; \
1091 rm -rf
$${subdir}/CVS
; \
1092 rm -f
$${subdir}/.cvsignore
; done
; )
1094 ${ns_appbindir}Emacs
: emacs
${EXEEXT}
1095 mkdir
-p
${ns_appbindir}
1096 cp
-f emacs
${EXEEXT} ${ns_appbindir}Emacs
1098 ns-app
: ${ns_appdir} ${ns_appbindir}Emacs
1100 #endif /* HAVE_NS */
1103 rm -f temacs
${EXEEXT} prefix-args
${EXEEXT} core
*.core \
#* *.o libXMenu11.a liblw.a
1105 rm -f bootstrap-emacs
${EXEEXT} emacs-
${version}${EXEEXT}
1108 rm -f emacs-
*.
*.
*${EXEEXT} emacs
${EXEEXT}
1113 /* bootstrap-clean is used to
clean up just before a bootstrap.
1114 It should remove
all files generated during a compilation
/bootstrap
,
1115 but not things like config.status or TAGS.
*/
1116 bootstrap-clean
: clean
1117 rm -f epaths.h config.h Makefile.c config.stamp stamp-oldxmenu ..
/etc
/DOC-
*
1118 if
test -f .
/.gdbinit
; then \
1119 mv .
/.gdbinit .
/.gdbinit.save
; \
1120 if
test -f
"${srcdir}/.gdbinit"; then
rm -f .
/.gdbinit.save
; \
1121 else mv .
/.gdbinit.save .
/.gdbinit
; fi
; \
1123 /**/# This is used in making a distribution.
1124 /**/# Do not use it on development directories!
1125 distclean: bootstrap-clean
1127 maintainer-clean
: distclean
1128 @echo
"This command is intended for maintainers to use;"
1129 @echo
"it deletes files that may require special tools to rebuild."
1132 -rm -f emacs
${EXEEXT} emacs-
*.
*.
*${EXEEXT} ..
/etc
/DOC
*
1133 extraclean
: distclean
1134 -rm -f
*~ \
#* m/?*~ s/?*~
1136 /* Arrange to make a
tags table TAGS-LISP for ..
/lisp
,
1137 plus TAGS for the C files
, which includes ..
/lisp
/TAGS by reference.
*/
1139 ctagsfiles1
= [xyzXYZ
]*.
[hcm
]
1140 ctagsfiles2
= [a-wA-W
]*.
[hcm
]
1142 TAGS
: $(srcdir)/$(ctagsfiles1
) $(srcdir)/$(ctagsfiles2
)
1143 ..
/lib-src
/etags
--include=TAGS-LISP
--include=${lwlibdir}/TAGS \
1144 --regex
='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \
1145 $(srcdir)/$(ctagsfiles1
) $(srcdir)/$(ctagsfiles2
)
1148 $(MAKE
) -f
${lispdir}Makefile TAGS-LISP ETAGS
=..
/lib-src
/etags
1151 (cd
$(lwlibdir
); $(MAKE
) -f
$(lwlibdir
)Makefile
tags ETAGS
=..
/lib-src
/etags
)
1153 tags: TAGS TAGS-LISP
$(lwlibdir
)TAGS
1157 /* Bootstrapping.
*/
1158 /* Bootstrapping right is difficult because of the circular dependencies.
1159 Furthermore
, we have to deal with the fact that many compilation targets
1160 such
as loaddefs.el or
*.elc can typically be produced by any old
1161 Emacs executable
, so we would like to avoid rebuilding them whenever
1162 we build a new Emacs executable.
1163 To solve the circularity
, we use
2 different Emacs executables
,
1164 "emacs" is the main target and
"bootstrap-emacs" is the one used
1165 to build the
*.elc and loaddefs.el files.
1166 To solve the freshness issue
, we used to use a third file
"witness-emacs"
1167 which was used to witness the fact that there is a bootstrap-emacs
1168 executable
, and then have dependencies on witness-emacs rather than
1169 bootstrap-emacs
, but that lead to problems in parallel builds
(because
1170 witness-emacs needed to be free from dependencies
(to avoid rebuilding
1171 it
), so it was compiled in parallel
, leading typically to having
2
1172 processes dumping bootstrap-emacs at the same time
).
1173 So instead
, we replace the witness-emacs dependencies by conditional
1174 bootstrap-dependencies
(via
${BOOTSTRAPEMACS}). Of course
, since we do
1175 not want to rely on GNU Make features
, we have to rely on an external
1176 script to do the conditional part of the dependency
1177 (i.e. see the
${SUBDIR} rule ..
/Makefile.in
).
*/
1181 /* These
suffix rules do not allow additional dependencies
, sadly
, so
1182 instead of adding a
$(BOOTSTRAPEMACS
) dependency here
, we add it
1184 With GNU Make
, we would just say
"%.el : %.elc $(BOOTSTRAPEMACS)" */
1186 @cd ..
/lisp
; $(MAKE
) $(MFLAGS
) compile-onefile \
1187 THEFILE
=$< EMACS
=${bootstrap_exe}
1189 /* Since the .el.elc rule cannot specify an extra dependency
, we do it here.
*/
1190 ${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS
)
1192 ${lispsource}loaddefs.el
: $(BOOTSTRAPEMACS
)
1193 cd ..
/lisp
; $(MAKE
) $(MFLAGS
) autoloads EMACS
=${bootstrap_exe}
1195 /* Dump an Emacs executable named bootstrap-emacs containing the
1196 files from loadup.el in source form.
*/
1198 bootstrap-emacs
${EXEEXT}: temacs
${EXEEXT}
1199 cd ..
/lisp
; $(MAKE
) $(MFLAGS
) update-subdirs
1201 ln
-f temacs
${EXEEXT} bootstrap-emacs
${EXEEXT}
1203 $(RUN_TEMACS
) --batch
--load loadup bootstrap
1204 mv
-f emacs
${EXEEXT} bootstrap-emacs
${EXEEXT}
1205 #endif /* ! defined (CANNOT_DUMP) */
1206 @
: Compile some files earlier to speed up further compilation.
1207 cd ..
/lisp
; $(MAKE
) $(MFLAGS
) compile-first EMACS
=${bootstrap_exe}
1210 ALLOBJS
=$(STARTFILES
) ${obj} ${otherobj} prefix-args.o
1211 -include $(ALLOBJS
:%.o
=deps
/%.d
)