(PACKAGEDIR): Check for (early|late|last)-package-hierarchies and
[elisp/mu-cite.git] / MU-CFG
diff --git a/MU-CFG b/MU-CFG
index 5523375..92d9b06 100644 (file)
--- a/MU-CFG
+++ b/MU-CFG
@@ -4,17 +4,53 @@
 
 ;;; Code:
 
-(setq load-path (append
-                (mapcar (function
-                         (lambda (path)
-                           (expand-file-name path (getenv "PWD"))
-                           ))
-                        '("." "../apel" "../flim")
-                        )
-                load-path))
+(defvar default-load-path load-path)
+
+(condition-case nil
+    (require 'poe);; Attempt to pickup the function `add-to-list'.
+  (error
+   (if (fboundp 'add-to-list)
+       nil
+     ;; This function is limited to only manage the value of
+     ;; `load-path'.  It will be overridden by the proper one later.
+     (defun add-to-list (list-var element)
+       (let ((paths (mapcar 'intern (delq nil (symbol-value list-var))))
+            (elem (if (string-match "/$" element)
+                      (substring element 0 (1- (length element)))
+                    element)))
+        (or (memq (intern elem) paths)
+            (memq (intern (concat elem "/")) paths)
+            (set list-var (cons element (symbol-value list-var))))))
+     (put 'add-to-list 'defun-maybe t))))
+
+;;; @ Please correct the directories where APEL or FLIM modules are
+;;;   installed.
+
+(add-to-list 'load-path
+            (expand-file-name "../../site-lisp/apel" data-directory))
+
+(add-to-list 'load-path
+            (expand-file-name "../../site-lisp/flim" data-directory))
+
+(require 'poe)
+
+(if (boundp 'LISPDIR)
+    (progn
+      (add-to-list 'default-load-path LISPDIR)
+      (add-to-list 'load-path LISPDIR)
+      (add-to-list 'load-path (expand-file-name "apel" LISPDIR))
+      (add-to-list 'load-path (expand-file-name "flim" LISPDIR))
+      ))
+
+(if (boundp 'VERSION_SPECIFIC_LISPDIR)
+    (add-to-list 'load-path VERSION_SPECIFIC_LISPDIR))
 
 (require 'install)
 
+(add-latest-path "custom")
+
+(add-path default-directory)
+
 
 ;;; @ Please specify prefix of install directory.
 ;;;
 (defvar LISPDIR (install-detect-elisp-directory PREFIX))
 ;; (setq install-default-elisp-directory "~/lib/emacs/lisp")
 
+(defvar VERSION_SPECIFIC_LISPDIR
+  (install-detect-elisp-directory PREFIX nil 'version-specific))
+
 (setq MU_DIR (expand-file-name MU_PREFIX LISPDIR))
 
+(defvar PACKAGEDIR
+  (let ((dirs (append
+              (cond ((boundp 'early-package-hierarchies)
+                     (append (if early-package-load-path
+                                 early-package-hierarchies)
+                             (if late-package-load-path
+                                 late-package-hierarchies)
+                             (if last-package-load-path
+                                 last-package-hierarchies)))
+                    ((boundp 'early-packages)
+                     (append (if early-package-load-path
+                                 early-packages)
+                             (if late-package-load-path
+                                 late-packages)
+                             (if last-package-load-path
+                                 last-packages))))
+              (if (and (boundp 'configure-package-path)
+                       (listp configure-package-path))
+                  (delete "" configure-package-path))))
+       dir)
+    (while (not (file-exists-p (setq dir (car dirs))))
+      (setq dirs (cdr dirs)))
+    dir))
+
 ;;; MU-CFG ends here