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