diff lisp/site-load.el @ 26:441bb1e64a06 r19-15b96

Import from CVS: tag r19-15b96
author cvs
date Mon, 13 Aug 2007 08:51:32 +0200
parents
children 1917ad0d78d7 cf808b4c4290
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/site-load.el	Mon Aug 13 08:51:32 2007 +0200
@@ -0,0 +1,58 @@
+;;; site-load.el --- Template file for site-wide XEmacs customization
+
+;; Author: Steven L. Baur <steve@altair.xemacs.org>
+;; Keywords: internal
+
+;; This file is part of XEmacs.
+
+;;; Commentary:
+
+;; This is a prototype site-load.el file.
+;; The site-load.el mechanism is provided so XEmacs installers can easily
+;; dump lisp packages with XEmacs that do not get dumped standardly.
+
+;; The file `site-packages' if it exists should look something like:
+;; (setq site-load-packages '(
+;; "../lisp/modes/cc-mode"
+;; "../lisp/utils/redo"
+;; "../lisp/packages/scroll-in-place"
+;; )
+;; )
+
+;; The first line and the last line must be exact.  Each of the packages
+;; listed must be double quoted, have either an absolute path, or a relative
+;; to the build src directory path *and* be bytecompiled prior to the attempt
+;; to dump.
+
+;; Because this is a trial implementation and the file is shared with
+;; make-docfiles, syntax is strict and unforgiving.  So sue me.  It
+;; is still better than the way it used to be.
+
+;;; Code:
+(defvar site-load-package-file "../lisp/site-packages"
+  "File name containing the list of extra packages to dump with XEmacs.")
+(defvar site-load-packages nil
+  "A list of .elc files that should be dumped with XEmacs.
+This variable should be set by `site-load-package-file'.")
+
+;; Load site specific packages for dumping with the XEmacs binary.
+(when (file-exists-p site-load-package-file) 
+  (let ((file))
+    (load site-load-package-file t t t)
+    ;; The `load-gc' macro is provided as a clue that a package is being loaded
+    ;; in preparation of being dumped into XEmacs.
+    (defmacro load-gc (file)
+      (list 'prog1 (list 'load file) '(garbage-collect)))
+    (message "Loading site-wide packages for dumping...")
+    (while site-load-packages
+      (setq file (car site-load-packages))
+      (load-gc file)
+      (setq site-load-packages (cdr site-load-packages)))
+    (message "Loading site-wide packages for dumping...done")
+    (fmakunbound 'load-gc)))
+
+;; This file is intended for end user additions.
+;; Put other initialization here, like setting of language-environment, etc.
+;; Perhaps this should really be in the site-init.el.
+
+;;; site-load.el ends here