;;; -*-Emacs-Lisp-*-

;; SEMI-CFG: installation setting about SEMI.

;;; Code:

(defvar default-load-path load-path)

(add-to-list 'load-path
	     (expand-file-name "../../site-lisp/apel" data-directory))
(add-to-list 'load-path
	     (expand-file-name "." data-directory))

(if (boundp 'LISPDIR)
    (progn
      (add-to-list 'default-load-path LISPDIR)
      (add-to-list 'load-path LISPDIR)
      (add-to-list 'load-path (expand-file-name "apel" LISPDIR))
      ))

(defvar VERSION_SPECIFIC_LISPDIR nil)

(if VERSION_SPECIFIC_LISPDIR
    (add-to-list 'load-path VERSION_SPECIFIC_LISPDIR))

(condition-case nil
    (require 'install)
  (error (error "Please install APEL 8.7 or later.")))

(add-path "bitmap-mule")
(add-path "flim")

(add-to-list 'load-path (expand-file-name "."))

(or (module-installed-p 'calist)
    (error "Please install APEL 8.7 or later."))
(or (module-installed-p 'mime)
    (error "Please install FLIM 1.6.0 or later."))
(if (module-installed-p 'tm-view)
    (message "Please remove tm from load-path."))


;;; @ Please specify optional package directory if you use them.
;;;

;; It is only necessary to use `add-path' if these packages are not
;; already on the standard load-path of Emacs.

;; Function `get-latest-path' detect latest version of such package
;; under load-path directories. If you want to use a version of a
;; package instead of latest version, please specify by argument of
;; function `add-path'.

;; Function `add-path' finds path under load-path directories. If a
;; package does not exist in load-path, please specify by absolutely
;; (`~/' is available), for example
;;	(add-path "~/lib/elisp/mailcrypt-3.4")
;; or
;;	(add-path "/opt/share/xmule/site-lisp/mailcrypt-3.4")


;;; @@ Please specify Mailcrypt path.
;;;

;; Use latest version installed in load-path.

(let ((path (get-latest-path "mailcrypt" 'all-paths)))
  (if path
      (add-path path)
    ))

;; Or please specify path.
;; (add-path "mailcrypt-3.4" 'all-paths)


;;; @@ Please specify BBDB path.
;;;

(let ((path (get-latest-path "bbdb" 'all-paths)))
  (when path
    (add-path path)
    (add-path (expand-file-name "lisp" path)) ; run-in-place installation
    ))

;; Or please specify path.
;; (add-path "bbdb-1.50" 'all-paths)


;;;
;;; @@ Please specify Emacs/W3 path.
;;;

(let ((path (get-latest-path "w3" 'all-paths)))
  (when path
    (add-path path)
    (add-path (expand-file-name "lisp" path)) ; run-in-place installation
    ))

;; Or please specify path.
;; (add-path "w3-4.0pre.20" 'all-paths)


;;;
;;; @@ Please specify CUSTOM path.
;;;

(add-latest-path "custom")


;;; @ Please specify prefix of install directory.
;;;

;; Please specify install path prefix.
;; If it is omitted, shared directory (maybe /usr/local is used).
(defvar PREFIX install-prefix)
;;(setq PREFIX "~/")

;; Please specify install path prefix for binaries.
(defvar EXEC_PREFIX
  (if (or running-emacs-18 running-xemacs)
      (expand-file-name "../../.." exec-directory)
    (expand-file-name "../../../.." exec-directory)
    ))

;; Please specify emu prefix [optional]
(setq EMU_PREFIX
      (if (string-match "XEmacs" emacs-version)
	  "emu"
	""))

;; Please specify SEMI prefix [optional]
(setq SEMI_PREFIX "semi")


;;; @ executables
;;;

;; Please specify binary path.
(defvar BIN_DIR (expand-file-name "bin" EXEC_PREFIX))

;; Please specify binary path. (for external method scripts)
(setq METHOD_DIR (expand-file-name "share/semi" PREFIX))




;;; @ optional settings
;;;

;; It is generated by automatically. Please set variable `PREFIX'.
;; If you don't like default directory tree, please set it.
(defvar LISPDIR (install-detect-elisp-directory PREFIX))
;; (setq install-default-elisp-directory "~/lib/emacs/lisp")

(setq SEMI_KERNEL_DIR	(expand-file-name SEMI_PREFIX	LISPDIR))
(setq SETUP_FILE_DIR	SEMI_KERNEL_DIR)

(setq METHOD_SRC_DIR "methods")
(setq METHODS
      '("tm-au" "tm-file" "tm-html" "tm-image" "tm-mpeg"
	"tm-plain" "tm-ps"
	"tmdecode"))

(defvar PACKAGEDIR
  (if (boundp 'early-packages)
      (let ((dirs (append (if early-package-load-path
			      early-packages)
			  (if late-package-load-path
			      late-packages)
			  (if last-package-load-path
			      last-packages)))
	    dir)
	(while (not (file-exists-p
		     (setq dir (car dirs))))
	  (setq dirs (cdr dirs)))
	dir)))

;;; SEMI-CFG ends here
