* COMPILE (riece-compile-modules): Print summary.
[riece] / lisp / COMPILE
index be964cf..05d2262 100644 (file)
@@ -7,9 +7,11 @@
                'riece-emacs)
              '(riece-globals
                riece-options
+               riece-debug
                riece-version
                riece-coding
                riece-complete
+               riece-addon
 
                riece-mode
                ;; riece-identity -+-> riece-channel
@@ -41,6 +43,7 @@
                riece-500
 
                riece-commands
+               riece-irc
                riece
 
                ;; add-ons
@@ -54,6 +57,7 @@
                riece-doctor
                riece-alias
                riece-skk-kakutei
+               riece-foolproof
                riece-guess
                riece-history
                riece-button
                riece-icon
                riece-async
                riece-lsdb
-               riece-xface))))
+               riece-xface
+               riece-ctlseq
+               riece-ignore
+               riece-hangman
+               riece-biff
+               riece-kakasi
+               riece-yank
+               riece-toolbar
+               riece-eval
+               riece-google
+               riece-keepalive))))
+
+(defvar riece-icons
+  '(riece-command-quit
+    riece-command-join
+    riece-command-part
+    riece-command-previous-channel
+    riece-command-next-channel
+    riece-command-change-layout
+    riece-submit-bug-report))
 
 (defun riece-compile-modules (modules)
-  (let ((load-path (cons nil load-path)))
+  (let ((load-path (cons nil load-path))
+       error-modules)
     (while modules
       (let ((source (expand-file-name
                     (concat (symbol-name (car modules)) ".el"))))
        (if (file-newer-than-file-p source (concat source "c"))
            (condition-case error
                (byte-compile-file source)
-             (error))))
-      (setq modules (cdr modules)))))
+             (error
+              (setq error-modules (cons (car modules) error-modules))))))
+      (setq modules (cdr modules)))
+    (if error-modules
+       (princ (concat "\n\
+  WARNING: ---------------------------------------------------------
+  WARNING: Couldn't compile following modules:
+  WARNING: 
+  WARNING:   " (mapconcat #'symbol-name error-modules ", ") "\n\
+  WARNING: 
+  WARNING: You should probably stop here, try \"make distclean\" to clear
+  WARNING: the last build, and then reconfigure.
+  WARNING: ---------------------------------------------------------\n\n")))))
 
 (defun riece-install-modules (modules dest just-print)
   (unless (or just-print (file-exists-p dest))
                         name)))))
     (setq modules (cdr modules))))
 
+(defun riece-install-icons (icons dest just-print)
+  (unless (or just-print (file-exists-p dest))
+    (make-directory dest t))
+  (while icons
+    (let ((name (symbol-name (car icons))))
+      (when (file-exists-p (expand-file-name (concat name ".xpm")))
+       (princ (format "%s.xpm -> %s\n" name dest))
+       (unless just-print
+         (copy-file (expand-file-name (concat name ".xpm"))
+                    (expand-file-name (concat name ".xpm") dest)
+                    t t))))
+    (setq icons (cdr icons))))
+
 (defun riece-install-just-print-p ()
   (let ((flag (getenv "MAKEFLAGS"))
        case-fold-search)
   (riece-install-modules
    riece-modules
    (expand-file-name "riece" (car command-line-args-left))
+   (riece-install-just-print-p))
+  (riece-install-icons
+   riece-icons
+   (expand-file-name "riece" (car command-line-args-left))
    (riece-install-just-print-p)))
 
 (defun riece-compile-package ()
   (riece-install-modules
    (append riece-modules
           '(auto-autoloads custom-load))
+   (expand-file-name "riece"
+                    (expand-file-name "lisp" (car command-line-args-left)))
+   (riece-install-just-print-p))
+  (riece-install-icons
+   riece-icons
    (expand-file-name "riece"
                     (expand-file-name "lisp" (car command-line-args-left)))
    (riece-install-just-print-p)))
+
+(defun riece-test ()
+  (let ((load-path (cons (expand-file-name "test") (cons nil load-path)))
+       (files (directory-files "test" t "^test-.*\\.el$"))
+        suite)
+    (require 'lunit-report)
+    (setq suite (lunit-make-test-suite))
+    (while files
+      (when (file-regular-p (car files))
+       (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-report suite (car command-line-args-left))))