This commit was generated by cvs2svn to compensate for changes in r434,
[elisp/tm.git] / inst-tm
1 ;;; -*-Emacs-Lisp-*-
2 ;;;
3 ;;; $Id: inst-tm,v 7.8 1996/07/22 18:29:22 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     (insert (format "
40 (defvar mime-viewer/external-progs \"%s\")" METHOD_DIR))
41     (write-file "mime-setup.el")
42     ))
43
44 (defun compile-el-files (path modules)
45   (mapcar (function
46            (lambda (module)
47              (setq module (expand-file-name module path))
48              (let ((el-file (concat module ".el"))
49                    (elc-file (concat module ".elc"))
50                    )
51                (if (file-newer-than-file-p el-file elc-file)
52                    (byte-compile-file el-file)
53                  )
54                )))
55           modules))
56
57 (defun install-tm-gnus ()
58   (erase-buffer)
59   (call-process SHELL
60                 nil t t
61                 SHELLOPTION
62                 (format
63                  TM_GNUS_INSTALL_FORMAT
64                  (car command-line-args) TM_GNUS_DIR)
65                 )
66   (princ (buffer-string))
67   )
68
69 (defun compile-tm ()
70   (print load-path)
71   (require 'mel-u)
72   (require 'tm-edit)
73   (load "rmailsum")
74   (require 'tm-mh-e)
75   (make-mime-setup TL_DIR MEL_DIR TM_KERNEL_DIR)
76   (compile-el-files "../tl/"  tl-modules)
77   (compile-el-files "../mel/" mel-modules)
78   (compile-el-files "./"      tm-modules)
79   (compile-el-files "mh-e/"   tm-mh-e-modules)
80   (compile-el-files "./"      '("mime-setup"))
81   (save-excursion
82     (set-buffer (get-buffer-create TM_GNUS_COMPILE))
83     (let ((emacs (car command-line-args)))
84       (insert (format "cd gnus\n%s gnus EMACS=%s PWD=`pwd`\n" MAKE emacs))
85       (cond (running-xemacs-19_14-or-later
86              )
87             (running-xemacs
88              (insert (format "%s gnus5 EMACS=%s PWD=`pwd`\n" MAKE emacs))
89              )
90             (t (cond (running-emacs-18
91                       (insert (format "%s gnus3 EMACS=%s PWD=`pwd`\n"
92                                       MAKE emacs))
93                       (insert (format "%s gnus4 EMACS=%s PWD=`pwd`\n"
94                                       MAKE emacs))
95                       )
96                      ((<= emacs-minor-version 29)
97                       (insert (format "%s gnus4 EMACS=%s PWD=`pwd`\n"
98                                       MAKE emacs))
99                       (insert (format "%s gnus5 EMACS=%s PWD=`pwd`\n" 
100                                       MAKE emacs))
101                       )
102                      (t
103                       (insert (format "%s gnus5 EMACS=%s PWD=`pwd`\n" 
104                                       MAKE emacs))
105                       )))))
106     (write-file TM_GNUS_COMPILE)
107     ))
108
109 (defun install-el-file (src dest file)
110   (let ((src-file (expand-file-name file src)))
111     (if (file-exists-p src-file)
112         (let ((full-path (expand-file-name file dest)))
113           (if (file-exists-p full-path)
114               (set-file-modes full-path el-file-mode)
115             )
116           (copy-file src-file full-path t t)
117           (princ (format "%s -> %s\n" file dest))
118           ))
119     ))
120
121 (defun install-el-files (src dest &rest files)
122   (or (file-exists-p dest)
123       (make-directory dest t)
124       )
125   (mapcar (function (lambda (file)
126                       (install-el-file src dest file)
127                       ))
128           files))
129
130 (defun install-elc (src dest file)
131   (let ((src-file (expand-file-name file src)))
132     (if (file-exists-p src-file)
133         (let ((full-path (expand-file-name file dest)))
134           (copy-file src-file full-path t t)
135           (catch 'tag
136             (while (file-exists-p src-file)
137               (condition-case err
138                   (progn
139                     (delete-file src-file)
140                     (throw 'tag nil)
141                     )
142                 (error (princ (format "%s\n" (nth 1 err))))
143                 )))
144           (princ (format "%s -> %s\n" file dest))
145           ))
146     ))
147
148 (defun install-elc-files (src dest &rest files)
149   (mapcar (function (lambda (file)
150                       (install-elc src dest file)
151                       ))
152           files))
153
154 (defun install-el-and-elc-files (src dest el-files elc-files)
155   (apply (function install-el-files)  src dest el-files)
156   (apply (function install-elc-files) src dest elc-files)
157   )
158
159 (defun install-tm ()
160   (princ (format "%s\n" emacs-version))
161   (print TL_DIR)
162   (install-el-and-elc-files "../tl/" TL_DIR tl-el-files tl-elc-files)
163   (install-el-and-elc-files "../mel/" MEL_DIR mel-el-files mel-elc-files)
164   (install-el-and-elc-files "./" TM_KERNEL_DIR tm-el-files tm-elc-files)
165   (install-el-and-elc-files "mh-e/" TM_MHE_DIR
166                             tm-mh-e-el-files tm-mh-e-elc-files)
167   (install-tm-gnus)
168   (install-el-and-elc-files "./" SETUP_FILE_DIR setup-el-files setup-elc-files)
169   )
170
171 (defun install-execs ()
172   (apply (function install-el-files) BIN_SRC_DIR BIN_DIR BINS)
173   (apply (function install-el-files) METHOD_SRC_DIR METHOD_DIR METHODS)
174   )