autotools 関係のメモ
glib を使う
gilb を使った hello.c をコンパイルして hello を作るには configure.ac に
AM_PATH_GLIB_2_0(2.0.0,, [AC_MSG_ERROR(Test for GLib failed.)], gobject)
PKG_CHECK_MODULES([GLIB], [glib-2.0])
を記述して、Makefile.am を
bin_PROGRAMS=hello
hello_SOURCES=hello.c
hello_LDADD=@GLIB_LIBS@
hello_CFLAGS=@GLIB_CFLAGS@
のようにする。
サブディレクトリにソースコードを置く
サブディレクトリ src に
Makefile.am
file.c
file.h
を置く場合を考える。
configure.ac で
AC_CONFIG_SRCDIR([src])
と
AC_CONFIG_FILES([Makefile src/Makefile])
のように変更する。Makefile.am に
SUBDIRS = src
と書き込み、
aclocal
autoconf
automake
とする。
–enable-debug を利用する場合
私は –enable-debug を configure のオプションで使用するために次のようにしている。config.h.in に
/* Define if you are in debugging mode. */
#undef DEBUG
を追加する。configure.ac に
AC_ARG_ENABLE(debug, [ --enable-debug trun on debugging [default no]],,enable_debug=no)
AC_MSG_CHECKING(whether to enable debuging)
if test x$enable_debug = xyes; then
AC_MSG_RESULT(yes)
AC_DEFINE(DEBUG,[],[for debugging])
CXXFLAGS="$CXXFLAGS -g -O0 -Wall"
CFLAGS="$CFLAGS -g -O0 -Wall"
else
AC_MSG_RESULT(no)
fi
を追加する。
aclocal
autoconf
automake
とする。
autoproject
http://program.g.hatena.ne.jp/lnznt/20120503/1336014559 で知ったのだが autoproject というものがあるらしい。 Ubuntu にパッケージがあるが、私はまだ使用したことはない。