diff options
Diffstat (limited to 'config/ac-macros/plugins.m4')
-rw-r--r-- | config/ac-macros/plugins.m4 | 551 |
1 files changed, 288 insertions, 263 deletions
diff --git a/config/ac-macros/plugins.m4 b/config/ac-macros/plugins.m4 index 19b951ea467..0ca952c4354 100644 --- a/config/ac-macros/plugins.m4 +++ b/config/ac-macros/plugins.m4 @@ -1,45 +1,45 @@ dnl =========================================================================== -dnl Support for plugable mysql server modules +dnl Support for mysql server plugins dnl =========================================================================== dnl dnl WorkLog#3201 dnl -dnl Framework for pluggable static and dynamic modules for mysql +dnl Framework for pluggable static and dynamic plugins for mysql dnl dnl --------------------------------------------------------------------------- -dnl Macro: MYSQL_MODULE +dnl Macro: MYSQL_PLUGIN dnl -dnl Syntax: -dnl MYSQL_MODULE([name],[Plugin module name], -dnl [Plugin module description], +dnl SYNOPSIS +dnl MYSQL_PLUGIN([name],[Plugin name], +dnl [Plugin 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 DESCRIPTION +dnl First declaration for a plugin (mandatory). +dnl Adds plugin as member to configuration groups (if specified) dnl dnl --------------------------------------------------------------------------- -AC_DEFUN([MYSQL_MODULE],[ - _MYSQL_MODULE( +AC_DEFUN([MYSQL_PLUGIN],[ + _MYSQL_PLUGIN( [$1], - [__MYSQL_MODULE_]AS_TR_CPP([$1])[__], + [__MYSQL_PLUGIN_]AS_TR_CPP([$1])[__], m4_default([$2], [$1 plugin]), m4_default([$3], [plugin for $1]), m4_default([$4], []), ) ]) -AC_DEFUN([_MYSQL_MODULE],[ +AC_DEFUN([_MYSQL_PLUGIN],[ m4_ifdef([$2], [ - AC_FATAL([Duplicate MYSQL_MODULE declaration for $3]) + AC_FATAL([Duplicate MYSQL_PLUGIN declaration for $3]) ],[ m4_define([$2], [$1]) _MYSQL_PLUGAPPEND([__mysql_plugin_list__],[$1]) - m4_define([MYSQL_MODULE_NAME_]AS_TR_CPP([$1]), [$3]) - m4_define([MYSQL_MODULE_DESC_]AS_TR_CPP([$1]), [$4]) + m4_define([MYSQL_PLUGIN_NAME_]AS_TR_CPP([$1]), [$3]) + m4_define([MYSQL_PLUGIN_DESC_]AS_TR_CPP([$1]), [$4]) ifelse([$5], [], [], [ - _MYSQL_PLUGAPPEND_OPTS([$1], $5) + _MYSQL_PLUGAPPEND_META([$1], $5) ]) ]) ]) @@ -48,14 +48,18 @@ AC_DEFUN([_MYSQL_MODULE],[ dnl --------------------------------------------------------------------------- dnl Macro: MYSQL_STORAGE_ENGINE dnl -dnl What it does: +dnl SYNOPSIS +dnl MYSQL_STORAGE_ENGINE([name],[legacy-option],[Storage engine name], +dnl [Storage engine description],[group,group...]) +dnl +dnl DESCRIPTION dnl Short cut for storage engine declarations dnl dnl --------------------------------------------------------------------------- AC_DEFUN([MYSQL_STORAGE_ENGINE],[ - MYSQL_MODULE([$1], [$3], [$4], [[$5]]) - MYSQL_MODULE_DEFINE([$1], [WITH_]AS_TR_CPP([$1])[_STORAGE_ENGINE]) + MYSQL_PLUGIN([$1], [$3], [$4], [[$5]]) + MYSQL_PLUGIN_DEFINE([$1], [WITH_]AS_TR_CPP([$1])[_STORAGE_ENGINE]) ifelse([$2],[no],[],[ _MYSQL_LEGACY_STORAGE_ENGINE( m4_bpatsubst(m4_default([$2], [$1-storage-engine]), -, _)) @@ -64,109 +68,127 @@ AC_DEFUN([MYSQL_STORAGE_ENGINE],[ AC_DEFUN([_MYSQL_LEGACY_STORAGE_ENGINE],[ if test "[${with_]$1[+set}]" = set; then - [with_module_]$1="[$with_]$1" + [with_plugin_]$1="[$with_]$1" fi ]) dnl --------------------------------------------------------------------------- -dnl Macro: MYSQL_MODULE_DEFINE +dnl Macro: MYSQL_PLUGIN_DEFINE +dnl +dnl SYNOPSIS +dnl MYSQL_PLUGIN_DEFILE([name],[MYSQL_CPP_DEFINE]) dnl -dnl What it does: -dnl When a plugin module is to be statically linked, define the C macro +dnl DESCRIPTION +dnl When a plugin is to be statically linked, define the C macro dnl dnl --------------------------------------------------------------------------- -AC_DEFUN([MYSQL_MODULE_DEFINE],[ - REQUIRE_PLUGIN([$1]) - m4_define([MYSQL_MODULE_DEFINE_]AS_TR_CPP([$1]), [$2]) +AC_DEFUN([MYSQL_PLUGIN_DEFINE],[ + MYSQL_REQUIRE_PLUGIN([$1]) + m4_define([MYSQL_PLUGIN_DEFINE_]AS_TR_CPP([$1]), [$2]) ]) dnl --------------------------------------------------------------------------- -dnl Macro: MYSQL_MODULE_DIRECTORY +dnl Macro: MYSQL_PLUGIN_DIRECTORY dnl -dnl What it does: +dnl SYNOPSIS +dnl MYSQL_PLUGIN_DIRECTORY([name],[plugin/dir]) +dnl +dnl DESCRIPTION dnl Adds a directory to the build process dnl dnl --------------------------------------------------------------------------- -AC_DEFUN([MYSQL_MODULE_DIRECTORY],[ - REQUIRE_PLUGIN([$1]) - m4_define([MYSQL_MODULE_DIRECTORY_]AS_TR_CPP([$1]), [$2]) +AC_DEFUN([MYSQL_PLUGIN_DIRECTORY],[ + MYSQL_REQUIRE_PLUGIN([$1]) + m4_define([MYSQL_PLUGIN_DIRECTORY_]AS_TR_CPP([$1]), [$2]) ]) dnl --------------------------------------------------------------------------- -dnl Macro: MYSQL_MODULE_STATIC +dnl Macro: MYSQL_PLUGIN_STATIC +dnl +dnl SYNOPSIS +dnl MYSQL_PLUGIN_STATIC([name],[libmyplugin.a]) dnl -dnl What it does: +dnl DESCRIPTION dnl Declare the name for the static library dnl dnl --------------------------------------------------------------------------- -AC_DEFUN([MYSQL_MODULE_STATIC],[ - REQUIRE_PLUGIN([$1]) - m4_define([MYSQL_MODULE_STATIC_]AS_TR_CPP([$1]), [$2]) +AC_DEFUN([MYSQL_PLUGIN_STATIC],[ + MYSQL_REQUIRE_PLUGIN([$1]) + m4_define([MYSQL_PLUGIN_STATIC_]AS_TR_CPP([$1]), [$2]) ]) dnl --------------------------------------------------------------------------- -dnl Macro: MYSQL_MODULE_DYNAMIC +dnl Macro: MYSQL_PLUGIN_DYNAMIC dnl -dnl What it does: +dnl SYNOPSIS +dnl MYSQL_PLUGIN_DYNAMIC([name],[myplugin.la]) +dnl +dnl DESCRIPTION dnl Declare the name for the shared library dnl dnl --------------------------------------------------------------------------- -AC_DEFUN([MYSQL_MODULE_DYNAMIC],[ - REQUIRE_PLUGIN([$1]) - m4_define([MYSQL_MODULE_DYNAMIC_]AS_TR_CPP([$1]), [$2]) +AC_DEFUN([MYSQL_PLUGIN_DYNAMIC],[ + MYSQL_REQUIRE_PLUGIN([$1]) + m4_define([MYSQL_PLUGIN_DYNAMIC_]AS_TR_CPP([$1]), [$2]) ]) dnl --------------------------------------------------------------------------- -dnl Macro: MYSQL_MODULE_MANDATORY +dnl Macro: MYSQL_PLUGIN_MANDATORY +dnl +dnl SYNOPSIS +dnl MYSQL_PLUGIN_MANDATORY([name]) dnl -dnl What it does: -dnl Marks the specified plugin as a mandatory module +dnl DESCRIPTION +dnl Marks the specified plugin as a mandatory plugin dnl dnl --------------------------------------------------------------------------- -AC_DEFUN([MYSQL_MODULE_MANDATORY],[ - REQUIRE_PLUGIN([$1]) - _MYSQL_MODULE_MANDATORY([$1], - [MYSQL_MODULE_MANDATORY_]AS_TR_CPP([$1]), - [MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]) +AC_DEFUN([MYSQL_PLUGIN_MANDATORY],[ + MYSQL_REQUIRE_PLUGIN([$1]) + _MYSQL_PLUGIN_MANDATORY([$1], + [MYSQL_PLUGIN_MANDATORY_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_DISABLED_]AS_TR_CPP([$1]) ) ]) -AC_DEFUN([_MYSQL_MODULE_MANDATORY],[ +AC_DEFUN([_MYSQL_PLUGIN_MANDATORY],[ m4_define([$2], [yes]) m4_ifdef([$3], [ - AC_WARNING([syntax],[Mandatory plugin $1 has been disabled]) + AC_FATAL([mandatory plugin $1 has been disabled]) m4_undefine([$2]) ]) ]) dnl --------------------------------------------------------------------------- -dnl Macro: MYSQL_MODULE_DISABLED +dnl Macro: MYSQL_PLUGIN_DISABLED dnl -dnl What it does: -dnl Marks the specified plugin as a disabled module +dnl SYNOPSIS +dnl MYSQL_PLUGIN_DISABLED([name]) +dnl +dnl DESCRIPTION +dnl Marks the specified plugin as a disabled plugin dnl dnl --------------------------------------------------------------------------- -AC_DEFUN([MYSQL_MODULE_DISABLED],[ - REQUIRE_PLUGIN([$1]) - _MYSQL_MODULE_DISABLED([$1], - [MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]), - [MYSQL_MODULE_MANDATORY_]AS_TR_CPP([$1]) +AC_DEFUN([MYSQL_PLUGIN_DISABLED],[ + MYSQL_REQUIRE_PLUGIN([$1]) + _MYSQL_PLUGIN_DISABLED([$1], + [MYSQL_PLUGIN_DISABLED_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_MANDATORY_]AS_TR_CPP([$1]) ) ]) -AC_DEFUN([_MYSQL_MODULE_DISABLED],[ +AC_DEFUN([_MYSQL_PLUGIN_DISABLED],[ m4_define([$2], [yes]) m4_ifdef([$3], [ AC_FATAL([attempt to disable mandatory plugin $1]) @@ -176,48 +198,54 @@ AC_DEFUN([_MYSQL_MODULE_DISABLED],[ dnl --------------------------------------------------------------------------- -dnl Macro: MYSQL_MODULE_DEPENDS +dnl Macro: MYSQL_PLUGIN_DEPENDS +dnl +dnl SYNOPSIS +dnl MYSQL_PLUGIN_DEPENDS([name],[prereq,prereq...]) dnl -dnl What it does: -dnl Enables other modules neccessary for this module +dnl DESCRIPTION +dnl Enables other plugins neccessary for the named plugin dnl Dependency checking is not recursive so if any -dnl required module requires further modules, list them +dnl required plugin requires further plugins, list them dnl here too! dnl dnl --------------------------------------------------------------------------- -AC_DEFUN([MYSQL_MODULE_DEPENDS],[ - REQUIRE_PLUGIN([$1]) - ifelse($#, 0, [], $#, 1, [ +AC_DEFUN([MYSQL_PLUGIN_DEPENDS],[ + MYSQL_REQUIRE_PLUGIN([$1]) + ifelse($#, 2, [ + _MYSQL_PLUGIN_DEPEND([$1], $2) + ], [ AC_FATAL([bad number of arguments]) - ], $#, 2, [ - _MYSQL_MODULE_DEPEND([$1],[$2]) - ],[ - _MYSQL_MODULE_DEPEND([$1],[$2]) - MYSQL_MODULE_DEPENDS([$1], m4_shift(m4_shift($@))) ]) ]) -AC_DEFUN([_MYSQL_MODULE_DEPEND],[ - REQUIRE_PLUGIN([$2]) - _MYSQL_PLUGAPPEND([__mysql_plugdepends_$1__],[$2]) +AC_DEFUN([_MYSQL_PLUGIN_DEPEND],[ + ifelse($#, 1, [], [$#:$2], [2:], [ + MYSQL_REQUIRE_PLUGIN([$2]) + _MYSQL_PLUGAPPEND([__mysql_plugdepends_$1__],[$2]) + _MYSQL_PLUGIN_DEPEND([$1], m4_shift(m4_shift($@))) + ]) ]) dnl --------------------------------------------------------------------------- -dnl Macro: MYSQL_MODULE_ACTIONS +dnl Macro: MYSQL_PLUGIN_ACTIONS +dnl +dnl SYNOPSIS +dnl MYSQL_PLUGIN_ACTIONS([name],[PLUGIN_CONFIGURE_STUFF]) dnl -dnl What it does: -dnl Declares additional actions required to configure the module +dnl DESCRIPTION +dnl Declares additional autoconf actions required to configure the plugin dnl dnl --------------------------------------------------------------------------- -AC_DEFUN([MYSQL_MODULE_ACTIONS],[ - REQUIRE_PLUGIN([$1]) +AC_DEFUN([MYSQL_PLUGIN_ACTIONS],[ + MYSQL_REQUIRE_PLUGIN([$1]) m4_ifdef([$2],[ - m4_define([MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1]),m4_defn([$2])) + m4_define([MYSQL_PLUGIN_ACTIONS_]AS_TR_CPP([$1]),m4_defn([$2])) ],[ - m4_define([MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1]), [$2]) + m4_define([MYSQL_PLUGIN_ACTIONS_]AS_TR_CPP([$1]), [$2]) ]) ]) @@ -225,20 +253,24 @@ AC_DEFUN([MYSQL_MODULE_ACTIONS],[ dnl --------------------------------------------------------------------------- dnl Macro: MYSQL_CONFIGURE_PLUGINS dnl -dnl What it does: -dnl Called last, emits all required shell code to configure the modules +dnl SYNOPSIS +dnl MYSQL_PLUGIN_DEPENDS([name,name...]) +dnl +dnl DESCRIPTION +dnl Used last, emits all required shell code to configure the plugins +dnl Argument is a list of default plugins or meta-plugin dnl dnl --------------------------------------------------------------------------- AC_DEFUN([MYSQL_CONFIGURE_PLUGINS],[ m4_ifdef([__mysql_plugin_configured__],[ - AC_FATAL([cannot call [MYSQL_CONFIGURE_PLUGINS] multiple times]) + AC_FATAL([cannot use [MYSQL_CONFIGURE_PLUGINS] multiple times]) ],[ m4_define([__mysql_plugin_configured__],[done]) m4_ifdef([__mysql_plugin_list__],[ _MYSQL_CHECK_PLUGIN_ARGS([$1]) _MYSQL_CONFIGURE_PLUGINS(m4_bpatsubst(__mysql_plugin_list__, :, [,])) - _MYSQL_DO_PLUGIN_ACTIONS(m4_bpatsubst(__mysql_plugin_list__, :, [,])) + _MYSQL_EMIT_PLUGIN_ACTIONS(m4_bpatsubst(__mysql_plugin_list__, :, [,])) AC_SUBST([mysql_se_dirs]) AC_SUBST([mysql_pg_dirs]) ]) @@ -247,56 +279,56 @@ AC_DEFUN([MYSQL_CONFIGURE_PLUGINS],[ AC_DEFUN([_MYSQL_CONFIGURE_PLUGINS],[ ifelse($#, 0, [], $#, 1, [ - _MYSQL_CHECK_PLUGIN([$1]) + _MYSQL_EMIT_CHECK_PLUGIN([$1]) ],[ - _MYSQL_CHECK_PLUGIN([$1]) + _MYSQL_EMIT_CHECK_PLUGIN([$1]) _MYSQL_CONFIGURE_PLUGINS(m4_shift($@)) ]) ]) -AC_DEFUN([_MYSQL_CHECK_PLUGIN],[ - _DO_MYSQL_CHECK_PLUGIN( +AC_DEFUN([_MYSQL_EMIT_CHECK_PLUGIN],[ + __MYSQL_EMIT_CHECK_PLUGIN( [$1], m4_bpatsubst([$1], -, _), - [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_PLUGIN_NAME_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_DESC_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_DEFINE_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_DIRECTORY_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_STATIC_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_DYNAMIC_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_MANDATORY_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_DISABLED_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_ACTIONS_]AS_TR_CPP([$1]) ) ]) -AC_DEFUN([_DO_MYSQL_CHECK_PLUGIN],[ +AC_DEFUN([__MYSQL_EMIT_CHECK_PLUGIN],[ m4_ifdef([$5],[ AH_TEMPLATE($5, [Include ]$4[ into mysqld]) ]) AC_MSG_CHECKING([whether to use ]$3) mysql_use_plugin_dir="" m4_ifdef([$10],[ - if test "[$mysql_module_]$2" = yes -a \ - "[$with_module_]$2" != no -o \ - "[$with_module_]$2" = yes; then + if test "X[$mysql_plugin_]$2" = Xyes -a \ + "X[$with_plugin_]$2" != Xno -o \ + "X[$with_plugin_]$2" = Xyes; then AC_MSG_RESULT([error]) AC_MSG_ERROR([disabled]) fi AC_MSG_RESULT([no]) ],[ m4_ifdef([$9],[ - if test "[$with_module_]$2" = no; then + if test "X[$with_plugin_]$2" = Xno; then AC_MSG_RESULT([error]) - AC_MSG_ERROR([cannot disable mandatory module]) + AC_MSG_ERROR([cannot disable mandatory plugin]) fi - [mysql_module_]$2=yes + [mysql_plugin_]$2=yes ]) - if test "[$with_module_]$2" = no; then + if test "X[$with_plugin_]$2" = Xno; then AC_MSG_RESULT([no]) else - if test "[$mysql_module_]$2" != yes -a \ - "[$with_module_]$2" != yes; then + if test "X[$mysql_plugin_]$2" != Xyes -a \ + "X[$with_plugin_]$2" != Xyes; then m4_ifdef([$8],[ m4_ifdef([$6],[ if test -d "$srcdir/$6" ; then @@ -304,16 +336,16 @@ AC_DEFUN([_DO_MYSQL_CHECK_PLUGIN],[ ]) AC_SUBST([plugin_]$2[_shared_target], "$8") AC_SUBST([plugin_]$2[_static_target], [""]) - [with_module_]$2=yes + [with_plugin_]$2=yes AC_MSG_RESULT([plugin]) m4_ifdef([$6],[ else - [mysql_module_]$2=no + [mysql_plugin_]$2=no AC_MSG_RESULT([no]) fi ]) ],[ - [with_module_]$2=no + [with_plugin_]$2=no AC_MSG_RESULT([no]) ]) else @@ -356,7 +388,7 @@ AC_DEFUN([_DO_MYSQL_CHECK_PLUGIN],[ ]) ]) mysql_plugin_defs="$mysql_plugin_defs, [builtin_]$2[_plugin]" - [with_module_]$2=yes + [with_plugin_]$2=yes AC_MSG_RESULT([yes]) fi m4_ifdef([$6],[ @@ -378,40 +410,33 @@ AC_DEFUN([_DO_MYSQL_CHECK_PLUGIN],[ ]) ]) -AC_DEFUN([_MYSQL_DO_PLUGIN_ACTIONS],[ +AC_DEFUN([_MYSQL_EMIT_PLUGIN_ACTIONS],[ ifelse($#, 0, [], $#, 1, [ - _MYSQL_PLUGIN_ACTIONS([$1]) + _MYSQL_EMIT_PLUGIN_ACTION([$1]) ],[ - _MYSQL_PLUGIN_ACTIONS([$1]) - _MYSQL_DO_PLUGIN_ACTIONS(m4_shift($@)) + _MYSQL_EMIT_PLUGIN_ACTION([$1]) + _MYSQL_EMIT_PLUGIN_ACTIONS(m4_shift($@)) ]) ]) -AC_DEFUN([_MYSQL_PLUGIN_ACTIONS],[ - _DO_MYSQL_PLUGIN_ACTIONS( +AC_DEFUN([_MYSQL_EMIT_PLUGIN_ACTION],[ + __MYSQL_EMIT_PLUGIN_ACTION( [$1], m4_bpatsubst([$1], -, _), - [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_PLUGIN_DISABLED_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_ACTIONS_]AS_TR_CPP([$1]) ) ]) -AC_DEFUN([_DO_MYSQL_PLUGIN_ACTIONS],[ - m4_ifdef([$10], [], [ - if test "[$with_module_]$2" = yes; then - if test -z "[$plugin_]$2[_static_target]" -a \ - -z "[$plugin_]$2[_shared_target]"; then +AC_DEFUN([__MYSQL_EMIT_PLUGIN_ACTION],[ + m4_ifdef([$3], [], [ + if test "X[$with_plugin_]$2" = Xyes; then + if test "X[$plugin_]$2[_static_target]" = X -a \ + "X[$plugin_]$2[_shared_target]" = X; then AC_MSG_ERROR([that's strange, $1 failed sanity check]) fi - $11 + $4 fi ]) ]) @@ -423,17 +448,23 @@ dnl Private helper macros dnl =========================================================================== -AC_DEFUN([REQUIRE_PLUGIN],[ - _REQUIRE_PLUGIN([$1], [__MYSQL_MODULE_]AS_TR_CPP([$1])[__]) +dnl SYNOPSIS +dnl MYSQL_REQUIRE_PLUGIN([name]) +dnl +dnl DESCRIPTION +dnl Checks that the specified plugin does exist + +AC_DEFUN([MYSQL_REQUIRE_PLUGIN],[ + _MYSQL_REQUIRE_PLUGIN([$1], [__MYSQL_PLUGIN_]AS_TR_CPP([$1])[__]) ]) -define([_REQUIRE_PLUGIN],[ +define([_MYSQL_REQUIRE_PLUGIN],[ ifdef([$2],[ ifelse($2, [$1], [], [ - AC_FATAL([Misspelt MYSQL_MODULE declaration for $1]) + AC_FATAL([Misspelt MYSQL_PLUGIN declaration for $1]) ]) ],[ - AC_FATAL([Missing MYSQL_MODULE declaration for $1]) + AC_FATAL([Missing MYSQL_PLUGIN declaration for $1]) ]) ]) @@ -441,19 +472,25 @@ define([_REQUIRE_PLUGIN],[ dnl --------------------------------------------------------------------------- -AC_DEFUN([_MYSQL_MODULE_META_CHECK], [ifelse($#, 0, [], $#, 1, -[_MYSQL_CHECK_PLUGIN_META([$1], [__mysql_]m4_bpatsubst($1, -, _)[_plugins__]) +dnl SYNOPSIS +dnl _MYSQL_EMIT_METAPLUGINS([name,name...]) +dnl +dnl DESCRIPTION +dnl Emits shell code for metaplugins + +AC_DEFUN([_MYSQL_EMIT_METAPLUGINS], [ifelse($#, 0, [], $#, 1, +[_MYSQL_EMIT_METAPLUGIN([$1], [__mysql_]m4_bpatsubst($1, -, _)[_plugins__]) ], -[_MYSQL_CHECK_PLUGIN_META([$1], [__mysql_]m4_bpatsubst($1, -, _)[_plugins__]) -_MYSQL_MODULE_META_CHECK(m4_shift($@))]) +[_MYSQL_EMIT_METAPLUGIN([$1], [__mysql_]m4_bpatsubst($1, -, _)[_plugins__]) +_MYSQL_EMIT_METAPLUGINS(m4_shift($@))]) ]) -AC_DEFUN([_MYSQL_CHECK_PLUGIN_META], [ +AC_DEFUN([_MYSQL_EMIT_METAPLUGIN], [ [$1] ) m4_ifdef([$2], [ - mysql_modules='m4_bpatsubst($2, :, [ ])' + mysql_plugins='m4_bpatsubst($2, :, [ ])' ],[ - mysql_modules='' + mysql_plugins='' ]) ;; ]) @@ -462,6 +499,12 @@ m4_ifdef([$2], [ dnl --------------------------------------------------------------------------- +dnl SYNOPSIS +dnl _MYSQL_PLUGAPPEND([name],[to-append]) +dnl +dnl DESCRIPTION +dnl Helper macro for appending to colon-delimited lists + AC_DEFUN([_MYSQL_PLUGAPPEND],[ m4_ifdef([$1],[ m4_define([__plugin_append_tmp__], m4_defn([$1])) @@ -474,29 +517,24 @@ AC_DEFUN([_MYSQL_PLUGAPPEND],[ ]) ]) -AC_DEFUN([_MYSQL_PLUGAPPEND_OPTS],[ - ifelse($#, 0, [], $#, 1, [ - AC_FATAL([bad number of args]) - ], $#, 2, [ - _MYSQL_PLUGAPPEND_OPTONE([$1],[$2]) - ],[ - _MYSQL_PLUGAPPEND_OPTONE([$1],[$2]) - _MYSQL_PLUGAPPEND_OPTS([$1], m4_shift(m4_shift($@))) - ]) -]) -AC_DEFUN([_MYSQL_PLUGAPPEND_OPTONE],[ - ifelse([$2], [all], [ +dnl SYNOPSIS +dnl _MYSQL_PLUGAPPEND_META([name],[meta,meta...]) +dnl +dnl DESCRIPTION +dnl Helper macro for adding plugins to meta plugins + +AC_DEFUN([_MYSQL_PLUGAPPEND_META],[ + ifelse($#, 1, [], [$#:$2], [2:], [], [$2], [all], [ AC_FATAL([protected plugin group: all]) + ], [$2], [none], [ + AC_FATAL([protected plugin group: none]) ],[ - ifelse([$2], [none], [ - AC_FATAL([protected plugin group: none]) - ],[ - _MYSQL_PLUGAPPEND([__mysql_$1_configs__],[$2]) - _MYSQL_PLUGAPPEND([__mysql_]m4_bpatsubst($2, -, _)[_plugins__],[$1], [ - _MYSQL_PLUGAPPEND([__mysql_metaplugin_list__],[$2]) - ]) + _MYSQL_PLUGAPPEND([__mysql_$1_configs__],[$2]) + _MYSQL_PLUGAPPEND([__mysql_]m4_bpatsubst($2, -, _)[_plugins__],[$1], [ + _MYSQL_PLUGAPPEND([__mysql_metaplugin_list__],[$2]) ]) + _MYSQL_PLUGAPPEND_META([$1], m4_shift(m4_shift($@))) ]) ]) @@ -504,6 +542,12 @@ AC_DEFUN([_MYSQL_PLUGAPPEND_OPTONE],[ dnl --------------------------------------------------------------------------- +dnl SYNOPSIS +dnl MYSQL_LIST_PLUGINS +dnl +dnl DESCRIPTION +dnl Emits formatted list of declared plugins + AC_DEFUN([MYSQL_LIST_PLUGINS],[dnl m4_ifdef([__mysql_plugin_list__],[dnl _MYSQL_LIST_PLUGINS(m4_bpatsubst(__mysql_plugin_list__, :, [,]))dnl @@ -523,22 +567,22 @@ AC_DEFUN([MYSQL_SHOW_PLUGIN],[ _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_PLUGIN_NAME_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_DESC_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_DEFINE_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_DIRECTORY_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_STATIC_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_DYNAMIC_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_MANDATORY_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_DISABLED_]AS_TR_CPP([$1]), + [MYSQL_PLUGIN_ACTIONS_]AS_TR_CPP([$1]), __mysql_[$1]_configs__, ) ]) AC_DEFUN([_MYSQL_SHOW_PLUGIN],[dnl === $3 === - Module Name: [$1] + Plugin Name: [$1] Description: $4 Supports build: _PLUGIN_BUILD_TYPE([$7],[$8])[]dnl m4_ifdef([$12],[ @@ -557,134 +601,115 @@ AC_DEFUN([_PLUGIN_BUILD_TYPE], dnl --------------------------------------------------------------------------- -AC_DEFUN([_MYSQL_MODULE_ARGS_CHECK],[ - ifelse($#, 0, [], $#, 1, [ - _MYSQL_CHECK_PLUGIN_ARG([$1], - [MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]), - [MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1])) - ],[ - _MYSQL_CHECK_PLUGIN_ARG([$1], - [MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]), - [MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1])) - _MYSQL_MODULE_ARGS_CHECK(m4_shift($@)) - ]) -]) - -AC_DEFUN([_MYSQL_CHECK_PLUGIN_ARG],[ - m4_ifdef([$3], [], [m4_define([$3],[ ])]) +AC_DEFUN([_MYSQL_EMIT_PLUGINS],[ + ifelse($#, 0, [], [$#:$1], [1:], [], [ + m4_ifdef([MYSQL_PLUGIN_ACTIONS_]AS_TR_CPP([$1]), [], [ + m4_define([MYSQL_PLUGIN_ACTIONS_]AS_TR_CPP([$1]),[ ]) + ]) [$1] ) - m4_ifdef([$2],[ + m4_ifdef([MYSQL_PLUGIN_DISABLED_]AS_TR_CPP([$1]),[ AC_MSG_ERROR([plugin $1 is disabled]) - ],[ - [mysql_module_]m4_bpatsubst([$1], -, _)=yes - ]) + ],[ + [mysql_plugin_]m4_bpatsubst([$1], -, _)=yes + ]) ;; -]) - -AC_DEFUN([_MYSQL_SANE_VARS], [ - ifelse($#, 0, [], $#, 1, [ - _MYSQL_SANEVAR([$1]) - ],[ - _MYSQL_SANEVAR([$1]) - _MYSQL_SANE_VARS(m4_shift($@)) + _MYSQL_EMIT_PLUGINS(m4_shift($@)) ]) ]) -AC_DEFUN([_MYSQL_SANEVAR], [ - test -z "[$mysql_module_]m4_bpatsubst([$1], -, _)" && -[mysql_module_]m4_bpatsubst([$1], -, _)='.' - test -z "[$with_module_]m4_bpatsubst([$1], -, _)" && -[with_module_]m4_bpatsubst([$1], -, _)='.' -]) - -AC_DEFUN([_MYSQL_CHECK_DEPENDENCIES], [ - ifelse($#, 0, [], $#, 1, [ - _MYSQL_CHECK_DEPENDS([$1],[__mysql_plugdepends_$1__]) - ],[ - _MYSQL_CHECK_DEPENDS([$1],[__mysql_plugdepends_$1__]) - _MYSQL_CHECK_DEPENDENCIES(m4_shift($@)) +AC_DEFUN([_MYSQL_EMIT_PLUGIN_DEPENDS], [ + ifelse($#, 0, [], [$#:$1], [1:], [], [ + _MYSQL_EMIT_CHECK_DEPENDS(m4_bpatsubst([$1], -, _), + [__mysql_plugdepends_$1__]) + _MYSQL_EMIT_PLUGIN_DEPENDS(m4_shift($@)) ]) ]) -AC_DEFUN([_MYSQL_CHECK_DEPENDS], [ +AC_DEFUN([_MYSQL_EMIT_CHECK_DEPENDS], [ 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 - _MYSQL_GEN_DEPENDS(m4_bpatsubst($2, :, [,])) + if test "X[$mysql_plugin_]$1" = Xyes -a \ + "X[$with_plugin_]$1" != Xno -o \ + "X[$with_plugin_]$1" = Xyes; then + _MYSQL_EMIT_PLUGIN_DEPENDENCIES(m4_bpatsubst($2, :, [,])) fi ]) ]) -AC_DEFUN([_MYSQL_GEN_DEPENDS], [ - ifelse($#, 0, [], $#, 1, [ - _MYSQL_GEN_DEPEND([$1]) - ],[ - _MYSQL_GEN_DEPEND([$1]) - _MYSQL_GEN_DEPENDS(m4_shift($@)) +AC_DEFUN([_MYSQL_EMIT_PLUGIN_DEPENDENCIES], [ + ifelse($#, 0, [], [ + m4_ifdef([MYSQL_PLUGIN_DISABLED_]AS_TR_CPP([$1]),[ + AC_MSG_ERROR([depends upon disabled plugin $1]) + ],[ + [mysql_plugin_]m4_bpatsubst([$1], -, _)=yes + if test "X[$with_plugin_]m4_bpatsubst([$1], -, _)" = Xno; then + AC_MSG_ERROR([depends upon disabled plugin $1]) + fi + ]) + _MYSQL_EMIT_PLUGIN_DEPENDENCIES(m4_shift($@)) ]) ]) -AC_DEFUN([_MYSQL_GEN_DEPEND], [ - m4_ifdef([MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]),[ - AC_MSG_ERROR([depends upon disabled module $1]) - ],[ - [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 SYNOPSIS +dnl _MYSQL_CHECK_PLUGIN_ARGS([plugin],[plugin]...) +dnl +dnl DESCRIPTION +dnl Emits shell script for checking configure arguments +dnl Arguments to this macro is default value for selected plugins AC_DEFUN([_MYSQL_CHECK_PLUGIN_ARGS],[ - AC_ARG_WITH([modules], -AS_HELP_STRING([--with-modules=PLUGIN[[[[[,PLUGIN..]]]]]], - [Plugin modules to include in mysqld. (default is: $1) Must be a - configuration name or a comma separated list of modules.]) -AS_HELP_STRING([],[Available configurations are:] dnl -m4_bpatsubst([none:all]m4_ifdef([__mysql_metaplugin_list__], -__mysql_metaplugin_list__), :, [ ])[.]) -AS_HELP_STRING([],[Available plugin modules are:] dnl + __MYSQL_CHECK_PLUGIN_ARGS(m4_default([$1], [none])) +]) + +AC_DEFUN([__MYSQL_CHECK_PLUGIN_ARGS],[ + AC_ARG_WITH([plugins], +AS_HELP_STRING([--with-plugins=PLUGIN[[[[[,PLUGIN..]]]]]], + [Plugins to include in mysqld. (default is: $1) Must be a + configuration name or a comma separated list of plugins.]) +AS_HELP_STRING([], + [Available configurations are:] dnl +m4_bpatsubst([none:]m4_ifdef([__mysql_metaplugin_list__], + __mysql_metaplugin_list__:)[all], :, [ ])[.]) +AS_HELP_STRING([], + [Available plugins are:] dnl m4_bpatsubst(__mysql_plugin_list__, :, [ ])[.]) -AS_HELP_STRING([--without-module-PLUGIN], - [Disable the named module from being built. Otherwise, for - modules which are not selected for inclusion in mysqld will be +AS_HELP_STRING([--without-plugin-PLUGIN], + [Disable the named plugin from being built. Otherwise, for + plugins which are not selected for inclusion in mysqld will be built dynamically (if supported)]) -AS_HELP_STRING([--with-module-PLUGIN], - [Forces the named module to be linked into mysqld statically.]), - [mysql_modules="`echo $withval | tr ',.:;*[]' ' '`"], - [mysql_modules=['$1']]) +AS_HELP_STRING([--with-plugin-PLUGIN], + [Forces the named plugin to be linked into mysqld statically.]), + [mysql_plugins="`echo $withval | tr ',.:;*[]' ' '`"], + [mysql_plugins=['$1']]) m4_divert_once([HELP_VAR_END],[ -Description of plugin modules: +Description of plugins: MYSQL_LIST_PLUGINS]) - case "$mysql_modules" in + case "$mysql_plugins" in all ) - mysql_modules='m4_bpatsubst(__mysql_plugin_list__, :, [ ])' + mysql_plugins='m4_bpatsubst(__mysql_plugin_list__, :, [ ])' ;; none ) - mysql_modules='' + mysql_plugins='' ;; m4_ifdef([__mysql_metaplugin_list__],[ -_MYSQL_MODULE_META_CHECK(m4_bpatsubst(__mysql_metaplugin_list__, :, [,])) +_MYSQL_EMIT_METAPLUGINS(m4_bpatsubst(__mysql_metaplugin_list__, :, [,])) ]) esac - for plugin in $mysql_modules; do + for plugin in $mysql_plugins; do case "$plugin" in all | none ) - AC_MSG_ERROR([bad module name: $plugin]) + AC_MSG_ERROR([bad plugin name: $plugin]) ;; -_MYSQL_MODULE_ARGS_CHECK(m4_bpatsubst(__mysql_plugin_list__, :, [,])) +_MYSQL_EMIT_PLUGINS(m4_bpatsubst(__mysql_plugin_list__, :, [,])) * ) - AC_MSG_ERROR([unknown plugin module: $plugin]) + AC_MSG_ERROR([unknown plugin: $plugin]) ;; esac done - _MYSQL_SANE_VARS(m4_bpatsubst(__mysql_plugin_list__, :, [,])) - _MYSQL_CHECK_DEPENDENCIES(m4_bpatsubst(__mysql_plugin_list__, :, [,])) + _MYSQL_EMIT_PLUGIN_DEPENDS(m4_bpatsubst(__mysql_plugin_list__, :, [,])) ]) dnl =========================================================================== |