4 m4_define([dbus_major_version], [1])
5 m4_define([dbus_minor_version], [4])
6 m4_define([dbus_micro_version], [11])
7 m4_define([dbus_version],
8 [dbus_major_version.dbus_minor_version.dbus_micro_version])
9 AC_INIT([dbus],[dbus_version],[https://bugs.freedesktop.org/enter_bug.cgi?product=dbus],[dbus])
13 AC_CONFIG_HEADERS([config.h])
14 AC_CONFIG_MACRO_DIR([m4])
16 AM_INIT_AUTOMAKE([1.10 tar-ustar -Wno-portability])
18 GETTEXT_PACKAGE=dbus-1
19 AC_SUBST(GETTEXT_PACKAGE)
20 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[The name of the gettext domain])
22 ## must come before we use the $USE_MAINTAINER_MODE variable later
25 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
27 AC_DEFINE_UNQUOTED(DBUS_DAEMON_NAME,"dbus-daemon",[Name of executable])
29 # libtool versioning - this applies to libdbus
31 # See http://sources.redhat.com/autobook/autobook/autobook_91.html#SEC91 for details
34 ## increment if the interface has additions, changes, removals.
37 ## increment any time the source changes; set to
38 ## 0 if you increment CURRENT
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.
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
55 AC_SUBST(DBUS_MAJOR_VERSION)
56 AC_SUBST(DBUS_MINOR_VERSION)
57 AC_SUBST(DBUS_MICRO_VERSION)
58 AC_SUBST(DBUS_VERSION)
63 AC_USE_SYSTEM_EXTENSIONS
70 COMPILER_OPTIMISATIONS
74 LT_LANG([Windows Resource])
76 # Set some internal variables depending on the platform for later use.
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.])
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])
114 AC_DEFINE(DBUS_UNIX,1,[Defined if we run on a Unix-based system])
116 if test "$dbus_cygwin" = yes; then
117 AC_DEFINE(DBUS_CYGWIN,1,[Defined if we run on a cygwin API based system])
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)
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)
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]))
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],
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
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])
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
186 if test "x$enable_modular_tests" != xno; then
187 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.18],
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
194 # If dbus-gmain.[ch] returned to libdbus then we wouldn't need this
195 PKG_CHECK_MODULES([DBUS_GLIB], [dbus-glib-1],
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
202 if test "x$enable_modular_tests" != xno; then
203 # dependencies checked, switch from auto to yes
204 enable_modular_tests=yes
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)])
211 AM_CONDITIONAL([DBUS_ENABLE_MODULAR_TESTS],
212 [test "x$enable_modular_tests" = xyes])
214 if test x$enable_verbose_mode = xyes; then
215 AC_DEFINE(DBUS_ENABLE_VERBOSE_MODE,1,[Support a verbose mode])
218 if test x$enable_asserts = xno; then
219 AC_DEFINE(DBUS_DISABLE_ASSERT,1,[Disable assertion checking])
222 # -rdynamic is needed for glibc's backtrace_symbols to work.
223 # No clue how much overhead this adds, but it's useful
224 # to do this on any assertion failure,
225 # so for now it's enabled anytime asserts are (currently not
226 # in production builds).
228 # To get -rdynamic you pass -export-dynamic to libtool.
229 AC_DEFINE(DBUS_BUILT_R_DYNAMIC,1,[whether -export-dynamic was passed to libtool])
230 R_DYNAMIC_LDFLAG=-export-dynamic
232 AC_SUBST(R_DYNAMIC_LDFLAG)
234 if test x$enable_checks = xno; then
235 AC_DEFINE(DBUS_DISABLE_CHECKS,1,[Disable public API sanity checking])
236 AC_DEFINE(G_DISABLE_CHECKS,1,[Disable GLib public API sanity checking])
239 if test x$enable_userdb_cache = xyes; then
240 AC_DEFINE(DBUS_ENABLE_USERDB_CACHE,1,[Build with caching of user data])
243 if test x$enable_compiler_coverage = xyes; then
244 ## so that config.h changes when you toggle gcov support
245 AC_DEFINE_UNQUOTED(DBUS_GCOV_ENABLED, 1, [Defined if gcov is enabled to force a rebuild due to config.h changing])
248 # glibc21.m4 serial 3
249 dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
250 dnl This file is free software; the Free Software Foundation
251 dnl gives unlimited permission to copy and/or distribute it,
252 dnl with or without modifications, as long as this notice is preserved.
254 # Test for the GNU C Library, version 2.1 or newer.
257 AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
258 ac_cv_gnu_library_2_1,
259 [AC_EGREP_CPP([Lucky GNU user],
261 #include <features.h>
262 #ifdef __GNU_LIBRARY__
263 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
268 ac_cv_gnu_library_2_1=yes,
269 ac_cv_gnu_library_2_1=no)
275 AC_CHECK_SIZEOF(char)
276 AC_CHECK_SIZEOF(short)
277 AC_CHECK_SIZEOF(long)
279 AC_CHECK_SIZEOF(void *)
280 AC_CHECK_SIZEOF(long long)
281 AC_CHECK_SIZEOF(__int64)
283 ### See what our 64 bit type is called
284 AC_MSG_CHECKING([64-bit integer type])
289 dbusint64_constant='(val)'
290 dbusuint64_constant='(val)'
291 dbusint64_printf_modifier='""'
295 dbusint64_constant='(val##L)'
296 dbusuint64_constant='(val##UL)'
297 dbusint64_printf_modifier='"l"'
299 $ac_cv_sizeof_long_long)
300 dbusint64='long long'
301 dbusint64_constant='(val##LL)'
302 dbusuint64_constant='(val##ULL)'
303 # Ideally we discover what the format is, but this is
304 # only used in verbose mode, so eh...
305 if test x"$ac_cv_gnu_library_2_1" = xyes; then
306 dbusint64_printf_modifier='"ll"'
309 $ac_cv_sizeof___int64)
311 dbusint64_constant='(val##i64)'
312 dbusuint64_constant='(val##ui64)'
314 if test x"$ac_cv_gnu_library_2_1" = xyes; then
315 dbusint64_printf_modifier='"ll"'
320 if test -z "$dbusint64" ; then
321 DBUS_INT64_TYPE="no_int64_type_detected"
324 DBUS_UINT64_CONSTANT=
325 AC_MSG_RESULT([none found])
327 DBUS_INT64_TYPE="$dbusint64"
329 DBUS_INT64_CONSTANT="$dbusint64_constant"
330 DBUS_UINT64_CONSTANT="$dbusuint64_constant"
331 if test x"$dbusint64_printf_modifier" != x; then
332 AC_DEFINE_UNQUOTED(DBUS_INT64_PRINTF_MODIFIER, [$dbusint64_printf_modifier], [Define to printf modifier for 64 bit integer type])
334 AC_MSG_RESULT($DBUS_INT64_TYPE)
337 AC_SUBST(DBUS_INT64_TYPE)
338 AC_SUBST(DBUS_INT64_CONSTANT)
339 AC_SUBST(DBUS_UINT64_CONSTANT)
340 AC_SUBST(DBUS_HAVE_INT64)
342 ### see what 32-bit int is called
343 AC_MSG_CHECKING([32-bit integer type])
357 if test -z "$dbusint32" ; then
358 DBUS_INT32_TYPE="no_int32_type_detected"
359 AC_MSG_ERROR([No 32-bit integer type found])
361 DBUS_INT32_TYPE="$dbusint32"
362 AC_MSG_RESULT($DBUS_INT32_TYPE)
365 AC_SUBST(DBUS_INT32_TYPE)
367 ### see what 16-bit int is called
368 AC_MSG_CHECKING([16-bit integer type])
379 if test -z "$dbusint16" ; then
380 DBUS_INT16_TYPE="no_int16_type_detected"
381 AC_MSG_ERROR([No 16-bit integer type found])
383 DBUS_INT16_TYPE="$dbusint16"
384 AC_MSG_RESULT($DBUS_INT16_TYPE)
387 AC_SUBST(DBUS_INT16_TYPE)
392 # check at compile-time, so that it is possible to build universal
393 # (with multiple architectures at once on the compile line)
394 AH_VERBATIM([WORDS_BIGENDIAN_DARWIN], [
395 /* Use the compiler-provided endianness defines to allow universal compiling. */
396 #if defined(__BIG_ENDIAN__)
397 #define WORDS_BIGENDIAN 1
406 dnl **********************************
407 dnl *** va_copy checks (from GLib) ***
408 dnl **********************************
409 dnl we currently check for all three va_copy possibilities, so we get
410 dnl all results in config.log for bug reports.
411 AC_CACHE_CHECK([for an implementation of va_copy()],dbus_cv_va_copy,[
412 AC_LINK_IFELSE([AC_LANG_SOURCE([#include <stdarg.h>
414 static void f (int i, ...) {
415 va_list args1, args2;
417 va_copy (args2, args1);
418 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
420 va_end (args1); va_end (args2);
426 [dbus_cv_va_copy=yes],
427 [dbus_cv_va_copy=no])
429 AC_CACHE_CHECK([for an implementation of __va_copy()],dbus_cv___va_copy,[
430 AC_LINK_IFELSE([AC_LANG_SOURCE([#include <stdarg.h>
432 static void f (int i, ...) {
433 va_list args1, args2;
435 __va_copy (args2, args1);
436 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
438 va_end (args1); va_end (args2);
444 [dbus_cv___va_copy=yes],
445 [dbus_cv___va_copy=no])
448 if test "x$dbus_cv_va_copy" = "xyes"; then
449 dbus_va_copy_func=va_copy
450 else if test "x$dbus_cv___va_copy" = "xyes"; then
451 dbus_va_copy_func=__va_copy
455 if test -n "$dbus_va_copy_func"; then
456 AC_DEFINE_UNQUOTED(DBUS_VA_COPY,$dbus_va_copy_func,[A 'va_copy' style function])
460 AC_CACHE_CHECK([whether va_lists can be copied by value],
462 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
468 static void f (int i, ...) {
469 va_list args1, args2;
472 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
474 va_end (args1); va_end (args2);
481 [dbus_cv_va_val_copy=yes],
482 [dbus_cv_va_val_copy=no],
483 [dbus_cv_va_val_copy=yes])
487 if test "x$dbus_cv_va_val_copy" = "xno"; then
488 AC_DEFINE(DBUS_VA_COPY_AS_ARRAY,1, ['va_lists' cannot be copies as values])
494 AC_CACHE_CHECK([whether $CC knows __sync_sub_and_fetch()],
495 dbus_cv_sync_sub_and_fetch,
497 AC_LANG_PROGRAM([[]], [[int a = 4; int b = __sync_sub_and_fetch(&a, 4); exit(b); ]])],
498 [dbus_cv_sync_sub_and_fetch=yes],
499 [dbus_cv_sync_sub_and_fetch=no])
502 if test "x$dbus_cv_sync_sub_and_fetch" = "xyes" ; then
508 AC_DEFINE_UNQUOTED([DBUS_USE_SYNC], [$have_sync], [Use the gcc __sync extension])
510 #### Various functions
511 AC_SEARCH_LIBS(socket,[socket network])
512 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
514 AC_CHECK_FUNCS(vsnprintf vasprintf nanosleep usleep setenv clearenv unsetenv socketpair getgrouplist fpathconf setrlimit poll setlocale localeconv strtoll strtoull)
516 #### Check for broken poll; taken from Glib's configure
518 AC_MSG_CHECKING([for broken poll])
519 AC_RUN_IFELSE([AC_LANG_SOURCE([[
523 #ifdef HAVE_SYS_POLL_H
524 #include <sys/poll.h>
527 struct pollfd fds[1];
529 fd = open("/dev/null", 1);
531 fds[0].events = POLLIN;
533 if (poll(fds, 1, 0) < 0 || (fds[0].revents & POLLNVAL) != 0) {
534 exit(1); /* Does not work for devices -- fail */
540 AC_DEFINE(BROKEN_POLL,1,[poll doesn't work on devices])],
541 [broken_poll="no (cross compiling)"])
542 AC_MSG_RESULT($broken_poll)
544 AC_MSG_CHECKING(for dirfd)
545 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
546 #include <sys/types.h>
554 [dbus_have_dirfd=yes],
555 [dbus_have_dirfd=no])
556 AC_MSG_RESULT($dbus_have_dirfd)
557 if test "$dbus_have_dirfd" = yes; then
558 AC_DEFINE(HAVE_DIRFD,1,[Have dirfd function])
560 AC_MSG_CHECKING(for DIR *dirp->dd_fd)
561 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
562 #include <sys/types.h>
571 [dbus_have_ddfd=yes],
573 AC_MSG_RESULT($dbus_have_ddfd)
574 if test "$dbus_have_ddfd" = yes; then
575 AC_DEFINE(HAVE_DDFD,1,[Have the ddfd member of DIR])
579 AC_CHECK_HEADERS(sys/resource.h)
581 AC_CHECK_HEADERS(dirent.h)
583 AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)])
585 AC_CHECK_HEADERS(errno.h)
587 AC_CHECK_HEADERS(signal.h)
589 AC_CHECK_HEADERS(locale.h)
591 AC_CHECK_HEADERS(byteswap.h)
593 AC_CHECK_HEADERS(unistd.h)
595 AC_CHECK_HEADERS(ws2tcpip.h)
597 AC_CHECK_HEADERS(wspiapi.h)
599 # Add -D_POSIX_PTHREAD_SEMANTICS if on Solaris
603 CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS" ;;
606 # checking for a posix version of getpwnam_r
607 # if we are cross compiling and can not run the test
608 # assume getpwnam_r is the posix version
609 # it is up to the person cross compiling to change
610 # this behavior if desired
612 AC_CACHE_CHECK([for posix getpwnam_r],
613 ac_cv_func_posix_getpwnam_r,
614 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
621 struct passwd pwd, *pwptr = &pwd;
624 error = getpwnam_r ("", &pwd, buffer,
625 sizeof (buffer), &pwptr);
626 return (error < 0 && errno == ENOSYS)
629 [ac_cv_func_posix_getpwnam_r=yes],
630 [ac_cv_func_posix_getpwnam_r=no],
631 [ac_cv_func_posix_getpwnam_r=yes]
635 if test "$ac_cv_func_posix_getpwnam_r" = yes; then
636 AC_DEFINE(HAVE_POSIX_GETPWNAM_R,1,
637 [Have POSIX function getpwnam_r])
639 AC_CACHE_CHECK([for nonposix getpwnam_r],
640 ac_cv_func_nonposix_getpwnam_r,
641 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pwd.h>]], [[char buffer[10000];
643 getpwnam_r ("", &pwd, buffer,
644 sizeof (buffer));]])],
645 [ac_cv_func_nonposix_getpwnam_r=yes],
646 [ac_cv_func_nonposix_getpwnam_r=no])])
647 if test "$ac_cv_func_nonposix_getpwnam_r" = yes; then
648 AC_DEFINE(HAVE_NONPOSIX_GETPWNAM_R,1,
649 [Have non-POSIX function getpwnam_r])
653 dnl check for socklen_t
654 AC_MSG_CHECKING(whether socklen_t is defined)
655 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
656 #include <sys/types.h>
657 #include <sys/socket.h>
663 [dbus_have_socklen_t=yes],
664 [dbus_have_socklen_t=no])
665 AC_MSG_RESULT($dbus_have_socklen_t)
667 if test "x$dbus_have_socklen_t" = "xyes"; then
668 AC_DEFINE(HAVE_SOCKLEN_T,1,[Have socklen_t type])
671 dnl check for writev header and writev function so we're
672 dnl good to go if HAVE_WRITEV gets defined.
673 AC_CHECK_HEADERS(sys/uio.h, [AC_CHECK_FUNCS(writev)])
675 dnl needed on darwin for NAME_MAX
676 AC_CHECK_HEADERS(sys/syslimits.h)
678 dnl Make it easy to check if we have MSG_NOSIGNAL without actually having to include sys/socket.h
679 AC_CHECK_DECLS([MSG_NOSIGNAL], [], [], [[ #include <sys/socket.h> ]])
681 dnl check for flavours of varargs macros (test from GLib)
682 AC_MSG_CHECKING(for ISO C99 varargs macros in C)
683 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
684 int a(int p1, int p2, int p3);
685 #define call_a(...) a(1,__VA_ARGS__)
688 [dbus_have_iso_c_varargs=yes],
689 [dbus_have_iso_c_varargs=no])
690 AC_MSG_RESULT($dbus_have_iso_c_varargs)
692 AC_MSG_CHECKING(for GNUC varargs macros)
693 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
694 int a(int p1, int p2, int p3);
695 #define call_a(params...) a(1,params)
698 [dbus_have_gnuc_varargs=yes],
699 [dbus_have_gnuc_varargs=no])
700 AC_MSG_RESULT($dbus_have_gnuc_varargs)
702 dnl Output varargs tests
703 if test x$dbus_have_iso_c_varargs = xyes; then
704 AC_DEFINE(HAVE_ISO_VARARGS,1,[Have ISO C99 varargs macros])
706 if test x$dbus_have_gnuc_varargs = xyes; then
707 AC_DEFINE(HAVE_GNUC_VARARGS,1,[Have GNU-style varargs macros])
710 dnl Check for various credentials.
711 AC_MSG_CHECKING(for struct cmsgcred)
712 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
713 #include <sys/types.h>
714 #include <sys/socket.h>
716 struct cmsgcred cred;
720 [dbus_have_struct_cmsgcred=yes],
721 [dbus_have_struct_cmsgcred=no])
722 AC_MSG_RESULT($dbus_have_struct_cmsgcred)
724 if test x$dbus_have_struct_cmsgcred = xyes; then
725 AC_DEFINE(HAVE_CMSGCRED,1,[Have cmsgcred structure])
728 AC_CHECK_FUNCS(getpeerucred getpeereid)
730 AC_CHECK_FUNCS(pipe2 accept4)
732 #### Abstract sockets
734 if test x$enable_abstract_sockets = xauto; then
737 AC_CACHE_CHECK([abstract socket namespace],
738 ac_cv_have_abstract_sockets,
739 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
741 #include <sys/types.h>
745 #include <sys/socket.h>
752 struct sockaddr_un addr;
754 listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
758 fprintf (stderr, "socket() failed: %s\n", strerror (errno));
762 memset (&addr, '\0', sizeof (addr));
763 addr.sun_family = AF_UNIX;
764 strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
765 /* SUN_LEN uses strlen() so need to calculate it before adding \0 at the
768 slen = SUN_LEN(&addr);
769 addr.sun_path[0] = '\0'; /* this is what makes it abstract */
771 if (bind (listen_fd, (struct sockaddr*) &addr, slen) < 0)
773 fprintf (stderr, "Abstract socket namespace bind() failed: %s\n",
780 [ac_cv_have_abstract_sockets=yes],
781 [ac_cv_have_abstract_sockets=no],
783 ac_cv_have_abstract_sockets=no
787 if test x$warn_on_xcompile = xyes ; then
788 AC_MSG_WARN([Cannot check for abstract sockets when cross-compiling, please use --enable-abstract-sockets])
793 if test x$enable_abstract_sockets = xyes; then
794 if test x$ac_cv_have_abstract_sockets = xno; then
795 AC_MSG_ERROR([Abstract sockets explicitly required, and support not detected.])
799 if test x$enable_abstract_sockets = xno; then
800 ac_cv_have_abstract_sockets=no;
803 if test x$ac_cv_have_abstract_sockets = xyes ; then
804 DBUS_PATH_OR_ABSTRACT=abstract
805 AC_DEFINE(HAVE_ABSTRACT_SOCKETS,1,[Have abstract socket namespace])
807 DBUS_PATH_OR_ABSTRACT=path
810 # this is used in addresses to prefer abstract, e.g.
811 # unix:path=/foo or unix:abstract=/foo
812 AC_SUBST(DBUS_PATH_OR_ABSTRACT)
816 #### Sort out XML library
819 AC_CHECK_LIB(expat, XML_ParserCreate_MM,
820 [ AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false) ],
823 # see what we want to use
824 dbus_use_libxml=false
826 if test x$with_xml = xexpat; then
827 if ! $have_expat ; then
828 AC_MSG_ERROR([Explicitly requested expat but expat not found])
831 elif test x$with_xml = xlibxml; then
832 PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= 2.6.0, have_libxml=true, have_libxml=false)
833 if ! $have_libxml ; then
834 AC_MSG_ERROR([Explicitly requested libxml but libxml not found])
838 ### expat is the default because libxml can't currently survive
839 ### our brutal OOM-handling unit test setup.
840 ### http://bugzilla.gnome.org/show_bug.cgi?id=109368
841 if test x$have_expat = xfalse; then
842 AC_MSG_ERROR([Could not find expat.h, check config.log for failed attempts])
844 ### By default, only use Expat since it's tested and known to work. If you're a
845 ### general-purpose OS vendor, please don't enable libxml. For embedded use
846 ### if your OS is built around libxml, that's another case.
850 AM_CONDITIONAL(DBUS_USE_EXPAT, $dbus_use_expat)
851 AM_CONDITIONAL(DBUS_USE_LIBXML, $dbus_use_libxml)
853 if $dbus_use_expat; then
857 if $dbus_use_libxml; then
858 XML_LIBS=$LIBXML_LIBS
859 XML_CFLAGS=$LIBXML_CFLAGS
862 # Thread lib detection
863 AC_CHECK_FUNC(pthread_cond_timedwait,[AC_CHECK_LIB(pthread,pthread_cond_timedwait,
864 [THREAD_LIBS="-lpthread"])])
866 LIBS="$LIBS $THREAD_LIBS"
867 AC_CHECK_FUNC(pthread_condattr_setclock,have_pthread_condattr_setclock=true,have_pthread_condattr_setclock=false)
868 if test x$have_pthread_condattr_setclock = xtrue; then
869 AC_SEARCH_LIBS([clock_getres],[rt],[THREAD_LIBS="$THREAD_LIBS -lrt"])
870 AC_MSG_CHECKING([for CLOCK_MONOTONIC])
871 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>
874 struct timespec monotonic_timer;
875 pthread_condattr_t attr;
876 pthread_condattr_init (&attr);
877 pthread_condattr_setclock (&attr, CLOCK_MONOTONIC);
878 clock_getres (CLOCK_MONOTONIC,&monotonic_timer);
880 [have_clock_monotonic=true],
881 [have_clock_monotonic=false])
882 if test x$have_clock_monotonic = xtrue; then
883 AC_MSG_RESULT([found])
884 AC_DEFINE(HAVE_MONOTONIC_CLOCK, 1, [Define if we have CLOCK_MONOTONIC])
886 AC_MSG_RESULT([not found])
892 if test x$enable_selinux = xno ; then
895 # See if we have SELinux library
896 AC_CHECK_LIB(selinux, is_selinux_enabled,
897 have_selinux=yes, have_selinux=no)
899 # see if we have the SELinux header with the new D-Bus stuff in it
900 if test x$have_selinux = xyes ; then
901 AC_MSG_CHECKING([for DBUS Flask permissions in selinux/av_permissions.h])
902 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <selinux/av_permissions.h>]],
903 [[#ifdef DBUS__ACQUIRE_SVC return 0;
905 #error DBUS__ACQUIRE_SVC not defined
909 AC_MSG_RESULT($have_selinux)
912 if test x$enable_selinux = xauto ; then
913 if test x$have_selinux = xno ; then
914 AC_MSG_WARN([Sufficiently new SELinux library not found])
917 if test x$have_selinux = xno ; then
918 AC_MSG_ERROR([SElinux explicitly required, and SELinux library not found])
923 AM_CONDITIONAL(HAVE_SELINUX, test x$have_selinux = xyes)
925 if test x$have_selinux = xyes ; then
926 # the selinux code creates threads
927 # which requires libpthread even on linux
928 AC_CHECK_FUNC(pthread_create,,[AC_CHECK_LIB(pthread,pthread_create,
929 [SELINUX_THREAD_LIBS="-lpthread"])])
931 SELINUX_LIBS="-lselinux $SELINUX_THREAD_LIBS"
932 AC_DEFINE(HAVE_SELINUX,1,[SELinux support])
938 if test x$enable_inotify = xno ; then
941 AC_CHECK_HEADERS(sys/inotify.h, have_inotify=yes, have_inotify=no)
944 dnl check if inotify backend is enabled
945 if test x$have_inotify = xyes; then
946 AC_DEFINE(DBUS_BUS_ENABLE_INOTIFY,1,[Use inotify])
947 AC_CHECK_FUNCS(inotify_init1)
950 AM_CONDITIONAL(DBUS_BUS_ENABLE_INOTIFY, test x$have_inotify = xyes)
953 if test x$enable_dnotify = xno ; then
956 if test x$have_inotify = xno -a x$host_os = xlinux-gnu -o x$host_os = xlinux; then
963 dnl check if dnotify backend is enabled
964 if test x$have_dnotify = xyes; then
965 AC_DEFINE(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX,1,[Use dnotify on Linux])
968 AM_CONDITIONAL(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX, test x$have_dnotify = xyes)
971 if test x$enable_kqueue = xno ; then
975 AC_CHECK_HEADER(sys/event.h, , have_kqueue=no)
976 AC_CHECK_FUNC(kqueue, , have_kqueue=no)
978 if test x$enable_kqueue = xyes -a x$have_kqueue = xno; then
979 AC_MSG_ERROR(kqueue support explicitly enabled but not available)
983 dnl check if kqueue backend is enabled
984 if test x$have_kqueue = xyes; then
985 AC_DEFINE(DBUS_BUS_ENABLE_KQUEUE,1,[Use kqueue])
988 AM_CONDITIONAL(DBUS_BUS_ENABLE_KQUEUE, test x$have_kqueue = xyes)
991 if test x$enable_launchd = xno ; then
995 AC_CHECK_HEADER([launch.h], , have_launchd=no)
996 AC_PATH_PROG([LAUNCHCTL], [launchctl])
997 if test "x$LAUNCHCTL" = "x"; then
1001 if test x$enable_launchd = xyes && test x$have_launchd = xno ; then
1002 AC_MSG_ERROR([launchd support explicitly enabled but not available])
1006 dnl check if launchd is enabled
1007 if test x$have_launchd = xyes; then
1008 AC_DEFINE(DBUS_ENABLE_LAUNCHD,1,[Use launchd autolaunch])
1011 AM_CONDITIONAL(DBUS_ENABLE_LAUNCHD, test x$have_launchd = xyes)
1013 #### Directory to place launchd agent file
1014 if test "x$with_launchd_agent_dir" = "x"; then
1015 LAUNCHD_AGENT_DIR="/Library/LaunchAgents"
1017 LAUNCHD_AGENT_DIR="$with_launchd_agent_dir"
1020 AC_SUBST(LAUNCHD_AGENT_DIR)
1022 dnl console owner file
1023 if test x$enable_console_owner_file = xno ; then
1024 have_console_owner_file=no;
1028 have_console_owner_file=yes;
1029 AC_DEFINE(HAVE_CONSOLE_OWNER_FILE,1,[Have console owner file])
1032 have_console_owner_file=no;;
1036 AM_CONDITIONAL(HAVE_CONSOLE_OWNER_FILE, test x$have_console_owner_file = xyes)
1038 # libaudit detection
1039 if test x$enable_libaudit = xno ; then
1042 # See if we have audit daemon & capabilities library
1043 AC_CHECK_LIB(audit, audit_log_user_avc_message,
1044 have_libaudit=yes, have_libaudit=no)
1045 if test x$have_libaudit = xyes ; then
1046 AC_CHECK_LIB(cap-ng, capng_clear,
1047 have_libaudit=yes, have_libaudit=no)
1051 AM_CONDITIONAL(HAVE_LIBAUDIT, test x$have_libaudit = xyes)
1053 if test x$have_libaudit = xyes ; then
1054 SELINUX_LIBS="$SELINUX_LIBS -laudit -lcap-ng"
1055 AC_DEFINE(HAVE_LIBAUDIT,1,[audit daemon SELinux support])
1059 AC_MSG_CHECKING(for ADT API)
1060 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1061 #include <bsm/adt.h>
1062 adt_user_context = ADT_USER;
1063 ]], [[]])], [ check_adt_audit=yes ], [ check_adt_audit=no ])
1065 if test ${check_adt_audit} = yes
1067 AC_DEFINE([HAVE_ADT], [], [Adt audit API])
1075 # Check for SCM_RIGHTS
1076 AC_MSG_CHECKING([for SCM_RIGHTS])
1077 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1078 #include <sys/socket.h>
1080 static int x = SCM_RIGHTS;
1082 [ AC_MSG_RESULT([supported])
1083 AC_DEFINE([HAVE_UNIX_FD_PASSING], [1], [Supports sending UNIX file descriptors]) ],
1084 [ AC_MSG_RESULT([not supported]) ])
1087 if test x$dbus_win = xyes ; then
1088 if test x$dbus_wince = xyes ; then
1089 NETWORK_libs="-lws2"
1091 NETWORK_libs="-lws2_32"
1095 #### Set up final flags
1097 DBUS_CLIENT_LIBS="$THREAD_LIBS $NETWORK_libs"
1098 AC_SUBST(DBUS_CLIENT_CFLAGS)
1099 AC_SUBST(DBUS_CLIENT_LIBS)
1101 DBUS_BUS_CFLAGS="$XML_CFLAGS"
1102 DBUS_BUS_LIBS="$XML_LIBS $SELINUX_LIBS $THREAD_LIBS $ADT_LIBS $NETWORK_libs"
1103 AC_SUBST(DBUS_BUS_CFLAGS)
1104 AC_SUBST(DBUS_BUS_LIBS)
1106 DBUS_LAUNCHER_CFLAGS="$XML_CFLAGS"
1107 DBUS_LAUNCHER_LIBS="$XML_LIBS $THREAD_LIBS $NETWORK_libs"
1108 AC_SUBST(DBUS_LAUNCHER_CFLAGS)
1109 AC_SUBST(DBUS_LAUNCHER_LIBS)
1112 DBUS_TEST_LIBS="$THREAD_LIBS $NETWORK_libs"
1113 AC_SUBST(DBUS_TEST_CFLAGS)
1114 AC_SUBST(DBUS_TEST_LIBS)
1120 AC_ARG_ENABLE([x11-autolaunch],
1121 AS_HELP_STRING([--enable-x11-autolaunch], [build with X11 auto-launch support]),
1122 [], [enable_x11_autolaunch=auto])
1124 if test "x$dbus_win" = xyes; then
1125 if test "x$enable_x11_autolaunch" = xyes; then
1126 AC_MSG_ERROR([X11 auto-launch is not supported on Windows])
1129 enable_x11_autolaunch=no
1134 if test "x$no_x" = xyes; then
1138 DBUS_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
1139 DBUS_X_CFLAGS="$X_CFLAGS"
1143 if test "x$enable_x11_autolaunch,$have_x11" = xyes,no; then
1144 AC_MSG_ERROR([X11 auto-launch requires X headers/libraries])
1146 # move from "auto" to "yes" or "no" if necessary
1147 if test "x$enable_x11_autolaunch" != xno; then
1148 enable_x11_autolaunch="$have_x11"
1152 if test "x$have_x11" = xyes ; then
1153 AC_DEFINE([DBUS_BUILD_X11], [1], [Define to build X11 functionality])
1156 if test "x$enable_x11_autolaunch" = xyes ; then
1157 AC_DEFINE([DBUS_ENABLE_X11_AUTOLAUNCH], [1], [Define to enable X11 auto-launch])
1160 AC_SUBST([DBUS_X_CFLAGS])
1161 AC_SUBST([DBUS_X_LIBS])
1163 #### gcc warning flags
1165 cc_supports_flag() {
1166 AC_MSG_CHECKING(whether $CC supports "$*")
1167 save_CFLAGS="$CFLAGS"
1169 AC_TRY_COMPILE([], [], [rc=yes], [rc=no])
1170 CFLAGS="$save_CFLAGS"
1171 AC_MSG_RESULT([$rc])
1175 TP_COMPILER_WARNINGS([WARNING_CFLAGS],
1176 dnl Use -Werror by default if:
1177 dnl - we're not on Windows (too many warnings), and
1178 dnl - we're in maintainer mode (a D-Bus developer, not a distro or end-user)
1179 dnl Override with --enable-Werror or --disable-Werror
1180 [test x$dbus_win != xyes -a x$dbus_cygwin != xyes -a x$USE_MAINTAINER_MODE = xyes],
1182 dnl enable these warnings if possible:
1185 missing-declarations \
1186 missing-prototypes \
1192 declaration-after-statement \
1195 dnl disable these warnings if possible, make them non-fatal if possible,
1196 dnl and don't enable -Werror unless we succeeded:
1197 dnl (unused is by design, sign-compare and pointer-sign are fd.o #17433)
1203 if test "x$GCC" = "xyes"; then
1204 # We're treating -fno-common like a warning: it makes the linker more
1205 # strict, because on some systems the linker is *always* this strict
1206 TP_ADD_COMPILER_FLAG([WARNING_CFLAGS], [-fno-common])
1208 # http://bugs.freedesktop.org/show_bug.cgi?id=10599
1209 TP_ADD_COMPILER_FLAG([WARNING_CFLAGS], [-fno-strict-aliasing])
1211 if test "x$enable_ansi" = "xyes"; then
1212 TP_ADD_COMPILER_FLAG([WARNING_CFLAGS],
1213 [-ansi -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE -pedantic])
1217 dnl In principle we should put WARNING_CFLAGS in each Makefile.am like
1218 dnl telepathy-glib does, since CFLAGS is meant to be reserved for the user...
1219 dnl but prepending to CFLAGS (so the user can override it with later CFLAGS)
1220 dnl is the next best thing
1221 CFLAGS="$WARNING_CFLAGS $CFLAGS"
1225 # Solaris' C library apparently needs these runes to be threadsafe...
1226 CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT"
1229 ### Doxygen Documentation
1231 AC_PATH_PROG(DOXYGEN, doxygen, no)
1233 AC_MSG_CHECKING([whether to build Doxygen documentation])
1235 if test x$DOXYGEN = xno ; then
1241 if test x$enable_doxygen_docs = xauto ; then
1242 if test x$have_doxygen = xno ; then
1243 enable_doxygen_docs=no
1245 enable_doxygen_docs=yes
1249 if test x$enable_doxygen_docs = xyes; then
1250 if test x$have_doxygen = xno; then
1251 AC_MSG_ERROR([Building Doxygen docs explicitly required, but Doxygen not found])
1255 AM_CONDITIONAL(DBUS_DOXYGEN_DOCS_ENABLED, test x$enable_doxygen_docs = xyes)
1256 AC_MSG_RESULT($enable_doxygen_docs)
1259 AC_CHECK_PROGS([XSLTPROC], [xsltproc])
1260 AM_CONDITIONAL(DBUS_HAVE_XSLTPROC, test "$XSLTPROC" != false)
1262 ### XML Documentation
1264 AC_PATH_PROG(XMLTO, xmlto, no)
1266 AC_MSG_CHECKING([whether to build XML documentation])
1268 if test x$XMLTO = xno ; then
1274 if test x$enable_xml_docs = xauto ; then
1275 if test x$have_xmlto = xno ; then
1282 if test x$enable_xml_docs = xyes; then
1283 if test x$have_xmlto = xno; then
1284 AC_MSG_ERROR([Building XML docs explicitly required, but xmlto not found])
1288 AM_CONDITIONAL(DBUS_XML_DOCS_ENABLED, test x$enable_xml_docs = xyes)
1289 AC_MSG_RESULT($enable_xml_docs)
1291 AC_PATH_PROG([MAN2HTML], [man2html])
1292 AC_ARG_VAR([MAN2HTML], [Path to man2html (optional)])
1293 AM_CONDITIONAL(DBUS_HAVE_MAN2HTML, test x$MAN2HTML != x)
1295 AM_CONDITIONAL(DBUS_CAN_UPLOAD_DOCS,
1296 test x$enable_doxygen_docs = xyes -a x$enable_xml_docs = xyes -a \
1299 #### Have to go $localstatedir->$prefix/var->/usr/local/var
1301 #### find the actual value for $prefix that we'll end up with
1302 ## (I know this is broken and should be done in the Makefile, but
1303 ## that's a major pain and almost nobody actually seems to care)
1304 AS_AC_EXPAND(EXPANDED_PREFIX, "$prefix")
1305 AS_AC_EXPAND(EXPANDED_LOCALSTATEDIR, "$localstatedir")
1306 AS_AC_EXPAND(EXPANDED_SYSCONFDIR, "$sysconfdir")
1307 AS_AC_EXPAND(EXPANDED_BINDIR, "$bindir")
1308 AS_AC_EXPAND(EXPANDED_LIBDIR, "$libdir")
1309 AS_AC_EXPAND(EXPANDED_LIBEXECDIR, "$libexecdir")
1310 AS_AC_EXPAND(EXPANDED_DATADIR, "$datadir")
1312 #### Check our operating system
1313 operating_system=unknown
1314 if test -f /etc/redhat-release || test -f $EXPANDED_SYSCONFDIR/redhat-release ; then
1315 operating_system=redhat
1318 if test -f /etc/slackware-version || test -f $EXPANDED_SYSCONFDIR/slackware-version ; then
1319 operating_system=slackware
1322 if test -f /usr/bin/cygwin1.dll || test -f $EXPANDED_BINDIR/cygwin1.dll ; then
1323 operating_system=cygwin
1326 #### Sort out init scripts
1328 if test x$with_init_scripts = x; then
1329 case x$operating_system in
1330 xredhat) with_init_scripts=redhat ;;
1331 xslackware) with_init_scripts=slackware ;;
1332 xcygwin) with_init_scripts=cygwin ;;
1333 *) with_init_scripts=none ;;
1337 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_RED_HAT, test x$with_init_scripts = xredhat)
1338 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_SLACKWARE, test x$with_init_scripts = xslackware)
1339 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_CYGWIN, test x$with_init_scripts = xcygwin)
1341 ##### systemd unit files
1342 AC_ARG_WITH([systemdsystemunitdir],
1343 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
1344 [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
1345 if test "x$with_systemdsystemunitdir" != xno; then
1346 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
1348 AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])
1350 ##### Set up location for system bus socket
1351 if ! test -z "$with_system_socket"; then
1352 DBUS_SYSTEM_SOCKET=$with_system_socket
1354 DBUS_SYSTEM_SOCKET=${EXPANDED_LOCALSTATEDIR}/run/dbus/system_bus_socket
1357 AC_SUBST(DBUS_SYSTEM_SOCKET)
1358 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_SOCKET,"$DBUS_SYSTEM_SOCKET",[The name of the socket the system bus listens on by default])
1360 ## system bus only listens on local domain sockets, and never
1361 ## on an abstract socket (so only root can create the socket)
1362 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS="unix:path=$DBUS_SYSTEM_SOCKET"
1363 AC_SUBST(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS)
1364 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS, "$DBUS_SYSTEM_BUS_DEFAULT_ADDRESS",[The default D-Bus address of the system bus])
1366 #### Set up the pid file
1367 if ! test -z "$with_system_pid_file"; then
1368 DBUS_SYSTEM_PID_FILE=$with_system_pid_file
1369 elif test x$with_init_scripts = xredhat ; then
1370 DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/messagebus.pid
1372 DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/dbus/pid
1375 AC_SUBST(DBUS_SYSTEM_PID_FILE)
1377 #### Directory to check for console ownership
1378 if ! test -z "$with_console_auth_dir"; then
1379 DBUS_CONSOLE_AUTH_DIR=$with_console_auth_dir
1381 DBUS_CONSOLE_AUTH_DIR=/var/run/console/
1384 AC_SUBST(DBUS_CONSOLE_AUTH_DIR)
1385 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_AUTH_DIR, "$DBUS_CONSOLE_AUTH_DIR", [Directory to check for console ownerhip])
1387 #### File to check for console ownership
1388 if test x$have_console_owner_file = xyes; then
1389 if ! test -z "$with_console_owner_file"; then
1390 DBUS_CONSOLE_OWNER_FILE=$with_console_owner_file
1392 DBUS_CONSOLE_OWNER_FILE=/dev/console
1395 DBUS_CONSOLE_OWNER_FILE=
1398 AC_SUBST(DBUS_CONSOLE_OWNER_FILE)
1399 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_OWNER_FILE, "$DBUS_CONSOLE_OWNER_FILE", [File to check for console ownerhip])
1401 #### User to start the system bus as
1402 if test -z "$with_dbus_user" ; then
1403 DBUS_USER=messagebus
1405 DBUS_USER=$with_dbus_user
1408 AC_DEFINE_UNQUOTED(DBUS_USER,"$DBUS_USER", [User for running the system BUS daemon])
1410 #### Prefix to install into
1411 DBUS_PREFIX=$EXPANDED_PREFIX
1412 AC_SUBST(DBUS_PREFIX)
1413 AC_DEFINE_UNQUOTED(DBUS_PREFIX,"$DBUS_PREFIX", [Prefix for installing DBUS])
1415 #### Direcotry to install data files into
1416 DBUS_DATADIR=$EXPANDED_DATADIR
1417 AC_SUBST(DBUS_DATADIR)
1418 AC_DEFINE_UNQUOTED(DBUS_DATADIR,"$DBUS_DATADIR", [Directory for installing DBUS data files])
1420 #### Directory to install dbus-daemon
1421 if test -z "$with_dbus_daemondir" ; then
1422 DBUS_DAEMONDIR=$EXPANDED_BINDIR
1424 DBUS_DAEMONDIR=$with_dbus_daemondir
1426 AC_SUBST(DBUS_DAEMONDIR)
1427 AC_DEFINE_UNQUOTED(DBUS_DAEMONDIR,"$DBUS_DAEMONDIR", [Directory for installing the DBUS daemon])
1429 #### Directory to install the other binaries
1430 DBUS_BINDIR="$EXPANDED_BINDIR"
1431 AC_SUBST(DBUS_BINDIR)
1432 AC_DEFINE_UNQUOTED(DBUS_BINDIR,"$DBUS_BINDIR", [Directory for installing the binaries])
1434 #### Directory to install the libexec binaries
1435 DBUS_LIBEXECDIR="$EXPANDED_LIBEXECDIR"
1436 AC_SUBST(DBUS_LIBEXECDIR)
1437 AC_DEFINE_UNQUOTED(DBUS_LIBEXECDIR,"$DBUS_LIBEXECDIR", [Directory for installing the libexec binaries])
1439 #### Tell tests where to find certain stuff in builddir
1442 # Useful in a cross-compilation environment, where the tests are run on the host system.
1443 AC_ARG_WITH(dbus-test-dir, AS_HELP_STRING([--with-dbus-test-dir=[dirname]],[path where the tests tools are available]),
1445 AC_DEFUN([TEST_PATH], [
1446 TEST_$1=${DBUS_PWD}/test/$2
1447 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1",
1448 [Full path to test file test/$2 in builddir])
1451 AC_DEFUN([TEST_PROG], [
1452 TEST_$1=${DBUS_PWD}/test/$2
1453 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1$EXEEXT",
1454 [Full path to test file test/$2 in builddir])
1458 TEST_PATH(VALID_SERVICE_DIR, data/valid-service-files)
1459 TEST_PATH(INVALID_SERVICE_DIR, data/invalid-service-files)
1460 TEST_PATH(VALID_SERVICE_SYSTEM_DIR, data/valid-service-files-system)
1461 TEST_PATH(INVALID_SERVICE_SYSTEM_DIR, data/invalid-service-files-system)
1462 TEST_PROG(SERVICE_BINARY, test-service)
1463 TEST_PROG(SHELL_SERVICE_BINARY, test-shell-service)
1464 TEST_PROG(EXIT_BINARY, test-exit)
1465 TEST_PROG(SEGFAULT_BINARY, test-segfault)
1466 TEST_PROG(SLEEP_FOREVER_BINARY, test-sleep-forever)
1467 TEST_PROG(PRIVSERVER_BINARY, name-test/test-privserver)
1469 AC_DEFINE_UNQUOTED(TEST_BUS_BINARY, "$DBUS_PWD/bus/dbus-daemon$EXEEXT",
1470 [Full path to the daemon in the builddir])
1471 AC_SUBST(TEST_BUS_BINARY)
1473 ## Export the non-setuid external helper
1474 TEST_LAUNCH_HELPER_BINARY="$DBUS_PWD/bus/dbus-daemon-launch-helper-test$EXEEXT"
1475 AC_SUBST(TEST_LAUNCH_HELPER_BINARY)
1476 AC_DEFINE_UNQUOTED(DBUS_TEST_LAUNCH_HELPER_BINARY, "$TEST_LAUNCH_HELPER_BINARY",
1477 [Full path to the launch helper test program in the builddir])
1479 #### Find socket directories
1480 if ! test -z "$TMPDIR" ; then
1481 DEFAULT_SOCKET_DIR=$TMPDIR
1482 elif ! test -z "$TEMP" ; then
1483 DEFAULT_SOCKET_DIR=$TEMP
1484 elif ! test -z "$TMP" ; then
1485 DEFAULT_SOCKET_DIR=$TMP
1487 DEFAULT_SOCKET_DIR=/tmp
1490 DEFAULT_SOCKET_DIR=`echo $DEFAULT_SOCKET_DIR | sed 's/+/%2B/g'`
1492 if ! test -z "$with_test_socket_dir" ; then
1493 TEST_SOCKET_DIR="$with_test_socket_dir"
1495 TEST_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1497 AC_SUBST(TEST_SOCKET_DIR)
1498 AC_DEFINE_UNQUOTED(DBUS_TEST_SOCKET_DIR, "$TEST_SOCKET_DIR", [Where to put test sockets])
1500 if ! test -z "$with_session_socket_dir" ; then
1501 DBUS_SESSION_SOCKET_DIR="$with_session_socket_dir"
1503 DBUS_SESSION_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1505 AC_DEFINE_UNQUOTED(DBUS_SESSION_SOCKET_DIR, "$DBUS_SESSION_SOCKET_DIR", [Where per-session bus puts its sockets])
1506 AC_SUBST(DBUS_SESSION_SOCKET_DIR)
1508 if test x$dbus_win = xyes; then
1509 DBUS_SESSION_BUS_DEFAULT_ADDRESS="nonce-tcp:"
1510 elif test x$have_launchd = xyes; then
1511 DBUS_SESSION_BUS_DEFAULT_ADDRESS="launchd:env=DBUS_LAUNCHD_SESSION_BUS_SOCKET"
1513 DBUS_SESSION_BUS_DEFAULT_ADDRESS="unix:tmpdir=$DBUS_SESSION_SOCKET_DIR"
1515 AC_SUBST(DBUS_SESSION_BUS_DEFAULT_ADDRESS)
1517 # darwin needs this to initialize the environment
1518 AC_CHECK_HEADERS(crt_externs.h)
1519 AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])])
1520 AH_VERBATIM(_DARWIN_ENVIRON,
1522 #if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
1523 # include <sys/time.h>
1524 # include <crt_externs.h>
1525 # define environ (*_NSGetEnviron())
1532 dbus/dbus-arch-deps.h
1536 bus/messagebus-config
1537 bus/org.freedesktop.dbus-session.plist
1546 test/name-test/Makefile
1550 dbus-1-uninstalled.pc
1551 test/data/valid-config-files/debug-allow-all.conf
1552 test/data/valid-config-files/debug-allow-all-sha1.conf
1553 test/data/valid-config-files-system/debug-allow-all-pass.conf
1554 test/data/valid-config-files-system/debug-allow-all-fail.conf
1555 test/data/valid-service-files/org.freedesktop.DBus.TestSuite.PrivServer.service
1556 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteEchoService.service
1557 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteForkingEchoService.service
1558 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteSegfaultService.service
1559 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1560 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1561 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteEchoService.service
1562 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteSegfaultService.service
1563 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1564 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1565 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoExec.service
1566 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoUser.service
1567 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoService.service
1571 dnl ==========================================================================
1576 prefix: ${EXPANDED_PREFIX}
1577 exec_prefix: ${exec_prefix}
1578 libdir: ${EXPANDED_LIBDIR}
1579 libexecdir: ${EXPANDED_LIBEXECDIR}
1580 bindir: ${EXPANDED_BINDIR}
1581 sysconfdir: ${EXPANDED_SYSCONFDIR}
1582 localstatedir: ${EXPANDED_LOCALSTATEDIR}
1583 datadir: ${EXPANDED_DATADIR}
1584 source code location: ${srcdir}
1587 cppflags: ${CPPFLAGS}
1588 cxxflags: ${CXXFLAGS}
1589 64-bit int: ${DBUS_INT64_TYPE}
1590 32-bit int: ${DBUS_INT32_TYPE}
1591 16-bit int: ${DBUS_INT16_TYPE}
1592 Doxygen: ${DOXYGEN:-not found}
1593 xmlto: ${XMLTO:-not found}
1594 man2html: ${MAN2HTML:-not found}"
1597 Maintainer mode: ${USE_MAINTAINER_MODE}
1598 gcc coverage profiling: ${enable_compiler_coverage}
1599 Building embedded tests: ${enable_embedded_tests}
1600 Building modular tests: ${enable_modular_tests}
1601 Building verbose mode: ${enable_verbose_mode}
1602 Building assertions: ${enable_asserts}
1603 Building checks: ${enable_checks}
1604 Building SELinux support: ${have_selinux}
1605 Building inotify support: ${have_inotify}
1606 Building dnotify support: ${have_dnotify}
1607 Building kqueue support: ${have_kqueue}
1608 Building X11 code: ${enable_x11}
1609 Building Doxygen docs: ${enable_doxygen_docs}
1610 Building XML docs: ${enable_xml_docs}
1611 Building cache support: ${enable_userdb_cache}
1612 Building launchd support: ${have_launchd}
1613 Using XML parser: ${with_xml}
1614 Init scripts style: ${with_init_scripts}
1615 Abstract socket names: ${ac_cv_have_abstract_sockets}
1616 System bus socket: ${DBUS_SYSTEM_SOCKET}
1617 System bus address: ${DBUS_SYSTEM_BUS_DEFAULT_ADDRESS}
1618 System bus PID file: ${DBUS_SYSTEM_PID_FILE}
1619 Session bus address: ${DBUS_SESSION_BUS_DEFAULT_ADDRESS}
1620 Console auth dir: ${DBUS_CONSOLE_AUTH_DIR}
1621 Console owner file: ${have_console_owner_file}
1622 Console owner file path: ${DBUS_CONSOLE_OWNER_FILE}
1623 System bus user: ${DBUS_USER}
1624 Session bus services dir: ${EXPANDED_DATADIR}/dbus-1/services
1625 'make check' socket dir: ${TEST_SOCKET_DIR}
1627 if test x$have_launchd = xyes; then
1628 echo " launchd agent dir: ${LAUNCHD_AGENT_DIR}"
1632 if test x$enable_embedded_tests = xyes; then
1633 echo "NOTE: building with unit tests increases the size of the installed library and renders it insecure."
1635 if test x$enable_embedded_tests = xyes -a x$enable_asserts = xno; then
1636 echo "NOTE: building with embedded tests but without assertions means tests may not properly report failures (this configuration is only useful when doing something like profiling the tests)"
1638 if test x$enable_compiler_coverage = xyes; then
1639 echo "NOTE: building with coverage profiling is definitely for developers only."
1641 if test x$enable_verbose_mode = xyes; then
1642 echo "NOTE: building with verbose mode increases library size, may slightly increase security risk, and decreases performance."
1644 if test x$enable_asserts = xyes; then
1645 echo "NOTE: building with assertions increases library size and decreases performance."
1647 if test x$enable_checks = xno; then
1648 echo "NOTE: building without checks for arguments passed to public API makes it harder to debug apps using D-Bus, but will slightly decrease D-Bus library size and _very_ slightly improve performance."
1650 if test x$dbus_use_libxml = xtrue; then
1652 echo "WARNING: You have chosen to use libxml as your xml parser however this code path is not maintained by the D-Bus developers and if it breaks you get to keep the pieces. If you have selected this option in err please reconfigure with expat (e.g. --with-xml=expat)."