This commit was generated by cvs2svn to compensate for changes in r533,
[elisp/tm.git] / inst-tm
diff --git a/inst-tm b/inst-tm
index d7e30da..56fd824 100644 (file)
--- a/inst-tm
+++ b/inst-tm
@@ -1,23 +1,43 @@
 ;;; -*-Emacs-Lisp-*-
 ;;;
-;;; $Id: inst-tm,v 7.4 1996/06/07 14:14:53 morioka Exp $
+;;; $Id: inst-tm,v 7.41 1996/11/15 12:14:02 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 "../emu/EMU-ELS")
+  (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)
+    (re-search-forward "^;;; Code:\n" 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 "\n(add-path \"%s\")" tm-path)))
+    
+    ;; generate tm external-methods path setting
+    (or (string= METHOD_DIR exec-directory)
        (insert
-        (format "
-\(add-path \"%s\")" tm-path)))
-    (insert (format "
-(defvar mime-viewer/external-progs \"%s\")" METHOD_DIR))
+        (format "\n(defvar mime-viewer/external-progs %s)"
+                (let ((dir (file-relative-name METHOD_DIR data-directory)))
+                  (if (< (length dir) (length METHOD_DIR))
+                      (concat "\n  (expand-file-name \""
+                              dir "\" data-directory)")
+                    (setq dir (file-relative-name METHOD_DIR
+                                                  (expand-file-name "~/")))
+                    (if (< (length dir) (length METHOD_DIR))
+                        (concat "\n  (expand-file-name \"~/"
+                                dir "\")")
+                      (concat "\"" 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 (file-exists-p src-file)
-             (condition-case err
-                 (progn
-                   (delete-file src-file)
-                   (throw 'tag nil)
-                   )
-               (error (princ (format "%s\n" (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 emu-modules           "../emu")
+  (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 emu-modules    "../emu"       EMU_DIR)
+  (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