X-Git-Url: http://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2FCOMPILE;h=372135490e236189340c3d2342d952614bf4dd0e;hp=8408a5e8ce2830dcda21f36dc00b636158bcdb84;hb=777d22f37f8371dc8dc8108dd7920c934c19f687;hpb=befd19f4c604901fe3e5ac71ac7151a6e3d3dc60 diff --git a/lisp/COMPILE b/lisp/COMPILE index 8408a5e..3721354 100644 --- a/lisp/COMPILE +++ b/lisp/COMPILE @@ -7,10 +7,18 @@ 'riece-emacs) '(riece-globals riece-options + riece-debug + riece-package-info riece-version riece-coding riece-complete + riece-mcat + riece-addon-modules + riece-addon + riece-ruby + riece-cache + riece-mode ;; riece-identity -+-> riece-channel ;; +-> riece-user riece-identity @@ -18,6 +26,10 @@ riece-user riece-misc + riece-signal + + ;; riece-layout ---> riece-display + riece-layout riece-display riece-server @@ -36,24 +48,53 @@ riece-500 riece-commands - riece + riece-irc + riece)))) + +(defvar riece-mcat-modules + '(riece-mcat-japanese)) + +(defvar riece-icons + '("riece-command-previous-channel.xpm" + "riece-command-next-channel.xpm" + "riece-command-configure-windows.xpm" + "riece-command-list-addons.xpm" + "riece-command-join.xpm" + "riece-command-part.xpm")) - ;; add-ons - riece-ctcp - riece-highlight - riece-log - riece-rdcc - riece-url - riece-unread)))) +(defvar riece-scripts + '("server.rb" + "aproxy.rb")) (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")) - (byte-compile-file source))) - (setq modules (cdr modules))))) + (condition-case error + (byte-compile-file source) + (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-compile-module () + (let ((load-path (cons nil load-path))) + (let ((source (expand-file-name + (concat (car command-line-args-left) ".el")))) + (if (file-newer-than-file-p source (concat source "c")) + (byte-compile-file source))))) (defun riece-install-modules (modules dest just-print) (unless (or just-print (file-exists-p dest)) @@ -67,23 +108,86 @@ t t)) (princ (format "%s.elc -> %s\n" name dest)) (unless just-print - (copy-file (expand-file-name (concat name ".elc")) - (expand-file-name (concat name ".elc") dest) - t t))) + (if (file-exists-p (expand-file-name (concat name ".elc"))) + (copy-file (expand-file-name (concat name ".elc")) + (expand-file-name (concat name ".elc") dest) + t t) + (princ (format "(%s was not successfully compiled, ignored)\n" + 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 + (when (file-exists-p (expand-file-name (car icons))) + (princ (format "%s -> %s\n" (car icons) dest)) + (unless just-print + (copy-file (expand-file-name (car icons)) + (expand-file-name (car icons) dest) + t t))) + (setq icons (cdr icons)))) + +(defun riece-install-scripts (scripts dest just-print) + (unless (or just-print (file-exists-p dest)) + (make-directory dest t)) + (while scripts + (when (file-exists-p (expand-file-name (car scripts))) + (princ (format "%s -> %s\n" (car scripts) dest)) + (unless just-print + (copy-file (expand-file-name (car scripts)) + (expand-file-name (car scripts) dest) + t t))) + (setq scripts (cdr scripts)))) + (defun riece-install-just-print-p () (let ((flag (getenv "MAKEFLAGS")) case-fold-search) (if flag (string-match "^\\(\\(--[^ ]+ \\)+-\\|[^ =-]\\)*n" flag)))) +(defun riece-examine-modules () + (let ((load-path (cons nil load-path))) + (require 'riece-mcat) + (require 'riece-addon-modules) + (append riece-modules + riece-mcat-modules + (mapcar #'car riece-addon-modules)))) + +(defun riece-examine () + (princ (mapconcat #'symbol-name (riece-examine-modules) " "))) + +(defun riece-update-mcat () + (let ((modules (riece-examine-modules)) + (pointer riece-mcat-modules) + files) + (while pointer + (setq modules (delq (car pointer) modules) + pointer (cdr pointer))) + (setq files (mapcar (lambda (module) + (concat (symbol-name module) ".el")) + modules) + pointer riece-mcat-modules) + (while pointer + (riece-mcat-update files (concat (symbol-name (car pointer)) ".el") + (intern (concat (symbol-name (car pointer)) + "-alist"))) + (setq pointer (cdr pointer))))) + (defun riece-compile () - (riece-compile-modules riece-modules)) + (riece-compile-modules (riece-examine-modules))) (defun riece-install () (riece-install-modules - riece-modules + (riece-examine-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)) + (riece-install-scripts + riece-scripts (expand-file-name "riece" (car command-line-args-left)) (riece-install-just-print-p))) @@ -94,13 +198,37 @@ (add-to-list 'command-line-args-left ".") (Custom-make-dependencies) (riece-compile-modules - (append riece-modules + (append (riece-examine-modules) '(auto-autoloads custom-load)))) (defun riece-install-package () (riece-install-modules - (append riece-modules + (append (riece-examine-modules) '(auto-autoloads custom-load)) - (expand-file-name "riece" - (expand-file-name "lisp" (car command-line-args-left))) + (expand-file-name "lisp/riece" (car command-line-args-left)) + (riece-install-just-print-p)) + (riece-install-icons + riece-icons + (expand-file-name "etc/riece" (car command-line-args-left)) + (riece-install-just-print-p)) + (riece-install-scripts + riece-scripts + (expand-file-name "etc/riece" (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))))