MySQL NDB Cluster 8.1 手冊
MySQL NDB Cluster 8.0 手冊
NDB Cluster 內部手冊
使用 GNU autotools 通常比自行編寫 makefile 更快、更簡單。在本節中,我們提供一個 autoconf 巨集 WITH_MYSQL
,可用於在組態檔案中新增 --with-mysql
選項,並為給定的 MySQL 安裝自動設定正確的編譯器和連結器標誌。
本章的所有範例都包含一個定義 WITH_MYSQL
的通用 mysql.m4
檔案。典型的完整範例包含實際的原始程式碼檔案和下列輔助檔案
acinclude
configure.in
Makefile.m4
automake 也要求您提供 README
、NEWS
、AUTHORS
和 ChangeLog
檔案;但是,這些檔案可以留空。
若要建立所有必要的建置檔案,請執行下列命令
aclocal
autoconf
automake -a -c
configure --with-mysql=/mysql/prefix/path
通常,這只需要執行一次,之後 make 會適應任何檔案變更。
範例 1-1:acinclude.m4.
m4_include([../mysql.m4])
範例 1-2:configure.in.
AC_INIT(example, 1.0)
AM_INIT_AUTOMAKE(example, 1.0)
WITH_MYSQL()
AC_OUTPUT(Makefile)
範例 1-3:Makefile.am.
bin_PROGRAMS = example
example_SOURCES = example.cc
範例 1-4:WITH_MYSQL 原始碼,用於包含在 acinclude.m4 中。
dnl
dnl configure.in helper macros
dnl
AC_DEFUN([WITH_MYSQL], [
AC_MSG_CHECKING(for mysql_config executable)
AC_ARG_WITH(mysql, [ --with-mysql=PATH path to mysql_config binary or mysql prefix dir], [
if test -x $withval -a -f $withval
then
MYSQL_CONFIG=$withval
elif test -x $withval/bin/mysql_config -a -f $withval/bin/mysql_config
then
MYSQL_CONFIG=$withval/bin/mysql_config
fi
], [
if test -x /usr/local/mysql/bin/mysql_config -a -f /usr/local/mysql/bin/mysql_config
then
MYSQL_CONFIG=/usr/local/mysql/bin/mysql_config
elif test -x /usr/bin/mysql_config -a -f /usr/bin/mysql_config
then
MYSQL_CONFIG=/usr/bin/mysql_config
fi
])
if test "x$MYSQL_CONFIG" = "x"
then
AC_MSG_RESULT(not found)
exit 3
else
AC_PROG_CC
AC_PROG_CXX
# add regular MySQL C flags
ADDFLAGS=`$MYSQL_CONFIG --cflags`
# add NDB API specific C flags
IBASE=`$MYSQL_CONFIG --include`
ADDFLAGS="$ADDFLAGS $IBASE/storage/ndb"
ADDFLAGS="$ADDFLAGS $IBASE/storage/ndb/ndbapi"
ADDFLAGS="$ADDFLAGS $IBASE/storage/ndb/mgmapi"
CFLAGS="$CFLAGS $ADDFLAGS"
CXXFLAGS="$CXXFLAGS $ADDFLAGS"
LDFLAGS="$LDFLAGS "`$MYSQL_CONFIG --libs_r`" -lndbclient"
LDFLAGS="$LDFLAGS "`$MYSQL_CONFIG --libs_r`" -lndbclient"
AC_MSG_RESULT($MYSQL_CONFIG)
fi
])