a30468a46d62532a063ad5c03c5fb5fe7eab3f00
[elisp/tm.git] / inst-tm
1 ;;; -*-Emacs-Lisp-*-
2 ;;;
3 ;;; $Id: inst-tm,v 3.1 1996/03/11 14:50:53 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     (insert
18      (format
19       "
20
21 \(let ((load-path
22        (cons \"%s\"
23              load-path)))
24   (require \'tl-misc)
25   )
26 \(add-path \"%s\")
27 \(add-path \"%s\")
28 \(add-path \"%s\")"
29       tl-path tl-path mel-path tm-path))
30     (write-file "mime-setup.el")
31     ))
32
33 (defun compile-el-files (path modules)
34   (mapcar (function
35            (lambda (module)
36              (setq module (expand-file-name module path))
37              (let ((el-file (concat module ".el"))
38                    (elc-file (concat module ".elc"))
39                    )
40                (if (file-newer-than-file-p el-file elc-file)
41                    (byte-compile-file el-file)
42                  )
43                )))
44           modules))
45
46 (defun compile-tm-gnus (type)
47   (erase-buffer)
48   (call-process SHELL
49                 nil t t
50                 SHELLOPTION
51                 (format TM_GNUS_COMPILE_FORMAT
52                         type (car command-line-args))
53                 )
54   (princ (buffer-string))
55   )
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   (require 'tm-rich)
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-tm-gnus "gnus")
81   (cond ((< emacs-major-version 19)
82          (compile-tm-gnus "gnus4")
83          )
84         ((or (>= emacs-minor-version 30)
85              (string-match "XEmacs" emacs-version))
86          (compile-tm-gnus "sgnus")
87          )
88         (t
89          (compile-tm-gnus "gnus4")
90          (compile-tm-gnus "gnus5")
91          ))
92   (compile-el-files "./"      '("mime-setup"))
93   )
94
95 (defun install-el-file (src dest file)
96   (let ((src-file (expand-file-name file src)))
97     (if (file-exists-p src-file)
98         (let ((full-path (expand-file-name file dest)))
99           (if (file-exists-p full-path)
100               (set-file-modes full-path el-file-mode)
101             )
102           (copy-file src-file full-path t t)
103           (princ (format "%s -> %s\n" file dest))
104           ))
105     ))
106
107 (defun install-el-files (src dest &rest files)
108   (mapcar (function (lambda (file)
109                       (install-el-file src dest file)
110                       ))
111           files))
112
113 (defun install-elc (src dest file)
114   (let ((src-file (expand-file-name file src)))
115     (if (file-exists-p src-file)
116         (let ((full-path (expand-file-name file dest)))
117           (copy-file src-file full-path t t)
118           (delete-file src-file)
119           (princ (format "%s -> %s\n" file dest))
120           ))
121     ))
122
123 (defun install-elc-files (src dest &rest files)
124   (mapcar (function (lambda (file)
125                       (install-elc src dest file)
126                       ))
127           files))
128
129 (defun install-el-and-elc-files (src dest el-files elc-files)
130   (if (not (file-exists-p dest))
131       (make-directory dest t)
132     )
133   (apply (function install-el-files)  src dest el-files)
134   (apply (function install-elc-files) src dest elc-files)
135   )
136
137 (defun install-tm ()
138   (princ (format "%s\n" emacs-version))
139   (print TL_DIR)
140   (install-el-and-elc-files "../tl/" TL_DIR tl-el-files tl-elc-files)
141   (install-el-and-elc-files "../mel/" MEL_DIR mel-el-files mel-elc-files)
142   (install-el-and-elc-files "./" TM_KERNEL_DIR tm-el-files tm-elc-files)
143   (install-el-and-elc-files "mh-e/" TM_MHE_DIR
144                             tm-mh-e-el-files tm-mh-e-elc-files)
145   (install-tm-gnus)
146   (install-el-and-elc-files "./" SETUP_FILE_DIR setup-el-files setup-elc-files)
147   )
148
149 (defun install-execs ()
150   (apply (function install-el-files) BIN_SRC_DIR BIN_DIR BINS)
151   (apply (function install-el-files) METHOD_SRC_DIR METHOD_DIR METHODS)
152   )