de49d00302f8ca94919e512c08e93c7df9e35506
[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               '(riece-globals
9                 riece-options
10                 riece-version
11                 riece-coding
12                 riece-complete
13
14                 ;; riece-identity -+-> riece-channel
15                 ;;                 +-> riece-user
16                 riece-identity
17                 riece-channel
18                 riece-user
19
20                 riece-misc
21                 riece-signal
22
23                 ;; riece-layout ---> riece-display
24                 riece-layout
25                 riece-display
26                 riece-server
27
28                 ;; riece-channel -+-> riece-naming
29                 ;; riece-user    -+
30                 riece-naming
31                 riece-message
32
33                 ;; riece-filter calls riece-{handle,000,200,300,400,500}
34                 riece-filter
35                 riece-handle
36                 riece-000
37                 riece-200
38                 riece-300
39                 riece-400
40                 riece-500
41
42                 riece-commands
43                 riece
44
45                 ;; add-ons
46                 riece-ctcp
47                 riece-highlight
48                 riece-log
49                 riece-mini
50                 riece-rdcc
51                 riece-url
52                 riece-unread
53                 riece-doctor
54                 riece-alias
55                 riece-skk-kakutei
56                 riece-guess
57                 riece-history
58                 riece-button
59                 riece-keyword
60                 riece-menu
61                 riece-icon
62                 riece-async
63                 riece-lsdb
64                 riece-xface))))
65
66 (defun riece-compile-modules (modules)
67   (let ((load-path (cons nil load-path)))
68     (while modules
69       (let ((source (expand-file-name
70                      (concat (symbol-name (car modules)) ".el"))))
71         (if (file-newer-than-file-p source (concat source "c"))
72             (condition-case error
73                 (byte-compile-file source)
74               (error))))
75       (setq modules (cdr modules)))))
76
77 (defun riece-install-modules (modules dest just-print)
78   (unless (or just-print (file-exists-p dest))
79     (make-directory dest t))
80   (while modules
81     (let ((name (symbol-name (car modules))))
82       (princ (format "%s.el -> %s\n" name dest))
83       (unless just-print
84         (copy-file (expand-file-name (concat name ".el"))
85                    (expand-file-name (concat name ".el") dest)
86                    t t))
87       (princ (format "%s.elc -> %s\n" name dest))
88       (unless just-print
89         (if (file-exists-p (expand-file-name (concat name ".elc")))
90             (copy-file (expand-file-name (concat name ".elc"))
91                        (expand-file-name (concat name ".elc") dest)
92                        t t)
93           (princ (format "(%s was not successfully compiled, ignored)\n"
94                          name)))))
95     (setq modules (cdr modules))))
96
97 (defun riece-install-just-print-p ()
98   (let ((flag (getenv "MAKEFLAGS"))
99         case-fold-search)
100     (if flag
101         (string-match "^\\(\\(--[^ ]+ \\)+-\\|[^ =-]\\)*n" flag))))
102
103 (defun riece-compile ()
104   (riece-compile-modules riece-modules))
105
106 (defun riece-install ()
107   (riece-install-modules
108    riece-modules
109    (expand-file-name "riece" (car command-line-args-left))
110    (riece-install-just-print-p)))
111
112 (defun riece-compile-package ()
113   (setq autoload-package-name "riece")
114   (add-to-list 'command-line-args-left ".")
115   (batch-update-directory)
116   (add-to-list 'command-line-args-left ".")
117   (Custom-make-dependencies)
118   (riece-compile-modules
119    (append riece-modules
120            '(auto-autoloads custom-load))))
121
122 (defun riece-install-package ()
123   (riece-install-modules
124    (append riece-modules
125            '(auto-autoloads custom-load))
126    (expand-file-name "riece"
127                      (expand-file-name "lisp" (car command-line-args-left)))
128    (riece-install-just-print-p)))