;;; -*-Emacs-Lisp-*-
;;;
;;; $Id: CANNA-CONFIG,v 1.3 1999/03/02 19:20:31 morioka Exp $
;;;

(load "apel/path-util")
(add-path "apel")

(defun config-canna ()
  (let ((emacs (car command-line-args))
	(srcdir (expand-file-name "src" source-directory))
	prefix canna-includes canna-libraries arg)
    (while (setq arg (car command-line-args-left))
      (cond ((string-match "^--prefix=" arg)
	     (setq prefix (substring arg (match-end 0))))
	    ((string-match "^--with-canna-includes=" arg)
	     (setq canna-includes (substring arg (match-end 0))))
	    ((string-match "^--with-canna-libraries=" arg)
	     (setq canna-libraries (substring arg (match-end 0))))
	    )
      (setq command-line-args-left (cdr command-line-args-left))
      )
    (or prefix
	(progn
	  (require 'install)
	  (setq prefix install-prefix))
	)
    (or canna-includes
	(setq canna-includes
	      (expand-file-name "include"
				(let ((default-load-path '("/usr/local")))
				  (require 'path-util)
				  (add-path prefix)
				  (get-latest-path "canna")
				  ))))
    (or canna-libraries
	(setq canna-libraries
	      (let ((default-load-path '("/usr/local/lib" "/usr/lib"))
		    dir)
		(require 'path-util)
		(add-path (expand-file-name "lib" prefix))
		(while (and (setq dir (car default-load-path))
			    (not (file-exists-p
				  (expand-file-name "libcanna.a" dir)))
			    )
		  (setq default-load-path (cdr default-load-path)))
		dir)))
    (princ (format "\
emacs=%s
srcdir=%s
archlibdir=%s
canna-includes=%s
canna-libraries=%s
" 
		   emacs srcdir exec-directory
		   canna-includes canna-libraries))
    (make-canna-makefile emacs srcdir canna-includes canna-libraries)
    ))

(defun make-canna-makefile (emacs srcdir canna-includes canna-libraries)
  (if (file-exists-p "Makefile")
      (delete-file  "Makefile")
    )
  (if (string-match "sparc-sun-solaris2" system-configuration)
      (setq canna-libraries (concat canna-libraries " -R" canna-libraries))
    )
  (let ((buf (let (vc-follow-symlinks)
	       (find-file "Makefile.in")
	       )))
    (setq buffer-read-only nil)
    (goto-char (point-min))
    (and (re-search-forward "${emacs}")
	 (replace-match emacs))
    (goto-char (point-min))
    (and (re-search-forward "${srcdir}")
	 (replace-match srcdir))
    (goto-char (point-min))
    (and (re-search-forward "${archlibdir}")
	 (replace-match exec-directory))
    (goto-char (point-min))
    (and (re-search-forward "${canna_includes}")
	 (replace-match canna-includes))
    (goto-char (point-min))
    (and (re-search-forward "${canna_libraries}")
	 (replace-match canna-libraries))
    (write-file "Makefile")
    ))

;;; CANNA-CONFIG ends here
