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