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

;; SEMI-MK: installer for SEMI.

;;; Code:

(defun config-semi ()
  (let (prefix exec-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))
    (and (setq package-lisp-dir (car command-line-args-left))
	 (or (string-equal "NONE" package-lisp-dir)
	     (progn
	       (defvar PACKAGE_LISPDIR
		 (if (boundp (intern package-lisp-dir))
		     (symbol-value (intern package-lisp-dir))
		   package-lisp-dir))
	       (princ (format "PACKAGE_LISPDIR=%s\n"
			      PACKAGE_LISPDIR)))))
    (setq command-line-args-left (cdr command-line-args-left)))
  (load-file "SEMI-CFG")
  (load-file "SEMI-ELS")
  (princ (format "PREFIX=%s
LISPDIR=%s\n" PREFIX LISPDIR))
  )

(defun directory= (dir1 dir2)
  (string= (file-name-as-directory dir1)(file-name-as-directory dir2))
  )

(defun compile-semi ()
  ;; to avoid to read situation-examples-file at compile time.
  (setq mime-situation-examples-file nil)
  (config-semi)
  (print load-path)
  (compile-elisp-modules semi-modules-to-compile ".")
  (compile-elisp-module  'mime-setup		".")
  )

(defun install-semi ()
  (config-semi)
  (princ (format "%s\n" emacs-version))
  (install-elisp-modules semi-modules	 "."	SEMI_KERNEL_DIR)
  (install-elisp-modules '(mime-setup)	 "."	SETUP_FILE_DIR)
  )

;;; SEMI-MK ends here
