source: projects/emacsen-common/trunk/apel-sample/usr/share/emacs/site-lisp/apel/APEL-MK @ 7238

Revision 7238, 6.5 KB checked in by daisuke, 12 years ago (diff)

import emacsen-common

Line 
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
39  (if (or (featurep 'xemacs)
40          (fboundp 'normal-top-level-add-subdirs-to-load-path))
41      ;; Make "emu" subdirectory.
42      "emu"
43    ;; Don't make "emu" subdirectory.
44    ""))
45
46;; The directories where APEL and EMU modules will be installed.
47;; These two variables will be generated from other variables above.
48(defvar APEL_DIR nil)                   ; LISPDIR/APEL_PREFIX
49(defvar EMU_DIR nil)                    ; VERSION_SPECIFIC_LISPDIR/EMU_PREFIX
50
51
52;;; Configure, Compile, and Install.
53
54(defun config-apel ()
55  ;; Override everything you want.
56  (load-file "APEL-CFG")
57  ;; Override PREFIX, LISPDIR, and VERSION_SPECIFIC_LISPDIR with
58  ;; command-line options.
59  (let (prefix lisp-dir version-specific-lisp-dir)
60    (and (setq prefix
61               ;; Avoid using `pop'.
62               ;; (pop command-line-args-left)
63               (prog1
64                   (car command-line-args-left)
65                 (setq command-line-args-left
66                       (cdr command-line-args-left))))
67         (or (string-equal "NONE" prefix)
68             (setq PREFIX prefix)))
69    (and (setq lisp-dir
70               ;; Avoid using `pop'.
71               ;; (pop command-line-args-left)
72               (prog1
73                   (car command-line-args-left)
74                 (setq command-line-args-left
75                       (cdr command-line-args-left))))
76         (or (string-equal "NONE" lisp-dir)
77             (setq LISPDIR lisp-dir)))
78    (and (setq version-specific-lisp-dir
79               ;; Avoid using `pop'.
80               ;; (pop command-line-args-left)
81               (prog1
82                   (car command-line-args-left)
83                 (setq command-line-args-left
84                       (cdr command-line-args-left))))
85         (or (string-equal "NONE" version-specific-lisp-dir)
86             (setq VERSION_SPECIFIC_LISPDIR version-specific-lisp-dir))))
87  ;; Load some APEL modules from this directory.
88  (defvar default-load-path load-path)
89  (setq load-path (cons (expand-file-name ".") load-path))
90  (require 'poe)
91  (require 'path-util)
92  (require 'install)
93
94  ;; Import `apel-modules'.
95  (load-file "APEL-ELS")
96  ;; Import `emu-modules' and `emu-modules-to-compile'.
97  (load-file "EMU-ELS")
98
99  ;; Set PREFIX, LISPDIR, and VERSION_SPECIFIC_LISPDIR if not set yet.
100  (or PREFIX
101      (setq PREFIX install-prefix))
102  (or LISPDIR
103      (setq LISPDIR (install-detect-elisp-directory PREFIX)))
104  (or VERSION_SPECIFIC_LISPDIR
105      (setq VERSION_SPECIFIC_LISPDIR
106            (install-detect-elisp-directory PREFIX nil 'version-specific)))
107  ;; The directories where APEL and EMU will be installed.
108  (or APEL_DIR
109      (setq APEL_DIR (expand-file-name APEL_PREFIX LISPDIR)))
110  (or EMU_DIR
111      (setq EMU_DIR (expand-file-name EMU_PREFIX VERSION_SPECIFIC_LISPDIR)))
112  (princ (format "\nLISPDIR=%s\n" LISPDIR))
113  (princ (format "VERSION_SPECIFIC_LISPDIR=%s\n" VERSION_SPECIFIC_LISPDIR)))
114
115(defun compile-apel ()
116  (config-apel)
117  ;; Compile emu modules first.
118  (compile-elisp-modules emu-modules-to-compile ".")
119  (compile-elisp-modules apel-modules           "."))
120
121(defun install-apel (&optional just-print)
122  (config-apel)
123  (or just-print
124      (setq just-print (install-just-print-p)))
125  (install-elisp-modules emu-modules    "." EMU_DIR  just-print)
126  (install-elisp-modules apel-modules   "." APEL_DIR just-print))
127
128;; For XEmacs package system.
129(defun config-apel-package ()
130  ;; Override everything you want.
131  (load-file "APEL-CFG")
132  ;; Override PACKAGEDIR with command-line option.
133  (let (package-dir)
134    (and (setq package-dir
135               ;; Avoid using `pop'.
136               ;; (pop command-line-args-left)
137               (prog1
138                   (car command-line-args-left)
139                 (setq command-line-args-left
140                       (cdr command-line-args-left))))
141         (or (string= "NONE" package-dir)
142             (setq PACKAGEDIR package-dir))))
143  ;; Load some APEL modules from this directory.
144  (defvar default-load-path load-path)
145  (setq load-path (cons (expand-file-name ".") load-path))
146  (require 'poe)
147  (require 'path-util)
148  (require 'install)
149
150  ;; Import `apel-modules'.
151  (load-file "APEL-ELS")
152  ;; Import `emu-modules' and `emu-modules-to-compile'.
153  (load-file "EMU-ELS")
154
155  ;; Set PACKAGEDIR if not set yet.
156  (or PACKAGEDIR
157      (setq PACKAGEDIR
158            (if (boundp 'early-packages)
159                (let ((dirs (append (if early-package-load-path
160                                        early-packages)
161                                    (if late-package-load-path
162                                        late-packages)
163                                    (if last-package-load-path
164                                        last-packages)))
165                      dir)
166                  (while (not (file-exists-p (setq dir (car dirs))))
167                    (setq dirs (cdr dirs)))
168                  dir))))
169  (if PACKAGEDIR
170      (princ (format "\nPACKAGEDIR=%s\n" PACKAGEDIR))
171    (error "XEmacs package system is not available")))
172
173(defun compile-apel-package ()
174  (config-apel-package)
175  ;; Compile emu modules first.
176  (compile-elisp-modules emu-modules-to-compile ".")
177  (compile-elisp-modules apel-modules           "."))
178
179(defun install-apel-package ()
180  (config-apel-package)
181  (let ((just-print (install-just-print-p))
182        (dir (expand-file-name APEL_PREFIX
183                               (expand-file-name "lisp" PACKAGEDIR))))
184    (install-elisp-modules emu-modules  "." dir just-print)
185    (install-elisp-modules apel-modules "." dir just-print)
186    (install-update-package-files "apel" dir just-print)))
187
188(defun what-where-apel ()
189  (install-apel 'just-print)
190  ;; (config-apel)
191;;;   (princ (format "
192;;; The files that belong to the EMU modules:
193;;;   %s
194;;;   -> %s
195
196;;; The files that belong to the APEL modules:
197;;;   %s
198;;;   -> %s
199
200;;; Do `make elc', `make install', `make package', or `make install-package'.
201;;; "
202;;;              (mapconcat (function symbol-name) emu-modules ", ")
203;;;              EMU_DIR
204;;;              (mapconcat (function symbol-name) apel-modules ", ")
205;;;              APEL_DIR))
206  )
207
208;;; APEL-MK ends here
Note: See TracBrowser for help on using the repository browser.