11 Ocak 2010 Pazartesi

configure.in ile derleme seçenekleri oluşturma

configuration.in ve Makefile.am dosyaları gerçekten maharetli. configure.in'de oluşturacağınız değişkenler ile projenizin derlenmesini yönetebilirsiniz. Örnek olarak configure.in dosyasına şu satırları ekleyelim.
# asking user if they want TIDY support
AC_MSG_CHECKING(for TIDY support)
AC_ARG_ENABLE(
tidy,
[AC_HELP_STRING([--enable-tidy@<:@=no@:>@], [Enable support for the TIDY library])],
[ if test "x$enableval" = "xno"; then
tidy=false
AC_MSG_RESULT(no)
else
tidy=true
AC_MSG_RESULT(yes)
fi
],
[ # enable by default
tidy=false
AC_MSG_RESULT(yes)
]
)
if test "x$tidy" = "xtrue"; then
AC_DEFINE([HAVE_TIDY],[],[Define to enable TIDY support])
TIDY_LIBS="-ltidy ${TIDY_LIBS}"
else
AC_CHECK_FUNCS([printf])
fi
AM_CONDITIONAL(HAVE_TIDY, test "x$tidy" = "xtrue")

Yukarıdaki satırlar ilk önce tidy isimli bir argüman oluşturuyor ve bunun --enable-tidy komut satırı seçeneğiyle değerinin değiştirilebileceğini belirtiyor. Ön tanımlı değer burada false olarak beliritiliyor. Daha sonra ise AM_CONDITIONAL kısmında üst tarafta belirlenen değer ile karşılaştırma yapılıyor ve AC_DEFINE işlemiyle configure işlemi tamamlandığında oluşturulan config.h dosyasında gerekli tanımlamalar yapılıyor.

Daha sonra C/C++ kaynak dosyamıza bu config.h dosyasını ekliyoruz ve gerekli yerleri
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#ifdef HAVE_TIDY
....
#endif

şeklinde düzenliyoruz.

Son olarak eğer bununla ilgili bir kütüphane de link edeceksek projemize Makefile.am dosyasında
if HAVE_TIDY
LIBS += -ltidy
endif

şeklindeki eklemeyle gerçekleştirebiliriz.

Hiç yorum yok:

Yorum Gönder