NOTE: This patch has been committed.
ChangeLog addition:
2004-12-07  Ben Wing  <ben(a)xemacs.org>
	* xemacs-packages/Makefile:
	Rationalize the order of package compilation.
xemacs-packages/vm/ChangeLog addition:
2004-12-07  Ben Wing  <ben(a)xemacs.org>
	* Makefile (EARLY_GENERATED_LISP):
	* Makefile (vm.el):
	vm.el must be generated early because of dependencies from
	other packages.
packages source patch:
Diff command:   bash -ci "cvs-diff --show-c-function -no-changelog "
Files affected: xemacs-packages/vm/Makefile xemacs-packages/auctex/README xemacs-packages/auctex/CHANGES xemacs-packages/Makefile
cvs server: Diffing .
Index: xemacs-packages/Makefile
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/Makefile,v
retrieving revision 1.35
diff -u -p -r1.35 Makefile
--- xemacs-packages/Makefile	2004/03/15 16:36:46	1.35
+++ xemacs-packages/Makefile	2004/12/08 00:51:31
@@ -1,6 +1,7 @@
 # This file is part of XEmacs.
 
 # Copyright (C) 2001, 2002 Steve Youngs
+# Copyright (C) 2004 Ben Wing.
 
 # XEmacs is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
@@ -17,31 +18,44 @@
 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
-# [[ Because of autoload issues, this strange subdirectory order needs to
-# be maintained.  When adding new packages just put them at the end
-# of the list. ]]
-#
-# This is no longer true.  We build all autoloads first, before any
-# compilation, so they're available to all packages. --ben
-
 # So we can get at $NONMULE_PACKAGES
 include ../Local.rules.inc
 
+# At one point, we needed the list of packages to be in a very particular
+# order because of autoload issues.  This is no longer true -- we build all
+# autoloads first, before any compilation, so they're available to all
+# packages, and we arrange things so that out-of-date .elc files are
+# ignored.  However, it's useful to order the more basic stuff first,
+# to speed up compilation.  We use four groups:
+#
+# (a) The most basic stuff, listed in dependency order.
+# (b) Basic libraries used by lots of other code, with few or no dependencies
+#     other than in (a); listed alphabetically.
+# (c) Some other things with more dependencies but used by lots of packages;
+#     listed alphabetically.
+# (d) Everything else, listed alphabetically.
+
 ifeq ('$(NONMULE_PACKAGES)','xemacs-packages')
-PACKAGES:= xemacs-base fsf-compat mail-lib dired efs apel \
-	Sun edebug elib tooltalk xemacs-devel sounds-au sounds-wav \
-	eieio build auctex crisp edt reftex texinfo textools tpu viper \
-	vm w3 net-utils eudc footnote gnats mh-e supercite mailcrypt \
-	rmail gnus tm mew zenirc bbdb cookie games general-docs mine \
-	misc-games semantic cc-mode pcl-cvs ada c-support debug ediff \
-	emerge idlwave jde prog-modes scheme sh-script vc-cc vc vhdl \
-	xslt-process eterm igrep ilisp os-utils ps-print view-process \
-	eshell pcomplete edit-utils speedbar calc calendar forms frame-icon \
-	hm--html-menus ispell pc psgml psgml-dtds sgml slider text-modes time \
-	strokes tramp clearcase dictionary sieve ibuffer mmm-mode xslide \
-	liece haskell-mode ess docbookide ecrypto ocaml sasl sml-mode \
-	python-modes fortran-modes ruby-modes perl-modes pgg ecb x-symbol \
-	hyperbole oo-browser riece erc xlib xwem escreen
+PACKAGES:= xemacs-base fsf-compat mail-lib \
+	\
+	apel cc-mode debug dired ecrypto edit-utils elib eterm ispell \
+	os-utils sh-script texinfo text-modes xlib \
+	\
+	edebug efs eieio net-utils xemacs-devel \
+	\
+	Sun ada auctex bbdb build c-support calc calendar clearcase \
+	cookie crisp dictionary docbookide ecb ediff edt emerge \
+	erc escreen eshell ess eudc footnote forms fortran-modes \
+	frame-icon games general-docs gnats gnus haskell-mode \
+	hm--html-menus hyperbole ibuffer idlwave igrep ilisp \
+	jde liece mailcrypt mew mh-e mine misc-games mmm-mode \
+	ocaml oo-browser pc pcl-cvs pcomplete perl-modes pgg \
+	prog-modes ps-print psgml psgml-dtds python-modes reftex \
+	riece rmail ruby-modes sasl scheme semantic sgml sieve \
+	slider sml-mode sounds-au sounds-wav speedbar strokes \
+	supercite textools time tm tooltalk tpu tramp \
+	vc vc-cc vhdl view-process viper vm w3 x-symbol \
+	xslide xslt-process xwem zenirc
 else
 PACKAGES := $(NONMULE_PACKAGES)
 endif
