Codebase list apel / run/4392f951-bda3-4a0f-a4c1-f91cce3ccedb/main APEL-MK
run/4392f951-bda3-4a0f-a4c1-f91cce3ccedb/main

Tree @run/4392f951-bda3-4a0f-a4c1-f91cce3ccedb/main (Download .tar.gz)

APEL-MK @run/4392f951-bda3-4a0f-a4c1-f91cce3ccedb/mainraw · history · blame

;;; APEL-MK --- installer for APEL. -*-Emacs-Lisp-*-

;;; Commentary:

;; DON'T EDIT THIS FILE; edit APEL-CFG instead.

;;; Code:

;;; Configuration variables.

;; Set these four variables in "APEL-CFG" or in "Makefile".

;; 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 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 "emu")

;; 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


;;; 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)
    (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
	       ;; 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))))
  ;; 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-elisp-modules emu-modules-to-compile	".")
  (compile-elisp-modules apel-modules		"."))

(defun install-apel (&optional just-print)
  (config-apel)
  (or just-print
      (setq just-print (install-just-print-p)))
  (install-elisp-modules emu-modules	"." EMU_DIR  just-print)
  (install-elisp-modules apel-modules	"." APEL_DIR just-print))

;; 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)
    (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)
	     (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 (install-get-default-package-directory)))
  (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-elisp-modules emu-modules-to-compile	".")
  (compile-elisp-modules apel-modules		"."))

(defun install-apel-package ()
  (config-apel-package)
  (let ((just-print (install-just-print-p))
	(dir (expand-file-name APEL_PREFIX
			       (expand-file-name "lisp" PACKAGEDIR))))
    (install-elisp-modules emu-modules	"." dir just-print)
    (install-elisp-modules apel-modules	"." dir just-print)
    (install-update-package-files "apel" dir just-print)))

(defun what-where-apel ()
  (install-apel 'just-print)
  ;; (config-apel)
;;;   (princ (format "
;;; The files that belong to the EMU modules:
;;;   %s
;;;   -> %s

;;; 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
;;; 		 (mapconcat (function symbol-name) apel-modules ", ")
;;; 		 APEL_DIR))
  )

;;; APEL-MK ends here