]> git.eshelyaron.com Git - emacs.git/commitdiff
Remove the SOME_MACHINE_LISP distinction in src/Makefile.in.
authorGlenn Morris <rgm@gnu.org>
Thu, 19 May 2011 06:04:16 +0000 (23:04 -0700)
committerGlenn Morris <rgm@gnu.org>
Thu, 19 May 2011 06:04:16 +0000 (23:04 -0700)
See discussion in http://debbugs.gnu.org/8302

* configure.in (NS_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
(WINDOW_SUPPORT): Remove output variables that are no longer used.

* lib-src/makefile.w32-in (echolisp): Remove rule that is no longer needed.
(clean): No more echolisp.tmp.

* .bzrignore: Remove lib-src/echolisp.tmp.

* lisp/emacs-lisp/autoload.el (batch-update-autoloads):
Set autoload-excludes by parsing lisp/loadup.el rather than Makefiles.

* lisp/loadup.el: Update commentary.

* msdos/sed1x.inp (TOOLTIP_SUPPORT, WINDOW_SUPPORT):
* msdos/sed1v2.inp (MSDOS_SUPPORT, NS_SUPPORT, MOUSE_SUPPORT)
(TOOLTIP_SUPPORT, WINDOW_SUPPORT): No need to edit these any more.

* src/Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
(REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
(BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
(lisp): Set the order to that of loadup.el.
(shortlisp): Make it a copy of $lisp.
(SOME_MACHINE_LISP): Remove.
($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
Use just $shortlisp, not $SOME_MACHINE_LISP too.

12 files changed:
ChangeLog
configure.in
lib-src/ChangeLog
lib-src/makefile.w32-in
lisp/ChangeLog
lisp/emacs-lisp/autoload.el
lisp/loadup.el
msdos/ChangeLog
msdos/sed1v2.inp
msdos/sed1x.inp
src/ChangeLog
src/Makefile.in

index fb223292cfc955e0d335717b4aae3753710c2942..11cb707e1a30342e0d208790a0bf6919e2f536d6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-05-19  Glenn Morris  <rgm@gnu.org>
+
+       * configure.in (NS_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
+       (WINDOW_SUPPORT): Remove output variables that are no longer used.
+
 2011-05-17  Paul Eggert  <eggert@cs.ucla.edu>
 
        * lib/gnulib.mk:
index 5d2992539f03dd81ad336759c81601ef5cd94bf1..2255b9110d41ee3fba9e576aa897bca7b0b5214c 100644 (file)
@@ -1503,7 +1503,6 @@ AC_SUBST(TEMACS_LDFLAGS2)
 ns_frag=/dev/null
 NS_OBJ=
 NS_OBJC_OBJ=
-NS_SUPPORT=
 if test "${HAVE_NS}" = yes; then
   window_system=nextstep
   with_xft=no
@@ -1516,13 +1515,11 @@ if test "${HAVE_NS}" = yes; then
   ns_frag=$srcdir/src/ns.mk
   NS_OBJ="fontset.o fringe.o image.o"
   NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o"
-  NS_SUPPORT="\${lispsource}/emacs-lisp/easymenu.elc \${lispsource}/term/ns-win.elc"
 fi
 CFLAGS="$tmp_CFLAGS"
 CPPFLAGS="$tmp_CPPFLAGS"
 AC_SUBST(NS_OBJ)
 AC_SUBST(NS_OBJC_OBJ)
-AC_SUBST(NS_SUPPORT)
 AC_SUBST(LIB_STANDARD)
 AC_SUBST_FILE(ns_frag)
 
@@ -2476,7 +2473,6 @@ fi
 ### Use -lgpm if available, unless `--with-gpm=no'.
 HAVE_GPM=no
 LIBGPM=
-MOUSE_SUPPORT=
 if test "${with_gpm}" != "no"; then
   AC_CHECK_HEADER(gpm.h,
     [AC_CHECK_LIB(gpm, Gpm_Open, HAVE_GPM=yes)])
@@ -2484,8 +2480,6 @@ if test "${with_gpm}" != "no"; then
   if test "${HAVE_GPM}" = "yes"; then
     AC_DEFINE(HAVE_GPM, 1, [Define to 1 if you have the gpm library (-lgpm).])
     LIBGPM=-lgpm
-    ## May be reset below.
-    MOUSE_SUPPORT="\$(GPM_MOUSE_SUPPORT)"
   fi
 fi
 AC_SUBST(LIBGPM)
@@ -3421,23 +3415,11 @@ fi                              dnl if $GCC
 AC_SUBST(LIB_GCC)
 
 
-TOOLTIP_SUPPORT=
-WINDOW_SUPPORT=
 ## If we're using X11/GNUstep, define some consequences.
 if test "$HAVE_X_WINDOWS" = "yes" || test "$HAVE_NS" = "yes"; then
   AC_DEFINE(HAVE_WINDOW_SYSTEM, 1, [Define if you have a window system.])
   AC_DEFINE(HAVE_MOUSE, 1, [Define if you have mouse support.])
-  MOUSE_SUPPORT="\$(REAL_MOUSE_SUPPORT)"
-  TOOLTIP_SUPPORT="\${lispsource}/mouse.elc"
-
-  WINDOW_SUPPORT="\$(BASE_WINDOW_SUPPORT)"
-  test "$HAVE_X_WINDOWS" = "yes" && \
-    WINDOW_SUPPORT="$WINDOW_SUPPORT \$(X_WINDOW_SUPPORT)"
-
 fi
-AC_SUBST(MOUSE_SUPPORT)
-AC_SUBST(TOOLTIP_SUPPORT)
-AC_SUBST(WINDOW_SUPPORT)
 
 
 AH_TOP([/* GNU Emacs site configuration template file.
index 27dc3a14d48324f9efd231ce10fb9477212fc690..33778c1f0aee7a42169cb4fd6f931c5bab358f42 100644 (file)
@@ -1,3 +1,8 @@
+2011-05-19  Glenn Morris  <rgm@gnu.org>
+
+       * makefile.w32-in (echolisp): Remove rule that is no longer needed.
+       (clean): No more echolisp.tmp.
+
 2011-05-18  Glenn Morris  <rgm@gnu.org>
 
        * fakemail.c: Remove file.
index 0e203d18bd2dc06aca2a71a86f23032beb774ee1..07f6170afe4349f67ccec465fb0ad50c9239b891 100644 (file)
@@ -269,11 +269,6 @@ lisp2 = \
        $(lispsource)window.elc \
        $(lispsource)version.el
 
-# Used by batch-update-autoloads.
-echolisp:
-       @echo $(lisp1)
-       @echo $(lisp2)
-
 # This is needed the first time we build the tree, since temacs.exe
 # does not exist yet, and the DOC rule needs it to rebuild DOC whenever
 # Emacs is rebuilt.
@@ -330,7 +325,6 @@ clean:
                - $(DEL) ctags.c
                - $(DEL_TREE) $(OBJDIR)
                - $(DEL) stamp_BLD
-               - $(DEL) echolisp.tmp
 
 distclean: cleanall
        - $(DEL) TAGS
index 15bd4b190b221bfd0b085f9fd8bc0343179d274d..0548bf9ea288a2a362b27a6456889cf2bc862e5e 100644 (file)
@@ -1,3 +1,8 @@
+2011-05-19  Glenn Morris  <rgm@gnu.org>
+
+       * emacs-lisp/autoload.el (batch-update-autoloads):
+       Set autoload-excludes by parsing loadup.el rather than Makefiles.
+
 2011-05-18  Michael Albinus  <michael.albinus@gmx.de>
 
        * net/tramp.el (tramp-process-actions): Set "first-password-request"
index f8f8d9b00f2bdf6fc413375ed43272fde069462f..6d5067151d32e1425d6178e55700fcad1c945106 100644 (file)
@@ -769,52 +769,21 @@ Calls `update-directory-autoloads' on the command line arguments.
 Definitions are written to `generated-autoload-file' (which
 should be non-nil)."
   ;; For use during the Emacs build process only.
+  ;; Exclude those files that are preloaded on ALL platforms.
+  ;; These are the ones in loadup.el where "(load" is at the start
+  ;; of the line (crude, but it works).
   (unless autoload-excludes
-    (let* ((ldir (file-name-directory generated-autoload-file))
-          (default-directory
-            (file-name-as-directory
-             (expand-file-name (if (eq system-type 'windows-nt)
-                                   "../lib-src"
-                                 "../src") ldir)))
-          (mfile "Makefile")
-          (tmpfile "echolisp.tmp")
-          lim)
-      ;; Windows uses the 'echolisp' approach because:
-      ;; i) It does not have $lisp as a single simple definition, so
-      ;; it would be harder to parse the Makefile.
-      ;; ii) It can, since it already has $lisp broken up into pieces
-      ;; that the command-line can handle.
-      ;; Non-Windows builds do not use the 'echolisp' approach because
-      ;; no-one knows (?) the maximum safe command-line length on all
-      ;; supported systems.  $lisp is much longer there since it uses
-      ;; absolute paths, and it would seem a shame to split it just for this.
-      (when (file-readable-p mfile)
-       (if (eq system-type 'windows-nt)
-           (when (ignore-errors
-                  (if (file-exists-p tmpfile) (delete-file tmpfile))
-                  ;; FIXME call-process is better, if it works.
-                  (shell-command (format "%s echolisp > %s"
-                                         autoload-make-program tmpfile))
-                  (file-readable-p tmpfile))
-             (with-temp-buffer
-               (insert-file-contents tmpfile)
-               ;; FIXME could be a single while loop.
-               (while (not (eobp))
-                 (setq lim (line-end-position))
-                 (while (re-search-forward "\\([^ ]+\\.el\\)c?\\>" lim t)
-                   (push (expand-file-name (match-string 1))
-                         autoload-excludes))
-                 (forward-line 1))))
-         (with-temp-buffer
-           (insert-file-contents mfile)
-           (when (re-search-forward "^shortlisp= " nil t)
-             (while (and (not lim)
-                         (re-search-forward "\\.\\./lisp/\\([^ ]+\\.el\\)c?\\>"
-                                            nil t))
-               (push (expand-file-name (match-string 1) ldir)
-                     autoload-excludes)
-               (skip-chars-forward " \t")
-               (if (eolp) (setq lim t)))))))))
+    (let ((default-directory (file-name-directory generated-autoload-file))
+         file)
+      (when (file-readable-p "loadup.el")
+       (with-temp-buffer
+         (insert-file-contents "loadup.el")
+         (while (re-search-forward "^(load \"\\([^\"]+\\)\"" nil t)
+           (setq file (match-string 1))
+           (or (string-match "\\.el\\'" file)
+               (setq file (format "%s.el" file)))
+           (or (string-match "\\`site-" file)
+               (push (expand-file-name file) autoload-excludes)))))))
   (let ((args command-line-args-left))
     (setq command-line-args-left nil)
     (apply 'update-directory-autoloads args)))
index d348456ae32b889d754d78f013ca304e38dd4eee..d0dc92a1815d6abfbed37620b583e47408a76b29 100644 (file)
 ;; If you add/remove Lisp files to be loaded here, consider the
 ;; following issues:
 
-;; i) Any file loaded on all platforms should appear in $lisp
-;; and $shortlisp in src/Makefile.in.  Use the .el or .elc version as
+;; i) Any file loaded on any platform should appear in $lisp and
+;; $shortlisp in src/Makefile.in.  Use the .el or .elc version as
 ;; appropriate.
 
-;; ii) Any file that is only loaded on some platforms should appear
-;; in the version of $lisp in the generated Makefile on that platform.
-;; At the present time, this is achieved by use of #ifdefs.
-;; It should also appear in $SOME_MACHINE_LISP on all platforms.
+;; This ensures both that the Lisp files are compiled (if necessary)
+;; before the emacs executable is dumped, and that they are passed to
+;; make-docfile.  (Any that are not processed for DOC will not have
+;; doc strings in the dumped Emacs.)  Because of this:
 
-;; The above steps ensure both that the Lisp files are compiled (if
-;; necessary) before the emacs executable is dumped, and that they are
-;; passed to make-docfile.  (Any that are not processed for DOC will
-;; not have doc strings in the dumped Emacs.)  Because of this:
-
-;; iii) If the file is loaded uncompiled, it should (where possible)
+;; ii) If the file is loaded uncompiled, it should (where possible)
 ;; obey the doc-string conventions expected by make-docfile.
 
 ;;; Code:
index 12fd7675d67beaf9b2f4e7e0ad1a7e93bca711d6..6c07c76d1bfa3b06590c782f4dd98fdeac6a1425 100644 (file)
@@ -1,3 +1,9 @@
+2011-05-19  Glenn Morris  <rgm@gnu.org>
+
+       * sed1x.inp (TOOLTIP_SUPPORT, WINDOW_SUPPORT):
+       * sed1v2.inp (MSDOS_SUPPORT, NS_SUPPORT, MOUSE_SUPPORT)
+       (TOOLTIP_SUPPORT, WINDOW_SUPPORT): No need to edit these any more.
+
 2011-05-07  Eli Zaretskii  <eliz@gnu.org>
 
        * inttypes.h: Include stdint.h.
index 44ee53a5c34da9dd28f189ab24b43814f96258d7..34c4588f96a88d3de94f195447c8b7ee0384f932 100644 (file)
@@ -94,13 +94,11 @@ s/\.h\.in/.h-in/
 /^WIDGET_OBJ *=/s/@WIDGET_OBJ@//
 /^CYGWIN_OBJ *=/s/@CYGWIN_OBJ@//
 /^MSDOS_OBJ *=/s/= */= dosfns.o msdos.o w16select.o/
-/^MSDOS_SUPPORT *=/s/= */= $(MSDOS_SUPPORT_REAL)/
 /^ns_appdir *=/s/@ns_appdir@//
 /^ns_appbindir *=/s/@ns_appbindir@//
 /^ns_appsrc *=/s/@ns_appsrc@//
 /^NS_OBJ *=/s/@NS_OBJ@//
 /^NS_OBJC_OBJ *=/s/@NS_OBJC_OBJ@//
-/^NS_SUPPORT *=/s/@NS_SUPPORT@//
 /^GNU_OBJC_CFLAGS*=/s/@GNU_OBJC_CFLAGS@//
 /^LIBRESOLV *=/s/@LIBRESOLV@//
 /^LIBSELINUX_LIBS *=/s/@LIBSELINUX_LIBS@//
@@ -111,9 +109,6 @@ s/\.h\.in/.h-in/
 /^OTHER_FILES *=/s/@OTHER_FILES@//
 /^XMENU_OBJ *=/s/@XMENU_OBJ@/xmenu.o/
 /^FONT_OBJ *=/s/@FONT_OBJ@//
-/^MOUSE_SUPPORT *=/s/@MOUSE_SUPPORT@/$(REAL_MOUSE_SUPPORT)/
-/^TOOLTIP_SUPPORT *=/s/@TOOLTIP_SUPPORT@//
-/^WINDOW_SUPPORT *=/s/@WINDOW_SUPPORT@//
 /^LIBGPM *=/s/@LIBGPM@//
 /^EXEEXT *=/s/@EXEEXT@/.exe/
 /^OLDXMENU *=/s/@OLDXMENU@/nothing/
index dff76fda27b8ddeb3f6f809755cc7fdea674ab10..d0a37807d9ec5bae526d0ddebce977a2dec533b4 100644 (file)
@@ -26,7 +26,5 @@ s/DOC/DOC-X/g
 /^LIBS_SYSTEM *=/s!= *!= -lxext -lsys!
 /^MSDOS_X_OBJ *=/s!= *!= w16select.o termcap.o!
 /^FONT_OBJ *=/s!= *!= xfont.o!
-/^TOOLTIP_SUPPORT *=/s!= *!= ${lispsource}tooltip.elc!
-/^WINDOW_SUPPORT *=/s!= *!= $(BASE_WINDOW_SUPPORT) $(X_WINDOW_SUPPORT)!
 /^temacs *:/s!OLDXMENU!LIBXMENU!
 
index 372bf383fb87598eb2291cf24a0dd94f9c874156..1b54ae05c5970976840ce314ea1ddfd5087a0e6a 100644 (file)
@@ -1,3 +1,14 @@
+2011-05-19  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
+       (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
+       (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
+       (lisp): Set the order to that of loadup.el.
+       (shortlisp): Make it a copy of $lisp.
+       (SOME_MACHINE_LISP): Remove.
+       ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
+       Use just $shortlisp, not $SOME_MACHINE_LISP too.
+
 2011-05-18  Kenichi Handa  <handa@m17n.org>
 
        * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
index 8b596430cf5ed3cba59a16788324c3248288a14c..6476880a0fd7935dc8bafc49219a4c178fb37d33 100644 (file)
@@ -237,18 +237,12 @@ CYGWIN_OBJ=@CYGWIN_OBJ@
 MSDOS_OBJ =
 ## w16select.o termcap.o if MSDOS && HAVE_X_WINDOWS.
 MSDOS_X_OBJ =
-MSDOS_SUPPORT_REAL = $(lispsource)/ls-lisp.elc $(lispsource)/disp-table.elc \
- $(lispsource)/dos-fns.elc $(lispsource)/dos-w32.elc $(lispsource)/dos-vars.elc \
- $(lispsource)/term/internal.elc $(lispsource)/term/pc-win.elc
-## $MSDOS_SUPPORT_REAL if MSDOS.
-MSDOS_SUPPORT =
 
 ns_appdir=@ns_appdir@
 ns_appbindir=@ns_appbindir@
 ns_appsrc=@ns_appsrc@
 NS_OBJ=@NS_OBJ@
 NS_OBJC_OBJ=@NS_OBJC_OBJ@
-NS_SUPPORT=@NS_SUPPORT@
 ## Only set if NS_IMPL_GNUSTEP.
 GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@
 
@@ -258,28 +252,7 @@ GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@
 ## else xfont.o
 FONT_OBJ=@FONT_OBJ@
 
-## Used if HAVE_MOUSE.
-REAL_MOUSE_SUPPORT=$(lispsource)/mouse.elc $(lispsource)/select.elc \
-  $(lispsource)/scroll-bar.elc
-## Used if HAVE_GPM && !HAVE_MOUSE
-GPM_MOUSE_SUPPORT=$(lispsource)/mouse.elc
 LIBGPM = @LIBGPM@
-## Either of the two preceding options, or empty.
-MOUSE_SUPPORT=@MOUSE_SUPPORT@
-
-## $(lispsource)/tooltip.elc if HAVE_WINDOW_SYSTEM, else empty.
-TOOLTIP_SUPPORT=@TOOLTIP_SUPPORT@
-
-BASE_WINDOW_SUPPORT=$(lispsource)/fringe.elc $(lispsource)/image.elc \
-  $(lispsource)/international/fontset.elc $(lispsource)/dnd.elc \
-  $(lispsource)/tool-bar.elc $(lispsource)/mwheel.elc
-
-X_WINDOW_SUPPORT=$(lispsource)/x-dnd.elc $(lispsource)/term/common-win.elc \
-  $(lispsource)/term/x-win.elc $(lispsource)/dynamic-setting.elc
-
-## If HAVE_X_WINDOWS, both the above
-## else if HAVE_WINDOW_SYSTEM (ie, HAVE_NS) just the former; else empty.
-WINDOW_SUPPORT=@WINDOW_SUPPORT@
 
 ## -lresolv, or empty.
 LIBRESOLV = @LIBRESOLV@
@@ -385,55 +358,60 @@ POST_ALLOC_OBJ=@POST_ALLOC_OBJ@
 otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \
   $(POST_ALLOC_OBJ) $(VMLIMIT_OBJ) $(WIDGET_OBJ) $(LIBOBJS)
 
-## This is the platform-specific list of Lisp files loaded into the
-## dumped Emacs.  It is arranged like this because it is easier to generate
-## it semi-mechanically from loadup.el this way.
+## This is the list of all Lisp files that might be loaded into the
+## dumped Emacs.  Some of them are not loaded on all platforms, but
+## the DOC file on every platform uses them (because the DOC file is
+## supposed to be platform-independent).
+## It is arranged like this because it is easier to generate it
+## semi-mechanically from loadup.el this way.
+## Eg something like:
+##   sed -e 's/"[ )].*//' -n -e '/(load "/ s/.*load "//p' loadup.el | \
+##   grep -vE 'site-|ldefs-boot'
+## minus any duplicates.
+## Note that you cannot just add a ".elc" extension to every file,
+## since some of them are no-byte-compile (eg some language/ ones).
+##
+## Confusingly, term/internal is not in loadup, but is unconditionally
+## loaded by pc-win, which is.
 ##
 ## Note that this list should not include lisp files which might not
 ## be present, like site-load.el and site-init.el; this makefile
 ## expects them all to be either present or buildable.
 ##
-## Files which are loaded unconditionally (i.e., on all platforms) should
-## also be in shortlisp.  Files which are loaded conditionally (i.e., only
-## on some platforms) should instead be in SOME_MACHINE_LISP.
-##
 ## Place loaddefs.el first, so it gets generated first, since it is on
 ## the critical path (relevant in parallel compilations).
 lisp= \
        $(lispsource)/loaddefs.el \
-       $(lispsource)/abbrev.elc \
-       $(lispsource)/buff-menu.elc \
-       $(lispsource)/button.elc \
+       $(lispsource)/loadup.el \
        $(lispsource)/emacs-lisp/byte-run.elc \
-       $(lispsource)/composite.elc \
-       $(lispsource)/cus-face.elc \
-       $(lispsource)/cus-start.elc \
-       $(lispsource)/custom.elc \
        $(lispsource)/emacs-lisp/backquote.elc \
-       $(lispsource)/emacs-lisp/lisp-mode.elc \
-       $(lispsource)/emacs-lisp/lisp.elc \
-       $(lispsource)/env.elc \
-       $(lispsource)/faces.elc \
-       $(lispsource)/files.elc \
-       $(lispsource)/format.elc \
-       $(lispsource)/facemenu.elc \
-       $(MOUSE_SUPPORT) \
-       $(lispsource)/emacs-lisp/float-sup.elc \
-       $(lispsource)/frame.elc \
-       $(lispsource)/help.elc \
-       $(lispsource)/indent.elc \
-       $(lispsource)/isearch.elc \
-       $(lispsource)/rfn-eshadow.elc \
-       $(lispsource)/loadup.el \
-       $(lispsource)/bindings.elc \
+       $(lispsource)/subr.elc \
+       $(lispsource)/version.el \
+       $(lispsource)/widget.elc \
+       $(lispsource)/custom.elc \
        $(lispsource)/emacs-lisp/map-ynp.elc \
-       $(lispsource)/menu-bar.elc \
+       $(lispsource)/cus-start.elc \
        $(lispsource)/international/mule.elc \
        $(lispsource)/international/mule-conf.elc \
+       $(lispsource)/env.elc \
+       $(lispsource)/format.elc \
+       $(lispsource)/bindings.elc \
+       $(lispsource)/files.elc \
+       $(lispsource)/cus-face.elc \
+       $(lispsource)/faces.elc \
+       $(lispsource)/button.elc \
+       $(lispsource)/startup.elc \
+       $(lispsource)/minibuffer.elc \
+       $(lispsource)/abbrev.elc \
+       $(lispsource)/simple.elc \
+       $(lispsource)/help.elc \
+       $(lispsource)/jka-cmpr-hook.elc \
+       $(lispsource)/epa-hook.elc \
        $(lispsource)/international/mule-cmds.elc \
+       $(lispsource)/case-table.elc \
        $(lispsource)/international/characters.elc \
+       $(lispsource)/composite.elc \
        $(lispsource)/international/charprop.el \
-       $(lispsource)/case-table.elc \
        $(lispsource)/language/chinese.elc \
        $(lispsource)/language/cyrillic.elc \
        $(lispsource)/language/indian.elc \
@@ -449,7 +427,6 @@ lisp= \
        $(lispsource)/language/japanese.el \
        $(lispsource)/language/korean.el \
        $(lispsource)/language/lao.el \
-       $(lispsource)/language/cham.el \
        $(lispsource)/language/tai-viet.el \
        $(lispsource)/language/thai.el \
        $(lispsource)/language/tibetan.elc \
@@ -459,72 +436,95 @@ lisp= \
        $(lispsource)/language/georgian.el \
        $(lispsource)/language/khmer.el \
        $(lispsource)/language/burmese.el \
-       $(lispsource)/paths.el \
-       $(lispsource)/register.elc \
-       $(lispsource)/replace.elc \
-       $(lispsource)/simple.elc \
-       $(lispsource)/minibuffer.elc \
-       $(lispsource)/startup.elc \
-       $(lispsource)/subr.elc \
+       $(lispsource)/language/cham.el \
+       $(lispsource)/indent.elc \
+       $(lispsource)/window.elc \
+       $(lispsource)/frame.elc \
        $(lispsource)/term/tty-colors.elc \
        $(lispsource)/font-core.elc \
+       $(lispsource)/facemenu.elc \
        $(lispsource)/emacs-lisp/syntax.elc \
        $(lispsource)/font-lock.elc \
        $(lispsource)/jit-lock.elc \
-       $(lispsource)/textmodes/fill.elc \
+       $(lispsource)/mouse.elc \
+       $(lispsource)/scroll-bar.elc \
+       $(lispsource)/select.elc \
+       $(lispsource)/emacs-lisp/timer.elc \
+       $(lispsource)/isearch.elc \
+       $(lispsource)/rfn-eshadow.elc \
+       $(lispsource)/menu-bar.elc \
+       $(lispsource)/paths.el \
+       $(lispsource)/emacs-lisp/lisp.elc \
        $(lispsource)/textmodes/page.elc \
+       $(lispsource)/register.elc \
        $(lispsource)/textmodes/paragraphs.elc \
+       $(lispsource)/emacs-lisp/lisp-mode.elc \
        $(lispsource)/textmodes/text-mode.elc \
-       $(lispsource)/emacs-lisp/timer.elc \
-       $(lispsource)/jka-cmpr-hook.elc \
+       $(lispsource)/textmodes/fill.elc \
+       $(lispsource)/replace.elc \
+       $(lispsource)/buff-menu.elc \
+       $(lispsource)/fringe.elc \
+       $(lispsource)/image.elc \
+       $(lispsource)/international/fontset.elc \
+       $(lispsource)/dnd.elc \
+       $(lispsource)/tool-bar.elc \
+       $(lispsource)/dynamic-setting.elc \
+       $(lispsource)/x-dnd.elc \
+       $(lispsource)/term/common-win.elc \
+       $(lispsource)/term/x-win.elc \
+       $(lispsource)/w32-vars.elc \
+       $(lispsource)/term/w32-win.elc \
+       $(lispsource)/ls-lisp.elc \
+       $(lispsource)/disp-table.elc \
+       $(lispsource)/dos-w32.elc \
+       $(lispsource)/w32-fns.elc \
+       $(lispsource)/dos-fns.elc \
+       $(lispsource)/dos-vars.elc \
+       $(lispsource)/term/pc-win.elc \
+       $(lispsource)/term/internal.elc \
+       $(lispsource)/term/ns-win.elc \
+       $(lispsource)/mwheel.elc \
+       $(lispsource)/emacs-lisp/float-sup.elc \
        $(lispsource)/vc/vc-hooks.elc \
        $(lispsource)/vc/ediff-hook.elc \
-       $(lispsource)/epa-hook.elc \
-       $(TOOLTIP_SUPPORT) \
-       $(MSDOS_SUPPORT) \
-       $(WINDOW_SUPPORT) \
-       $(NS_SUPPORT) \
-       $(lispsource)/widget.elc \
-       $(lispsource)/window.elc \
-       $(lispsource)/version.el
+       $(lispsource)/tooltip.elc
 
-## List of relative names for those files from $lisp that are loaded
-## unconditionally (i.e. on all platforms).  Files from $lisp that
-## are only loaded on some platforms should instead be placed in
-## SOME_MACHINE_LISP.  The only reason this variable exists is to prevent
-## the make-docfile command-line getting too long for some systems.
+## The same as $lisp, but using relative file names.  The only reason
+## this variable exists is to prevent the make-docfile command-line
+## getting too long for some systems.  Unfortunately, no-one has any
+## idea how long "too long" is.
 shortlisp= \
        ../lisp/loaddefs.el \
-       ../lisp/abbrev.elc \
-       ../lisp/buff-menu.elc \
-       ../lisp/button.elc \
+       ../lisp/loadup.el \
        ../lisp/emacs-lisp/byte-run.elc \
-       ../lisp/composite.elc \
-       ../lisp/cus-face.elc \
-       ../lisp/cus-start.elc \
-       ../lisp/custom.elc \
        ../lisp/emacs-lisp/backquote.elc \
-       ../lisp/emacs-lisp/lisp-mode.elc \
-       ../lisp/emacs-lisp/lisp.elc \
-       ../lisp/facemenu.elc \
-       ../lisp/faces.elc \
-       ../lisp/files.elc \
-       ../lisp/emacs-lisp/float-sup.elc \
-       ../lisp/format.elc \
-       ../lisp/frame.elc \
-       ../lisp/help.elc \
-       ../lisp/indent.elc \
-       ../lisp/isearch.elc \
-       ../lisp/rfn-eshadow.elc \
-       ../lisp/loadup.el \
-       ../lisp/bindings.elc \
+       ../lisp/subr.elc \
+       ../lisp/version.el \
+       ../lisp/widget.elc \
+       ../lisp/custom.elc \
        ../lisp/emacs-lisp/map-ynp.elc \
-       ../lisp/env.elc \
+       ../lisp/cus-start.elc \
        ../lisp/international/mule.elc \
        ../lisp/international/mule-conf.elc \
+       ../lisp/env.elc \
+       ../lisp/format.elc \
+       ../lisp/bindings.elc \
+       ../lisp/files.elc \
+       ../lisp/cus-face.elc \
+       ../lisp/faces.elc \
+       ../lisp/button.elc \
+       ../lisp/startup.elc \
+       ../lisp/minibuffer.elc \
+       ../lisp/abbrev.elc \
+       ../lisp/simple.elc \
+       ../lisp/help.elc \
+       ../lisp/jka-cmpr-hook.elc \
+       ../lisp/epa-hook.elc \
        ../lisp/international/mule-cmds.elc \
-       ../lisp/international/characters.elc \
        ../lisp/case-table.elc \
+       ../lisp/international/characters.elc \
+       ../lisp/composite.elc \
+       ../lisp/international/charprop.el \
        ../lisp/language/chinese.elc \
        ../lisp/language/cyrillic.elc \
        ../lisp/language/indian.elc \
@@ -540,7 +540,6 @@ shortlisp= \
        ../lisp/language/japanese.el \
        ../lisp/language/korean.el \
        ../lisp/language/lao.el \
-       ../lisp/language/cham.el \
        ../lisp/language/tai-viet.el \
        ../lisp/language/thai.el \
        ../lisp/language/tibetan.elc \
@@ -550,50 +549,58 @@ shortlisp= \
        ../lisp/language/georgian.el \
        ../lisp/language/khmer.el \
        ../lisp/language/burmese.el \
-       ../lisp/menu-bar.elc \
-       ../lisp/paths.el \
-       ../lisp/register.elc \
-       ../lisp/replace.elc \
-       ../lisp/simple.elc \
-       ../lisp/minibuffer.elc \
-       ../lisp/startup.elc \
-       ../lisp/subr.elc \
+       ../lisp/language/cham.el \
+       ../lisp/indent.elc \
+       ../lisp/window.elc \
+       ../lisp/frame.elc \
        ../lisp/term/tty-colors.elc \
        ../lisp/font-core.elc \
+       ../lisp/facemenu.elc \
        ../lisp/emacs-lisp/syntax.elc \
        ../lisp/font-lock.elc \
        ../lisp/jit-lock.elc \
-       ../lisp/textmodes/fill.elc \
+       ../lisp/mouse.elc \
+       ../lisp/scroll-bar.elc \
+       ../lisp/select.elc \
+       ../lisp/emacs-lisp/timer.elc \
+       ../lisp/isearch.elc \
+       ../lisp/rfn-eshadow.elc \
+       ../lisp/menu-bar.elc \
+       ../lisp/paths.el \
+       ../lisp/emacs-lisp/lisp.elc \
        ../lisp/textmodes/page.elc \
+       ../lisp/register.elc \
        ../lisp/textmodes/paragraphs.elc \
+       ../lisp/emacs-lisp/lisp-mode.elc \
        ../lisp/textmodes/text-mode.elc \
-       ../lisp/emacs-lisp/timer.elc \
+       ../lisp/textmodes/fill.elc \
+       ../lisp/replace.elc \
+       ../lisp/buff-menu.elc \
+       ../lisp/fringe.elc \
+       ../lisp/image.elc \
+       ../lisp/international/fontset.elc \
+       ../lisp/dnd.elc \
+       ../lisp/tool-bar.elc \
+       ../lisp/dynamic-setting.elc \
+       ../lisp/x-dnd.elc \
+       ../lisp/term/common-win.elc \
+       ../lisp/term/x-win.elc \
+       ../lisp/w32-vars.elc \
+       ../lisp/term/w32-win.elc \
+       ../lisp/ls-lisp.elc \
+       ../lisp/disp-table.elc \
+       ../lisp/dos-w32.elc \
+       ../lisp/w32-fns.elc \
+       ../lisp/dos-fns.elc \
+       ../lisp/dos-vars.elc \
+       ../lisp/term/pc-win.elc \
+       ../lisp/term/internal.elc \
+       ../lisp/term/ns-win.elc \
+       ../lisp/mwheel.elc \
+       ../lisp/emacs-lisp/float-sup.elc \
        ../lisp/vc/vc-hooks.elc \
        ../lisp/vc/ediff-hook.elc \
-       ../lisp/jka-cmpr-hook.elc \
-       ../lisp/epa-hook.elc \
-       ../lisp/widget.elc \
-       ../lisp/window.elc \
-       ../lisp/version.el
-
-## Like $shortlisp, but includes only those files from $lisp that are loaded
-## conditionally (i.e., only on some platforms).
-## Confusingly, term/internal is not in loadup, but is unconditionally
-## loaded by pc-win, which is.
-SOME_MACHINE_LISP = ../lisp/mouse.elc \
-  ../lisp/select.elc ../lisp/scroll-bar.elc \
-  ../lisp/ls-lisp.elc ../lisp/dos-fns.elc \
-  ../lisp/w32-fns.elc ../lisp/dos-w32.elc \
-  ../lisp/disp-table.elc ../lisp/dos-vars.elc ../lisp/w32-vars.elc \
-  ../lisp/tooltip.elc ../lisp/image.elc \
-  ../lisp/fringe.elc ../lisp/dnd.elc \
-  ../lisp/mwheel.elc ../lisp/tool-bar.elc \
-  ../lisp/x-dnd.elc ../lisp/dynamic-setting.elc \
-  ../lisp/international/fontset.elc \
-  ../lisp/term/common-win.elc \
-  ../lisp/term/x-win.elc \
-  ../lisp/term/pc-win.elc ../lisp/term/internal.elc \
-  ../lisp/term/ns-win.elc ../lisp/term/w32-win.elc
+       ../lisp/tooltip.elc
 
 ## Construct full set of libraries to be linked.
 ## Note that SunOS needs -lm to come before -lc; otherwise, you get
@@ -612,6 +619,9 @@ all: emacs$(EXEEXT) $(OTHER_FILES)
 ## Does anyone ever pay attention to the load-path-shadows output here?
 ## The dumped Emacs is as functional and more efficient than
 ## bootstrap-emacs, so we replace the latter with the former.
+## Strictly speaking, emacs does not depend directly on all of $lisp,
+## since not all pieces are used on all platforms.  But DOC depends
+## on all of $lisp, and emacs depends on DOC, so it is ok to use $lisp here.
 emacs$(EXEEXT): temacs$(EXEEXT) $(etc)/DOC $(lisp)
        if test "$(CANNOT_DUMP)" = "yes"; then \
          ln -f temacs$(EXEEXT) emacs$(EXEEXT); \
@@ -630,16 +640,15 @@ emacs$(EXEEXT): temacs$(EXEEXT) $(etc)/DOC $(lisp)
 ## $(SOME_MACHINE_OBJECTS).  Since a file is processed when it is mentioned
 ## for the first time, this prevents any variation between configurations
 ## in the contents of the DOC file.
-## Likewise for $(SOME_MACHINE_LISP).
 ## Most of this Makefile refers to Lisp files via $(lispsource), so
 ## we also use $(lisp) rather than $(shortlisp) for the dependency since
 ## the Makefile uses string equality to decide when we talk about identical
 ## files.  Apparently we pass $(shortlisp) rather than $(lisp) to make-docfile
 ## only in order to reduce the command line length.  --Stef
-$(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(obj) $(lisp) $(SOME_MACHINE_LISP)
+$(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(obj) $(lisp)
        -rm -f $(etc)/DOC
        $(libsrc)/make-docfile -d $(srcdir) $(SOME_MACHINE_OBJECTS) $(obj) > $(etc)/DOC
-       $(libsrc)/make-docfile -a $(etc)/DOC -d $(srcdir) $(SOME_MACHINE_LISP) $(shortlisp)
+       $(libsrc)/make-docfile -a $(etc)/DOC -d $(srcdir) $(shortlisp)
 
 $(libsrc)/make-docfile$(EXEEXT):
        cd $(libsrc); $(MAKE) $(MFLAGS) make-docfile$(EXEEXT)
@@ -797,7 +806,7 @@ tags: TAGS TAGS-LISP $(lwlibdir)/TAGS
                             THEFILE=$< EMACS=$(bootstrap_exe)
 
 ## Since the .el.elc rule cannot specify an extra dependency, we do it here.
-$(lisp) $(SOME_MACHINE_LISP): $(BOOTSTRAPEMACS)
+$(lisp): $(BOOTSTRAPEMACS)
 
 ## VCSWITNESS points to the file that holds info about the current checkout.
 ## We use it as a heuristic to decide when to rebuild loaddefs.el.