;;; -*-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))
    )
  (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 ()
  (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)
  )

(defun install-execs ()
  (config-semi)
  (install-files METHODS METHOD_SRC_DIR METHOD_DIR nil t)
  )

(defun config-semi-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 "SEMI-CFG")
    (load-file "SEMI-ELS")
					  
    (princ (format "PACKAGEDIR=%s\n" PACKAGEDIR))
    ))

(defun compile-semi-package ()
  (config-semi-package)

  (setq autoload-package-name "semi")
  (add-to-list 'command-line-args-left ".")
  (batch-update-directory)

  (add-to-list 'command-line-args-left ".")
  (Custom-make-dependencies)

  (compile-elisp-modules (append semi-modules-to-compile
				 '(mime-setup auto-autoloads custom-load))
			 ".")
  )

(defun install-semi-package ()
  (config-semi-package)
  (install-elisp-modules (append semi-modules
				 '(mime-setup auto-autoloads custom-load))
			 "./"
			 (expand-file-name SEMI_PREFIX
					   (expand-file-name "lisp"
							     PACKAGEDIR)))
  (delete-file "./auto-autoloads.el")
  (delete-file "./custom-load.el")
  )

;;; SEMI-MK ends here
