(What's EMH?): Modify for the new URLs of APEL, FLIM and SEMI.
[elisp/emh.git] / EMH-MK
diff --git a/EMH-MK b/EMH-MK
index 0cc3f96..47a78be 100644 (file)
--- a/EMH-MK
+++ b/EMH-MK
@@ -1,10 +1,11 @@
 ;;; -*-Emacs-Lisp-*-
-;;;
-;;; $Id: EMH-MK,v 0.1 1997-05-15 06:47:02 morioka Exp $
-;;;
+
+;; EMH-MK: installer for EMH.
+
+;;; Code:
 
 (defun config-emh ()
-  (let (prefix lisp-dir)
+  (let (prefix lisp-dir version-specific-lisp-dir)
     (and (setq prefix (car command-line-args-left))
         (or (string-equal "NONE" prefix)
             (defvar PREFIX prefix)
         (or (string-equal "NONE" lisp-dir)
             (defvar LISPDIR lisp-dir)
             ))
-    (load-file "EMH-CFG")
-    (load-file "EMH-ELS")
-    (princ (format "PREFIX=%s
+    (setq command-line-args-left (cdr command-line-args-left))
+    (and (setq version-specific-lisp-dir (car command-line-args-left))
+        (or (string-equal "NONE" version-specific-lisp-dir)
+            (progn
+              (defvar VERSION_SPECIFIC_LISPDIR version-specific-lisp-dir)
+              (princ (format "VERSION_SPECIFIC_LISPDIR=%s\n"
+                             VERSION_SPECIFIC_LISPDIR)))
+            ))
+    (setq command-line-args-left (cdr command-line-args-left))
+    (config-emh-pixmap-dir)
+    )
+  (setq command-line-args-left (cdr command-line-args-left))
+  (load-file "EMH-CFG")
+  (load-file "EMH-ELS")
+  (princ (format "PREFIX=%s
 LISPDIR=%s\n" PREFIX LISPDIR))
-    ))
+  )
 
 (defun compile-emh ()
   (config-emh)
@@ -28,6 +41,75 @@ LISPDIR=%s\n" PREFIX LISPDIR))
 (defun install-emh ()
   (config-emh)
   (install-elisp-modules emh-modules "./" EMH_DIR)
+  (if PIXMAPDIR (install-emh-icons))
   )
 
+(defun config-emh-package ()
+  (let (package-dir)
+    (and (setq package-dir (car command-line-args-left))
+        (or (string= "NONE" package-dir)
+            (defvar PACKAGEDIR package-dir)
+            ))
+    (setq command-line-args-left (cdr command-line-args-left))
+    (load-file "EMH-CFG")
+    (load-file "EMH-ELS")
+    (setq emh-modules (append emh-modules
+                              '(auto-autoloads custom-load)))
+    (princ (format "PACKAGEDIR=%s\n" PACKAGEDIR))
+    (config-emh-pixmap-dir PACKAGEDIR)
+    ))
+
+(defun compile-emh-package ()
+  (config-emh-package)
+
+  (setq autoload-package-name "emh")
+  (add-to-list 'command-line-args-left ".")
+  (batch-update-directory)
+
+  (add-to-list 'command-line-args-left ".")
+  (Custom-make-dependencies)
+
+  (compile-elisp-modules emh-modules ".")
+  )
+
+(defun install-emh-package ()
+  (config-emh-package)
+  (install-elisp-modules emh-modules
+                        "./"
+                        (expand-file-name EMH_PREFIX
+                                          (expand-file-name "lisp"
+                                                            PACKAGEDIR)))
+  (if PIXMAPDIR (install-emh-icons))
+  )
+
+(defun config-emh-pixmap-dir (&optional packagedir)
+  (let ((pixmap-dir (car command-line-args-left)))
+    (defvar PIXMAPDIR
+      (if (string= pixmap-dir "NONE")
+         (if packagedir
+             (expand-file-name "etc/emh/" packagedir)
+           (expand-file-name "emh/icons/" data-directory))
+       pixmap-dir)))
+  (if PIXMAPDIR
+      (princ (format "PIXMAPDIR is %s\n" PIXMAPDIR)))
+  (setq command-line-args-left (cdr command-line-args-left)))
+
+(defun install-emh-icons ()
+  (if (not (file-directory-p PIXMAPDIR))
+      (make-directory PIXMAPDIR t))
+  (let* ((case-fold-search t)
+        (icons (if (and (not (featurep 'xemacs))
+                        (boundp 'emacs-major-version)
+                        (>= emacs-major-version 21))
+                   (directory-files "./etc/icons" t "\\.xpm$")))
+        icon dest)
+    (while icons
+      (setq icon  (car icons)
+           icons (cdr icons)
+           dest  (expand-file-name (file-name-nondirectory icon) PIXMAPDIR))
+      (princ (format "%s -> %s\n"
+                    (file-name-nondirectory icon)
+                    (substring (file-name-directory dest) 0 -1)))
+      (copy-file icon dest t))))
+
 ;;; EMH-MK ends here