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