-;;; EMU-ELS --- list of EMU modules to install -*-Emacs-Lisp-*-
-
-;;; Commentary:
-
-;; APEL-MK imports `emu-modules' and `emu-modules-to-compile' from here.
-
-;;; Code:
-
-(defvar emu-modules-not-to-compile nil)
-(defvar emu-modules-to-compile nil)
-
-;; We use compile-time evaluation heavily. So, order of compilation is
-;; very significant. For example, loading some module before compiling
-;; it will cause "compile-time" evaluation many times.
-(defvar emu-modules
- (nconc
- ;; modules are sorted by compilation order.
- '(static broken)
- ;; coming soon.
- ;; '(product)
-
- ;; poe modules; poe modules depend on static.
- (cond
- ;; XEmacs.
- ((featurep 'xemacs)
- '(poe-xemacs poe))
- ;; Emacs 19.29 and earlier. (yes, includes Emacs 19.29.)
- ((and (= emacs-major-version 19)
- (<= emacs-minor-version 29))
- '(localhook poe))
- ;; Emacs 19.30 and later.
- ((>= emacs-major-version 19)
- '(poe))
- (t
- ;; v18.
- '(localhook env poe-18 poe)))
-
- ;; pcustom modules; pcustom modules depend on poe.
- (if (and (module-installed-p 'custom)
- ;; new custom requires widget.
- (module-installed-p 'widget))
- ;; if both 'custom and 'widget are found, we have new custom.
- '(pcustom)
- ;; pcustom does (require 'custom) at compile-time, and tinycustom
- ;; need to test existence of some custom macros at compile-time!
- ;; so, we must compile tinycustom first.
- '(tinycustom pcustom))
-
- ;; pccl modules; pccl modules depend on broken.
- (cond
- ((featurep 'mule)
- (cond
- ;; XEmacs 21 w/ mule.
- ((and (featurep 'xemacs)
- (>= emacs-major-version 21))
- '(pccl-20 pccl))
- ;; Emacs 20.
- ((>= emacs-major-version 20)
- '(pccl-20 pccl))
- (t
- ;; Mule 1.* and 2.*.
- '(pccl-om pccl)))))
-
- ;; pces modules; pces modules depend on poe.
- (cond
- ((featurep 'xemacs)
- (cond
- ((featurep 'mule)
- ;; XEmacs w/ mule.
- ;; pces-xfc depends pces-20, so we compile pces-20 first.
- '(pces-20 pces-xm pces-xfc pces))
- ((featurep 'file-coding)
- ;; XEmacs w/ file-coding.
- ;; pces-xfc depends pces-20, so we compile pces-20 first.
- '(pces-20 pces-xfc pces))
- (t
- '(pces-raw pces))))
- ((featurep 'mule)
- (cond
- ;; Emacs 20.3 and later.
- ((and (fboundp 'set-buffer-multibyte)
- (subrp (symbol-function 'set-buffer-multibyte)))
- ;; pces-e20 depends pces-20, so we compile pces-20 first.
- '(pces-20 pces-e20 pces))
- ;; Emacs 20.1 and 20.2.
- ((= emacs-major-version 20)
- ;; pces-e20 depends pces-20, so we compile pces-20 first.
- '(pces-20 pces-e20_2 pces-e20 pces))
- (t
- ;; Mule 1.* and 2.*.
- '(pces-om pces))))
- ((boundp 'NEMACS)
- ;; Nemacs.
- '(pces-nemacs pces))
- (t
- '(pces-raw pces)))
-
- ;; poem modules; poem modules depend on pces.
- (cond
- ((featurep 'mule)
- (cond
- ((featurep 'xemacs)
- ;; XEmacs w/ mule.
- '(poem-xm poem))
- ((>= emacs-major-version 20)
- (if (and (fboundp 'set-buffer-multibyte)
- (subrp (symbol-function 'set-buffer-multibyte)))
- ;; Emacs 20.3 and later.
- '(poem-e20_3 poem-e20 poem)
- ;; Emacs 20.1 and 20.2.
- '(poem-e20_2 poem-e20 poem)))
- (t
- ;; Mule 1.* and 2.*.
- '(poem-om poem))))
- ((boundp 'NEMACS)
- '(poem-nemacs poem))
- (t
- '(poem-ltn1 poem)))
-
- ;; mcharset modules; mcharset modules depend on poem and pcustom.
- (cond
- ((featurep 'mule)
- (cond
- ((featurep 'xemacs)
- ;; XEmacs w/ mule.
- (if (featurep 'utf-2000)
- ;; XEmacs w/ UTF-2000.
- (setq emu-modules-not-to-compile
- (cons 'mcs-xmu emu-modules-not-to-compile)))
- ;; mcs-xm depends mcs-20, so we compile mcs-20 first.
- '(mcs-20 mcs-xmu mcs-xm mcharset))
- ((>= emacs-major-version 20)
- ;; Emacs 20 and later.
- ;; mcs-e20 depends mcs-20, so we compile mcs-20 first.
- '(mcs-20 mcs-e20 mcharset))
- (t
- ;; Mule 1.* and 2.*.
- '(mcs-om mcharset))))
- ((boundp 'NEMACS)
- ;; Nemacs.
- '(mcs-nemacs mcharset))
- (t
- '(mcs-ltn1 mcharset)))
-
- ;; mule-caesar.el; part of apel-modules, but it is version-dependent.
- '(mule-caesar)
-
- ;; time-stamp.el; First appeared in Emacs 19.16.
- ;; XXX: is this intended to include XEmacs ? FIXME!
- (if (or (< emacs-major-version 19)
- (and (= emacs-major-version 19)
- (< emacs-minor-version 16)))
- '(time-stamp))
-
- ;; timezone.el; Some versions have Y2K problem.
- ;; coming soon.
-
- ;; invisible modules; provided for backward compatibility with old "tm".
- (cond
- ((featurep 'xemacs)
- ;; XEmacs.
- '(inv-xemacs invisible))
- ((>= emacs-major-version 19)
- ;; Emacs 19 and later.
- '(inv-19 invisible))
- (t
- ;; v18.
- '(inv-18 invisible)))
-
- ;; emu modules; provided for backward compatibility with old "tm".
- (if (and (featurep 'mule)
- (< emacs-major-version 20))
- ;; Mule 1.* and 2.*.
- '(emu-mule emu)
- '(emu))
-
- ;; emu submodules; text/richtext and text/enriched support.
- (if (if (featurep 'xemacs)
- (or (>= emacs-major-version 20)
- (and (= emacs-major-version 19)
- (>= emacs-minor-version 14)))
- (or (>= emacs-major-version 20)
- (and (= emacs-major-version 19)
- (>= emacs-minor-version 29))))
- ;; XEmacs 19.14 and later, or Emacs 19.29 and later.
- '(richtext)
- '(tinyrich))))
-
-;; Generate `emu-modules-to-compile' from `emu-modules-not-to-compile'
-;; and `emu-modules'.
-(let ((modules emu-modules-not-to-compile))
- (setq emu-modules-to-compile (copy-sequence emu-modules))
- (while modules
- (setq emu-modules-to-compile (delq (car modules) emu-modules-to-compile)
- modules (cdr modules))))
-
-;;; EMU-ELS ends here