aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa2010-05-27 16:08:37 +0900
committerKenichi Handa2010-05-27 16:08:37 +0900
commit478ebb73bb3b80bf2a0a55081f9753639d98fd4a (patch)
treeb6348bdf7c6f583c7bf3f7793e460cec50d64c8a /src
parent2b25da455e14b3712f544ebf7fb1c83d17353130 (diff)
parentb7bd84780e8a409dd1df344a5c6a78339b183d26 (diff)
downloademacs-478ebb73bb3b80bf2a0a55081f9753639d98fd4a.tar.gz
emacs-478ebb73bb3b80bf2a0a55081f9753639d98fd4a.zip
merge trunk
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog16
-rw-r--r--src/Makefile.in268
-rw-r--r--src/README14
-rw-r--r--src/autodeps.mk4
-rw-r--r--src/deps.mk68
-rw-r--r--src/ns.mk42
6 files changed, 210 insertions, 202 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index d451e873adb..d7128960af7 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,19 @@
12010-05-27 Glenn Morris <rgm@gnu.org>
2
3 * Makefile.in, autodeps.mk, deps.mk, ns.mk:
4 Convert comments to Makefile format.
5
6 * Makefile.in (bootstrap-clean): No more Makefile.c.
7
82010-05-26 Glenn Morris <rgm@gnu.org>
9
10 * Makefile.in (YMF_PASS_LDFLAGS): Remove.
11 (temacs${EXEEXT}): Use PRE_EDIT_LDFLAGS, POST_EDIT_LDFLAGS.
12
13 * Makefile.in (NS_IMPL_GNUSTEP_INC, NS_IMPL_GNUSTEP_TEMACS_LDFLAGS):
14 Remove.
15 (TEMACS_LDFLAGS): Do not use NS_IMPL_GNUSTEP_TEMACS_LDFLAGS.
16
12010-05-26 Kenichi Handa <handa@m17n.org> 172010-05-26 Kenichi Handa <handa@m17n.org>
2 18
3 * composite.c (composition_compute_stop_pos): Fix condition for 19 * composite.c (composition_compute_stop_pos): Fix condition for
diff --git a/src/Makefile.in b/src/Makefile.in
index 50366b4703a..0b23606a921 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -23,13 +23,6 @@
23# script may need modifying in sync with changes made here. Try to 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. 24# avoid shell-ism because the DOS build has to use the DOS shell.
25 25
26# Don't try to replace the cpp processing using autoconf facilities,
27# says rms.
28# Replacing a particular part of the conditionals to work via autoconf
29# is OK.
30# Some of the conditionals might be dead now. Finding them and
31# deleting them would be fine.
32
33SHELL = /bin/sh 26SHELL = /bin/sh
34 27
35# Here are the things that we expect ../configure to edit. 28# Here are the things that we expect ../configure to edit.
@@ -47,7 +40,7 @@ version = @version@
47# BSD doesn't have it as a default. 40# BSD doesn't have it as a default.
48@SET_MAKE@ 41@SET_MAKE@
49# Don't use LIBS. configure puts stuff in it that either shouldn't be 42# Don't use LIBS. configure puts stuff in it that either shouldn't be
50# linked with Emacs or is duplicated by the cpp stuff below. 43# linked with Emacs or is duplicated by the other stuff below.
51# LIBS = @LIBS@ 44# LIBS = @LIBS@
52LIBOBJS = @LIBOBJS@ 45LIBOBJS = @LIBOBJS@
53 46
@@ -111,14 +104,8 @@ LD_SWITCH_SYSTEM=@LD_SWITCH_SYSTEM@
111## which are only good with temacs. 104## which are only good with temacs.
112LD_SWITCH_SYSTEM_TEMACS=@LD_SWITCH_SYSTEM_TEMACS@ 105LD_SWITCH_SYSTEM_TEMACS=@LD_SWITCH_SYSTEM_TEMACS@
113 106
114## If NS_IMPL_GNUSTEP, some definitions and includes are expanded here.
115@NS_IMPL_GNUSTEP_INC@
116
117## This uses ${CONFIG_SYSTEM_LIBS} from @NS_IMPL_GNUSTEP_INC@.
118NS_IMPL_GNUSTEP_TEMACS_LDFLAGS=@NS_IMPL_GNUSTEP_TEMACS_LDFLAGS@
119
120## Flags to pass to ld only for temacs. 107## Flags to pass to ld only for temacs.
121TEMACS_LDFLAGS = $(LD_SWITCH_SYSTEM) $(LD_SWITCH_SYSTEM_TEMACS) $(NS_IMPL_GNUSTEP_TEMACS_LDFLAGS) 108TEMACS_LDFLAGS = $(LD_SWITCH_SYSTEM) $(LD_SWITCH_SYSTEM_TEMACS)
122 109
123## $LDFLAGS, or empty if NS_IMPL_GNUSTEP (for some reason). 110## $LDFLAGS, or empty if NS_IMPL_GNUSTEP (for some reason).
124TEMACS_LDFLAGS2 = @TEMACS_LDFLAGS2@ 111TEMACS_LDFLAGS2 = @TEMACS_LDFLAGS2@
@@ -304,24 +291,26 @@ DEPFLAGS=@DEPFLAGS@
304## test -d ${DEPDIR} || mkdir ${DEPDIR} (if AUTO_DEPEND); else ':'. 291## test -d ${DEPDIR} || mkdir ${DEPDIR} (if AUTO_DEPEND); else ':'.
305MKDEPDIR=@MKDEPDIR@ 292MKDEPDIR=@MKDEPDIR@
306 293
307# ========================== start of cpp stuff ======================= 294## DO NOT use -R. There is a special hack described in lastfile.c
308/* From here on, comments must be done in C syntax. */ 295## which is used instead. Some initialized data areas are modified
309 296## at initial startup, then labeled as part of the text area when
310/* DO NOT use -R. There is a special hack described in lastfile.c 297## Emacs is dumped for the first time, and never changed again.
311 which is used instead. Some initialized data areas are modified 298##
312 at initial startup, then labeled as part of the text area when 299## -Demacs is needed to make some files produce the correct version
313 Emacs is dumped for the first time, and never changed again. */ 300## for use in Emacs.
314 301##
315/* -Demacs is needed to make some files produce the correct version 302## -DHAVE_CONFIG_H is needed for some other files to take advantage of
316 for use in Emacs. 303## the information in `config.h'.
317 304##
318 -DHAVE_CONFIG_H is needed for some other files to take advantage of 305## C_SWITCH_X_SITE must come before C_SWITCH_X_SYSTEM
319 the information in ``config.h''. */ 306## since it may have -I options that should override those.
320 307##
321/* C_SWITCH_X_SITE must come before C_SWITCH_X_SYSTEM 308## FIXME? MYCPPFLAGS only referenced in etc/DEBUG.
322 since it may have -I options that should override those. */ 309ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I${srcdir} \
323/* MYCPPFLAGS only referenced in etc/DEBUG. */ 310 ${C_SWITCH_MACHINE} ${C_SWITCH_SYSTEM} ${C_SWITCH_X_SITE} \
324ALL_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} 311 ${C_SWITCH_X_SYSTEM} ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} \
312 ${GCONF_CFLAGS} ${CFLAGS} ${FREETYPE_CFLAGS} ${FONTCONFIG_CFLAGS} \
313 ${LIBOTF_CFLAGS} ${M17N_FLT_CFLAGS} ${DEPFLAGS}
325ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS) 314ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS)
326 315
327.SUFFIXES: .m 316.SUFFIXES: .m
@@ -333,8 +322,8 @@ ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS)
333 $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $< 322 $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $<
334 323
335 324
336/* lastfile must follow all files whose initialized data areas should 325## lastfile must follow all files whose initialized data areas should
337 be dumped as pure by dump-emacs. */ 326## be dumped as pure by dump-emacs.
338obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ 327obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \
339 charset.o coding.o category.o ccl.o character.o chartab.o bidi.o \ 328 charset.o coding.o category.o ccl.o character.o chartab.o bidi.o \
340 cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \ 329 cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \
@@ -350,8 +339,8 @@ obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \
350 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \ 339 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
351 $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) 340 $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ)
352 341
353/* Object files used on some machine or other. 342## Object files used on some machine or other.
354 These go in the DOC file on all machines in case they are needed. */ 343## These go in the DOC file on all machines in case they are needed.
355SOME_MACHINE_OBJECTS = dosfns.o msdos.o \ 344SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
356 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \ 345 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
357 fontset.o dbusbind.o \ 346 fontset.o dbusbind.o \
@@ -359,39 +348,38 @@ SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
359 w32.o w32console.o w32fns.o w32heap.o w32inevt.o \ 348 w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
360 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_OBJ) 349 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_OBJ)
361 350
362/* gmalloc.o if !SYSTEM_MALLOC && !DOUG_LEA_MALLOC, else empty. */ 351## gmalloc.o if !SYSTEM_MALLOC && !DOUG_LEA_MALLOC, else empty.
363GMALLOC_OBJ=@GMALLOC_OBJ@ 352GMALLOC_OBJ=@GMALLOC_OBJ@
364 353
365/* vm-limit.o if !SYSTEM_MALLOC, else empty. */ 354## vm-limit.o if !SYSTEM_MALLOC, else empty.
366VMLIMIT_OBJ=@VMLIMIT_OBJ@ 355VMLIMIT_OBJ=@VMLIMIT_OBJ@
367 356
368/* ralloc.o if !SYSTEM_MALLOC && REL_ALLOC, else empty. */ 357## ralloc.o if !SYSTEM_MALLOC && REL_ALLOC, else empty.
369RALLOC_OBJ=@RALLOC_OBJ@ 358RALLOC_OBJ=@RALLOC_OBJ@
370 359
371/* Empty on Cygwin, lastfile.o elsewhere. */ 360## Empty on Cygwin, lastfile.o elsewhere.
372PRE_ALLOC_OBJ=@PRE_ALLOC_OBJ@ 361PRE_ALLOC_OBJ=@PRE_ALLOC_OBJ@
373/* lastfile.o on Cygwin, empty elsewhere. */ 362## lastfile.o on Cygwin, empty elsewhere.
374POST_ALLOC_OBJ=@POST_ALLOC_OBJ@ 363POST_ALLOC_OBJ=@POST_ALLOC_OBJ@
375 364
376/* List of object files that make-docfile should not be told about. */ 365## List of object files that make-docfile should not be told about.
377otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \ 366otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \
378 $(POST_ALLOC_OBJ) $(VMLIMIT_OBJ) $(WIDGET_OBJ) $(LIBOBJS) 367 $(POST_ALLOC_OBJ) $(VMLIMIT_OBJ) $(WIDGET_OBJ) $(LIBOBJS)
379 368
380/* This is the platform-specific list of Lisp files loaded into the 369## This is the platform-specific list of Lisp files loaded into the
381 dumped Emacs. It is arranged like this because it is easier to generate 370## dumped Emacs. It is arranged like this because it is easier to generate
382 it semi-mechanically from loadup.el this way. 371## it semi-mechanically from loadup.el this way.
383 372##
384 Note that this list should not include lisp files which might not 373## Note that this list should not include lisp files which might not
385 be present, like site-load.el and site-init.el; this makefile 374## be present, like site-load.el and site-init.el; this makefile
386 expects them all to be either present or buildable. 375## expects them all to be either present or buildable.
387 376##
388 Files which are loaded unconditionally (i.e., on all platforms) should 377## Files which are loaded unconditionally (i.e., on all platforms) should
389 also be in shortlisp. Files which are loaded conditionally (i.e., only 378## also be in shortlisp. Files which are loaded conditionally (i.e., only
390 on some platforms) should instead be in SOME_MACHINE_LISP. */ 379## on some platforms) should instead be in SOME_MACHINE_LISP.
391 380##
392/* Place loaddefs.el first, so it gets generated first, since it is on 381## Place loaddefs.el first, so it gets generated first, since it is on
393 the critical path (relevant in parallel compilations). */ 382## the critical path (relevant in parallel compilations).
394
395lisp= \ 383lisp= \
396 ${lispsource}loaddefs.el \ 384 ${lispsource}loaddefs.el \
397 ${lispsource}abbrev.elc \ 385 ${lispsource}abbrev.elc \
@@ -481,11 +469,11 @@ lisp= \
481 ${lispsource}window.elc \ 469 ${lispsource}window.elc \
482 ${lispsource}version.el 470 ${lispsource}version.el
483 471
484/* List of relative names for those files from $lisp that are loaded 472## List of relative names for those files from $lisp that are loaded
485 unconditionally (i.e. on all platforms). Files from $lisp that 473## unconditionally (i.e. on all platforms). Files from $lisp that
486 are only loaded on some platforms should instead be placed in 474## are only loaded on some platforms should instead be placed in
487 SOME_MACHINE_LISP. The only reason this variable exists is to prevent 475## SOME_MACHINE_LISP. The only reason this variable exists is to prevent
488 the make-docfile command-line getting too long for some systems. */ 476## the make-docfile command-line getting too long for some systems.
489shortlisp= \ 477shortlisp= \
490 ../lisp/loaddefs.el \ 478 ../lisp/loaddefs.el \
491 ../lisp/abbrev.elc \ 479 ../lisp/abbrev.elc \
@@ -569,8 +557,8 @@ shortlisp= \
569 ../lisp/window.elc \ 557 ../lisp/window.elc \
570 ../lisp/version.el 558 ../lisp/version.el
571 559
572/* Like $shortlisp, but includes only those files from $lisp that are loaded 560## Like $shortlisp, but includes only those files from $lisp that are loaded
573 conditionally (i.e., only on some platforms). */ 561## conditionally (i.e., only on some platforms).
574SOME_MACHINE_LISP = ../lisp/mouse.elc \ 562SOME_MACHINE_LISP = ../lisp/mouse.elc \
575 ../lisp/select.elc ../lisp/scroll-bar.elc \ 563 ../lisp/select.elc ../lisp/scroll-bar.elc \
576 ../lisp/ls-lisp.elc ../lisp/dos-fns.elc \ 564 ../lisp/ls-lisp.elc ../lisp/dos-fns.elc \
@@ -589,11 +577,10 @@ SOME_MACHINE_LISP = ../lisp/mouse.elc \
589 ../lisp/term/ns-win.elc ../lisp/term/w32-win.elc \ 577 ../lisp/term/ns-win.elc ../lisp/term/w32-win.elc \
590 ../lisp/emacs-lisp/easymenu.elc 578 ../lisp/emacs-lisp/easymenu.elc
591 579
592/* Construct full set of libraries to be linked. 580## Construct full set of libraries to be linked.
593 Note that SunOS needs -lm to come before -lc; otherwise, you get 581## Note that SunOS needs -lm to come before -lc; otherwise, you get
594 duplicated symbols. If the standard libraries were compiled 582## duplicated symbols. If the standard libraries were compiled
595 with GCC, we might need LIB_GCC again after them. */ 583## with GCC, we might need LIB_GCC again after them.
596
597LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \ 584LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \
598 $(RSVG_LIBS) $(DBUS_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \ 585 $(RSVG_LIBS) $(DBUS_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \
599 $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \ 586 $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \
@@ -602,9 +589,9 @@ LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \
602 589
603all: emacs${EXEEXT} $(OTHER_FILES) 590all: emacs${EXEEXT} $(OTHER_FILES)
604 591
605/* Does anyone ever pay attention to the load-path-shadows output here? */ 592## Does anyone ever pay attention to the load-path-shadows output here?
606/* The dumped Emacs is as functional and more efficient than 593## The dumped Emacs is as functional and more efficient than
607 bootstrap-emacs, so we replace the latter with the former. */ 594## bootstrap-emacs, so we replace the latter with the former.
608emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} 595emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
609 if test "${CANNOT_DUMP}" = "yes"; then \ 596 if test "${CANNOT_DUMP}" = "yes"; then \
610 ln -f temacs${EXEEXT} emacs${EXEEXT}; \ 597 ln -f temacs${EXEEXT} emacs${EXEEXT}; \
@@ -616,19 +603,19 @@ emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
616 ./emacs -q -batch -f list-load-path-shadows || true; \ 603 ./emacs -q -batch -f list-load-path-shadows || true; \
617 fi 604 fi
618 605
619/* We run make-docfile twice because the command line may get too long 606## We run make-docfile twice because the command line may get too long
620 on some systems. */ 607## on some systems.
621/* ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may 608## ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may
622 or may not be included in ${obj}, but they are always included in 609## or may not be included in ${obj}, but they are always included in
623 ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned 610## ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned
624 for the first time, this prevents any variation between configurations 611## for the first time, this prevents any variation between configurations
625 in the contents of the DOC file. 612## in the contents of the DOC file.
626 Likewise for ${SOME_MACHINE_LISP}. */ 613## Likewise for ${SOME_MACHINE_LISP}.
627/* Most of this Makefile refers to Lisp files via ${lispsource}, so 614## Most of this Makefile refers to Lisp files via ${lispsource}, so
628 we also use ${lisp} rather than ${shortlisp} for the dependency since 615## we also use ${lisp} rather than ${shortlisp} for the dependency since
629 the Makefile uses string equality to decide when we talk about identical 616## the Makefile uses string equality to decide when we talk about identical
630 files. Apparently we pass ${shortlisp} rather than ${lisp} to make-docfile 617## files. Apparently we pass ${shortlisp} rather than ${lisp} to make-docfile
631 only in order to reduce the command line length. --Stef */ 618## only in order to reduce the command line length. --Stef
632${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP} 619${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP}
633 -rm -f ${etc}DOC 620 -rm -f ${etc}DOC
634 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC 621 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
@@ -640,10 +627,14 @@ ${libsrc}make-docfile${EXEEXT}:
640buildobj.h: Makefile 627buildobj.h: Makefile
641 echo "#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h 628 echo "#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h
642 629
643#define YMF_PASS_LDFLAGS(flags) @YMF_PASS_LDFLAGS@
644 630
631## We cannot define variables for PRE_EDIT and POST_EDIT.
632## If !ORDINARY_LINK && !LINKER && GCC, they add a
633## `./prefix-args -Xlinker ... ` wrapper, otherwise they are empty.
634## One alternative to this approach would be to always call prefix-args,
635## and have it DTRT in all cases, by testing the above defines.
645temacs${EXEEXT}: $(START_FILES) stamp-oldxmenu ${obj} ${otherobj} prefix-args${EXEEXT} 636temacs${EXEEXT}: $(START_FILES) stamp-oldxmenu ${obj} ${otherobj} prefix-args${EXEEXT}
646 $(LD) YMF_PASS_LDFLAGS ( ${TEMACS_LDFLAGS} ) \ 637 $(LD) @PRE_EDIT_LDFLAGS@ ${TEMACS_LDFLAGS} @POST_EDIT_LDFLAGS@ \
647 ${TEMACS_LDFLAGS2} \ 638 ${TEMACS_LDFLAGS2} \
648 -o temacs ${START_FILES} ${obj} ${otherobj} ${LIBES} 639 -o temacs ${START_FILES} ${obj} ${otherobj} ${LIBES}
649 640
@@ -651,27 +642,27 @@ prefix-args${EXEEXT}: prefix-args.o $(config_h)
651 $(CC) $(LDFLAGS) prefix-args.o -o prefix-args 642 $(CC) $(LDFLAGS) prefix-args.o -o prefix-args
652 643
653 644
654/* The following oldxmenu-related rules are only (possibly) used if 645## The following oldxmenu-related rules are only (possibly) used if
655 HAVE_X11 && !USE_GTK, but there is no harm in always defining them 646## HAVE_X11 && !USE_GTK, but there is no harm in always defining them
656 (provided we take a little care that OLDXMENU is never empty). */ 647## (provided we take a little care that OLDXMENU is never empty).
657really-lwlib: 648really-lwlib:
658 cd ${lwlibdir}; ${MAKE} ${MFLAGS} \ 649 cd ${lwlibdir}; ${MAKE} ${MFLAGS} \
659 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' 650 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'
660 @true /* make -t should not create really-lwlib. */ 651 @true # make -t should not create really-lwlib.
661.PHONY: really-lwlib 652.PHONY: really-lwlib
662 653
663really-oldXMenu: 654really-oldXMenu:
664 cd ${oldXMenudir}; ${MAKE} ${MFLAGS} \ 655 cd ${oldXMenudir}; ${MAKE} ${MFLAGS} \
665 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' 656 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'
666 @true /* make -t should not create really-oldXMenu. */ 657 @true # make -t should not create really-oldXMenu.
667.PHONY: really-oldXMenu 658.PHONY: really-oldXMenu
668 659
669/* We don''t really need this when OLDXMENU_DEPS is empty, but as 660## We do not really need this when OLDXMENU_DEPS is empty, but as
670 things stand we need something to satisfy the temacs dependency. */ 661## things stand we need something to satisfy the temacs dependency.
671stamp-oldxmenu: ${OLDXMENU_DEPS} 662stamp-oldxmenu: ${OLDXMENU_DEPS}
672 touch stamp-oldxmenu 663 touch stamp-oldxmenu
673 664
674/* Supply an ordering for parallel make. */ 665## Supply an ordering for parallel make.
675../src/$(OLDXMENU): ${OLDXMENU} 666../src/$(OLDXMENU): ${OLDXMENU}
676 667
677$(OLDXMENU): $(OLDXMENU_TARGET) 668$(OLDXMENU): $(OLDXMENU_TARGET)
@@ -692,7 +683,7 @@ ecrt0.o: ecrt0.c $(config_h)
692doc.o: buildobj.h 683doc.o: buildobj.h
693 684
694 685
695/* If HAVE_NS, some ns-specific rules (for OTHER_FILES) are inserted here. */ 686## If HAVE_NS, some ns-specific rules (for OTHER_FILES) are inserted here.
696@ns_frag@ 687@ns_frag@
697 688
698 689
@@ -706,18 +697,18 @@ clean: mostlyclean
706 -rm -rf ${DEPDIR} 697 -rm -rf ${DEPDIR}
707 test "X${ns_appdir}" = "X" || rm -rf ${ns_appdir} 698 test "X${ns_appdir}" = "X" || rm -rf ${ns_appdir}
708 699
709/* bootstrap-clean is used to clean up just before a bootstrap. 700## bootstrap-clean is used to clean up just before a bootstrap.
710 It should remove all files generated during a compilation/bootstrap, 701## It should remove all files generated during a compilation/bootstrap,
711 but not things like config.status or TAGS. */ 702## but not things like config.status or TAGS.
712bootstrap-clean: clean 703bootstrap-clean: clean
713 rm -f epaths.h config.h Makefile.c config.stamp stamp-oldxmenu ../etc/DOC-* 704 rm -f epaths.h config.h config.stamp stamp-oldxmenu ../etc/DOC-*
714 if test -f ./.gdbinit; then \ 705 if test -f ./.gdbinit; then \
715 mv ./.gdbinit ./.gdbinit.save; \ 706 mv ./.gdbinit ./.gdbinit.save; \
716 if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \ 707 if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
717 else mv ./.gdbinit.save ./.gdbinit; fi; \ 708 else mv ./.gdbinit.save ./.gdbinit; fi; \
718 fi 709 fi
719/**/# This is used in making a distribution. 710## This is used in making a distribution.
720/**/# Do not use it on development directories! 711## Do not use it on development directories!
721distclean: bootstrap-clean 712distclean: bootstrap-clean
722 rm -f Makefile 713 rm -f Makefile
723maintainer-clean: distclean 714maintainer-clean: distclean
@@ -729,8 +720,8 @@ versionclean:
729extraclean: distclean 720extraclean: distclean
730 -rm -f *~ \#* m/?*~ s/?*~ 721 -rm -f *~ \#* m/?*~ s/?*~
731 722
732/* Arrange to make a tags table TAGS-LISP for ../lisp, 723## Arrange to make a tags table TAGS-LISP for ../lisp,
733 plus TAGS for the C files, which includes ../lisp/TAGS by reference. */ 724## plus TAGS for the C files, which includes ../lisp/TAGS by reference.
734 725
735ctagsfiles1 = [xyzXYZ]*.[hcm] 726ctagsfiles1 = [xyzXYZ]*.[hcm]
736ctagsfiles2 = [a-wA-W]*.[hcm] 727ctagsfiles2 = [a-wA-W]*.[hcm]
@@ -750,49 +741,49 @@ tags: TAGS TAGS-LISP $(lwlibdir)TAGS
750.PHONY: tags 741.PHONY: tags
751 742
752 743
753/* Bootstrapping. */ 744### Bootstrapping.
754/* Bootstrapping right is difficult because of the circular dependencies. 745
755 Furthermore, we have to deal with the fact that many compilation targets 746## Bootstrapping right is difficult because of the circular dependencies.
756 such as loaddefs.el or *.elc can typically be produced by any old 747## Furthermore, we have to deal with the fact that many compilation targets
757 Emacs executable, so we would like to avoid rebuilding them whenever 748## such as loaddefs.el or *.elc can typically be produced by any old
758 we build a new Emacs executable. 749## Emacs executable, so we would like to avoid rebuilding them whenever
759 To solve the circularity, we use 2 different Emacs executables, 750## we build a new Emacs executable.
760 "emacs" is the main target and "bootstrap-emacs" is the one used 751## To solve the circularity, we use 2 different Emacs executables,
761 to build the *.elc and loaddefs.el files. 752## "emacs" is the main target and "bootstrap-emacs" is the one used
762 To solve the freshness issue, we used to use a third file "witness-emacs" 753## to build the *.elc and loaddefs.el files.
763 which was used to witness the fact that there is a bootstrap-emacs 754## To solve the freshness issue, we used to use a third file "witness-emacs"
764 executable, and then have dependencies on witness-emacs rather than 755## which was used to witness the fact that there is a bootstrap-emacs
765 bootstrap-emacs, but that lead to problems in parallel builds (because 756## executable, and then have dependencies on witness-emacs rather than
766 witness-emacs needed to be free from dependencies (to avoid rebuilding 757## bootstrap-emacs, but that lead to problems in parallel builds (because
767 it), so it was compiled in parallel, leading typically to having 2 758## witness-emacs needed to be free from dependencies (to avoid rebuilding
768 processes dumping bootstrap-emacs at the same time). 759## it), so it was compiled in parallel, leading typically to having 2
769 So instead, we replace the witness-emacs dependencies by conditional 760## processes dumping bootstrap-emacs at the same time).
770 bootstrap-dependencies (via ${BOOTSTRAPEMACS}). Of course, since we do 761## So instead, we replace the witness-emacs dependencies by conditional
771 not want to rely on GNU Make features, we have to rely on an external 762## bootstrap-dependencies (via ${BOOTSTRAPEMACS}). Of course, since we do
772 script to do the conditional part of the dependency 763## not want to rely on GNU Make features, we have to rely on an external
773 (i.e. see the ${SUBDIR} rule ../Makefile.in). */ 764## script to do the conditional part of the dependency
765## (i.e. see the ${SUBDIR} rule ../Makefile.in).
774 766
775.SUFFIXES: .elc .el 767.SUFFIXES: .elc .el
776 768
777/* These suffix rules do not allow additional dependencies, sadly, so 769## These suffix rules do not allow additional dependencies, sadly, so
778 instead of adding a $(BOOTSTRAPEMACS) dependency here, we add it 770## instead of adding a $(BOOTSTRAPEMACS) dependency here, we add it
779 separately below. 771## separately below.
780 With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)" */ 772## With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)"
781.el.elc: 773.el.elc:
782 @cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \ 774 @cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \
783 THEFILE=$< EMACS=${bootstrap_exe} 775 THEFILE=$< EMACS=${bootstrap_exe}
784 776
785/* Since the .el.elc rule cannot specify an extra dependency, we do it here. */ 777## Since the .el.elc rule cannot specify an extra dependency, we do it here.
786${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS) 778${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS)
787 779
788/* VCSWITNESS points to the file that holds info about the current checkout. 780## VCSWITNESS points to the file that holds info about the current checkout.
789 We use it as a heuristic to decide when to rebuild loaddefs.el. */ 781## We use it as a heuristic to decide when to rebuild loaddefs.el.
790${lispsource}loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS) 782${lispsource}loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS)
791 cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=${bootstrap_exe} 783 cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=${bootstrap_exe}
792 784
793/* Dump an Emacs executable named bootstrap-emacs containing the 785## Dump an Emacs executable named bootstrap-emacs containing the
794 files from loadup.el in source form. */ 786## files from loadup.el in source form.
795
796bootstrap-emacs${EXEEXT}: temacs${EXEEXT} 787bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
797 cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs 788 cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs
798 if test "${CANNOT_DUMP}" = "yes"; then \ 789 if test "${CANNOT_DUMP}" = "yes"; then \
@@ -804,5 +795,8 @@ bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
804 @: Compile some files earlier to speed up further compilation. 795 @: Compile some files earlier to speed up further compilation.
805 cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=${bootstrap_exe} 796 cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=${bootstrap_exe}
806 797
807/* Insert either autodeps.mk (if AUTO_DEPEND), else deps.mk. */ 798## Insert either autodeps.mk (if AUTO_DEPEND), else deps.mk.
808@deps_frag@ 799@deps_frag@
800
801
802### Makefile.in ends here
diff --git a/src/README b/src/README
index 679fc961e53..b4ce91b150a 100644
--- a/src/README
+++ b/src/README
@@ -1,5 +1,5 @@
1Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 1Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2 Free Software Foundation, Inc. 2 2010 Free Software Foundation, Inc.
3See the end of the file for license conditions. 3See the end of the file for license conditions.
4 4
5 5
@@ -10,12 +10,10 @@ and installed, if the dumped Emacs (on Unix systems) is copied elsewhere.
10See the files ../README and then ../INSTALL for installation instructions. 10See the files ../README and then ../INSTALL for installation instructions.
11 11
12Under GNU and Unix systems, the file `Makefile.in' is used as a 12Under GNU and Unix systems, the file `Makefile.in' is used as a
13template by the script `../configure' to produce `Makefile.c'. The 13template by the script `../configure' to produce `Makefile'. This
14same script then uses `cpp' to produce the machine-dependent 14is the file which actually controls the compilation of Emacs.
15`Makefile' from `Makefile.c'; `Makefile' is the file which actually 15All of this should work transparently to the user; you should only
16controls the compilation of Emacs. Most of this should work 16need to run `../configure', and then type `make'.
17transparently to the user; you should only need to run `../configure',
18and then type `make'.
19 17
20 18
21This file is part of GNU Emacs. 19This file is part of GNU Emacs.
diff --git a/src/autodeps.mk b/src/autodeps.mk
index a5d2a04dcf4..c3cc91e22a7 100644
--- a/src/autodeps.mk
+++ b/src/autodeps.mk
@@ -1,6 +1,6 @@
1/* autodeps.mk --- src/Makefile fragment for GNU Emacs 1### autodeps.mk --- src/Makefile fragment for GNU Emacs
2 2
3This is inserted in src/Makefile if AUTO_DEPEND=yes. */ 3## This is inserted in src/Makefile if AUTO_DEPEND=yes.
4 4
5ALLOBJS=$(START_FILES) ${obj} ${otherobj} prefix-args.o 5ALLOBJS=$(START_FILES) ${obj} ${otherobj} prefix-args.o
6-include $(ALLOBJS:%.o=${DEPDIR}/%.d) 6-include $(ALLOBJS:%.o=${DEPDIR}/%.d)
diff --git a/src/deps.mk b/src/deps.mk
index 08a435da6a9..1514ec5e61a 100644
--- a/src/deps.mk
+++ b/src/deps.mk
@@ -1,41 +1,41 @@
1/* deps.mk --- src/Makefile fragment for GNU Emacs 1### deps.mk --- src/Makefile fragment for GNU Emacs
2 2
3Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002, 3## Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002,
4 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 4## 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5 Free Software Foundation, Inc. 5## Free Software Foundation, Inc.
6 6
7This file is part of GNU Emacs. 7## This file is part of GNU Emacs.
8 8
9GNU Emacs is free software: you can redistribute it and/or modify 9## GNU Emacs is free software: you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by 10## it under the terms of the GNU General Public License as published by
11the Free Software Foundation, either version 3 of the License, or 11## the Free Software Foundation, either version 3 of the License, or
12(at your option) any later version. 12## (at your option) any later version.
13##
14## GNU Emacs is distributed in the hope that it will be useful,
15## but WITHOUT ANY WARRANTY; without even the implied warranty of
16## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17## GNU General Public License for more details.
18##
19## You should have received a copy of the GNU General Public License
20## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
13 21
14GNU Emacs is distributed in the hope that it will be useful, 22## Commentary:
15but WITHOUT ANY WARRANTY; without even the implied warranty of 23##
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 24## This file is inserted in src/Makefile if AUTO_DEPEND=no.
17GNU General Public License for more details. 25## It defines static dependencies between the various source files.
18 26
19You should have received a copy of the GNU General Public License 27## FIXME some of these dependencies are platform-specific.
20along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. 28## Eg callproc.c only depends on w32.h for WINDOWSNT builds.
29## One way to fix this would be to replace w32.h (etc) by $(W32_H),
30## a variable set by configure. Does not seem worth the trouble.
31## Since the w32 build does not even use this file, you might ask
32## why these dependencies are here at all...
21 33
22Commentary: 34## nsgui.h: In fact, every .o file depends directly or indirectly on
35## dispextern.h and hence nsgui.h under NS. But the ones that actually
36## use stuff there are more limited.
23 37
24This file is inserted in src/Makefile if AUTO_DEPEND=no. 38### Code:
25It defines static dependencies between the various source files.
26
27FIXME some of these dependencies are platform-specific.
28Eg callproc.c only depends on w32.h for WINDOWSNT builds.
29One way to fix this would be to replace w32.h (etc) by $(W32_H),
30a variable set by configure. Does not seem worth the trouble.
31Since the w32 build does not even use this file, you might ask
32why these dependencies are here at all...
33
34nsgui.h: In fact, every .o file depends directly or indirectly on
35dispextern.h and hence nsgui.h under NS. But the ones that actually
36use stuff there are more limited.
37
38Code: */
39 39
40atimer.o: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \ 40atimer.o: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \
41 $(config_h) 41 $(config_h)
@@ -245,7 +245,7 @@ xsettings.o: xterm.h xsettings.h lisp.h frame.h termhooks.h $(config_h) \
245 dispextern.h keyboard.h systime.h coding.h composite.h blockinput.h \ 245 dispextern.h keyboard.h systime.h coding.h composite.h blockinput.h \
246 atimer.h termopts.h 246 atimer.h termopts.h
247 247
248/* The files of Lisp proper. */ 248## The files of Lisp proper.
249alloc.o: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h \ 249alloc.o: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h \
250 keyboard.h blockinput.h atimer.h systime.h character.h lisp.h $(config_h) \ 250 keyboard.h blockinput.h atimer.h systime.h character.h lisp.h $(config_h) \
251 $(INTERVALS_H) termhooks.h 251 $(INTERVALS_H) termhooks.h
@@ -267,7 +267,7 @@ lread.o: lread.c commands.h keyboard.h buffer.h epaths.h character.h \
267 charset.h lisp.h $(config_h) $(INTERVALS_H) termhooks.h coding.h msdos.h \ 267 charset.h lisp.h $(config_h) $(INTERVALS_H) termhooks.h coding.h msdos.h \
268 systime.h frame.h blockinput.h atimer.h 268 systime.h frame.h blockinput.h atimer.h
269 269
270/* Text properties support. */ 270## Text properties support.
271composite.o: composite.c buffer.h character.h coding.h font.h ccl.h \ 271composite.o: composite.c buffer.h character.h coding.h font.h ccl.h \
272 frame.h termhooks.h $(INTERVALS_H) window.h lisp.h $(config_h) 272 frame.h termhooks.h $(INTERVALS_H) window.h lisp.h $(config_h)
273intervals.o: intervals.c buffer.h $(INTERVALS_H) keyboard.h puresize.h \ 273intervals.o: intervals.c buffer.h $(INTERVALS_H) keyboard.h puresize.h \
@@ -276,4 +276,4 @@ textprop.o: textprop.c buffer.h window.h $(INTERVALS_H) \
276 lisp.h $(config_h) 276 lisp.h $(config_h)
277 277
278 278
279/* deps.mk ends here */ 279### deps.mk ends here
diff --git a/src/ns.mk b/src/ns.mk
index 255ffa7046b..d674466a407 100644
--- a/src/ns.mk
+++ b/src/ns.mk
@@ -1,29 +1,29 @@
1/* autodeps.mk --- src/Makefile fragment for GNU Emacs 1### autodeps.mk --- src/Makefile fragment for GNU Emacs
2 2
3Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. 3## Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5## This file is part of GNU Emacs.
6 6
7GNU Emacs is free software: you can redistribute it and/or modify 7## GNU Emacs is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by 8## it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 3 of the License, or 9## the Free Software Foundation, either version 3 of the License, or
10(at your option) any later version. 10## (at your option) any later version.
11##
12## GNU Emacs is distributed in the hope that it will be useful,
13## but WITHOUT ANY WARRANTY; without even the implied warranty of
14## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15## GNU General Public License for more details.
16##
17## You should have received a copy of the GNU General Public License
18## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
11 19
12GNU Emacs is distributed in the hope that it will be useful, 20### Commentary:
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16 21
17You should have received a copy of the GNU General Public License 22## This is inserted in src/Makefile if HAVE_NS.
18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
19 23
20Commentary: 24## The only reason this is in a separate file is because $ns_appdir,
21 25## which appears as a target, is empty on non-NS builds. Some makes
22This is inserted in src/Makefile if HAVE_NS. 26## do not like empty targets, even if they are never used.
23
24The only reason this is in a separate file is because $ns_appdir,
25which appears as a target, is empty on non-NS builds. Some makes
26do not like empty targets, even if they are never used. */
27 27
28${ns_appdir}: ${ns_appsrc} 28${ns_appdir}: ${ns_appsrc}
29 rm -fr ${ns_appdir} 29 rm -fr ${ns_appdir}
@@ -36,4 +36,4 @@ ${ns_appbindir}Emacs: emacs${EXEEXT}
36 36
37ns-app: ${ns_appdir} ${ns_appbindir}Emacs 37ns-app: ${ns_appdir} ${ns_appbindir}Emacs
38 38
39/* ns.mk ends here */ 39### ns.mk ends here