diff options
| author | Glenn Morris | 2010-05-26 22:43:27 -0700 |
|---|---|---|
| committer | Glenn Morris | 2010-05-26 22:43:27 -0700 |
| commit | 81ac4f35366bfc525fa6ed89e0b5aaa90a05c902 (patch) | |
| tree | e77b927e7e5fcf2d0ac05bcacb13baa10ed4b285 | |
| parent | 11e4d8c0d35ec52819d5ce11176fc1f53b9890e0 (diff) | |
| download | emacs-81ac4f35366bfc525fa6ed89e0b5aaa90a05c902.tar.gz emacs-81ac4f35366bfc525fa6ed89e0b5aaa90a05c902.zip | |
Do not preprocess src/Makefile.in.
* configure.in: Do not preprocess src/Makefile.in.
(cpp_undefs, CPP_NEED_TRADITIONAL): Remove.
(AC_EGREP_CPP): Test no longer needed.
* configure: Regenerate.
* config.bat: Do not preprocess src/Makefile.in.
* make-dist: No more Makefile.c files.
* INSTALL, src/README: Makefiles are not preprocessed.
* src/Makefile.in, src/autodeps.mk, src/deps.mk, src/ns.mk:
Convert comments to Makefile format.
* lib-src/Makefile.in (distclean): No more Makefile.c.
* src/Makefile.in (bootstrap-clean): No more Makefile.c.
* admin/notes/cpp: Remove file.
* admin/quick-install-emacs (AVOID): No more Makefile.c files.
* etc/PROBLEMS, etc/MACHINES: Remove details of cpp problems which can
no longer occur.
| -rw-r--r-- | ChangeLog | 10 | ||||
| -rw-r--r-- | INSTALL | 26 | ||||
| -rw-r--r-- | admin/ChangeLog | 6 | ||||
| -rw-r--r-- | admin/notes/cpp | 14 | ||||
| -rwxr-xr-x | admin/quick-install-emacs | 6 | ||||
| -rw-r--r-- | config.bat | 9 | ||||
| -rwxr-xr-x | configure | 75 | ||||
| -rw-r--r-- | configure.in | 53 | ||||
| -rw-r--r-- | etc/MACHINES | 12 | ||||
| -rw-r--r-- | etc/PROBLEMS | 38 | ||||
| -rw-r--r-- | lib-src/ChangeLog | 4 | ||||
| -rw-r--r-- | lib-src/Makefile.in | 2 | ||||
| -rwxr-xr-x | make-dist | 3 | ||||
| -rw-r--r-- | src/ChangeLog | 7 | ||||
| -rw-r--r-- | src/Makefile.in | 262 | ||||
| -rw-r--r-- | src/README | 14 | ||||
| -rw-r--r-- | src/autodeps.mk | 4 | ||||
| -rw-r--r-- | src/deps.mk | 68 | ||||
| -rw-r--r-- | src/ns.mk | 42 |
19 files changed, 248 insertions, 407 deletions
| @@ -1,3 +1,13 @@ | |||
| 1 | 2010-05-27 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * config.bat: Do not preprocess src/Makefile.in. | ||
| 4 | |||
| 5 | * configure.in: Do not preprocess src/Makefile.in. | ||
| 6 | (cpp_undefs, CPP_NEED_TRADITIONAL): Remove. | ||
| 7 | (AC_EGREP_CPP): Test no longer needed. | ||
| 8 | |||
| 9 | * make-dist: No more Makefile.c files. | ||
| 10 | |||
| 1 | 2010-05-26 Glenn Morris <rgm@gnu.org> | 11 | 2010-05-26 Glenn Morris <rgm@gnu.org> |
| 2 | 12 | ||
| 3 | * configure.in (YMF_PASS_LDFLAGS): Remove. | 13 | * configure.in (YMF_PASS_LDFLAGS): Remove. |
| @@ -1,6 +1,7 @@ | |||
| 1 | GNU Emacs Installation Guide | 1 | GNU Emacs Installation Guide |
| 2 | Copyright (C) 1992, 1994, 1996, 1997, 2000, 2001, 2002, 2003, 2004, | 2 | Copyright (C) 1992, 1994, 1996, 1997, 2000, 2001, 2002, 2003, 2004, |
| 3 | 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. | 3 | 2005, 2006, 2007, 2008, 2009, 2010 |
| 4 | Free Software Foundation, Inc. | ||
| 4 | See the end of the file for license conditions. | 5 | See the end of the file for license conditions. |
| 5 | 6 | ||
| 6 | 7 | ||
| @@ -686,8 +687,8 @@ when running make in the subdirectories. | |||
| 686 | 687 | ||
| 687 | CONFIGURATION BY HAND | 688 | CONFIGURATION BY HAND |
| 688 | 689 | ||
| 689 | Instead of running the `configure' program, you have to perform the | 690 | This should not be necessary and is not recommended. Instead of |
| 690 | following steps. | 691 | running the `configure' program, you have to perform the following steps. |
| 691 | 692 | ||
| 692 | 1) Copy `./src/config.in' to `./src/config.h'. | 693 | 1) Copy `./src/config.in' to `./src/config.h'. |
| 693 | 694 | ||
| @@ -701,22 +702,15 @@ the appropriate system and architecture description files. | |||
| 701 | 2) Edit `./src/config.h' to set the right options for your system. If | 702 | 2) Edit `./src/config.h' to set the right options for your system. If |
| 702 | you need to override any of the definitions in the s/*.h and m/*.h | 703 | you need to override any of the definitions in the s/*.h and m/*.h |
| 703 | files for your system and machine, do so by editing config.h, not by | 704 | files for your system and machine, do so by editing config.h, not by |
| 704 | changing the s/*.h and m/*.h files. Occasionally you may need to | 705 | changing the s/*.h and m/*.h files. |
| 705 | redefine parameters used in `./lib-src/movemail.c'. | ||
| 706 | 706 | ||
| 707 | 3) Create src/Makefile and lib-src/Makefile from the corresponding | 707 | 3) Create `Makefile' files in various directories from the |
| 708 | `Makefile.in' files. First copy `Makefile.in' to `Makefile.c', | 708 | corresponding `Makefile.in' files. This isn't so hard, just a matter |
| 709 | then edit in appropriate substitutions for the @...@ constructs, | 709 | of editing in appropriate substitutions for the @...@ constructs. |
| 710 | and then copy the shell commands near the end of `configure' | ||
| 711 | that run cpp to construct `Makefile'. | ||
| 712 | |||
| 713 | 4) Create `Makefile' files in various other directories | ||
| 714 | from the corresponding `Makefile.in' files. This isn't so hard, | ||
| 715 | just a matter of substitution. | ||
| 716 | 710 | ||
| 717 | The `configure' script is built from `configure.in' by the `autoconf' | 711 | The `configure' script is built from `configure.in' by the `autoconf' |
| 718 | program. You need version 2.51 or newer of `autoconf' to rebuild | 712 | program. You need at least the version of autoconf specified in the |
| 719 | `configure'. | 713 | AC_PREREQ(...) command to rebuild `configure' from `configure.in'. |
| 720 | 714 | ||
| 721 | BUILDING GNU EMACS BY HAND | 715 | BUILDING GNU EMACS BY HAND |
| 722 | 716 | ||
diff --git a/admin/ChangeLog b/admin/ChangeLog index 54be4a7fec3..2f6efffd157 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2010-05-27 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * quick-install-emacs (AVOID): No more Makefile.c files. | ||
| 4 | |||
| 5 | * notes/cpp: Remove file. | ||
| 6 | |||
| 1 | 2010-05-15 Ken Raeburn <raeburn@raeburn.org> | 7 | 2010-05-15 Ken Raeburn <raeburn@raeburn.org> |
| 2 | 8 | ||
| 3 | * admin.el (set-version, set-copyright): Update emacs.c instead of | 9 | * admin.el (set-version, set-copyright): Update emacs.c instead of |
diff --git a/admin/notes/cpp b/admin/notes/cpp deleted file mode 100644 index 73b4b3d64ff..00000000000 --- a/admin/notes/cpp +++ /dev/null | |||
| @@ -1,14 +0,0 @@ | |||
| 1 | ttn 2003-04-09 | ||
| 2 | |||
| 3 | we use a C preprocesor not only in the normal compilation of .c files | ||
| 4 | into object files, but also for creating src/Makefile. | ||
| 5 | (delimited by comment "start of cpp stuff"). some cpp implementations | ||
| 6 | insert whitespace in between tokens. | ||
| 7 | |||
| 8 | during makefile creation, the preprocessor symbol NOT_C_CODE is defined. | ||
| 9 | this should not be defined for normal .c file compilation. | ||
| 10 | |||
| 11 | there has been discussion on eliminating this use of cpp and relying | ||
| 12 | solely on autoconf processing. rms says to leave it be. | ||
| 13 | |||
| 14 | ;;; arch-tag: d654291e-9fc8-41b7-ab0c-d3cde842a8e0 | ||
diff --git a/admin/quick-install-emacs b/admin/quick-install-emacs index d603d8fd0d6..39b200b5102 100755 --- a/admin/quick-install-emacs +++ b/admin/quick-install-emacs | |||
| @@ -1,8 +1,8 @@ | |||
| 1 | #!/bin/sh | 1 | #!/bin/sh |
| 2 | ### quick-install-emacs --- do a halfway-decent job of installing emacs quickly | 2 | ### quick-install-emacs --- do a halfway-decent job of installing emacs quickly |
| 3 | 3 | ||
| 4 | ## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 | 4 | ## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, |
| 5 | ## Free Software Foundation, Inc. | 5 | ## 2010 Free Software Foundation, Inc. |
| 6 | 6 | ||
| 7 | ## Author: Miles Bader <miles@gnu.org> | 7 | ## Author: Miles Bader <miles@gnu.org> |
| 8 | 8 | ||
| @@ -31,7 +31,7 @@ | |||
| 31 | PUBLIC_LIBSRC_BINARIES='b2m emacsclient etags ctags ebrowse' | 31 | PUBLIC_LIBSRC_BINARIES='b2m emacsclient etags ctags ebrowse' |
| 32 | PUBLIC_LIBSRC_SCRIPTS='grep-changelog rcs-checkin' | 32 | PUBLIC_LIBSRC_SCRIPTS='grep-changelog rcs-checkin' |
| 33 | 33 | ||
| 34 | AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile$ Makefile.in$ Makefile.c$ makefile$ makefile.w32-in$ stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile testfile test-distrib" | 34 | AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile$ Makefile.in$ makefile$ makefile.w32-in$ stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile testfile test-distrib" |
| 35 | 35 | ||
| 36 | # Prune old binaries lying around in the source tree | 36 | # Prune old binaries lying around in the source tree |
| 37 | PRUNE=no | 37 | PRUNE=no |
diff --git a/config.bat b/config.bat index ba31161962e..a37a7a70085 100644 --- a/config.bat +++ b/config.bat | |||
| @@ -190,11 +190,10 @@ rem On my system dir.h gets in the way. It's a VMS file so who cares. | |||
| 190 | if exist dir.h ren dir.h vmsdir.h | 190 | if exist dir.h ren dir.h vmsdir.h |
| 191 | 191 | ||
| 192 | rem Create "makefile" from "makefile.in". | 192 | rem Create "makefile" from "makefile.in". |
| 193 | rm -f Makefile junk.c junk2.c | 193 | rm -f Makefile makefile.tmp |
| 194 | sed -e "1,/== start of cpp stuff ==/s@^##*[ ].*$@@" <Makefile.in >junk.c | 194 | copy Makefile.in + deps.mk makefile.tmp |
| 195 | copy junk.c + deps.mk junk2.c | 195 | sed -f ../msdos/sed1v2.inp <makefile.tmp >Makefile |
| 196 | gcc -E -traditional junk2.c | sed -f ../msdos/sed1v2.inp >Makefile | 196 | rm -f makefile.tmp |
| 197 | rm -f junk.c junk2.c | ||
| 198 | 197 | ||
| 199 | if "%X11%" == "" goto src5 | 198 | if "%X11%" == "" goto src5 |
| 200 | mv Makefile makefile.tmp | 199 | mv Makefile makefile.tmp |
| @@ -26694,15 +26694,15 @@ fi | |||
| 26694 | 26694 | ||
| 26695 | 26695 | ||
| 26696 | test "x$LINKER" = "x" && LINKER=ld | 26696 | test "x$LINKER" = "x" && LINKER=ld |
| 26697 | ## FIXME? What setting of YMF_PASS_LDFLAGS should this have? | 26697 | ## FIXME? What setting of EDIT_LDFLAGS should this have? |
| 26698 | test "$NS_IMPL_GNUSTEP" = "yes" && LINKER="\$(CC) -rdynamic" | 26698 | test "$NS_IMPL_GNUSTEP" = "yes" && LINKER="\$(CC) -rdynamic" |
| 26699 | 26699 | ||
| 26700 | 26700 | ||
| 26701 | 26701 | ||
| 26702 | 26702 | ||
| 26703 | ## FIXME? The logic here is not precisely the same as that above | 26703 | ## FIXME? The logic here is not precisely the same as that above. |
| 26704 | ## setting YMF_PASS_LDFLAGS. There is no check here for a pre-defined | 26704 | ## There is no check here for a pre-defined LINKER. |
| 26705 | ## LINKER. Should we only be setting LIB_GCC if LD ~ -nostdlib? | 26705 | ## Should we only be setting LIB_GCC if LD ~ -nostdlib? |
| 26706 | LIB_GCC= | 26706 | LIB_GCC= |
| 26707 | if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then | 26707 | if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then |
| 26708 | 26708 | ||
| @@ -26848,42 +26848,7 @@ test "${prefix}" != NONE && | |||
| 26848 | test "${exec_prefix}" != NONE && | 26848 | test "${exec_prefix}" != NONE && |
| 26849 | exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'` | 26849 | exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'` |
| 26850 | 26850 | ||
| 26851 | # Now get this: Some word that is part of the ${srcdir} directory name | 26851 | ac_config_files="$ac_config_files Makefile lib-src/Makefile oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile leim/Makefile" |
| 26852 | # or the ${configuration} value might, just might, happen to be an | ||
| 26853 | # identifier like `sun4' or `i386' or something, and be predefined by | ||
| 26854 | # the C preprocessor to some helpful value like 1, or maybe the empty | ||
| 26855 | # string. Needless to say consequent macro substitutions are less | ||
| 26856 | # than conducive to the makefile finding the correct directory. | ||
| 26857 | # src/Makefile.in used to treat X11 as equivalent to HAVE_X11. | ||
| 26858 | # But nothing in Emacs defines X11, and everywhere else uses HAVE_X11, | ||
| 26859 | # so that cannot have been doing anything. | ||
| 26860 | cpp_undefs="`echo $srcdir $configuration $canonical unix mktime register X11 | | ||
| 26861 | sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \ | ||
| 26862 | -e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g'`" | ||
| 26863 | |||
| 26864 | ## Check if the C preprocessor will convert `..' to `. .'. If so, set | ||
| 26865 | ## CPP_NEED_TRADITIONAL to `yes' so that the code to generate Makefile | ||
| 26866 | ## from Makefile.c can correctly provide the arg `-traditional' to the | ||
| 26867 | ## C preprocessor. | ||
| 26868 | |||
| 26869 | cat >conftest.$ac_ext <<_ACEOF | ||
| 26870 | /* confdefs.h. */ | ||
| 26871 | _ACEOF | ||
| 26872 | cat confdefs.h >>conftest.$ac_ext | ||
| 26873 | cat >>conftest.$ac_ext <<_ACEOF | ||
| 26874 | /* end confdefs.h. */ | ||
| 26875 | yes..yes | ||
| 26876 | _ACEOF | ||
| 26877 | if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | | ||
| 26878 | $EGREP "yes..yes" >/dev/null 2>&1; then | ||
| 26879 | CPP_NEED_TRADITIONAL=no | ||
| 26880 | else | ||
| 26881 | CPP_NEED_TRADITIONAL=yes | ||
| 26882 | fi | ||
| 26883 | rm -f conftest* | ||
| 26884 | |||
| 26885 | |||
| 26886 | ac_config_files="$ac_config_files Makefile lib-src/Makefile oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile.c:src/Makefile.in lwlib/Makefile lisp/Makefile leim/Makefile" | ||
| 26887 | 26852 | ||
| 26888 | ac_config_commands="$ac_config_commands default" | 26853 | ac_config_commands="$ac_config_commands default" |
| 26889 | 26854 | ||
| @@ -27470,7 +27435,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | |||
| 27470 | # | 27435 | # |
| 27471 | # INIT-COMMANDS | 27436 | # INIT-COMMANDS |
| 27472 | # | 27437 | # |
| 27473 | GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS" cpp_undefs="$cpp_undefs" | 27438 | GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPPFLAGS="$CPPFLAGS" |
| 27474 | 27439 | ||
| 27475 | _ACEOF | 27440 | _ACEOF |
| 27476 | 27441 | ||
| @@ -27488,7 +27453,7 @@ do | |||
| 27488 | "doc/misc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/misc/Makefile" ;; | 27453 | "doc/misc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/misc/Makefile" ;; |
| 27489 | "doc/lispintro/Makefile") CONFIG_FILES="$CONFIG_FILES doc/lispintro/Makefile" ;; | 27454 | "doc/lispintro/Makefile") CONFIG_FILES="$CONFIG_FILES doc/lispintro/Makefile" ;; |
| 27490 | "doc/lispref/Makefile") CONFIG_FILES="$CONFIG_FILES doc/lispref/Makefile" ;; | 27455 | "doc/lispref/Makefile") CONFIG_FILES="$CONFIG_FILES doc/lispref/Makefile" ;; |
| 27491 | "src/Makefile.c") CONFIG_FILES="$CONFIG_FILES src/Makefile.c:src/Makefile.in" ;; | 27456 | "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; |
| 27492 | "lwlib/Makefile") CONFIG_FILES="$CONFIG_FILES lwlib/Makefile" ;; | 27457 | "lwlib/Makefile") CONFIG_FILES="$CONFIG_FILES lwlib/Makefile" ;; |
| 27493 | "lisp/Makefile") CONFIG_FILES="$CONFIG_FILES lisp/Makefile" ;; | 27458 | "lisp/Makefile") CONFIG_FILES="$CONFIG_FILES lisp/Makefile" ;; |
| 27494 | "leim/Makefile") CONFIG_FILES="$CONFIG_FILES leim/Makefile" ;; | 27459 | "leim/Makefile") CONFIG_FILES="$CONFIG_FILES leim/Makefile" ;; |
| @@ -28154,35 +28119,9 @@ for dir in etc lisp ; do | |||
| 28154 | test -d ${dir} || mkdir ${dir} | 28119 | test -d ${dir} || mkdir ${dir} |
| 28155 | done | 28120 | done |
| 28156 | 28121 | ||
| 28157 | # Build src/Makefile from ${srcdir}/src/Makefile.c | ||
| 28158 | # This must be done after src/config.h is built, since we rely on that file. | ||
| 28159 | |||
| 28160 | echo creating src/epaths.h | 28122 | echo creating src/epaths.h |
| 28161 | ${MAKE-make} epaths-force | 28123 | ${MAKE-make} epaths-force |
| 28162 | 28124 | ||
| 28163 | # As of 2000-11-19, newest development versions of GNU cpp preprocess | ||
| 28164 | # `..' to `. .' unless invoked with -traditional | ||
| 28165 | |||
| 28166 | if test "x$GCC" = xyes && test "x$CPP_NEED_TRADITIONAL" = xyes; then | ||
| 28167 | CPPFLAGS="$CPPFLAGS -traditional" | ||
| 28168 | fi | ||
| 28169 | |||
| 28170 | echo creating src/Makefile | ||
| 28171 | ( cd src | ||
| 28172 | rm -f junk.c junk1.c junk2.c | ||
| 28173 | sed -e '/start of cpp stuff/q' \ | ||
| 28174 | < Makefile.c > junk1.c | ||
| 28175 | sed -e '1,/start of cpp stuff/d'\ | ||
| 28176 | -e 's,/\*\*/#\(.*\)$,/* \1 */,' \ | ||
| 28177 | < Makefile.c > junk.c | ||
| 28178 | $CPP -P $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \ | ||
| 28179 | sed -e 's/^ / /' -e '/^#/d' -e '/^[ ]*$/d' > junk2.c | ||
| 28180 | cat junk1.c junk2.c > Makefile.new | ||
| 28181 | rm -f junk.c junk1.c junk2.c | ||
| 28182 | chmod 444 Makefile.new | ||
| 28183 | mv -f Makefile.new Makefile | ||
| 28184 | ) | ||
| 28185 | |||
| 28186 | if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then | 28125 | if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then |
| 28187 | echo creating src/.gdbinit | 28126 | echo creating src/.gdbinit |
| 28188 | echo source $srcdir/src/.gdbinit > src/.gdbinit | 28127 | echo source $srcdir/src/.gdbinit > src/.gdbinit |
diff --git a/configure.in b/configure.in index 9fb73280d78..9d301367b09 100644 --- a/configure.in +++ b/configure.in | |||
| @@ -3755,32 +3755,9 @@ fi | |||
| 3755 | test "${exec_prefix}" != NONE && | 3755 | test "${exec_prefix}" != NONE && |
| 3756 | exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`] | 3756 | exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`] |
| 3757 | 3757 | ||
| 3758 | # Now get this: Some word that is part of the ${srcdir} directory name | ||
| 3759 | # or the ${configuration} value might, just might, happen to be an | ||
| 3760 | # identifier like `sun4' or `i386' or something, and be predefined by | ||
| 3761 | # the C preprocessor to some helpful value like 1, or maybe the empty | ||
| 3762 | # string. Needless to say consequent macro substitutions are less | ||
| 3763 | # than conducive to the makefile finding the correct directory. | ||
| 3764 | # src/Makefile.in used to treat X11 as equivalent to HAVE_X11. | ||
| 3765 | # But nothing in Emacs defines X11, and everywhere else uses HAVE_X11, | ||
| 3766 | # so that cannot have been doing anything. | ||
| 3767 | [cpp_undefs="`echo $srcdir $configuration $canonical unix mktime register X11 | | ||
| 3768 | sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \ | ||
| 3769 | -e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g'`"] | ||
| 3770 | |||
| 3771 | ## Check if the C preprocessor will convert `..' to `. .'. If so, set | ||
| 3772 | ## CPP_NEED_TRADITIONAL to `yes' so that the code to generate Makefile | ||
| 3773 | ## from Makefile.c can correctly provide the arg `-traditional' to the | ||
| 3774 | ## C preprocessor. | ||
| 3775 | |||
| 3776 | AC_EGREP_CPP(yes..yes, | ||
| 3777 | [yes..yes], | ||
| 3778 | CPP_NEED_TRADITIONAL=no, | ||
| 3779 | CPP_NEED_TRADITIONAL=yes) | ||
| 3780 | |||
| 3781 | AC_OUTPUT(Makefile lib-src/Makefile oldXMenu/Makefile \ | 3758 | AC_OUTPUT(Makefile lib-src/Makefile oldXMenu/Makefile \ |
| 3782 | doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \ | 3759 | doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \ |
| 3783 | doc/lispref/Makefile src/Makefile.c:src/Makefile.in \ | 3760 | doc/lispref/Makefile src/Makefile \ |
| 3784 | lwlib/Makefile lisp/Makefile leim/Makefile, [ | 3761 | lwlib/Makefile lisp/Makefile leim/Makefile, [ |
| 3785 | 3762 | ||
| 3786 | ### Make the necessary directories, if they don't exist. | 3763 | ### Make the necessary directories, if they don't exist. |
| @@ -3788,41 +3765,15 @@ for dir in etc lisp ; do | |||
| 3788 | test -d ${dir} || mkdir ${dir} | 3765 | test -d ${dir} || mkdir ${dir} |
| 3789 | done | 3766 | done |
| 3790 | 3767 | ||
| 3791 | # Build src/Makefile from ${srcdir}/src/Makefile.c | ||
| 3792 | # This must be done after src/config.h is built, since we rely on that file. | ||
| 3793 | |||
| 3794 | echo creating src/epaths.h | 3768 | echo creating src/epaths.h |
| 3795 | ${MAKE-make} epaths-force | 3769 | ${MAKE-make} epaths-force |
| 3796 | 3770 | ||
| 3797 | # As of 2000-11-19, newest development versions of GNU cpp preprocess | ||
| 3798 | # `..' to `. .' unless invoked with -traditional | ||
| 3799 | |||
| 3800 | if test "x$GCC" = xyes && test "x$CPP_NEED_TRADITIONAL" = xyes; then | ||
| 3801 | CPPFLAGS="$CPPFLAGS -traditional" | ||
| 3802 | fi | ||
| 3803 | |||
| 3804 | echo creating src/Makefile | ||
| 3805 | ( cd src | ||
| 3806 | rm -f junk.c junk1.c junk2.c | ||
| 3807 | sed -e '/start of cpp stuff/q' \ | ||
| 3808 | < Makefile.c > junk1.c | ||
| 3809 | sed -e '1,/start of cpp stuff/d'\ | ||
| 3810 | -e 's,/\*\*/#\(.*\)$,/* \1 */,' \ | ||
| 3811 | < Makefile.c > junk.c | ||
| 3812 | $CPP -P $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \ | ||
| 3813 | sed -e 's/^ / /' -e '/^#/d' -e '/^[ ]*$/d' > junk2.c | ||
| 3814 | cat junk1.c junk2.c > Makefile.new | ||
| 3815 | rm -f junk.c junk1.c junk2.c | ||
| 3816 | chmod 444 Makefile.new | ||
| 3817 | mv -f Makefile.new Makefile | ||
| 3818 | ) | ||
| 3819 | |||
| 3820 | if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then | 3771 | if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then |
| 3821 | echo creating src/.gdbinit | 3772 | echo creating src/.gdbinit |
| 3822 | echo source $srcdir/src/.gdbinit > src/.gdbinit | 3773 | echo source $srcdir/src/.gdbinit > src/.gdbinit |
| 3823 | fi | 3774 | fi |
| 3824 | 3775 | ||
| 3825 | ], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS" cpp_undefs="$cpp_undefs"]) | 3776 | ], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPPFLAGS="$CPPFLAGS"]) |
| 3826 | 3777 | ||
| 3827 | m4_if(dnl Do not change this comment | 3778 | m4_if(dnl Do not change this comment |
| 3828 | arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e | 3779 | arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e |
diff --git a/etc/MACHINES b/etc/MACHINES index 8fc79ab0d1d..aa5d766e8dd 100644 --- a/etc/MACHINES +++ b/etc/MACHINES | |||
| @@ -198,8 +198,7 @@ IBM RS/6000 (rs6000-ibm-aix*) | |||
| 198 | 198 | ||
| 199 | IBM System/390 running GNU/Linux (s390-*-linux-gnu) | 199 | IBM System/390 running GNU/Linux (s390-*-linux-gnu) |
| 200 | 200 | ||
| 201 | As of Emacs 21.2, a 31-bit only version is supported on this | 201 | As of Emacs 21.2, a 31-bit only version is supported on this system. |
| 202 | system. | ||
| 203 | 202 | ||
| 204 | Intel 386 (i386-*-freebsd, i386-*-linux-gnu, | 203 | Intel 386 (i386-*-freebsd, i386-*-linux-gnu, |
| 205 | i386-*-sol2.4, i386-intsys-sysv, | 204 | i386-*-sol2.4, i386-intsys-sysv, |
| @@ -247,11 +246,6 @@ Intel 386 (i386-*-freebsd, i386-*-linux-gnu, | |||
| 247 | do `gmake install MAKE=gmake'. However, more recently it is | 246 | do `gmake install MAKE=gmake'. However, more recently it is |
| 248 | reported that using the system Make on NetBSD 1.3.1 works ok. | 247 | reported that using the system Make on NetBSD 1.3.1 works ok. |
| 249 | 248 | ||
| 250 | If you are using System V release 4.2, you may find that `cc -E' | ||
| 251 | puts spurious spaces in `src/xmakefile'. If that happens, | ||
| 252 | specify CPP=/lib/cpp as an option when you run make. | ||
| 253 | There is no problem if you compile with GCC. | ||
| 254 | |||
| 255 | Note that use of Linux with GCC 2.4 and the DLL 4.4 libraries | 249 | Note that use of Linux with GCC 2.4 and the DLL 4.4 libraries |
| 256 | requires the experimental "net 2" network patches (no relation to | 250 | requires the experimental "net 2" network patches (no relation to |
| 257 | Berkeley Net 2). There is a report that (some version of) Linux | 251 | Berkeley Net 2). There is a report that (some version of) Linux |
| @@ -491,10 +485,6 @@ System V rel 4.0.3 and 4.0.4 (usg5.4) | |||
| 491 | If you get compilation errors about wrong number of | 485 | If you get compilation errors about wrong number of |
| 492 | arguments to getpgrp, define GETPGRP_NO_ARG. | 486 | arguments to getpgrp, define GETPGRP_NO_ARG. |
| 493 | 487 | ||
| 494 | The standard C preprocessor may generate xmakefile incorrectly. However, | ||
| 495 | /lib/cpp will work, so use `make CPP=/lib/cpp'. Standard cpp | ||
| 496 | seems to work OK under Dell 2.2. | ||
| 497 | |||
| 498 | Some versions 3 and earlier of V.4, on the Intel 386 and 860, had | 488 | Some versions 3 and earlier of V.4, on the Intel 386 and 860, had |
| 499 | problems in the X11 libraries. These prevent Emacs from working | 489 | problems in the X11 libraries. These prevent Emacs from working |
| 500 | with X. You can use Emacs with X provided your copy of X is based | 490 | with X. You can use Emacs with X provided your copy of X is based |
diff --git a/etc/PROBLEMS b/etc/PROBLEMS index b3cda374c51..65e3920eee3 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS | |||
| @@ -2373,18 +2373,6 @@ The solution is to tell configure to use the correct C preprocessor | |||
| 2373 | for your C compiler (CPP="/opt/SUNWspro/bin/cc -E" in the above | 2373 | for your C compiler (CPP="/opt/SUNWspro/bin/cc -E" in the above |
| 2374 | example). | 2374 | example). |
| 2375 | 2375 | ||
| 2376 | *** `configure' fails with ``"junk.c", line 660: invalid input token: 8.elc'' | ||
| 2377 | |||
| 2378 | The final stage of the Emacs configure process uses the C preprocessor | ||
| 2379 | to generate the Makefiles. Errors of this form can occur if the C | ||
| 2380 | preprocessor inserts extra whitespace into its output. The solution | ||
| 2381 | is to find the switches that stop your preprocessor from inserting extra | ||
| 2382 | whitespace, add them to CPPFLAGS, and re-run configure. For example, | ||
| 2383 | this error can occur on Solaris 10 when using the Sun Studio compiler | ||
| 2384 | ``Sun C 5.8'' with its preprocessor CPP="/opt/SUNWspro/bin/cc -E". | ||
| 2385 | The relevant switch in this case is "-Xs" (``compile assuming | ||
| 2386 | (pre-ANSI) K & R C style code''). | ||
| 2387 | |||
| 2388 | ** Compilation | 2376 | ** Compilation |
| 2389 | 2377 | ||
| 2390 | *** Building Emacs over NFS fails with ``Text file busy''. | 2378 | *** Building Emacs over NFS fails with ``Text file busy''. |
| @@ -2427,32 +2415,6 @@ you are working on the host called `marvin'. Then an entry in the | |||
| 2427 | 2415 | ||
| 2428 | The solution is to remove this line from `etc/fstab'. | 2416 | The solution is to remove this line from `etc/fstab'. |
| 2429 | 2417 | ||
| 2430 | *** Building Emacs with GCC 2.9x fails in the `src' directory. | ||
| 2431 | |||
| 2432 | This may happen if you use a development version of GNU `cpp' from one | ||
| 2433 | of the GCC snapshots between Oct 2000 and Feb 2001, or from a released | ||
| 2434 | version of GCC newer than 2.95.2 which was prepared around those | ||
| 2435 | dates; similar problems were reported with some snapshots of GCC 3.1 | ||
| 2436 | around Sep 30 2001. The preprocessor in those versions is | ||
| 2437 | incompatible with a traditional Unix cpp (e.g., it expands ".." into | ||
| 2438 | ". .", which breaks relative file names that reference the parent | ||
| 2439 | directory; or inserts TAB characters before lines that set Make | ||
| 2440 | variables). | ||
| 2441 | |||
| 2442 | The solution is to make sure the preprocessor is run with the | ||
| 2443 | `-traditional' option. The `configure' script does that automatically | ||
| 2444 | when it detects the known problems in your cpp, but you might hit some | ||
| 2445 | unknown ones. To force the `configure' script to use `-traditional', | ||
| 2446 | run the script like this: | ||
| 2447 | |||
| 2448 | CPP='gcc -E -traditional' ./configure ... | ||
| 2449 | |||
| 2450 | (replace the ellipsis "..." with any additional arguments you pass to | ||
| 2451 | the script). | ||
| 2452 | |||
| 2453 | Note that this problem does not pertain to the MS-Windows port of | ||
| 2454 | Emacs, since it doesn't use the preprocessor to generate Makefiles. | ||
| 2455 | |||
| 2456 | *** src/Makefile and lib-src/Makefile are truncated--most of the file missing. | 2418 | *** src/Makefile and lib-src/Makefile are truncated--most of the file missing. |
| 2457 | *** Compiling wakeup, in lib-src, says it can't make wakeup.c. | 2419 | *** Compiling wakeup, in lib-src, says it can't make wakeup.c. |
| 2458 | 2420 | ||
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index d2c7301fb6f..ac1641a552e 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2010-05-27 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * Makefile.in (distclean): No more Makefile.c. | ||
| 4 | |||
| 1 | 2010-05-22 Jan Djärv <jan.h.d@swipnet.se> | 5 | 2010-05-22 Jan Djärv <jan.h.d@swipnet.se> |
| 2 | 6 | ||
| 3 | * Makefile.in (STAMP_INST_SCRIPTS, STAMP_SCRIPS): New (Bug #6246). | 7 | * Makefile.in (STAMP_INST_SCRIPTS, STAMP_SCRIPS): New (Bug #6246). |
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in index 1c19dec276b..264f14b1d49 100644 --- a/lib-src/Makefile.in +++ b/lib-src/Makefile.in | |||
| @@ -283,7 +283,7 @@ clean: mostlyclean | |||
| 283 | 283 | ||
| 284 | distclean: clean | 284 | distclean: clean |
| 285 | -rm -f TAGS | 285 | -rm -f TAGS |
| 286 | -rm -f Makefile Makefile.c blessmail | 286 | -rm -f Makefile blessmail |
| 287 | 287 | ||
| 288 | maintainer-clean: distclean | 288 | maintainer-clean: distclean |
| 289 | true | 289 | true |
| @@ -461,7 +461,7 @@ echo "Making links to \`src'" | |||
| 461 | ln makefile.w32-in ../${tempdir}/src | 461 | ln makefile.w32-in ../${tempdir}/src |
| 462 | ln .gdbinit .dbxinit ../${tempdir}/src | 462 | ln .gdbinit .dbxinit ../${tempdir}/src |
| 463 | cd ../${tempdir}/src | 463 | cd ../${tempdir}/src |
| 464 | rm -f config.h epaths.h Makefile Makefile.c | 464 | rm -f config.h epaths.h Makefile |
| 465 | rm -f =* TAGS) | 465 | rm -f =* TAGS) |
| 466 | 466 | ||
| 467 | echo "Making links to \`src/bitmaps'" | 467 | echo "Making links to \`src/bitmaps'" |
| @@ -499,7 +499,6 @@ echo "Making links to \`lib-src'" | |||
| 499 | fi | 499 | fi |
| 500 | done | 500 | done |
| 501 | cd ../${tempdir}/lib-src | 501 | cd ../${tempdir}/lib-src |
| 502 | rm -f Makefile.c | ||
| 503 | rm -f getopt.h | 502 | rm -f getopt.h |
| 504 | rm -f =* TAGS) | 503 | rm -f =* TAGS) |
| 505 | 504 | ||
diff --git a/src/ChangeLog b/src/ChangeLog index 83d2e956af6..d7128960af7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2010-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 | |||
| 1 | 2010-05-26 Glenn Morris <rgm@gnu.org> | 8 | 2010-05-26 Glenn Morris <rgm@gnu.org> |
| 2 | 9 | ||
| 3 | * Makefile.in (YMF_PASS_LDFLAGS): Remove. | 10 | * Makefile.in (YMF_PASS_LDFLAGS): Remove. |
diff --git a/src/Makefile.in b/src/Makefile.in index ea84fa08429..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 | |||
| 33 | SHELL = /bin/sh | 26 | SHELL = /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@ |
| 52 | LIBOBJS = @LIBOBJS@ | 45 | LIBOBJS = @LIBOBJS@ |
| 53 | 46 | ||
| @@ -298,24 +291,26 @@ DEPFLAGS=@DEPFLAGS@ | |||
| 298 | ## test -d ${DEPDIR} || mkdir ${DEPDIR} (if AUTO_DEPEND); else ':'. | 291 | ## test -d ${DEPDIR} || mkdir ${DEPDIR} (if AUTO_DEPEND); else ':'. |
| 299 | MKDEPDIR=@MKDEPDIR@ | 292 | MKDEPDIR=@MKDEPDIR@ |
| 300 | 293 | ||
| 301 | # ========================== start of cpp stuff ======================= | 294 | ## DO NOT use -R. There is a special hack described in lastfile.c |
| 302 | /* From here on, comments must be done in C syntax. */ | 295 | ## which is used instead. Some initialized data areas are modified |
| 303 | 296 | ## at initial startup, then labeled as part of the text area when | |
| 304 | /* 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. |
| 305 | which is used instead. Some initialized data areas are modified | 298 | ## |
| 306 | at initial startup, then labeled as part of the text area when | 299 | ## -Demacs is needed to make some files produce the correct version |
| 307 | Emacs is dumped for the first time, and never changed again. */ | 300 | ## for use in Emacs. |
| 308 | 301 | ## | |
| 309 | /* -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 |
| 310 | for use in Emacs. | 303 | ## the information in `config.h'. |
| 311 | 304 | ## | |
| 312 | -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 |
| 313 | the information in ``config.h''. */ | 306 | ## since it may have -I options that should override those. |
| 314 | 307 | ## | |
| 315 | /* C_SWITCH_X_SITE must come before C_SWITCH_X_SYSTEM | 308 | ## FIXME? MYCPPFLAGS only referenced in etc/DEBUG. |
| 316 | since it may have -I options that should override those. */ | 309 | ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I${srcdir} \ |
| 317 | /* MYCPPFLAGS only referenced in etc/DEBUG. */ | 310 | ${C_SWITCH_MACHINE} ${C_SWITCH_SYSTEM} ${C_SWITCH_X_SITE} \ |
| 318 | 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} | 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} | ||
| 319 | ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS) | 314 | ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS) |
| 320 | 315 | ||
| 321 | .SUFFIXES: .m | 316 | .SUFFIXES: .m |
| @@ -327,8 +322,8 @@ ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS) | |||
| 327 | $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $< | 322 | $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $< |
| 328 | 323 | ||
| 329 | 324 | ||
| 330 | /* lastfile must follow all files whose initialized data areas should | 325 | ## lastfile must follow all files whose initialized data areas should |
| 331 | be dumped as pure by dump-emacs. */ | 326 | ## be dumped as pure by dump-emacs. |
| 332 | obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ | 327 | obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ |
| 333 | 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 \ |
| 334 | 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) \ |
| @@ -344,8 +339,8 @@ obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ | |||
| 344 | 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 \ |
| 345 | $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) | 340 | $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) |
| 346 | 341 | ||
| 347 | /* Object files used on some machine or other. | 342 | ## Object files used on some machine or other. |
| 348 | 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. |
| 349 | SOME_MACHINE_OBJECTS = dosfns.o msdos.o \ | 344 | SOME_MACHINE_OBJECTS = dosfns.o msdos.o \ |
| 350 | 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 \ |
| 351 | fontset.o dbusbind.o \ | 346 | fontset.o dbusbind.o \ |
| @@ -353,39 +348,38 @@ SOME_MACHINE_OBJECTS = dosfns.o msdos.o \ | |||
| 353 | w32.o w32console.o w32fns.o w32heap.o w32inevt.o \ | 348 | w32.o w32console.o w32fns.o w32heap.o w32inevt.o \ |
| 354 | 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) |
| 355 | 350 | ||
| 356 | /* gmalloc.o if !SYSTEM_MALLOC && !DOUG_LEA_MALLOC, else empty. */ | 351 | ## gmalloc.o if !SYSTEM_MALLOC && !DOUG_LEA_MALLOC, else empty. |
| 357 | GMALLOC_OBJ=@GMALLOC_OBJ@ | 352 | GMALLOC_OBJ=@GMALLOC_OBJ@ |
| 358 | 353 | ||
| 359 | /* vm-limit.o if !SYSTEM_MALLOC, else empty. */ | 354 | ## vm-limit.o if !SYSTEM_MALLOC, else empty. |
| 360 | VMLIMIT_OBJ=@VMLIMIT_OBJ@ | 355 | VMLIMIT_OBJ=@VMLIMIT_OBJ@ |
| 361 | 356 | ||
| 362 | /* ralloc.o if !SYSTEM_MALLOC && REL_ALLOC, else empty. */ | 357 | ## ralloc.o if !SYSTEM_MALLOC && REL_ALLOC, else empty. |
| 363 | RALLOC_OBJ=@RALLOC_OBJ@ | 358 | RALLOC_OBJ=@RALLOC_OBJ@ |
| 364 | 359 | ||
| 365 | /* Empty on Cygwin, lastfile.o elsewhere. */ | 360 | ## Empty on Cygwin, lastfile.o elsewhere. |
| 366 | PRE_ALLOC_OBJ=@PRE_ALLOC_OBJ@ | 361 | PRE_ALLOC_OBJ=@PRE_ALLOC_OBJ@ |
| 367 | /* lastfile.o on Cygwin, empty elsewhere. */ | 362 | ## lastfile.o on Cygwin, empty elsewhere. |
| 368 | POST_ALLOC_OBJ=@POST_ALLOC_OBJ@ | 363 | POST_ALLOC_OBJ=@POST_ALLOC_OBJ@ |
| 369 | 364 | ||
| 370 | /* 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. |
| 371 | otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \ | 366 | otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \ |
| 372 | $(POST_ALLOC_OBJ) $(VMLIMIT_OBJ) $(WIDGET_OBJ) $(LIBOBJS) | 367 | $(POST_ALLOC_OBJ) $(VMLIMIT_OBJ) $(WIDGET_OBJ) $(LIBOBJS) |
| 373 | 368 | ||
| 374 | /* 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 |
| 375 | 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 |
| 376 | it semi-mechanically from loadup.el this way. | 371 | ## it semi-mechanically from loadup.el this way. |
| 377 | 372 | ## | |
| 378 | 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 |
| 379 | 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 |
| 380 | expects them all to be either present or buildable. | 375 | ## expects them all to be either present or buildable. |
| 381 | 376 | ## | |
| 382 | Files which are loaded unconditionally (i.e., on all platforms) should | 377 | ## Files which are loaded unconditionally (i.e., on all platforms) should |
| 383 | 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 |
| 384 | on some platforms) should instead be in SOME_MACHINE_LISP. */ | 379 | ## on some platforms) should instead be in SOME_MACHINE_LISP. |
| 385 | 380 | ## | |
| 386 | /* 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 |
| 387 | the critical path (relevant in parallel compilations). */ | 382 | ## the critical path (relevant in parallel compilations). |
| 388 | |||
| 389 | lisp= \ | 383 | lisp= \ |
| 390 | ${lispsource}loaddefs.el \ | 384 | ${lispsource}loaddefs.el \ |
| 391 | ${lispsource}abbrev.elc \ | 385 | ${lispsource}abbrev.elc \ |
| @@ -475,11 +469,11 @@ lisp= \ | |||
| 475 | ${lispsource}window.elc \ | 469 | ${lispsource}window.elc \ |
| 476 | ${lispsource}version.el | 470 | ${lispsource}version.el |
| 477 | 471 | ||
| 478 | /* 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 |
| 479 | unconditionally (i.e. on all platforms). Files from $lisp that | 473 | ## unconditionally (i.e. on all platforms). Files from $lisp that |
| 480 | are only loaded on some platforms should instead be placed in | 474 | ## are only loaded on some platforms should instead be placed in |
| 481 | 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 |
| 482 | the make-docfile command-line getting too long for some systems. */ | 476 | ## the make-docfile command-line getting too long for some systems. |
| 483 | shortlisp= \ | 477 | shortlisp= \ |
| 484 | ../lisp/loaddefs.el \ | 478 | ../lisp/loaddefs.el \ |
| 485 | ../lisp/abbrev.elc \ | 479 | ../lisp/abbrev.elc \ |
| @@ -563,8 +557,8 @@ shortlisp= \ | |||
| 563 | ../lisp/window.elc \ | 557 | ../lisp/window.elc \ |
| 564 | ../lisp/version.el | 558 | ../lisp/version.el |
| 565 | 559 | ||
| 566 | /* 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 |
| 567 | conditionally (i.e., only on some platforms). */ | 561 | ## conditionally (i.e., only on some platforms). |
| 568 | SOME_MACHINE_LISP = ../lisp/mouse.elc \ | 562 | SOME_MACHINE_LISP = ../lisp/mouse.elc \ |
| 569 | ../lisp/select.elc ../lisp/scroll-bar.elc \ | 563 | ../lisp/select.elc ../lisp/scroll-bar.elc \ |
| 570 | ../lisp/ls-lisp.elc ../lisp/dos-fns.elc \ | 564 | ../lisp/ls-lisp.elc ../lisp/dos-fns.elc \ |
| @@ -583,11 +577,10 @@ SOME_MACHINE_LISP = ../lisp/mouse.elc \ | |||
| 583 | ../lisp/term/ns-win.elc ../lisp/term/w32-win.elc \ | 577 | ../lisp/term/ns-win.elc ../lisp/term/w32-win.elc \ |
| 584 | ../lisp/emacs-lisp/easymenu.elc | 578 | ../lisp/emacs-lisp/easymenu.elc |
| 585 | 579 | ||
| 586 | /* Construct full set of libraries to be linked. | 580 | ## Construct full set of libraries to be linked. |
| 587 | 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 |
| 588 | duplicated symbols. If the standard libraries were compiled | 582 | ## duplicated symbols. If the standard libraries were compiled |
| 589 | with GCC, we might need LIB_GCC again after them. */ | 583 | ## with GCC, we might need LIB_GCC again after them. |
| 590 | |||
| 591 | LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \ | 584 | LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \ |
| 592 | $(RSVG_LIBS) $(DBUS_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \ | 585 | $(RSVG_LIBS) $(DBUS_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \ |
| 593 | $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \ | 586 | $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \ |
| @@ -596,9 +589,9 @@ LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \ | |||
| 596 | 589 | ||
| 597 | all: emacs${EXEEXT} $(OTHER_FILES) | 590 | all: emacs${EXEEXT} $(OTHER_FILES) |
| 598 | 591 | ||
| 599 | /* 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? |
| 600 | /* The dumped Emacs is as functional and more efficient than | 593 | ## The dumped Emacs is as functional and more efficient than |
| 601 | bootstrap-emacs, so we replace the latter with the former. */ | 594 | ## bootstrap-emacs, so we replace the latter with the former. |
| 602 | emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} | 595 | emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} |
| 603 | if test "${CANNOT_DUMP}" = "yes"; then \ | 596 | if test "${CANNOT_DUMP}" = "yes"; then \ |
| 604 | ln -f temacs${EXEEXT} emacs${EXEEXT}; \ | 597 | ln -f temacs${EXEEXT} emacs${EXEEXT}; \ |
| @@ -610,19 +603,19 @@ emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} | |||
| 610 | ./emacs -q -batch -f list-load-path-shadows || true; \ | 603 | ./emacs -q -batch -f list-load-path-shadows || true; \ |
| 611 | fi | 604 | fi |
| 612 | 605 | ||
| 613 | /* 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 |
| 614 | on some systems. */ | 607 | ## on some systems. |
| 615 | /* ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may | 608 | ## ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may |
| 616 | 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 |
| 617 | ${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 |
| 618 | for the first time, this prevents any variation between configurations | 611 | ## for the first time, this prevents any variation between configurations |
| 619 | in the contents of the DOC file. | 612 | ## in the contents of the DOC file. |
| 620 | Likewise for ${SOME_MACHINE_LISP}. */ | 613 | ## Likewise for ${SOME_MACHINE_LISP}. |
| 621 | /* Most of this Makefile refers to Lisp files via ${lispsource}, so | 614 | ## Most of this Makefile refers to Lisp files via ${lispsource}, so |
| 622 | we also use ${lisp} rather than ${shortlisp} for the dependency since | 615 | ## we also use ${lisp} rather than ${shortlisp} for the dependency since |
| 623 | 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 |
| 624 | files. Apparently we pass ${shortlisp} rather than ${lisp} to make-docfile | 617 | ## files. Apparently we pass ${shortlisp} rather than ${lisp} to make-docfile |
| 625 | only in order to reduce the command line length. --Stef */ | 618 | ## only in order to reduce the command line length. --Stef |
| 626 | ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP} | 619 | ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP} |
| 627 | -rm -f ${etc}DOC | 620 | -rm -f ${etc}DOC |
| 628 | ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC | 621 | ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC |
| @@ -635,11 +628,11 @@ buildobj.h: Makefile | |||
| 635 | echo "#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h | 628 | echo "#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h |
| 636 | 629 | ||
| 637 | 630 | ||
| 638 | /* We cannot define variables for PRE_EDIT and POST_EDIT. | 631 | ## We cannot define variables for PRE_EDIT and POST_EDIT. |
| 639 | If !ORDINARY_LINK && !LINKER && GCC, they add a | 632 | ## If !ORDINARY_LINK && !LINKER && GCC, they add a |
| 640 | \`./prefix-args -Xlinker ... \` wrapper, otherwise they are empty. | 633 | ## `./prefix-args -Xlinker ... ` wrapper, otherwise they are empty. |
| 641 | One alternative to this approach would be to always call prefix-args, | 634 | ## One alternative to this approach would be to always call prefix-args, |
| 642 | and have it DTRT in all cases, by testing the above defines. */ | 635 | ## and have it DTRT in all cases, by testing the above defines. |
| 643 | temacs${EXEEXT}: $(START_FILES) stamp-oldxmenu ${obj} ${otherobj} prefix-args${EXEEXT} | 636 | temacs${EXEEXT}: $(START_FILES) stamp-oldxmenu ${obj} ${otherobj} prefix-args${EXEEXT} |
| 644 | $(LD) @PRE_EDIT_LDFLAGS@ ${TEMACS_LDFLAGS} @POST_EDIT_LDFLAGS@ \ | 637 | $(LD) @PRE_EDIT_LDFLAGS@ ${TEMACS_LDFLAGS} @POST_EDIT_LDFLAGS@ \ |
| 645 | ${TEMACS_LDFLAGS2} \ | 638 | ${TEMACS_LDFLAGS2} \ |
| @@ -649,27 +642,27 @@ prefix-args${EXEEXT}: prefix-args.o $(config_h) | |||
| 649 | $(CC) $(LDFLAGS) prefix-args.o -o prefix-args | 642 | $(CC) $(LDFLAGS) prefix-args.o -o prefix-args |
| 650 | 643 | ||
| 651 | 644 | ||
| 652 | /* The following oldxmenu-related rules are only (possibly) used if | 645 | ## The following oldxmenu-related rules are only (possibly) used if |
| 653 | 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 |
| 654 | (provided we take a little care that OLDXMENU is never empty). */ | 647 | ## (provided we take a little care that OLDXMENU is never empty). |
| 655 | really-lwlib: | 648 | really-lwlib: |
| 656 | cd ${lwlibdir}; ${MAKE} ${MFLAGS} \ | 649 | cd ${lwlibdir}; ${MAKE} ${MFLAGS} \ |
| 657 | CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' | 650 | CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' |
| 658 | @true /* make -t should not create really-lwlib. */ | 651 | @true # make -t should not create really-lwlib. |
| 659 | .PHONY: really-lwlib | 652 | .PHONY: really-lwlib |
| 660 | 653 | ||
| 661 | really-oldXMenu: | 654 | really-oldXMenu: |
| 662 | cd ${oldXMenudir}; ${MAKE} ${MFLAGS} \ | 655 | cd ${oldXMenudir}; ${MAKE} ${MFLAGS} \ |
| 663 | CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' | 656 | CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' |
| 664 | @true /* make -t should not create really-oldXMenu. */ | 657 | @true # make -t should not create really-oldXMenu. |
| 665 | .PHONY: really-oldXMenu | 658 | .PHONY: really-oldXMenu |
| 666 | 659 | ||
| 667 | /* 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 |
| 668 | things stand we need something to satisfy the temacs dependency. */ | 661 | ## things stand we need something to satisfy the temacs dependency. |
| 669 | stamp-oldxmenu: ${OLDXMENU_DEPS} | 662 | stamp-oldxmenu: ${OLDXMENU_DEPS} |
| 670 | touch stamp-oldxmenu | 663 | touch stamp-oldxmenu |
| 671 | 664 | ||
| 672 | /* Supply an ordering for parallel make. */ | 665 | ## Supply an ordering for parallel make. |
| 673 | ../src/$(OLDXMENU): ${OLDXMENU} | 666 | ../src/$(OLDXMENU): ${OLDXMENU} |
| 674 | 667 | ||
| 675 | $(OLDXMENU): $(OLDXMENU_TARGET) | 668 | $(OLDXMENU): $(OLDXMENU_TARGET) |
| @@ -690,7 +683,7 @@ ecrt0.o: ecrt0.c $(config_h) | |||
| 690 | doc.o: buildobj.h | 683 | doc.o: buildobj.h |
| 691 | 684 | ||
| 692 | 685 | ||
| 693 | /* 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. |
| 694 | @ns_frag@ | 687 | @ns_frag@ |
| 695 | 688 | ||
| 696 | 689 | ||
| @@ -704,18 +697,18 @@ clean: mostlyclean | |||
| 704 | -rm -rf ${DEPDIR} | 697 | -rm -rf ${DEPDIR} |
| 705 | test "X${ns_appdir}" = "X" || rm -rf ${ns_appdir} | 698 | test "X${ns_appdir}" = "X" || rm -rf ${ns_appdir} |
| 706 | 699 | ||
| 707 | /* bootstrap-clean is used to clean up just before a bootstrap. | 700 | ## bootstrap-clean is used to clean up just before a bootstrap. |
| 708 | It should remove all files generated during a compilation/bootstrap, | 701 | ## It should remove all files generated during a compilation/bootstrap, |
| 709 | but not things like config.status or TAGS. */ | 702 | ## but not things like config.status or TAGS. |
| 710 | bootstrap-clean: clean | 703 | bootstrap-clean: clean |
| 711 | 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-* |
| 712 | if test -f ./.gdbinit; then \ | 705 | if test -f ./.gdbinit; then \ |
| 713 | mv ./.gdbinit ./.gdbinit.save; \ | 706 | mv ./.gdbinit ./.gdbinit.save; \ |
| 714 | if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \ | 707 | if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \ |
| 715 | else mv ./.gdbinit.save ./.gdbinit; fi; \ | 708 | else mv ./.gdbinit.save ./.gdbinit; fi; \ |
| 716 | fi | 709 | fi |
| 717 | /**/# This is used in making a distribution. | 710 | ## This is used in making a distribution. |
| 718 | /**/# Do not use it on development directories! | 711 | ## Do not use it on development directories! |
| 719 | distclean: bootstrap-clean | 712 | distclean: bootstrap-clean |
| 720 | rm -f Makefile | 713 | rm -f Makefile |
| 721 | maintainer-clean: distclean | 714 | maintainer-clean: distclean |
| @@ -727,8 +720,8 @@ versionclean: | |||
| 727 | extraclean: distclean | 720 | extraclean: distclean |
| 728 | -rm -f *~ \#* m/?*~ s/?*~ | 721 | -rm -f *~ \#* m/?*~ s/?*~ |
| 729 | 722 | ||
| 730 | /* Arrange to make a tags table TAGS-LISP for ../lisp, | 723 | ## Arrange to make a tags table TAGS-LISP for ../lisp, |
| 731 | 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. |
| 732 | 725 | ||
| 733 | ctagsfiles1 = [xyzXYZ]*.[hcm] | 726 | ctagsfiles1 = [xyzXYZ]*.[hcm] |
| 734 | ctagsfiles2 = [a-wA-W]*.[hcm] | 727 | ctagsfiles2 = [a-wA-W]*.[hcm] |
| @@ -748,49 +741,49 @@ tags: TAGS TAGS-LISP $(lwlibdir)TAGS | |||
| 748 | .PHONY: tags | 741 | .PHONY: tags |
| 749 | 742 | ||
| 750 | 743 | ||
| 751 | /* Bootstrapping. */ | 744 | ### Bootstrapping. |
| 752 | /* Bootstrapping right is difficult because of the circular dependencies. | 745 | |
| 753 | Furthermore, we have to deal with the fact that many compilation targets | 746 | ## Bootstrapping right is difficult because of the circular dependencies. |
| 754 | 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 |
| 755 | 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 |
| 756 | we build a new Emacs executable. | 749 | ## Emacs executable, so we would like to avoid rebuilding them whenever |
| 757 | To solve the circularity, we use 2 different Emacs executables, | 750 | ## we build a new Emacs executable. |
| 758 | "emacs" is the main target and "bootstrap-emacs" is the one used | 751 | ## To solve the circularity, we use 2 different Emacs executables, |
| 759 | to build the *.elc and loaddefs.el files. | 752 | ## "emacs" is the main target and "bootstrap-emacs" is the one used |
| 760 | To solve the freshness issue, we used to use a third file "witness-emacs" | 753 | ## to build the *.elc and loaddefs.el files. |
| 761 | 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" |
| 762 | executable, and then have dependencies on witness-emacs rather than | 755 | ## which was used to witness the fact that there is a bootstrap-emacs |
| 763 | bootstrap-emacs, but that lead to problems in parallel builds (because | 756 | ## executable, and then have dependencies on witness-emacs rather than |
| 764 | witness-emacs needed to be free from dependencies (to avoid rebuilding | 757 | ## bootstrap-emacs, but that lead to problems in parallel builds (because |
| 765 | it), so it was compiled in parallel, leading typically to having 2 | 758 | ## witness-emacs needed to be free from dependencies (to avoid rebuilding |
| 766 | processes dumping bootstrap-emacs at the same time). | 759 | ## it), so it was compiled in parallel, leading typically to having 2 |
| 767 | So instead, we replace the witness-emacs dependencies by conditional | 760 | ## processes dumping bootstrap-emacs at the same time). |
| 768 | bootstrap-dependencies (via ${BOOTSTRAPEMACS}). Of course, since we do | 761 | ## So instead, we replace the witness-emacs dependencies by conditional |
| 769 | 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 |
| 770 | 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 |
| 771 | (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). | ||
| 772 | 766 | ||
| 773 | .SUFFIXES: .elc .el | 767 | .SUFFIXES: .elc .el |
| 774 | 768 | ||
| 775 | /* These suffix rules do not allow additional dependencies, sadly, so | 769 | ## These suffix rules do not allow additional dependencies, sadly, so |
| 776 | instead of adding a $(BOOTSTRAPEMACS) dependency here, we add it | 770 | ## instead of adding a $(BOOTSTRAPEMACS) dependency here, we add it |
| 777 | separately below. | 771 | ## separately below. |
| 778 | With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)" */ | 772 | ## With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)" |
| 779 | .el.elc: | 773 | .el.elc: |
| 780 | @cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \ | 774 | @cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \ |
| 781 | THEFILE=$< EMACS=${bootstrap_exe} | 775 | THEFILE=$< EMACS=${bootstrap_exe} |
| 782 | 776 | ||
| 783 | /* 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. |
| 784 | ${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS) | 778 | ${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS) |
| 785 | 779 | ||
| 786 | /* 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. |
| 787 | 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. |
| 788 | ${lispsource}loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS) | 782 | ${lispsource}loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS) |
| 789 | cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=${bootstrap_exe} | 783 | cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=${bootstrap_exe} |
| 790 | 784 | ||
| 791 | /* Dump an Emacs executable named bootstrap-emacs containing the | 785 | ## Dump an Emacs executable named bootstrap-emacs containing the |
| 792 | files from loadup.el in source form. */ | 786 | ## files from loadup.el in source form. |
| 793 | |||
| 794 | bootstrap-emacs${EXEEXT}: temacs${EXEEXT} | 787 | bootstrap-emacs${EXEEXT}: temacs${EXEEXT} |
| 795 | cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs | 788 | cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs |
| 796 | if test "${CANNOT_DUMP}" = "yes"; then \ | 789 | if test "${CANNOT_DUMP}" = "yes"; then \ |
| @@ -802,5 +795,8 @@ bootstrap-emacs${EXEEXT}: temacs${EXEEXT} | |||
| 802 | @: Compile some files earlier to speed up further compilation. | 795 | @: Compile some files earlier to speed up further compilation. |
| 803 | cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=${bootstrap_exe} | 796 | cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=${bootstrap_exe} |
| 804 | 797 | ||
| 805 | /* Insert either autodeps.mk (if AUTO_DEPEND), else deps.mk. */ | 798 | ## Insert either autodeps.mk (if AUTO_DEPEND), else deps.mk. |
| 806 | @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 @@ | |||
| 1 | Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 | 1 | Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, |
| 2 | Free Software Foundation, Inc. | 2 | 2010 Free Software Foundation, Inc. |
| 3 | See the end of the file for license conditions. | 3 | See 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. | |||
| 10 | See the files ../README and then ../INSTALL for installation instructions. | 10 | See the files ../README and then ../INSTALL for installation instructions. |
| 11 | 11 | ||
| 12 | Under GNU and Unix systems, the file `Makefile.in' is used as a | 12 | Under GNU and Unix systems, the file `Makefile.in' is used as a |
| 13 | template by the script `../configure' to produce `Makefile.c'. The | 13 | template by the script `../configure' to produce `Makefile'. This |
| 14 | same script then uses `cpp' to produce the machine-dependent | 14 | is the file which actually controls the compilation of Emacs. |
| 15 | `Makefile' from `Makefile.c'; `Makefile' is the file which actually | 15 | All of this should work transparently to the user; you should only |
| 16 | controls the compilation of Emacs. Most of this should work | 16 | need to run `../configure', and then type `make'. |
| 17 | transparently to the user; you should only need to run `../configure', | ||
| 18 | and then type `make'. | ||
| 19 | 17 | ||
| 20 | 18 | ||
| 21 | This file is part of GNU Emacs. | 19 | This 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 | ||
| 3 | This is inserted in src/Makefile if AUTO_DEPEND=yes. */ | 3 | ## This is inserted in src/Makefile if AUTO_DEPEND=yes. |
| 4 | 4 | ||
| 5 | ALLOBJS=$(START_FILES) ${obj} ${otherobj} prefix-args.o | 5 | ALLOBJS=$(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 | ||
| 3 | Copyright (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 | ||
| 7 | This file is part of GNU Emacs. | 7 | ## This file is part of GNU Emacs. |
| 8 | 8 | ||
| 9 | GNU Emacs is free software: you can redistribute it and/or modify | 9 | ## GNU Emacs is free software: you can redistribute it and/or modify |
| 10 | it 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 |
| 11 | the 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 | ||
| 14 | GNU Emacs is distributed in the hope that it will be useful, | 22 | ## Commentary: |
| 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 23 | ## |
| 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 24 | ## This file is inserted in src/Makefile if AUTO_DEPEND=no. |
| 17 | GNU General Public License for more details. | 25 | ## It defines static dependencies between the various source files. |
| 18 | 26 | ||
| 19 | You should have received a copy of the GNU General Public License | 27 | ## FIXME some of these dependencies are platform-specific. |
| 20 | along 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 | ||
| 22 | Commentary: | 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 | ||
| 24 | This file is inserted in src/Makefile if AUTO_DEPEND=no. | 38 | ### Code: |
| 25 | It defines static dependencies between the various source files. | ||
| 26 | |||
| 27 | FIXME some of these dependencies are platform-specific. | ||
| 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... | ||
| 33 | |||
| 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. | ||
| 37 | |||
| 38 | Code: */ | ||
| 39 | 39 | ||
| 40 | atimer.o: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \ | 40 | atimer.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. |
| 249 | alloc.o: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h \ | 249 | alloc.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. |
| 271 | composite.o: composite.c buffer.h character.h coding.h font.h ccl.h \ | 271 | composite.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) |
| 273 | intervals.o: intervals.c buffer.h $(INTERVALS_H) keyboard.h puresize.h \ | 273 | intervals.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 |
| @@ -1,29 +1,29 @@ | |||
| 1 | /* autodeps.mk --- src/Makefile fragment for GNU Emacs | 1 | ### autodeps.mk --- src/Makefile fragment for GNU Emacs |
| 2 | 2 | ||
| 3 | Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. | 3 | ## Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | This file is part of GNU Emacs. | 5 | ## This file is part of GNU Emacs. |
| 6 | 6 | ||
| 7 | GNU Emacs is free software: you can redistribute it and/or modify | 7 | ## GNU Emacs is free software: you can redistribute it and/or modify |
| 8 | it 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 |
| 9 | the 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 | ||
| 12 | GNU Emacs is distributed in the hope that it will be useful, | 20 | ### Commentary: |
| 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 | 21 | ||
| 17 | You should have received a copy of the GNU General Public License | 22 | ## This is inserted in src/Makefile if HAVE_NS. |
| 18 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | ||
| 19 | 23 | ||
| 20 | Commentary: | 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 | |
| 22 | This is inserted in src/Makefile if HAVE_NS. | 26 | ## do not like empty targets, even if they are never used. |
| 23 | |||
| 24 | The only reason this is in a separate file is because $ns_appdir, | ||
| 25 | which appears as a target, is empty on non-NS builds. Some makes | ||
| 26 | do 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 | ||
| 37 | ns-app: ${ns_appdir} ${ns_appbindir}Emacs | 37 | ns-app: ${ns_appdir} ${ns_appbindir}Emacs |
| 38 | 38 | ||
| 39 | /* ns.mk ends here */ | 39 | ### ns.mk ends here |