This does away with the "--package-prefix" kludge and instead adds
configure options (with associated environment variables):
--with-early-packages (ultimately defaults to ~/.xemacs)
--with-late-packages (ultimately defaults to ../lib/xemacs)
--with-last-packages
that allow you to say where the packages are. What's good is that
people can specify one of these without screwing up the other ones.
It also fits much more naturally with the internal model. I've also
cleaned up some of the stuff hanging off it.
I'll wait until Sunday with this. Once it's settled down (I'm sure
I'll have screwed up something), I'll make another pass over the
documentation. (Long overdue, I know.)
Index: ChangeLog
2005-11-25 Mike Sperber <mike(a)xemacs.org>
* CHANGES-beta:
* configure.ac: Zap --with-package-prefix; instead, add
--with-early-packages, --with-late-packages, and
--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.231
diff -u -r1.231 CHANGES-beta
--- CHANGES-beta 26 Oct 2005 13:15:44 -0000 1.231
+++ CHANGES-beta 25 Nov 2005 17:36:55 -0000
@@ -268,8 +268,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-{early,late,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 25 Nov 2005 17:37:00 -0000
@@ -875,7 +875,7 @@
--with-site-lisp Unchanged
--with-site-modules Unchanged
---package-prefix --with-package-prefix
+--package-prefix --with-late-packages
--package-path --with-package-path
--infopath --with-infopath
Index: configure.ac
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/configure.ac,v
retrieving revision 1.22
diff -u -r1.22 configure.ac
--- configure.ac 25 Nov 2005 01:41:36 -0000 1.22
+++ configure.ac 25 Nov 2005 17:37:16 -0000
@@ -619,11 +619,17 @@
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 packages (instead of ~/.xemacs).]),
+ [AC_DEFINE(EARLY_PACKAGE_DIRECTORIES_USER_DEFINED)], [])
+XE_MERGED_ARG([late-packages],
+ AC_HELP_STRING([--with-late-packages=DIR],[Specify location of late packages (instead of default location).]),
+ [AC_DEFINE(LATE_PACKAGE_DIRECTORIES_USER_DEFINED)], [])
+XE_MERGED_ARG([last-packages],
+ AC_HELP_STRING([--with-last-packages=DIR],[Specify location of last packages (instead of default location).]),
+ [AC_DEFINE(LAST_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]),
@@ -5495,13 +5501,38 @@
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
+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)
+
+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)
+
+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: lib-src/config.values.in
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lib-src/config.values.in,v
retrieving revision 1.24
diff -u -r1.24 config.values.in
--- lib-src/config.values.in 11 Mar 2005 11:20:00 -0000 1.24
+++ lib-src/config.values.in 25 Nov 2005 17:37:16 -0000
@@ -110,6 +110,7 @@
c_switch_all "@c_switch_all@"
c_switch_general "@c_switch_general@"
c_switch_window_system "@c_switch_window_system@"
+canna_libs "@canna_libs@"
configuration "@configuration@"
configure_input "@configure_input@"
datadir "@datadir@"
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 25 Nov 2005 17:37:34 -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.71
diff -u -r1.71 package-get.el
--- lisp/package-get.el 24 Oct 2005 22:40:21 -0000 1.71
+++ lisp/package-get.el 25 Nov 2005 17:37:35 -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 25 Nov 2005 17:37:35 -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 25 Nov 2005 17:37:50 -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,12 @@
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-early-packages} or @samp{--with-late-packages} or
+@samp{--with-last-packages} parameters to @file{configure} (or the
+equivalent settings in @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 25 Nov 2005 17:37:52 -0000
@@ -168,8 +168,10 @@
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.
+@samp{--with-early-packages}, @samp{--with-late-packages}, and
+@samp{--with-last-packages} option 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.
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 25 Nov 2005 17:37:52 -0000
@@ -82,15 +82,13 @@
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-early-packages},
+@code{--with-late-packages}, and @code{--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 25 Nov 2005 17:37:52 -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.103
diff -u -r1.103 config.h.in
--- src/config.h.in 25 Nov 2005 01:41:56 -0000 1.103
+++ src/config.h.in 25 Nov 2005 17:38:24 -0000
@@ -759,6 +759,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.161
diff -u -r1.161 emacs.c
--- src/emacs.c 25 Nov 2005 01:42:00 -0000 1.161
+++ src/emacs.c 25 Nov 2005 17:38:28 -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;
@@ -4484,6 +4487,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 25 Nov 2005 17:38:29 -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 25 Nov 2005 17:41: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