1;;; APEL-MK --- installer for APEL. -*-Emacs-Lisp-*- 2 3;;; Commentary: 4 5;; DON'T EDIT THIS FILE; edit APEL-CFG instead. 6 7;;; Code: 8 9;;; Configuration variables. 10 11;; Set these four variables in "APEL-CFG" or in "Makefile". 12 13;; This variable will be detected automatically. 14(defvar PREFIX nil) 15 16;; This variable will be detected automatically using PREFIX. 17;; v18: (no standard site-lisp directory) 18;; Emacs 19.28 and earlier: "PREFIX/lib/emacs/site-lisp" 19;; Emacs 19.29 and later: "PREFIX/share/emacs/site-lisp" 20(defvar LISPDIR nil) 21 22;; This variable will be detected automatically using PREFIX. 23;; Emacs 19.31 and later: "PREFIX/share/emacs/VERSION/site-lisp" 24(defvar VERSION_SPECIFIC_LISPDIR nil) 25 26;; This variable will be detected automatically. 27;; XEmacs 21.0 and later: "/usr/local/lib/xemacs/xemacs-packages" 28(defvar PACKAGEDIR nil) 29 30;; Install APEL modules to "apel" subdirectory. 31(defvar APEL_PREFIX "apel") 32 33;; Install EMU modules to "emu" subdirectory if emacs supports some features. 34;; If your emacs does not have `normal-top-level-add-subdirs-to-load-path' 35;; but have `normal-top-level-add-to-load-path' and you want to use it in 36;; "subdirs.el", put the following line to "APEL-CFG". 37;; (setq EMU_PREFIX "emu") 38(defvar EMU_PREFIX "emu") 39 40;; The directories where APEL and EMU modules will be installed. 41;; These two variables will be generated from other variables above. 42(defvar APEL_DIR nil) ; LISPDIR/APEL_PREFIX 43(defvar EMU_DIR nil) ; VERSION_SPECIFIC_LISPDIR/EMU_PREFIX 44 45 46;;; Configure, Compile, and Install. 47 48(defun config-apel () 49 ;; Override everything you want. 50 (load-file "APEL-CFG") 51 ;; Override PREFIX, LISPDIR, and VERSION_SPECIFIC_LISPDIR with 52 ;; command-line options. 53 (let (prefix lisp-dir version-specific-lisp-dir) 54 (and (setq prefix 55 ;; Avoid using `pop'. 56 ;; (pop command-line-args-left) 57 (prog1 58 (car command-line-args-left) 59 (setq command-line-args-left 60 (cdr command-line-args-left)))) 61 (or (string-equal "NONE" prefix) 62 (setq PREFIX prefix))) 63 (and (setq lisp-dir 64 ;; Avoid using `pop'. 65 ;; (pop command-line-args-left) 66 (prog1 67 (car command-line-args-left) 68 (setq command-line-args-left 69 (cdr command-line-args-left)))) 70 (or (string-equal "NONE" lisp-dir) 71 (setq LISPDIR lisp-dir))) 72 (and (setq version-specific-lisp-dir 73 ;; Avoid using `pop'. 74 ;; (pop command-line-args-left) 75 (prog1 76 (car command-line-args-left) 77 (setq command-line-args-left 78 (cdr command-line-args-left)))) 79 (or (string-equal "NONE" version-specific-lisp-dir) 80 (setq VERSION_SPECIFIC_LISPDIR version-specific-lisp-dir)))) 81 ;; Load some APEL modules from this directory. 82 (defvar default-load-path load-path) 83 (setq load-path (cons (expand-file-name ".") load-path)) 84 (require 'poe) 85 (require 'path-util) 86 (require 'install) 87 88 ;; Import `apel-modules'. 89 (load-file "APEL-ELS") 90 ;; Import `emu-modules' and `emu-modules-to-compile'. 91 (load-file "EMU-ELS") 92 93 ;; Set PREFIX, LISPDIR, and VERSION_SPECIFIC_LISPDIR if not set yet. 94 (or PREFIX 95 (setq PREFIX install-prefix)) 96 (or LISPDIR 97 (setq LISPDIR (install-detect-elisp-directory PREFIX))) 98 (or VERSION_SPECIFIC_LISPDIR 99 (setq VERSION_SPECIFIC_LISPDIR 100 (install-detect-elisp-directory PREFIX nil 'version-specific))) 101 ;; The directories where APEL and EMU will be installed. 102 (or APEL_DIR 103 (setq APEL_DIR (expand-file-name APEL_PREFIX LISPDIR))) 104 (or EMU_DIR 105 (setq EMU_DIR (expand-file-name EMU_PREFIX VERSION_SPECIFIC_LISPDIR))) 106 (princ (format "\nLISPDIR=%s\n" LISPDIR)) 107 (princ (format "VERSION_SPECIFIC_LISPDIR=%s\n" VERSION_SPECIFIC_LISPDIR))) 108 109(defun compile-apel () 110 (config-apel) 111 ;; Compile emu modules first. 112 (compile-elisp-modules emu-modules-to-compile ".") 113 (compile-elisp-modules apel-modules ".")) 114 115(defun install-apel (&optional just-print) 116 (config-apel) 117 (or just-print 118 (setq just-print (install-just-print-p))) 119 (install-elisp-modules emu-modules "." EMU_DIR just-print) 120 (install-elisp-modules apel-modules "." APEL_DIR just-print)) 121 122;; For XEmacs package system. 123(defun config-apel-package () 124 ;; Override everything you want. 125 (load-file "APEL-CFG") 126 ;; Override PACKAGEDIR with command-line option. 127 (let (package-dir) 128 (and (setq package-dir 129 ;; Avoid using `pop'. 130 ;; (pop command-line-args-left) 131 (prog1 132 (car command-line-args-left) 133 (setq command-line-args-left 134 (cdr command-line-args-left)))) 135 (or (string= "NONE" package-dir) 136 (setq PACKAGEDIR package-dir)))) 137 ;; Load some APEL modules from this directory. 138 (defvar default-load-path load-path) 139 (setq load-path (cons (expand-file-name ".") load-path)) 140 (require 'poe) 141 (require 'path-util) 142 (require 'install) 143 144 ;; Import `apel-modules'. 145 (load-file "APEL-ELS") 146 ;; Import `emu-modules' and `emu-modules-to-compile'. 147 (load-file "EMU-ELS") 148 149 ;; Set PACKAGEDIR if not set yet. 150 (or PACKAGEDIR 151 (setq PACKAGEDIR (install-get-default-package-directory))) 152 (if PACKAGEDIR 153 (princ (format "\nPACKAGEDIR=%s\n" PACKAGEDIR)) 154 (error "XEmacs package system is not available"))) 155 156(defun compile-apel-package () 157 (config-apel-package) 158 ;; Compile emu modules first. 159 (compile-elisp-modules emu-modules-to-compile ".") 160 (compile-elisp-modules apel-modules ".")) 161 162(defun install-apel-package () 163 (config-apel-package) 164 (let ((just-print (install-just-print-p)) 165 (dir (expand-file-name APEL_PREFIX 166 (expand-file-name "lisp" PACKAGEDIR)))) 167 (install-elisp-modules emu-modules "." dir just-print) 168 (install-elisp-modules apel-modules "." dir just-print) 169 (install-update-package-files "apel" dir just-print))) 170 171(defun what-where-apel () 172 (install-apel 'just-print) 173 ;; (config-apel) 174;;; (princ (format " 175;;; The files that belong to the EMU modules: 176;;; %s 177;;; -> %s 178 179;;; The files that belong to the APEL modules: 180;;; %s 181;;; -> %s 182 183;;; Do `make elc', `make install', `make package', or `make install-package'. 184;;; " 185;;; (mapconcat (function symbol-name) emu-modules ", ") 186;;; EMU_DIR 187;;; (mapconcat (function symbol-name) apel-modules ", ") 188;;; APEL_DIR)) 189 ) 190 191;;; APEL-MK ends here 192