update.
[elisp/emacs-canna.git] / CANNA-CONFIG
1 ;;; -*-Emacs-Lisp-*-
2 ;;;
3 ;;; $Id: CANNA-CONFIG,v 1.3 1999-03-02 19:20:31 morioka Exp $
4 ;;;
5
6 (load "apel/path-util")
7 (add-path "apel")
8
9 (defun config-canna ()
10   (let ((emacs (car command-line-args))
11         (srcdir (expand-file-name "src" source-directory))
12         prefix canna-includes canna-libraries arg)
13     (while (setq arg (car command-line-args-left))
14       (cond ((string-match "^--prefix=" arg)
15              (setq prefix (substring arg (match-end 0))))
16             ((string-match "^--with-canna-includes=" arg)
17              (setq canna-includes (substring arg (match-end 0))))
18             ((string-match "^--with-canna-libraries=" arg)
19              (setq canna-libraries (substring arg (match-end 0))))
20             )
21       (setq command-line-args-left (cdr command-line-args-left))
22       )
23     (or prefix
24         (progn
25           (require 'install)
26           (setq prefix install-prefix))
27         )
28     (or canna-includes
29         (setq canna-includes
30               (expand-file-name "include"
31                                 (let ((default-load-path '("/usr/local")))
32                                   (require 'path-util)
33                                   (add-path prefix)
34                                   (get-latest-path "canna")
35                                   ))))
36     (or canna-libraries
37         (setq canna-libraries
38               (let ((default-load-path '("/usr/local/lib" "/usr/lib"))
39                     dir)
40                 (require 'path-util)
41                 (add-path (expand-file-name "lib" prefix))
42                 (while (and (setq dir (car default-load-path))
43                             (not (file-exists-p
44                                   (expand-file-name "libcanna.a" dir)))
45                             )
46                   (setq default-load-path (cdr default-load-path)))
47                 dir)))
48     (princ (format "\
49 emacs=%s
50 srcdir=%s
51 archlibdir=%s
52 canna-includes=%s
53 canna-libraries=%s
54
55                    emacs srcdir exec-directory
56                    canna-includes canna-libraries))
57     (make-canna-makefile emacs srcdir canna-includes canna-libraries)
58     ))
59
60 (defun make-canna-makefile (emacs srcdir canna-includes canna-libraries)
61   (if (file-exists-p "Makefile")
62       (delete-file  "Makefile")
63     )
64   (if (string-match "sparc-sun-solaris2" system-configuration)
65       (setq canna-libraries (concat canna-libraries " -R" canna-libraries))
66     )
67   (let ((buf (let (vc-follow-symlinks)
68                (find-file "Makefile.in")
69                )))
70     (setq buffer-read-only nil)
71     (goto-char (point-min))
72     (and (re-search-forward "${emacs}")
73          (replace-match emacs))
74     (goto-char (point-min))
75     (and (re-search-forward "${srcdir}")
76          (replace-match srcdir))
77     (goto-char (point-min))
78     (and (re-search-forward "${archlibdir}")
79          (replace-match exec-directory))
80     (goto-char (point-min))
81     (and (re-search-forward "${canna_includes}")
82          (replace-match canna-includes))
83     (goto-char (point-min))
84     (and (re-search-forward "${canna_libraries}")
85          (replace-match canna-libraries))
86     (write-file "Makefile")
87     ))
88
89 ;;; CANNA-CONFIG ends here