cvs server: Diffing xemacs-packages/Sun
cvs server: Diffing xemacs-packages/ada
cvs server: Diffing xemacs-packages/apel
cvs server: Diffing xemacs-packages/auctex
Index: xemacs-packages/vm/Makefile
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/vm/Makefile,v
retrieving revision 1.64
diff -u -p -r1.64 Makefile
--- xemacs-packages/vm/Makefile	2003/10/31 17:15:16	1.64
+++ xemacs-packages/vm/Makefile	2004/12/08 00:52:45
@@ -49,9 +49,7 @@ STANDARD_DOCS = t
 DATA_FILES = $(shell echo etc/*.x??)
 DATA_DEST = $(PACKAGE)
 
-EARLY_GENERATED_LISP += vm-autoload.el
-
-GENERATED_LISP = vm.el
+EARLY_GENERATED_LISP += vm.el vm-autoload.el
 
 include ../../XEmacs.rules
 
cvs server: Diffing xemacs-packages/vm/etc
cvs server: Diffing xemacs-packages/w3
cvs server: Diffing xemacs-packages/w3/contrib
cvs server: Diffing xemacs-packages/w3/etc
cvs server: Diffing xemacs-packages/w3/images
cvs server: Diffing xemacs-packages/w3/lisp
cvs server: Diffing xemacs-packages/w3/texi
cvs server: Diffing xemacs-packages/x-symbol
cvs server: Diffing xemacs-packages/x-symbol/etc
cvs server: Diffing xemacs-packages/x-symbol/fonts
cvs server: Diffing xemacs-packages/x-symbol/lisp
cvs server: Diffing xemacs-packages/x-symbol/man
cvs server: Diffing xemacs-packages/x-symbol/origfonts
cvs server: Diffing xemacs-packages/xemacs-base
cvs server: Diffing xemacs-packages/xemacs-base/etc
cvs server: Diffing xemacs-packages/xemacs-devel
cvs server: Diffing xemacs-packages/xemacs-devel/texi
cvs server: Diffing xemacs-packages/xlib
cvs server: Diffing xemacs-packages/xlib/convmod
cvs server: Diffing xemacs-packages/xlib/lisp
cvs server: Diffing xemacs-packages/xslide
cvs server: Diffing xemacs-packages/xslt-process
cvs server: Diffing xemacs-packages/xslt-process/doc
cvs server: Diffing xemacs-packages/xslt-process/java
cvs server: Diffing xemacs-packages/xslt-process/java/xslt
cvs server: Diffing xemacs-packages/xslt-process/lisp
cvs server: Diffing xemacs-packages/xwem
cvs server: Diffing xemacs-packages/xwem/battery
cvs server: Diffing xemacs-packages/xwem/dockapp
cvs server: Diffing xemacs-packages/xwem/extra
cvs server: Diffing xemacs-packages/xwem/icons
cvs server: Diffing xemacs-packages/xwem/lisp
cvs server: Diffing xemacs-packages/xwem/man
cvs server: Diffing xemacs-packages/xwem/utils
cvs server: Diffing xemacs-packages/zenirc
cvs server: Diffing xemacs-packages/zenirc/doc
cvs server: Diffing xemacs-packages/zenirc/src