SUPERSEDE APPROVE COMMIT 21.5 (not for 21.4)
Revised according to Stephen's suggestion. I'm sure there'll be
wrinkles. I'll try to get on top of them and then stay there.
Index: ChangeLog
2005-11-25 Mike Sperber <mike(a)xemacs.org>
* CHANGES-beta:
* configure.ac: Zap --with-package-prefix; instead, add
--with-user-packages/--with-early-packages,
--with-system-packages/--with-late-packages, and
--with-legacy-packages/--with-last-packages.
Index: src/ChangeLog
2005-11-25 Mike Sperber <mike(a)xemacs.org>
* nt.c (init_mswindows_environment): Add EMACSEARLYPACKAGES,
EMACSLATEPACKAGES, EMACSLASTPACKAGES.
* config.h.in:
(PATH_EARLY_PACKAGE_DIRECTORIES, PATH_LATE_PACKAGE_DIRECTORIES)
(PATH_LAST_PACKAGE_DIRECTORIES): Add.
* paths.h.in:
(PATH_EARLY_PACKAGE_DIRECTORIES, PATH_LATE_PACKAGE_DIRECTORIES)
(PATH_LAST_PACKAGE_DIRECTORIES): Add.
* emacs.c: Add Vconfigure_early_package_directories,
Vconfigure_late_package_directories,
Vconfigure_last_package_directories.
(complex_vars_of_emacs): Set them.
Index: lisp/ChangeLog
2005-11-25 Mike Sperber <mike(a)xemacs.org>
* packages.el (packages-find-package-hierarchies-named): Use
`file-name-as-directory' to normalize something which may not
have a trailing path separator.
* package-get.el (package-get-package-index-file-location): Fix
essentially bogus definition.
* package-admin.el (package-admin-find-top-directory): Use the
existing variables rather than groking the paths from scratch, and
greatly simplify.
* packages.el (packages-find-all-package-hierarchies):
Take into account `configure-early-package-hierarchies',
`configure-late-package-hierarchies',
`configure-last-package-hierarchies', as set by configure.
Index: man/ChangeLog
2005-11-25 Mike Sperber <mike(a)xemacs.org>
* lispref/packaging.texi (The User View):
* xemacs/startup.texi (Startup Paths):
* xemacs-faq.texi (Q2.1.6): Document new configure options and
environment variables for
package locations.
Index: netinstall/ChangeLog
2005-11-25 Mike Sperber <mike(a)xemacs.org>
* reginfo.h (XEMACS_INFO_XEMACS_EARLY_PACKAGES_KEY)
(XEMACS_INFO_XEMACS_LATE_PACKAGES_KEY)
(XEMACS_INFO_XEMACS_LAST_PACKAGES_KEY): Add.
--
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla
Index: CHANGES-beta
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/CHANGES-beta,v
retrieving revision 1.236
diff -u -r1.236 CHANGES-beta
--- CHANGES-beta 18 Dec 2005 15:33:35 -0000 1.236
+++ CHANGES-beta 27 Dec 2005 18:46:06 -0000
@@ -342,8 +342,7 @@
-- New: support NetBSD sound via Linux API. -- Aidan Kehoe
-- Improve: generation of CFLAGS (Jerry James, Ben Wing
-- Improve: parallel build support. -- Malcolm Purvis
--- Improve: support --package-prefix as simple interface to --package-path
- facility. -- Ben Wing
+-- Improve: supersede --package-path by
--with-{user/early,system/late,legacy/last}--packages
-- Improve: support mmdf and pop arguments to --mail-locking. -- Ben Wing
Documentation
Index: INSTALL
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/INSTALL,v
retrieving revision 1.45
diff -u -r1.45 INSTALL
--- INSTALL 7 Nov 2005 08:49:17 -0000 1.45
+++ INSTALL 27 Dec 2005 18:46:07 -0000
@@ -875,7 +875,6 @@
--with-site-lisp Unchanged
--with-site-modules Unchanged
---package-prefix --with-package-prefix
--package-path --with-package-path
--infopath --with-infopath
Index: configure.ac
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/configure.ac,v
retrieving revision 1.31
diff -u -r1.31 configure.ac
--- configure.ac 23 Dec 2005 15:11:42 -0000 1.31
+++ configure.ac 27 Dec 2005 18:46:11 -0000
@@ -643,11 +643,26 @@
XE_MERGED_ARG([site-modules],
AC_HELP_STRING([--with-site-modules=no],[Disable site-modules directory in the XEmacs
hierarchy, which is searched before the installation modules.]),
[], [])
-XE_MERGED_ARG([package-prefix],
- AC_HELP_STRING([--with-package-prefix=DIR],[Specify packages root.]),
- [AC_DEFINE(PACKAGE_PATH_USER_DEFINED)], [])
+XE_MERGED_ARG([early-packages],
+ AC_HELP_STRING([--with-early-packages=DIR],[Specify location of early/user packages
(instead of ~/.xemacs; same as --with-user-packages).]),
+ [AC_DEFINE(EARLY_PACKAGE_DIRECTORIES_USER_DEFINED)], [])
+XE_MERGED_ARG([user-packages],
+ AC_HELP_STRING([--with-user-packages=DIR],[Specify location of early/user packages
(instead of ~/.xemacs; same as --with-early-packages).]),
+ [AC_DEFINE(EARLY_PACKAGE_DIRECTORIES_USER_DEFINED)], [])
+XE_MERGED_ARG([late-packages],
+ AC_HELP_STRING([--with-late-packages=DIR],[Specify location of late/system packages
(instead of default location; same as --with-system-packages).]),
+ [AC_DEFINE(LATE_PACKAGE_DIRECTORIES_USER_DEFINED)], [])
+XE_MERGED_ARG([system-packages],
+ AC_HELP_STRING([--with-late-packages=DIR],[Specify location of late/system packages
(instead of default location; same as --with-late-packages).]),
+ [AC_DEFINE(LATE_PACKAGE_DIRECTORIES_USER_DEFINED)], [])
+XE_MERGED_ARG([last-packages],
+ AC_HELP_STRING([--with-last-packages=DIR],[Specify location of last/legacy packages
(instead of default location; same as --with-legacy-packages).]),
+ [AC_DEFINE(LAST_PACKAGE_DIRECTORIES_USER_DEFINED)], [])
+XE_MERGED_ARG([legacy-packages],
+ AC_HELP_STRING([--with-late-packages=DIR],[Specify location of late/legacy packages
(instead of default location; same as --with-late-packages).]),
+ [AC_DEFINE(LATE_PACKAGE_DIRECTORIES_USER_DEFINED)], [])
XE_MERGED_ARG([package-path],
- AC_HELP_STRING([--with-package-path=PATH],[Search path for package hierarchies.]),
+ AC_HELP_STRING([--with-package-path=PATH],[Search path for package directories.]),
[AC_DEFINE(PACKAGE_PATH_USER_DEFINED)], [])
XE_MERGED_ARG([infopath],
AC_HELP_STRING([--with-infopath=PATH],[Location of info directories]),
@@ -5617,13 +5632,41 @@
done
AC_SUBST(INFOPATH)
-if test -z "$with_package_path" && test -n
"$with_package_prefix" ; then
- if test "$enable_mule" = "yes" ; then
-
with_package_path="~/.xemacs::${with_package_prefix}/site-packages:${with_package_prefix}/xemacs-packages:${with_package_prefix}/mule-packages"
- else
-
with_package_path="~/.xemacs::${with_package_prefix}/site-packages:${with_package_prefix}/xemacs-packages"
- fi
-fi
+test -n "$with_user_packages" &&
with_early_packages=$with_user_packages
+AC_SUBST(early_packages,$with_early_packages)
+AC_SUBST(EARLY_PACKAGE_DIRECTORIES_USER_DEFINED)
+EARLY_PACKAGE_DIRECTORIES=$with_early_packages
+while true; do
+ case "$EARLY_PACKAGE_DIRECTORIES" in
+ *\$* ) eval "EARLY_PACKAGE_DIRECTORIES=$EARLY_PACKAGE_DIRECTORIES" ;;
+ *) break ;;
+ esac
+done
+AC_SUBST(EARLY_PACKAGE_DIRECTORIES)
+
+test -n "$with_system_packages" &&
with_late_packages=$with_system_packages
+AC_SUBST(late_packages,$with_late_packages)
+AC_SUBST(LATE_PACKAGE_DIRECTORIES_USER_DEFINED)
+LATE_PACKAGE_DIRECTORIES=$with_late_packages
+while true; do
+ case "$LATE_PACKAGE_DIRECTORIES" in
+ *\$* ) eval "LATE_PACKAGE_DIRECTORIES=$LATE_PACKAGE_DIRECTORIES" ;;
+ *) break ;;
+ esac
+done
+AC_SUBST(LATE_PACKAGE_DIRECTORIES)
+
+test -n "$with_legacy_packages" &&
with_last_packages=$with_legacy_packages
+AC_SUBST(last_packages,$with_last_packages)
+AC_SUBST(LAST_PACKAGE_DIRECTORIES_USER_DEFINED)
+LAST_PACKAGE_DIRECTORIES=$with_last_packages
+while true; do
+ case "$LAST_PACKAGE_DIRECTORIES" in
+ *\$* ) eval "LAST_PACKAGE_DIRECTORIES=$LAST_PACKAGE_DIRECTORIES" ;;
+ *) break ;;
+ esac
+done
+AC_SUBST(LAST_PACKAGE_DIRECTORIES)
AC_SUBST(package_path,$with_package_path)
AC_SUBST(PACKAGE_PATH_USER_DEFINED)
Index: lisp/package-admin.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/package-admin.el,v
retrieving revision 1.25
diff -u -r1.25 package-admin.el
--- lisp/package-admin.el 27 Dec 2004 12:25:14 -0000 1.25
+++ lisp/package-admin.el 27 Dec 2005 18:46:11 -0000
@@ -150,12 +150,7 @@
trying to find a directory for.
Optional Argument USER-DIR if non-nil use directories off
-`user-init-directory'. This overrides everything except
-\"EMACSPACKAGEPATH\".
-
-This function honours the environment variable \"EMACSPACKAGEPATH\"
-and returns directories found there as a priority. If that variable
-doesn't exist and USER-DIR is nil, check in the normal places.
+`early-package-directories'.
If we still can't find a suitable directory, return nil.
@@ -164,55 +159,31 @@
std == For \"standard\" packages that go in '/xemacs-packages/'
mule == For \"mule\" packages that go in '/mule-packages/'
site == For \"unsupported\" packages that go in '/site-packages/'
-
-Note: Type \"site\" is not yet fully supported."
- (let* ((env-value (getenv "EMACSPACKAGEPATH"))
+"
+ (let* ((hierarchies late-package-hierarchies)
+
+ (hierarchy-suffix
+ (file-name-as-directory
+ (cond
+ ((eq type 'std) "xemacs-packages")
+ ((eq type 'mule) "mule-packages")
+ ((eq type 'site) "site-packages"))))
+ (suffix-length (length hierarchy-suffix))
top-dir)
- ;; First, check the environment var.
- (if env-value
- (let ((path-list (paths-decode-directory-path env-value 'drop-empties)))
- (cond ((eq type 'std)
- (while path-list
- (if (equal (file-name-nondirectory
- (directory-file-name (car path-list)))
- "xemacs-packages")
- (setq top-dir (car path-list)))
- (setq path-list (cdr path-list))))
- ((eq type 'mule)
- (while path-list
- (if (equal (file-name-nondirectory
- (directory-file-name (car path-list)))
- "mule-packages")
- (setq top-dir (car path-list)))
- (setq path-list (cdr path-list)))))))
- ;; Wasn't in the environment, try `user-init-directory' if
- ;; USER-DIR is non-nil.
- (if (and user-dir
- (not top-dir))
- (cond ((eq type 'std)
- (setq top-dir (file-name-as-directory
- (expand-file-name "xemacs-packages" user-init-directory))))
- ((eq type 'mule)
- (setq top-dir (file-name-as-directory
- (expand-file-name "mule-packages" user-init-directory))))))
- ;; Finally check the normal places
- (if (not top-dir)
- (let ((path-list (nth 1 (packages-find-all-package-hierarchies
- emacs-data-roots))))
- (cond ((eq type 'std)
- (while path-list
- (if (equal (substring (car path-list) -16)
- (concat "xemacs-packages" (char-to-string directory-sep-char)))
- (setq top-dir (car path-list)))
- (setq path-list (cdr path-list))))
- ((eq type 'mule)
- (while path-list
- (if (equal (substring (car path-list) -14)
- (concat "mule-packages" (char-to-string directory-sep-char)))
- (setq top-dir (car path-list)))
- (setq path-list (cdr path-list)))))))
- ;; Now return either the directory or nil.
- top-dir))
+
+ (if user-dir
+ (expand-file-name hierarchy-suffix
+ (if configure-early-package-directories
+ (car configure-early-package-directories)
+ user-init-directory))
+
+ (while hierarchies
+ (if (string-equal (substring (car hierarchies) (- suffix-length))
+ hierarchy-suffix)
+ (setq top-dir (car hierarchies)))
+ (setq hierarchies (cdr hierarchies)))
+ top-dir)))
+
(defun package-admin-get-install-dir (package &optional pkg-dir)
"Find a suitable installation directory for a package.
Index: lisp/package-get.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/package-get.el,v
retrieving revision 1.73
diff -u -r1.73 package-get.el
--- lisp/package-get.el 16 Dec 2005 23:52:23 -0000 1.73
+++ lisp/package-get.el 27 Dec 2005 18:46:12 -0000
@@ -171,7 +171,16 @@
;;;###autoload
(defcustom package-get-package-index-file-location
- (car (split-path (or (getenv "EMACSPACKAGEPATH") user-init-directory)))
+ (cond
+ ;; historical backage
+ ((getenv "EMACSPACKAGEPATH")
+ (split-path (getenv "EMACSPACKAGEPATH")))
+ ((getenv "EMACSEARLYPACKAGES")
+ (split-path (getenv "EMACSEARLYPACKAGES")))
+ (configure-early-package-directories
+ (car configure-early-package-directories))
+ (t
+ user-init-directory))
"*The directory where the package-index file can be found."
:type 'directory
:group 'package-get)
Index: lisp/packages.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/packages.el,v
retrieving revision 1.53
diff -u -r1.53 packages.el
--- lisp/packages.el 3 Feb 2005 23:56:53 -0000 1.53
+++ lisp/packages.el 27 Dec 2005 18:46:13 -0000
@@ -345,7 +345,9 @@
Returns list of hierarchies."
(paths-directories-which-exist
(mapcar #'(lambda (package-directory)
- (file-name-as-directory (concat package-directory base)))
+ (file-name-as-directory
+ (concat (file-name-as-directory package-directory)
+ base)))
package-directories)))
(defun packages-split-path (path)
@@ -387,44 +389,67 @@
(paths-uniq-append (paths-find-version-directories roots "" nil nil t)
(paths-find-site-directories roots "")))
-(defun packages-find-package-hierarchies (package-directories &optional default)
+(defun packages-find-package-hierarchies (package-directories &optional envvar
default)
"Find package hierarchies in a list of package directories.
PACKAGE-DIRECTORIES is a list of package directories.
-DEFAULT is a default list of package hierarchies."
- (or default
- (let ((package-hierarchies '())
- (hierarchy-directories (packages-package-hierarchy-directory-names)))
- (while hierarchy-directories
- (setq package-hierarchies
- (nconc package-hierarchies
- (packages-find-package-hierarchies-named
- package-directories
- (car hierarchy-directories))))
- (setq hierarchy-directories (cdr hierarchy-directories)))
- package-hierarchies)))
+DEFAULT is a default list of package hierarchies.
+ENVVAR is the name of an environment variable that may override
+the default."
+ (let* ((envvar-value (and envvar (getenv envvar)))
+ (package-directories
+ (if envvar-value
+ (split-path envvar-value)
+ package-directories)))
+
+ (or (and (not envvar-value) default)
+ (let ((package-hierarchies '())
+ (hierarchy-directories (packages-package-hierarchy-directory-names)))
+ (while hierarchy-directories
+ (setq package-hierarchies
+ (nconc package-hierarchies
+ (packages-find-package-hierarchies-named
+ package-directories
+ (car hierarchy-directories))))
+ (setq hierarchy-directories (cdr hierarchy-directories)))
+ package-hierarchies))))
(defun packages-find-all-package-hierarchies (roots)
- "Find the package hierarchies.
+ "Find the package hierarchies.
ROOTS is a list of installation roots.
Returns a list of three directory lists, the first being the list of early
hierarchies, the second that of the late hierarchies, and the third the
list of the last hierarchies."
+ ;; EMACSPACKAGEPATH is a historical kludge
(let ((envvar-value (getenv "EMACSPACKAGEPATH")))
- (if envvar-value
- (packages-split-package-path (paths-decode-directory-path envvar-value))
+ (cond
+ (envvar-value
+ (packages-split-package-path (paths-decode-directory-path envvar-value)))
+ (configure-package-path
(packages-deconstruct
(packages-split-package-path configure-package-path)
- #'(lambda (configure-early-package-hierarchies
- configure-late-package-hierarchies
- configure-last-package-hierarchies)
+ #'(lambda (early late last)
(list
(packages-find-package-hierarchies (list user-init-directory)
- configure-early-package-hierarchies)
+ "EMACSEARLYPACKAGES"
+ early)
(packages-find-package-hierarchies (packages-find-installation-package-directories
roots)
- configure-late-package-hierarchies)
+ "EMACSLATEPACKAGES"
+
+ late)
(packages-find-package-hierarchies '()
- configure-last-package-hierarchies)))))))
-
+ "EMACSLASTPACKAGES"
+ last)))))
+ (t
+ (list
+ (packages-find-package-hierarchies (or configure-early-package-directories
+ (list user-init-directory))
+ "EMACSEARLYPACKAGES")
+ (packages-find-package-hierarchies (or configure-late-package-directories
+ (packages-find-installation-package-directories roots))
+ "EMACSLATEPACKAGES")
+ (packages-find-package-hierarchies configure-last-package-directories
+ "EMACSLASTPACKAGES"))))))
+
(defun packages-find-package-library-path (package-hierarchies suffixes)
"Construct a path into a component of the packages hierarchy.
PACKAGE-HIERARCHIES is a list of package hierarchies.
Index: man/xemacs-faq.texi
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/man/xemacs-faq.texi,v
retrieving revision 1.87
diff -u -r1.87 xemacs-faq.texi
--- man/xemacs-faq.texi 24 Oct 2005 20:39:47 -0000 1.87
+++ man/xemacs-faq.texi 27 Dec 2005 18:46:20 -0000
@@ -3268,7 +3268,7 @@
with @samp{$prefix} (for example, you're a developer and are compiling
the packages yourself, and want your own private copy of everything),
you can also directly specify this using @file{configure}. To do this
-with 21.5 and above use the @samp{--with-package-prefix} parameter to
+with 21.5 and above use the @samp{--with-late-packages} parameter to
specify the directory under which you untarred the above tarballs.
Under 21.4 and previous you need to use @samp{--package-path}. Using
these options looks something like this:
@@ -3506,10 +3506,15 @@
under @file{/usr/local/lib/xemacs}.
You can specify where exactly XEmacs looks for packages by using the
-@samp{--with-package-prefix} or @samp{--with-package-path} parameters to
-@file{configure} (or the equivalent settings in @file{config.inc}, under
-Windows), or setting the @samp{EMACSPACKAGEPATH} environment variable
-(which has the same format as @samp{--with-package-path}). @xref{Q2.1.1}.
+@samp{--with-user-packages} (an alias for @samp{--with-early-packages})
+or @samp{--with-system-packages} (an alias for
+@samp{--with-late-packages}) or @samp{--with-legacy-packages}
+(an alias for @samp{--with-last-packages})
+parameters to @file{configure} (or the equivalent settings in
+(a)file{config.inc}, under Windows), or setting the
+@samp{EMACSEARLYPACKAGES}, @samp{EMACSLATEPACKAGES}, and
+@samp{EMACSLASTPACKAGES} environment variables (which have the same
+format as the configure options). @xref{Q2.1.1}.
See @file{configure.usage} for more info about the format of these
@file{configure} parameters.
Index: man/lispref/packaging.texi
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/man/lispref/packaging.texi,v
retrieving revision 1.12
diff -u -r1.12 packaging.texi
--- man/lispref/packaging.texi 26 Sep 2005 22:19:05 -0000 1.12
+++ man/lispref/packaging.texi 27 Dec 2005 18:46:21 -0000
@@ -168,9 +168,13 @@
results in a very ``clean'' @code{load-path}.
The order of search can be changed at build time by specifying the
-@samp{--package-path} option to @file{configure}, or at run-time by
-specifying the @code{EMACSPACKAGEPATH} environment variable.
-@xref{Packages,,,xemacs}.
+@samp{--with-user-packages} (an alias for @samp{--with-early-packages}),
+@samp{--with-system-packages} (an alias for
+@samp{--with-late-packages}), and @samp{--with-legacy-packages} (an
+alias for @samp{--with-last-packages}) options to @file{configure}, or
+at run-time by specifying the @code{EMACSEARLYPACKAGES},
+@code{EMACSLATEPACKAGES}, @code{EMACSLASTPACKAGES} environment
+variables. @xref{Packages,,,xemacs}.
@c #### The following description is quite possibly inaccurate.
@c Please, Michael, write some specs up!
Index: man/xemacs/startup.texi
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/man/xemacs/startup.texi,v
retrieving revision 1.10
diff -u -r1.10 startup.texi
--- man/xemacs/startup.texi 5 Feb 2003 08:18:58 -0000 1.10
+++ man/xemacs/startup.texi 27 Dec 2005 18:46:22 -0000
@@ -82,15 +82,14 @@
hierarchy.
It is possible to specify at configure-time the location of the various
-package hierarchies with the @code{--package-path} option to configure.
+package directories with the @code{--with-user-packages} (an alias for
+@samp{--with-early-packages}), @code{--with-system-packages} (an alias
+for @samp{--with-late-packages}), and @code{--with-legacy-packages} (an
+alias for @samp{--with-last-packages}) options to configure.
@cindex package path
-The early, late, and last components of the package path are separated
-by double instead of single colons. If all three components are
-present, they locate the early, late, and last package hierarchies
-respectively. If two components are present, they locate the early and
-late hierarchies. If only one component is present, it locates the
-late hierarchy. At run time, the package path may also be specified via
-the @code{EMACSPACKAGEPATH} environment variable.
+At run time, the package directories may also be specified via the
+@code{EMACSEARLYPACKAGES}, @code{EMACSLATEPACKAGES}, and
+@code{EMACSLASTPACKAGES} environment variables.
An XEmacs package hierarchy is laid out just like a normal installed
XEmacs directory. It may have @file{lisp}, @file{etc}, @file{info}, and
Index: netinstall/reginfo.h
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/netinstall/reginfo.h,v
retrieving revision 1.3
diff -u -r1.3 reginfo.h
--- netinstall/reginfo.h 9 Sep 2001 04:37:47 -0000 1.3
+++ netinstall/reginfo.h 27 Dec 2005 18:46:22 -0000
@@ -8,6 +8,9 @@
#define XEMACS_INFO_XEMACS_ROOT_KEY "emacs_dir"
#define XEMACS_INFO_XEMACS_ROOT_TYPE "install_type"
#define XEMACS_INFO_XEMACS_PACKAGE_KEY "EMACSPACKAGEPATH"
+#define XEMACS_INFO_XEMACS_EARLY_PACKAGES_KEY "EMACSEARLYPACKAGES"
+#define XEMACS_INFO_XEMACS_LATE_PACKAGES_KEY "EMACSLATEPACKAGES"
+#define XEMACS_INFO_XEMACS_LAST_PACKAGES_KEY "EMACSLASTPACKAGES"
#define XEMACS_INFO_XEMACS_VERSION_KEY "version"
#define XEMACS_DEFAULT_ROOT "\\Program Files\\XEmacs"
Index: src/config.h.in
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/config.h.in,v
retrieving revision 1.104
diff -u -r1.104 config.h.in
--- src/config.h.in 26 Nov 2005 11:46:07 -0000 1.104
+++ src/config.h.in 27 Dec 2005 18:46:22 -0000
@@ -766,6 +766,9 @@
#undef SITEMODULEDIR_USER_DEFINED
#undef DOCDIR_USER_DEFINED
#undef LISPDIR_USER_DEFINED
+#undef EARLY_PACKAGE_DIRECTORIES_USER_DEFINED
+#undef LATE_PACKAGE_DIRECTORIES_USER_DEFINED
+#undef LAST_PACKAGE_DIRECTORIES_USER_DEFINED
#undef PACKAGE_PATH_USER_DEFINED
#undef SITELISPDIR_USER_DEFINED
#undef ARCHLIBDIR_USER_DEFINED
Index: src/emacs.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/emacs.c,v
retrieving revision 1.162
diff -u -r1.162 emacs.c
--- src/emacs.c 26 Nov 2005 11:46:07 -0000 1.162
+++ src/emacs.c 27 Dec 2005 18:46:25 -0000
@@ -542,6 +542,9 @@
Lisp_Object Vmodule_directory, Vconfigure_module_directory;
Lisp_Object Vsite_module_directory, Vconfigure_site_module_directory;
Lisp_Object Vconfigure_package_path;
+Lisp_Object Vconfigure_early_package_directories;
+Lisp_Object Vconfigure_late_package_directories;
+Lisp_Object Vconfigure_last_package_directories;
Lisp_Object Vdata_directory, Vconfigure_data_directory;
Lisp_Object Vdoc_directory, Vconfigure_doc_directory;
Lisp_Object Vconfigure_lock_directory;
@@ -4506,6 +4509,36 @@
(build_ext_string (PATH_MODULESEARCH, Qfile_name));
#else
Vconfigure_module_directory = Qnil;
+#endif
+
+ DEFVAR_LISP ("configure-early-package-directories",
&Vconfigure_early_package_directories /*
+For internal use by the build procedure only.
+configure's idea of what the early package directories will be.
+*/ );
+#ifdef PATH_EARLY_PACKAGE_DIRECTORIES
+ Vconfigure_early_package_directories = split_external_path
(PATH_EARLY_PACKAGE_DIRECTORIES);
+#else
+ Vconfigure_early_package_directories = Qnil;
+#endif
+
+ DEFVAR_LISP ("configure-late-package-directories",
&Vconfigure_late_package_directories /*
+For internal use by the build procedure only.
+configure's idea of what the late package directories will be.
+*/ );
+#ifdef PATH_LATE_PACKAGE_DIRECTORIES
+ Vconfigure_late_package_directories = split_external_path
(PATH_LATE_PACKAGE_DIRECTORIES);
+#else
+ Vconfigure_late_package_directories = Qnil;
+#endif
+
+ DEFVAR_LISP ("configure-last-package-directories",
&Vconfigure_last_package_directories /*
+For internal use by the build procedure only.
+configure's idea of what the last package directories will be.
+*/ );
+#ifdef PATH_LAST_PACKAGE_DIRECTORIES
+ Vconfigure_last_package_directories = split_external_path
(PATH_LAST_PACKAGE_DIRECTORIES);
+#else
+ Vconfigure_last_package_directories = Qnil;
#endif
DEFVAR_LISP ("configure-package-path", &Vconfigure_package_path /*
Index: src/nt.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/nt.c,v
retrieving revision 1.47
diff -u -r1.47 nt.c
--- src/nt.c 27 Sep 2005 05:32:22 -0000 1.47
+++ src/nt.c 27 Dec 2005 18:46:26 -0000
@@ -443,6 +443,9 @@
"EMACSDATA",
"EMACSPATH",
"EMACSPACKAGEPATH",
+ "EMACSEARLYPACKAGES",
+ "EMACSLATEPACKAGES",
+ "EMACSLASTPACKAGES",
"EMACSLOCKMETHOD",
"INFOPATH"
};
Index: src/paths.h.in
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/paths.h.in,v
retrieving revision 1.10
diff -u -r1.10 paths.h.in
--- src/paths.h.in 12 Apr 2001 18:24:10 -0000 1.10
+++ src/paths.h.in 27 Dec 2005 18:46:26 -0000
@@ -36,6 +36,10 @@
PATH_MODULESEARCH The default value of `module-load-path'.
+ PATH_EARLY_PACKAGE_DIRECTORIES The value of `--with-early-packages'.
+ PATH_LATE_PACKAGE_DIRECTORIES The value of `--with-late-packages'.
+ PATH_EARLY_PACKAGE_DIRECTORIES The value of `--with-last-packages'.
+
PATH_PACKAGEPATH The default value of `package-path'.
PATH_SITE The default location of site-specific Lisp files.
@@ -82,6 +86,18 @@
#ifdef SITEMODULEDIR_USER_DEFINED
#define PATH_SITE_MODULES "@SITEMODULEDIR@"
+#endif
+
+#ifdef EARLY_PACKAGE_DIRECTORIES_USER_DEFINED
+#define PATH_EARLY_PACKAGE_DIRECTORIES "@EARLY_PACKAGE_DIRECTORIES@"
+#endif
+
+#ifdef LATE_PACKAGE_DIRECTORIES_USER_DEFINED
+#define PATH_LATE_PACKAGE_DIRECTORIES "@LATE_PACKAGE_DIRECTORIES@"
+#endif
+
+#ifdef LAST_PACKAGE_DIRECTORIES_USER_DEFINED
+#define PATH_LAST_PACKAGE_DIRECTORIES "@LAST_PACKAGE_DIRECTORIES@"
#endif
#ifdef PACKAGE_PATH_USER_DEFINED