* riece-ndcc.el: New add-on.
[riece] / lisp / COMPILE
1 ;;; -*- Emacs-Lisp -*-
2
3 (defvar riece-modules
4   (cons 'riece-compat
5         (cons (if (featurep 'xemacs)
6                   'riece-xemacs
7                 'riece-emacs)
8               (append
9                '(riece-globals
10                  riece-options
11                  riece-version
12                  riece-inlines
13                  riece-coding
14                  riece-complete
15
16                  ;; riece-identity -+-> riece-channel
17                  ;;                 +-> riece-user
18                  riece-identity
19                  riece-channel
20                  riece-user
21
22                  riece-misc
23                  riece-display
24                  riece-server
25
26                  ;; riece-channel -+-> riece-naming
27                  ;; riece-user    -+
28                  riece-naming
29                  riece-message
30
31                  ;; riece-filter calls riece-{handle,000,200,300,400,500}
32                  riece-filter
33                  riece-handle
34                  riece-000
35                  riece-200
36                  riece-300
37                  riece-400
38                  riece-500
39
40                  riece-commands
41                  riece
42
43                  ;; add-ons
44                  riece-ctcp
45                  riece-highlight
46                  riece-url
47                  riece-unread)
48                (if (fboundp 'make-network-process)
49                    '(riece-ndcc))))))
50
51 (defun riece-compile-modules (modules)
52   (let ((load-path (cons nil load-path)))
53     (while modules
54       (let ((source (expand-file-name
55                      (concat (symbol-name (car modules)) ".el"))))
56         (if (file-newer-than-file-p source (concat source "c"))
57             (byte-compile-file source)))
58       (setq modules (cdr modules)))))
59
60 (defun riece-install-modules (modules dest just-print)
61   (unless (or just-print (file-exists-p dest))
62     (make-directory dest t))
63   (while modules
64     (let ((name (symbol-name (car modules))))
65       (princ (format "%s.el -> %s\n" name dest))
66       (unless just-print
67         (copy-file (expand-file-name (concat name ".el"))
68                    (expand-file-name (concat name ".el") dest)
69                    t t))
70       (princ (format "%s.elc -> %s\n" name dest))
71       (unless just-print
72         (copy-file (expand-file-name (concat name ".elc"))
73                    (expand-file-name (concat name ".elc") dest)
74                    t t)))
75     (setq modules (cdr modules))))
76
77 (defun riece-install-just-print-p ()
78   (let ((flag (getenv "MAKEFLAGS"))
79         case-fold-search)
80     (if flag
81         (string-match "^\\(\\(--[^ ]+ \\)+-\\|[^ =-]\\)*n" flag))))
82
83 (defun riece-compile ()
84   (riece-compile-modules riece-modules))
85
86 (defun riece-install ()
87   (riece-install-modules
88    riece-modules
89    (expand-file-name "riece" (car command-line-args-left))
90    (riece-install-just-print-p)))
91
92 (defun riece-compile-package ()
93   (setq autoload-package-name "riece")
94   (add-to-list 'command-line-args-left ".")
95   (batch-update-directory)
96   (add-to-list 'command-line-args-left ".")
97   (Custom-make-dependencies)
98   (riece-compile-modules
99    (append riece-modules
100            '(auto-autoloads custom-load))))
101
102 (defun riece-install-package ()
103   (riece-install-modules
104    (append riece-modules
105            '(auto-autoloads custom-load))
106    (expand-file-name "riece"
107                      (expand-file-name "lisp" (car command-line-args-left)))
108    (riece-install-just-print-p)))