1 ;;; EMU-ELS --- list of EMU modules to install. -*-Emacs-Lisp-*-
5 ;; APEL-MK imports `emu-modules' and `emu-modules-to-compile' from here.
9 (defvar emu-modules-not-to-compile nil)
10 (defvar emu-modules-to-compile nil)
12 ;; We use compile-time evaluation heavily. So, order of compilation is
13 ;; very significant. For example, loading some module before compiling
14 ;; it will cause "compile-time" evaluation many times.
17 ;; modules are sorted by compilation order.
20 ;; product information.
23 ;; poe modules; poe modules depend on static.
29 ;; Emacs 19.29 and earlier. (yes, includes Emacs 19.29.)
30 ((and (= emacs-major-version 19)
31 (<= emacs-minor-version 29))
33 ;; Emacs 19.30 and later.
34 ((>= emacs-major-version 19)
38 '(localhook env poe-18 poe)))
40 ;; pcustom modules; pcustom modules depend on poe.
41 (if (and (module-installed-p 'custom)
42 ;; new custom requires widget.
43 (module-installed-p 'widget))
44 ;; if both 'custom and 'widget are found, we have new custom.
46 ;; pcustom does (require 'custom) at compile-time, and tinycustom
47 ;; need to test existence of some custom macros at compile-time!
48 ;; so, we must compile tinycustom first.
49 '(tinycustom pcustom))
51 ;; pccl modules; pccl modules depend on broken.
56 ((and (featurep 'xemacs)
57 (>= emacs-major-version 21))
60 ((>= emacs-major-version 20)
66 ;; pces modules; pces modules depend on poe.
72 ;; pces-xfc depends pces-20, so we compile pces-20 first.
73 '(pces-20 pces-xm pces-xfc pces))
74 ((featurep 'file-coding)
75 ;; XEmacs w/ file-coding.
76 ;; pces-xfc depends pces-20, so we compile pces-20 first.
77 '(pces-20 pces-xfc pces))
82 ;; Emacs 20.3 and later.
83 ((and (fboundp 'set-buffer-multibyte)
84 (subrp (symbol-function 'set-buffer-multibyte)))
85 ;; pces-e20 depends pces-20, so we compile pces-20 first.
86 '(pces-20 pces-e20 pces))
87 ;; Emacs 20.1 and 20.2.
88 ((= emacs-major-version 20)
89 ;; pces-e20 depends pces-20, so we compile pces-20 first.
90 '(pces-20 pces-e20_2 pces-e20 pces))
100 ;; poem modules; poem modules depend on pces.
107 ((>= emacs-major-version 20)
108 (if (and (fboundp 'set-buffer-multibyte)
109 (subrp (symbol-function 'set-buffer-multibyte)))
110 ;; Emacs 20.3 and later.
111 '(poem-e20_3 poem-e20 poem)
112 ;; Emacs 20.1 and 20.2.
113 '(poem-e20_2 poem-e20 poem)))
122 ;; mcharset modules; mcharset modules depend on poem and pcustom.
128 (if (featurep 'utf-2000)
129 ;; XEmacs w/ UTF-2000.
130 (setq emu-modules-not-to-compile
131 (cons 'mcs-xmu emu-modules-not-to-compile)))
132 ;; mcs-xm depends mcs-20, so we compile mcs-20 first.
133 '(mcs-20 mcs-xmu mcs-xm mcharset))
134 ((>= emacs-major-version 20)
135 ;; Emacs 20 and later.
136 ;; mcs-e20 depends mcs-20, so we compile mcs-20 first.
137 '(mcs-20 mcs-e20 mcharset))
140 '(mcs-om mcharset))))
143 '(mcs-nemacs mcharset))
145 '(mcs-ltn1 mcharset)))
147 ;; time-stamp.el; First appeared in Emacs 19.16.
148 (if (and (not (featurep 'xemacs))
149 (or (< emacs-major-version 19)
150 (and (= emacs-major-version 19)
151 (< emacs-minor-version 16))))
156 ;; timezone.el; Some versions have Y2K problem.
158 (let ((load-path (delete (expand-file-name ".")
159 (copy-sequence load-path))))
160 ;; v18 does not have timezone.el.
162 ;; Is timezone.el APEL version?
163 (if (product-find 'timezone)
164 (error "timezone.el is APEL version. Install newer version."))
166 (or (string= (aref (timezone-parse-date "Sat, 1 Jan 00 00:00:00 GMT")
169 (error "timezone.el has Y2K problem. Install fixed version."))
175 ;; invisible modules; provided for backward compatibility with old "tm".
179 '(inv-xemacs invisible))
180 ((>= emacs-major-version 19)
181 ;; Emacs 19 and later.
185 '(inv-18 invisible)))
187 ;; emu modules; provided for backward compatibility with old "tm".
188 (if (and (featurep 'mule)
189 (< emacs-major-version 20))
194 ;; emu submodules; text/richtext and text/enriched support.
195 (if (if (featurep 'xemacs)
196 (or (>= emacs-major-version 20)
197 (and (= emacs-major-version 19)
198 (>= emacs-minor-version 14)))
199 (or (>= emacs-major-version 20)
200 (and (= emacs-major-version 19)
201 (>= emacs-minor-version 29))))
202 ;; XEmacs 19.14 and later, or Emacs 19.29 and later.
206 ;; mule-caesar.el; part of apel-modules, but it is version-dependent.
209 ;; Generate `emu-modules-to-compile' from `emu-modules-not-to-compile'
210 ;; and `emu-modules'.
211 (let ((modules emu-modules-not-to-compile))
212 (setq emu-modules-to-compile (copy-sequence emu-modules))
214 (setq emu-modules-to-compile (delq (car modules) emu-modules-to-compile)
215 modules (cdr modules))))
217 ;;; EMU-ELS ends here