以下宏在autotools配置文件中启用插件支持。
声明一个插件:
MYSQL_PLUGIN (的名字,长名称,描述(,configlist])
每个插件都需要有MYSQL_PLUGIN ()
首先声明。configlist
是一个可选参数,它是一个以逗号分隔的配置列表,该模块是其成员。例子:
MYSQL_PLUGIN(ftexample, [Simple Parser], [Simple full-text Parser plugin])
声明一个存储引擎插件:
MYSQL_STORAGE_ENGINE (的名字,legacy-opt,长名称,描述(,configlist])
这是一个简单的实用程序宏调用MYSQL_PLUGIN
。它执行声明存储引擎插件所需的基本功能,并为处理遗留文件提供支持配置命令行选项。如果legacy-opt
未指定时,将默认为——with-name-storage-engine
。设置legacy-opt
价值没有
如果您不想处理任何遗留选项。这个宏大致相当于:
MYSQL_PLUGIN (的名字长名称,,描述)MYSQL_PLUGIN_DEFINE (的名字,听的名字_STORAGE_ENGINE)
例子:
MYSQL_STORAGE_ENGINE(berkeley, berkeley-db, [BerkeleyDB存储引擎],[BerkeleyDB事务表使用],[max,max-no-ndb])
声明一个C预处理器变量:
MYSQL_PLUGIN_DEFINE (的名字,定义名称)
当一个插件将被包含在静态构建中,这将把一个预处理器变量设置为1。中定义了这些预处理器变量config.h
。例子:
MYSQL_PLUGIN_DEFINE (innobase WITH_INNOBASE_STORAGE_ENGINE)
为插件声明一个源目录:
MYSQL_PLUGIN_DIRECTORY (的名字,dir-name)
将指定的目录包含到构建中。如果一个名为配置
在目录中检测到,它将作为配置否则,假定存在Makefile
在该目录中构建。属性中指定的插件目录目前只支持存储/
和插件/
子目录。例子:
MYSQL_PLUGIN_DIRECTORY(归档,存储/存档)
为插件声明一个静态库名称:
MYSQL_PLUGIN_STATIC (的名字,dir-name)
设置配置替换@plugin_name_static_target@
如果插件是静态构建,则使用提供的库名。它还将库添加到要链接到的库列表中mysqld。它可以只是库的名称(如果指定了一个目录,则该目录将作为链接的前缀),也可以是其他的使变量或替换(在这种情况下,它将按原样传递)。例子:
MYSQL_PLUGIN_STATIC(berkeley, [[\$(bdb_libs_with_path)]])
为插件声明一个动态库名称:
MYSQL_PLUGIN_DYNAMIC (的名字,dso-name)
设置配置替换@plugin_name_shared_target@
如果模块是动态构建的,则设置为所提供的动态共享对象库名称。例子:
[ha_archive.la] MYSQL_PLUGIN_DYNAMIC(归档)
将插件声明为强制模块:
MYSQL_PLUGIN_MANDATORY (的名字)
强制插件不能被禁用。例子:
MYSQL_PLUGIN_MANDATORY (myisam)
声明一个插件为disabled:
MYSQL_PLUGIN_DISABLED (的名字)
被禁用的插件将不会包含在任何构建中。如果插件被标记为强制性的
,它将导致一个autoconf错误。
宣布额外的插件配置行动:
MYSQL_PLUGIN_ACTIONS (的名字,configure-actions)
如果有额外的,这是有用的配置插件所需的操作。的configure-actions
参数可以是autoconf宏或更多autoconf脚本。例子:
MYSQL_PLUGIN_ACTIONS (ndbcluster [MYSQL_SETUP_NDBCLUSTER])
宣布插件依赖关系:
MYSQL_PLUGIN_DEPENDS (的名字,依赖关系)
以逗号分隔的列表声明构建指定插件所需的所有插件。如果指定的插件被选中,它将启用它的所有依赖项。所有被列为依赖项的插件必须已经被声明过MYSQL_PLUGIN ()
。例子:
MYSQL_PLUGIN_DEPENDS (ndbcluster(分区))
表演魔术:
MYSQL_CONFIGURE_PLUGINS (缺省名称)
执行生成shell脚本的任务配置根据以前所作的声明。它会发出必要的shell代码来检查选项并相应地设置变量。例子:
MYSQL_CONFIGURE_PLUGINS([所有])
Plugin-related配置错误:
在任何插件宏被调用之前
MYSQL_PLUGIN ()
为该插件声明,配置以错误终止。当依赖项列表中指定的任何插件都不存在时,配置以错误终止。
中指定一个强制插件时
——without-plugin-PLUGIN
,配置以错误终止。中指定禁用插件时
——以模块=…
或——with-plugin =插件
,配置报告一个错误。中指定了一个只能动态构建的可选插件
——使用插件=…
或——with-plugin-PLUGIN
,配置发出警告并继续为动态构建配置插件。当一个只能静态构建的可选插件被指定时
——使用插件=…
也不——without-plugin-PLUGIN
,配置发出警告,但无论如何都应该继续。
避免configure.in
变化:
控件的子目录中
存储/
或插件/
目录)包含一个plug.in
文件(例如,存储/ / plug.in示例
),此文件将作为configure.in
。这种方式,configure.in
在构建中添加新插件不需要进行修改。一个
plug.in
文件可以包含所有内容,特别是所有内容MYSQL_PLUGIN_xxx
如刚才描述的宏。的plug.in
文件不需要指定MYSQL_PLUGIN_DIRECTORY
;的目录plug.in
文件。