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