tm 7.89.
[elisp/tm.git] / inst-tm
diff --git a/inst-tm b/inst-tm
index be32757..9c2f796 100644 (file)
--- a/inst-tm
+++ b/inst-tm
@@ -1,23 +1,42 @@
 ;;; -*-Emacs-Lisp-*-
 ;;;
-;;; $Id: inst-tm,v 7.2 1996/05/27 14:56:29 morioka Exp $
+;;; $Id: inst-tm,v 7.39 1996/09/06 16:18:21 morioka Exp $
 ;;;
 
-(load-file "TM-CFG")
-(load-file "../tl/tl-els")
-(load-file "../mel/mel-els")
-(load-file "TM-ELS")
-(load-file "mh-e/tmh-els")
+(defun config-tm ()
+  (let (prefix exec-prefix)
+    (setq prefix (car command-line-args-left))
+    (and prefix
+        (not (string-equal "NONE" prefix))
+        (progn
+          (defvar PREFIX prefix)
+          (setq command-line-args-left (cdr command-line-args-left))
+          )
+        (setq exec-prefix (car command-line-args-left))
+        (progn
+          (defvar EXEC_PREFIX exec-prefix)
+          ;;(setq command-line-args-left (cdr command-line-args-left))
+          )))
+  (load-file "TM-CFG")
+  (load-file "../tl/TL-ELS")
+  (load-file "../mu/MU-ELS")
+  (load-file "../mel/MEL-ELS")
+  (load-file "TM-ELS")
+  (load-file "../tm-mh-e/TMH-ELS")
+  (load-file "../tm-mail/TMAIL-ELS")
+  (load-file "../tm-vm/TM-VM-ELS")
+  (princ (format "PREFIX=%s\tEXEC_PREFIX=%s\n" PREFIX EXEC_PREFIX))
+  )
 
