Engineビルドファイル整理した
configure.inとMakefile.amに集約した。.m4ファイルは撤去した。さしてマクロが沢山あるわけでもないし。
従って、ビルド関連は以下を見れば全てが分かる。
GNU Autotoolsについての知識は、MySQLのソースを読む上ではあまり必要ないと思われるかもしれませんが、ソース全体を把握したりmysqldの成り立ちについて知るためには必要な知識だと思います。ましてや、MySQLを改造したり、plug-inやengineの開発をするなら尚さらです。というわけでまとめ。
各コマンドがなぜ作られたのか等まで踏み込むとながーいエントリになるのでそれは割愛。
svnからcheckoutした直後。
mir@t43:~/tmp/trunk$ ls AUTHORS COPYING ChangeLog INSTALL Makefile.am NEWS README README.windows TODO autogen.sh configure.in src
libtoolize実行。config.guess、config.sub、ltmain.shが生成される。
mir@t43:~/tmp/trunk$ libtoolize -c -f You should add the contents of `/usr/share/aclocal/libtool.m4' to `aclocal.m4'. mir@t43:~/tmp/trunk$ ls AUTHORS COPYING ChangeLog INSTALL Makefile.am NEWS README README.windows TODO autogen.sh config.guess config.sub configure.in ltmain.sh src
aclocal実行。aclocal.m4、autom4te.cacheが生成される。
mir@t43:~/tmp/trunk$ aclocal-1.9 mir@t43:~/tmp/trunk$ ls AUTHORS ChangeLog Makefile.am README TODO autogen.sh config.guess configure.in src COPYING INSTALL NEWS README.windows aclocal.m4 autom4te.cache config.sub ltmain.sh
autoheader実行。src/tritonn_config.h.inが生成される(トップディレクトリなのでここでは見えないですが)。
mir@t43:~/tmp/trunk$ ls AUTHORS ChangeLog Makefile.am README TODO autogen.sh config.guess configure.in src COPYING INSTALL NEWS README.windows aclocal.m4 autom4te.cache config.sub ltmain.sh
automake実行。Makefile.in、sql/Makefile.in、install-sh、missingが生成される。
mir@t43:~/tmp/trunk$ automake-1.9 -c -a -i configure.in: installing `./install-sh' configure.in: installing `./missing' mir@t43:~/tmp/trunk$ ls AUTHORS ChangeLog Makefile.am NEWS README.windows aclocal.m4 autom4te.cache config.sub install-sh missing COPYING INSTALL Makefile.in README TODO autogen.sh config.guess configure.in ltmain.sh src
autoconf実行。configureが生成される。
mir@t43:~/tmp/trunk$ autoconf mir@t43:~/tmp/trunk$ ls AUTHORS ChangeLog Makefile.am NEWS README.windows aclocal.m4 autom4te.cache config.sub configure.in ltmain.sh src COPYING INSTALL Makefile.in README TODO autogen.sh config.guess configure install-sh missing
でもって、この後configureを実行すると、Makefileやtritonn_config.hが生成され、最終的にmakeの実行ができるようになります。