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オプションの実装方法が身につきつつある感じ・・。