Update for the new CVS server.
[elisp/apel.git] / APEL-MK
diff --git a/APEL-MK b/APEL-MK
index b2a0758..58e5ddb 100644 (file)
--- a/APEL-MK
+++ b/APEL-MK
@@ -8,64 +8,52 @@
 
 ;;; Configuration variables.
 
-;; These two variables will be generated from other variables below.
-(defvar APEL_DIR nil)
-(defvar EMU_DIR nil)
+;; Set these four variables in "APEL-CFG" or in "Makefile".
 
-;; Install to "apel" subdirectory.
+;; This variable will be detected automatically.
+(defvar PREFIX nil)
+
+;; This variable will be detected automatically using PREFIX.
+;; v18: (no standard site-lisp directory)
+;; Emacs 19.28 and earlier: "PREFIX/lib/emacs/site-lisp"
+;; Emacs 19.29 and later: "PREFIX/share/emacs/site-lisp"
+(defvar LISPDIR nil)
+
+;; This variable will be detected automatically using PREFIX.
+;; Emacs 19.31 and later: "PREFIX/share/emacs/VERSION/site-lisp"
+(defvar VERSION_SPECIFIC_LISPDIR nil)
+
+;; This variable will be detected automatically.
+;; XEmacs 21.0 and later: "/usr/local/lib/xemacs/xemacs-packages"
+(defvar PACKAGEDIR nil)
+
+;; Install APEL modules to "apel" subdirectory.
 (defvar APEL_PREFIX "apel")
