tm 7.49.
[elisp/tm.git] / inst-tm
1 ;;; -*-Emacs-Lisp-*-
2 ;;;
3 ;;; $Id: inst-tm,v 3.3 1996/04/09 17:13:36 morioka Exp $
4 ;;;
5
6 (load-file "TM-CFG")
7 (load-file "../tl/tl-els")
8 (load-file "../mel/mel-els")
9 (load-file "TM-ELS")
10 (load-file "mh-e/tmh-els")
11
12 (defun make-mime-setup (tl-path mel-path tm-path)
13   (let ((buf (find-file "mime-setup.el.in")))
14     (goto-char (point-min))
15     (re-search-forward "^;;; Code:" nil t)
16     (setq buffer-read-only nil)
17     (if (member tl-path default-load-path)
18         (insert "
19
20 \(require \'tl-misc)")
21       (insert
22        (format "
23
24 \(let ((load-path
25        (cons \"%s\"
26              load-path)))
27   (require \'tl-misc)
28   )
29 \(add-path \"%s\")" tl-path tl-path))
30       )
31     (or (member mel-path default-load-path)
32         (insert
33          (format "
34 \(add-path \"%s\")" mel-path)))
35     (or (member tm-path default-load-path)
36         (insert
37          (format "
38 \(add-path \"%s\")" tm-path)))
39     (write-file "mime-setup.el")
40     ))
41
42 (defun compile-el-files (path modules)
43   (mapcar (function
44            (lambda (module)
45              (setq module (expand-file-name module path))
46              (let ((el-file (concat module ".el"))
47                    (elc-file (concat module ".elc"))
48                    )
49                (if (file-newer-than-file-p el-file elc-file)
50                    (byte-compile-file el-file)
51                  )
52                )))
53           modules))
54
55 (defun compile-tm-gnus (type)
56   (erase-buffer)
57   (call-process SHELL
58                 nil t t
59                 SHELLOPTION
60                 (format TM_GNUS_COMPILE_FORMAT
61                         type (car command-line-args))
62                 )
63   (princ (buffer-string))
64   )
65
66 (defun install-tm-gnus ()
67   (erase-buffer)
68   (call-process SHELL
69                 nil t t
70                 SHELLOPTION
71                 (format
72                  TM_GNUS_INSTALL_FORMAT
73                  (car command-line-args) TM_GNUS_DIR)
74                 )
75   (princ (buffer-string))
76   )
77
78 (defun compile-tm ()
79   (require 'tm-rich)
80   (require 'mel-u)
81   (require 'tm-edit)
82   (load "rmailsum")
83   (require 'tm-mh-e)
84   (make-mime-setup TL_DIR MEL_DIR TM_KERNEL_DIR)
85   (compile-el-files "../tl/"  tl-modules)
86   (compile-el-files "../mel/" mel-modules)
87   (compile-el-files "./"      tm-modules)
88   (compile-el-files "mh-e/"   tm-mh-e-modules)
89   (compile-tm-gnus "gnus")
90   (cond ((string-match "XEmacs" emacs-version)
91          (compile-tm-gnus "sgnus")
92          )
93         (t (cond ((<= emacs-major-version 18)
94                   (compile-tm-gnus "gnus3")
95                   (compile-tm-gnus "gnus4")
96                   )
97                  ((< emacs-minor-version 30)
98                   (compile-tm-gnus "gnus4")
99                   (compile-tm-gnus "gnus5")
100                   )
101                  (t
102                   (compile-tm-gnus "sgnus")
103                   ))))
104   (compile-el-files "./"      '("mime-setup"))
105   )
106
107 (defun install-el-file (src dest file)
108   (let ((src-file (expand-file-name file src)))
109     (if (file-exists-p src-file)
110         (let ((full-path (expand-file-name file dest)))
111           (if (file-exists-p full-path)
112               (set-file-modes full-path el-file-mode)
113             )
114           (copy-file src-file full-path t t)
115           (princ (format "%s -> %s\n" file dest))
116           ))
117     ))
118
119 (defun install-el-files (src dest &rest files)
120   (mapcar (function (lambda (file)
121                       (install-el-file src dest file)
122                       ))
123           files))
124
125 (defun install-elc (src dest file)
126   (let ((src-file (expand-file-name file src)))
127     (if (file-exists-p src-file)
128         (let ((full-path (expand-file-name file dest)))
129           (copy-file src-file full-path t t)
130           (delete-file src-file)
131           (princ (format "%s -> %s\n" file dest))
132           ))
133     ))
134
135 (defun install-elc-files (src dest &rest files)
136   (mapcar (function (lambda (file)
137                       (install-elc src dest file)
138                       ))
139           files))
140
141 (defun install-el-and-elc-files (src dest el-files elc-files)
142   (if (not (file-exists-p dest))
143       (make-directory dest t)
144     )
145   (apply (function install-el-files)  src dest el-files)
146   (apply (function install-elc-files) src dest elc-files)
147   )
148
149 (defun install-tm ()
150   (princ (format "%s\n" emacs-version))
151   (print TL_DIR)
152   (install-el-and-elc-files "../tl/" TL_DIR tl-el-files tl-elc-files)
153   (install-el-and-elc-files "../mel/" MEL_DIR mel-el-files mel-elc-files)
154   (install-el-and-elc-files "./" TM_KERNEL_DIR tm-el-files tm-elc-files)
155   (install-el-and-elc-files "mh-e/" TM_MHE_DIR
156                             tm-mh-e-el-files tm-mh-e-elc-files)
157   (install-tm-gnus)
158   (install-el-and-elc-files "./" SETUP_FILE_DIR setup-el-files setup-elc-files)
159   )
160
161 (defun install-execs ()
162   (apply (function install-el-files) BIN_SRC_DIR BIN_DIR BINS)
163   (apply (function install-el-files) METHOD_SRC_DIR METHOD_DIR METHODS)
164   )