;;; Commentary:
;; Use this file to override variables defined in APEL-MK.
+;;
+;; The following variables are used in APEL-MK.
+;; Note that you cannot use them in this file.
+;;
+;; For Emacs, or XEmacs without package system:
+;;
+;; PREFIX: Normally, "/usr/local".
+;; Installer will try to detect it automatically.
+;; LISPDIR: "PREFIX/share/emacs/site-lisp" if Emacs 19.29 and later.
+;; "PREFIX/lib/emacs/site-lisp" if Emacs 19.28 and earlier.
+;; Installer will try to detect it from PREFIX.
+;; VERSION_SPECIFIC_LISPDIR: "PREFIX/share/emacs/VERSION/site-lisp"
+;; if Emacs 19.31 and later, otherwise, same as LISPDIR.
+;;
+;; APEL_PREFIX: subdirectory of LISPDIR where APEL modules will be
+;; installed, or "" if you don't want to make subdirectory.
+;; EMU_PREFIX: subdirectory of VERSION_SPECIFIC_LISPDIR where EMU
+;; modules will be installed, or "" if you don't want to
+;; make subdirectory.
+;;
+;; APEL_DIR: The directory where APEL modules will be installed.
+;; Generated from LISPDIR and APEL_DIR if it is not set.
+;; EMU_DIR: The directory where EMU modules will be installed.
+;; Generated from VERSION_SPECIFIC_LISPDIR and EMU_DIR if
+;; it is not set.
+;;
+;; For XEmacs with package system:
+;;
+;; PACKAGEDIR: "/usr/local/lib/xemacs/xemacs-packages"
+;; Installer will try to detect it automatically.
+;;
+;; APEL_PREFIX: subdirectory of PACKAGEDIR where both APEL and EMU
+;; modules will be installed.
;;; Code:
;;; "custom" library.
-;; If you use "new custom" but do not use "subdirs.el" to add "custom"
-;; to your load-path, uncomment and edit this.
+;; If you want to use "new custom" but do not use "subdirs.el" to add
+;; "custom" directory to your load-path, uncomment and edit this.
;; (setq load-path
;; (cons "/usr/local/share/emacs/19.34/site-lisp/custom" load-path))
;;; Install to home directory.
-;; If you want to install APEL to home directory and you already have
-;; the standard hierarchy such as "~/share/emacs/site-lisp" and
+;; If you want to install APEL to your home directory and you already
+;; have the standard hierarchy such as "~/share/emacs/site-lisp" and
;; "~/share/emacs/VERSION/site-lisp", uncomment and edit this.
;; (setq PREFIX "~/")
;;; Install to site-lisp directories.
-;; (setq APEL_PREFIX "apel")
-;; (setq EMU_PREFIX "emu")
-
;; (setq PREFIX "/usr/local")
;; Mule based on Emacs 19.28 and eariler.
;; XEmacs 21.0 and later.
;; (setq PACKAGEDIR "/usr/local/lib/xemacs/xemacs-packages")
-;; If you want to install all of APEL files to VERSION_SPECIFIC_LISPDIR,
-;; uncomment this.
-;; (setq APEL_DIR (expand-file-name APEL_PREFIX VERSION_SPECIFIC_LISPDIR))
+;; (setq APEL_PREFIX "apel")
+;; (setq EMU_PREFIX "emu")
+
+;; If you want to install all of APEL modules to VERSION_SPECIFIC_LISPDIR,
+;; uncomment and edit this.
+;; (setq APEL_DIR "/usr/local/share/emacs/19.34/site-lisp/apel")
-;; You can specify APEL_DIR and EMU_DIR directly.
-;; (setq APEL_DIR (expand-file-name APEL_PREFIX LISPDIR))
-;; (setq EMU_DIR (expand-file-name EMU_PREFIX VERSION_SPECIFIC_LISPDIR))
+;; You can specify APEL_DIR and EMU_DIR directly. Uncomment and edit this.
+;; (setq APEL_DIR "/usr/local/share/emacs/site-lisp/apel")
+;; (setq EMU_DIR "/usr/local/share/emacs/19.34/site-lisp/emu")
;;; APEL-CFG ends here
;;; 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 ?)
(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'.
+ ;; Avoid using `pop'.
+ ;; (pop command-line-args-left)
(car command-line-args-left)
(setq command-line-args-left
(cdr 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)
+
+ ;; We use `module-installed-p' in "EMU-ELS".
+ ;; 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))))
(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)
+
+ ;; We use `module-installed-p' in "EMU-ELS".
+ ;; 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 "."))
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