-;; Install to "emu" subdirectory if emacs supports some features.
+
+;; Install EMU modules to "emu" subdirectory if emacs supports some features.
+;; If your emacs does not have `normal-top-level-add-subdirs-to-load-path'
+;; but have `normal-top-level-add-to-load-path' and you want to use it in
+;; "subdirs.el", put the following line to "APEL-CFG".
+;; (setq EMU_PREFIX "emu")
 (defvar EMU_PREFIX
   (if (or (featurep 'xemacs)
          (fboundp 'normal-top-level-add-subdirs-to-load-path))
-      ;; Install to "emu" subdirectory.
+      ;; Make "emu" subdirectory.
       "emu"
-    ;; If your emacs does not have `normal-top-level-add-subdirs-to-load-path'
-    ;; but have `normal-top-level-add-to-load-path' and you want to use it in
-    ;; "subdirs.el", put the following line to "APEL-CFG".
-    ;; (setq EMU_PREFIX "emu")
+    ;; Don't make "emu" subdirectory.
     ""))
 
-;; We can load APEL modules safely;-)
-(defvar default-load-path load-path)
-(setq load-path (cons (expand-file-name ".") load-path))
-(require 'poe)
-(require 'path-util)
-(require 'install)
-
-;; Override everything you want.
-(load-file "APEL-CFG")
-
-;; The following four variables will be overrided by command line options.
-(defvar PREFIX install-prefix)
-;; v18: (no standard site-lisp directory)
-;; Emacs 19.28 and earlier: "PREFIX/lib/emacs/site-lisp"
-;; Emacs 19.29 and later: "PREFIX/share/emacs/site-lisp"
-(defvar LISPDIR
-  (install-detect-elisp-directory PREFIX))
-;; Emacs 19.31 and later: "PREFIX/share/emacs/VERSION/site-lisp".
-(defvar VERSION_SPECIFIC_LISPDIR
-  (install-detect-elisp-directory PREFIX nil 'version-specific))
-;; for XEmacs package system.
-(defvar PACKAGEDIR
-  (if (boundp 'early-packages)
-      (let ((dirs (append (if early-package-load-path
-                             early-packages)
-                         (if late-package-load-path
-                             late-packages)
-                         (if last-package-load-path
-                             last-packages)))
-           dir)
-       (while (not (file-exists-p (setq dir (car dirs))))
-         (setq dirs (cdr dirs)))
-       dir)))
+;; The directories where APEL and EMU modules will be installed.
+;; These two variables will be generated from other variables above.
+(defvar APEL_DIR nil)                  ; LISPDIR/APEL_PREFIX
+(defvar EMU_DIR nil)                   ; VERSION_SPECIFIC_LISPDIR/EMU_PREFIX
 
 
 ;;; Utilities. (XXX: should be moved to install.el ?)
 
 (defun install-just-print-p ()
   (let ((flag (getenv "MAKEFLAGS"))
-       case-fold-search)
+       (case-fold-search nil))
     (princ (format "%s\n" flag))
     (if flag
        (string-match "^\\(\\(--[^ ]+ \\)+-\\|[^ =-]\\)*n" flag))))
                   (expand-file-name "custom-load.elc" dir))))
    (t
     (setq autoload-package-name package)
-    (add-to-list 'command-line-args-left dir)
-    (batch-update-directory)
 
-    (add-to-list 'command-line-args-left dir)
-    (Custom-make-dependencies)
+    (let ((command-line-args-left (list dir)))
+      (batch-update-directory))
+
+    (let ((command-line-args-left (list dir)))
+      (Custom-make-dependencies))
 
     (byte-compile-file (expand-file-name "auto-autoloads.el" dir))
     (byte-compile-file (expand-file-name "custom-load.el" dir)))))
 ;;; Configure, Compile, and Install.
 
 (defun config-apel ()
+  ;; Override everything you want.
+  (load-file "APEL-CFG")
+  ;; Override PREFIX, LISPDIR, and VERSION_SPECIFIC_LISPDIR with
+  ;; command-line options.
   (let (prefix lisp-dir version-specific-lisp-dir)
-    ;; override standard PREFIX, LISPDIR, and VERSION_SPECIFIC_LISPDIR
-    ;; with command-line options.
-    (and (setq prefix (prog1
-                         ;; avoid using `pop'.
-                         (car command-line-args-left)
-                       (setq command-line-args-left
-                             (cdr command-line-args-left))))
+    (and (setq prefix
+              ;; Avoid using `pop'.
+              ;; (pop command-line-args-left)
+              (prog1
+                  (car command-line-args-left)
+                (setq command-line-args-left
+                      (cdr command-line-args-left))))
         (or (string-equal "NONE" prefix)
             (setq PREFIX prefix)))
-    (and (setq lisp-dir (prog1
-                           (car command-line-args-left)
-                         (setq command-line-args-left
-                               (cdr command-line-args-left))))
+    (and (setq lisp-dir
+              ;; Avoid using `pop'.
+              ;; (pop command-line-args-left)
+              (prog1
+                  (car command-line-args-left)
+                (setq command-line-args-left
+                      (cdr command-line-args-left))))
         (or (string-equal "NONE" lisp-dir)
             (setq LISPDIR lisp-dir)))
     (and (setq version-specific-lisp-dir
+              ;; Avoid using `pop'.
+              ;; (pop command-line-args-left)
               (prog1
                   (car command-line-args-left)
                 (setq command-line-args-left
                       (cdr command-line-args-left))))
         (or (string-equal "NONE" version-specific-lisp-dir)
-            (setq VERSION_SPECIFIC_LISPDIR version-specific-lisp-dir)))
-    ;; directories we actually use.
-    (or APEL_DIR
-       (setq APEL_DIR (expand-file-name APEL_PREFIX LISPDIR)))
-    (or EMU_DIR
-       (setq EMU_DIR (expand-file-name EMU_PREFIX VERSION_SPECIFIC_LISPDIR)))
-    ;; import `apel-modules'.
-    (load-file "APEL-ELS")
-    ;; import `emu-modules' and `emu-modules-to-compile'.
-    (load-file "EMU-ELS")
-    (princ (format "\nLISPDIR=%s\n" LISPDIR))
-    (princ (format "VERSION_SPECIFIC_LISPDIR=%s\n" VERSION_SPECIFIC_LISPDIR))))
+            (setq VERSION_SPECIFIC_LISPDIR version-specific-lisp-dir))))
+  ;; Load some APEL modules from this directory.
+  (defvar default-load-path load-path)
+  (setq load-path (cons (expand-file-name ".") load-path))
+  (require 'poe)
+  (require 'path-util)
+  (require 'install)
+
+  ;; Import `apel-modules'.
+  (load-file "APEL-ELS")
+  ;; Import `emu-modules' and `emu-modules-to-compile'.
+  (load-file "EMU-ELS")
+
+  ;; Set PREFIX, LISPDIR, and VERSION_SPECIFIC_LISPDIR if not set yet.
+  (or PREFIX
+      (setq PREFIX install-prefix))
+  (or LISPDIR
+      (setq LISPDIR (install-detect-elisp-directory PREFIX)))
+  (or VERSION_SPECIFIC_LISPDIR
+      (setq VERSION_SPECIFIC_LISPDIR
+           (install-detect-elisp-directory PREFIX nil 'version-specific)))
+  ;; The directories where APEL and EMU will be installed.
+  (or APEL_DIR
+      (setq APEL_DIR (expand-file-name APEL_PREFIX LISPDIR)))
+  (or EMU_DIR
+      (setq EMU_DIR (expand-file-name EMU_PREFIX VERSION_SPECIFIC_LISPDIR)))
+  (princ (format "\nLISPDIR=%s\n" LISPDIR))
+  (princ (format "VERSION_SPECIFIC_LISPDIR=%s\n" VERSION_SPECIFIC_LISPDIR)))
 
 (defun compile-apel ()
   (config-apel)
-  ;; compile emu modules first.
+  ;; Compile emu modules first.
   (compile-elisp-modules emu-modules-to-compile        ".")
   (compile-elisp-modules apel-modules          "."))
 
 (defun install-apel ()
-  (compile-apel)
+  (config-apel)
   (let ((just-print (install-just-print-p)))
-    (install-elisp-modules emu-modules "." EMU_DIR     just-print)
-    (install-elisp-modules apel-modules        "." APEL_DIR    just-print)))
+    (install-elisp-modules emu-modules "." EMU_DIR  just-print)
+    (install-elisp-modules apel-modules        "." APEL_DIR just-print)))
 
-;; for XEmacs package system.
+;; For XEmacs package system.
 (defun config-apel-package ()
+  ;; Override everything you want.
+  (load-file "APEL-CFG")
+  ;; Override PACKAGEDIR with command-line option.
   (let (package-dir)
-    ;; override standard PACKAGEDIR with command-line option.
-    (and (setq package-dir (prog1
-                              ;; avoid using `pop'.
-                              (car command-line-args-left)
-                            (setq command-line-args-left
-                                  (cdr command-line-args-left))))
+    (and (setq package-dir
+              ;; Avoid using `pop'.
+              ;; (pop command-line-args-left)
+              (prog1
+                  (car command-line-args-left)
+                (setq command-line-args-left
+                      (cdr command-line-args-left))))
         (or (string= "NONE" package-dir)
-            (defvar PACKAGEDIR package-dir)))
-    ;; import `apel-modules'.
-    (load-file "APEL-ELS")
-    ;; import `emu-modules' and `emu-modules-to-compile'.
-    (load-file "EMU-ELS")
-    (princ (format "\nPACKAGEDIR=%s\n" PACKAGEDIR))))
+            (setq PACKAGEDIR package-dir))))
+  ;; Load some APEL modules from this directory.
+  (defvar default-load-path load-path)
+  (setq load-path (cons (expand-file-name ".") load-path))
+  (require 'poe)
+  (require 'path-util)
+  (require 'install)
+
+  ;; Import `apel-modules'.
+  (load-file "APEL-ELS")
+  ;; Import `emu-modules' and `emu-modules-to-compile'.
+  (load-file "EMU-ELS")
+
+  ;; Set PACKAGEDIR if not set yet.
+  (or PACKAGEDIR
+      (setq PACKAGEDIR
+           (if (boundp 'early-packages)
+               (let ((dirs (append (if early-package-load-path
+                                       early-packages)
+                                   (if late-package-load-path
+                                       late-packages)
+                                   (if last-package-load-path
+                                       last-packages)))
+                     dir)
+                 (while (not (file-exists-p (setq dir (car dirs))))
+                   (setq dirs (cdr dirs)))
+                 dir))))
+  (if PACKAGEDIR
+      (princ (format "\nPACKAGEDIR=%s\n" PACKAGEDIR))
+    (error "XEmacs package system is not available")))
 
 (defun compile-apel-package ()
   (config-apel-package)
-  ;; compile emu modules first.
+  ;; Compile emu modules first.
   (compile-elisp-modules emu-modules-to-compile        ".")
   (compile-elisp-modules apel-modules          "."))
 
@@ -191,6 +233,8 @@ The files that belong to the EMU modules:
 The files that belong to the APEL modules:
   %s
   -> %s
+
+Do `make elc', `make install', `make package', or `make install-package'.
 "
                 (mapconcat (function symbol-name) emu-modules ", ")
                 EMU_DIR