1 dnl *******************************************
2 dnl *** Initialize automake and set version ***
3 dnl *******************************************
6 AC_INIT([libsoup],[2.37.3],[http://bugzilla.gnome.org/enter_bug.cgi?product=libsoup])
7 AC_CONFIG_SRCDIR([libsoup-2.4.pc.in])
8 AC_CONFIG_MACRO_DIR([m4])
10 AM_INIT_AUTOMAKE([foreign 1.9])
11 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],)
16 AC_SUBST(SOUP_API_VERSION)
18 # Increment on interface addition. Reset on removal.
21 # Increment on interface add, remove, or change.
24 # Increment on source change. Reset when CURRENT changes.
27 AC_SUBST(SOUP_CURRENT)
28 AC_SUBST(SOUP_REVISION)
31 dnl ***************************
32 dnl *** Set debugging flags ***
33 dnl ***************************
37 # Declare --enable-* args and collect ac_help strings
39 AS_HELP_STRING([--enable-debug=[no/minimum/yes]],
40 [turn on debugging (default=$debug_default)]),,
41 enable_debug=$debug_default)
44 if test "x$enable_debug" = "xyes"; then
45 test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
46 SOUP_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
48 if test "x$enable_debug" = "xno"; then
49 SOUP_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS"
53 AC_SUBST(SOUP_DEBUG_FLAGS)
55 # Set the maintainer flags
56 #if test -d .git; then
57 # SOUP_MAINTAINER_FLAGS="-DG_DISABLE_DEPRECATED"
59 AC_SUBST(SOUP_MAINTAINER_FLAGS)
61 dnl ***************************
62 dnl *** Checks for programs ***
63 dnl ***************************
71 dnl ***********************
72 dnl *** Checks for glib ***
73 dnl ***********************
76 AM_PATH_GLIB_2_0($GLIB_REQUIRED,,,gobject gio)
77 if test "$GLIB_LIBS" = ""; then
78 AC_MSG_ERROR(GLIB $GLIB_REQUIRED or later is required to build libsoup)
80 GLIB_CFLAGS="$GLIB_CFLAGS -DG_DISABLE_SINGLE_INCLUDES"
82 PKG_CHECK_MODULES(XML, libxml-2.0)
86 dnl ***********************
87 dnl *** Check for Win32 ***
88 dnl ***********************
90 AC_MSG_CHECKING([for Win32])
94 CFLAGS="$CFLAGS -D_REENTRANT"
100 AC_MSG_RESULT([$os_win32])
101 AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes])
103 dnl *******************
104 dnl *** Misc checks ***
105 dnl *******************
106 AC_CHECK_FUNCS(gmtime_r)
108 AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket))
110 dnl *********************
111 dnl *** GNOME support ***
112 dnl *********************
113 AC_MSG_CHECKING(whether to build libsoup-gnome)
115 AS_HELP_STRING([--without-gnome], [Do not build libsoup-gnome]),
116 :, [if test $os_win32 = yes; then with_gnome=no; else with_gnome=yes; fi])
117 AC_MSG_RESULT($with_gnome)
119 if test $with_gnome != no -a $os_win32 != yes; then
120 PKG_CHECK_MODULES(GNOME_KEYRING, gnome-keyring-1, :,
122 [Could not find gnome-keyring devel files.
123 Configure with --without-gnome if you wish to build only libsoup
124 without GNOME-specific features.]))
126 AC_SUBST(GNOME_KEYRING_CFLAGS)
127 AC_SUBST(GNOME_KEYRING_LIBS)
129 AM_CONDITIONAL(BUILD_LIBSOUP_GNOME, test $with_gnome != no)
131 if test $with_gnome != no; then
132 AC_DEFINE(HAVE_GNOME, 1, [Defined if GNOME support is enabled])
134 PKG_CHECK_MODULES(SQLITE, sqlite3, :, [AC_MSG_ERROR(dnl
135 [Could not find sqlite3 devel files:
139 Pass "--without-gnome" to configure if you want to build libsoup
140 without GNOME support.])])
143 AC_SUBST(SQLITE_CFLAGS)
144 AC_SUBST(SQLITE_LIBS)
150 GTK_DOC_CHECK([1.10])
152 dnl *****************************
153 dnl *** gobject-introspection ***
154 dnl *****************************
155 GOBJECT_INTROSPECTION_CHECK([0.9.5])
157 AC_MSG_CHECKING([for glib-networking (glib TLS implementation)])
158 save_CFLAGS="$CFLAGS"
160 CFLAGS="$CFLAGS $GLIB_CFLAGS"
161 LIBS="$LIBS $GLIB_LIBS"
162 AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <gio/gio.h>],
163 [g_type_init (); return !g_tls_backend_supports_tls (g_tls_backend_get_default ());])],
164 [have_glib_networking=yes],
165 [have_glib_networking=no],
166 [have_glib_networking="unknown (cross-compiling)"])
167 CFLAGS="$save_CFLAGS"
169 AC_MSG_RESULT($have_glib_networking)
171 AC_ARG_ENABLE(tls-check,
172 AS_HELP_STRING([--disable-tls-check], [Don't error out if glib-networking is unavailable]))
173 if test "$enable_tls_check" != "no" -a "$have_glib_networking" = "no"; then
174 AC_MSG_ERROR([libsoup requires glib-networking for TLS support.
176 If you are building a package, you can pass --disable-tls-check to
177 allow building libsoup anyway (since glib-networking is not actually
178 required at compile time), but you should be sure to add a runtime
182 dnl ******************************
183 dnl *** Stuff for regression tests
184 dnl ******************************
185 AC_MSG_NOTICE([checking for programs needed for regression tests])
186 MISSING_REGRESSION_TEST_PACKAGES=""
188 if test "$have_glib_networking" = "no"; then
189 MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES glib-networking"
192 AC_ARG_WITH(apache-httpd,
193 AS_HELP_STRING([--with-apache-httpd], [Path to apache httpd (for tests)]),
194 APACHE_HTTPD="$withval",
195 [AC_PATH_PROGS(APACHE_HTTPD, httpd2 httpd apache2 apache, no, ${PATH}:/usr/sbin)])
196 if test "$APACHE_HTTPD" != "no"; then
197 AC_MSG_CHECKING([Apache version])
198 apache_version=`$APACHE_HTTPD -v 2>/dev/null | sed -ne 's/Server version: Apache\///p'`
199 case $apache_version in
201 AC_MSG_RESULT([$apache_version (ok)])
204 AC_MSG_RESULT([$apache_version (ignoring)])
209 AC_SUBST(APACHE_HTTPD)
210 AC_DEFINE_UNQUOTED(APACHE_HTTPD, "$APACHE_HTTPD", [Apache httpd])
212 if test "$APACHE_HTTPD" != "no"; then
213 AC_MSG_CHECKING([for Apache module directory])
214 AC_ARG_WITH(apache-module-dir,
215 AS_HELP_STRING([--with-apache-module-dir], [Apache modules dirs (for tests)]),
216 apache_module_dirs="$withval",
217 [apache_prefix=`dirname \`dirname $APACHE_HTTPD\``
218 mpm=`$APACHE_HTTPD -V | sed -ne 's/^Server MPM: */-/p' | tr 'A-Z' 'a-z'`
219 # This only works with bash, but should fail harmlessly in sh
220 apache_module_dirs=`echo $apache_prefix/lib{64,}/{apache,apache2,http,http2,httpd}{$mpm,}{/modules,}`])
221 for dir in $apache_module_dirs; do
222 if test -f $dir/mod_auth_digest.so; then
223 APACHE_MODULE_DIR="$dir"
225 if test -f $dir/mod_ssl.so; then
226 APACHE_SSL_MODULE_DIR="$dir"
227 IF_HAVE_APACHE_SSL=""
229 if test -f $dir/mod_php5.so; then
230 APACHE_PHP_MODULE_DIR="$dir"
231 APACHE_PHP_MODULE=mod_php5.so
233 if test -f $dir/libphp5.so; then
234 APACHE_PHP_MODULE_DIR="$dir"
235 APACHE_PHP_MODULE=libphp5.so
238 AC_MSG_RESULT($APACHE_MODULE_DIR)
239 AC_SUBST(APACHE_MODULE_DIR)
240 AC_SUBST(APACHE_SSL_MODULE_DIR)
241 AC_SUBST(APACHE_PHP_MODULE_DIR)
242 AC_SUBST(APACHE_PHP_MODULE)
245 if test "$APACHE_HTTPD" != "no" -a -n "$APACHE_MODULE_DIR" -a -n "$APACHE_SSL_MODULE_DIR"; then
246 AC_DEFINE(HAVE_APACHE, 1, [Whether or not apache can be used for tests])
248 if test -z "$APACHE_PHP_MODULE_DIR"; then
249 MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES mod_php5"
253 if test "$APACHE_HTTPD" = "no" -o -z "$APACHE_MODULE_DIR"; then
254 MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES apache"
256 MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES mod_ssl"
259 AM_CONDITIONAL(HAVE_APACHE, test $have_apache = 1)
261 if test "$have_apache" = 1; then
262 AC_CHECK_PROGS(PHP, php php5)
264 AC_MSG_CHECKING([for Apache PHP module])
265 if test -f $APACHE_PHP_MODULE_DIR/$APACHE_PHP_MODULE; then
271 MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES php5"
273 AC_MSG_RESULT($have_php)
275 if test "$have_php" = yes; then
276 AC_MSG_CHECKING([for xmlrpc-epi-php])
277 if $PHP --rf xmlrpc_server_create | grep -q "does not exist"; then
278 have_xmlrpc_epi_php=no
279 MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES php-xmlrpc"
281 have_xmlrpc_epi_php=yes
283 AC_MSG_RESULT($have_xmlrpc_epi_php)
287 AC_SUBST(IF_HAVE_PHP)
288 AM_CONDITIONAL(HAVE_XMLRPC_EPI_PHP, test "$have_xmlrpc_epi_php" = yes)
290 AC_PATH_PROG(CURL, curl, no)
291 if test "$CURL" != no; then
292 AC_DEFINE(HAVE_CURL, 1, [Whether or not curl can be used for tests])
294 MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES curl"
296 AM_CONDITIONAL(HAVE_CURL, test "$CURL" != no)
298 AC_SUBST(MISSING_REGRESSION_TEST_PACKAGES)
299 AM_CONDITIONAL(MISSING_REGRESSION_TEST_PACKAGES, test -n "$MISSING_REGRESSION_TEST_PACKAGES")
301 dnl **********************************************************
302 dnl *** path of NTLM single-sign-on helper ntlm_auth
303 dnl **********************************************************
304 AC_ARG_WITH(ntlm-auth,
305 AC_HELP_STRING([--with-ntlm-auth=PATH],[Where to look for ntlm_auth, path points to ntlm_auth installation (default: /usr/bin/ntlm_auth)]),
306 ntlm_auth="$withval",
307 [if test $os_win32 = yes; then ntlm_auth="no"; else ntlm_auth="/usr/bin/ntlm_auth"; fi])
308 if test "$ntlm_auth" != "no"; then
309 AC_DEFINE(USE_NTLM_AUTH, 1, [Whether or not use Samba's 'winbind' daemon helper 'ntlm_auth' for NTLM single-sign-on])
310 if test "$ntlm_auth" = "yes"; then
311 dnl --with-ntlm-auth (without path) used, use default path
312 ntlm_auth="/usr/bin/ntlm_auth"
316 AC_DEFINE_UNQUOTED(NTLM_AUTH, "$ntlm_auth", [Samba's 'winbind' daemon helper 'ntlm_auth' which can be used for NTLM single-sign-on])
318 dnl ****************************************************
319 dnl *** Warnings to show if using GCC ***
320 dnl *** (do this last so -Werror won't mess up tests ***
321 dnl ****************************************************
323 AC_ARG_ENABLE(more-warnings,
324 AS_HELP_STRING([--disable-more-warnings], [Inhibit compiler warnings]),
325 set_more_warnings=no)
327 if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
329 -Wall -Wstrict-prototypes -Werror=missing-prototypes \
330 -Werror=implicit-function-declaration \
331 -Werror=pointer-arith -Werror=init-self -Werror=format=2 \
332 -Werror=missing-include-dirs -Werror=aggregate-return \
333 -Werror=declaration-after-statement"
336 dnl *************************
337 dnl *** Output Everything ***
338 dnl *************************
340 AC_CONFIG_HEADERS([config.h])
350 docs/reference/Makefile
354 if test -n "$MISSING_REGRESSION_TEST_PACKAGES"; then
356 echo Some regression tests will not be run due to missing packages:
357 echo $MISSING_REGRESSION_TEST_PACKAGES