mariadb/config/ac-macros/plugins.m4
acurtis@xiphis.org e2ac9dda83 WL#3201
post-merge fixes
2006-04-24 14:32:45 -07:00

683 lines
20 KiB
Text

dnl ===========================================================================
dnl Support for plugable mysql server modules
dnl ===========================================================================
dnl
dnl WorkLog#3201
dnl
dnl Framework for pluggable static and dynamic modules for mysql
dnl
dnl ---------------------------------------------------------------------------
dnl Macro: MYSQL_MODULE
dnl
dnl Syntax:
dnl MYSQL_MODULE([name],[Plugin module name],
dnl [Plugin module description],
dnl [group,group...])
dnl
dnl What it does:
dnl First declaration for a plugin module (mandatory).
dnl Adds module as member to configuration groups (if specified)
dnl
dnl ---------------------------------------------------------------------------
AC_DEFUN([MYSQL_MODULE],[ dnl
_MYSQL_MODULE(
[$1],
[__MYSQL_MODULE_]AS_TR_CPP([$1])[__],
m4_default([$2], [$1 plugin]),
m4_default([$3], [plugin for $1]),
m4_default([$4], []),
) dnl
])
AC_DEFUN([_MYSQL_MODULE],[ dnl
m4_ifdef([$2], [ dnl
AC_FATAL([[Duplicate MYSQL_MODULE declaration for ]][$3]) dnl
],[ dnl
m4_define([$2], [$1]) dnl
_MYSQL_PLUGAPPEND([__mysql_plugin_list__],[$1]) dnl
m4_define([MYSQL_MODULE_NAME_]AS_TR_CPP([$1]), [$3]) dnl
m4_define([MYSQL_MODULE_DESC_]AS_TR_CPP([$1]), [$4]) dnl
ifelse([$5], [], [], [ dnl
_MYSQL_PLUGAPPEND_OPTS([$1], $5) dnl
]) dnl
]) dnl
])
dnl ---------------------------------------------------------------------------
dnl Macro: MYSQL_STORAGE_ENGINE
dnl
dnl What it does:
dnl Short cut for storage engine declarations
dnl
dnl ---------------------------------------------------------------------------
AC_DEFUN([MYSQL_STORAGE_ENGINE],[ dnl
MYSQL_MODULE([$1], [$3], [$4], [[$5]]) dnl
MYSQL_MODULE_DEFINE([$1], [WITH_]AS_TR_CPP([$1])[_STORAGE_ENGINE]) dnl
ifelse([$2],[no],[],[ dnl
_MYSQL_LEGACY_STORAGE_ENGINE([$1],m4_default([$2], [$1-storage-engine])) dnl
]) dnl
])
AC_DEFUN([_MYSQL_LEGACY_STORAGE_ENGINE],[
if test "[${with_]m4_bpatsubst($2, -, _)[+set}]" = set; then
[with_module_]m4_bpatsubst($1, -, _)="[$with_]m4_bpatsubst($2, -, _)"
fi dnl
])
dnl ---------------------------------------------------------------------------
dnl Macro: MYSQL_MODULE_DEFINE
dnl
dnl What it does:
dnl When a plugin module is to be statically linked, define the C macro
dnl
dnl ---------------------------------------------------------------------------
AC_DEFUN([MYSQL_MODULE_DEFINE],[ dnl
REQUIRE_PLUGIN([$1]) dnl
m4_define([MYSQL_MODULE_DEFINE_]AS_TR_CPP([$1]), [$2]) dnl
])
dnl ---------------------------------------------------------------------------
dnl Macro: MYSQL_MODULE_DIRECTORY
dnl
dnl What it does:
dnl Adds a directory to the build process
dnl
dnl ---------------------------------------------------------------------------
AC_DEFUN([MYSQL_MODULE_DIRECTORY],[ dnl
REQUIRE_PLUGIN([$1]) dnl
m4_define([MYSQL_MODULE_DIRECTORY_]AS_TR_CPP([$1]), [$2]) dnl
])
dnl ---------------------------------------------------------------------------
dnl Macro: MYSQL_MODULE_STATIC
dnl
dnl What it does:
dnl Declare the name for the static library
dnl
dnl ---------------------------------------------------------------------------
AC_DEFUN([MYSQL_MODULE_STATIC],[ dnl
REQUIRE_PLUGIN([$1]) dnl
m4_define([MYSQL_MODULE_STATIC_]AS_TR_CPP([$1]), [$2]) dnl
])
dnl ---------------------------------------------------------------------------
dnl Macro: MYSQL_MODULE_DYNAMIC
dnl
dnl What it does:
dnl Declare the name for the shared library
dnl
dnl ---------------------------------------------------------------------------
AC_DEFUN([MYSQL_MODULE_DYNAMIC],[ dnl
REQUIRE_PLUGIN([$1]) dnl
m4_define([MYSQL_MODULE_DYNAMIC_]AS_TR_CPP([$1]), [$2]) dnl
])
dnl ---------------------------------------------------------------------------
dnl Macro: MYSQL_MODULE_MANDATORY
dnl
dnl What it does:
dnl Marks the specified plugin as a mandatory module
dnl
dnl ---------------------------------------------------------------------------
AC_DEFUN([MYSQL_MODULE_MANDATORY],[ dnl
REQUIRE_PLUGIN([$1]) dnl
_MYSQL_MODULE_MANDATORY([$1],
[MYSQL_MODULE_MANDATORY_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1])
) dnl
])
AC_DEFUN([_MYSQL_MODULE_MANDATORY],[ dnl
m4_define([$2], [yes]) dnl
m4_ifdef([$3], [ dnl
AC_WARNING([syntax],[Mandatory plugin $1 has been disabled]) dnl
m4_undefine([$2]) dnl
]) dnl
])
dnl ---------------------------------------------------------------------------
dnl Macro: MYSQL_MODULE_DISABLED
dnl
dnl What it does:
dnl Marks the specified plugin as a disabled module
dnl
dnl ---------------------------------------------------------------------------
AC_DEFUN([MYSQL_MODULE_DISABLED],[ dnl
REQUIRE_PLUGIN([$1]) dnl
_MYSQL_MODULE_DISABLED([$1],
[MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]),
[MYSQL_MODULE_MANDATORY_]AS_TR_CPP([$1])
) dnl
])
AC_DEFUN([_MYSQL_MODULE_DISABLED],[ dnl
m4_define([$2], [yes]) dnl
m4_ifdef([$3], [ dnl
AC_FATAL([attempt to disable mandatory plugin $1]) dnl
m4_undefine([$2]) dnl
]) dnl
])
dnl ---------------------------------------------------------------------------
dnl Macro: MYSQL_MODULE_DEPENDS
dnl
dnl What it does:
dnl Enables other modules neccessary for this module
dnl Dependency checking is not recursive so if any
dnl required module requires further modules, list them
dnl here too!
dnl
dnl ---------------------------------------------------------------------------
AC_DEFUN([MYSQL_MODULE_DEPENDS],[ dnl
REQUIRE_PLUGIN([$1]) dnl
ifelse($#, 0, [], $#, 1, [ dnl
AC_FATAL([[bad number of arguments]]) dnl
], $#, 2, [ dnl
_MYSQL_MODULE_DEPEND([$1],[$2]) dnl
],[ dnl
_MYSQL_MODULE_DEPEND([$1],[$2]) dnl
MYSQL_MODULE_DEPENDS([$1], m4_shift(m4_shift($@))) dnl
])
])
AC_DEFUN([_MYSQL_MODULE_DEPEND],[ dnl
REQUIRE_PLUGIN([$2]) dnl
_MYSQL_PLUGAPPEND([__mysql_plugdepends_$1__],[$2]) dnl
])
dnl ---------------------------------------------------------------------------
dnl Macro: MYSQL_MODULE_ACTIONS
dnl
dnl What it does:
dnl Declares additional actions required to configure the module
dnl
dnl ---------------------------------------------------------------------------
AC_DEFUN([MYSQL_MODULE_ACTIONS],[ dnl
REQUIRE_PLUGIN([$1]) dnl
m4_ifdef([$2],[ dnl
m4_define([MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1]),m4_defn([$2])) dnl
],[ dnl
m4_define([MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1]), [$2]) dnl
])
])
dnl ---------------------------------------------------------------------------
dnl Macro: MYSQL_CONFIGURE_PLUGINS
dnl
dnl What it does:
dnl Called last, emits all required shell code to configure the modules
dnl
dnl ---------------------------------------------------------------------------
AC_DEFUN([MYSQL_CONFIGURE_PLUGINS],[ dnl
m4_ifdef([__mysql_plugin_configured__],[ dnl
AC_FATAL([cannot call [MYSQL_CONFIGURE_PLUGINS] multiple times]) dnl
],[ dnl
m4_define([__mysql_plugin_configured__],[done]) dnl
m4_ifdef([__mysql_plugin_list__],[ dnl
_MYSQL_CHECK_PLUGIN_ARGS([$1])
_MYSQL_CONFIGURE_PLUGINS(m4_bpatsubst(__mysql_plugin_list__, :, [,]))
_MYSQL_DO_PLUGIN_ACTIONS(m4_bpatsubst(__mysql_plugin_list__, :, [,]))
_MYSQL_POST_PLUGIN_FIXUP()
]) dnl
]) dnl
])
AC_DEFUN([_MYSQL_CONFIGURE_PLUGINS],[ dnl
ifelse($#, 0, [], $#, 1, [ dnl
_MYSQL_CHECK_PLUGIN([$1]) dnl
],[ dnl
_MYSQL_CHECK_PLUGIN([$1]) dnl
_MYSQL_CONFIGURE_PLUGINS(m4_shift($@)) dnl
])
])
AC_DEFUN([_MYSQL_CHECK_PLUGIN],[ dnl
_DO_MYSQL_CHECK_PLUGIN(
[$1],
[$1-plugin],
[MYSQL_MODULE_NAME_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DESC_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DEFINE_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DIRECTORY_]AS_TR_CPP([$1]),
[MYSQL_MODULE_STATIC_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DYNAMIC_]AS_TR_CPP([$1]),
[MYSQL_MODULE_MANDATORY_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]),
[MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1])
) dnl
])
AC_DEFUN([_DO_MYSQL_CHECK_PLUGIN],[ dnl
m4_ifdef([$5],[ dnl
AH_TEMPLATE($5, [Include ]$4[ into mysqld])
])
AC_MSG_CHECKING([whether to use ]$3) dnl
m4_ifdef([$10],[
if test "[$mysql_module_]m4_bpatsubst([$1], -, _)" = yes -a \
"[$with_module_]m4_bpatsubst([$1], -, _)" != no -o \
"[$with_module_]m4_bpatsubst([$1], -, _)" = yes; then
AC_MSG_ERROR([disabled])
fi
AC_MSG_RESULT([no]) dnl
],[ dnl
m4_ifdef([$9],[
if test "[$with_module_]m4_bpatsubst([$1], -, _)" = no; then
AC_MSG_ERROR([cannot disable mandatory module])
fi
[mysql_module_]m4_bpatsubst([$1], -, _)=yes dnl
])
if test "[$with_module_]m4_bpatsubst([$1], -, _)" != no; then
if test "[$mysql_module_]m4_bpatsubst([$1], -, _)" != yes -a \
"[$with_module_]m4_bpatsubst([$1], -, _)" != yes; then dnl
m4_ifdef([$8],[ dnl
m4_ifdef([$6],[
mysql_plugin_dirs="$mysql_plugin_dirs $6" dnl
])
AC_SUBST([plugin_]m4_bpatsubst([$1], -, _)[_shared_target], "$8")
AC_SUBST([plugin_]m4_bpatsubst([$1], -, _)[_static_target], [""])
[with_module_]m4_bpatsubst([$1], -, _)=yes
AC_MSG_RESULT([plugin]) dnl
],[
[with_module_]m4_bpatsubst([$1], -, _)=no
AC_MSG_RESULT([no]) dnl
])
else dnl
m4_ifdef([$7],[
ifelse(m4_bregexp($7, [^lib[^.]+\.a$]), -2, [ dnl
m4_ifdef([$6],[
mysql_plugin_dirs="$mysql_plugin_dirs $6"
mysql_plugin_libs="$mysql_plugin_libs -L[\$(top_builddir)]/$6" dnl
])
mysql_plugin_libs="$mysql_plugin_libs dnl
[-l]m4_bregexp($7, [^lib\([^.]+\)], [\1])" dnl
], m4_bregexp($7, [^\\\$]), 0, [ dnl
m4_ifdef([$6],[
mysql_plugin_dirs="$mysql_plugin_dirs $6" dnl
])
mysql_plugin_libs="$mysql_plugin_libs $7" dnl
], [ dnl
m4_ifdef([$6],[
mysql_plugin_dirs="$mysql_plugin_dirs $6"
mysql_plugin_libs="$mysql_plugin_libs \$(top_builddir)/$6/$7" dnl
],[
mysql_plugin_libs="$mysql_plugin_libs $7" dnl
]) dnl
]) dnl
m4_ifdef([$5],[
AC_DEFINE($5) dnl
])
AC_SUBST([plugin_]m4_bpatsubst([$1], -, _)[_static_target], "$7")
AC_SUBST([plugin_]m4_bpatsubst([$1], -, _)[_shared_target], [""]) dnl
],[ dnl
m4_ifdef([$6],[
AC_FATAL([plugin directory specified without library for ]$3) dnl
],[ dnl
m4_ifdef([$5],[
AC_DEFINE($5)
AC_SUBST([plugin_]m4_bpatsubst([$1], -, _)[_static_target], ["yes"])
AC_SUBST([plugin_]m4_bpatsubst([$1], -, _)[_shared_target], [""]) dnl
]) dnl
]) dnl
])
mysql_plugin_defs="$mysql_plugin_defs, [builtin_]m4_bpatsubst([$2], -, _)"
[with_module_]m4_bpatsubst([$1], -, _)=yes
AC_MSG_RESULT([yes])
fi
else
AC_MSG_RESULT([no])
fi dnl
]) dnl
])
AC_DEFUN([_MYSQL_DO_PLUGIN_ACTIONS],[ dnl
ifelse($#, 0, [], $#, 1, [ dnl
_MYSQL_PLUGIN_ACTIONS([$1]) dnl
],[ dnl
_MYSQL_PLUGIN_ACTIONS([$1]) dnl
_MYSQL_DO_PLUGIN_ACTIONS(m4_shift($@)) dnl
])
])
AC_DEFUN([_MYSQL_PLUGIN_ACTIONS],[ dnl
_DO_MYSQL_PLUGIN_ACTIONS(
[$1],
[$1-plugin],
[MYSQL_MODULE_NAME_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DESC_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DEFINE_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DIRECTORY_]AS_TR_CPP([$1]),
[MYSQL_MODULE_STATIC_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DYNAMIC_]AS_TR_CPP([$1]),
[MYSQL_MODULE_MANDATORY_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]),
[MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1])
) dnl
])
AC_DEFUN([_DO_MYSQL_PLUGIN_ACTIONS],[ dnl
m4_ifdef([$10], [], [
if test "[$with_module_]m4_bpatsubst([$1], -, _)" = yes; then
if test -z "[$plugin_]m4_bpatsubst([$1], -, _)[_static_target]" -a \
-z "[$plugin_]m4_bpatsubst([$1], -, _)[_shared_target]"; then
AC_MSG_ERROR([thats strange, $1 failed sanity check])
fi
$11
fi dnl
]) dnl
])
dnl ===========================================================================
dnl Private helper macros
dnl ===========================================================================
AC_DEFUN([REQUIRE_PLUGIN],[ dnl
_REQUIRE_PLUGIN([$1], [__MYSQL_MODULE_]AS_TR_CPP([$1])[__]) dnl
])
define([_REQUIRE_PLUGIN],[ dnl
ifdef([$2],[ dnl
ifelse($2, [$1], [], [ dnl
AC_FATAL([[Misspelt MYSQL_MODULE declaration for ]][$1]) dnl
]) dnl
],[ dnl
AC_FATAL([[Missing MYSQL_MODULE declaration for ]][$1]) dnl
])
])
dnl ---------------------------------------------------------------------------
AC_DEFUN([_MYSQL_MODULE_META_CHECK], [ifelse($#, 0, [], $#, 1, dnl
[_MYSQL_CHECK_PLUGIN_META([$1], [__mysql_]m4_bpatsubst($1, -, _)[_plugins__]) dnl
], dnl
[_MYSQL_CHECK_PLUGIN_META([$1], [__mysql_]m4_bpatsubst($1, -, _)[_plugins__]) dnl
_MYSQL_MODULE_META_CHECK(m4_shift($@))]) dnl
])
AC_DEFUN([_MYSQL_CHECK_PLUGIN_META], [
[$1] ) dnl
m4_ifdef([$2], [
mysql_modules='m4_bpatsubst($2, :, [ ])' dnl
],[
mysql_modules='' dnl
])
;; dnl
])
dnl ---------------------------------------------------------------------------
AC_DEFUN([_MYSQL_PLUGAPPEND],[ dnl
m4_ifdef([$1],[ dnl
m4_define([__plugin_append_tmp__], m4_defn([$1])) dnl
m4_undefine([$1]) dnl
m4_define([$1], __plugin_append_tmp__[:$2]) dnl
m4_undefine([__plugin_append_tmp__]) dnl
],[ dnl
m4_define([$1], [$2]) dnl
$3 dnl
]) dnl
])
AC_DEFUN([_MYSQL_PLUGAPPEND_OPTS],[ dnl
ifelse($#, 0, [], $#, 1, [ dnl
AC_FATAL([[bad number of args]])
], $#, 2, [ dnl
_MYSQL_PLUGAPPEND_OPTONE([$1],[$2]) dnl
],[ dnl
_MYSQL_PLUGAPPEND_OPTONE([$1],[$2]) dnl
_MYSQL_PLUGAPPEND_OPTS([$1], m4_shift(m4_shift($@)))
])
])
AC_DEFUN([_MYSQL_PLUGAPPEND_OPTONE],[ dnl
ifelse([$2], [all], [ dnl
AC_FATAL([[protected plugin group: all]]) dnl
],[ dnl
ifelse([$2], [none], [ dnl
AC_FATAL([[protected plugin group: none]]) dnl
],[ dnl
_MYSQL_PLUGAPPEND([__mysql_$1_configs__],[$2]) dnl
_MYSQL_PLUGAPPEND([__mysql_]m4_bpatsubst($2, -, _)[_plugins__],[$1], [ dnl
_MYSQL_PLUGAPPEND([__mysql_metaplugin_list__],[$2]) dnl
]) dnl
]) dnl
]) dnl
])
dnl ---------------------------------------------------------------------------
AC_DEFUN([MYSQL_LIST_PLUGINS],[ dnl
m4_ifdef([__mysql_plugin_list__],[ dnl
_MYSQL_LIST_PLUGINS(m4_bpatsubst(__mysql_plugin_list__, :, [,])) dnl
]) dnl
])
AC_DEFUN([_MYSQL_LIST_PLUGINS],[ dnl
ifelse($#, 0, [], $#, 1, [ dnl
MYSQL_SHOW_PLUGIN([$1]) dnl
],[ dnl
MYSQL_SHOW_PLUGIN([$1]) dnl
_MYSQL_LIST_PLUGINS(m4_shift($@)) dnl
]) dnl
])
AC_DEFUN([MYSQL_SHOW_PLUGIN],[ dnl
_MYSQL_SHOW_PLUGIN(
[$1],
[$1-plugin],
[MYSQL_MODULE_NAME_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DESC_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DEFINE_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DIRECTORY_]AS_TR_CPP([$1]),
[MYSQL_MODULE_STATIC_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DYNAMIC_]AS_TR_CPP([$1]),
[MYSQL_MODULE_MANDATORY_]AS_TR_CPP([$1]),
[MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]),
[MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1]),
__mysql_[$1]_configs__,
)
])
AC_DEFUN([_MYSQL_SHOW_PLUGIN],[
=== Plug-in: $3 ===
Module Name: [$1]
Description: $4
Supports build: _PLUGIN_BUILD_TYPE([$7],[$8]) dnl
m4_ifdef([$12],[
Configurations: m4_bpatsubst($12, :, [, ])]) dnl
m4_ifdef([$10],[
Status: disabled], [ dnl
m4_ifdef([$9],[
Status: mandatory])])])
AC_DEFUN([_PLUGIN_BUILD_TYPE], dnl
[m4_ifdef([$1],[ifelse($1,[no],[],[static ]m4_ifdef([$2],[and dnl
]))])[]m4_ifdef([$2],[dynamic],[m4_ifdef([$1],[],[static])])])
dnl ---------------------------------------------------------------------------
AC_DEFUN([_MYSQL_MODULE_ARGS_CHECK],[ dnl
ifelse($#, 0, [], $#, 1, [ dnl
_MYSQL_CHECK_PLUGIN_ARG([$1],
[MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]),
[MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1])) dnl
],[ dnl
_MYSQL_CHECK_PLUGIN_ARG([$1],
[MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]),
[MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1])) dnl
_MYSQL_MODULE_ARGS_CHECK(m4_shift($@)) dnl
]) dnl
])
AC_DEFUN([_MYSQL_CHECK_PLUGIN_ARG],[ dnl
m4_ifdef([$3], [], [m4_define([$3],[ ])])
[$1] ) dnl
m4_ifdef([$2],[
AC_MSG_ERROR([plugin $1 is disabled]) dnl
],[
[mysql_module_]m4_bpatsubst([$1], -, _)=yes dnl
])
;; dnl
])
AC_DEFUN([_MYSQL_SANE_VARS], [ dnl
ifelse($#, 0, [], $#, 1, [ dnl
_MYSQL_SANEVAR([$1]) dnl
],[ dnl
_MYSQL_SANEVAR([$1]) dnl
_MYSQL_SANE_VARS(m4_shift($@)) dnl
]) dnl
])
AC_DEFUN([_MYSQL_SANEVAR], [
test -z "[$mysql_module_]m4_bpatsubst([$1], -, _)" && dnl
[mysql_module_]m4_bpatsubst([$1], -, _)='.'
test -z "[$with_module_]m4_bpatsubst([$1], -, _)" && dnl
[with_module_]m4_bpatsubst([$1], -, _)='.' dnl
])
AC_DEFUN([_MYSQL_CHECK_DEPENDENCIES], [ dnl
ifelse($#, 0, [], $#, 1, [ dnl
_MYSQL_CHECK_DEPENDS([$1],[__mysql_plugdepends_$1__]) dnl
],[ dnl
_MYSQL_CHECK_DEPENDS([$1],[__mysql_plugdepends_$1__]) dnl
_MYSQL_CHECK_DEPENDENCIES(m4_shift($@)) dnl
]) dnl
])
AC_DEFUN([_MYSQL_CHECK_DEPENDS], [ dnl
m4_ifdef([$2], [
if test "[$mysql_module_]m4_bpatsubst([$1], -, _)" = yes -a \
"[$with_module_]m4_bpatsubst([$1], -, _)" != no -o \
"[$with_module_]m4_bpatsubst([$1], -, _)" = yes; then dnl
_MYSQL_GEN_DEPENDS(m4_bpatsubst($2, :, [,]))
fi dnl
]) dnl
])
AC_DEFUN([_MYSQL_GEN_DEPENDS], [ dnl
ifelse($#, 0, [], $#, 1, [ dnl
_MYSQL_GEN_DEPEND([$1]) dnl
],[ dnl
_MYSQL_GEN_DEPEND([$1]) dnl
_MYSQL_GEN_DEPENDS(m4_shift($@)) dnl
]) dnl
])
AC_DEFUN([_MYSQL_GEN_DEPEND], [ dnl
m4_ifdef([MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]),[
AC_MSG_ERROR([depends upon disabled module $1]) dnl
],[
[mysql_module_]m4_bpatsubst([$1], -, _)=yes
if test "[$with_module_]m4_bpatsubst([$1], -, _)" = no; then
AC_MSG_ERROR([depends upon disabled module $1])
fi dnl
]) dnl
])
AC_DEFUN([_MYSQL_CHECK_PLUGIN_ARGS],[
AC_ARG_WITH([modules], [
--with-modules=PLUGIN[[,PLUGIN..]]
m4_text_wrap([Plugin modules to include in mysqld. (default is: $1)
Must be configuration name or a comma seperated list of modules.],
[ ])
m4_text_wrap([Available configurations are: ]
m4_bpatsubst(m4_ifdef([__mysql_metaplugin_list__], dnl
none:all:__mysql_metaplugin_list__,none:all), :, [ ])[.],
[ ])
m4_text_wrap([Available plugin modules are: ] dnl
m4_bpatsubst(__mysql_plugin_list__, :, [ ])[.], [ ])
--without-module-PLUGIN
m4_text_wrap([Disable the named module from being built. Otherwise,
for modules which are not selected for inclusion in mysqld will be
built dynamically (if supported)],[ ])
],[mysql_modules="`echo $withval | tr ',.:;*[]' ' '`"],
[mysql_modules=['$1']])
m4_divert_once([HELP_VAR_END],[
Description of plugin modules:
m4_indir([MYSQL_LIST_PLUGINS])
])
case "$mysql_modules" in
all )
mysql_modules='m4_bpatsubst(__mysql_plugin_list__, :, [ ])'
;;
none )
mysql_modules=''
;; dnl
m4_ifdef([__mysql_metaplugin_list__],[ dnl
_MYSQL_MODULE_META_CHECK(m4_bpatsubst(__mysql_metaplugin_list__, :, [,])) dnl
])
esac
for plugin in $mysql_modules; do
case "$plugin" in
all )
AC_MSG_ERROR([bad module name: $plugin])
;;
none )
AC_MSG_ERROR([bad module name: $plugin])
;; dnl
_MYSQL_MODULE_ARGS_CHECK(m4_bpatsubst(__mysql_plugin_list__, :, [,]))
* )
AC_MSG_ERROR([unknown plugin module: $plugin])
;;
esac
done
_MYSQL_SANE_VARS(m4_bpatsubst(__mysql_plugin_list__, :, [,]))
_MYSQL_CHECK_DEPENDENCIES(m4_bpatsubst(__mysql_plugin_list__, :, [,]))
])
AC_DEFUN([_MYSQL_POST_PLUGIN_FIXUP],[
for plugdir in $mysql_plugin_dirs; do
case "$plugdir" in
storage/* )
mysql_se_dirs="$mysql_se_dirs `echo $plugdir | sed -e 's@^storage/@@'`"
;;
plugin/* )
mysql_pg_dirs="$mysql_pg_dirs `echo $plugdir | sed -e 's@^plugin/@@'`"
;;
*)
AC_MSG_ERROR([don't know how to handle plugin dir $plugdir])
;;
esac
done
AC_SUBST(mysql_se_dirs)
AC_SUBST(mysql_pg_dirs)
])
dnl ===========================================================================