;;; -*-Emacs-Lisp-*- ;; EMH-MK: installer for EMH. ;;; Code: (defun config-emh () (let (prefix lisp-dir version-specific-lisp-dir) (and (setq prefix (car command-line-args-left)) (or (string-equal "NONE" prefix) (defvar PREFIX prefix) )) (setq command-line-args-left (cdr command-line-args-left)) (and (setq lisp-dir (car command-line-args-left)) (or (string-equal "NONE" lisp-dir) (defvar LISPDIR lisp-dir) )) (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) (compile-elisp-modules emh-modules ".") ) (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