* wl-message.el (wl-message-buffer-prefetch-debug): Default value
[elisp/wanderlust.git] / WL-MK
diff --git a/WL-MK b/WL-MK
index 777e5e3..008697e 100644 (file)
--- a/WL-MK
+++ b/WL-MK
@@ -20,7 +20,7 @@
 (defvar COMPRESS-SUFFIX-LIST '("" ".gz" ".Z" ".bz2"))
 
 (defvar wl-install-utils nil
-  "if Non-nil, install `wl-utils-modules'.")
+  "If Non-nil, install `wl-utils-modules'.")
 
 ;;; INFO
 (defconst wl-ja-info "wl-ja.info")
 (defconst wl-en-info "wl.info")
 (defconst wl-en-texi "wl.texi")
 
-(defvar wl-info-lang "ja"
+(defvar wl-info-lang '("ja" "en")
   "The language of info file (\"ja\" or \"en\").")
 
-;; for Nemacs (dirty!)
-(if (not (fboundp 'file-executable-p))
-    (fset 'file-executable-p 'file-exists-p))
-
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 \f
 (require 'cl)
@@ -47,7 +43,7 @@
             ;; ignore broken module
             (not (featurep 'tinycustom)))
   (when (and (boundp 'emacs-major-version)
-            (eq emacs-major-version 19)
+            (= emacs-major-version 19)
             (>= emacs-minor-version 29))
     (message "%s" "
   Warning: You don't seem to have \"new custom\" package installed.
@@ -60,6 +56,7 @@
       (` (defvar (, symbol) (, value) (, doc))))))
 
 (load "bytecomp" nil t)
+
 (unless (fboundp 'byte-compile-file-form-custom-declare-variable)
   ;; Bind defcustom'ed variables.
   (put 'custom-declare-variable 'byte-hunk-handler
              (cons (nth 1 (nth 1 form)) byte-compile-bound-variables)))
     form))
 
+(condition-case nil
+    (char-after)
+  (wrong-number-of-arguments
+   ;; Optimize byte code for `char-after'.
+   (put 'char-after 'byte-optimizer 'byte-optimize-char-after)
+   (defun byte-optimize-char-after (form)
+     (if (null (cdr form))
+        '(char-after (point))
+       form))))
+
 (setq byte-compile-warnings '(free-vars unresolved callargs redefine))
 
 ;; v18, v19
-(if (or (boundp 'MULE)
-       (fboundp 'nemacs-version))
+(if (boundp 'MULE)
     (setq max-lisp-eval-depth 400))
 
 ;; FIXME: it is currently needed to byte-compile with Emacs 21.
@@ -90,7 +96,6 @@
     (setq load-path (cons (expand-file-name ".") load-path))
     (setq load-path (cons (expand-file-name WLDIR)
                          (cons (expand-file-name ELMODIR) load-path)))
-    (setq wl-icon-dir (expand-file-name ICONDIR))
     ;; load custom file if exists.  `WL-CFG.el' override for committer.
     (load "./WL-CFG" t nil nil)
     ;; load-path
        (setq load-path (cons (expand-file-name UTILSDIR) load-path)))
     (require 'install)
     (load "./WL-ELS" nil nil t)
-    (condition-case ()
-       (require 'mime-setup)
-      (error (error "No MIME module was detected. Please install SEMI or tm.")))
+    ;; product.el version check
+    (require 'product)
+    (if (not (fboundp 'product-version-as-string))
+       (error "Please install new APEL.  See INSTALL or INSTALL.ja"))
     ;; smtp.el version check.
     (require 'smtp)
     (if (not (fboundp 'smtp-send-buffer))
-       (error "Please install FLIM 1.14.0 or later."))
-    (princ (concat "\nMIME module is " (if wl-use-semi "SEMI" "tm-8") ".\n"))))
+       (error "Please install new FLIM.  See INSTALL or INSTALL.ja"))
+    (condition-case ()
+       (require 'mime-setup)
+      (error (error "Cannot load `mime-setup'.  Please install SEMI")))))
 
 (defun config-wl-pixmap-dir (&optional packagedir)
   "Examine pixmap directory where icon files should go."
       (if (string= pixmap-dir "NONE")
          (if packagedir
              (expand-file-name "etc/wl/" packagedir)
-           (if (or (featurep 'xemacs)
-                   (and (boundp 'emacs-major-version)
-                        (>= emacs-major-version 21)))
-               (expand-file-name "wl/icons/" data-directory)))
+           (expand-file-name "wl/icons/" data-directory))
        pixmap-dir)))
   (if PIXMAPDIR
       (princ (format "PIXMAPDIR is %s\n" PIXMAPDIR)))
   (config-wl-pixmap-dir)
   (princ "\n"))
 
+(defun update-version ()
+  "Update version number of documents."
+  (config-wl-package)
+  (load-file "elmo/elmo-version.el")
+  (let ((version (mapconcat
+                 'number-to-string
+                 (product-version (product-find 'elmo-version))
+                 ".")))
+    (princ (concat "Update version number to " version "\n"))
+    ;; generate version.tex
+    (with-temp-buffer
+      (insert "\\def\\versionnumber{" version "}\n")
+      (write-region (point-min) (point-max) (expand-file-name
+                                            "version.tex" "doc")))
+    ;; generate version.texi
+    (with-temp-buffer
+      (insert "@set VERSION " version "\n")
+      (write-region (point-min) (point-max) (expand-file-name
+                                            "version.texi" "doc")))))
+
+(defun test-wl ()
+  "Run test suite for developer."
+  (config-wl-package)
+  (require 'lunit)
+  (let ((files (directory-files "tests" t "^test-.*\\.el$"))
+       (suite (lunit-make-test-suite)))
+    (while files
+      (if (file-regular-p (car files))
+         (progn
+           (load-file (car files))
+           (lunit-test-suite-add-test
+            suite (lunit-make-test-suite-from-class
+                   (intern (file-name-sans-extension
+                            (file-name-nondirectory (car files))))))))
+      (setq files (cdr files)))
+    (lunit suite)))
+
+(defun check-wl ()
+  "Check user environment.  Not for developer."
+  (config-wl-package)
+  (require 'lunit)
+  (let ((files (directory-files "tests" t "^check-.*\\.el$"))
+       (suite (lunit-make-test-suite)))
+    (while files
+      (if (file-regular-p (car files))
+         (progn
+           (load-file (car files))
+           (lunit-test-suite-add-test
+            suite (lunit-make-test-suite-from-class
+                   (intern (file-name-sans-extension
+                            (file-name-nondirectory (car files))))))))
+      (setq files (cdr files)))
+    (lunit suite)))
 
 (defun wl-scan-source (path)
   (let (ret)
 
 
 (defun compile-wl-package ()
-  ;; For nemacs byte compiler's strange behavior(?).
   (config-wl-package)
-  (if (fboundp 'nemacs-version)
-      (load (expand-file-name "wl.el" WLDIR)))
   (mapcar
    '(lambda (x)
       (compile-elisp-modules (cdr x) (car x)))
   (if (not (file-directory-p PIXMAPDIR))
       (make-directory PIXMAPDIR t))
   (let* ((case-fold-search t)
-        (icons (directory-files ICONDIR t "\\.x[bp]m$"))
+        (icons (directory-files ICONDIR t
+                                (cond ((featurep 'xemacs)
+                                       "\\.x[bp]m$")
+                                      ((and (boundp 'emacs-major-version)
+                                            (>= emacs-major-version 21))
+                                       "\\.img$\\|\\.x[bp]m$")
+                                      ((featurep 'mule)
+                                       "\\.img$\\|\\.xbm$"))))
         icon dest)
     (while icons
       (setq icon (car icons)
 
 (defun config-wl-package-xmas ()
   (if (not (featurep 'xemacs))
-      (error "This directive is only for XEmacs."))
+      (error "This directive is only for XEmacs"))
   (config-wl-package-subr)
   ;; PACKAGEDIR check.
   (let (package-dir)
 
 (defun wl-detect-info-directory ()
   (config-wl-package-subr)
-  (if (fboundp 'nemacs-version)
-      (error "Cannot format info on Nemacs. Please use another formatter."))
   ;; INFODIR check.
   (require 'info)
   (if (fboundp 'info-initialize)