はじめに
MySQLのライブラリーをビルドするには次のようにしてくださいとマニュアルには書いてあります。
shell> gcc -c `mysql_config --cflags` progname.c
shell> gcc -o progname progname.o `mysql_config --libs`
でも、実際には簡単なテストプログラムだとしても手でgccとかを実行する人はいないわけで、Makefileなどを作ると思います。
Makefileだとシェルスクリプトを書くのは容易なため困りませんが、bjamだとどう書くのか分からなかったので調べてみました。
やったこと
意外と簡単でした。COMMAND (or SHELL) という組み込みルールがあってそれを使えばよいらしいです。
Jamroot.jam
import testing ;
import os ;
local MYSQL_C_FLAGS = [ COMMAND "mysql_config --cflags" ] ;
local MYSQL_LD_FLAGS = [ COMMAND "mysql_config --libs_r" ] ;
ECHO "MySQL options detected:\n" ;
ECHO "mysql_config --cflags:\n" $(MYSQL_C_FLAGS) ;
ECHO "mysql_config --libs_r:\n" $(MYSQL_LD_FLAGS) ;
run mysql_test.cpp
:
:
:
<cflags>$(MYSQL_C_FLAGS)
<linkflags>$(MYSQL_LD_FLAGS)
<threading>multi
;
mysql_test.cpp
#include <mysql.h>
int main()
{
MYSQL mysql;
mysql_init(&mysql);
mysql_close(&mysql);
}
こちらに書いてあります。
おわりに
分かってしまえば、あるいは、知っていれば簡単なのですが、情報をみつけるのが難しいのがbjamの欠点ですね。
他の検索結果を辿っていて、今回も偶然みつけたようなものです。