release.
[elisp/tm.git] / TM-MK
1 ;;; -*-Emacs-Lisp-*-
2
3 ;; TM-MK: installer for tm.
4
5 ;;; Code:
6
7 (defun config-tm ()
8   (let (prefix exec-prefix)
9     (setq prefix (car command-line-args-left))
10     (and prefix
11          (not (string-equal "NONE" prefix))
12          (progn
13            (defvar PREFIX prefix)
14            (setq command-line-args-left (cdr command-line-args-left))
15            )
16          (setq exec-prefix (car command-line-args-left))
17          (progn
18            (defvar EXEC_PREFIX exec-prefix)
19            ;;(setq command-line-args-left (cdr command-line-args-left))
20            )))
21   (load-file "TM-CFG")
22   (load-file "../apel/EMU-ELS")
23   (load-file "../apel/APEL-ELS")
24   (load-file "../tl/TL-ELS")
25   (load-file "../bitmap-mule/BITMAP-ELS")
26   (load-file "../mu/MU-ELS")
27   (load-file "../flim/FLIM-ELS")
28   (load-file "TM-ELS")
29   (load-file "../tm-mh-e/TMH-ELS")
30   (load-file "../tm-mail/TMAIL-ELS")
31   (load-file "../tm-vm/TM-VM-ELS")
32   (princ (format "PREFIX=%s\tEXEC_PREFIX=%s\n" PREFIX EXEC_PREFIX))
33   )
34
35 (defun directory= (dir1 dir2)
36   (string= (file-name-as-directory dir1)(file-name-as-directory dir2))
37   )
38
39 (defun make-mime-setup (lisp-dir
40                         tl-path bitmap-path mu-path mel-path tm-path)
41   (if (file-exists-p "mime-setup.el")
42       (delete-file  "mime-setup.el")
43     )
44   (let ((buf (let (vc-follow-symlinks)
45                (find-file "mime-setup.el.in")
46                )))
47     (goto-char (point-min))
48     (re-search-forward "^;;; Code:\n" nil t)
49     (setq buffer-read-only nil)
50
51     ;; generate tl setting
52     (let ((tl-absolute-path (expand-file-name tl-path lisp-dir)))
53       (if (MEMBER tl-absolute-path default-load-path
54                   :test (function directory=))
55           (insert "\n(require \'tl-misc)")
56         (insert
57          (format "
58
59 \(let ((load-path
60        (cons \"%s\"
61              load-path)))
62   (require \'tl-misc)
63   )
64 \(add-path \"%s\")" tl-absolute-path tl-path))
65         ))
66     
67     ;; generate MU load-path setting
68     (and bitmap-modules
69          (or (MEMBER (expand-file-name bitmap-path lisp-dir)
70                      default-load-path
71                      :test (function directory=))
72              (insert (format "\n(add-path \"%s\")" bitmap-path))
73              ))
74     
75     ;; generate MU load-path setting
76     (or (MEMBER (expand-file-name mu-path lisp-dir)
77                 default-load-path
78                 :test (function directory=))
79         (insert (format "\n(add-path \"%s\")" mu-path))
80         )
81     
82     ;; generate MEL load-path setting
83     (or (MEMBER (expand-file-name mel-path lisp-dir)
84                 default-load-path
85                 :test (function directory=))
86         (insert (format "\n(add-path \"%s\")" mel-path))
87         )
88     
89     ;; generate tm load-path setting
90     (or (MEMBER (expand-file-name tm-path lisp-dir)
91                 default-load-path
92                 :test (function directory=))
93         (insert (format "\n(add-path \"%s\")" tm-path))
94         )
95     
96     ;; generate tm external-methods path setting
97     (or (string= METHOD_DIR exec-directory)
98         (insert
99          (format "\n
100 (defvar mime-viewer/external-progs%s
101   \"*Directory containing tm external methods.\")
102
103 (add-to-list 'exec-path mime-viewer/external-progs)
104
105 (let ((paths (parse-colon-path (getenv \"PATH\"))))
106   (or (member mime-viewer/external-progs paths)
107       (setenv \"PATH\"
108               (mapconcat (function identity)
109                          (append paths (list mime-viewer/external-progs))
110                          path-separator))
111       ))
112 "
113                  (let ((dir (file-relative-name METHOD_DIR data-directory)))
114                    (if (< (length dir) (length METHOD_DIR))
115                        (concat "\n  (expand-file-name \""
116                                dir "\" data-directory)")
117                      (setq dir (file-relative-name METHOD_DIR
118                                                    (expand-file-name "~/")))
119                      (if (< (length dir) (length METHOD_DIR))
120                          (concat "\n  (expand-file-name \"~/"
121                                  dir "\")")
122                        (concat " \"" METHOD_DIR "\"")
123                        )))
124                  ))
125         )
126     (write-file "mime-setup.el")
127     ))
128
129 (defun compile-tm ()
130   (config-tm)
131   (print load-path)
132   (require 'mel-u)
133   (require 'tm-edit)
134   (load "rmailsum")
135   (require 'tm-mh-e)
136   (make-mime-setup LISPDIR
137                    TL_RELATIVE_DIR BITMAP_RELATIVE_DIR
138                    MU_RELATIVE_DIR FLIM_RELATIVE_DIR
139                    TM_KERNEL_RELATIVE_DIR)
140   (compile-elisp-modules emu-modules            "../apel")
141   (compile-elisp-modules apel-modules           "../apel")
142   (compile-elisp-modules tl-modules             "../tl")
143   (compile-elisp-modules bitmap-modules         "../bitmap-mule")
144   (compile-elisp-modules mu-modules-to-compile  "../mu")
145   (compile-elisp-modules flim-modules           "../flim")
146   (compile-elisp-modules tm-modules-to-compile  ".")
147   (compile-elisp-modules tm-mh-e-modules        "../tm-mh-e")
148   (compile-elisp-module  'mime-setup            ".")
149   (condition-case nil
150       (progn
151         (require 'gnus)
152         (cond ((featurep 'gnus-ems)
153                (load "../gnus-mime/Gnus-MIME-ELS")
154                (compile-elisp-modules gnus-mime-modules-to-compile
155                                       "../gnus-mime")
156                )
157               (t
158                (load "../tm-gnus/TGNUS-ELS")
159                (compile-elisp-modules tm-gnus-modules-to-compile "../tm-gnus")
160                )))
161     (error nil))
162   (compile-elisp-modules tm-mail-modules        "../tm-mail")
163   (compile-elisp-modules tm-vm-modules-to-compile "../tm-vm")
164   )
165
166 (defun install-tm ()
167   (config-tm)
168   (princ (format "%s\n" emacs-version))
169   (install-elisp-modules emu-modules     "../apel"      EMU_DIR)
170   (install-elisp-modules apel-modules   "../apel"       APEL_DIR)
171   (install-elisp-modules tl-modules      "../tl"        TL_DIR)
172   (install-elisp-modules bitmap-modules "../bitmap-mule" BITMAP_DIR)
173   (install-elisp-modules mu-modules      "../mu"        MU_DIR)
174   (install-elisp-modules flim-modules    "../flim"      FLIM_DIR)
175   (install-elisp-modules tm-modules      "."            TM_KERNEL_DIR)
176   (install-elisp-modules tm-mh-e-modules "../tm-mh-e"   TM_MHE_DIR)
177   ;;(install-tm-gnus)
178   (condition-case nil
179       (progn
180         (require 'gnus)
181         (cond ((featurep 'gnus-ems)
182                (load "../gnus-mime/Gnus-MIME-ELS")
183                (install-elisp-modules gnus-mime-modules
184                                       "../gnus-mime" Gnus_MIME_DIR)
185                )
186               (t
187                (load "../tm-gnus/TGNUS-ELS")
188                (install-elisp-modules tm-gnus-modules "../tm-gnus" TM_GNUS_DIR)
189                )))
190     (error nil))
191   (install-elisp-modules tm-mail-modules "../tm-mail"   TM_MAIL_DIR)
192   (install-elisp-modules tm-vm-modules   "../tm-vm"     TM_VM_DIR)
193   (install-elisp-modules '(mime-setup)   "."    SETUP_FILE_DIR)
194   )
195
196 (defun install-execs ()
197   (config-tm)
198   (install-files BINS       BIN_SRC_DIR    BIN_DIR)
199   (install-files METHODS METHOD_SRC_DIR METHOD_DIR nil t)
200   )
201
202
203 (defun update-xemacs-source ()
204   (setq LISPDIR (expand-file-name "../lisp" data-directory))
205   (load-file "TM-CFG")
206   (setq EMU_DIR TL_DIR)
207   (setq SETUP_FILE_DIR TM_KERNEL_DIR)
208   (load-file "../emu/EMU-ELS")
209   (load-file "../tl/TL-ELS")
210   (load-file "../mu/MU-ELS")
211   (load-file "../mel/MEL-ELS")
212   (load-file "TM-ELS")
213   (load-file "../tm-mh-e/TMH-ELS")
214   (load-file "../tm-mail/TMAIL-ELS")
215   (load-file "../tm-vm/TM-VM-ELS")
216   
217   (copy-file "mime-setup.el.in" "mime-setup.el" t t)
218   (set-file-modes "mime-setup.el" (+ (* 6 64) (* 4 8) 4))
219   (compile-elisp-modules emu-modules            "../apel")
220   (compile-elisp-modules tl-modules             "../tl")
221   (compile-elisp-modules mu-modules-to-compile  "../mu")
222   (compile-elisp-modules mel-modules            "../mel")
223   (compile-elisp-modules tm-modules-to-compile  ".")
224   (compile-elisp-modules tm-mh-e-modules        "../tm-mh-e")
225   (compile-elisp-module  'mime-setup            ".")
226   (require 'gnus)
227   (load "../gnus-mime/Gnus-MIME-ELS")
228   (compile-elisp-modules gnus-mime-modules-to-compile "../gnus-mime")
229   (compile-elisp-modules tm-mail-modules        "../tm-mail")
230   (compile-elisp-modules tm-vm-modules-to-compile "../tm-vm")
231   
232   (install-elisp-modules emu-modules     "../apel"      EMU_DIR)
233   (install-elisp-modules tl-modules      "../tl"        TL_DIR)
234   (install-elisp-modules mu-modules      "../mu"        MU_DIR)
235   (install-elisp-modules mel-modules     "../mel"       MEL_DIR)
236   (install-elisp-modules tm-modules      "."            TM_KERNEL_DIR)
237   (install-elisp-modules tm-mh-e-modules "../tm-mh-e"   TM_MHE_DIR)
238   (install-elisp-modules gnus-mime-modules "../gnus-mime" Gnus_MIME_DIR)
239   (install-elisp-modules tm-mail-modules "../tm-mail"   TM_MAIL_DIR)
240   (install-elisp-modules tm-vm-modules   "../tm-vm"     TM_VM_DIR)
241   (install-elisp-modules '(mime-setup)   "."    SETUP_FILE_DIR)
242
243   (setq METHOD_DIR (expand-file-name "../lib-src" data-directory))
244   (install-files METHODS METHOD_SRC_DIR METHOD_DIR nil t)
245   
246   (install-file "sinfo.dtd" "../sinfo"
247                 (expand-file-name "../etc/sgml" data-directory)
248                 nil t)
249   
250   (install-files '("tm-edit-en.sgml"    "tm-edit-en.texi"
251                    "tm-edit-ja.sgml"    "tm-edit-ja.texi"
252                    "tm-en.sgml"         "tm-en.texi"
253                    "tm-ja.sgml"         "tm-ja.texi"
254                    "tm-view-en.sgml"    "tm-view-en.texi"
255                    "tm-view-ja.sgml"    "tm-view-ja.texi"
256                    )
257                  "doc"
258                  (expand-file-name "../man/tm" data-directory)
259                  nil t)
260   (install-files '("tm-edit-en.info"    "tm-edit-ja.info"
261                    "tm-en.info"         "tm-ja.info"
262                    "tm-view-en.info"    "tm-view-ja.info"
263                    )
264                  "doc"
265                  (expand-file-name "../info" data-directory)
266                  nil t)
267   (install-files '("gnus-mime-en.sgml"  "gnus-mime-en.texi"
268                    "gnus-mime-ja.sgml"  "gnus-mime-ja.texi"
269                    )
270                  "../gnus-mime"
271                  (expand-file-name "../man/tm" data-directory)
272                  nil t)
273   (install-files '("gnus-mime-en.info"  "gnus-mime-ja.info")
274                  "../gnus-mime"
275                  (expand-file-name "../info" data-directory)
276                  nil t)
277   (install-files '("tm-mh-e-en.sgml"    "tm-mh-e-en.texi"
278                    "tm-mh-e-ja.sgml"    "tm-mh-e-ja.texi"
279                    )
280                  "../tm-mh-e"
281                  (expand-file-name "../man/tm" data-directory)
282                  nil t)
283   (install-files '("tm-mh-e-en.info"    "tm-mh-e-ja.info")
284                  "../tm-mh-e"
285                  (expand-file-name "../info" data-directory)
286                  nil t)
287   (install-files '("tm-vm_en.texi")
288                  "../tm-vm"
289                  (expand-file-name "../man/tm" data-directory)
290                  nil t)
291   (install-files '("tm-vm_en.info")
292                  "../tm-vm"
293                  (expand-file-name "../info" data-directory)
294                  nil t)
295   )
296
297 ;;; TM-MK ends here