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