-(defun make-mime-setup (tl-path mel-path tm-path)
+(defun make-mime-setup (tl-absolute-path tl-path mu-path mel-path tm-path)
   (let ((buf (find-file "mime-setup.el.in")))
     (goto-char (point-min))
     (re-search-forward "^;;; Code:" nil t)
     (setq buffer-read-only nil)
-    (if (member tl-path default-load-path)
-       (insert "
 
-\(require \'tl-misc)")
+    ;; generate tl setting
+    (if (member tl-absolute-path default-load-path)
+       (insert "\n(require \'tl-misc)")
       (insert
        (format "
 
              load-path)))
   (require \'tl-misc)
   )
-\(add-path \"%s\")" tl-path tl-path))
+\(add-path \"%s\")" tl-absolute-path tl-path))
       )
+    
+    ;; generate MU load-path setting
+    (or (member mu-path default-load-path)
+       (insert (format "\n(add-path \"%s\")" mu-path)))
+    
+    ;; generate MEL load-path setting
     (or (member mel-path default-load-path)
-       (insert
-        (format "
-\(add-path \"%s\")" mel-path)))
+       (insert (format "\n(add-path \"%s\")" mel-path)))
+    
+    ;; generate tm load-path setting
     (or (member tm-path default-load-path)
-       (insert
-        (format "
-\(add-path \"%s\")" tm-path)))
-    (insert (format "
-(defvar mime-viewer/external-progs \"%s\")" METHOD_DIR))
+       (insert (format "\n(add-path \"%s\")" tm-path)))
+    
+    ;; generate tm external-methods path setting
+    (insert
+     (format "\n(defvar mime-viewer/external-progs \"%s\")" METHOD_DIR))
     (write-file "mime-setup.el")
     ))
 
-(defun compile-el-files (path modules)
-  (mapcar (function
-          (lambda (module)
-            (setq module (expand-file-name module path))
-            (let ((el-file (concat module ".el"))
-                  (elc-file (concat module ".elc"))
-                  )
-              (if (file-newer-than-file-p el-file elc-file)
-                  (byte-compile-file el-file)
-                )
-              )))
-         modules))
-
-(defun install-tm-gnus ()
-  (erase-buffer)
-  (call-process SHELL
-               nil t t
-               SHELLOPTION
-               (format
-                TM_GNUS_INSTALL_FORMAT
-                (car command-line-args) TM_GNUS_DIR)
-               )
-  (princ (buffer-string))
-  )
-
 (defun compile-tm ()
+  (config-tm)
   (print load-path)
   (require 'mel-u)
   (require 'tm-edit)
   (load "rmailsum")
   (require 'tm-mh-e)
-  (make-mime-setup TL_DIR MEL_DIR TM_KERNEL_DIR)
-  (compile-el-files "../tl/"  tl-modules)
-  (compile-el-files "../mel/" mel-modules)
-  (compile-el-files "./"      tm-modules)
-  (compile-el-files "mh-e/"   tm-mh-e-modules)
-  (compile-el-files "./"      '("mime-setup"))
-  (save-excursion
-    (set-buffer (get-buffer-create TM_GNUS_COMPILE))
-    (let ((emacs (car command-line-args)))
-      (insert (format "cd gnus\n%s gnus EMACS=%s PWD=`pwd`\n" MAKE emacs))
-      (cond ((string-match "XEmacs" emacs-version)
-            (insert (format "%s sgnus EMACS=%s PWD=`pwd`\n" MAKE emacs))
-            )
-           (t (cond ((<= emacs-major-version 18)
-                     (insert (format "%s gnus3 EMACS=%s PWD=`pwd`\n"
-                                     MAKE emacs))
-                     (insert (format "%s gnus4 EMACS=%s PWD=`pwd`\n"
-                                     MAKE emacs))
-                     )
-                    ((< emacs-minor-version 30)
-                     (insert (format "%s gnus4 EMACS=%s PWD=`pwd`\n"
-                                     MAKE emacs))
-                     (insert (format "%s gnus5 EMACS=%s PWD=`pwd`\n" 
-                                     MAKE emacs))
-                     )
-                    (t
-                     (insert (format "%s sgnus EMACS=%s PWD=`pwd`\n" 
-                                     MAKE emacs))
-                     )))))
-    (write-file TM_GNUS_COMPILE)
-    )
-  )
-
-(defun install-el-file (src dest file)
-  (let ((src-file (expand-file-name file src)))
-    (if (file-exists-p src-file)
-       (let ((full-path (expand-file-name file dest)))
-         (if (file-exists-p full-path)
-             (set-file-modes full-path el-file-mode)
-           )
-         (copy-file src-file full-path t t)
-         (princ (format "%s -> %s\n" file dest))
-         ))
-    ))
-
-(defun install-el-files (src dest &rest files)
-  (mapcar (function (lambda (file)
-                     (install-el-file src dest file)
-                     ))
-         files))
-
-(defun install-elc (src dest file)
-  (let ((src-file (expand-file-name file src)))
-    (if (file-exists-p src-file)
-       (let ((full-path (expand-file-name file dest)))
-         (copy-file src-file full-path t t)
-         (catch 'tag
-           (while t
-             (condition-case err
-                 (progn
-                   (delete-file src-file)
-                   (throw 'tag nil)
-                   )
-               (error (princ (nth 1 err)))
-               )))
-         (princ (format "%s -> %s\n" file dest))
-         ))
-    ))
-
-(defun install-elc-files (src dest &rest files)
-  (mapcar (function (lambda (file)
-                     (install-elc src dest file)
-                     ))
-         files))
-
-(defun install-el-and-elc-files (src dest el-files elc-files)
-  (if (not (file-exists-p dest))
-      (make-directory dest t)
-    )
-  (apply (function install-el-files)  src dest el-files)
-  (apply (function install-elc-files) src dest elc-files)
+  (make-mime-setup TL_DIR TL_RELATIVE_DIR MU_RELATIVE_DIR
+                  MEL_RELATIVE_DIR TM_KERNEL_RELATIVE_DIR)
+  (compile-elisp-modules tl-modules            "../tl")
+  (compile-elisp-modules mu-modules-to-compile "../mu")
+  (compile-elisp-modules mel-modules           "../mel")
+  (compile-elisp-modules tm-modules-to-compile ".")
+  (compile-elisp-modules tm-mh-e-modules       "../tm-mh-e")
+  (compile-elisp-module  'mime-setup           ".")
+  (require 'gnus)
+  (cond ((featurep 'gnus-ems)
+        (load "../gnus-mime/Gnus-MIME-ELS")
+        (compile-elisp-modules gnus-mime-modules-to-compile "../gnus-mime")
+        )
+       (t
+         (load "../tm-gnus/TGNUS-ELS")
+        (compile-elisp-modules tm-gnus-modules-to-compile "../tm-gnus")
+        ))
+  (compile-elisp-modules tm-mail-modules       "../tm-mail")
+  (compile-elisp-modules tm-vm-modules-to-compile "../tm-vm")
   )
 
 (defun install-tm ()
+  (config-tm)
   (princ (format "%s\n" emacs-version))
   (print TL_DIR)
-  (install-el-and-elc-files "../tl/" TL_DIR tl-el-files tl-elc-files)
-  (install-el-and-elc-files "../mel/" MEL_DIR mel-el-files mel-elc-files)
-  (install-el-and-elc-files "./" TM_KERNEL_DIR tm-el-files tm-elc-files)
-  (install-el-and-elc-files "mh-e/" TM_MHE_DIR
-                           tm-mh-e-el-files tm-mh-e-elc-files)
-  (install-tm-gnus)
-  (install-el-and-elc-files "./" SETUP_FILE_DIR setup-el-files setup-elc-files)
+  (install-elisp-modules tl-modules     "../tl"        TL_DIR)
+  (install-elisp-modules mu-modules     "../mu"        MU_DIR)
+  (install-elisp-modules mel-modules    "../mel"       MEL_DIR)
+  (install-elisp-modules tm-modules     "."            TM_KERNEL_DIR)
+  (install-elisp-modules tm-mh-e-modules "../tm-mh-e"  TM_MHE_DIR)
+  ;;(install-tm-gnus)
+  (require 'gnus)
+  (cond ((featurep 'gnus-ems)
+        (load "../gnus-mime/Gnus-MIME-ELS")
+        (install-elisp-modules gnus-mime-modules
+                               "../gnus-mime" Gnus_MIME_DIR)
+        )
+       (t
+        (load "../tm-gnus/TGNUS-ELS")
+        (install-elisp-modules tm-gnus-modules "../tm-gnus" TM_GNUS_DIR)
+        ))
+  (install-elisp-modules tm-mail-modules "../tm-mail"  TM_MAIL_DIR)
+  (install-elisp-modules tm-vm-modules  "../tm-vm"     TM_VM_DIR)
+  (install-elisp-modules '(mime-setup)  "."    SETUP_FILE_DIR)
   )
 
 (defun install-execs ()
-  (apply (function install-el-files) BIN_SRC_DIR BIN_DIR BINS)
-  (apply (function install-el-files) METHOD_SRC_DIR METHOD_DIR METHODS)
+  (config-tm)
+  (install-files BINS      BIN_SRC_DIR    BIN_DIR)
+  (install-files METHODS METHOD_SRC_DIR METHOD_DIR nil t)
   )
+
+;;; inst-tm ends here