Compiling and linking
We will need a Makefile.am
file, which looks almost exactly as in the previous chapter:
pkgplugindir = $(pkglibdir)/plugin INCLUDES = -I$(top_srcdir)/include \ -I$(top_builddir)/include \ -I$(top_srcdir)/sql noinst_HEADERS = ha_tocab.h EXTRA_LTLIBRARIES = ha_tocab.la pkgplugin_LTLIBRARIES= @plugin_tocab_shared_target@ ha_tocab_la_LDFLAGS = -module -rpath $(pkgplugindir) ha_tocab_la_CXXFLAGS= -DMYSQL_DYNAMIC_PLUGIN ha_tocab_la_SOURCES = ha_tocab.cc EXTRA_LIBRARIES = libha_tocab.a noinst_LIBRARIES = @plugin_tocab_static_target@ libha_tocab_a_SOURCES= ha_tocab.cc EXTRA_DIST = plug.in
We will also require a plug.in
file that has two new lines:
MYSQL_PLUGIN(tocab, [TOCAB Storage Engine], [Storage Engine that uses Tokyo Cabinet storage library], [max,max-no-ndb]) MYSQL_PLUGIN_STATIC(tocab, [libha_tocab.a]) MYSQL_PLUGIN_DYNAMIC(tocab, [ha_tocab.la]) AC_CHECK_HEADER([tctdb.h],,[with_plugin_tocab=no]) AC_CHECK_LIB(tokyocabinet,tcbdbopen,,[with_plugin_tocab=no])
Besides declaring...