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 にパッケージがあるが、私はまだ使用したことはない。

Tags of current page

,