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(tests, AS_HELP_STRING([--enable-tests],[enable unit test code in the library and binaries]),enable_tests=$enableval,enable_tests=$USE_MAINTAINER_MODE)
126 AC_ARG_ENABLE(ansi, AS_HELP_STRING([--enable-ansi],[enable -ansi -pedantic gcc flags]),enable_ansi=$enableval,enable_ansi=no)
127 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)
128 AC_ARG_ENABLE(asserts, AS_HELP_STRING([--enable-asserts],[include assertion checks]),enable_asserts=$enableval,enable_asserts=$USE_MAINTAINER_MODE)
129 AC_ARG_ENABLE(checks, AS_HELP_STRING([--enable-checks],[include sanity checks on public API]),enable_checks=$enableval,enable_checks=yes)
130 AC_ARG_ENABLE(xml-docs, AS_HELP_STRING([--enable-xml-docs],[build XML documentation (requires xmlto)]),enable_xml_docs=$enableval,enable_xml_docs=auto)
131 AC_ARG_ENABLE(doxygen-docs, AS_HELP_STRING([--enable-doxygen-docs],[build DOXYGEN documentation (requires Doxygen)]),enable_doxygen_docs=$enableval,enable_doxygen_docs=auto)
132 AC_ARG_ENABLE(abstract-sockets, AS_HELP_STRING([--enable-abstract-sockets],[use abstract socket namespace (linux only)]),enable_abstract_sockets=$enableval,enable_abstract_sockets=auto)
133 AC_ARG_ENABLE(selinux, AS_HELP_STRING([--enable-selinux],[build with SELinux support]),enable_selinux=$enableval,enable_selinux=auto)
134 AC_ARG_ENABLE(libaudit,AS_HELP_STRING([--enable-libaudit],[build audit daemon support for SELinux]),enable_libaudit=$enableval,enable_libaudit=auto)
135 AC_ARG_ENABLE(dnotify, AS_HELP_STRING([--enable-dnotify],[build with dnotify support (linux only)]),enable_dnotify=$enableval,enable_dnotify=auto)
136 AC_ARG_ENABLE(inotify, AS_HELP_STRING([--enable-inotify],[build with inotify support (linux only)]),enable_inotify=$enableval,enable_inotify=auto)
137 AC_ARG_ENABLE(kqueue, AS_HELP_STRING([--enable-kqueue],[build with kqueue support]),enable_kqueue=$enableval,enable_kqueue=auto)
138 AC_ARG_ENABLE(console-owner-file, AS_HELP_STRING([--enable-console-owner-file],[enable console owner file]),enable_console_owner_file=$enableval,enable_console_owner_file=auto)
139 AC_ARG_ENABLE(userdb-cache, AS_HELP_STRING([--enable-userdb-cache],[build with userdb-cache support]),enable_userdb_cache=$enableval,enable_userdb_cache=yes)
140 AC_ARG_ENABLE(launchd, AS_HELP_STRING([--enable-launchd],[build with launchd auto-launch support]),enable_launchd=$enableval,enable_launchd=auto)
142 AC_ARG_WITH(xml, AS_HELP_STRING([--with-xml=[libxml/expat]],[XML library to use (libxml may be named libxml2 on some systems)]))
143 AC_ARG_WITH(init-scripts, AS_HELP_STRING([--with-init-scripts=[redhat]],[Style of init scripts to install]))
144 AC_ARG_WITH(session-socket-dir, AS_HELP_STRING([--with-session-socket-dir=[dirname]],[Where to put sockets for the per-login-session message bus]))
145 AC_ARG_WITH(test-socket-dir, AS_HELP_STRING([--with-test-socket-dir=[dirname]],[Where to put sockets for make check]))
146 AC_ARG_WITH(system-pid-file, AS_HELP_STRING([--with-system-pid-file=[pidfile]],[PID file for systemwide daemon]))
147 AC_ARG_WITH(system-socket, AS_HELP_STRING([--with-system-socket=[filename]],[UNIX domain socket for systemwide daemon]))
148 AC_ARG_WITH(console-auth-dir, AS_HELP_STRING([--with-console-auth-dir=[dirname]],[directory to check for console ownerhip]))
149 AC_ARG_WITH(console-owner-file, AS_HELP_STRING([--with-console-owner-file=[filename]],[file whose owner determines current console owner]))
150 AC_ARG_WITH(launchd-agent-dir, AS_HELP_STRING([--with-launchd-agent-dir=[dirname]],[directory to put the launchd agent (default: /Library/LaunchAgents)]))
151 AC_ARG_WITH(dbus_user, AS_HELP_STRING([--with-dbus-user=<user>],[User for running the DBUS daemon (messagebus)]))
152 AC_ARG_WITH(dbus_daemondir, AS_HELP_STRING([--with-dbus-daemondir=[dirname]],[Directory for installing the DBUS daemon]))
154 dnl DBUS_BUILD_TESTS controls unit tests built in to .c files
155 dnl and also some stuff in the test/ subdir
156 AM_CONDITIONAL(DBUS_BUILD_TESTS, test x$enable_tests = xyes)
157 if test x$enable_tests = xyes; then
158 AC_DEFINE(DBUS_BUILD_TESTS,1,[Build test code])
161 if test x$enable_verbose_mode = xyes; then
162 AC_DEFINE(DBUS_ENABLE_VERBOSE_MODE,1,[Support a verbose mode])
165 if test x$enable_asserts = xno; then
166 AC_DEFINE(DBUS_DISABLE_ASSERT,1,[Disable assertion checking])
169 # -rdynamic is needed for glibc's backtrace_symbols to work.
170 # No clue how much overhead this adds, but it's useful
171 # to do this on any assertion failure,
172 # so for now it's enabled anytime asserts are (currently not
173 # in production builds).
175 # To get -rdynamic you pass -export-dynamic to libtool.
176 AC_DEFINE(DBUS_BUILT_R_DYNAMIC,1,[whether -export-dynamic was passed to libtool])
177 R_DYNAMIC_LDFLAG=-export-dynamic
179 AC_SUBST(R_DYNAMIC_LDFLAG)
181 if test x$enable_checks = xno; then
182 AC_DEFINE(DBUS_DISABLE_CHECKS,1,[Disable public API sanity checking])
183 AC_DEFINE(G_DISABLE_CHECKS,1,[Disable GLib public API sanity checking])
186 if test x$enable_userdb_cache = xyes; then
187 AC_DEFINE(DBUS_ENABLE_USERDB_CACHE,1,[Build with caching of user data])
190 if test x$enable_compiler_coverage = xyes; then
191 ## so that config.h changes when you toggle gcov support
192 AC_DEFINE_UNQUOTED(DBUS_GCOV_ENABLED, 1, [Defined if gcov is enabled to force a rebuild due to config.h changing])
195 # glibc21.m4 serial 3
196 dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
197 dnl This file is free software; the Free Software Foundation
198 dnl gives unlimited permission to copy and/or distribute it,
199 dnl with or without modifications, as long as this notice is preserved.
201 # Test for the GNU C Library, version 2.1 or newer.
204 AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
205 ac_cv_gnu_library_2_1,
206 [AC_EGREP_CPP([Lucky GNU user],
208 #include <features.h>
209 #ifdef __GNU_LIBRARY__
210 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
215 ac_cv_gnu_library_2_1=yes,
216 ac_cv_gnu_library_2_1=no)
222 AC_CHECK_SIZEOF(char)
223 AC_CHECK_SIZEOF(short)
224 AC_CHECK_SIZEOF(long)
226 AC_CHECK_SIZEOF(void *)
227 AC_CHECK_SIZEOF(long long)
228 AC_CHECK_SIZEOF(__int64)
230 ### See what our 64 bit type is called
231 AC_MSG_CHECKING([64-bit integer type])
236 dbusint64_constant='(val)'
237 dbusuint64_constant='(val)'
238 dbusint64_printf_modifier='""'
242 dbusint64_constant='(val##L)'
243 dbusuint64_constant='(val##UL)'
244 dbusint64_printf_modifier='"l"'
246 $ac_cv_sizeof_long_long)
247 dbusint64='long long'
248 dbusint64_constant='(val##LL)'
249 dbusuint64_constant='(val##ULL)'
250 # Ideally we discover what the format is, but this is
251 # only used in verbose mode, so eh...
252 if test x"$ac_cv_gnu_library_2_1" = xyes; then
253 dbusint64_printf_modifier='"ll"'
256 $ac_cv_sizeof___int64)
258 dbusint64_constant='(val##i64)'
259 dbusuint64_constant='(val##ui64)'
261 if test x"$ac_cv_gnu_library_2_1" = xyes; then
262 dbusint64_printf_modifier='"ll"'
267 if test -z "$dbusint64" ; then
268 DBUS_INT64_TYPE="no_int64_type_detected"
271 DBUS_UINT64_CONSTANT=
272 AC_MSG_RESULT([none found])
274 DBUS_INT64_TYPE="$dbusint64"
276 DBUS_INT64_CONSTANT="$dbusint64_constant"
277 DBUS_UINT64_CONSTANT="$dbusuint64_constant"
278 if test x"$dbusint64_printf_modifier" != x; then
279 AC_DEFINE_UNQUOTED(DBUS_INT64_PRINTF_MODIFIER, [$dbusint64_printf_modifier], [Define to printf modifier for 64 bit integer type])
281 AC_MSG_RESULT($DBUS_INT64_TYPE)
284 AC_SUBST(DBUS_INT64_TYPE)
285 AC_SUBST(DBUS_INT64_CONSTANT)
286 AC_SUBST(DBUS_UINT64_CONSTANT)
287 AC_SUBST(DBUS_HAVE_INT64)
289 ### see what 32-bit int is called
290 AC_MSG_CHECKING([32-bit integer type])
304 if test -z "$dbusint32" ; then
305 DBUS_INT32_TYPE="no_int32_type_detected"
306 AC_MSG_ERROR([No 32-bit integer type found])
308 DBUS_INT32_TYPE="$dbusint32"
309 AC_MSG_RESULT($DBUS_INT32_TYPE)
312 AC_SUBST(DBUS_INT32_TYPE)
314 ### see what 16-bit int is called
315 AC_MSG_CHECKING([16-bit integer type])
326 if test -z "$dbusint16" ; then
327 DBUS_INT16_TYPE="no_int16_type_detected"
328 AC_MSG_ERROR([No 16-bit integer type found])
330 DBUS_INT16_TYPE="$dbusint16"
331 AC_MSG_RESULT($DBUS_INT16_TYPE)
334 AC_SUBST(DBUS_INT16_TYPE)
339 # check at compile-time, so that it is possible to build universal
340 # (with multiple architectures at once on the compile line)
341 AH_VERBATIM([WORDS_BIGENDIAN_DARWIN], [
342 /* Use the compiler-provided endianness defines to allow universal compiling. */
343 #if defined(__BIG_ENDIAN__)
344 #define WORDS_BIGENDIAN 1
353 dnl **********************************
354 dnl *** va_copy checks (from GLib) ***
355 dnl **********************************
356 dnl we currently check for all three va_copy possibilities, so we get
357 dnl all results in config.log for bug reports.
358 AC_CACHE_CHECK([for an implementation of va_copy()],dbus_cv_va_copy,[
359 AC_LINK_IFELSE([AC_LANG_SOURCE([#include <stdarg.h>
361 static void f (int i, ...) {
362 va_list args1, args2;
364 va_copy (args2, args1);
365 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
367 va_end (args1); va_end (args2);
373 [dbus_cv_va_copy=yes],
374 [dbus_cv_va_copy=no])
376 AC_CACHE_CHECK([for an implementation of __va_copy()],dbus_cv___va_copy,[
377 AC_LINK_IFELSE([AC_LANG_SOURCE([#include <stdarg.h>
379 static void f (int i, ...) {
380 va_list args1, args2;
382 __va_copy (args2, args1);
383 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
385 va_end (args1); va_end (args2);
391 [dbus_cv___va_copy=yes],
392 [dbus_cv___va_copy=no])
395 if test "x$dbus_cv_va_copy" = "xyes"; then
396 dbus_va_copy_func=va_copy
397 else if test "x$dbus_cv___va_copy" = "xyes"; then
398 dbus_va_copy_func=__va_copy
402 if test -n "$dbus_va_copy_func"; then
403 AC_DEFINE_UNQUOTED(DBUS_VA_COPY,$dbus_va_copy_func,[A 'va_copy' style function])
407 AC_CACHE_CHECK([whether va_lists can be copied by value],
409 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
415 static void f (int i, ...) {
416 va_list args1, args2;
419 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
421 va_end (args1); va_end (args2);
428 [dbus_cv_va_val_copy=yes],
429 [dbus_cv_va_val_copy=no],
430 [dbus_cv_va_val_copy=yes])
434 if test "x$dbus_cv_va_val_copy" = "xno"; then
435 AC_DEFINE(DBUS_VA_COPY_AS_ARRAY,1, ['va_lists' cannot be copies as values])
441 AC_CACHE_CHECK([whether $CC knows __sync_sub_and_fetch()],
442 dbus_cv_sync_sub_and_fetch,
444 AC_LANG_PROGRAM([[]], [[int a = 4; int b = __sync_sub_and_fetch(&a, 4); exit(b); ]])],
445 [dbus_cv_sync_sub_and_fetch=yes],
446 [dbus_cv_sync_sub_and_fetch=no])
449 if test "x$dbus_cv_sync_sub_and_fetch" = "xyes" ; then
455 AC_DEFINE_UNQUOTED([DBUS_USE_SYNC], [$have_sync], [Use the gcc __sync extension])
457 #### Various functions
458 AC_SEARCH_LIBS(socket,[socket network])
459 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
461 AC_CHECK_FUNCS(vsnprintf vasprintf nanosleep usleep setenv clearenv unsetenv socketpair getgrouplist fpathconf setrlimit poll setlocale localeconv strtoll strtoull)
463 #### Check for broken poll; taken from Glib's configure
465 AC_MSG_CHECKING([for broken poll])
466 AC_RUN_IFELSE([AC_LANG_SOURCE([[
470 #ifdef HAVE_SYS_POLL_H
471 #include <sys/poll.h>
474 struct pollfd fds[1];
476 fd = open("/dev/null", 1);
478 fds[0].events = POLLIN;
480 if (poll(fds, 1, 0) < 0 || (fds[0].revents & POLLNVAL) != 0) {
481 exit(1); /* Does not work for devices -- fail */
487 AC_DEFINE(BROKEN_POLL,1,[poll doesn't work on devices])],
488 [broken_poll="no (cross compiling)"])
489 AC_MSG_RESULT($broken_poll)
491 AC_MSG_CHECKING(for dirfd)
492 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
493 #include <sys/types.h>
501 [dbus_have_dirfd=yes],
502 [dbus_have_dirfd=no])
503 AC_MSG_RESULT($dbus_have_dirfd)
504 if test "$dbus_have_dirfd" = yes; then
505 AC_DEFINE(HAVE_DIRFD,1,[Have dirfd function])
507 AC_MSG_CHECKING(for DIR *dirp->dd_fd)
508 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
509 #include <sys/types.h>
518 [dbus_have_ddfd=yes],
520 AC_MSG_RESULT($dbus_have_ddfd)
521 if test "$dbus_have_ddfd" = yes; then
522 AC_DEFINE(HAVE_DDFD,1,[Have the ddfd member of DIR])
526 AC_CHECK_HEADERS(sys/resource.h)
528 AC_CHECK_HEADERS(dirent.h)
530 AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)])
532 AC_CHECK_HEADERS(errno.h)
534 AC_CHECK_HEADERS(signal.h)
536 AC_CHECK_HEADERS(locale.h)
538 AC_CHECK_HEADERS(byteswap.h)
540 AC_CHECK_HEADERS(unistd.h)
542 AC_CHECK_HEADERS(ws2tcpip.h)
544 AC_CHECK_HEADERS(wspiapi.h)
546 # Add -D_POSIX_PTHREAD_SEMANTICS if on Solaris
550 CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS" ;;
553 # checking for a posix version of getpwnam_r
554 # if we are cross compiling and can not run the test
555 # assume getpwnam_r is the posix version
556 # it is up to the person cross compiling to change
557 # this behavior if desired
559 AC_CACHE_CHECK([for posix getpwnam_r],
560 ac_cv_func_posix_getpwnam_r,
561 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
568 struct passwd pwd, *pwptr = &pwd;
571 error = getpwnam_r ("", &pwd, buffer,
572 sizeof (buffer), &pwptr);
573 return (error < 0 && errno == ENOSYS)
576 [ac_cv_func_posix_getpwnam_r=yes],
577 [ac_cv_func_posix_getpwnam_r=no],
578 [ac_cv_func_posix_getpwnam_r=yes]
582 if test "$ac_cv_func_posix_getpwnam_r" = yes; then
583 AC_DEFINE(HAVE_POSIX_GETPWNAM_R,1,
584 [Have POSIX function getpwnam_r])
586 AC_CACHE_CHECK([for nonposix getpwnam_r],
587 ac_cv_func_nonposix_getpwnam_r,
588 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pwd.h>]], [[char buffer[10000];
590 getpwnam_r ("", &pwd, buffer,
591 sizeof (buffer));]])],
592 [ac_cv_func_nonposix_getpwnam_r=yes],
593 [ac_cv_func_nonposix_getpwnam_r=no])])
594 if test "$ac_cv_func_nonposix_getpwnam_r" = yes; then
595 AC_DEFINE(HAVE_NONPOSIX_GETPWNAM_R,1,
596 [Have non-POSIX function getpwnam_r])
600 dnl check for socklen_t
601 AC_MSG_CHECKING(whether socklen_t is defined)
602 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
603 #include <sys/types.h>
604 #include <sys/socket.h>
610 [dbus_have_socklen_t=yes],
611 [dbus_have_socklen_t=no])
612 AC_MSG_RESULT($dbus_have_socklen_t)
614 if test "x$dbus_have_socklen_t" = "xyes"; then
615 AC_DEFINE(HAVE_SOCKLEN_T,1,[Have socklen_t type])
618 dnl check for writev header and writev function so we're
619 dnl good to go if HAVE_WRITEV gets defined.
620 AC_CHECK_HEADERS(sys/uio.h, [AC_CHECK_FUNCS(writev)])
622 dnl needed on darwin for NAME_MAX
623 AC_CHECK_HEADERS(sys/syslimits.h)
625 dnl Make it easy to check if we have MSG_NOSIGNAL without actually having to include sys/socket.h
626 AC_CHECK_DECLS([MSG_NOSIGNAL], [], [], [[ #include <sys/socket.h> ]])
628 dnl check for flavours of varargs macros (test from GLib)
629 AC_MSG_CHECKING(for ISO C99 varargs macros in C)
630 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
631 int a(int p1, int p2, int p3);
632 #define call_a(...) a(1,__VA_ARGS__)
635 [dbus_have_iso_c_varargs=yes],
636 [dbus_have_iso_c_varargs=no])
637 AC_MSG_RESULT($dbus_have_iso_c_varargs)
639 AC_MSG_CHECKING(for GNUC varargs macros)
640 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
641 int a(int p1, int p2, int p3);
642 #define call_a(params...) a(1,params)
645 [dbus_have_gnuc_varargs=yes],
646 [dbus_have_gnuc_varargs=no])
647 AC_MSG_RESULT($dbus_have_gnuc_varargs)
649 dnl Output varargs tests
650 if test x$dbus_have_iso_c_varargs = xyes; then
651 AC_DEFINE(HAVE_ISO_VARARGS,1,[Have ISO C99 varargs macros])
653 if test x$dbus_have_gnuc_varargs = xyes; then
654 AC_DEFINE(HAVE_GNUC_VARARGS,1,[Have GNU-style varargs macros])
657 dnl Check for various credentials.
658 AC_MSG_CHECKING(for struct cmsgcred)
659 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
660 #include <sys/types.h>
661 #include <sys/socket.h>
663 struct cmsgcred cred;
667 [dbus_have_struct_cmsgcred=yes],
668 [dbus_have_struct_cmsgcred=no])
669 AC_MSG_RESULT($dbus_have_struct_cmsgcred)
671 if test x$dbus_have_struct_cmsgcred = xyes; then
672 AC_DEFINE(HAVE_CMSGCRED,1,[Have cmsgcred structure])
675 AC_CHECK_FUNCS(getpeerucred getpeereid)
677 AC_CHECK_FUNCS(pipe2 accept4)
679 #### Abstract sockets
681 if test x$enable_abstract_sockets = xauto; then
684 AC_CACHE_CHECK([abstract socket namespace],
685 ac_cv_have_abstract_sockets,
686 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
688 #include <sys/types.h>
692 #include <sys/socket.h>
699 struct sockaddr_un addr;
701 listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
705 fprintf (stderr, "socket() failed: %s\n", strerror (errno));
709 memset (&addr, '\0', sizeof (addr));
710 addr.sun_family = AF_UNIX;
711 strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
712 /* SUN_LEN uses strlen() so need to calculate it before adding \0 at the
715 slen = SUN_LEN(&addr);
716 addr.sun_path[0] = '\0'; /* this is what makes it abstract */
718 if (bind (listen_fd, (struct sockaddr*) &addr, slen) < 0)
720 fprintf (stderr, "Abstract socket namespace bind() failed: %s\n",
727 [ac_cv_have_abstract_sockets=yes],
728 [ac_cv_have_abstract_sockets=no],
730 ac_cv_have_abstract_sockets=no
734 if test x$warn_on_xcompile = xyes ; then
735 AC_MSG_WARN([Cannot check for abstract sockets when cross-compiling, please use --enable-abstract-sockets])
740 if test x$enable_abstract_sockets = xyes; then
741 if test x$ac_cv_have_abstract_sockets = xno; then
742 AC_MSG_ERROR([Abstract sockets explicitly required, and support not detected.])
746 if test x$enable_abstract_sockets = xno; then
747 ac_cv_have_abstract_sockets=no;
750 if test x$ac_cv_have_abstract_sockets = xyes ; then
751 DBUS_PATH_OR_ABSTRACT=abstract
752 AC_DEFINE(HAVE_ABSTRACT_SOCKETS,1,[Have abstract socket namespace])
754 DBUS_PATH_OR_ABSTRACT=path
757 # this is used in addresses to prefer abstract, e.g.
758 # unix:path=/foo or unix:abstract=/foo
759 AC_SUBST(DBUS_PATH_OR_ABSTRACT)
763 #### Sort out XML library
766 AC_CHECK_LIB(expat, XML_ParserCreate_MM,
767 [ AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false) ],
770 # see what we want to use
771 dbus_use_libxml=false
773 if test x$with_xml = xexpat; then
774 if ! $have_expat ; then
775 AC_MSG_ERROR([Explicitly requested expat but expat not found])
778 elif test x$with_xml = xlibxml; then
779 PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= 2.6.0, have_libxml=true, have_libxml=false)
780 if ! $have_libxml ; then
781 AC_MSG_ERROR([Explicitly requested libxml but libxml not found])
785 ### expat is the default because libxml can't currently survive
786 ### our brutal OOM-handling unit test setup.
787 ### http://bugzilla.gnome.org/show_bug.cgi?id=109368
788 if test x$have_expat = xfalse; then
789 AC_MSG_ERROR([Could not find expat.h, check config.log for failed attempts])
791 ### By default, only use Expat since it's tested and known to work. If you're a
792 ### general-purpose OS vendor, please don't enable libxml. For embedded use
793 ### if your OS is built around libxml, that's another case.
797 AM_CONDITIONAL(DBUS_USE_EXPAT, $dbus_use_expat)
798 AM_CONDITIONAL(DBUS_USE_LIBXML, $dbus_use_libxml)
800 if $dbus_use_expat; then
804 if $dbus_use_libxml; then
805 XML_LIBS=$LIBXML_LIBS
806 XML_CFLAGS=$LIBXML_CFLAGS
809 # Thread lib detection
810 AC_CHECK_FUNC(pthread_cond_timedwait,[AC_CHECK_LIB(pthread,pthread_cond_timedwait,
811 [THREAD_LIBS="-lpthread"])])
813 LIBS="$LIBS $THREAD_LIBS"
814 AC_CHECK_FUNC(pthread_condattr_setclock,have_pthread_condattr_setclock=true,have_pthread_condattr_setclock=false)
815 if test x$have_pthread_condattr_setclock = xtrue; then
816 AC_SEARCH_LIBS([clock_getres],[rt],[THREAD_LIBS="$THREAD_LIBS -lrt"])
817 AC_MSG_CHECKING([for CLOCK_MONOTONIC])
818 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>
821 struct timespec monotonic_timer;
822 pthread_condattr_t attr;
823 pthread_condattr_init (&attr);
824 pthread_condattr_setclock (&attr, CLOCK_MONOTONIC);
825 clock_getres (CLOCK_MONOTONIC,&monotonic_timer);
827 [have_clock_monotonic=true],
828 [have_clock_monotonic=false])
829 if test x$have_clock_monotonic = xtrue; then
830 AC_MSG_RESULT([found])
831 AC_DEFINE(HAVE_MONOTONIC_CLOCK, 1, [Define if we have CLOCK_MONOTONIC])
833 AC_MSG_RESULT([not found])
839 if test x$enable_selinux = xno ; then
842 # See if we have SELinux library
843 AC_CHECK_LIB(selinux, is_selinux_enabled,
844 have_selinux=yes, have_selinux=no)
846 # see if we have the SELinux header with the new D-Bus stuff in it
847 if test x$have_selinux = xyes ; then
848 AC_MSG_CHECKING([for DBUS Flask permissions in selinux/av_permissions.h])
849 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <selinux/av_permissions.h>]],
850 [[#ifdef DBUS__ACQUIRE_SVC return 0;
852 #error DBUS__ACQUIRE_SVC not defined
856 AC_MSG_RESULT($have_selinux)
859 if test x$enable_selinux = xauto ; then
860 if test x$have_selinux = xno ; then
861 AC_MSG_WARN([Sufficiently new SELinux library not found])
864 if test x$have_selinux = xno ; then
865 AC_MSG_ERROR([SElinux explicitly required, and SELinux library not found])
870 AM_CONDITIONAL(HAVE_SELINUX, test x$have_selinux = xyes)
872 if test x$have_selinux = xyes ; then
873 # the selinux code creates threads
874 # which requires libpthread even on linux
875 AC_CHECK_FUNC(pthread_create,,[AC_CHECK_LIB(pthread,pthread_create,
876 [SELINUX_THREAD_LIBS="-lpthread"])])
878 SELINUX_LIBS="-lselinux $SELINUX_THREAD_LIBS"
879 AC_DEFINE(HAVE_SELINUX,1,[SELinux support])
885 if test x$enable_inotify = xno ; then
888 AC_CHECK_HEADERS(sys/inotify.h, have_inotify=yes, have_inotify=no)
891 dnl check if inotify backend is enabled
892 if test x$have_inotify = xyes; then
893 AC_DEFINE(DBUS_BUS_ENABLE_INOTIFY,1,[Use inotify])
894 AC_CHECK_FUNCS(inotify_init1)
897 AM_CONDITIONAL(DBUS_BUS_ENABLE_INOTIFY, test x$have_inotify = xyes)
900 if test x$enable_dnotify = xno ; then
903 if test x$have_inotify = xno -a x$host_os = xlinux-gnu -o x$host_os = xlinux; then
910 dnl check if dnotify backend is enabled
911 if test x$have_dnotify = xyes; then
912 AC_DEFINE(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX,1,[Use dnotify on Linux])
915 AM_CONDITIONAL(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX, test x$have_dnotify = xyes)
918 if test x$enable_kqueue = xno ; then
922 AC_CHECK_HEADER(sys/event.h, , have_kqueue=no)
923 AC_CHECK_FUNC(kqueue, , have_kqueue=no)
925 if test x$enable_kqueue = xyes -a x$have_kqueue = xno; then
926 AC_MSG_ERROR(kqueue support explicitly enabled but not available)
930 dnl check if kqueue backend is enabled
931 if test x$have_kqueue = xyes; then
932 AC_DEFINE(DBUS_BUS_ENABLE_KQUEUE,1,[Use kqueue])
935 AM_CONDITIONAL(DBUS_BUS_ENABLE_KQUEUE, test x$have_kqueue = xyes)
938 if test x$enable_launchd = xno ; then
942 AC_CHECK_HEADER([launch.h], , have_launchd=no)
943 AC_PATH_PROG([LAUNCHCTL], [launchctl])
944 if test "x$LAUNCHCTL" = "x"; then
948 if test x$enable_launchd = xyes && test x$have_launchd = xno ; then
949 AC_MSG_ERROR([launchd support explicitly enabled but not available])
953 dnl check if launchd is enabled
954 if test x$have_launchd = xyes; then
955 AC_DEFINE(DBUS_ENABLE_LAUNCHD,1,[Use launchd autolaunch])
958 AM_CONDITIONAL(DBUS_ENABLE_LAUNCHD, test x$have_launchd = xyes)
960 #### Directory to place launchd agent file
961 if test "x$with_launchd_agent_dir" = "x"; then
962 LAUNCHD_AGENT_DIR="/Library/LaunchAgents"
964 LAUNCHD_AGENT_DIR="$with_launchd_agent_dir"
967 AC_SUBST(LAUNCHD_AGENT_DIR)
969 dnl console owner file
970 if test x$enable_console_owner_file = xno ; then
971 have_console_owner_file=no;
975 have_console_owner_file=yes;
976 AC_DEFINE(HAVE_CONSOLE_OWNER_FILE,1,[Have console owner file])
979 have_console_owner_file=no;;
983 AM_CONDITIONAL(HAVE_CONSOLE_OWNER_FILE, test x$have_console_owner_file = xyes)
986 if test x$enable_libaudit = xno ; then
989 # See if we have audit daemon & capabilities library
990 AC_CHECK_LIB(audit, audit_log_user_avc_message,
991 have_libaudit=yes, have_libaudit=no)
992 if test x$have_libaudit = xyes ; then
993 AC_CHECK_LIB(cap-ng, capng_clear,
994 have_libaudit=yes, have_libaudit=no)
998 AM_CONDITIONAL(HAVE_LIBAUDIT, test x$have_libaudit = xyes)
1000 if test x$have_libaudit = xyes ; then
1001 SELINUX_LIBS="$SELINUX_LIBS -laudit -lcap-ng"
1002 AC_DEFINE(HAVE_LIBAUDIT,1,[audit daemon SELinux support])
1006 AC_MSG_CHECKING(for ADT API)
1007 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1008 #include <bsm/adt.h>
1009 adt_user_context = ADT_USER;
1010 ]], [[]])], [ check_adt_audit=yes ], [ check_adt_audit=no ])
1012 if test ${check_adt_audit} = yes
1014 AC_DEFINE([HAVE_ADT], [], [Adt audit API])
1022 # Check for SCM_RIGHTS
1023 AC_MSG_CHECKING([for SCM_RIGHTS])
1024 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1025 #include <sys/socket.h>
1027 static int x = SCM_RIGHTS;
1029 [ AC_MSG_RESULT([supported])
1030 AC_DEFINE([HAVE_UNIX_FD_PASSING], [1], [Supports sending UNIX file descriptors]) ],
1031 [ AC_MSG_RESULT([not supported]) ])
1034 if test x$dbus_win = xyes ; then
1035 if test x$dbus_wince = xyes ; then
1036 NETWORK_libs="-lws2"
1038 NETWORK_libs="-lws2_32"
1042 #### Set up final flags
1044 DBUS_CLIENT_LIBS="$THREAD_LIBS $NETWORK_libs"
1045 AC_SUBST(DBUS_CLIENT_CFLAGS)
1046 AC_SUBST(DBUS_CLIENT_LIBS)
1048 DBUS_BUS_CFLAGS="$XML_CFLAGS"
1049 DBUS_BUS_LIBS="$XML_LIBS $SELINUX_LIBS $THREAD_LIBS $ADT_LIBS $NETWORK_libs"
1050 AC_SUBST(DBUS_BUS_CFLAGS)
1051 AC_SUBST(DBUS_BUS_LIBS)
1053 DBUS_LAUNCHER_CFLAGS="$XML_CFLAGS"
1054 DBUS_LAUNCHER_LIBS="$XML_LIBS $THREAD_LIBS $NETWORK_libs"
1055 AC_SUBST(DBUS_LAUNCHER_CFLAGS)
1056 AC_SUBST(DBUS_LAUNCHER_LIBS)
1059 DBUS_TEST_LIBS="$THREAD_LIBS $NETWORK_libs"
1060 AC_SUBST(DBUS_TEST_CFLAGS)
1061 AC_SUBST(DBUS_TEST_LIBS)
1067 AC_ARG_ENABLE([x11-autolaunch],
1068 AS_HELP_STRING([--enable-x11-autolaunch], [build with X11 auto-launch support]),
1069 [], [enable_x11_autolaunch=auto])
1071 if test "x$dbus_win" = xyes; then
1072 if test "x$enable_x11_autolaunch" = xyes; then
1073 AC_MSG_ERROR([X11 auto-launch is not supported on Windows])
1076 enable_x11_autolaunch=no
1081 if test "x$no_x" = xyes; then
1085 DBUS_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
1086 DBUS_X_CFLAGS="$X_CFLAGS"
1090 if test "x$enable_x11_autolaunch,$have_x11" = xyes,no; then
1091 AC_MSG_ERROR([X11 auto-launch requires X headers/libraries])
1093 # move from "auto" to "yes" or "no" if necessary
1094 if test "x$enable_x11_autolaunch" != xno; then
1095 enable_x11_autolaunch="$have_x11"
1099 if test "x$have_x11" = xyes ; then
1100 AC_DEFINE([DBUS_BUILD_X11], [1], [Define to build X11 functionality])
1103 if test "x$enable_x11_autolaunch" = xyes ; then
1104 AC_DEFINE([DBUS_ENABLE_X11_AUTOLAUNCH], [1], [Define to enable X11 auto-launch])
1107 AC_SUBST([DBUS_X_CFLAGS])
1108 AC_SUBST([DBUS_X_LIBS])
1110 #### gcc warning flags
1112 cc_supports_flag() {
1113 AC_MSG_CHECKING(whether $CC supports "$*")
1114 save_CFLAGS="$CFLAGS"
1116 AC_TRY_COMPILE([], [], [rc=yes], [rc=no])
1117 CFLAGS="$save_CFLAGS"
1118 AC_MSG_RESULT([$rc])
1122 TP_COMPILER_WARNINGS([WARNING_CFLAGS],
1123 dnl Use -Werror by default if:
1124 dnl - we're not on Windows (too many warnings), and
1125 dnl - we're in maintainer mode (a D-Bus developer, not a distro or end-user)
1126 dnl Override with --enable-Werror or --disable-Werror
1127 [test x$dbus_win != xyes -a x$dbus_cygwin != xyes -a x$USE_MAINTAINER_MODE = xyes],
1129 dnl enable these warnings if possible:
1132 missing-declarations \
1133 missing-prototypes \
1139 declaration-after-statement \
1142 dnl disable these warnings if possible, make them non-fatal if possible,
1143 dnl and don't enable -Werror unless we succeeded:
1144 dnl (unused is by design, sign-compare and pointer-sign are fd.o #17433)
1150 if test "x$GCC" = "xyes"; then
1151 # We're treating -fno-common like a warning: it makes the linker more
1152 # strict, because on some systems the linker is *always* this strict
1153 TP_ADD_COMPILER_FLAG([WARNING_CFLAGS], [-fno-common])
1155 # http://bugs.freedesktop.org/show_bug.cgi?id=10599
1156 TP_ADD_COMPILER_FLAG([WARNING_CFLAGS], [-fno-strict-aliasing])
1158 if test "x$enable_ansi" = "xyes"; then
1159 TP_ADD_COMPILER_FLAG([WARNING_CFLAGS],
1160 [-ansi -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE -pedantic])
1164 dnl In principle we should put WARNING_CFLAGS in each Makefile.am like
1165 dnl telepathy-glib does, since CFLAGS is meant to be reserved for the user...
1166 dnl but prepending to CFLAGS (so the user can override it with later CFLAGS)
1167 dnl is the next best thing
1168 CFLAGS="$WARNING_CFLAGS $CFLAGS"
1172 # Solaris' C library apparently needs these runes to be threadsafe...
1173 CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT"
1176 ### Doxygen Documentation
1178 AC_PATH_PROG(DOXYGEN, doxygen, no)
1180 AC_MSG_CHECKING([whether to build Doxygen documentation])
1182 if test x$DOXYGEN = xno ; then
1188 if test x$enable_doxygen_docs = xauto ; then
1189 if test x$have_doxygen = xno ; then
1190 enable_doxygen_docs=no
1192 enable_doxygen_docs=yes
1196 if test x$enable_doxygen_docs = xyes; then
1197 if test x$have_doxygen = xno; then
1198 AC_MSG_ERROR([Building Doxygen docs explicitly required, but Doxygen not found])
1202 AM_CONDITIONAL(DBUS_DOXYGEN_DOCS_ENABLED, test x$enable_doxygen_docs = xyes)
1203 AC_MSG_RESULT($enable_doxygen_docs)
1206 AC_CHECK_PROGS([XSLTPROC], [xsltproc])
1207 AM_CONDITIONAL(DBUS_HAVE_XSLTPROC, test "$XSLTPROC" != false)
1209 ### XML Documentation
1211 AC_PATH_PROG(XMLTO, xmlto, no)
1213 AC_MSG_CHECKING([whether to build XML documentation])
1215 if test x$XMLTO = xno ; then
1221 if test x$enable_xml_docs = xauto ; then
1222 if test x$have_xmlto = xno ; then
1229 if test x$enable_xml_docs = xyes; then
1230 if test x$have_xmlto = xno; then
1231 AC_MSG_ERROR([Building XML docs explicitly required, but xmlto not found])
1235 AM_CONDITIONAL(DBUS_XML_DOCS_ENABLED, test x$enable_xml_docs = xyes)
1236 AC_MSG_RESULT($enable_xml_docs)
1238 AC_PATH_PROG([MAN2HTML], [man2html])
1239 AC_ARG_VAR([MAN2HTML], [Path to man2html (optional)])
1240 AM_CONDITIONAL(DBUS_HAVE_MAN2HTML, test x$MAN2HTML != x)
1242 AM_CONDITIONAL(DBUS_CAN_UPLOAD_DOCS,
1243 test x$enable_doxygen_docs = xyes -a x$enable_xml_docs = xyes -a \
1246 #### Have to go $localstatedir->$prefix/var->/usr/local/var
1248 #### find the actual value for $prefix that we'll end up with
1249 ## (I know this is broken and should be done in the Makefile, but
1250 ## that's a major pain and almost nobody actually seems to care)
1251 AS_AC_EXPAND(EXPANDED_PREFIX, "$prefix")
1252 AS_AC_EXPAND(EXPANDED_LOCALSTATEDIR, "$localstatedir")
1253 AS_AC_EXPAND(EXPANDED_SYSCONFDIR, "$sysconfdir")
1254 AS_AC_EXPAND(EXPANDED_BINDIR, "$bindir")
1255 AS_AC_EXPAND(EXPANDED_LIBDIR, "$libdir")
1256 AS_AC_EXPAND(EXPANDED_LIBEXECDIR, "$libexecdir")
1257 AS_AC_EXPAND(EXPANDED_DATADIR, "$datadir")
1259 #### Check our operating system
1260 operating_system=unknown
1261 if test -f /etc/redhat-release || test -f $EXPANDED_SYSCONFDIR/redhat-release ; then
1262 operating_system=redhat
1265 if test -f /etc/slackware-version || test -f $EXPANDED_SYSCONFDIR/slackware-version ; then
1266 operating_system=slackware
1269 if test -f /usr/bin/cygwin1.dll || test -f $EXPANDED_BINDIR/cygwin1.dll ; then
1270 operating_system=cygwin
1273 #### Sort out init scripts
1275 if test x$with_init_scripts = x; then
1276 case x$operating_system in
1277 xredhat) with_init_scripts=redhat ;;
1278 xslackware) with_init_scripts=slackware ;;
1279 xcygwin) with_init_scripts=cygwin ;;
1280 *) with_init_scripts=none ;;
1284 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_RED_HAT, test x$with_init_scripts = xredhat)
1285 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_SLACKWARE, test x$with_init_scripts = xslackware)
1286 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_CYGWIN, test x$with_init_scripts = xcygwin)
1288 ##### systemd unit files
1289 AC_ARG_WITH([systemdsystemunitdir],
1290 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
1291 [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
1292 if test "x$with_systemdsystemunitdir" != xno; then
1293 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
1295 AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])
1297 ##### Set up location for system bus socket
1298 if ! test -z "$with_system_socket"; then
1299 DBUS_SYSTEM_SOCKET=$with_system_socket
1301 DBUS_SYSTEM_SOCKET=${EXPANDED_LOCALSTATEDIR}/run/dbus/system_bus_socket
1304 AC_SUBST(DBUS_SYSTEM_SOCKET)
1305 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_SOCKET,"$DBUS_SYSTEM_SOCKET",[The name of the socket the system bus listens on by default])
1307 ## system bus only listens on local domain sockets, and never
1308 ## on an abstract socket (so only root can create the socket)
1309 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS="unix:path=$DBUS_SYSTEM_SOCKET"
1310 AC_SUBST(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS)
1311 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS, "$DBUS_SYSTEM_BUS_DEFAULT_ADDRESS",[The default D-Bus address of the system bus])
1313 #### Set up the pid file
1314 if ! test -z "$with_system_pid_file"; then
1315 DBUS_SYSTEM_PID_FILE=$with_system_pid_file
1316 elif test x$with_init_scripts = xredhat ; then
1317 DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/messagebus.pid
1319 DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/dbus/pid
1322 AC_SUBST(DBUS_SYSTEM_PID_FILE)
1324 #### Directory to check for console ownership
1325 if ! test -z "$with_console_auth_dir"; then
1326 DBUS_CONSOLE_AUTH_DIR=$with_console_auth_dir
1328 DBUS_CONSOLE_AUTH_DIR=/var/run/console/
1331 AC_SUBST(DBUS_CONSOLE_AUTH_DIR)
1332 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_AUTH_DIR, "$DBUS_CONSOLE_AUTH_DIR", [Directory to check for console ownerhip])
1334 #### File to check for console ownership
1335 if test x$have_console_owner_file = xyes; then
1336 if ! test -z "$with_console_owner_file"; then
1337 DBUS_CONSOLE_OWNER_FILE=$with_console_owner_file
1339 DBUS_CONSOLE_OWNER_FILE=/dev/console
1342 DBUS_CONSOLE_OWNER_FILE=
1345 AC_SUBST(DBUS_CONSOLE_OWNER_FILE)
1346 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_OWNER_FILE, "$DBUS_CONSOLE_OWNER_FILE", [File to check for console ownerhip])
1348 #### User to start the system bus as
1349 if test -z "$with_dbus_user" ; then
1350 DBUS_USER=messagebus
1352 DBUS_USER=$with_dbus_user
1355 AC_DEFINE_UNQUOTED(DBUS_USER,"$DBUS_USER", [User for running the system BUS daemon])
1357 #### Prefix to install into
1358 DBUS_PREFIX=$EXPANDED_PREFIX
1359 AC_SUBST(DBUS_PREFIX)
1360 AC_DEFINE_UNQUOTED(DBUS_PREFIX,"$DBUS_PREFIX", [Prefix for installing DBUS])
1362 #### Direcotry to install data files into
1363 DBUS_DATADIR=$EXPANDED_DATADIR
1364 AC_SUBST(DBUS_DATADIR)
1365 AC_DEFINE_UNQUOTED(DBUS_DATADIR,"$DBUS_DATADIR", [Directory for installing DBUS data files])
1367 #### Directory to install dbus-daemon
1368 if test -z "$with_dbus_daemondir" ; then
1369 DBUS_DAEMONDIR=$EXPANDED_BINDIR
1371 DBUS_DAEMONDIR=$with_dbus_daemondir
1373 AC_SUBST(DBUS_DAEMONDIR)
1374 AC_DEFINE_UNQUOTED(DBUS_DAEMONDIR,"$DBUS_DAEMONDIR", [Directory for installing the DBUS daemon])
1376 #### Directory to install the other binaries
1377 DBUS_BINDIR="$EXPANDED_BINDIR"
1378 AC_SUBST(DBUS_BINDIR)
1379 AC_DEFINE_UNQUOTED(DBUS_BINDIR,"$DBUS_BINDIR", [Directory for installing the binaries])
1381 #### Directory to install the libexec binaries
1382 DBUS_LIBEXECDIR="$EXPANDED_LIBEXECDIR"
1383 AC_SUBST(DBUS_LIBEXECDIR)
1384 AC_DEFINE_UNQUOTED(DBUS_LIBEXECDIR,"$DBUS_LIBEXECDIR", [Directory for installing the libexec binaries])
1386 #### Tell tests where to find certain stuff in builddir
1389 # Useful in a cross-compilation environment, where the tests are run on the host system.
1390 AC_ARG_WITH(dbus-test-dir, AS_HELP_STRING([--with-dbus-test-dir=[dirname]],[path where the tests tools are available]),
1392 AC_DEFUN([TEST_PATH], [
1393 TEST_$1=${DBUS_PWD}/test/$2
1394 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1",
1395 [Full path to test file test/$2 in builddir])
1398 AC_DEFUN([TEST_PROG], [
1399 TEST_$1=${DBUS_PWD}/test/$2
1400 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1$EXEEXT",
1401 [Full path to test file test/$2 in builddir])
1405 TEST_PATH(VALID_SERVICE_DIR, data/valid-service-files)
1406 TEST_PATH(INVALID_SERVICE_DIR, data/invalid-service-files)
1407 TEST_PATH(VALID_SERVICE_SYSTEM_DIR, data/valid-service-files-system)
1408 TEST_PATH(INVALID_SERVICE_SYSTEM_DIR, data/invalid-service-files-system)
1409 TEST_PROG(SERVICE_BINARY, test-service)
1410 TEST_PROG(SHELL_SERVICE_BINARY, test-shell-service)
1411 TEST_PROG(EXIT_BINARY, test-exit)
1412 TEST_PROG(SEGFAULT_BINARY, test-segfault)
1413 TEST_PROG(SLEEP_FOREVER_BINARY, test-sleep-forever)
1414 TEST_PROG(PRIVSERVER_BINARY, name-test/test-privserver)
1416 AC_DEFINE_UNQUOTED(TEST_BUS_BINARY, "$DBUS_PWD/bus/dbus-daemon$EXEEXT",
1417 [Full path to the daemon in the builddir])
1418 AC_SUBST(TEST_BUS_BINARY)
1420 ## Export the non-setuid external helper
1421 TEST_LAUNCH_HELPER_BINARY="$DBUS_PWD/bus/dbus-daemon-launch-helper-test$EXEEXT"
1422 AC_SUBST(TEST_LAUNCH_HELPER_BINARY)
1423 AC_DEFINE_UNQUOTED(DBUS_TEST_LAUNCH_HELPER_BINARY, "$TEST_LAUNCH_HELPER_BINARY",
1424 [Full path to the launch helper test program in the builddir])
1426 #### Find socket directories
1427 if ! test -z "$TMPDIR" ; then
1428 DEFAULT_SOCKET_DIR=$TMPDIR
1429 elif ! test -z "$TEMP" ; then
1430 DEFAULT_SOCKET_DIR=$TEMP
1431 elif ! test -z "$TMP" ; then
1432 DEFAULT_SOCKET_DIR=$TMP
1434 DEFAULT_SOCKET_DIR=/tmp
1437 DEFAULT_SOCKET_DIR=`echo $DEFAULT_SOCKET_DIR | sed 's/+/%2B/g'`
1439 if ! test -z "$with_test_socket_dir" ; then
1440 TEST_SOCKET_DIR="$with_test_socket_dir"
1442 TEST_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1444 AC_SUBST(TEST_SOCKET_DIR)
1445 AC_DEFINE_UNQUOTED(DBUS_TEST_SOCKET_DIR, "$TEST_SOCKET_DIR", [Where to put test sockets])
1447 if ! test -z "$with_session_socket_dir" ; then
1448 DBUS_SESSION_SOCKET_DIR="$with_session_socket_dir"
1450 DBUS_SESSION_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1452 AC_DEFINE_UNQUOTED(DBUS_SESSION_SOCKET_DIR, "$DBUS_SESSION_SOCKET_DIR", [Where per-session bus puts its sockets])
1453 AC_SUBST(DBUS_SESSION_SOCKET_DIR)
1455 if test x$dbus_win = xyes; then
1456 DBUS_SESSION_BUS_DEFAULT_ADDRESS="nonce-tcp:"
1457 elif test x$have_launchd = xyes; then
1458 DBUS_SESSION_BUS_DEFAULT_ADDRESS="launchd:env=DBUS_LAUNCHD_SESSION_BUS_SOCKET"
1460 DBUS_SESSION_BUS_DEFAULT_ADDRESS="unix:tmpdir=$DBUS_SESSION_SOCKET_DIR"
1462 AC_SUBST(DBUS_SESSION_BUS_DEFAULT_ADDRESS)
1464 # darwin needs this to initialize the environment
1465 AC_CHECK_HEADERS(crt_externs.h)
1466 AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])])
1467 AH_VERBATIM(_DARWIN_ENVIRON,
1469 #if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
1470 # include <sys/time.h>
1471 # include <crt_externs.h>
1472 # define environ (*_NSGetEnviron())
1479 dbus/dbus-arch-deps.h
1483 bus/messagebus-config
1484 bus/org.freedesktop.dbus-session.plist
1493 test/name-test/Makefile
1497 dbus-1-uninstalled.pc
1498 test/data/valid-config-files/debug-allow-all.conf
1499 test/data/valid-config-files/debug-allow-all-sha1.conf
1500 test/data/valid-config-files-system/debug-allow-all-pass.conf
1501 test/data/valid-config-files-system/debug-allow-all-fail.conf
1502 test/data/valid-service-files/org.freedesktop.DBus.TestSuite.PrivServer.service
1503 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteEchoService.service
1504 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteForkingEchoService.service
1505 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteSegfaultService.service
1506 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1507 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1508 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteEchoService.service
1509 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteSegfaultService.service
1510 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1511 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1512 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoExec.service
1513 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoUser.service
1514 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoService.service
1518 dnl ==========================================================================
1523 prefix: ${EXPANDED_PREFIX}
1524 exec_prefix: ${exec_prefix}
1525 libdir: ${EXPANDED_LIBDIR}
1526 libexecdir: ${EXPANDED_LIBEXECDIR}
1527 bindir: ${EXPANDED_BINDIR}
1528 sysconfdir: ${EXPANDED_SYSCONFDIR}
1529 localstatedir: ${EXPANDED_LOCALSTATEDIR}
1530 datadir: ${EXPANDED_DATADIR}
1531 source code location: ${srcdir}
1534 cppflags: ${CPPFLAGS}
1535 cxxflags: ${CXXFLAGS}
1536 64-bit int: ${DBUS_INT64_TYPE}
1537 32-bit int: ${DBUS_INT32_TYPE}
1538 16-bit int: ${DBUS_INT16_TYPE}
1539 Doxygen: ${DOXYGEN:-not found}
1540 xmlto: ${XMLTO:-not found}
1541 man2html: ${MAN2HTML:-not found}"
1544 Maintainer mode: ${USE_MAINTAINER_MODE}
1545 gcc coverage profiling: ${enable_compiler_coverage}
1546 Building unit tests: ${enable_tests}
1547 Building verbose mode: ${enable_verbose_mode}
1548 Building assertions: ${enable_asserts}
1549 Building checks: ${enable_checks}
1550 Building SELinux support: ${have_selinux}
1551 Building inotify support: ${have_inotify}
1552 Building dnotify support: ${have_dnotify}
1553 Building kqueue support: ${have_kqueue}
1554 Building X11 code: ${enable_x11}
1555 Building Doxygen docs: ${enable_doxygen_docs}
1556 Building XML docs: ${enable_xml_docs}
1557 Building cache support: ${enable_userdb_cache}
1558 Building launchd support: ${have_launchd}
1559 Using XML parser: ${with_xml}
1560 Init scripts style: ${with_init_scripts}
1561 Abstract socket names: ${ac_cv_have_abstract_sockets}
1562 System bus socket: ${DBUS_SYSTEM_SOCKET}
1563 System bus address: ${DBUS_SYSTEM_BUS_DEFAULT_ADDRESS}
1564 System bus PID file: ${DBUS_SYSTEM_PID_FILE}
1565 Session bus address: ${DBUS_SESSION_BUS_DEFAULT_ADDRESS}
1566 Console auth dir: ${DBUS_CONSOLE_AUTH_DIR}
1567 Console owner file: ${have_console_owner_file}
1568 Console owner file path: ${DBUS_CONSOLE_OWNER_FILE}
1569 System bus user: ${DBUS_USER}
1570 Session bus services dir: ${EXPANDED_DATADIR}/dbus-1/services
1571 'make check' socket dir: ${TEST_SOCKET_DIR}
1573 if test x$have_launchd = xyes; then
1574 echo " launchd agent dir: ${LAUNCHD_AGENT_DIR}"
1578 if test x$enable_tests = xyes; then
1579 echo "NOTE: building with unit tests increases the size of the installed library and renders it insecure."
1581 if test x$enable_tests = xyes -a x$enable_asserts = xno; then
1582 echo "NOTE: building with unit tests but without assertions means tests may not properly report failures (this configuration is only useful when doing something like profiling the tests)"
1584 if test x$enable_compiler_coverage = xyes; then
1585 echo "NOTE: building with coverage profiling is definitely for developers only."
1587 if test x$enable_verbose_mode = xyes; then
1588 echo "NOTE: building with verbose mode increases library size, may slightly increase security risk, and decreases performance."
1590 if test x$enable_asserts = xyes; then
1591 echo "NOTE: building with assertions increases library size and decreases performance."
1593 if test x$enable_checks = xno; then
1594 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."
1596 if test x$dbus_use_libxml = xtrue; then
1598 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)."