1 # Process this file with autoconf to produce a configure script.
2 AC_INIT(Project Unity, 0.1, wvstreams-dev@nit.ca, unity)
5 AC_CONFIG_HEADERS([config.h])
10 while test $# -gt 0; do
16 echo $0 $ARGS '"$@"' >reconfigure
22 # append to a variable without introducing superfluous white space
24 if test -z "$$1"; then
46 AC_HELP_STRING([--disable-debug],
47 [strip debug information]))
50 AC_HELP_STRING([--enable-devel],
54 AC_HELP_STRING([--enable-efence],
55 [link against Electric Fence]))
57 AC_ARG_ENABLE(exceptions,
58 AC_HELP_STRING([--disable-exceptions],
59 [C++ exceptions (compiler)]))
61 AC_ARG_ENABLE(fatal-warnings,
62 AC_HELP_STRING([--enable-fatal-warnings],
63 [turn warnings into errors]))
65 AC_ARG_ENABLE(optimization,
66 AC_HELP_STRING([--disable-optimization],
67 [optimization options]))
70 AC_HELP_STRING([--disable-rtti],
71 [C++ run-time type identification (compiler)]))
73 AC_ARG_ENABLE(verbose,
74 AC_HELP_STRING([--enable-verbose],
75 [verbose compilation output]))
77 AC_ARG_ENABLE(warnings,
78 AC_HELP_STRING([--disable-warnings],
81 AC_ARG_ENABLE(testgui,
82 AC_HELP_STRING([--disable-testgui],
83 [GUI for unit tests]))
85 AC_ARG_WITH(dbus, AC_HELP_STRING([--with-dbus], [DBus]))
86 AC_ARG_WITH(gconf, AC_HELP_STRING([--with-gconf], [GConf]))
87 AC_ARG_WITH(qt, AC_HELP_STRING([--with-qt], [Qt]))
88 AC_ARG_WITH(kde, AC_HELP_STRING([--with-kde], [KDE]))
89 AC_ARG_WITH(wvstreams, AC_HELP_STRING([--with-wvstreams], [WvStreams (required)]))
91 AC_ARG_VAR(MOC, [Qt meta object compiler])
93 # avoid autoconf's default values, but keep those the user might have given
105 # Setting the default language to C++ means that CXX and CXXCPP will be
106 # used for compile tests.
110 if test "$enable_devel" = "yes"; then
112 enable_fatal_warnings=yes
117 if test "$enable_exceptions" = "no"; then
118 WV_APPEND(CXXFLAGS, -fno-exceptions)
122 if test "$enable_resolver_fork" = "no"; then
123 AC_DEFINE(WVRESOLVER_SKIP_FORK,,
124 [Define to disable WvResolver forking for debugging with gdb.])
128 if test "$enable_delete_detector" = "yes"; then
129 AC_DEFINE(ENABLE_DELETE_DETECTOR,,
130 [Define to enable the XPLC delete detector.])
134 if test "$enable_rtti" = "no"; then
135 WV_APPEND(CXXFLAGS, -fno-rtti)
139 PKG_CHECK_MODULES(GCONF, gconf-2.0)
142 PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.34)
143 PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1)
146 PKG_CHECK_MODULES(ELEKTRA, elektra)
149 AC_CHECK_PROG(VALGRIND, valgrind, valgrind)
150 AC_CHECK_HEADERS(valgrind/memcheck.h)
152 dnl Look for WvStreams
153 PKG_CHECK_MODULES(UNICONF, libuniconf)
154 UNICONF_VERSION=`pkg-config --variable=version libuniconf`
156 dnl And see if we have UniConf::isok()
157 AC_CACHE_CHECK([whether UniConf::isok() is declared],
158 [have_decl_uniconf_isok], [
159 CPPFLAGS_save="$CPPFLAGS"
160 CPPFLAGS="$CPPFLAGS_save $UNICONF_CFLAGS"
163 #include "uniconfroot.h"],
164 [UniConfRoot root; UniConf uni(root); uni.isok(); return 0;],
165 [have_decl_uniconf_isok=yes;], [have_decl_uniconf_isok=no])
166 CPPFLAGS="$CPPFLAGS_save"
168 if test "$have_decl_uniconf_isok" = yes; then
169 AC_DEFINE([HAVE_DECL_UNICONF_ISOK], [1],
170 [UniConf::isok() doesn't exist in WvStreams 4.0])
174 if test "$with_qt" != "no"; then
175 test "$with_qt" = yes && with_qt=
176 AC_CACHE_CHECK([for Qt], [wv_cv_with_qt], [
178 CPPFLAGS_save="$CPPFLAGS"
179 LDFLAGS_save="$LDFLAGS"
180 for wv_qtdir in $with_qt $QTDIR $QT_SEARCH_PATH; do
181 eval wv_qtdir="$wv_qtdir"
182 CPPFLAGS="$CPPFLAGS_save -I$wv_qtdir/include -I$wv_qtdir/include/qt3"
183 LDFLAGS="$LDFLAGS_save -L$wv_qtdir/lib -lqt-mt"
184 AC_TRY_LINK([#include <qstring.h>],
185 [QString x("hello"); return 0; ],
186 [wv_cv_with_qt=$wv_qtdir; break])
188 CPPFLAGS="$CPPFLAGS_save"
189 LDFLAGS="$LDFLAGS_save"
191 with_qt=$wv_cv_with_qt
192 AC_PATH_PROG(MOC, moc, [moc not found], $with_qt/bin)
196 if test "$with_kde" != "no"; then
197 test "$with_kde" = yes && with_kde=
198 AC_CACHE_CHECK([for KDE], [wv_cv_with_kde], [
200 CPPFLAGS_save="$CPPFLAGS"
201 LDFLAGS_save="$LDFLAGS"
202 for wv_kdedir in $with_kde /usr /usr/local; do
203 eval wv_kdedir="$wv_kdedir"
204 CPPFLAGS="$CPPFLAGS_save -I$with_qtdir/include -I$wv_qtdir/include/qt3 -I$wv_kdedir/include -I$wv_kdedir/include/kde"
205 LDFLAGS="$LDFLAGS_save -L$wv_qtdir/lib -lqt-mt"
206 AC_TRY_LINK([#include <kapplication.h>],
208 [wv_cv_with_kde=$wv_kdedir; break])
210 CPPFLAGS="$CPPFLAGS_save"
211 LDFLAGS="$LDFLAGS_save"
213 with_kde=$wv_cv_with_kde
215 # Check for libkdecore's SO version out of the SONAME
216 AC_CACHE_CHECK([for libkdecore's SO version], [wv_cv_kdecore_sover],
217 [wv_cv_kdecore_sover="libkdecore.so not found"
218 LDFLAGS_save="$LDFLAGS"
219 LDFLAGS="$LDFLAGS_save -L$with_kde/lib -lkdecore"
222 [wv_cv_kdecore_sover=`ldd conftest$ac_exeext |
223 $AWK '/libkdecore.so/{
224 sub(/libkdecore\.so\.?/, "", $1)
227 LDFLAGS="$LDFLAGS_save"])
228 KDECORE_SO_VERSION=$wv_cv_kdecore_sover
231 # check for missing packages
234 if test "$with_qt" = "no"; then
235 AC_MSG_WARN([Qt is missing.])
239 if test "$with_kde" = "no"; then
240 AC_MSG_WARN([KDE is missing.])
242 elif test "$KDECORE_SO_VERSION" = "libkdecore.so not found"; then
243 AC_MSG_WARN([KDE is improperly installed.])
248 if test "$VALGRIND" = ""; then
249 AC_MSG_WARN([Valgrind is missing.])
252 if test "$VALGRIND" != ""; then
253 VALGRIND="valgrind --leak-check=yes --num-callers=10 --logfile-fd=-1 --suppressions=\$(WVSTREAMS_SRC)/suppressions.wv"
256 AC_SUBST(enable_debug)
257 AC_SUBST(enable_devel)
258 AC_SUBST(enable_efence)
259 AC_SUBST(enable_exceptions)
260 AC_SUBST(enable_fatal_warnings)
261 AC_SUBST(enable_optimization)
262 AC_SUBST(enable_resolver_fork)
263 AC_SUBST(enable_delete_detector)
264 AC_SUBST(enable_rtti)
265 AC_SUBST(enable_verbose)
266 AC_SUBST(enable_warnings)
267 AC_SUBST(enable_testgui)
271 AC_SUBST(KDECORE_SO_VERSION)
272 AC_SUBST(DBUS_CFLAGS)
274 AC_SUBST(DBUS_GLIB_CFLAGS)
275 AC_SUBST(DBUS_GLIB_LIBS)
276 AC_SUBST(ELEKTRA_CFLAGS)
277 AC_SUBST(ELEKTRA_LIBS)
278 AC_SUBST(GCONF_CFLAGS)
280 AC_SUBST(UNICONF_CFLAGS)
281 AC_SUBST(UNICONF_LIBS)
282 AC_SUBST(UNICONF_VERSION)
283 AC_SUBST(HAVE_DECL_UNICONF_ISOK)
285 AC_CONFIG_FILES(config.mk
286 dbus/libuniconf-dbus.pc
287 gconf/libuniconf-gconf.pc
288 maildir/libuniconf-maildir.pc)