For some time packages have been built with this XEmacs:
xemacs -no-autoloads -batch $(PRELOADS) -l package-compile.el -- $(REQUIRES) --
which is obviously wrong given that the function of package-compile is
to clear and properly set up the load path. This leads to the problem
that if a preloaded library has been installed on the system, the
build process will pick up the installed version, _not_ the source
version. This is the reason that many Makefiles preload own-package
libraries as -l ./preload-lib.el. Sometimes people also add -eval
clauses to PRELOADS to get the libraries loaded from the source tree.
Simply changing the definition of BOOT_XEMACS to
xemacs -no-autoloads -batch -l package-compile.el -- $(REQUIRES) -- $(PRELOADS)
fixes both problems. I've successfully done make World from a
completely clean state with this, and in light testing the packages
seem to be running correctly. Few packages needed any change at all,
although I think it's probably a good idea to clean up the ugly ./
prefixes and -eval clauses in PRELOADS.
It would be nice if a few people could try rebuilding their package
trees and doing some of this Makefile cleanup in their favorite
packages before Steve Y applies this.
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/ChangeLog,v
retrieving revision 1.87
diff -u -U0 -r1.87 ChangeLog
--- ChangeLog 2002/04/24 12:44:26 1.87
+++ ChangeLog 2002/05/04 15:00:35
@@ -0,0 +1,4 @@
+2002-05-04 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * XEmacs.rules (BOOT_XEMACS): Do PRELOADS in correct order.
+
Index: XEmacs.rules
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/XEmacs.rules,v
retrieving revision 1.35
diff -u -r1.35 XEmacs.rules
--- XEmacs.rules 2002/04/02 02:19:52 1.35
+++ XEmacs.rules 2002/05/04 15:00:38
@@ -108,7 +108,7 @@
endif
# Behaves like an XEmacs with the required packages setup
-BOOT_XEMACS= $(XEMACS) -no-autoloads -batch $(PRELOADS) -l $(PACKAGE_COMPILE) --
$(REQUIRES) --
+BOOT_XEMACS= $(XEMACS) -no-autoloads -batch -l $(PACKAGE_COMPILE) -- $(REQUIRES) --
$(PRELOADS)
%.elc: %.el
$(BOOT_XEMACS) -f batch-byte-compile $<
--
Institute of Policy and Planning Sciences
http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
My nostalgia for Icon makes me forget about any of the bad things. I don't
have much nostalgia for Perl, so its faults I remember. Scott Gilbert c.l.py