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@
45 # Substitute an assignment for the MAKE variable, because
46 # BSD doesn't have it as a default.
48 # Don't use LIBS. configure puts stuff in it that either shouldn't be
49 # linked with Emacs or is duplicated by the cpp stuff below.
53 lispsource
= ${srcdir}/..
/lisp
/
56 oldXMenudir
= ..
/oldXMenu
/
60 # Configuration files for .o files to depend on.
61 M_FILE
= ${srcdir}/@machfile@
62 S_FILE
= ${srcdir}/@opsysfile@
63 config_h
= config.h
$(M_FILE
) $(S_FILE
)
65 bootstrap_exe
= ${abs_builddir}/bootstrap-emacs
${EXEEXT}
67 OTHER_FILES
= @OTHER_FILES@
71 ## Machine-specific CFLAGS.
72 C_SWITCH_MACHINE
=@C_SWITCH_MACHINE@
73 ## System-specific CFLAGS.
74 C_SWITCH_SYSTEM
=@C_SWITCH_SYSTEM@
75 ## This holds any special options for linking temacs only (ie, not
76 ## used by configure). Not used elsewhere because it sometimes
77 ## contains options that have to do with using Emacs's crt0,
78 ## which are only good with temacs.
79 LD_SWITCH_SYSTEM_TEMACS
=@LD_SWITCH_SYSTEM_TEMACS@
80 ## Next two must come before LD_SWITCH_SYSTEM.
81 ## If needed, a -R option that says where to find X windows at run time.
82 LD_SWITCH_X_SITE_AUX
=@LD_SWITCH_X_SITE_AUX@
83 ## As above, but using -rpath instead.
84 LD_SWITCH_X_SITE_AUX_RPATH
=@LD_SWITCH_X_SITE_AUX_RPATH@
85 ## System-specific LDFLAGS.
86 LD_SWITCH_SYSTEM
=@LD_SWITCH_SYSTEM@
87 LD_SWITCH_SYSTEM_EXTRA
=@LD_SWITCH_SYSTEM_EXTRA@
88 ## Flags to pass to ld only for temacs.
89 TEMACS_LDFLAGS
= $(LD_SWITCH_SYSTEM
) $(LD_SWITCH_SYSTEM_EXTRA
) $(LD_SWITCH_SYSTEM_TEMACS
)
91 ## Some systems define this to request special libraries.
92 LIBS_SYSTEM
=@LIBS_SYSTEM@
100 LIBX_EXTRA
=$(LIBTIFF
) $(LIBJPEG
) $(LIBPNG
) $(LIBGIF
) $(LIBXPM
) -lX11
$(XFT_LIBS
)
102 DBUS_CFLAGS
= @DBUS_CFLAGS@
103 DBUS_LIBS
= @DBUS_LIBS@
104 DBUS_OBJ
= @DBUS_OBJ@
106 GCONF_CFLAGS
= @GCONF_CFLAGS@
107 GCONF_LIBS
= @GCONF_LIBS@
111 ## -ltermcap, or -lncurses, or -lcurses, or "".
112 LIBS_TERMCAP
=@LIBS_TERMCAP@
113 ## terminfo.o if TERMINFO, else tparam.o.
114 TERMCAP_OBJ
=@TERMCAP_OBJ@
122 ## $(LIBXMU) -lXt $(LIBXTR6) -lXext if USE_X_TOOLKIT, else $(LIBXSM).
123 ## Only used if HAVE_X_WINDOWS.
124 LIBXT_OTHER
=@LIBXT_OTHER@
126 XMENU_OBJ
=@XMENU_OBJ@
129 TOOLKIT_LIBW
=@TOOLKIT_LIBW@
132 CFLAGS_SOUND
= @CFLAGS_SOUND@
134 RSVG_LIBS
= @RSVG_LIBS@
135 RSVG_CFLAGS
= @RSVG_CFLAGS@
137 ## widget.o if USE_X_TOOLKIT, otherwise empty.
138 WIDGET_OBJ
=@WIDGET_OBJ@
140 ## sheap.o if CYGWIN, otherwise empty.
141 CYGWIN_OBJ
=@CYGWIN_OBJ@
144 NS_SUPPORT
=@NS_SUPPORT@
146 ## Only used if HAVE_X_WINDOWS and HAVE_WINDOW_SYSTEM.
149 ## ${lispsource}mouse.elc if HAVE_GPM, otherwise empty.
150 ## Not used if HAVE_MOUSE.
151 GPM_MOUSE_SUPPORT
=@GPM_MOUSE_SUPPORT@
153 BASE_WINDOW_SUPPORT
=${lispsource}fringe.elc
${lispsource}image.elc \
154 ${lispsource}international
/fontset.elc
${lispsource}dnd.elc \
155 ${lispsource}tool-bar.elc
${lispsource}mwheel.elc
157 X_WINDOW_SUPPORT
=${lispsource}x-dnd.elc
${lispsource}term
/common-win.elc \
158 ${lispsource}term
/x-win.elc
${lispsource}dynamic-setting.elc
160 LIBSELINUX_LIBS
= @LIBSELINUX_LIBS@
162 INTERVALS_H
= dispextern.h intervals.h composite.h
164 GETLOADAVG_LIBS
= @GETLOADAVG_LIBS@
166 RUN_TEMACS
= `/bin/pwd`/temacs
168 START_FILES
= @START_FILES@
170 # ========================== start of cpp stuff =======================
171 /* From here on
, comments must be done in C syntax.
*/
173 /* just to be sure the sh is used
*/
180 DEPFLAGS
= -MMD
-MF deps
/$*.d
183 /* Do not let the file name mktime.c
get messed up.
*/
188 /* Use HAVE_X11
as an alias for X11 in this file
189 to avoid problems with X11
as a subdirectory name
190 in
-I and other such options which pass through this file.
*/
197 /* On some machines
#define register is done in config;
198 do not let it interfere with this file.
*/
201 /* This macro is for switches specifically related to X Windows.
*/
202 #ifndef LD_SWITCH_X_SITE
203 #define LD_SWITCH_X_SITE
206 #ifdef NS_IMPL_GNUSTEP
207 /* Pull in stuff from GNUstep-make.
*/
210 include @GNUSTEP_MAKEFILES@
/Additional
/base.make
211 include @GNUSTEP_MAKEFILES@
/Additional
/gui.make
215 /* DO NOT use
-R. There is a special hack described in lastfile.c
216 which is used instead. Some initialized data areas are modified
217 at initial startup
, then labeled
as part of the text area when
218 Emacs is dumped for the first time
, and never changed again.
*/
220 /* -Demacs is needed to make some files produce the correct version
223 -DHAVE_CONFIG_H is needed for some other files to take advantage of
224 the information in
``config.h
''.
*/
226 /* C_SWITCH_X_SITE must come before C_SWITCH_X_SYSTEM
227 since it may have
-I options that should
override those two.
*/
228 /* MYCPPFLAGS only referenced in etc
/DEBUG.
*/
229 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}
230 ALL_OBJC_CFLAGS
=$(ALL_CFLAGS
) @GNU_OBJC_CFLAGS@
235 @
-test -d deps || mkdir deps
237 $(CC
) -c
$(CPPFLAGS
) $(ALL_CFLAGS
) $<
240 @
-test -d deps || mkdir deps
242 $(CC
) -c
$(CPPFLAGS
) $(ALL_OBJC_CFLAGS
) $<
244 #ifdef HAVE_X_WINDOWS
245 /* This
test needs to say in
cpp for the time being
, since s
/msdos.h
246 defines HAVE_MENUS
, and does not use the configure script.
*/
250 #else /* not HAVE_MENUS */
253 #endif /* not HAVE_MENUS */
255 LIBXT
=$(TOOLKIT_LIBW
) $(LIBXT_OTHER
)
256 LIBX_BASE
=$(LIBXMENU
) LD_SWITCH_X_SITE
257 LIBX_OTHER
=@LIBX_OTHER@
258 #endif /* not HAVE_X_WINDOWS */
260 #ifndef ORDINARY_LINK
261 /* Fix linking if compiled with GCC.
*/
265 #define LINKER_WAS_SPECIFIED
268 /* Versions of GCC
>= 2.0 put their library
, libgcc.a
, in obscure
269 places that are difficult to figure out at make time. Fortunately
,
270 these same versions allow you to pass arbitrary flags on to the
271 linker
, so there is no reason not to use it
as a linker.
273 Well
, it is not quite perfect. The
"-nostdlib" keeps GCC from
274 searching for libraries in its internal directories
, so we have to
275 ask GCC explicitly where to find libgcc.a.
*/
278 #define LINKER $(CC) -nostdlib
282 /* Ask GCC where to find libgcc.a.
*/
283 #define LIB_GCC `$(CC) -print-libgcc-file-name`
284 #endif /* not LIB_GCC */
288 #ifndef LINKER_WAS_SPECIFIED
289 /* GCC passes any argument prefixed with
-Xlinker directly to the
290 linker. See prefix-args.c for an explanation of why we do not do
291 this with the
shell''s
``for
'' construct.
292 Note that some people do not have
'.' in their paths
, so we must
293 use .
/prefix-args.
*/
294 #define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
296 #define YMF_PASS_LDFLAGS(flags) flags
299 #else /* not __GNUC__ */
302 #endif /* not __GNUC__ */
303 #endif /* not ORDINARY_LINK */
310 #else /* not LINKER */
312 #endif /* not LINKER */
313 #endif /* not ORDINARY_LINK */
315 /* A macro which other sections of Makefile can redefine to munge the
316 flags before they are passed to LD. This is helpful if you have
317 redefined LD to something odd
, like
"gcc".
318 (The YMF
prefix is a holdover from the old name
"ymakefile".
)
320 #ifndef YMF_PASS_LDFLAGS
321 #define YMF_PASS_LDFLAGS(flags) flags
325 LIBS_SYSTEM
= MSDOS_LIBS_SYSTEM
326 #ifdef HAVE_X_WINDOWS
327 MSDOS_OBJ
= dosfns.o msdos.o
329 MSDOS_OBJ
= dosfns.o msdos.o w16select.o termcap.o
334 ns_appdir
=@ns_appdir@
/
335 ns_appbindir
=@ns_appbindir@
/
336 ns_appresdir
=@ns_appresdir@
/
337 ns_appsrc
=@ns_appsrc@
340 #ifdef HAVE_WINDOW_SYSTEM
341 #ifdef HAVE_X_WINDOWS
342 FONT_DRIVERS
=$(FONT_OBJ
)
343 #endif /* HAVE_X_WINDOWS */
344 #endif /* HAVE_WINDOW_SYSTEM */
346 /* lastfile must follow
all files
347 whose initialized data areas should be dumped
as pure by dump-emacs.
*/
348 obj
= dispnew.o frame.o scroll.o xdisp.o menu.o
$(XMENU_OBJ
) window.o \
349 charset.o coding.o category.o ccl.o character.o chartab.o bidi.o \
350 cm.o term.o terminal.o xfaces.o
$(XOBJ
) $(GTK_OBJ
) $(DBUS_OBJ
) \
351 emacs.o keyboard.o macros.o keymap.o sysdep.o \
352 buffer.o filelock.o insdel.o marker.o \
353 minibuf.o fileio.o dired.o filemode.o \
354 cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
355 alloc.o data.o doc.o editfns.o callint.o \
356 eval.o floatfns.o fns.o font.o
print.o lread.o \
357 syntax.o @unexec@ bytecode.o \
358 process.o callproc.o \
359 region-cache.o sound.o atimer.o \
360 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
361 $(MSDOS_OBJ
) $(NS_OBJ
) $(CYGWIN_OBJ
) $(FONT_DRIVERS
)
363 /* Object files used on some machine or other.
364 These go in the DOC file on
all machines
365 in case they are needed there.
*/
366 SOME_MACHINE_OBJECTS
= dosfns.o msdos.o \
367 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
368 fontset.o dbusbind.o \
369 nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
370 w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
371 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o
$(FONT_DRIVERS
)
376 #ifndef SYSTEM_MALLOC
377 #ifndef DOUG_LEA_MALLOC
378 gmallocobj
= gmalloc.o
385 vmlimitobj
= vm-limit.o
386 #endif /* !SYSTEM_MALLOC */
388 /* Empty on Cygwin
, lastfile.o elsewhere.
*/
389 PRE_ALLOC_OBJ
=@PRE_ALLOC_OBJ@
390 /* lastfile.o vm-limit.o on Cygwin
, $vmlimitobj elsewhere.
*/
391 POST_ALLOC_OBJ
=@POST_ALLOC_OBJ@
393 /* List of object files that make-docfile should not be told about.
*/
394 otherobj
= $(TERMCAP_OBJ
) $(PRE_ALLOC_OBJ
) $(gmallocobj
) $(rallocobj
) \
395 $(POST_ALLOC_OBJ
) $(WIDGET_OBJ
) $(LIBOBJS
)
398 #define MOUSE_SUPPORT ${lispsource}mouse.elc \
399 ${lispsource}select.elc
${lispsource}scroll-bar.elc
401 #define MOUSE_SUPPORT $(GPM_MOUSE_SUPPORT)
405 #define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
406 ${lispsource}dos-fns.elc
${lispsource}dos-w32.elc
${lispsource}dos-vars.elc \
407 ${lispsource}term
/internal.elc
${lispsource}term
/pc-win.elc
410 #define MSDOS_SUPPORT
413 #ifdef HAVE_WINDOW_SYSTEM
414 #ifdef HAVE_X_WINDOWS
415 #define WINDOW_SUPPORT $(BASE_WINDOW_SUPPORT) $(X_WINDOW_SUPPORT)
417 #define WINDOW_SUPPORT $(BASE_WINDOW_SUPPORT)
420 #define WINDOW_SUPPORT
424 #define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
425 ${lispsource}dos-w32.elc
${lispsource}w32-vars.elc \
426 ${lispsource}w32-fns.elc
${lispsource}term
/common-win.elc \
427 ${lispsource}term
/w32-win.elc
429 #define WINNT_SUPPORT
432 #ifdef HAVE_WINDOW_SYSTEM
433 #define TOOLTIP_SUPPORT ${lispsource}tooltip.elc
435 #define TOOLTIP_SUPPORT
438 /* This is the platform-specific list of Lisp files loaded into the
439 dumped Emacs. It is arranged like this because it is easier to generate
440 it semi-mechanically from loadup.el this way.
442 Note that this list should not
include lisp files which might not
443 be present
, like site-load.el and site-init.el
; this makefile
444 expects them
all to be either present or buildable.
446 Files which are loaded unconditionally
(i.e.
, on
all platforms
) should
447 also be in shortlisp. Files which are loaded conditionally
(i.e.
, only
448 on some platforms
) should instead be in SOME_MACHINE_LISP.
*/
450 /* Place loaddefs.el first
, so it gets generated first
, since it is on
451 the critical path
(relevant in parallel compilations
).
*/
454 ${lispsource}loaddefs.el \
455 ${lispsource}abbrev.elc \
456 ${lispsource}buff-menu.elc \
457 ${lispsource}button.elc \
458 ${lispsource}emacs-lisp
/byte-run.elc \
459 ${lispsource}composite.elc \
460 ${lispsource}cus-face.elc \
461 ${lispsource}cus-start.elc \
462 ${lispsource}custom.elc \
463 ${lispsource}emacs-lisp
/backquote.elc \
464 ${lispsource}emacs-lisp
/lisp-mode.elc \
465 ${lispsource}emacs-lisp
/lisp.elc \
466 ${lispsource}env.elc \
467 ${lispsource}faces.elc \
468 ${lispsource}files.elc \
469 ${lispsource}format.elc \
470 ${lispsource}facemenu.elc \
472 ${lispsource}emacs-lisp
/float-sup.elc \
473 ${lispsource}frame.elc \
474 ${lispsource}help.elc \
475 ${lispsource}indent.elc \
476 ${lispsource}isearch.elc \
477 ${lispsource}rfn-eshadow.elc \
478 ${lispsource}loadup.el \
479 ${lispsource}bindings.elc \
480 ${lispsource}emacs-lisp
/map-ynp.elc \
481 ${lispsource}menu-bar.elc \
482 ${lispsource}international
/mule.elc \
483 ${lispsource}international
/mule-conf.elc \
484 ${lispsource}international
/mule-cmds.elc \
485 ${lispsource}international
/characters.elc \
486 ${lispsource}international
/charprop.el \
487 ${lispsource}case-table.elc \
488 ${lispsource}language
/chinese.elc \
489 ${lispsource}language
/cyrillic.elc \
490 ${lispsource}language
/indian.elc \
491 ${lispsource}language
/sinhala.el \
492 ${lispsource}language
/english.el \
493 ${lispsource}language
/ethiopic.elc \
494 ${lispsource}language
/european.elc \
495 ${lispsource}language
/czech.el \
496 ${lispsource}language
/slovak.el \
497 ${lispsource}language
/romanian.el \
498 ${lispsource}language
/greek.el \
499 ${lispsource}language
/hebrew.el \
500 ${lispsource}language
/japanese.el \
501 ${lispsource}language
/korean.el \
502 ${lispsource}language
/lao.el \
503 ${lispsource}language
/cham.el \
504 ${lispsource}language
/tai-viet.el \
505 ${lispsource}language
/thai.el \
506 ${lispsource}language
/tibetan.elc \
507 ${lispsource}language
/vietnamese.elc \
508 ${lispsource}language
/misc-lang.el \
509 ${lispsource}language
/utf-8-lang.el \
510 ${lispsource}language
/georgian.el \
511 ${lispsource}language
/khmer.el \
512 ${lispsource}language
/burmese.el \
513 ${lispsource}paths.el \
514 ${lispsource}register.elc \
515 ${lispsource}replace.elc \
516 ${lispsource}simple.elc \
517 ${lispsource}minibuffer.elc \
518 ${lispsource}startup.elc \
519 ${lispsource}subr.elc \
520 ${lispsource}term
/tty-colors.elc \
521 ${lispsource}font-core.elc \
522 ${lispsource}emacs-lisp
/syntax.elc \
523 ${lispsource}font-lock.elc \
524 ${lispsource}jit-lock.elc \
525 ${lispsource}textmodes
/fill.elc \
526 ${lispsource}textmodes
/page.elc \
527 ${lispsource}textmodes
/paragraphs.elc \
528 ${lispsource}textmodes
/text-mode.elc \
529 ${lispsource}emacs-lisp
/timer.elc \
530 ${lispsource}jka-cmpr-hook.elc \
531 ${lispsource}vc-hooks.elc \
532 ${lispsource}ediff-hook.elc \
533 ${lispsource}epa-hook.elc \
539 ${lispsource}widget.elc \
540 ${lispsource}window.elc \
541 ${lispsource}version.el
543 /* List of relative names for those files from
$lisp that are loaded
544 unconditionally
(i.e. on
all platforms
). Files from
$lisp that
545 are only loaded on some platforms should instead be placed in
546 SOME_MACHINE_LISP. The only reason this variable exists is to prevent
547 the make-docfile command-line getting too long for some systems.
*/
549 ..
/lisp
/loaddefs.el \
551 ..
/lisp
/buff-menu.elc \
553 ..
/lisp
/emacs-lisp
/byte-run.elc \
554 ..
/lisp
/composite.elc \
555 ..
/lisp
/cus-face.elc \
556 ..
/lisp
/cus-start.elc \
558 ..
/lisp
/emacs-lisp
/backquote.elc \
559 ..
/lisp
/emacs-lisp
/lisp-mode.elc \
560 ..
/lisp
/emacs-lisp
/lisp.elc \
561 ..
/lisp
/facemenu.elc \
564 ..
/lisp
/emacs-lisp
/float-sup.elc \
569 ..
/lisp
/isearch.elc \
570 ..
/lisp
/rfn-eshadow.elc \
572 ..
/lisp
/bindings.elc \
573 ..
/lisp
/emacs-lisp
/map-ynp.elc \
575 ..
/lisp
/international
/mule.elc \
576 ..
/lisp
/international
/mule-conf.elc \
577 ..
/lisp
/international
/mule-cmds.elc \
578 ..
/lisp
/international
/characters.elc \
579 ..
/lisp
/case-table.elc \
580 ..
/lisp
/language
/chinese.elc \
581 ..
/lisp
/language
/cyrillic.elc \
582 ..
/lisp
/language
/indian.elc \
583 ..
/lisp
/language
/sinhala.el \
584 ..
/lisp
/language
/english.el \
585 ..
/lisp
/language
/ethiopic.elc \
586 ..
/lisp
/language
/european.elc \
587 ..
/lisp
/language
/czech.el \
588 ..
/lisp
/language
/slovak.el \
589 ..
/lisp
/language
/romanian.el \
590 ..
/lisp
/language
/greek.el \
591 ..
/lisp
/language
/hebrew.el \
592 ..
/lisp
/language
/japanese.el \
593 ..
/lisp
/language
/korean.el \
594 ..
/lisp
/language
/lao.el \
595 ..
/lisp
/language
/cham.el \
596 ..
/lisp
/language
/tai-viet.el \
597 ..
/lisp
/language
/thai.el \
598 ..
/lisp
/language
/tibetan.elc \
599 ..
/lisp
/language
/vietnamese.elc \
600 ..
/lisp
/language
/misc-lang.el \
601 ..
/lisp
/language
/utf-8-lang.el \
602 ..
/lisp
/language
/georgian.el \
603 ..
/lisp
/language
/khmer.el \
604 ..
/lisp
/language
/burmese.el \
605 ..
/lisp
/menu-bar.elc \
607 ..
/lisp
/register.elc \
608 ..
/lisp
/replace.elc \
610 ..
/lisp
/minibuffer.elc \
611 ..
/lisp
/startup.elc \
613 ..
/lisp
/term
/tty-colors.elc \
614 ..
/lisp
/font-core.elc \
615 ..
/lisp
/emacs-lisp
/syntax.elc \
616 ..
/lisp
/font-lock.elc \
617 ..
/lisp
/jit-lock.elc \
618 ..
/lisp
/textmodes
/fill.elc \
619 ..
/lisp
/textmodes
/page.elc \
620 ..
/lisp
/textmodes
/paragraphs.elc \
621 ..
/lisp
/textmodes
/text-mode.elc \
622 ..
/lisp
/emacs-lisp
/timer.elc \
623 ..
/lisp
/vc-hooks.elc \
624 ..
/lisp
/jka-cmpr-hook.elc \
625 ..
/lisp
/ediff-hook.elc \
626 ..
/lisp
/epa-hook.elc \
631 /* Like
$shortlisp, but includes only those files from
$lisp that are loaded
632 conditionally
(i.e.
, only on some platforms
).
*/
633 SOME_MACHINE_LISP
= ..
/lisp
/mouse.elc \
634 ..
/lisp
/select.elc ..
/lisp
/scroll-bar.elc \
635 ..
/lisp
/ls-lisp.elc ..
/lisp
/dos-fns.elc \
636 ..
/lisp
/w32-fns.elc ..
/lisp
/dos-w32.elc \
637 ..
/lisp
/disp-table.elc ..
/lisp
/dos-vars.elc \
638 ..
/lisp
/tooltip.elc ..
/lisp
/image.elc \
639 ..
/lisp
/fringe.elc ..
/lisp
/dnd.elc \
640 ..
/lisp
/mwheel.elc ..
/lisp
/tool-bar.elc \
641 ..
/lisp
/x-dnd.elc ..
/lisp
/dynamic-setting.elc \
642 ..
/lisp
/international
/ccl.elc \
643 ..
/lisp
/international
/fontset.elc \
645 ..
/lisp
/term
/common-win.elc \
646 ..
/lisp
/term
/x-win.elc \
647 ..
/lisp
/term
/pc-win.elc ..
/lisp
/term
/internal.elc \
648 ..
/lisp
/term
/ns-win.elc ..
/lisp
/term
/w32-win.elc \
649 ..
/lisp
/emacs-lisp
/easymenu.elc
651 /* Construct full set of libraries to be linked.
652 Note that SunOS needs
-lm to come before
-lc
; otherwise
, you
get
653 duplicated symbols. If the standard libraries were compiled
654 with GCC
, we might need gnulib again after them.
*/
656 LIBES
= $(LOADLIBES
) $(LIBS
) $(LIBX_BASE
) $(LIBX_OTHER
) $(LIBSOUND
) \
657 $(RSVG_LIBS
) $(DBUS_LIBS
) @LIBGPM@ @LIBRESOLV@
$(LIBS_SYSTEM
) \
658 $(LIBS_TERMCAP
) $(GETLOADAVG_LIBS
) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \
659 @FREETYPE_LIBS@ @FONTCONFIG_LIBS@ @LIBOTF_LIBS@ @M17N_FLT_LIBS@ \
660 $(GNULIB_VAR
) @LIB_MATH@ @LIB_STANDARD@
$(GNULIB_VAR
)
662 all: emacs
${EXEEXT} $(OTHER_FILES
)
664 emacs
${EXEEXT}: temacs
${EXEEXT} ${etc}DOC
${lisp}
667 ln temacs
${EXEEXT} emacs
${EXEEXT}
668 -EMACSLOADPATH
=${lispsource} .
/emacs
-q
-batch
-f list-load-path-shadows
670 LC_ALL
=C
$(RUN_TEMACS
) -batch
-l loadup dump
671 @
: This new Emacs is
as functional and more efficient then
672 @
: bootstrap-emacs
, so let us replace it.
673 -ln
-f emacs
${EXEEXT} bootstrap-emacs
${EXEEXT}
674 -.
/emacs
-q
-batch
-f list-load-path-shadows
675 #endif /* ! defined (CANNOT_DUMP) */
677 /* We run make-docfile twice because the command line may
get too long
679 /* ${SOME_MACHINE_OBJECTS} comes before
${obj} because some files may
680 or may not be included in
${obj}, but they are always included in
681 ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned
682 for the first time
, this prevents any variation between configurations
683 in the contents of the DOC file.
684 Likewise for
${SOME_MACHINE_LISP}.
*/
685 /* Most of this Makefile refers to Lisp files via
${lispsource}, so
686 we also use
${lisp} rather than
${shortlisp} for the dependency since
687 the Makefile uses string equality to decide when we talk about identical
688 files. Apparently we pass
${shortlisp} rather than
${lisp} to make-docfile
689 only in order to reduce the command line length.
--Stef
*/
690 ${etc}DOC
: ${libsrc}make-docfile
${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP}
692 ${libsrc}make-docfile
-d
${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
693 ${libsrc}make-docfile
-a
${etc}DOC
-d
${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
695 ${libsrc}make-docfile
${EXEEXT}:
696 cd
${libsrc}; ${MAKE} ${MFLAGS} make-docfile
${EXEEXT}
699 echo
"#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h
701 /* FIXME LOCALCPP not defined or mentioned anywhere.
*/
702 temacs
${EXEEXT}: $(LOCALCPP
) $(START_FILES
) stamp-oldxmenu
${obj} ${otherobj} prefix-args
${EXEEXT}
703 #ifdef NS_IMPL_GNUSTEP
704 $(CC
) -rdynamic YMF_PASS_LDFLAGS
( ${TEMACS_LDFLAGS} \
705 -L@GNUSTEP_SYSTEM_LIBRARIES@
-lgnustep-gui
-lgnustep-base \
706 -lobjc
$(CONFIG_SYSTEM_LIBS
) -lpthread
) -o temacs \
707 ${obj} ${otherobj} ${LIBES}
709 $(LD
) YMF_PASS_LDFLAGS
(${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS
) \
710 -o temacs
${START_FILES} ${obj} ${otherobj} \
714 prefix-args
${EXEEXT}: prefix-args.o
$(config_h
)
715 $(CC
) $(LDFLAGS
) prefix-args.o
-o prefix-args
717 #if defined (HAVE_X_WINDOWS) && defined (HAVE_X11) && defined (HAVE_MENUS) && ! defined (USE_GTK)
719 /* We use stamp-xmenu with these two deps
720 to both ensure that lwlib gets remade based on its dependencies
722 and remake temacs if lwlib gets changed by this.
*/
723 stamp-oldxmenu
: ${OLDXMENU} ..
/src
/$(OLDXMENU
)
725 /* Supply an ordering for parallel make.
*/
726 ..
/src
/$(OLDXMENU
): ${OLDXMENU}
729 $(OLDXMENU
): really-lwlib
732 cd
${lwlibdir}; ${MAKE} ${MFLAGS} \
733 CC
='${CC}' CFLAGS
='${CFLAGS}' MAKE
='${MAKE}'
734 @true
/* make
-t should not create really-lwlib.
*/
736 #else /* not USE_X_TOOLKIT */
737 $(OLDXMENU
): really-oldXMenu
740 cd
${oldXMenudir}; ${MAKE} ${MFLAGS} \
741 CC
='${CC}' CFLAGS
='${CFLAGS}' MAKE
='${MAKE}'
742 @true
/* make
-t should not create really-oldXMenu.
*/
743 .PHONY
: really-oldXMenu
744 #endif /* not USE_X_TOOLKIT */
745 #else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
747 /* We don
''t really need this
, but satisfy the dependency.
*/
750 #endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
752 ..
/config.status
:: epaths.in
753 @echo
"The file epaths.h needs to be set up from epaths.in."
754 @echo
"Please run the `configure' script again."
757 ..
/config.status
:: config.in
758 @echo
"The file config.h needs to be set up from config.in."
759 @echo
"Please run the `configure' script again."
762 ecrt0.o
: ecrt0.c
$(config_h
)
764 @
-test -d deps || mkdir deps
766 $(CC
) -c
$(ALL_CFLAGS
) ${srcdir}/ecrt0.c
771 /* FIXME some of these dependencies are platform-specific.
772 Eg callproc.c only depends on w32.h for WINDOWSNT builds.
773 One way to fix this would be to replace w32.h
(etc
) by
$(W32_H
),
774 a variable set by configure. Does not seem worth the trouble.
776 nsgui.h
: In fact
, every .o file depends directly or indirectly on
777 dispextern.h and hence nsgui.h under NS. But the ones that actually
778 use stuff there are more limited.
*/
779 atimer.o
: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \
781 bidi.o
: bidi.c buffer.h character.h dispextern.h lisp.h
$(config_h
)
782 buffer.o
: buffer.c buffer.h region-cache.h commands.h window.h \
783 $(INTERVALS_H
) blockinput.h atimer.h systime.h character.h \
784 indent.h keyboard.h coding.h keymap.h frame.h lisp.h
$(config_h
)
785 callint.o
: callint.c window.h commands.h buffer.h keymap.h \
786 keyboard.h dispextern.h systime.h coding.h composite.h lisp.h
$(config_h
)
787 callproc.o
: callproc.c epaths.h buffer.h commands.h lisp.h
$(config_h
) \
788 process.h systty.h syssignal.h character.h coding.h ccl.h msdos.h \
789 composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h \
791 casefiddle.o
: casefiddle.c syntax.h commands.h buffer.h character.h \
792 composite.h keymap.h lisp.h
$(config_h
)
793 casetab.o
: casetab.c buffer.h character.h lisp.h
$(config_h
)
794 category.o
: category.c category.h buffer.h charset.h keymap.h \
795 character.h lisp.h
$(config_h
)
796 ccl.o
: ccl.c ccl.h charset.h character.h coding.h composite.h lisp.h
$(config_h
)
797 character.o
: character.c character.h buffer.h charset.h composite.h disptab.h \
799 charset.o
: charset.c charset.h character.h buffer.h coding.h composite.h \
800 disptab.h lisp.h
$(config_h
)
801 chartab.o
: charset.h character.h ccl.h lisp.h
$(config_h
)
802 coding.o
: coding.c coding.h ccl.h buffer.h character.h charset.h composite.h \
803 window.h dispextern.h frame.h termhooks.h lisp.h
$(config_h
)
804 cm.o
: cm.c frame.h cm.h termhooks.h termchar.h dispextern.h lisp.h
$(config_h
)
805 cmds.o
: cmds.c syntax.h buffer.h character.h commands.h window.h lisp.h
$(config_h
) \
806 msdos.h dispextern.h keyboard.h keymap.h systime.h coding.h frame.h \
808 pre-crt0.o
: pre-crt0.c
809 dbusbind.o
: dbusbind.c termhooks.h frame.h keyboard.h lisp.h
$(config_h
)
810 dired.o
: dired.c commands.h buffer.h lisp.h
$(config_h
) character.h charset.h \
811 coding.h regex.h systime.h blockinput.h atimer.h composite.h
812 dispnew.o
: dispnew.c systime.h commands.h process.h frame.h coding.h \
813 window.h buffer.h termchar.h termopts.h termhooks.h cm.h \
814 disptab.h indent.h
$(INTERVALS_H
) nsgui.h \
815 xterm.h blockinput.h atimer.h character.h msdos.h keyboard.h \
816 syssignal.h lisp.h
$(config_h
)
817 doc.o
: doc.c lisp.h
$(config_h
) epaths.h buffer.h keyboard.h keymap.h \
818 character.h systime.h coding.h composite.h
819 doprnt.o
: doprnt.c character.h lisp.h
$(config_h
)
820 dosfns.o
: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
821 msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \
823 editfns.o
: editfns.c window.h buffer.h systime.h
$(INTERVALS_H
) character.h \
824 coding.h frame.h blockinput.h atimer.h lisp.h
$(config_h
)
825 emacs.o
: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
826 termhooks.h buffer.h atimer.h systime.h
$(INTERVALS_H
) lisp.h
$(config_h
) \
827 window.h dispextern.h keyboard.h keymap.h frame.h coding.h
828 fileio.o
: fileio.c window.h buffer.h systime.h
$(INTERVALS_H
) character.h \
829 coding.h msdos.h blockinput.h atimer.h lisp.h
$(config_h
) frame.h commands.h
830 filelock.o
: filelock.c buffer.h character.h coding.h systime.h composite.h \
832 filemode.o
: filemode.c
$(config_h
)
833 frame.o
: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
834 blockinput.h atimer.h systime.h buffer.h character.h fontset.h font.h \
835 msdos.h dosfns.h dispextern.h w32term.h nsgui.h termchar.h coding.h \
836 composite.h lisp.h
$(config_h
) termhooks.h ccl.h
837 fringe.o
: fringe.c dispextern.h nsgui.h frame.h window.h buffer.h termhooks.h \
838 blockinput.h atimer.h systime.h lisp.h
$(config_h
)
839 font.o
: font.c dispextern.h frame.h window.h ccl.h character.h charset.h \
840 font.h lisp.h
$(config_h
) buffer.h composite.h fontset.h xterm.h nsgui.h
841 ftfont.o
: dispextern.h frame.h character.h charset.h composite.h font.h \
842 lisp.h
$(config_h
) blockinput.h atimer.h systime.h coding.h fontset.h \
844 fontset.o
: fontset.c fontset.h ccl.h buffer.h character.h \
845 charset.h frame.h keyboard.h termhooks.h font.h lisp.h
$(config_h
) \
846 blockinput.h atimer.h systime.h coding.h
$(INTERVALS_H
) nsgui.h \
848 getloadavg.o
: getloadavg.c
$(config_h
)
849 gtkutil.o
: gtkutil.c gtkutil.h xterm.h lisp.h frame.h lisp.h
$(config_h
) \
850 blockinput.h window.h atimer.h systime.h termhooks.h keyboard.h \
851 charset.h coding.h syssignal.h dispextern.h composite.h
852 image.o
: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
853 systime.h xterm.h w32term.h w32gui.h font.h epaths.h character.h coding.h \
854 nsterm.h nsgui.h lisp.h
$(config_h
) composite.h termhooks.h ccl.h
855 indent.o
: indent.c frame.h window.h indent.h buffer.h lisp.h
$(config_h
) termchar.h \
856 termopts.h disptab.h region-cache.h character.h category.h \
857 keyboard.h systime.h coding.h
$(INTERVALS_H
)
858 insdel.o
: insdel.c window.h buffer.h
$(INTERVALS_H
) blockinput.h character.h \
859 dispextern.h atimer.h systime.h region-cache.h lisp.h
$(config_h
)
860 keyboard.o
: keyboard.c termchar.h termhooks.h termopts.h buffer.h character.h \
861 commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
862 systime.h syntax.h
$(INTERVALS_H
) blockinput.h atimer.h composite.h \
863 xterm.h puresize.h msdos.h keymap.h w32term.h nsterm.h nsgui.h coding.h \
865 keymap.o
: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
866 atimer.h systime.h puresize.h character.h charset.h
$(INTERVALS_H
) keymap.h window.h \
867 coding.h frame.h lisp.h
$(config_h
)
868 lastfile.o
: lastfile.c
$(config_h
)
869 macros.o
: macros.c window.h buffer.h commands.h macros.h keyboard.h \
870 dispextern.h lisp.h
$(config_h
) systime.h coding.h composite.h
871 gmalloc.o
: gmalloc.c
$(config_h
)
872 ralloc.o
: ralloc.c lisp.h
$(config_h
)
873 vm-limit.o
: vm-limit.c mem-limits.h lisp.h
$(config_h
)
874 marker.o
: marker.c buffer.h character.h lisp.h
$(config_h
)
875 md5.o
: md5.c md5.h
$(config_h
)
876 minibuf.o
: minibuf.c syntax.h frame.h window.h keyboard.h systime.h \
877 buffer.h commands.h character.h msdos.h
$(INTERVALS_H
) keymap.h \
878 termhooks.h lisp.h
$(config_h
) coding.h
879 mktime.o
: mktime.c
$(config_h
)
880 msdos.o
: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
881 termopts.h termchar.h character.h coding.h ccl.h disptab.h window.h \
882 keyboard.h
$(INTERVALS_H
) buffer.h commands.h blockinput.h atimer.h lisp.h
$(config_h
)
883 nsfns.o
: nsfns.m charset.h nsterm.h nsgui.h frame.h window.h buffer.h \
884 dispextern.h fontset.h
$(INTERVALS_H
) keyboard.h blockinput.h \
885 atimer.h systime.h epaths.h termhooks.h coding.h systime.h lisp.h
$(config_h
)
886 nsfont.o
: nsterm.h dispextern.h frame.h lisp.h lisp.h
$(config_h
)
887 nsimage.o
: nsimage.m nsterm.h lisp.h
$(config_h
)
888 nsmenu.o
: nsmenu.m termhooks.h frame.h window.h dispextern.h \
889 nsgui.h keyboard.h blockinput.h atimer.h systime.h buffer.h \
890 nsterm.h lisp.h
$(config_h
)
891 nsterm.o
: nsterm.m blockinput.h atimer.h systime.h syssignal.h nsterm.h \
892 nsgui.h frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h \
893 termopts.h termchar.h disptab.h buffer.h window.h keyboard.h \
894 $(INTERVALS_H
) process.h coding.h lisp.h
$(config_h
)
895 nsselect.o
: nsselect.m blockinput.h nsterm.h nsgui.h frame.h lisp.h
$(config_h
)
896 process.o
: process.c process.h buffer.h window.h termhooks.h termopts.h \
897 commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
898 blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
899 keyboard.h lisp.h
$(config_h
) character.h xgselect.h sysselect.h
900 regex.o
: regex.c syntax.h buffer.h lisp.h
$(config_h
) regex.h category.h character.h
901 region-cache.o
: region-cache.c buffer.h region-cache.h lisp.h
$(config_h
)
902 scroll.o
: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
903 termhooks.h lisp.h
$(config_h
) systime.h coding.h composite.h window.h
904 search.o
: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
905 blockinput.h atimer.h systime.h category.h character.h charset.h \
908 sound.o
: sound.c dispextern.h syssignal.h lisp.h
$(config_h
) atimer.h systime.h
909 strftime.o
: strftime.c
$(config_h
)
910 syntax.o
: syntax.c syntax.h buffer.h commands.h category.h character.h \
911 keymap.h regex.h
$(INTERVALS_H
) lisp.h
$(config_h
)
912 sysdep.o
: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
913 process.h dispextern.h termhooks.h termchar.h termopts.h coding.h \
914 frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h lisp.h
$(config_h
) \
916 term.o
: term.c termchar.h termhooks.h termopts.h lisp.h
$(config_h
) cm.h frame.h \
917 disptab.h keyboard.h character.h charset.h coding.h ccl.h xterm.h \
918 msdos.h window.h keymap.h blockinput.h atimer.h systime.h systty.h \
919 syssignal.h
$(INTERVALS_H
) buffer.h
920 termcap.o
: termcap.c lisp.h
$(config_h
)
921 terminal.o
: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
922 keyboard.h lisp.h
$(config_h
) dispextern.h composite.h systime.h
923 terminfo.o
: terminfo.c lisp.h
$(config_h
)
924 tparam.o
: tparam.c lisp.h
$(config_h
)
925 undo.o
: undo.c buffer.h commands.h window.h dispextern.h lisp.h
$(config_h
)
926 unexaix.o
: unexaix.c lisp.h
$(config_h
)
927 unexalpha.o
: unexalpha.c
$(config_h
)
928 unexcw.o
: unexcw.c lisp.h
$(config_h
)
929 unexec.o
: unexec.c lisp.h
$(config_h
)
930 unexelf.o
: unexelf.c
$(config_h
)
931 unexhp9k800.o
: unexhp9k800.c
$(config_h
)
932 unexmacosx.o
: unexmacosx.c
$(config_h
)
933 unexsol.o
: unexsol.c lisp.h
$(config_h
)
934 unexw32.o
: unexw32.c
$(config_h
)
935 w16select.o
: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
936 msdos.h buffer.h charset.h coding.h composite.h lisp.h
$(config_h
)
937 widget.o
: widget.c xterm.h frame.h dispextern.h widgetprv.h \
938 $(srcdir)/..
/lwlib
/lwlib.h lisp.h
$(config_h
)
939 window.o
: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
940 disptab.h keyboard.h msdos.h coding.h termhooks.h \
941 keymap.h blockinput.h atimer.h systime.h
$(INTERVALS_H
) \
942 xterm.h w32term.h nsterm.h nsgui.h lisp.h
$(config_h
)
943 xdisp.o
: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h \
944 coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h \
945 charset.h lisp.h
$(config_h
) keyboard.h
$(INTERVALS_H
) region-cache.h \
946 xterm.h w32term.h nsterm.h nsgui.h msdos.h composite.h fontset.h ccl.h \
947 blockinput.h atimer.h systime.h keymap.h font.h
948 xfaces.o
: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
949 window.h character.h charset.h msdos.h dosfns.h composite.h atimer.h \
950 systime.h keyboard.h fontset.h w32term.h nsterm.h coding.h ccl.h \
951 $(INTERVALS_H
) nsgui.h termchar.h termhooks.h font.h lisp.h
$(config_h
)
952 xfns.o
: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
953 $(srcdir)/..
/lwlib
/lwlib.h blockinput.h atimer.h systime.h epaths.h \
954 character.h charset.h coding.h gtkutil.h lisp.h
$(config_h
) termhooks.h \
955 fontset.h termchar.h font.h xsettings.h
$(INTERVALS_H
) ccl.h
956 xfont.o
: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
957 font.h lisp.h
$(config_h
) atimer.h systime.h fontset.h ccl.h
958 xftfont.o
: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
959 font.h lisp.h
$(config_h
) atimer.h systime.h fontset.h ccl.h ftfont.h
960 ftxfont.o
: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
961 font.h lisp.h
$(config_h
) atimer.h systime.h fontset.h ccl.h
962 menu.o
: menu.c lisp.h keyboard.h keymap.h frame.h termhooks.h blockinput.h \
963 dispextern.h
$(srcdir)/..
/lwlib
/lwlib.h xterm.h gtkutil.h menu.h \
964 lisp.h
$(config_h
) systime.h coding.h composite.h window.h atimer.h nsgui.h
965 xmenu.o
: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
966 charset.h keyboard.h
$(srcdir)/..
/lwlib
/lwlib.h blockinput.h atimer.h \
967 systime.h gtkutil.h msdos.h coding.h menu.h lisp.h
$(config_h
) composite.h \
969 xterm.o
: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
970 dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
971 keyboard.h emacs-icon.h character.h charset.h ccl.h fontset.h composite.h \
972 coding.h process.h gtkutil.h font.h fontset.h lisp.h
$(config_h
) \
973 xsettings.h intervals.h keymap.h xgselect.h sysselect.h
974 xselect.o
: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
975 buffer.h atimer.h systime.h termhooks.h lisp.h
$(config_h
) keyboard.h \
977 xgselect.o
: xgselect.h systime.h sysselect.h lisp.h
$(config_h
)
978 xrdb.o
: xrdb.c lisp.h
$(config_h
) epaths.h
979 xsmfns.o
: xsmfns.c lisp.h
$(config_h
) systime.h sysselect.h termhooks.h xterm.h \
980 lisp.h termopts.h frame.h dispextern.h
981 xsettings.o
: xterm.h xsettings.h lisp.h frame.h termhooks.h
$(config_h
) \
982 dispextern.h keyboard.h systime.h coding.h composite.h blockinput.h atimer.h \
984 /* The files of Lisp proper
*/
986 alloc.o
: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h \
987 keyboard.h blockinput.h atimer.h systime.h character.h lisp.h
$(config_h
) \
988 $(INTERVALS_H
) termhooks.h
989 bytecode.o
: bytecode.c buffer.h syntax.h character.h window.h dispextern.h \
990 frame.h xterm.h lisp.h
$(config_h
)
991 data.o
: data.c buffer.h puresize.h character.h syssignal.h keyboard.h frame.h \
992 termhooks.h systime.h coding.h composite.h dispextern.h font.h ccl.h \
994 eval.o
: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
995 dispextern.h lisp.h
$(config_h
) coding.h composite.h xterm.h
996 floatfns.o
: floatfns.c syssignal.h lisp.h
$(config_h
)
997 fns.o
: fns.c commands.h lisp.h
$(config_h
) frame.h buffer.h character.h keyboard.h \
998 keymap.h window.h dispextern.h
$(INTERVALS_H
) coding.h md5.h \
999 blockinput.h atimer.h systime.h xterm.h
1000 print.o
: print.c process.h frame.h window.h buffer.h keyboard.h character.h \
1001 lisp.h
$(config_h
) termchar.h
$(INTERVALS_H
) msdos.h termhooks.h \
1002 blockinput.h atimer.h systime.h font.h charset.h coding.h ccl.h
1003 lread.o
: lread.c commands.h keyboard.h buffer.h epaths.h character.h \
1004 charset.h lisp.h
$(config_h
) $(INTERVALS_H
) termhooks.h coding.h msdos.h \
1005 systime.h frame.h blockinput.h atimer.h
1007 /* Text properties support
*/
1008 composite.o
: composite.c buffer.h character.h coding.h font.h ccl.h \
1009 frame.h termhooks.h
$(INTERVALS_H
) window.h lisp.h
$(config_h
)
1010 intervals.o
: intervals.c buffer.h
$(INTERVALS_H
) keyboard.h puresize.h \
1011 keymap.h lisp.h
$(config_h
) systime.h coding.h
1012 textprop.o
: textprop.c buffer.h window.h
$(INTERVALS_H
) \
1015 #endif /* ! AUTO_DEPEND */
1017 /* System-specific programs to be made.
1019 select which of these should be compiled.
*/
1022 ${ns_appdir}: ${ns_appsrc}
1024 mkdir
-p
${ns_appdir}
1025 ( cd
${ns_appsrc} ; tar cfh
- .
) |
( cd
${ns_appdir} ; tar xf
- )
1026 ( cd
${ns_appdir} ; for subdir in
`find . -type d ! -name CVS -print` ; do \
1027 chmod a
+rx
$${subdir} ; \
1028 rm -rf
$${subdir}/CVS
; \
1029 rm -f
$${subdir}/.cvsignore
; done
; )
1031 ${ns_appbindir}Emacs
: emacs
${EXEEXT}
1032 mkdir
-p
${ns_appbindir}
1033 cp
-f emacs
${EXEEXT} ${ns_appbindir}Emacs
1035 ns-app
: ${ns_appdir} ${ns_appbindir}Emacs
1037 #endif /* HAVE_NS */
1040 rm -f temacs
${EXEEXT} prefix-args
${EXEEXT} core
*.core \
#* *.o libXMenu11.a liblw.a
1042 rm -f bootstrap-emacs
${EXEEXT} emacs-
${version}${EXEEXT}
1045 rm -f emacs-
*.
*.
*${EXEEXT} emacs
${EXEEXT}
1050 /* bootstrap-clean is used to
clean up just before a bootstrap.
1051 It should remove
all files generated during a compilation
/bootstrap
,
1052 but not things like config.status or TAGS.
*/
1053 bootstrap-clean
: clean
1054 rm -f epaths.h config.h Makefile.c config.stamp stamp-oldxmenu ..
/etc
/DOC-
*
1055 if
test -f .
/.gdbinit
; then \
1056 mv .
/.gdbinit .
/.gdbinit.save
; \
1057 if
test -f
"${srcdir}/.gdbinit"; then
rm -f .
/.gdbinit.save
; \
1058 else mv .
/.gdbinit.save .
/.gdbinit
; fi
; \
1060 /**/# This is used in making a distribution.
1061 /**/# Do not use it on development directories!
1062 distclean: bootstrap-clean
1064 maintainer-clean
: distclean
1065 @echo
"This command is intended for maintainers to use;"
1066 @echo
"it deletes files that may require special tools to rebuild."
1069 -rm -f emacs
${EXEEXT} emacs-
*.
*.
*${EXEEXT} ..
/etc
/DOC
*
1070 extraclean
: distclean
1071 -rm -f
*~ \
#* m/?*~ s/?*~
1073 /* Arrange to make a
tags table TAGS-LISP for ..
/lisp
,
1074 plus TAGS for the C files
, which includes ..
/lisp
/TAGS by reference.
*/
1076 ctagsfiles1
= [xyzXYZ
]*.
[hcm
]
1077 ctagsfiles2
= [a-wA-W
]*.
[hcm
]
1079 TAGS
: $(srcdir)/$(ctagsfiles1
) $(srcdir)/$(ctagsfiles2
)
1080 ..
/lib-src
/etags
--include=TAGS-LISP
--include=${lwlibdir}/TAGS \
1081 --regex
='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \
1082 $(srcdir)/$(ctagsfiles1
) $(srcdir)/$(ctagsfiles2
)
1085 $(MAKE
) -f
${lispdir}Makefile TAGS-LISP ETAGS
=..
/lib-src
/etags
1088 (cd
$(lwlibdir
); $(MAKE
) -f
$(lwlibdir
)Makefile
tags ETAGS
=..
/lib-src
/etags
)
1090 tags: TAGS TAGS-LISP
$(lwlibdir
)TAGS
1094 /* Bootstrapping.
*/
1095 /* Bootstrapping right is difficult because of the circular dependencies.
1096 Furthermore
, we have to deal with the fact that many compilation targets
1097 such
as loaddefs.el or
*.elc can typically be produced by any old
1098 Emacs executable
, so we would like to avoid rebuilding them whenever
1099 we build a new Emacs executable.
1100 To solve the circularity
, we use
2 different Emacs executables
,
1101 "emacs" is the main target and
"bootstrap-emacs" is the one used
1102 to build the
*.elc and loaddefs.el files.
1103 To solve the freshness issue
, we used to use a third file
"witness-emacs"
1104 which was used to witness the fact that there is a bootstrap-emacs
1105 executable
, and then have dependencies on witness-emacs rather than
1106 bootstrap-emacs
, but that lead to problems in parallel builds
(because
1107 witness-emacs needed to be free from dependencies
(to avoid rebuilding
1108 it
), so it was compiled in parallel
, leading typically to having
2
1109 processes dumping bootstrap-emacs at the same time
).
1110 So instead
, we replace the witness-emacs dependencies by conditional
1111 bootstrap-dependencies
(via
${BOOTSTRAPEMACS}). Of course
, since we do
1112 not want to rely on GNU Make features
, we have to rely on an external
1113 script to do the conditional part of the dependency
1114 (i.e. see the
${SUBDIR} rule ..
/Makefile.in
).
*/
1118 /* These
suffix rules do not allow additional dependencies
, sadly
, so
1119 instead of adding a
$(BOOTSTRAPEMACS
) dependency here
, we add it
1121 With GNU Make
, we would just say
"%.el : %.elc $(BOOTSTRAPEMACS)" */
1123 @cd ..
/lisp
; $(MAKE
) $(MFLAGS
) compile-onefile \
1124 THEFILE
=$< EMACS
=${bootstrap_exe}
1126 /* Since the .el.elc rule cannot specify an extra dependency
, we do it here.
*/
1127 ${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS
)
1129 ${lispsource}loaddefs.el
: $(BOOTSTRAPEMACS
)
1130 cd ..
/lisp
; $(MAKE
) $(MFLAGS
) autoloads EMACS
=${bootstrap_exe}
1132 /* Dump an Emacs executable named bootstrap-emacs containing the
1133 files from loadup.el in source form.
*/
1135 bootstrap-emacs
${EXEEXT}: temacs
${EXEEXT}
1136 cd ..
/lisp
; $(MAKE
) $(MFLAGS
) update-subdirs
1138 ln
-f temacs
${EXEEXT} bootstrap-emacs
${EXEEXT}
1140 $(RUN_TEMACS
) --batch
--load loadup bootstrap
1141 mv
-f emacs
${EXEEXT} bootstrap-emacs
${EXEEXT}
1142 #endif /* ! defined (CANNOT_DUMP) */
1143 @
: Compile some files earlier to speed up further compilation.
1144 cd ..
/lisp
; $(MAKE
) $(MFLAGS
) compile-first EMACS
=${bootstrap_exe}
1147 ALLOBJS
=$(START_FILES
) ${obj} ${otherobj} prefix-args.o
1148 -include $(ALLOBJS
:%.o
=deps
/%.d
)