modular tests: depend on GIO 2.22 for GSocket
[platform/upstream/dbus.git] / configure.ac
1 dnl -*- mode: m4 -*-
2 AC_PREREQ([2.63])
3
4 m4_define([dbus_major_version], [1])
5 m4_define([dbus_minor_version], [4])
6 m4_define([dbus_micro_version], [11])
7 m4_define([dbus_version],
8           [dbus_major_version.dbus_minor_version.dbus_micro_version])
9 AC_INIT([dbus],[dbus_version],[https://bugs.freedesktop.org/enter_bug.cgi?product=dbus],[dbus])
10
11 AC_CANONICAL_HOST
12
13 AC_CONFIG_HEADERS([config.h])
14 AC_CONFIG_MACRO_DIR([m4])
15
16 AM_INIT_AUTOMAKE([1.10 tar-ustar -Wno-portability])
17
18 GETTEXT_PACKAGE=dbus-1
19 AC_SUBST(GETTEXT_PACKAGE)
20 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[The name of the gettext domain])
21
22  ## must come before we use the $USE_MAINTAINER_MODE variable later
23 AM_MAINTAINER_MODE
24
25 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
26
27 AC_DEFINE_UNQUOTED(DBUS_DAEMON_NAME,"dbus-daemon",[Name of executable])
28
29 # libtool versioning - this applies to libdbus
30 #
31 # See http://sources.redhat.com/autobook/autobook/autobook_91.html#SEC91 for details
32 #
33
34 ## increment if the interface has additions, changes, removals.
35 LT_CURRENT=8
36
37 ## increment any time the source changes; set to
38 ##  0 if you increment CURRENT
39 LT_REVISION=6
40
41 ## increment if any interfaces have been added; set to 0
42 ## if any interfaces have been changed or removed. removal has
43 ## precedence over adding, so set to 0 if both happened.
44 LT_AGE=5
45
46 AC_SUBST(LT_CURRENT)
47 AC_SUBST(LT_REVISION)
48 AC_SUBST(LT_AGE)
49
50 DBUS_MAJOR_VERSION=dbus_major_version
51 DBUS_MINOR_VERSION=dbus_minor_version
52 DBUS_MICRO_VERSION=dbus_micro_version
53 DBUS_VERSION=dbus_major_version.dbus_minor_version.dbus_micro_version
54
55 AC_SUBST(DBUS_MAJOR_VERSION)
56 AC_SUBST(DBUS_MINOR_VERSION)
57 AC_SUBST(DBUS_MICRO_VERSION)
58 AC_SUBST(DBUS_VERSION)
59
60 AC_PROG_CC
61 AM_PROG_CC_C_O
62 AC_PROG_CXX
63 AC_USE_SYSTEM_EXTENSIONS
64 AC_ISC_POSIX
65 AC_HEADER_STDC
66 AC_C_INLINE
67 AM_PROG_LIBTOOL
68 AC_PROG_MKDIR_P
69 COMPILER_COVERAGE
70 COMPILER_OPTIMISATIONS
71
72 # Initialize libtool
73 LT_INIT([win32-dll])
74 LT_LANG([Windows Resource])
75
76 # Set some internal variables depending on the platform for later use.
77 dbus_win=no
78 dbus_cygwin=no
79 dbus_unix=no
80 case "${host}" in
81     *-mingw32ce*)
82         dbus_win=yes
83         dbus_wince=yes
84         ;;
85     *-mingw32*)
86         dbus_win=yes
87         ;;
88     *-cygwin*)
89         dbus_cygwin=yes
90         dbus_unix=yes
91         ;;
92     *)
93         dbus_unix=yes
94        ;;
95 esac
96
97 # Special defines for certain platforms
98 if test "$dbus_win" = yes; then
99     AC_DEFINE(DBUS_WIN,1,[Defined if we run on a W32 API based system])
100     BUILD_TIMESTAMP=`date --iso-8601=minutes`
101     AC_SUBST(BUILD_TIMESTAMP)
102     # Assume DBUS_VERSION is always three numbers
103     BUILD_FILEVERSION=`echo "$DBUS_VERSION" | sed -e 's/\./,/g'`,0
104     AC_SUBST(BUILD_FILEVERSION)
105     AC_CHECK_TOOL(WINDRES, windres, no)
106     if test "$WINDRES" = no; then
107       AC_MSG_ERROR([*** Could not find an implementation of windres in your PATH.])
108     fi
109     if test "$dbus_wince" = yes; then
110       AC_DEFINE(DBUS_WINCE,1,[Defined if we run on a W32 CE API based system])
111       AC_DEFINE(_WIN32_WCE, 0x0502, [Defined to get newer W32 CE APIs])
112     fi
113 else
114     AC_DEFINE(DBUS_UNIX,1,[Defined if we run on a Unix-based system])
115 fi
116 if test "$dbus_cygwin" = yes; then
117     AC_DEFINE(DBUS_CYGWIN,1,[Defined if we run on a cygwin API based system])
118 fi
119
120 AM_CONDITIONAL(DBUS_WIN, test "$dbus_win" = yes)
121 AM_CONDITIONAL(DBUS_WINCE, test "$dbus_wince" = yes)
122 AM_CONDITIONAL(DBUS_UNIX, test "$dbus_unix" = yes)
123 AM_CONDITIONAL(DBUS_CYGWIN, test "$dbus_cygwin" = yes)
124
125 AC_ARG_ENABLE(ansi, AS_HELP_STRING([--enable-ansi],[enable -ansi -pedantic gcc flags]),enable_ansi=$enableval,enable_ansi=no)
126 AC_ARG_ENABLE(verbose-mode, AS_HELP_STRING([--enable-verbose-mode],[support verbose debug mode]),enable_verbose_mode=$enableval,enable_verbose_mode=$USE_MAINTAINER_MODE)
127 AC_ARG_ENABLE(asserts, AS_HELP_STRING([--enable-asserts],[include assertion checks]),enable_asserts=$enableval,enable_asserts=$USE_MAINTAINER_MODE)
128 AC_ARG_ENABLE(checks, AS_HELP_STRING([--enable-checks],[include sanity checks on public API]),enable_checks=$enableval,enable_checks=yes)
129 AC_ARG_ENABLE(xml-docs, AS_HELP_STRING([--enable-xml-docs],[build XML documentation (requires xmlto)]),enable_xml_docs=$enableval,enable_xml_docs=auto)
130 AC_ARG_ENABLE(doxygen-docs, AS_HELP_STRING([--enable-doxygen-docs],[build DOXYGEN documentation (requires Doxygen)]),enable_doxygen_docs=$enableval,enable_doxygen_docs=auto)
131 AC_ARG_ENABLE(abstract-sockets, AS_HELP_STRING([--enable-abstract-sockets],[use abstract socket namespace (linux only)]),enable_abstract_sockets=$enableval,enable_abstract_sockets=auto)
132 AC_ARG_ENABLE(selinux, AS_HELP_STRING([--enable-selinux],[build with SELinux support]),enable_selinux=$enableval,enable_selinux=auto)
133 AC_ARG_ENABLE(libaudit,AS_HELP_STRING([--enable-libaudit],[build audit daemon support for SELinux]),enable_libaudit=$enableval,enable_libaudit=auto)
134 AC_ARG_ENABLE(dnotify, AS_HELP_STRING([--enable-dnotify],[build with dnotify support (linux only)]),enable_dnotify=$enableval,enable_dnotify=auto)
135 AC_ARG_ENABLE(inotify, AS_HELP_STRING([--enable-inotify],[build with inotify support (linux only)]),enable_inotify=$enableval,enable_inotify=auto)
136 AC_ARG_ENABLE(kqueue, AS_HELP_STRING([--enable-kqueue],[build with kqueue support]),enable_kqueue=$enableval,enable_kqueue=auto)
137 AC_ARG_ENABLE(console-owner-file, AS_HELP_STRING([--enable-console-owner-file],[enable console owner file]),enable_console_owner_file=$enableval,enable_console_owner_file=auto)
138 AC_ARG_ENABLE(userdb-cache, AS_HELP_STRING([--enable-userdb-cache],[build with userdb-cache support]),enable_userdb_cache=$enableval,enable_userdb_cache=yes)
139 AC_ARG_ENABLE(launchd, AS_HELP_STRING([--enable-launchd],[build with launchd auto-launch support]),enable_launchd=$enableval,enable_launchd=auto)
140
141 AC_ARG_WITH(xml, AS_HELP_STRING([--with-xml=[libxml/expat]],[XML library to use (libxml may be named libxml2 on some systems)]))
142 AC_ARG_WITH(init-scripts, AS_HELP_STRING([--with-init-scripts=[redhat]],[Style of init scripts to install]))
143 AC_ARG_WITH(session-socket-dir, AS_HELP_STRING([--with-session-socket-dir=[dirname]],[Where to put sockets for the per-login-session message bus]))
144 AC_ARG_WITH(test-socket-dir, AS_HELP_STRING([--with-test-socket-dir=[dirname]],[Where to put sockets for make check]))
145 AC_ARG_WITH(system-pid-file, AS_HELP_STRING([--with-system-pid-file=[pidfile]],[PID file for systemwide daemon]))
146 AC_ARG_WITH(system-socket, AS_HELP_STRING([--with-system-socket=[filename]],[UNIX domain socket for systemwide daemon]))
147 AC_ARG_WITH(console-auth-dir, AS_HELP_STRING([--with-console-auth-dir=[dirname]],[directory to check for console ownerhip]))
148 AC_ARG_WITH(console-owner-file, AS_HELP_STRING([--with-console-owner-file=[filename]],[file whose owner determines current console owner]))
149 AC_ARG_WITH(launchd-agent-dir, AS_HELP_STRING([--with-launchd-agent-dir=[dirname]],[directory to put the launchd agent (default: /Library/LaunchAgents)]))
150 AC_ARG_WITH(dbus_user, AS_HELP_STRING([--with-dbus-user=<user>],[User for running the DBUS daemon (messagebus)]))
151 AC_ARG_WITH(dbus_daemondir, AS_HELP_STRING([--with-dbus-daemondir=[dirname]],[Directory for installing the DBUS daemon]))
152
153 AC_ARG_ENABLE([embedded-tests],
154   AS_HELP_STRING([--enable-embedded-tests],
155     [enable unit test code in the library and binaries]),
156   [], [enable_embedded_tests=$USE_MAINTAINER_MODE])
157 AC_ARG_ENABLE([modular-tests],
158   AS_HELP_STRING([--enable-modular-tests],
159     [enable modular regression tests (requires GLib)]),
160   [], [enable_modular_tests=auto])
161 # --enable-tests overrides both --enable-embedded-tests and
162 # --enable-modular-tests
163 AC_ARG_ENABLE([tests],
164   AS_HELP_STRING([--enable-tests],
165     [enable/disable all tests, overriding embedded-tests/modular-tests]),
166   [enable_embedded_tests=$enableval; enable_modular_tests=$enableval],
167   [])
168
169 # DBUS_ENABLE_EMBEDDED_TESTS controls unit tests built in to .c files
170 # and also some stuff in the test/ subdir. DBUS_BUILD_TESTS was an older
171 # name for this.
172 AM_CONDITIONAL([DBUS_BUILD_TESTS], [test "x$enable_embedded_tests" = xyes])
173 AM_CONDITIONAL([DBUS_ENABLE_EMBEDDED_TESTS],
174   [test "x$enable_embedded_tests" = xyes])
175 if test "x$enable_embedded_tests" = xyes; then
176     AC_DEFINE([DBUS_ENABLE_EMBEDDED_TESTS], [1],
177       [Define to build test code into the library and binaries])
178     AC_DEFINE([DBUS_BUILD_TESTS], [1],
179       [Define to build test code into the library and binaries])
180 fi
181
182 # DBUS_ENABLE_MODULAR_TESTS controls tests that work based on public API.
183 # These use GTest, from GLib, because life's too short. They're enabled by
184 # default (unless you don't have GLib), because they don't bloat the library
185 # or binaries.
186 if test "x$enable_modular_tests" != xno; then
187   PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.22, gio-2.0 >= 2.22],
188     [],
189     [if test "x$enable_modular_tests" = xyes; then
190       AC_MSG_ERROR([GLib is required by the modular tests])
191     else # assumed to be "auto"
192       enable_modular_tests=no
193     fi])
194   # If dbus-gmain.[ch] returned to libdbus then we wouldn't need this
195   PKG_CHECK_MODULES([DBUS_GLIB], [dbus-glib-1],
196     [],
197     [if test "x$enable_modular_tests" = xyes; then
198       AC_MSG_ERROR([dbus-glib is required by the modular tests (for now)])
199     else # assumed to be "auto"
200       enable_modular_tests=no
201     fi])
202   if test "x$enable_modular_tests" != xno; then
203     # dependencies checked, switch from auto to yes
204     enable_modular_tests=yes
205   fi
206 fi
207 if test "x$enable_modular_tests" = xyes; then
208   AC_DEFINE([DBUS_ENABLE_MODULAR_TESTS], [1],
209     [Define to build independent test binaries (requires GLib)])
210 fi
211 AM_CONDITIONAL([DBUS_ENABLE_MODULAR_TESTS],
212   [test "x$enable_modular_tests" = xyes])
213
214 if test x$enable_verbose_mode = xyes; then
215     AC_DEFINE(DBUS_ENABLE_VERBOSE_MODE,1,[Support a verbose mode])
216 fi
217
218 if test x$enable_asserts = xno; then
219     AC_DEFINE(DBUS_DISABLE_ASSERT,1,[Disable assertion checking])
220     R_DYNAMIC_LDFLAG=""
221 else
222     # -rdynamic is needed for glibc's backtrace_symbols to work.
223     # No clue how much overhead this adds, but it's useful
224     # to do this on any assertion failure,
225     # so for now it's enabled anytime asserts are (currently not
226     # in production builds).
227
228     # To get -rdynamic you pass -export-dynamic to libtool.
229     AC_DEFINE(DBUS_BUILT_R_DYNAMIC,1,[whether -export-dynamic was passed to libtool])
230     R_DYNAMIC_LDFLAG=-export-dynamic
231 fi
232 AC_SUBST(R_DYNAMIC_LDFLAG)
233
234 if test x$enable_checks = xno; then
235     AC_DEFINE(DBUS_DISABLE_CHECKS,1,[Disable public API sanity checking])
236     AC_DEFINE(G_DISABLE_CHECKS,1,[Disable GLib public API sanity checking])
237 fi
238
239 if test x$enable_userdb_cache = xyes; then
240     AC_DEFINE(DBUS_ENABLE_USERDB_CACHE,1,[Build with caching of user data])
241 fi
242
243 if test x$enable_compiler_coverage = xyes; then
244      ## so that config.h changes when you toggle gcov support
245      AC_DEFINE_UNQUOTED(DBUS_GCOV_ENABLED, 1, [Defined if gcov is enabled to force a rebuild due to config.h changing])
246 fi
247
248 # glibc21.m4 serial 3
249 dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
250 dnl This file is free software; the Free Software Foundation
251 dnl gives unlimited permission to copy and/or distribute it,
252 dnl with or without modifications, as long as this notice is preserved.
253
254 # Test for the GNU C Library, version 2.1 or newer.
255 # From Bruno Haible.
256
257 AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
258   ac_cv_gnu_library_2_1,
259   [AC_EGREP_CPP([Lucky GNU user],
260     [
261 #include <features.h>
262 #ifdef __GNU_LIBRARY__
263  #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
264   Lucky GNU user
265  #endif
266 #endif
267     ],
268     ac_cv_gnu_library_2_1=yes,
269     ac_cv_gnu_library_2_1=no)
270   ]
271 )
272
273 #### Integer sizes
274
275 AC_CHECK_SIZEOF(char)
276 AC_CHECK_SIZEOF(short)
277 AC_CHECK_SIZEOF(long)
278 AC_CHECK_SIZEOF(int)
279 AC_CHECK_SIZEOF(void *)
280 AC_CHECK_SIZEOF(long long)
281 AC_CHECK_SIZEOF(__int64)
282
283 ### See what our 64 bit type is called
284 AC_MSG_CHECKING([64-bit integer type])
285
286 case 8 in
287 $ac_cv_sizeof_int)
288   dbusint64=int
289   dbusint64_constant='(val)'
290   dbusuint64_constant='(val)'
291   dbusint64_printf_modifier='""'
292   ;;
293 $ac_cv_sizeof_long)
294   dbusint64=long
295   dbusint64_constant='(val##L)'
296   dbusuint64_constant='(val##UL)'
297   dbusint64_printf_modifier='"l"'
298   ;;
299 $ac_cv_sizeof_long_long)
300   dbusint64='long long'
301   dbusint64_constant='(val##LL)'
302   dbusuint64_constant='(val##ULL)'
303   # Ideally we discover what the format is, but this is
304   # only used in verbose mode, so eh...
305   if test x"$ac_cv_gnu_library_2_1" = xyes; then
306     dbusint64_printf_modifier='"ll"'
307   fi
308   ;;
309 $ac_cv_sizeof___int64)
310   dbusint64=__int64
311   dbusint64_constant='(val##i64)'
312   dbusuint64_constant='(val##ui64)'
313   # See above case
314   if test x"$ac_cv_gnu_library_2_1" = xyes; then
315     dbusint64_printf_modifier='"ll"'
316   fi
317   ;;
318 esac
319
320 if test -z "$dbusint64" ; then
321         DBUS_INT64_TYPE="no_int64_type_detected"
322         DBUS_HAVE_INT64=0
323         DBUS_INT64_CONSTANT=
324         DBUS_UINT64_CONSTANT=
325         AC_MSG_RESULT([none found])
326 else
327         DBUS_INT64_TYPE="$dbusint64"
328         DBUS_HAVE_INT64=1
329         DBUS_INT64_CONSTANT="$dbusint64_constant"
330         DBUS_UINT64_CONSTANT="$dbusuint64_constant"
331         if test x"$dbusint64_printf_modifier" != x; then
332                 AC_DEFINE_UNQUOTED(DBUS_INT64_PRINTF_MODIFIER, [$dbusint64_printf_modifier], [Define to printf modifier for 64 bit integer type])
333         fi
334         AC_MSG_RESULT($DBUS_INT64_TYPE)
335 fi
336
337 AC_SUBST(DBUS_INT64_TYPE)
338 AC_SUBST(DBUS_INT64_CONSTANT)
339 AC_SUBST(DBUS_UINT64_CONSTANT)
340 AC_SUBST(DBUS_HAVE_INT64)
341
342 ### see what 32-bit int is called
343 AC_MSG_CHECKING([32-bit integer type])
344
345 case 4 in
346 $ac_cv_sizeof_short)
347   dbusint32=short
348   ;;
349 $ac_cv_sizeof_int)
350   dbusint32=int
351   ;;
352 $ac_cv_sizeof_long)
353   dbusint32=long
354   ;;
355 esac
356
357 if test -z "$dbusint32" ; then
358         DBUS_INT32_TYPE="no_int32_type_detected"
359         AC_MSG_ERROR([No 32-bit integer type found])
360 else
361         DBUS_INT32_TYPE="$dbusint32"
362         AC_MSG_RESULT($DBUS_INT32_TYPE)
363 fi
364
365 AC_SUBST(DBUS_INT32_TYPE)
366
367 ### see what 16-bit int is called
368 AC_MSG_CHECKING([16-bit integer type])
369
370 case 2 in
371 $ac_cv_sizeof_short)
372   dbusint16=short
373   ;;
374 $ac_cv_sizeof_int)
375   dbusint16=int
376   ;;
377 esac
378
379 if test -z "$dbusint16" ; then
380         DBUS_INT16_TYPE="no_int16_type_detected"
381         AC_MSG_ERROR([No 16-bit integer type found])
382 else
383         DBUS_INT16_TYPE="$dbusint16"
384         AC_MSG_RESULT($DBUS_INT16_TYPE)
385 fi
386
387 AC_SUBST(DBUS_INT16_TYPE)
388
389 ## byte order
390 case $host_os in
391         darwin*)
392                 # check at compile-time, so that it is possible to build universal
393                 # (with multiple architectures at once on the compile line)
394                 AH_VERBATIM([WORDS_BIGENDIAN_DARWIN], [
395                         /* Use the compiler-provided endianness defines to allow universal compiling. */
396                         #if defined(__BIG_ENDIAN__)
397                         #define WORDS_BIGENDIAN 1
398                         #endif
399                 ])
400                 ;;
401         *)
402                 AC_C_BIGENDIAN
403                 ;;
404 esac
405
406 dnl **********************************
407 dnl *** va_copy checks (from GLib) ***
408 dnl **********************************
409 dnl we currently check for all three va_copy possibilities, so we get
410 dnl all results in config.log for bug reports.
411 AC_CACHE_CHECK([for an implementation of va_copy()],dbus_cv_va_copy,[
412         AC_LINK_IFELSE([AC_LANG_SOURCE([#include <stdarg.h>
413 #include <stdlib.h>
414         static void f (int i, ...) {
415         va_list args1, args2;
416         va_start (args1, i);
417         va_copy (args2, args1);
418         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
419           exit (1);
420         va_end (args1); va_end (args2);
421         }
422         int main() {
423           f (0, 42);
424           return 0;
425         }])],
426         [dbus_cv_va_copy=yes],
427         [dbus_cv_va_copy=no])
428 ])
429 AC_CACHE_CHECK([for an implementation of __va_copy()],dbus_cv___va_copy,[
430         AC_LINK_IFELSE([AC_LANG_SOURCE([#include <stdarg.h>
431 #include <stdlib.h>
432         static void f (int i, ...) {
433         va_list args1, args2;
434         va_start (args1, i);
435         __va_copy (args2, args1);
436         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
437           exit (1);
438         va_end (args1); va_end (args2);
439         }
440         int main() {
441           f (0, 42);
442           return 0;
443         }])],
444         [dbus_cv___va_copy=yes],
445         [dbus_cv___va_copy=no])
446 ])
447
448 if test "x$dbus_cv_va_copy" = "xyes"; then
449   dbus_va_copy_func=va_copy
450 else if test "x$dbus_cv___va_copy" = "xyes"; then
451   dbus_va_copy_func=__va_copy
452 fi
453 fi
454
455 if test -n "$dbus_va_copy_func"; then
456   AC_DEFINE_UNQUOTED(DBUS_VA_COPY,$dbus_va_copy_func,[A 'va_copy' style function])
457 fi
458
459 AC_LANG_PUSH(C)
460 AC_CACHE_CHECK([whether va_lists can be copied by value],
461         dbus_cv_va_val_copy,
462         [AC_RUN_IFELSE([AC_LANG_PROGRAM(
463 [[
464         #include <stdarg.h>
465         #include <stdlib.h>
466 ]],
467 [[
468         static void f (int i, ...) {
469         va_list args1, args2;
470         va_start (args1, i);
471         args2 = args1;
472         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
473           exit (1);
474         va_end (args1); va_end (args2);
475         }
476         int main() {
477           f (0, 42);
478           return 0;
479         }
480 ]])],
481         [dbus_cv_va_val_copy=yes],
482         [dbus_cv_va_val_copy=no],
483         [dbus_cv_va_val_copy=yes])
484 ])
485 AC_LANG_POP(C)
486
487 if test "x$dbus_cv_va_val_copy" = "xno"; then
488   AC_DEFINE(DBUS_VA_COPY_AS_ARRAY,1, ['va_lists' cannot be copies as values])
489 fi
490
491
492 #### Atomic integers
493
494 AC_CACHE_CHECK([whether $CC knows __sync_sub_and_fetch()],
495   dbus_cv_sync_sub_and_fetch,
496   [AC_LINK_IFELSE([
497      AC_LANG_PROGRAM([[]], [[int a = 4; int b = __sync_sub_and_fetch(&a, 4); exit(b); ]])],
498      [dbus_cv_sync_sub_and_fetch=yes],
499      [dbus_cv_sync_sub_and_fetch=no])
500   ])
501
502 if test "x$dbus_cv_sync_sub_and_fetch" = "xyes" ; then
503    have_sync=1
504 else
505    have_sync=0
506 fi
507
508 AC_DEFINE_UNQUOTED([DBUS_USE_SYNC], [$have_sync], [Use the gcc __sync extension])
509
510 #### Various functions
511 AC_SEARCH_LIBS(socket,[socket network])
512 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
513
514 AC_CHECK_FUNCS(vsnprintf vasprintf nanosleep usleep setenv clearenv unsetenv socketpair getgrouplist fpathconf setrlimit poll setlocale localeconv strtoll strtoull)
515
516 #### Check for broken poll; taken from Glib's configure
517
518 AC_MSG_CHECKING([for broken poll])
519 AC_RUN_IFELSE([AC_LANG_SOURCE([[
520     #include <stdlib.h>
521     #include <fcntl.h>
522     #include <poll.h>
523     #ifdef HAVE_SYS_POLL_H
524     #include <sys/poll.h>
525     #endif
526     int main(void) {
527       struct pollfd fds[1];
528       int fd;
529       fd = open("/dev/null", 1);
530       fds[0].fd = fd;
531       fds[0].events = POLLIN;
532       fds[0].revents = 0;
533       if (poll(fds, 1, 0) < 0 || (fds[0].revents & POLLNVAL) != 0) {
534             exit(1);  /* Does not work for devices -- fail */
535       }
536       exit(0);
537     }]])],
538   [broken_poll=no],
539   [broken_poll=yes
540    AC_DEFINE(BROKEN_POLL,1,[poll doesn't work on devices])],
541   [broken_poll="no (cross compiling)"])
542 AC_MSG_RESULT($broken_poll)
543
544 AC_MSG_CHECKING(for dirfd)
545 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
546 #include <sys/types.h>
547 #include <dirent.h>
548 ]], [[
549 DIR *dirp;
550 dirp = opendir(".");
551 dirfd(dirp);
552 closedir(dirp);
553 ]])],
554 [dbus_have_dirfd=yes],
555 [dbus_have_dirfd=no])
556 AC_MSG_RESULT($dbus_have_dirfd)
557 if test "$dbus_have_dirfd" = yes; then
558         AC_DEFINE(HAVE_DIRFD,1,[Have dirfd function])
559 else
560         AC_MSG_CHECKING(for DIR *dirp->dd_fd)
561         AC_LINK_IFELSE([AC_LANG_PROGRAM([[
562 #include <sys/types.h>
563 #include <dirent.h>
564         ]], [[
565 DIR *dirp;
566 int fd;
567 dirp = opendir(".");
568 fd = dirp->dd_fd;
569 closedir(dirp);
570         ]])],
571         [dbus_have_ddfd=yes],
572         [dbus_have_ddfd=no])
573         AC_MSG_RESULT($dbus_have_ddfd)
574         if test "$dbus_have_ddfd" = yes; then
575                 AC_DEFINE(HAVE_DDFD,1,[Have the ddfd member of DIR])
576         fi
577 fi
578
579 AC_CHECK_HEADERS(sys/resource.h)
580
581 AC_CHECK_HEADERS(dirent.h)
582
583 AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)])
584
585 AC_CHECK_HEADERS(errno.h)
586
587 AC_CHECK_HEADERS(signal.h)
588
589 AC_CHECK_HEADERS(locale.h)
590
591 AC_CHECK_HEADERS(byteswap.h)
592
593 AC_CHECK_HEADERS(unistd.h)
594
595 AC_CHECK_HEADERS(ws2tcpip.h)
596
597 AC_CHECK_HEADERS(wspiapi.h)
598
599 # Add -D_POSIX_PTHREAD_SEMANTICS if on Solaris
600 #
601 case $host_os in
602     solaris*)
603        CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS" ;;
604 esac
605
606 # checking for a posix version of getpwnam_r
607 # if we are cross compiling and can not run the test
608 # assume getpwnam_r is the posix version
609 # it is up to the person cross compiling to change
610 # this behavior if desired
611 AC_LANG_PUSH(C)
612 AC_CACHE_CHECK([for posix getpwnam_r],
613                 ac_cv_func_posix_getpwnam_r,
614                 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
615 [[
616 #include <errno.h>
617 #include <pwd.h>
618 ]],
619 [[
620     char buffer[10000];
621     struct passwd pwd, *pwptr = &pwd;
622     int error;
623     errno = 0;
624     error = getpwnam_r ("", &pwd, buffer,
625                         sizeof (buffer), &pwptr);
626    return (error < 0 && errno == ENOSYS)
627            || error == ENOSYS;
628 ]])],
629         [ac_cv_func_posix_getpwnam_r=yes],
630         [ac_cv_func_posix_getpwnam_r=no],
631         [ac_cv_func_posix_getpwnam_r=yes]
632 )])
633 AC_LANG_POP(C)
634
635 if test "$ac_cv_func_posix_getpwnam_r" = yes; then
636         AC_DEFINE(HAVE_POSIX_GETPWNAM_R,1,
637                 [Have POSIX function getpwnam_r])
638 else
639         AC_CACHE_CHECK([for nonposix getpwnam_r],
640                 ac_cv_func_nonposix_getpwnam_r,
641                 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pwd.h>]], [[char buffer[10000];
642                         struct passwd pwd;
643                         getpwnam_r ("", &pwd, buffer,
644                                         sizeof (buffer));]])],
645                         [ac_cv_func_nonposix_getpwnam_r=yes],
646                         [ac_cv_func_nonposix_getpwnam_r=no])])
647                 if test "$ac_cv_func_nonposix_getpwnam_r" = yes; then
648                 AC_DEFINE(HAVE_NONPOSIX_GETPWNAM_R,1,
649                         [Have non-POSIX function getpwnam_r])
650         fi
651 fi
652
653 dnl check for socklen_t
654 AC_MSG_CHECKING(whether socklen_t is defined)
655 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
656 #include <sys/types.h>
657 #include <sys/socket.h>
658 #include <netdb.h>
659 ]], [[
660 socklen_t foo;
661 foo = 1;
662 ]])],
663 [dbus_have_socklen_t=yes],
664 [dbus_have_socklen_t=no])
665 AC_MSG_RESULT($dbus_have_socklen_t)
666
667 if test "x$dbus_have_socklen_t" = "xyes"; then
668     AC_DEFINE(HAVE_SOCKLEN_T,1,[Have socklen_t type])
669 fi
670
671 dnl check for writev header and writev function so we're
672 dnl good to go if HAVE_WRITEV gets defined.
673 AC_CHECK_HEADERS(sys/uio.h, [AC_CHECK_FUNCS(writev)])
674
675 dnl needed on darwin for NAME_MAX
676 AC_CHECK_HEADERS(sys/syslimits.h)
677
678 dnl Make it easy to check if we have MSG_NOSIGNAL without actually having to include sys/socket.h
679 AC_CHECK_DECLS([MSG_NOSIGNAL], [], [], [[ #include <sys/socket.h> ]])
680
681 dnl check for flavours of varargs macros (test from GLib)
682 AC_MSG_CHECKING(for ISO C99 varargs macros in C)
683 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
684 int a(int p1, int p2, int p3);
685 #define call_a(...) a(1,__VA_ARGS__)
686 call_a(2,3);
687 ]])],
688 [dbus_have_iso_c_varargs=yes],
689 [dbus_have_iso_c_varargs=no])
690 AC_MSG_RESULT($dbus_have_iso_c_varargs)
691
692 AC_MSG_CHECKING(for GNUC varargs macros)
693 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
694 int a(int p1, int p2, int p3);
695 #define call_a(params...) a(1,params)
696 call_a(2,3);
697 ]])],
698 [dbus_have_gnuc_varargs=yes],
699 [dbus_have_gnuc_varargs=no])
700 AC_MSG_RESULT($dbus_have_gnuc_varargs)
701
702 dnl Output varargs tests
703 if test x$dbus_have_iso_c_varargs = xyes; then
704     AC_DEFINE(HAVE_ISO_VARARGS,1,[Have ISO C99 varargs macros])
705 fi
706 if test x$dbus_have_gnuc_varargs = xyes; then
707     AC_DEFINE(HAVE_GNUC_VARARGS,1,[Have GNU-style varargs macros])
708 fi
709
710 dnl Check for various credentials.
711 AC_MSG_CHECKING(for struct cmsgcred)
712 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
713 #include <sys/types.h>
714 #include <sys/socket.h>
715 ]], [[
716 struct cmsgcred cred;
717
718 cred.cmcred_pid = 0;
719 ]])],
720 [dbus_have_struct_cmsgcred=yes],
721 [dbus_have_struct_cmsgcred=no])
722 AC_MSG_RESULT($dbus_have_struct_cmsgcred)
723
724 if test x$dbus_have_struct_cmsgcred = xyes; then
725     AC_DEFINE(HAVE_CMSGCRED,1,[Have cmsgcred structure])
726 fi
727
728 AC_CHECK_FUNCS(getpeerucred getpeereid)
729
730 AC_CHECK_FUNCS(pipe2 accept4)
731
732 #### Abstract sockets
733
734 if test x$enable_abstract_sockets = xauto; then
735 AC_LANG_PUSH(C)
736 warn_on_xcompile=no
737 AC_CACHE_CHECK([abstract socket namespace],
738                 ac_cv_have_abstract_sockets,
739                 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
740 [[
741 #include <sys/types.h>
742 #include <stdlib.h>
743 #include <string.h>
744 #include <stdio.h>
745 #include <sys/socket.h>
746 #include <sys/un.h>
747 #include <errno.h>
748 ]],
749 [[
750   size_t slen;
751   int listen_fd;
752   struct sockaddr_un addr;
753
754   listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
755
756   if (listen_fd < 0)
757     {
758       fprintf (stderr, "socket() failed: %s\n", strerror (errno));
759       exit (1);
760     }
761
762   memset (&addr, '\0', sizeof (addr));
763   addr.sun_family = AF_UNIX;
764   strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
765   /* SUN_LEN uses strlen() so need to calculate it before adding \0 at the
766    * beginning.
767    */
768   slen = SUN_LEN(&addr);
769   addr.sun_path[0] = '\0'; /* this is what makes it abstract */
770
771   if (bind (listen_fd, (struct sockaddr*) &addr, slen) < 0)
772     {
773        fprintf (stderr, "Abstract socket namespace bind() failed: %s\n",
774                 strerror (errno));
775        exit (1);
776     }
777   else
778     exit (0);
779 ]])],
780               [ac_cv_have_abstract_sockets=yes],
781               [ac_cv_have_abstract_sockets=no],
782               [
783                 ac_cv_have_abstract_sockets=no
784                 warn_on_xcompile=yes
785               ]
786 )])
787 if test x$warn_on_xcompile = xyes ; then
788   AC_MSG_WARN([Cannot check for abstract sockets when cross-compiling, please use --enable-abstract-sockets])
789 fi
790 AC_LANG_POP(C)
791 fi
792
793 if test x$enable_abstract_sockets = xyes; then
794     if test x$ac_cv_have_abstract_sockets = xno; then
795         AC_MSG_ERROR([Abstract sockets explicitly required, and support not detected.])
796     fi
797 fi
798
799 if test x$enable_abstract_sockets = xno; then
800    ac_cv_have_abstract_sockets=no;
801 fi
802
803 if test x$ac_cv_have_abstract_sockets = xyes ; then
804    DBUS_PATH_OR_ABSTRACT=abstract
805    AC_DEFINE(HAVE_ABSTRACT_SOCKETS,1,[Have abstract socket namespace])
806 else
807    DBUS_PATH_OR_ABSTRACT=path
808 fi
809
810 # this is used in addresses to prefer abstract, e.g.
811 # unix:path=/foo or unix:abstract=/foo
812 AC_SUBST(DBUS_PATH_OR_ABSTRACT)
813
814 PKG_PROG_PKG_CONFIG
815
816 #### Sort out XML library
817
818 # see what we have
819 AC_CHECK_LIB(expat, XML_ParserCreate_MM,
820              [ AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false) ],
821              have_expat=false)
822
823 # see what we want to use
824 dbus_use_libxml=false
825 dbus_use_expat=false
826 if test x$with_xml = xexpat; then
827         if ! $have_expat ; then
828            AC_MSG_ERROR([Explicitly requested expat but expat not found])
829         fi
830         dbus_use_expat=true
831 elif test x$with_xml = xlibxml; then
832         PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= 2.6.0, have_libxml=true, have_libxml=false)
833         if ! $have_libxml ; then
834            AC_MSG_ERROR([Explicitly requested libxml but libxml not found])
835         fi
836         dbus_use_libxml=true
837 else
838         ### expat is the default because libxml can't currently survive
839         ### our brutal OOM-handling unit test setup.
840         ### http://bugzilla.gnome.org/show_bug.cgi?id=109368
841         if test x$have_expat = xfalse; then
842                 AC_MSG_ERROR([Could not find expat.h, check config.log for failed attempts])
843         fi
844         ### By default, only use Expat since it's tested and known to work.  If you're a
845         ### general-purpose OS vendor, please don't enable libxml.  For embedded use
846         ### if your OS is built around libxml, that's another case.
847         dbus_use_expat=true
848 fi
849
850 AM_CONDITIONAL(DBUS_USE_EXPAT, $dbus_use_expat)
851 AM_CONDITIONAL(DBUS_USE_LIBXML, $dbus_use_libxml)
852
853 if $dbus_use_expat; then
854    XML_LIBS=-lexpat
855    XML_CFLAGS=
856 fi
857 if $dbus_use_libxml; then
858    XML_LIBS=$LIBXML_LIBS
859    XML_CFLAGS=$LIBXML_CFLAGS
860 fi
861
862 # Thread lib detection
863 AC_CHECK_FUNC(pthread_cond_timedwait,[AC_CHECK_LIB(pthread,pthread_cond_timedwait,
864                                                     [THREAD_LIBS="-lpthread"])])
865 save_libs="$LIBS"
866 LIBS="$LIBS $THREAD_LIBS"
867 AC_CHECK_FUNC(pthread_condattr_setclock,have_pthread_condattr_setclock=true,have_pthread_condattr_setclock=false)
868 if test x$have_pthread_condattr_setclock = xtrue; then
869     AC_SEARCH_LIBS([clock_getres],[rt],[THREAD_LIBS="$THREAD_LIBS -lrt"])
870     AC_MSG_CHECKING([for CLOCK_MONOTONIC])
871     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>
872 #include <pthread.h>
873 ]], [[
874 struct timespec monotonic_timer;
875 pthread_condattr_t attr;
876 pthread_condattr_init (&attr);
877 pthread_condattr_setclock (&attr, CLOCK_MONOTONIC);
878 clock_getres (CLOCK_MONOTONIC,&monotonic_timer);
879 ]])],
880 [have_clock_monotonic=true],
881 [have_clock_monotonic=false])
882 if test x$have_clock_monotonic = xtrue; then
883     AC_MSG_RESULT([found])
884     AC_DEFINE(HAVE_MONOTONIC_CLOCK, 1, [Define if we have CLOCK_MONOTONIC])
885 else
886     AC_MSG_RESULT([not found])
887 fi
888 fi
889 LIBS="$save_libs"
890
891 # SELinux detection
892 if test x$enable_selinux = xno ; then
893     have_selinux=no;
894 else
895     # See if we have SELinux library
896     AC_CHECK_LIB(selinux, is_selinux_enabled,
897                  have_selinux=yes, have_selinux=no)
898
899     # see if we have the SELinux header with the new D-Bus stuff in it
900     if test x$have_selinux = xyes ; then
901         AC_MSG_CHECKING([for DBUS Flask permissions in selinux/av_permissions.h])
902         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <selinux/av_permissions.h>]],
903                           [[#ifdef DBUS__ACQUIRE_SVC return 0;
904                             #else
905                             #error DBUS__ACQUIRE_SVC not defined
906                             #endif]])],
907                           [have_selinux=yes],
908                           [have_selinux=no])
909         AC_MSG_RESULT($have_selinux)
910     fi
911
912     if test x$enable_selinux = xauto ; then
913         if test x$have_selinux = xno ; then
914                 AC_MSG_WARN([Sufficiently new SELinux library not found])
915         fi
916     else
917         if test x$have_selinux = xno ; then
918                 AC_MSG_ERROR([SElinux explicitly required, and SELinux library not found])
919         fi
920     fi
921 fi
922
923 AM_CONDITIONAL(HAVE_SELINUX, test x$have_selinux = xyes)
924
925 if test x$have_selinux = xyes ; then
926     # the selinux code creates threads
927     # which requires libpthread even on linux
928     AC_CHECK_FUNC(pthread_create,,[AC_CHECK_LIB(pthread,pthread_create,
929                                                 [SELINUX_THREAD_LIBS="-lpthread"])])
930
931     SELINUX_LIBS="-lselinux $SELINUX_THREAD_LIBS"
932     AC_DEFINE(HAVE_SELINUX,1,[SELinux support])
933 else
934     SELINUX_LIBS=
935 fi
936
937 # inotify checks
938 if test x$enable_inotify = xno ; then
939     have_inotify=no;
940 else
941     AC_CHECK_HEADERS(sys/inotify.h, have_inotify=yes, have_inotify=no)
942 fi
943
944 dnl check if inotify backend is enabled
945 if test x$have_inotify = xyes; then
946    AC_DEFINE(DBUS_BUS_ENABLE_INOTIFY,1,[Use inotify])
947    AC_CHECK_FUNCS(inotify_init1)
948 fi
949
950 AM_CONDITIONAL(DBUS_BUS_ENABLE_INOTIFY, test x$have_inotify = xyes)
951
952 # dnotify checks
953 if test x$enable_dnotify = xno ; then
954     have_dnotify=no;
955 else
956     if test x$have_inotify = xno -a x$host_os = xlinux-gnu -o x$host_os = xlinux; then
957         have_dnotify=yes;
958     else
959         have_dnotify=no;
960     fi
961 fi
962
963 dnl check if dnotify backend is enabled
964 if test x$have_dnotify = xyes; then
965    AC_DEFINE(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX,1,[Use dnotify on Linux])
966 fi
967
968 AM_CONDITIONAL(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX, test x$have_dnotify = xyes)
969
970 # kqueue checks
971 if test x$enable_kqueue = xno ; then
972     have_kqueue=no
973 else
974     have_kqueue=yes
975     AC_CHECK_HEADER(sys/event.h, , have_kqueue=no)
976     AC_CHECK_FUNC(kqueue, , have_kqueue=no)
977
978     if test x$enable_kqueue = xyes -a x$have_kqueue = xno; then
979         AC_MSG_ERROR(kqueue support explicitly enabled but not available)
980     fi
981 fi
982
983 dnl check if kqueue backend is enabled
984 if test x$have_kqueue = xyes; then
985    AC_DEFINE(DBUS_BUS_ENABLE_KQUEUE,1,[Use kqueue])
986 fi
987
988 AM_CONDITIONAL(DBUS_BUS_ENABLE_KQUEUE, test x$have_kqueue = xyes)
989
990 # launchd checks
991 if test x$enable_launchd = xno ; then
992     have_launchd=no
993 else
994     have_launchd=yes
995     AC_CHECK_HEADER([launch.h], , have_launchd=no)
996     AC_PATH_PROG([LAUNCHCTL], [launchctl])
997     if test "x$LAUNCHCTL" = "x"; then
998         have_launchd=no
999     fi
1000
1001     if test x$enable_launchd = xyes && test x$have_launchd = xno ; then
1002         AC_MSG_ERROR([launchd support explicitly enabled but not available])
1003     fi
1004 fi
1005
1006 dnl check if launchd is enabled
1007 if test x$have_launchd = xyes; then
1008     AC_DEFINE(DBUS_ENABLE_LAUNCHD,1,[Use launchd autolaunch])
1009 fi
1010
1011 AM_CONDITIONAL(DBUS_ENABLE_LAUNCHD, test x$have_launchd = xyes)
1012
1013 #### Directory to place launchd agent file
1014 if test "x$with_launchd_agent_dir" = "x"; then
1015    LAUNCHD_AGENT_DIR="/Library/LaunchAgents"
1016 else
1017    LAUNCHD_AGENT_DIR="$with_launchd_agent_dir"
1018 fi
1019
1020 AC_SUBST(LAUNCHD_AGENT_DIR)
1021
1022 dnl console owner file
1023 if test x$enable_console_owner_file = xno ; then
1024     have_console_owner_file=no;
1025 else
1026     case $host_os in
1027     solaris*)
1028         have_console_owner_file=yes;
1029         AC_DEFINE(HAVE_CONSOLE_OWNER_FILE,1,[Have console owner file])
1030         ;;
1031     *)
1032         have_console_owner_file=no;;
1033     esac
1034 fi
1035
1036 AM_CONDITIONAL(HAVE_CONSOLE_OWNER_FILE, test x$have_console_owner_file = xyes)
1037
1038 # libaudit detection
1039 if test x$enable_libaudit = xno ; then
1040     have_libaudit=no;
1041 else
1042     # See if we have audit daemon & capabilities library
1043     AC_CHECK_LIB(audit, audit_log_user_avc_message,
1044                  have_libaudit=yes, have_libaudit=no)
1045     if test x$have_libaudit = xyes ; then
1046         AC_CHECK_LIB(cap-ng, capng_clear,
1047                  have_libaudit=yes, have_libaudit=no)
1048     fi
1049 fi
1050
1051 AM_CONDITIONAL(HAVE_LIBAUDIT, test x$have_libaudit = xyes)
1052
1053 if test x$have_libaudit = xyes ; then
1054     SELINUX_LIBS="$SELINUX_LIBS -laudit -lcap-ng"
1055     AC_DEFINE(HAVE_LIBAUDIT,1,[audit daemon SELinux support])
1056 fi
1057
1058 # Check for ADT API
1059 AC_MSG_CHECKING(for ADT API)
1060 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1061 #include <bsm/adt.h>
1062 adt_user_context = ADT_USER;
1063 ]], [[]])], [ check_adt_audit=yes ], [ check_adt_audit=no ])
1064
1065 if test ${check_adt_audit} = yes
1066 then
1067    AC_DEFINE([HAVE_ADT], [], [Adt audit API])
1068    ADT_LIBS="-lbsm"
1069    LIBS="-lbsm $LIBS"
1070    AC_MSG_RESULT(yes)
1071 else
1072    AC_MSG_RESULT(no)
1073 fi
1074
1075 # Check for SCM_RIGHTS
1076 AC_MSG_CHECKING([for SCM_RIGHTS])
1077 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1078 #include <sys/socket.h>
1079 #include <sys/un.h>
1080 static int x = SCM_RIGHTS;
1081 ]], [[]])],
1082 [ AC_MSG_RESULT([supported])
1083   AC_DEFINE([HAVE_UNIX_FD_PASSING], [1], [Supports sending UNIX file descriptors]) ],
1084 [ AC_MSG_RESULT([not supported]) ])
1085
1086 NETWORK_libs=
1087 if test x$dbus_win = xyes ; then
1088   if test x$dbus_wince = xyes ; then
1089     NETWORK_libs="-lws2"
1090   else
1091     NETWORK_libs="-lws2_32"
1092   fi
1093 fi
1094
1095 #### Set up final flags
1096 DBUS_CLIENT_CFLAGS=
1097 DBUS_CLIENT_LIBS="$THREAD_LIBS $NETWORK_libs"
1098 AC_SUBST(DBUS_CLIENT_CFLAGS)
1099 AC_SUBST(DBUS_CLIENT_LIBS)
1100
1101 DBUS_BUS_CFLAGS="$XML_CFLAGS"
1102 DBUS_BUS_LIBS="$XML_LIBS $SELINUX_LIBS $THREAD_LIBS $ADT_LIBS $NETWORK_libs"
1103 AC_SUBST(DBUS_BUS_CFLAGS)
1104 AC_SUBST(DBUS_BUS_LIBS)
1105
1106 DBUS_LAUNCHER_CFLAGS="$XML_CFLAGS"
1107 DBUS_LAUNCHER_LIBS="$XML_LIBS $THREAD_LIBS $NETWORK_libs"
1108 AC_SUBST(DBUS_LAUNCHER_CFLAGS)
1109 AC_SUBST(DBUS_LAUNCHER_LIBS)
1110
1111 DBUS_TEST_CFLAGS=
1112 DBUS_TEST_LIBS="$THREAD_LIBS $NETWORK_libs"
1113 AC_SUBST(DBUS_TEST_CFLAGS)
1114 AC_SUBST(DBUS_TEST_LIBS)
1115
1116 ### X11 detection
1117 DBUS_X_LIBS=
1118 DBUS_X_CFLAGS=
1119
1120 AC_ARG_ENABLE([x11-autolaunch],
1121   AS_HELP_STRING([--enable-x11-autolaunch], [build with X11 auto-launch support]),
1122   [], [enable_x11_autolaunch=auto])
1123
1124 if test "x$dbus_win" = xyes; then
1125     if test "x$enable_x11_autolaunch" = xyes; then
1126         AC_MSG_ERROR([X11 auto-launch is not supported on Windows])
1127     fi
1128
1129     enable_x11_autolaunch=no
1130     have_x11=no
1131 else
1132     AC_PATH_XTRA
1133
1134     if test "x$no_x" = xyes; then
1135         have_x11=no
1136     else
1137         have_x11=yes
1138         DBUS_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
1139         DBUS_X_CFLAGS="$X_CFLAGS"
1140     fi
1141 fi
1142
1143 if test "x$enable_x11_autolaunch,$have_x11" = xyes,no; then
1144     AC_MSG_ERROR([X11 auto-launch requires X headers/libraries])
1145 else
1146     # move from "auto" to "yes" or "no" if necessary
1147     if test "x$enable_x11_autolaunch" != xno; then
1148         enable_x11_autolaunch="$have_x11"
1149     fi
1150 fi
1151
1152 if test "x$have_x11" = xyes ; then
1153    AC_DEFINE([DBUS_BUILD_X11], [1], [Define to build X11 functionality])
1154 fi
1155
1156 if test "x$enable_x11_autolaunch" = xyes ; then
1157    AC_DEFINE([DBUS_ENABLE_X11_AUTOLAUNCH], [1], [Define to enable X11 auto-launch])
1158 fi
1159
1160 AC_SUBST([DBUS_X_CFLAGS])
1161 AC_SUBST([DBUS_X_LIBS])
1162
1163 #### gcc warning flags
1164
1165 cc_supports_flag() {
1166   AC_MSG_CHECKING(whether $CC supports "$*")
1167   save_CFLAGS="$CFLAGS"
1168   CFLAGS="$*"
1169   AC_TRY_COMPILE([], [], [rc=yes], [rc=no])
1170   CFLAGS="$save_CFLAGS"
1171   AC_MSG_RESULT([$rc])
1172   test "x$rc" = xyes
1173 }
1174
1175 TP_COMPILER_WARNINGS([WARNING_CFLAGS],
1176   dnl Use -Werror by default if:
1177   dnl - we're not on Windows (too many warnings), and
1178   dnl - we're in maintainer mode (a D-Bus developer, not a distro or end-user)
1179   dnl Override with --enable-Werror or --disable-Werror
1180   [test x$dbus_win != xyes -a x$dbus_cygwin != xyes -a x$USE_MAINTAINER_MODE = xyes],
1181
1182   dnl enable these warnings if possible:
1183   [all \
1184    char-subscripts \
1185    missing-declarations \
1186    missing-prototypes \
1187    nested-externs \
1188    pointer-arith \
1189    cast-align \
1190    no-address \
1191    float-equal \
1192    declaration-after-statement \
1193   ],
1194
1195   dnl disable these warnings if possible, make them non-fatal if possible,
1196   dnl and don't enable -Werror unless we succeeded:
1197   dnl (unused is by design, sign-compare and pointer-sign are fd.o #17433)
1198   [unused \
1199    sign-compare \
1200    pointer-sign \
1201   ])
1202
1203 if test "x$GCC" = "xyes"; then
1204   # We're treating -fno-common like a warning: it makes the linker more
1205   # strict, because on some systems the linker is *always* this strict
1206   TP_ADD_COMPILER_FLAG([WARNING_CFLAGS], [-fno-common])
1207
1208   # http://bugs.freedesktop.org/show_bug.cgi?id=10599
1209   TP_ADD_COMPILER_FLAG([WARNING_CFLAGS], [-fno-strict-aliasing])
1210
1211   if test "x$enable_ansi" = "xyes"; then
1212     TP_ADD_COMPILER_FLAG([WARNING_CFLAGS],
1213       [-ansi -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE -pedantic])
1214   fi
1215 fi
1216
1217 dnl In principle we should put WARNING_CFLAGS in each Makefile.am like
1218 dnl telepathy-glib does, since CFLAGS is meant to be reserved for the user...
1219 dnl but prepending to CFLAGS (so the user can override it with later CFLAGS)
1220 dnl is the next best thing
1221 CFLAGS="$WARNING_CFLAGS $CFLAGS"
1222
1223 case $host_os in
1224     solaris*)
1225         # Solaris' C library apparently needs these runes to be threadsafe...
1226         CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT"
1227 esac
1228
1229 ### Doxygen Documentation
1230
1231 AC_PATH_PROG(DOXYGEN, doxygen, no)
1232
1233 AC_MSG_CHECKING([whether to build Doxygen documentation])
1234
1235 if test x$DOXYGEN = xno ; then
1236     have_doxygen=no
1237 else
1238     have_doxygen=yes
1239 fi
1240
1241 if test x$enable_doxygen_docs = xauto ; then
1242     if test x$have_doxygen = xno ; then
1243         enable_doxygen_docs=no
1244     else
1245         enable_doxygen_docs=yes
1246     fi
1247 fi
1248
1249 if test x$enable_doxygen_docs = xyes; then
1250     if test x$have_doxygen = xno; then
1251         AC_MSG_ERROR([Building Doxygen docs explicitly required, but Doxygen not found])
1252     fi
1253 fi
1254
1255 AM_CONDITIONAL(DBUS_DOXYGEN_DOCS_ENABLED, test x$enable_doxygen_docs = xyes)
1256 AC_MSG_RESULT($enable_doxygen_docs)
1257
1258 XSLTPROC=false
1259 AC_CHECK_PROGS([XSLTPROC], [xsltproc])
1260 AM_CONDITIONAL(DBUS_HAVE_XSLTPROC, test "$XSLTPROC" != false)
1261
1262 ### XML Documentation
1263
1264 AC_PATH_PROG(XMLTO, xmlto, no)
1265
1266 AC_MSG_CHECKING([whether to build XML documentation])
1267
1268 if test x$XMLTO = xno ; then
1269     have_xmlto=no
1270 else
1271     have_xmlto=yes
1272 fi
1273
1274 if test x$enable_xml_docs = xauto ; then
1275     if test x$have_xmlto = xno ; then
1276         enable_xml_docs=no
1277     else
1278         enable_xml_docs=yes
1279     fi
1280 fi
1281
1282 if test x$enable_xml_docs = xyes; then
1283     if test x$have_xmlto = xno; then
1284         AC_MSG_ERROR([Building XML docs explicitly required, but xmlto not found])
1285     fi
1286 fi
1287
1288 AM_CONDITIONAL(DBUS_XML_DOCS_ENABLED, test x$enable_xml_docs = xyes)
1289 AC_MSG_RESULT($enable_xml_docs)
1290
1291 AC_PATH_PROG([MAN2HTML], [man2html])
1292 AC_ARG_VAR([MAN2HTML], [Path to man2html (optional)])
1293 AM_CONDITIONAL(DBUS_HAVE_MAN2HTML, test x$MAN2HTML != x)
1294
1295 AM_CONDITIONAL(DBUS_CAN_UPLOAD_DOCS,
1296     test x$enable_doxygen_docs = xyes -a x$enable_xml_docs = xyes -a \
1297          x$MAN2HTML != x)
1298
1299 #### Have to go $localstatedir->$prefix/var->/usr/local/var
1300
1301 #### find the actual value for $prefix that we'll end up with
1302 ##   (I know this is broken and should be done in the Makefile, but
1303 ##    that's a major pain and almost nobody actually seems to care)
1304 AS_AC_EXPAND(EXPANDED_PREFIX, "$prefix")
1305 AS_AC_EXPAND(EXPANDED_LOCALSTATEDIR, "$localstatedir")
1306 AS_AC_EXPAND(EXPANDED_SYSCONFDIR, "$sysconfdir")
1307 AS_AC_EXPAND(EXPANDED_BINDIR, "$bindir")
1308 AS_AC_EXPAND(EXPANDED_LIBDIR, "$libdir")
1309 AS_AC_EXPAND(EXPANDED_LIBEXECDIR, "$libexecdir")
1310 AS_AC_EXPAND(EXPANDED_DATADIR, "$datadir")
1311
1312 #### Check our operating system
1313 operating_system=unknown
1314 if test -f /etc/redhat-release || test -f $EXPANDED_SYSCONFDIR/redhat-release ; then
1315    operating_system=redhat
1316 fi
1317
1318 if test -f /etc/slackware-version || test -f $EXPANDED_SYSCONFDIR/slackware-version ; then
1319    operating_system=slackware
1320 fi
1321
1322 if test -f /usr/bin/cygwin1.dll || test -f $EXPANDED_BINDIR/cygwin1.dll ; then
1323    operating_system=cygwin
1324 fi
1325
1326 #### Sort out init scripts
1327
1328 if test x$with_init_scripts = x; then
1329     case x$operating_system in
1330         xredhat)        with_init_scripts=redhat ;;
1331         xslackware)     with_init_scripts=slackware ;;
1332         xcygwin)        with_init_scripts=cygwin ;;
1333         *)                      with_init_scripts=none ;;
1334     esac
1335 fi
1336
1337 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_RED_HAT, test x$with_init_scripts = xredhat)
1338 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_SLACKWARE, test x$with_init_scripts = xslackware)
1339 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_CYGWIN, test x$with_init_scripts = xcygwin)
1340
1341 ##### systemd unit files
1342 AC_ARG_WITH([systemdsystemunitdir],
1343 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
1344         [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
1345 if test "x$with_systemdsystemunitdir" != xno; then
1346    AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
1347 fi
1348 AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])
1349
1350 ##### Set up location for system bus socket
1351 if ! test -z "$with_system_socket"; then
1352    DBUS_SYSTEM_SOCKET=$with_system_socket
1353 else
1354    DBUS_SYSTEM_SOCKET=${EXPANDED_LOCALSTATEDIR}/run/dbus/system_bus_socket
1355 fi
1356
1357 AC_SUBST(DBUS_SYSTEM_SOCKET)
1358 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_SOCKET,"$DBUS_SYSTEM_SOCKET",[The name of the socket the system bus listens on by default])
1359
1360 ## system bus only listens on local domain sockets, and never
1361 ## on an abstract socket (so only root can create the socket)
1362 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS="unix:path=$DBUS_SYSTEM_SOCKET"
1363 AC_SUBST(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS)
1364 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS, "$DBUS_SYSTEM_BUS_DEFAULT_ADDRESS",[The default D-Bus address of the system bus])
1365
1366 #### Set up the pid file
1367 if ! test -z "$with_system_pid_file"; then
1368    DBUS_SYSTEM_PID_FILE=$with_system_pid_file
1369 elif test x$with_init_scripts = xredhat ; then
1370    DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/messagebus.pid
1371 else
1372    DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/dbus/pid
1373 fi
1374
1375 AC_SUBST(DBUS_SYSTEM_PID_FILE)
1376
1377 #### Directory to check for console ownership
1378 if ! test -z "$with_console_auth_dir"; then
1379    DBUS_CONSOLE_AUTH_DIR=$with_console_auth_dir
1380 else
1381    DBUS_CONSOLE_AUTH_DIR=/var/run/console/
1382 fi
1383
1384 AC_SUBST(DBUS_CONSOLE_AUTH_DIR)
1385 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_AUTH_DIR, "$DBUS_CONSOLE_AUTH_DIR", [Directory to check for console ownerhip])
1386
1387 #### File to check for console ownership
1388 if test x$have_console_owner_file = xyes; then
1389    if ! test -z "$with_console_owner_file"; then
1390       DBUS_CONSOLE_OWNER_FILE=$with_console_owner_file
1391    else
1392       DBUS_CONSOLE_OWNER_FILE=/dev/console
1393    fi
1394 else
1395   DBUS_CONSOLE_OWNER_FILE=
1396 fi
1397
1398 AC_SUBST(DBUS_CONSOLE_OWNER_FILE)
1399 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_OWNER_FILE, "$DBUS_CONSOLE_OWNER_FILE", [File to check for console ownerhip])
1400
1401 #### User to start the system bus as
1402 if test -z "$with_dbus_user" ; then
1403     DBUS_USER=messagebus
1404 else
1405     DBUS_USER=$with_dbus_user
1406 fi
1407 AC_SUBST(DBUS_USER)
1408 AC_DEFINE_UNQUOTED(DBUS_USER,"$DBUS_USER", [User for running the system BUS daemon])
1409
1410 #### Prefix to install into
1411 DBUS_PREFIX=$EXPANDED_PREFIX
1412 AC_SUBST(DBUS_PREFIX)
1413 AC_DEFINE_UNQUOTED(DBUS_PREFIX,"$DBUS_PREFIX", [Prefix for installing DBUS])
1414
1415 #### Direcotry to install data files into
1416 DBUS_DATADIR=$EXPANDED_DATADIR
1417 AC_SUBST(DBUS_DATADIR)
1418 AC_DEFINE_UNQUOTED(DBUS_DATADIR,"$DBUS_DATADIR", [Directory for installing DBUS data files])
1419
1420 #### Directory to install dbus-daemon
1421 if test -z "$with_dbus_daemondir" ; then
1422     DBUS_DAEMONDIR=$EXPANDED_BINDIR
1423 else
1424     DBUS_DAEMONDIR=$with_dbus_daemondir
1425 fi
1426 AC_SUBST(DBUS_DAEMONDIR)
1427 AC_DEFINE_UNQUOTED(DBUS_DAEMONDIR,"$DBUS_DAEMONDIR", [Directory for installing the DBUS daemon])
1428
1429 #### Directory to install the other binaries
1430 DBUS_BINDIR="$EXPANDED_BINDIR"
1431 AC_SUBST(DBUS_BINDIR)
1432 AC_DEFINE_UNQUOTED(DBUS_BINDIR,"$DBUS_BINDIR", [Directory for installing the binaries])
1433
1434 #### Directory to install the libexec binaries
1435 DBUS_LIBEXECDIR="$EXPANDED_LIBEXECDIR"
1436 AC_SUBST(DBUS_LIBEXECDIR)
1437 AC_DEFINE_UNQUOTED(DBUS_LIBEXECDIR,"$DBUS_LIBEXECDIR", [Directory for installing the libexec binaries])
1438
1439 #### Tell tests where to find certain stuff in builddir
1440
1441 DBUS_PWD=`pwd`
1442 # Useful in a cross-compilation environment, where the tests are run on the host system.
1443 AC_ARG_WITH(dbus-test-dir, AS_HELP_STRING([--with-dbus-test-dir=[dirname]],[path where the tests tools are available]),
1444                            DBUS_PWD=$withval)
1445 AC_DEFUN([TEST_PATH], [
1446 TEST_$1=${DBUS_PWD}/test/$2
1447 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1",
1448                    [Full path to test file test/$2 in builddir])
1449 AC_SUBST(TEST_$1)
1450 ])
1451 AC_DEFUN([TEST_PROG], [
1452 TEST_$1=${DBUS_PWD}/test/$2
1453 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1$EXEEXT",
1454                    [Full path to test file test/$2 in builddir])
1455 AC_SUBST(TEST_$1)
1456 ])
1457
1458 TEST_PATH(VALID_SERVICE_DIR, data/valid-service-files)
1459 TEST_PATH(INVALID_SERVICE_DIR, data/invalid-service-files)
1460 TEST_PATH(VALID_SERVICE_SYSTEM_DIR, data/valid-service-files-system)
1461 TEST_PATH(INVALID_SERVICE_SYSTEM_DIR, data/invalid-service-files-system)
1462 TEST_PROG(SERVICE_BINARY, test-service)
1463 TEST_PROG(SHELL_SERVICE_BINARY, test-shell-service)
1464 TEST_PROG(EXIT_BINARY, test-exit)
1465 TEST_PROG(SEGFAULT_BINARY, test-segfault)
1466 TEST_PROG(SLEEP_FOREVER_BINARY, test-sleep-forever)
1467 TEST_PROG(PRIVSERVER_BINARY, name-test/test-privserver)
1468
1469 AC_DEFINE_UNQUOTED(TEST_BUS_BINARY, "$DBUS_PWD/bus/dbus-daemon$EXEEXT",
1470                    [Full path to the daemon in the builddir])
1471 AC_SUBST(TEST_BUS_BINARY)
1472
1473 ## Export the non-setuid external helper
1474 TEST_LAUNCH_HELPER_BINARY="$DBUS_PWD/bus/dbus-daemon-launch-helper-test$EXEEXT"
1475 AC_SUBST(TEST_LAUNCH_HELPER_BINARY)
1476 AC_DEFINE_UNQUOTED(DBUS_TEST_LAUNCH_HELPER_BINARY, "$TEST_LAUNCH_HELPER_BINARY",
1477                    [Full path to the launch helper test program in the builddir])
1478
1479 #### Find socket directories
1480 if ! test -z "$TMPDIR" ; then
1481    DEFAULT_SOCKET_DIR=$TMPDIR
1482 elif ! test -z "$TEMP" ; then
1483    DEFAULT_SOCKET_DIR=$TEMP
1484 elif ! test -z "$TMP" ; then
1485    DEFAULT_SOCKET_DIR=$TMP
1486 else
1487    DEFAULT_SOCKET_DIR=/tmp
1488 fi
1489
1490 DEFAULT_SOCKET_DIR=`echo $DEFAULT_SOCKET_DIR | sed 's/+/%2B/g'`
1491
1492 if ! test -z "$with_test_socket_dir" ; then
1493    TEST_SOCKET_DIR="$with_test_socket_dir"
1494 else
1495    TEST_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1496 fi
1497 AC_SUBST(TEST_SOCKET_DIR)
1498 AC_DEFINE_UNQUOTED(DBUS_TEST_SOCKET_DIR, "$TEST_SOCKET_DIR", [Where to put test sockets])
1499
1500 if ! test -z "$with_session_socket_dir" ; then
1501    DBUS_SESSION_SOCKET_DIR="$with_session_socket_dir"
1502 else
1503    DBUS_SESSION_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1504 fi
1505 AC_DEFINE_UNQUOTED(DBUS_SESSION_SOCKET_DIR, "$DBUS_SESSION_SOCKET_DIR", [Where per-session bus puts its sockets])
1506 AC_SUBST(DBUS_SESSION_SOCKET_DIR)
1507
1508 if test x$dbus_win = xyes; then
1509         DBUS_SESSION_BUS_DEFAULT_ADDRESS="nonce-tcp:"
1510 elif test x$have_launchd = xyes; then
1511         DBUS_SESSION_BUS_DEFAULT_ADDRESS="launchd:env=DBUS_LAUNCHD_SESSION_BUS_SOCKET"
1512 else
1513         DBUS_SESSION_BUS_DEFAULT_ADDRESS="unix:tmpdir=$DBUS_SESSION_SOCKET_DIR"
1514 fi
1515 AC_SUBST(DBUS_SESSION_BUS_DEFAULT_ADDRESS)
1516
1517 # darwin needs this to initialize the environment
1518 AC_CHECK_HEADERS(crt_externs.h)
1519 AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])])
1520 AH_VERBATIM(_DARWIN_ENVIRON,
1521 [
1522 #if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
1523 # include <sys/time.h>
1524 # include <crt_externs.h>
1525 # define environ (*_NSGetEnviron())
1526 #endif
1527 ])
1528
1529 AC_CONFIG_FILES([
1530 Doxyfile
1531 dbus/versioninfo.rc
1532 dbus/dbus-arch-deps.h
1533 bus/system.conf
1534 bus/session.conf
1535 bus/messagebus
1536 bus/messagebus-config
1537 bus/org.freedesktop.dbus-session.plist
1538 bus/rc.messagebus
1539 bus/dbus.service
1540 bus/dbus.socket
1541 Makefile
1542 dbus/Makefile
1543 bus/Makefile
1544 tools/Makefile
1545 test/Makefile
1546 test/name-test/Makefile
1547 doc/Makefile
1548 doc/dbus-daemon.1
1549 dbus-1.pc
1550 dbus-1-uninstalled.pc
1551 test/data/valid-config-files/debug-allow-all.conf
1552 test/data/valid-config-files/debug-allow-all-sha1.conf
1553 test/data/valid-config-files-system/debug-allow-all-pass.conf
1554 test/data/valid-config-files-system/debug-allow-all-fail.conf
1555 test/data/valid-service-files/org.freedesktop.DBus.TestSuite.PrivServer.service
1556 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteEchoService.service
1557 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteForkingEchoService.service
1558 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteSegfaultService.service
1559 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1560 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1561 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteEchoService.service
1562 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteSegfaultService.service
1563 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1564 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1565 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoExec.service
1566 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoUser.service
1567 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoService.service
1568 ])
1569 AC_OUTPUT
1570
1571 dnl ==========================================================================
1572 echo "
1573                     D-Bus $VERSION
1574                   ==============
1575
1576         prefix:                   ${EXPANDED_PREFIX}
1577         exec_prefix:              ${exec_prefix}
1578         libdir:                   ${EXPANDED_LIBDIR}
1579         libexecdir:               ${EXPANDED_LIBEXECDIR}
1580         bindir:                   ${EXPANDED_BINDIR}
1581         sysconfdir:               ${EXPANDED_SYSCONFDIR}
1582         localstatedir:            ${EXPANDED_LOCALSTATEDIR}
1583         datadir:                  ${EXPANDED_DATADIR}
1584         source code location:     ${srcdir}
1585         compiler:                 ${CC}
1586         cflags:                   ${CFLAGS}
1587         cppflags:                 ${CPPFLAGS}
1588         cxxflags:                 ${CXXFLAGS}
1589         64-bit int:               ${DBUS_INT64_TYPE}
1590         32-bit int:               ${DBUS_INT32_TYPE}
1591         16-bit int:               ${DBUS_INT16_TYPE}
1592         Doxygen:                  ${DOXYGEN:-not found}
1593         xmlto:                    ${XMLTO:-not found}
1594         man2html:                 ${MAN2HTML:-not found}"
1595
1596 echo "
1597         Maintainer mode:          ${USE_MAINTAINER_MODE}
1598         gcc coverage profiling:   ${enable_compiler_coverage}
1599         Building embedded tests:  ${enable_embedded_tests}
1600         Building modular tests:   ${enable_modular_tests}
1601         Building verbose mode:    ${enable_verbose_mode}
1602         Building assertions:      ${enable_asserts}
1603         Building checks:          ${enable_checks}
1604         Building SELinux support: ${have_selinux}
1605         Building inotify support: ${have_inotify}
1606         Building dnotify support: ${have_dnotify}
1607         Building kqueue support:  ${have_kqueue}
1608         Building X11 code:        ${enable_x11}
1609         Building Doxygen docs:    ${enable_doxygen_docs}
1610         Building XML docs:        ${enable_xml_docs}
1611         Building cache support:   ${enable_userdb_cache}
1612         Building launchd support: ${have_launchd}
1613         Using XML parser:         ${with_xml}
1614         Init scripts style:       ${with_init_scripts}
1615         Abstract socket names:    ${ac_cv_have_abstract_sockets}
1616         System bus socket:        ${DBUS_SYSTEM_SOCKET}
1617         System bus address:       ${DBUS_SYSTEM_BUS_DEFAULT_ADDRESS}
1618         System bus PID file:      ${DBUS_SYSTEM_PID_FILE}
1619         Session bus address:      ${DBUS_SESSION_BUS_DEFAULT_ADDRESS}
1620         Console auth dir:         ${DBUS_CONSOLE_AUTH_DIR}
1621         Console owner file:       ${have_console_owner_file}
1622         Console owner file path:  ${DBUS_CONSOLE_OWNER_FILE}
1623         System bus user:          ${DBUS_USER}
1624         Session bus services dir: ${EXPANDED_DATADIR}/dbus-1/services
1625         'make check' socket dir:  ${TEST_SOCKET_DIR}
1626 "
1627 if test x$have_launchd = xyes; then
1628         echo "        launchd agent dir:        ${LAUNCHD_AGENT_DIR}"
1629 fi
1630 echo
1631
1632 if test x$enable_embedded_tests = xyes; then
1633         echo "NOTE: building with unit tests increases the size of the installed library and renders it insecure."
1634 fi
1635 if test x$enable_embedded_tests = xyes -a x$enable_asserts = xno; then
1636         echo "NOTE: building with embedded tests but without assertions means tests may not properly report failures (this configuration is only useful when doing something like profiling the tests)"
1637 fi
1638 if test x$enable_compiler_coverage = xyes; then
1639         echo "NOTE: building with coverage profiling is definitely for developers only."
1640 fi
1641 if test x$enable_verbose_mode = xyes; then
1642         echo "NOTE: building with verbose mode increases library size, may slightly increase security risk, and decreases performance."
1643 fi
1644 if test x$enable_asserts = xyes; then
1645         echo "NOTE: building with assertions increases library size and decreases performance."
1646 fi
1647 if test x$enable_checks = xno; then
1648         echo "NOTE: building without checks for arguments passed to public API makes it harder to debug apps using D-Bus, but will slightly decrease D-Bus library size and _very_ slightly improve performance."
1649 fi
1650 if test x$dbus_use_libxml = xtrue; then
1651         echo
1652         echo "WARNING: You have chosen to use libxml as your xml parser however this code path is not maintained by the D-Bus developers and if it breaks you get to keep the pieces.  If you have selected this option in err please reconfigure with expat (e.g. --with-xml=expat)."
1653 fi