[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

[patch] AC_PATH_EMACS



configure のオプション --with-emacs, --with-xemacs を変更して、
Emacsen のフルパスを指定できる様にしてみました。

添付したパッチを当てて configure を作り直してから、configure を

 ./configure --with-emacs=/usr/local/bin/emacs    ... (1)

の様に実行すると、Makefile の変数 EMACS の値が /usr/local/bin/emacs に
設定されます。(パッチを当てない状態だと EMACS=emacs になります。)
これにより、例えば

  /usr/bin に emacs 20.X、
  /usr/local/bin に emacs 21.Y

がインストールされている環境で /usr/local/bin よりも /usr/bin が
PATH の先にある場合でも、/usr/local/bin/emacs を使って emacs-w3m
のコンパイルとインストールができます。

現状でも configure を

  ./configure --with-emacs=emacs-21.Y
  ./configure --with-emacs=/usr/local/bin/emacs-21.Y
  env EMACS=/usr/local/bin/emacs ./configure

等とすれば、指定したバージョンの Emacsen 用に Makefile を生成できる
のですが、(1) の様に指定した場合だけうまくいきませんでした。

パッチの内容は、aclocal.m4 のマクロ AC_CHECK_EMACS を copy & paste
して AC_PATH_EMACS というマクロを作り、その中で呼ばれている
AC_CHECK_PRG(S) を AC_PATH_PROG(S) に置き換えているだけです。


--
岡崎 哲朗
Index: aclocal.m4
===================================================================
RCS file: /storage/cvsroot/emacs-w3m/aclocal.m4,v
retrieving revision 1.9
diff -u -r1.9 aclocal.m4
--- aclocal.m4	2002/03/07 04:55:46	1.9
+++ aclocal.m4	2002/07/06 14:25:45
@@ -66,6 +66,54 @@
   esac
   AC_MSG_RESULT(${flavor})])
 
+AC_DEFUN(AC_PATH_EMACS,
+ [dnl Check for Emacsen.
+
+  dnl Apparently, if you run a shell window in Emacs, it sets the EMACS
+  dnl environment variable to 't'.  Lets undo the damage.
+  test x${EMACS} = xt && EMACS=
+
+  dnl Ignore cache.
+  unset ac_cv_prog_EMACS; unset EMACS_cv_SYS_flavor;
+
+  AC_ARG_WITH(emacs,
+   [  --with-emacs=EMACS      compile with EMACS [EMACS=emacs, xemacs, mule...]],
+   [if test "${withval}" = yes -o -z "${withval}"; then
+      AC_PATH_PROGS(EMACS, emacs xemacs mule, emacs)
+    else
+      AC_PATH_PROG(EMACS, ${withval}, ${withval}, emacs)
+    fi])
+  AC_ARG_WITH(xemacs,
+   [  --with-xemacs=XEMACS    compile with XEMACS [XEMACS=xemacs]],
+   [if test x$withval = xyes -o x$withval = x; then
+      AC_PATH_PROG(EMACS, xemacs, xemacs, xemacs)
+    else
+      AC_PATH_PROG(EMACS, $withval, $withval, xemacs)
+    fi])
+  test -z "${EMACS}" && AC_PATH_PROGS(EMACS, emacs xemacs mule, emacs)
+  AC_SUBST(EMACS)
+  
+  AC_MSG_CHECKING([what a flavor does ${EMACS} have])
+  AC_EMACS_LISP(flavor,
+    (cond ((featurep (quote xemacs)) \"XEmacs\")\
+          ((and (boundp (quote emacs-major-version))\
+                (>= emacs-major-version 21))\
+           \"FSF Emacs 21\")\
+          ((boundp (quote MULE)) \"MULE\")\
+          (t \"FSF Emacs\")),
+    noecho)
+  case "${flavor}" in
+  XEmacs)
+    EMACS_FLAVOR=xemacs;;
+  MULE)
+    EMACS_FLAVOR=mule;;
+  "FSF Emacs 21")
+    EMACS_FLAVOR=emacs21;;
+  *)
+    EMACS_FLAVOR=emacs;;
+  esac
+  AC_MSG_RESULT(${flavor})])
+
 AC_DEFUN(AC_EXAMINE_PACKAGEDIR,
  [dnl Examine PACKAGEDIR.
   AC_EMACS_LISP(PACKAGEDIR,
Index: configure.in
===================================================================
RCS file: /storage/cvsroot/emacs-w3m/configure.in,v
retrieving revision 1.3
diff -u -r1.3 configure.in
--- configure.in	2001/03/16 12:00:27	1.3
+++ configure.in	2002/07/06 14:25:45
@@ -1,7 +1,7 @@
 AC_INIT(w3m.el)
 AC_SET_MAKE
 AC_PROG_INSTALL
-AC_CHECK_EMACS
+AC_PATH_EMACS
 AC_PATH_LISPDIR
 AC_PATH_PACKAGEDIR
 AC_PATH_ICONDIR