1 dnl *******************************************
2 dnl *** Initialize automake and set version ***
3 dnl *******************************************
6 AC_INIT([libsoup],[2.33.1],[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
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 ***********************
75 AM_PATH_GLIB_2_0(2.27.4,,,gobject gthread gio)
76 if test "$GLIB_LIBS" = ""; then
77 AC_MSG_ERROR(GLIB 2.27.4 or later is required to build libsoup)
79 GLIB_CFLAGS="$GLIB_CFLAGS -DG_DISABLE_SINGLE_INCLUDES"
81 PKG_CHECK_MODULES(XML, libxml-2.0)
85 dnl ***********************
86 dnl *** Check for Win32 ***
87 dnl ***********************
89 AC_MSG_CHECKING([for Win32])
93 CFLAGS="$CFLAGS -D_REENTRANT"
99 AC_MSG_RESULT([$os_win32])
100 AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes])
102 dnl *******************
103 dnl *** Misc checks ***
104 dnl *******************
105 AC_CHECK_FUNCS(gmtime_r)
107 AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket))
109 dnl *********************
110 dnl *** GNOME support ***
111 dnl *********************
112 AC_MSG_CHECKING(whether to build libsoup-gnome)
114 AS_HELP_STRING([--without-gnome], [Do not build libsoup-gnome]),
115 :, [if test $os_win32 = yes; then with_gnome=no; else with_gnome=yes; fi])
116 AC_MSG_RESULT($with_gnome)
118 if test $with_gnome != no; then
119 PKG_CHECK_MODULES(GNOME_KEYRING, gnome-keyring-1, :,
121 [Could not find gnome-keyring devel files.
122 Configure with --without-gnome if you wish to build only libsoup
123 without GNOME-specific features.]))
125 AC_SUBST(GNOME_KEYRING_CFLAGS)
126 AC_SUBST(GNOME_KEYRING_LIBS)
128 AM_CONDITIONAL(BUILD_LIBSOUP_GNOME, test $with_gnome != no)
130 if test $with_gnome != no; then
131 AC_DEFINE(HAVE_GNOME, 1, [Defined if GNOME support is enabled])
133 PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, :, [AC_MSG_ERROR(dnl
134 [Could not find libproxy:
138 This is required for GNOME proxy support.
140 Pass "--without-gnome" to configure if you want to build libsoup
141 without GNOME support.])])
143 AC_MSG_CHECKING(libproxy version)
144 libproxy_version=`$PKG_CONFIG --modversion libproxy-1.0`
145 case $libproxy_version in
147 AC_MSG_RESULT([$libproxy_version, using workarounds...])
148 AC_DEFINE(HAVE_LIBPROXY_WITH_NON_THREAD_SAFE_GNOME_MODULE, 1, [Defined if libproxy is old and has a non-thread-safe gnome module])
151 AC_MSG_RESULT([$libproxy_version, ok])
155 PKG_CHECK_MODULES(GCONF, gconf-2.0, , [AC_MSG_ERROR(dnl
156 [Could not find GConf:
160 This is required for GNOME proxy support.
162 Pass "--without-gnome" to configure if you want to build libsoup
163 without GNOME support.])])
165 PKG_CHECK_MODULES(SQLITE, sqlite3, :, [AC_MSG_ERROR(dnl
166 [Could not find sqlite3 devel files:
170 Pass "--without-gnome" to configure if you want to build libsoup
171 without GNOME support.])])
174 AC_SUBST(GCONF_CFLAGS)
176 AC_SUBST(LIBPROXY_CFLAGS)
177 AC_SUBST(LIBPROXY_LIBS)
178 AC_SUBST(SQLITE_CFLAGS)
179 AC_SUBST(SQLITE_LIBS)
185 GTK_DOC_CHECK([1.10])
187 dnl *****************************
188 dnl *** gobject-introspection ***
189 dnl *****************************
190 GOBJECT_INTROSPECTION_CHECK([0.9.5])
192 dnl *************************************
193 dnl *** Warnings to show if using GCC ***
194 dnl *************************************
196 AC_ARG_ENABLE(more-warnings,
197 AS_HELP_STRING([--disable-more-warnings], [Inhibit compiler warnings]),
198 set_more_warnings=no)
200 if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
202 -Wall -Wstrict-prototypes -Wmissing-declarations \
203 -Wmissing-prototypes -Wnested-externs -Wpointer-arith \
204 -Wdeclaration-after-statement -Wformat=2 -Winit-self \
205 -Waggregate-return -Wmissing-format-attribute"
207 for option in -Wmissing-include-dirs -Wundef; do
208 SAVE_CFLAGS="$CFLAGS"
209 CFLAGS="$CFLAGS $option"
210 AC_MSG_CHECKING([whether gcc understands $option])
211 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])],
214 AC_MSG_RESULT($has_option)
215 if test $has_option = no; then
216 CFLAGS="$SAVE_CFLAGS"
221 dnl ******************************
222 dnl *** Stuff for regression tests
223 dnl ******************************
224 AC_MSG_NOTICE([checking for programs needed for regression tests])
225 MISSING_REGRESSION_TEST_PACKAGES=""
227 AC_MSG_CHECKING([for glib-networking (glib TLS implementation)])
228 save_CFLAGS="$CFLAGS"
230 CFLAGS="$CFLAGS $GLIB_CFLAGS"
231 LIBS="$LIBS $GLIB_LIBS"
232 AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <gio/gio.h>],
233 [return !g_tls_backend_supports_tls (g_tls_backend_get_default ());])],
234 [have_glib_networking=yes],
235 [have_glib_networking=no],
236 [have_glib_networking="unknown (cross-compiling)"])
237 CFLAGS="$save_CFLAGS"
239 AC_MSG_RESULT($have_glib_networking)
240 if test "$have_glib_networking" = "no"; then
241 MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES glib-networking"
244 AC_ARG_WITH(apache-httpd,
245 AS_HELP_STRING([--with-apache-httpd], [Path to apache httpd (for tests)]),
246 APACHE_HTTPD="$withval",
247 [AC_PATH_PROGS(APACHE_HTTPD, httpd2 httpd apache2 apache, no, ${PATH}:/usr/sbin)])
248 if test "$APACHE_HTTPD" != "no"; then
249 AC_MSG_CHECKING([Apache version])
250 apache_version=`$APACHE_HTTPD -v 2>/dev/null | sed -ne 's/Server version: Apache\///p'`
251 case $apache_version in
253 AC_MSG_RESULT([$apache_version (ok)])
256 AC_MSG_RESULT([$apache_version (ignoring)])
261 AC_SUBST(APACHE_HTTPD)
262 AC_DEFINE_UNQUOTED(APACHE_HTTPD, "$APACHE_HTTPD", [Apache httpd])
264 if test "$APACHE_HTTPD" != "no"; then
265 AC_MSG_CHECKING([for Apache module directory])
266 AC_ARG_WITH(apache-module-dir,
267 AS_HELP_STRING([--with-apache-module-dir], [Apache modules dirs (for tests)]),
268 apache_module_dirs="$withval",
269 [apache_prefix=`dirname \`dirname $APACHE_HTTPD\``
270 mpm=`$APACHE_HTTPD -V | sed -ne 's/^Server MPM: */-/p' | tr 'A-Z' 'a-z'`
271 # This only works with bash, but should fail harmlessly in sh
272 apache_module_dirs=`echo $apache_prefix/lib{64,}/{apache,apache2,http,http2,httpd}{$mpm,}{/modules,}`])
273 for dir in $apache_module_dirs; do
274 if test -f $dir/mod_auth_digest.so; then
275 APACHE_MODULE_DIR="$dir"
277 if test -f $dir/mod_ssl.so; then
278 APACHE_SSL_MODULE_DIR="$dir"
279 IF_HAVE_APACHE_SSL=""
281 if test -f $dir/mod_php5.so; then
282 APACHE_PHP_MODULE_DIR="$dir"
283 APACHE_PHP_MODULE=mod_php5.so
285 if test -f $dir/libphp5.so; then
286 APACHE_PHP_MODULE_DIR="$dir"
287 APACHE_PHP_MODULE=libphp5.so
290 AC_MSG_RESULT($APACHE_MODULE_DIR)
291 AC_SUBST(APACHE_MODULE_DIR)
292 AC_SUBST(APACHE_SSL_MODULE_DIR)
293 AC_SUBST(APACHE_PHP_MODULE_DIR)
294 AC_SUBST(APACHE_PHP_MODULE)
297 if test "$APACHE_HTTPD" != "no" -a -n "$APACHE_MODULE_DIR" -a -n "$APACHE_SSL_MODULE_DIR"; then
298 AC_DEFINE(HAVE_APACHE, 1, [Whether or not apache can be used for tests])
300 if test -z "$APACHE_PHP_MODULE_DIR"; then
301 MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES mod_php5"
305 if test "$APACHE_HTTPD" = "no" -o -z "$APACHE_MODULE_DIR"; then
306 MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES apache"
308 MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES mod_ssl"
311 AM_CONDITIONAL(HAVE_APACHE, test $have_apache = 1)
313 if test "$have_apache" = 1; then
314 AC_CHECK_PROGS(PHP, php php5)
316 AC_MSG_CHECKING([for Apache PHP module])
317 if test -f $APACHE_PHP_MODULE_DIR/$APACHE_PHP_MODULE; then
323 MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES php5"
325 AC_MSG_RESULT($have_php)
327 if test "$have_php" = yes; then
328 AC_MSG_CHECKING([for xmlrpc-epi-php])
329 if $PHP --rf xmlrpc_server_create | grep -q "does not exist"; then
330 have_xmlrpc_epi_php=no
331 MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES php-xmlrpc"
333 have_xmlrpc_epi_php=yes
335 AC_MSG_RESULT($have_xmlrpc_epi_php)
339 AC_SUBST(IF_HAVE_PHP)
340 AM_CONDITIONAL(HAVE_XMLRPC_EPI_PHP, test "$have_xmlrpc_epi_php" = yes)
342 AC_PATH_PROG(CURL, curl, no)
343 if test "$CURL" != no; then
344 AC_DEFINE(HAVE_CURL, 1, [Whether or not curl can be used for tests])
346 MISSING_REGRESSION_TEST_PACKAGES="$MISSING_REGRESSION_TEST_PACKAGES curl"
348 AM_CONDITIONAL(HAVE_CURL, test "$CURL" != no)
350 AC_SUBST(MISSING_REGRESSION_TEST_PACKAGES)
351 AM_CONDITIONAL(MISSING_REGRESSION_TEST_PACKAGES, test -n "$MISSING_REGRESSION_TEST_PACKAGES")
353 dnl *************************
354 dnl *** Output Everything ***
355 dnl *************************
357 AC_CONFIG_HEADERS([config.h])
367 docs/reference/Makefile
371 if test -n "$MISSING_REGRESSION_TEST_PACKAGES"; then
373 echo Some regression tests will not be run due to missing packages:
374 echo $MISSING_REGRESSION_TEST_PACKAGES