+
+;; EMU-ELS: list of EMU modules to install
+
+;;; Code:
+
+(setq emu-modules (cons 'emu
+ (if (if (featurep 'xemacs)
+ ;; running-xemacs-19_14-or-later
+ (or (>= emacs-major-version 20)
+ (and (= emacs-major-version 19)
+ (>= emacs-minor-version 14)))
+ ;; running-emacs-19_29-or-later
+ (or (>= emacs-major-version 20)
+ (and (= emacs-major-version 19)
+ (>= emacs-minor-version 29))))
+ '(richtext)
+ '(tinyrich))))
+
+(setq emu-modules-to-compile nil)
+
+(setq emu-modules-not-to-compile nil)
+
+(setq pcustom-modules (if (and (module-installed-p 'custom)
+ ;; new custom requires widget.
+ (module-installed-p 'widget))
+ '(pcustom)
+ ;; XXX: order is significant in current make process.
+ '(tinycustom pcustom)))
+
+(let ((poe-modules '(poe))
+ (pces-modules '(pces))
+ (poem-modules '(poem))
+ (mcs-modules '(mcharset))
+ (invisible-modules '(invisible))
+ (pccl-modules '(pccl)))
+ (cond ((featurep 'xemacs)
+ (setq poe-modules (cons 'poe-xemacs poe-modules)
+ invisible-modules (cons 'inv-xemacs invisible-modules))
+ )
+ ((>= emacs-major-version 19)
+ (setq invisible-modules (cons 'inv-19 invisible-modules))
+ (if (and (= emacs-major-version 19)
+ (<= emacs-minor-version 28))
+ (setq poe-modules (cons 'localhook poe-modules))
+ )
+ )
+ (t
+ (setq poe-modules (cons 'env (cons 'poe-18 (cons 'localhook poe-modules)))
+ invisible-modules (cons 'inv-18 invisible-modules))
+ ))
+ (cond ((featurep 'xemacs)
+ (if (featurep 'file-coding)
+ (setq pces-modules (cons 'pces-xfc (cons 'pces-20 pces-modules)))
+ )
+ (if (featurep 'mule)
+ (setq pces-modules (cons 'pces-xm pces-modules))
+ (setq pces-modules (cons 'pces-raw pces-modules))
+ ))
+ ((featurep 'mule)
+ (cond ((>= emacs-major-version 20)
+ (setq pces-modules
+ (cons 'pces-e20 (cons 'pces-20 pces-modules)))
+ (or (and (fboundp 'set-buffer-multibyte)
+ (subrp (symbol-function 'set-buffer-multibyte)))
+ (setq pces-modules (cons 'pces-e20_2 pces-modules)))
+ )
+ (t
+ ;; for MULE 1.* and 2.*
+ (setq pces-modules (cons 'pces-om pces-modules))
+ )))
+ ((boundp 'NEMACS)
+ ;; for Nemacs and Nepoch
+ (setq pces-modules (cons 'pces-nemacs pces-modules))
+ )
+ (t
+ (setq pces-modules (cons 'pces-raw pces-modules))
+ ))
+ (cond ((featurep 'mule)
+ (cond ((featurep 'xemacs)
+ (setq poem-modules (cons 'poem-xm poem-modules)
+ mcs-modules (append '(mcs-xmu mcs-xm mcs-20)
+ mcs-modules))
+ (if (featurep 'utf-2000)
+ (setq emu-modules-not-to-compile
+ (cons 'mcs-xmu emu-modules-not-to-compile)))
+ (if (>= emacs-major-version 21)
+ (setq pccl-modules (cons 'pccl-20 pccl-modules))
+ ))
+ ((>= emacs-major-version 20)
+ (setq poem-modules (cons 'poem-e20 poem-modules)
+ mcs-modules (cons 'mcs-e20 (cons 'mcs-20 mcs-modules))
+ pccl-modules (cons 'pccl-20 pccl-modules))
+ (setq poem-modules
+ (cons
+ (if (and
+ (fboundp 'set-buffer-multibyte)
+ (subrp (symbol-function 'set-buffer-multibyte)))
+ 'poem-e20_3
+ 'poem-e20_2)
+ poem-modules))
+ )
+ (t
+ (setq poem-modules (cons 'poem-om poem-modules)
+ mcs-modules (cons 'mcs-om mcs-modules)
+ pccl-modules (cons 'pccl-om pccl-modules)
+ emu-modules (cons 'emu-mule emu-modules))
+ ))
+ )
+ ((boundp 'NEMACS)
+ (setq poem-modules (cons 'poem-nemacs poem-modules)
+ mcs-modules (cons 'mcs-nemacs mcs-modules))
+ )
+ (t
+ (setq poem-modules (cons 'poem-ltn1 poem-modules)
+ mcs-modules (cons 'mcs-ltn1 mcs-modules))
+ ))
+
+ (setq emu-modules (append poe-modules
+ pces-modules poem-modules
+ mcs-modules invisible-modules
+ pccl-modules pcustom-modules
+ emu-modules))
+
+ (setq emu-modules (cons 'broken emu-modules))
+ (setq emu-modules (cons 'static emu-modules))
+ )
+
+(let ((modules emu-modules)
+ module)
+ (while modules
+ (setq module (car modules)
+ modules (cdr modules))
+ (if (memq module emu-modules-not-to-compile)
+ nil
+ (setq emu-modules-to-compile (nconc emu-modules-to-compile
+ (list module))))))