Pluggable Storage Engineの --with-mysql の実装

Brianが書いたコードはこんな感じだったのだけど、

AC_MSG_CHECKING(for mysql source code)
AC_ARG_WITH(mysql,
[[  --with-mysql[=mysql src directory]
                      Source requir to build engine.]],
[
  if test -d "$withval/sql"; then
    MYSQL_SRC="$i/mysql_config"
  fi

  AC_DEFINE([MYSQL_SRC], [1], [Source directory for MySQL])
  MYSQL_INC="-I$withval/sql -I$withval/include -I$withval/regex -I$withval"
  AC_MSG_RESULT(["$withval"])
],
[
  AC_MSG_ERROR(["no mysql source provided"])
])

MYSQL_SRC="$i/mysql_config"の意味が分からず。。。AC_DEFINE([MySQL_SRC]...)も何か意味あるのかな?

いろいろ考えた末、こんな感じにしてみた。

AC_MSG_CHECKING([mysql source])
AC_ARG_WITH([mysql],
  [AS_HELP_STRING([--with-mysql=PATH],[mysql source directory PATH])],
  [
    if test -f $withval/include/mysql/plugin.h ; then
      MYSQL_INC="-I$withval/sql -I$withval/include -I$withval/regex -I$withval";
      AC_SUBST(MYSQL_INC)
      AC_MSG_RESULT([yes])
    else
      AC_MSG_ERROR([invalid mysql source directory])
    fi
   ],
  [AC_MSG_ERROR([--with-mysql=PATH is required])])

AS_HELP_STRINGを使うようにしてみたり、include/mysql/plugin.hの存在判定に変えてみたり、チェック後のメッセージを少し分かりやすくしてみたり。

クラッチで書いて、やっとconfigureオプションの実装方法が身につきつつある感じ・・。