4 m4_define([dbus_major_version], [1])
5 m4_define([dbus_minor_version], [4])
6 m4_define([dbus_micro_version], [5])
7 m4_define([dbus_version],
8 [dbus_major_version.dbus_minor_version.dbus_micro_version])
9 AC_INIT(dbus, [dbus_version])
15 AC_CONFIG_MACRO_DIR([m4])
17 AM_INIT_AUTOMAKE([1.9 tar-ustar -Wno-portability])
18 AM_CONFIG_HEADER(config.h)
21 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
23 GETTEXT_PACKAGE=dbus-1
24 AC_SUBST(GETTEXT_PACKAGE)
25 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[The name of the gettext domain])
27 ## must come before we use the $USE_MAINTAINER_MODE variable later
30 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
32 AC_DEFINE_UNQUOTED(DBUS_DAEMON_NAME,"dbus-daemon",[Name of executable])
34 # libtool versioning - this applies to libdbus
36 # See http://sources.redhat.com/autobook/autobook/autobook_91.html#SEC91 for details
39 ## increment if the interface has additions, changes, removals.
42 ## increment any time the source changes; set to
43 ## 0 if you increment CURRENT
46 ## increment if any interfaces have been added; set to 0
47 ## if any interfaces have been changed or removed. removal has
48 ## precedence over adding, so set to 0 if both happened.
55 DBUS_MAJOR_VERSION=dbus_major_version
56 DBUS_MINOR_VERSION=dbus_minor_version
57 DBUS_MICRO_VERSION=dbus_micro_version
58 DBUS_VERSION=dbus_major_version.dbus_minor_version.dbus_micro_version
60 AC_SUBST(DBUS_MAJOR_VERSION)
61 AC_SUBST(DBUS_MINOR_VERSION)
62 AC_SUBST(DBUS_MICRO_VERSION)
63 AC_SUBST(DBUS_VERSION)
68 AC_USE_SYSTEM_EXTENSIONS
75 COMPILER_OPTIMISATIONS
77 # Set some internal variables depending on the platform for later use.
98 # Special defines for certain platforms
99 if test "$dbus_win" = yes; then
100 AC_DEFINE(DBUS_WIN,1,[Defined if we run on a W32 API based system])
101 BUILD_TIMESTAMP=`date --iso-8601=minutes`
102 AC_SUBST(BUILD_TIMESTAMP)
103 # Assume DBUS_VERSION is always three numbers
104 BUILD_FILEVERSION=`echo "$DBUS_VERSION" | sed -e 's/\./,/g'`,0
105 AC_SUBST(BUILD_FILEVERSION)
106 AC_CHECK_TOOL(WINDRES, windres, no)
107 if test "$WINDRES" = no; then
108 AC_MSG_ERROR([*** Could not find an implementation of windres in your PATH.])
110 if test "$dbus_wince" = yes; then
111 AC_DEFINE(DBUS_WINCE,1,[Defined if we run on a W32 CE API based system])
112 AC_DEFINE(_WIN32_WCE, 0x0502, [Defined to get newer W32 CE APIs])
115 AC_DEFINE(DBUS_UNIX,1,[Defined if we run on a Unix-based system])
117 if test "$dbus_cygwin" = yes; then
118 AC_DEFINE(DBUS_CYGWIN,1,[Defined if we run on a cygwin API based system])
121 AM_CONDITIONAL(DBUS_WIN, test "$dbus_win" = yes)
122 AM_CONDITIONAL(DBUS_WINCE, test "$dbus_wince" = yes)
123 AM_CONDITIONAL(DBUS_UNIX, test "$dbus_unix" = yes)
124 AM_CONDITIONAL(DBUS_CYGWIN, test "$dbus_cygwin" = yes)
126 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)
127 AC_ARG_ENABLE(ansi, AS_HELP_STRING([--enable-ansi],[enable -ansi -pedantic gcc flags]),enable_ansi=$enableval,enable_ansi=no)
128 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)
129 AC_ARG_ENABLE(asserts, AS_HELP_STRING([--enable-asserts],[include assertion checks]),enable_asserts=$enableval,enable_asserts=$USE_MAINTAINER_MODE)
130 AC_ARG_ENABLE(checks, AS_HELP_STRING([--enable-checks],[include sanity checks on public API]),enable_checks=$enableval,enable_checks=yes)
131 AC_ARG_ENABLE(xml-docs, AS_HELP_STRING([--enable-xml-docs],[build XML documentation (requires xmlto)]),enable_xml_docs=$enableval,enable_xml_docs=auto)
132 AC_ARG_ENABLE(doxygen-docs, AS_HELP_STRING([--enable-doxygen-docs],[build DOXYGEN documentation (requires Doxygen)]),enable_doxygen_docs=$enableval,enable_doxygen_docs=auto)
133 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)
134 AC_ARG_ENABLE(selinux, AS_HELP_STRING([--enable-selinux],[build with SELinux support]),enable_selinux=$enableval,enable_selinux=auto)
135 AC_ARG_ENABLE(libaudit,AS_HELP_STRING([--enable-libaudit],[build audit daemon support for SELinux]),enable_libaudit=$enableval,enable_libaudit=auto)
136 AC_ARG_ENABLE(dnotify, AS_HELP_STRING([--enable-dnotify],[build with dnotify support (linux only)]),enable_dnotify=$enableval,enable_dnotify=auto)
137 AC_ARG_ENABLE(inotify, AS_HELP_STRING([--enable-inotify],[build with inotify support (linux only)]),enable_inotify=$enableval,enable_inotify=auto)
138 AC_ARG_ENABLE(kqueue, AS_HELP_STRING([--enable-kqueue],[build with kqueue support]),enable_kqueue=$enableval,enable_kqueue=auto)
139 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)
140 AC_ARG_ENABLE(userdb-cache, AS_HELP_STRING([--enable-userdb-cache],[build with userdb-cache support]),enable_userdb_cache=$enableval,enable_userdb_cache=yes)
141 AC_ARG_ENABLE(launchd, AS_HELP_STRING([--enable-launchd],[build with launchd auto-launch support]),enable_launchd=$enableval,enable_launchd=auto)
143 AC_ARG_WITH(xml, AS_HELP_STRING([--with-xml=[libxml/expat]],[XML library to use (libxml may be named libxml2 on some systems)]))
144 AC_ARG_WITH(init-scripts, AS_HELP_STRING([--with-init-scripts=[redhat]],[Style of init scripts to install]))
145 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]))
146 AC_ARG_WITH(test-socket-dir, AS_HELP_STRING([--with-test-socket-dir=[dirname]],[Where to put sockets for make check]))
147 AC_ARG_WITH(system-pid-file, AS_HELP_STRING([--with-system-pid-file=[pidfile]],[PID file for systemwide daemon]))
148 AC_ARG_WITH(system-socket, AS_HELP_STRING([--with-system-socket=[filename]],[UNIX domain socket for systemwide daemon]))
149 AC_ARG_WITH(console-auth-dir, AS_HELP_STRING([--with-console-auth-dir=[dirname]],[directory to check for console ownerhip]))
150 AC_ARG_WITH(console-owner-file, AS_HELP_STRING([--with-console-owner-file=[filename]],[file whose owner determines current console owner]))
151 AC_ARG_WITH(launchd-agent-dir, AS_HELP_STRING([--with-launchd-agent-dir=[dirname]],[directory to put the launchd agent (default: /Library/LaunchAgents)]))
152 AC_ARG_WITH(dbus_user, AS_HELP_STRING([--with-dbus-user=<user>],[User for running the DBUS daemon (messagebus)]))
153 AC_ARG_WITH(dbus_daemondir, AS_HELP_STRING([--with-dbus-daemondir=[dirname]],[Directory for installing the DBUS daemon]))
155 dnl DBUS_BUILD_TESTS controls unit tests built in to .c files
156 dnl and also some stuff in the test/ subdir
158 dnl In principle we could have separate switches for the embedded
159 dnl test code in the libraries (which cause bloat and possible security holes)
160 dnl and the standalone GLib regression tests, but not right now.
161 AM_CONDITIONAL(DBUS_BUILD_TESTS, test x$enable_tests = xyes)
162 if test x$enable_tests = xyes; then
163 AC_DEFINE(DBUS_BUILD_TESTS,1,[Build test code])
166 AC_ARG_ENABLE([standalone-tests],
167 AS_HELP_STRING([--enable-standalone-tests],
168 [enable standalone regression tests (GLib 2.16 required)]),
169 [], [enable_standalone_tests=yes])
171 if test x$enable_standalone_tests = xyes; then
172 PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.16],
173 [], [AC_MSG_ERROR([The standalone regression tests require GLib])])
176 if test x$enable_verbose_mode = xyes; then
177 AC_DEFINE(DBUS_ENABLE_VERBOSE_MODE,1,[Support a verbose mode])
180 if test x$enable_asserts = xno; then
181 AC_DEFINE(DBUS_DISABLE_ASSERT,1,[Disable assertion checking])
182 AC_DEFINE(G_DISABLE_ASSERT,1,[Disable GLib assertion macros])
185 # -rdynamic is needed for glibc's backtrace_symbols to work.
186 # No clue how much overhead this adds, but it's useful
187 # to do this on any assertion failure,
188 # so for now it's enabled anytime asserts are (currently not
189 # in production builds).
191 # To get -rdynamic you pass -export-dynamic to libtool.
192 AC_DEFINE(DBUS_BUILT_R_DYNAMIC,1,[whether -export-dynamic was passed to libtool])
193 R_DYNAMIC_LDFLAG=-export-dynamic
195 AC_SUBST(R_DYNAMIC_LDFLAG)
197 if test x$enable_checks = xno; then
198 AC_DEFINE(DBUS_DISABLE_CHECKS,1,[Disable public API sanity checking])
199 AC_DEFINE(G_DISABLE_CHECKS,1,[Disable GLib public API sanity checking])
202 if test x$enable_userdb_cache = xyes; then
203 AC_DEFINE(DBUS_ENABLE_USERDB_CACHE,1,[Build with caching of user data])
206 if test x$enable_compiler_coverage = xyes; then
207 ## so that config.h changes when you toggle gcov support
208 AC_DEFINE_UNQUOTED(DBUS_GCOV_ENABLED, 1, [Defined if gcov is enabled to force a rebuild due to config.h changing])
211 # glibc21.m4 serial 3
212 dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
213 dnl This file is free software; the Free Software Foundation
214 dnl gives unlimited permission to copy and/or distribute it,
215 dnl with or without modifications, as long as this notice is preserved.
217 # Test for the GNU C Library, version 2.1 or newer.
220 AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
221 ac_cv_gnu_library_2_1,
222 [AC_EGREP_CPP([Lucky GNU user],
224 #include <features.h>
225 #ifdef __GNU_LIBRARY__
226 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
231 ac_cv_gnu_library_2_1=yes,
232 ac_cv_gnu_library_2_1=no)
238 AC_CHECK_SIZEOF(char)
239 AC_CHECK_SIZEOF(short)
240 AC_CHECK_SIZEOF(long)
242 AC_CHECK_SIZEOF(void *)
243 AC_CHECK_SIZEOF(long long)
244 AC_CHECK_SIZEOF(__int64)
246 ### See what our 64 bit type is called
247 AC_MSG_CHECKING([64-bit integer type])
252 dbusint64_constant='(val)'
253 dbusuint64_constant='(val)'
254 dbusint64_printf_modifier='""'
258 dbusint64_constant='(val##L)'
259 dbusuint64_constant='(val##UL)'
260 dbusint64_printf_modifier='"l"'
262 $ac_cv_sizeof_long_long)
263 dbusint64='long long'
264 dbusint64_constant='(val##LL)'
265 dbusuint64_constant='(val##ULL)'
266 # Ideally we discover what the format is, but this is
267 # only used in verbose mode, so eh...
268 if test x"$ac_cv_gnu_library_2_1" = xyes; then
269 dbusint64_printf_modifier='"ll"'
272 $ac_cv_sizeof___int64)
274 dbusint64_constant='(val##i64)'
275 dbusuint64_constant='(val##ui64)'
277 if test x"$ac_cv_gnu_library_2_1" = xyes; then
278 dbusint64_printf_modifier='"ll"'
283 if test -z "$dbusint64" ; then
284 DBUS_INT64_TYPE="no_int64_type_detected"
287 DBUS_UINT64_CONSTANT=
288 AC_MSG_RESULT([none found])
290 DBUS_INT64_TYPE="$dbusint64"
292 DBUS_INT64_CONSTANT="$dbusint64_constant"
293 DBUS_UINT64_CONSTANT="$dbusuint64_constant"
294 if test x"$dbusint64_printf_modifier" != x; then
295 AC_DEFINE_UNQUOTED(DBUS_INT64_PRINTF_MODIFIER, [$dbusint64_printf_modifier], [Define to printf modifier for 64 bit integer type])
297 AC_MSG_RESULT($DBUS_INT64_TYPE)
300 AC_SUBST(DBUS_INT64_TYPE)
301 AC_SUBST(DBUS_INT64_CONSTANT)
302 AC_SUBST(DBUS_UINT64_CONSTANT)
303 AC_SUBST(DBUS_HAVE_INT64)
305 ### see what 32-bit int is called
306 AC_MSG_CHECKING([32-bit integer type])
320 if test -z "$dbusint32" ; then
321 DBUS_INT32_TYPE="no_int32_type_detected"
322 AC_MSG_ERROR([No 32-bit integer type found])
324 DBUS_INT32_TYPE="$dbusint32"
325 AC_MSG_RESULT($DBUS_INT32_TYPE)
328 AC_SUBST(DBUS_INT32_TYPE)
330 ### see what 16-bit int is called
331 AC_MSG_CHECKING([16-bit integer type])
342 if test -z "$dbusint16" ; then
343 DBUS_INT16_TYPE="no_int16_type_detected"
344 AC_MSG_ERROR([No 16-bit integer type found])
346 DBUS_INT16_TYPE="$dbusint16"
347 AC_MSG_RESULT($DBUS_INT16_TYPE)
350 AC_SUBST(DBUS_INT16_TYPE)
355 # check at compile-time, so that it is possible to build universal
356 # (with multiple architectures at once on the compile line)
357 AH_VERBATIM([WORDS_BIGENDIAN_DARWIN], [
358 /* Use the compiler-provided endianness defines to allow universal compiling. */
359 #if defined(__BIG_ENDIAN__)
360 #define WORDS_BIGENDIAN 1
369 dnl **********************************
370 dnl *** va_copy checks (from GLib) ***
371 dnl **********************************
372 dnl we currently check for all three va_copy possibilities, so we get
373 dnl all results in config.log for bug reports.
374 AC_CACHE_CHECK([for an implementation of va_copy()],dbus_cv_va_copy,[
375 AC_LINK_IFELSE([#include <stdarg.h>
377 static void f (int i, ...) {
378 va_list args1, args2;
380 va_copy (args2, args1);
381 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
383 va_end (args1); va_end (args2);
389 [dbus_cv_va_copy=yes],
390 [dbus_cv_va_copy=no])
392 AC_CACHE_CHECK([for an implementation of __va_copy()],dbus_cv___va_copy,[
393 AC_LINK_IFELSE([#include <stdarg.h>
395 static void f (int i, ...) {
396 va_list args1, args2;
398 __va_copy (args2, args1);
399 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
401 va_end (args1); va_end (args2);
407 [dbus_cv___va_copy=yes],
408 [dbus_cv___va_copy=no])
411 if test "x$dbus_cv_va_copy" = "xyes"; then
412 dbus_va_copy_func=va_copy
413 else if test "x$dbus_cv___va_copy" = "xyes"; then
414 dbus_va_copy_func=__va_copy
418 if test -n "$dbus_va_copy_func"; then
419 AC_DEFINE_UNQUOTED(DBUS_VA_COPY,$dbus_va_copy_func,[A 'va_copy' style function])
423 AC_CACHE_CHECK([whether va_lists can be copied by value],
425 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
431 static void f (int i, ...) {
432 va_list args1, args2;
435 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
437 va_end (args1); va_end (args2);
444 [dbus_cv_va_val_copy=yes],
445 [dbus_cv_va_val_copy=no],
446 [dbus_cv_va_val_copy=yes])
450 if test "x$dbus_cv_va_val_copy" = "xno"; then
451 AC_DEFINE(DBUS_VA_COPY_AS_ARRAY,1, ['va_lists' cannot be copies as values])
457 AC_CACHE_CHECK([whether $CC knows __sync_sub_and_fetch()],
458 dbus_cv_sync_sub_and_fetch,
460 AC_LANG_PROGRAM([], [[int a = 4; int b = __sync_sub_and_fetch(&a, 4); exit(b); ]]),
461 [dbus_cv_sync_sub_and_fetch=yes],
462 [dbus_cv_sync_sub_and_fetch=no])
465 if test "x$dbus_cv_sync_sub_and_fetch" = "xyes" ; then
471 AC_DEFINE_UNQUOTED([DBUS_USE_SYNC], [$have_sync], [Use the gcc __sync extension])
473 #### Various functions
474 AC_SEARCH_LIBS(socket,[socket network])
475 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
477 AC_CHECK_FUNCS(vsnprintf vasprintf nanosleep usleep setenv clearenv unsetenv socketpair getgrouplist fpathconf setrlimit poll setlocale localeconv strtoll strtoull)
479 #### Check for broken poll; taken from Glib's configure
481 AC_MSG_CHECKING([for broken poll])
482 AC_RUN_IFELSE([AC_LANG_SOURCE([[
486 #ifdef HAVE_SYS_POLL_H
487 #include <sys/poll.h>
490 struct pollfd fds[1];
492 fd = open("/dev/null", 1);
494 fds[0].events = POLLIN;
496 if (poll(fds, 1, 0) < 0 || (fds[0].revents & POLLNVAL) != 0) {
497 exit(1); /* Does not work for devices -- fail */
503 AC_DEFINE(BROKEN_POLL,1,[poll doesn't work on devices])],
504 [broken_poll="no (cross compiling)"])
505 AC_MSG_RESULT($broken_poll)
507 AC_MSG_CHECKING(for dirfd)
509 #include <sys/types.h>
517 dbus_have_dirfd=yes, dbus_have_dirfd=no)
518 AC_MSG_RESULT($dbus_have_dirfd)
519 if test "$dbus_have_dirfd" = yes; then
520 AC_DEFINE(HAVE_DIRFD,1,[Have dirfd function])
522 AC_MSG_CHECKING(for DIR *dirp->dd_fd)
524 #include <sys/types.h>
533 dbus_have_ddfd=yes, dbus_have_ddfd=no)
534 AC_MSG_RESULT($dbus_have_ddfd)
535 if test "$dbus_have_ddfd" = yes; then
536 AC_DEFINE(HAVE_DDFD,1,[Have the ddfd member of DIR])
540 AC_CHECK_HEADERS(sys/resource.h)
542 AC_CHECK_HEADERS(dirent.h)
544 AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)])
546 AC_CHECK_HEADERS(errno.h)
548 AC_CHECK_HEADERS(signal.h)
550 AC_CHECK_HEADERS(locale.h)
552 AC_CHECK_HEADERS(byteswap.h)
554 AC_CHECK_HEADERS(unistd.h)
556 AC_CHECK_HEADERS(ws2tcpip.h)
558 AC_CHECK_HEADERS(wspiapi.h)
560 # Add -D_POSIX_PTHREAD_SEMANTICS if on Solaris
564 CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS" ;;
567 # checking for a posix version of getpwnam_r
568 # if we are cross compiling and can not run the test
569 # assume getpwnam_r is the posix version
570 # it is up to the person cross compiling to change
571 # this behavior if desired
573 AC_CACHE_CHECK([for posix getpwnam_r],
574 ac_cv_func_posix_getpwnam_r,
575 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
582 struct passwd pwd, *pwptr = &pwd;
585 error = getpwnam_r ("", &pwd, buffer,
586 sizeof (buffer), &pwptr);
587 return (error < 0 && errno == ENOSYS)
590 [ac_cv_func_posix_getpwnam_r=yes],
591 [ac_cv_func_posix_getpwnam_r=no],
592 [ac_cv_func_posix_getpwnam_r=yes]
596 if test "$ac_cv_func_posix_getpwnam_r" = yes; then
597 AC_DEFINE(HAVE_POSIX_GETPWNAM_R,1,
598 [Have POSIX function getpwnam_r])
600 AC_CACHE_CHECK([for nonposix getpwnam_r],
601 ac_cv_func_nonposix_getpwnam_r,
602 [AC_TRY_LINK([#include <pwd.h>],
605 getpwnam_r ("", &pwd, buffer,
607 [ac_cv_func_nonposix_getpwnam_r=yes],
608 [ac_cv_func_nonposix_getpwnam_r=no])])
609 if test "$ac_cv_func_nonposix_getpwnam_r" = yes; then
610 AC_DEFINE(HAVE_NONPOSIX_GETPWNAM_R,1,
611 [Have non-POSIX function getpwnam_r])
615 dnl check for socklen_t
616 AC_MSG_CHECKING(whether socklen_t is defined)
618 #include <sys/types.h>
619 #include <sys/socket.h>
624 ],dbus_have_socklen_t=yes,dbus_have_socklen_t=no)
625 AC_MSG_RESULT($dbus_have_socklen_t)
627 if test "x$dbus_have_socklen_t" = "xyes"; then
628 AC_DEFINE(HAVE_SOCKLEN_T,1,[Have socklen_t type])
631 dnl check for writev header and writev function so we're
632 dnl good to go if HAVE_WRITEV gets defined.
633 AC_CHECK_HEADERS(sys/uio.h, [AC_CHECK_FUNCS(writev)])
635 dnl needed on darwin for NAME_MAX
636 AC_CHECK_HEADERS(sys/syslimits.h)
638 dnl Make it easy to check if we have MSG_NOSIGNAL without actually having to include sys/socket.h
639 AC_CHECK_DECLS([MSG_NOSIGNAL], [], [], [[ #include <sys/socket.h> ]])
641 dnl check for flavours of varargs macros (test from GLib)
642 AC_MSG_CHECKING(for ISO C99 varargs macros in C)
644 int a(int p1, int p2, int p3);
645 #define call_a(...) a(1,__VA_ARGS__)
647 ],dbus_have_iso_c_varargs=yes,dbus_have_iso_c_varargs=no)
648 AC_MSG_RESULT($dbus_have_iso_c_varargs)
650 AC_MSG_CHECKING(for GNUC varargs macros)
652 int a(int p1, int p2, int p3);
653 #define call_a(params...) a(1,params)
655 ],dbus_have_gnuc_varargs=yes,dbus_have_gnuc_varargs=no)
656 AC_MSG_RESULT($dbus_have_gnuc_varargs)
658 dnl Output varargs tests
659 if test x$dbus_have_iso_c_varargs = xyes; then
660 AC_DEFINE(HAVE_ISO_VARARGS,1,[Have ISO C99 varargs macros])
662 if test x$dbus_have_gnuc_varargs = xyes; then
663 AC_DEFINE(HAVE_GNUC_VARARGS,1,[Have GNU-style varargs macros])
666 dnl Check for various credentials.
667 AC_MSG_CHECKING(for struct cmsgcred)
669 #include <sys/types.h>
670 #include <sys/socket.h>
672 struct cmsgcred cred;
675 ],dbus_have_struct_cmsgcred=yes,dbus_have_struct_cmsgcred=no)
676 AC_MSG_RESULT($dbus_have_struct_cmsgcred)
678 if test x$dbus_have_struct_cmsgcred = xyes; then
679 AC_DEFINE(HAVE_CMSGCRED,1,[Have cmsgcred structure])
682 AC_CHECK_FUNCS(getpeerucred getpeereid)
684 AC_CHECK_FUNCS(pipe2 accept4)
686 #### Abstract sockets
688 if test x$enable_abstract_sockets = xauto; then
691 AC_CACHE_CHECK([abstract socket namespace],
692 ac_cv_have_abstract_sockets,
693 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
695 #include <sys/types.h>
699 #include <sys/socket.h>
706 struct sockaddr_un addr;
708 listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
712 fprintf (stderr, "socket() failed: %s\n", strerror (errno));
716 memset (&addr, '\0', sizeof (addr));
717 addr.sun_family = AF_UNIX;
718 strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
719 /* SUN_LEN uses strlen() so need to calculate it before adding \0 at the
722 slen = SUN_LEN(&addr);
723 addr.sun_path[0] = '\0'; /* this is what makes it abstract */
725 if (bind (listen_fd, (struct sockaddr*) &addr, slen) < 0)
727 fprintf (stderr, "Abstract socket namespace bind() failed: %s\n",
734 [ac_cv_have_abstract_sockets=yes],
735 [ac_cv_have_abstract_sockets=no],
737 ac_cv_have_abstract_sockets=no
741 if test x$warn_on_xcompile = xyes ; then
742 AC_MSG_WARN([Cannot check for abstract sockets when cross-compiling, please use --enable-abstract-sockets])
747 if test x$enable_abstract_sockets = xyes; then
748 if test x$ac_cv_have_abstract_sockets = xno; then
749 AC_MSG_ERROR([Abstract sockets explicitly required, and support not detected.])
753 if test x$enable_abstract_sockets = xno; then
754 ac_cv_have_abstract_sockets=no;
757 if test x$ac_cv_have_abstract_sockets = xyes ; then
758 DBUS_PATH_OR_ABSTRACT=abstract
759 AC_DEFINE(HAVE_ABSTRACT_SOCKETS,1,[Have abstract socket namespace])
761 DBUS_PATH_OR_ABSTRACT=path
764 # this is used in addresses to prefer abstract, e.g.
765 # unix:path=/foo or unix:abstract=/foo
766 AC_SUBST(DBUS_PATH_OR_ABSTRACT)
770 #### Sort out XML library
773 AC_CHECK_LIB(expat, XML_ParserCreate_MM,
774 [ AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false) ],
777 # see what we want to use
778 dbus_use_libxml=false
780 if test x$with_xml = xexpat; then
781 if ! $have_expat ; then
782 AC_MSG_ERROR([Explicitly requested expat but expat not found])
785 elif test x$with_xml = xlibxml; then
786 PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= 2.6.0, have_libxml=true, have_libxml=false)
787 if ! $have_libxml ; then
788 AC_MSG_ERROR([Explicitly requested libxml but libxml not found])
792 ### expat is the default because libxml can't currently survive
793 ### our brutal OOM-handling unit test setup.
794 ### http://bugzilla.gnome.org/show_bug.cgi?id=109368
795 if test x$have_expat = xfalse; then
796 AC_MSG_ERROR([Could not find expat.h, check config.log for failed attempts])
798 ### By default, only use Expat since it's tested and known to work. If you're a
799 ### general-purpose OS vendor, please don't enable libxml. For embedded use
800 ### if your OS is built around libxml, that's another case.
804 AM_CONDITIONAL(DBUS_USE_EXPAT, $dbus_use_expat)
805 AM_CONDITIONAL(DBUS_USE_LIBXML, $dbus_use_libxml)
807 if $dbus_use_expat; then
811 if $dbus_use_libxml; then
812 XML_LIBS=$LIBXML_LIBS
813 XML_CFLAGS=$LIBXML_CFLAGS
816 # Thread lib detection
817 AC_CHECK_FUNC(pthread_cond_timedwait,[AC_CHECK_LIB(pthread,pthread_cond_timedwait,
818 [THREAD_LIBS="-lpthread"])])
820 LIBS="$LIBS $THREAD_LIBS"
821 AC_CHECK_FUNC(pthread_condattr_setclock,have_pthread_condattr_setclock=true,have_pthread_condattr_setclock=false)
822 if test x$have_pthread_condattr_setclock = xtrue; then
823 AC_SEARCH_LIBS([clock_getres],[rt],[THREAD_LIBS="$THREAD_LIBS -lrt"])
824 AC_MSG_CHECKING([for CLOCK_MONOTONIC])
825 AC_TRY_COMPILE([#include <time.h>
828 struct timespec monotonic_timer;
829 pthread_condattr_t attr;
830 pthread_condattr_init (&attr);
831 pthread_condattr_setclock (&attr, CLOCK_MONOTONIC);
832 clock_getres (CLOCK_MONOTONIC,&monotonic_timer);
833 ], have_clock_monotonic=true, have_clock_monotonic=false)
834 if test x$have_clock_monotonic = xtrue; then
835 AC_MSG_RESULT([found])
836 AC_DEFINE(HAVE_MONOTONIC_CLOCK, 1, [Define if we have CLOCK_MONOTONIC])
838 AC_MSG_RESULT([not found])
844 if test x$enable_selinux = xno ; then
847 # See if we have SELinux library
848 AC_CHECK_LIB(selinux, is_selinux_enabled,
849 have_selinux=yes, have_selinux=no)
851 # see if we have the SELinux header with the new D-Bus stuff in it
852 if test x$have_selinux = xyes ; then
853 AC_MSG_CHECKING([for DBUS Flask permissions in selinux/av_permissions.h])
854 AC_TRY_COMPILE([#include <selinux/av_permissions.h>],
855 [#ifdef DBUS__ACQUIRE_SVC return 0;
857 #error DBUS__ACQUIRE_SVC not defined
859 have_selinux=yes, have_selinux=no)
860 AC_MSG_RESULT($have_selinux)
863 if test x$enable_selinux = xauto ; then
864 if test x$have_selinux = xno ; then
865 AC_MSG_WARN([Sufficiently new SELinux library not found])
868 if test x$have_selinux = xno ; then
869 AC_MSG_ERROR([SElinux explicitly required, and SELinux library not found])
874 AM_CONDITIONAL(HAVE_SELINUX, test x$have_selinux = xyes)
876 if test x$have_selinux = xyes ; then
877 # the selinux code creates threads
878 # which requires libpthread even on linux
879 AC_CHECK_FUNC(pthread_create,,[AC_CHECK_LIB(pthread,pthread_create,
880 [SELINUX_THREAD_LIBS="-lpthread"])])
882 SELINUX_LIBS="-lselinux $SELINUX_THREAD_LIBS"
883 AC_DEFINE(HAVE_SELINUX,1,[SELinux support])
889 if test x$enable_inotify = xno ; then
892 AC_CHECK_HEADERS(sys/inotify.h, have_inotify=yes, have_inotify=no)
895 dnl check if inotify backend is enabled
896 if test x$have_inotify = xyes; then
897 AC_DEFINE(DBUS_BUS_ENABLE_INOTIFY,1,[Use inotify])
898 AC_CHECK_FUNCS(inotify_init1)
901 AM_CONDITIONAL(DBUS_BUS_ENABLE_INOTIFY, test x$have_inotify = xyes)
904 if test x$enable_dnotify = xno ; then
907 if test x$have_inotify = xno -a x$host_os = xlinux-gnu -o x$host_os = xlinux; then
914 dnl check if dnotify backend is enabled
915 if test x$have_dnotify = xyes; then
916 AC_DEFINE(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX,1,[Use dnotify on Linux])
919 AM_CONDITIONAL(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX, test x$have_dnotify = xyes)
922 if test x$enable_kqueue = xno ; then
926 AC_CHECK_HEADER(sys/event.h, , have_kqueue=no)
927 AC_CHECK_FUNC(kqueue, , have_kqueue=no)
929 if test x$enable_kqueue = xyes -a x$have_kqueue = xno; then
930 AC_MSG_ERROR(kqueue support explicitly enabled but not available)
934 dnl check if kqueue backend is enabled
935 if test x$have_kqueue = xyes; then
936 AC_DEFINE(DBUS_BUS_ENABLE_KQUEUE,1,[Use kqueue])
939 AM_CONDITIONAL(DBUS_BUS_ENABLE_KQUEUE, test x$have_kqueue = xyes)
942 if test x$enable_launchd = xno ; then
946 AC_CHECK_HEADER([launch.h], , have_launchd=no)
947 AC_PATH_PROG([LAUNCHCTL], [launchctl])
948 if test "x$LAUNCHCTL" = "x"; then
952 if test x$enable_launchd = xyes && test x$have_launchd = xno ; then
953 AC_MSG_ERROR([launchd support explicitly enabled but not available])
957 dnl check if launchd is enabled
958 if test x$have_launchd = xyes; then
959 AC_DEFINE(DBUS_ENABLE_LAUNCHD,1,[Use launchd autolaunch])
962 AM_CONDITIONAL(DBUS_ENABLE_LAUNCHD, test x$have_launchd = xyes)
964 #### Directory to place launchd agent file
965 if test "x$with_launchd_agent_dir" = "x"; then
966 LAUNCHD_AGENT_DIR="/Library/LaunchAgents"
968 LAUNCHD_AGENT_DIR="$with_launchd_agent_dir"
971 AC_SUBST(LAUNCHD_AGENT_DIR)
973 dnl console owner file
974 if test x$enable_console_owner_file = xno ; then
975 have_console_owner_file=no;
979 have_console_owner_file=yes;
980 AC_DEFINE(HAVE_CONSOLE_OWNER_FILE,1,[Have console owner file])
983 have_console_owner_file=no;;
987 AM_CONDITIONAL(HAVE_CONSOLE_OWNER_FILE, test x$have_console_owner_file = xyes)
990 if test x$enable_libaudit = xno ; then
993 # See if we have audit daemon & capabilities library
994 AC_CHECK_LIB(audit, audit_log_user_avc_message,
995 have_libaudit=yes, have_libaudit=no)
996 if test x$have_libaudit = xyes ; then
997 AC_CHECK_LIB(cap-ng, capng_clear,
998 have_libaudit=yes, have_libaudit=no)
1002 AM_CONDITIONAL(HAVE_LIBAUDIT, test x$have_libaudit = xyes)
1004 if test x$have_libaudit = xyes ; then
1005 SELINUX_LIBS="$SELINUX_LIBS -laudit -lcap-ng"
1006 AC_DEFINE(HAVE_LIBAUDIT,1,[audit daemon SELinux support])
1010 AC_MSG_CHECKING(for ADT API)
1011 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1012 #include <bsm/adt.h>
1013 adt_user_context = ADT_USER;
1014 ]], [[]])], [ check_adt_audit=yes ], [ check_adt_audit=no ])
1016 if test ${check_adt_audit} = yes
1018 AC_DEFINE([HAVE_ADT], [], [Adt audit API])
1026 # Check for SCM_RIGHTS
1027 AC_MSG_CHECKING([for SCM_RIGHTS])
1028 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1029 #include <sys/socket.h>
1031 static int x = SCM_RIGHTS;
1033 [ AC_MSG_RESULT([supported])
1034 AC_DEFINE([HAVE_UNIX_FD_PASSING], [1], [Supports sending UNIX file descriptors]) ],
1035 [ AC_MSG_RESULT([not supported]) ])
1038 if test x$dbus_win = xyes ; then
1039 if test x$dbus_wince = xyes ; then
1040 NETWORK_libs="-lws2"
1042 NETWORK_libs="-lws2_32"
1046 #### Set up final flags
1048 DBUS_CLIENT_LIBS="$THREAD_LIBS $NETWORK_libs"
1049 AC_SUBST(DBUS_CLIENT_CFLAGS)
1050 AC_SUBST(DBUS_CLIENT_LIBS)
1052 DBUS_BUS_CFLAGS="$XML_CFLAGS"
1053 DBUS_BUS_LIBS="$XML_LIBS $SELINUX_LIBS $THREAD_LIBS $ADT_LIBS $NETWORK_libs"
1054 AC_SUBST(DBUS_BUS_CFLAGS)
1055 AC_SUBST(DBUS_BUS_LIBS)
1057 DBUS_LAUNCHER_CFLAGS="$XML_CFLAGS"
1058 DBUS_LAUNCHER_LIBS="$XML_LIBS $THREAD_LIBS $NETWORK_libs"
1059 AC_SUBST(DBUS_LAUNCHER_CFLAGS)
1060 AC_SUBST(DBUS_LAUNCHER_LIBS)
1063 DBUS_TEST_LIBS="$THREAD_LIBS $NETWORK_libs"
1064 AC_SUBST(DBUS_TEST_CFLAGS)
1065 AC_SUBST(DBUS_TEST_LIBS)
1068 if test x$dbus_win = xyes ; then
1073 ## for now enable_x11 just tracks have_x11,
1074 ## there's no --enable-x11
1075 if test x$no_x = xyes ; then
1083 if test x$enable_x11 = xyes ; then
1084 AC_DEFINE(DBUS_BUILD_X11,1,[Build X11-dependent code])
1085 DBUS_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
1086 DBUS_X_CFLAGS="$X_CFLAGS"
1092 AC_SUBST(DBUS_X_CFLAGS)
1093 AC_SUBST(DBUS_X_LIBS)
1097 #### gcc warning flags
1099 cc_supports_flag() {
1100 AC_MSG_CHECKING(whether $CC supports "$*")
1101 save_CFLAGS="$CFLAGS"
1103 AC_TRY_COMPILE([], [], [rc=yes], [rc=no])
1104 CFLAGS="$save_CFLAGS"
1105 AC_MSG_RESULT([$rc])
1109 ld_supports_flag() {
1110 AC_MSG_CHECKING([whether $LD supports "$@"])
1112 int one(void) { return 1; }
1113 int two(void) { return 2; }
1114 ], [ two(); ] , [_ac_ld_flag_supported=yes], [_ac_ld_flag_supported=no])
1116 if test "$_ac_ld_flag_supported" = "yes"; then
1119 if $CC -c conftest.c; then
1120 ld_out=`$LD $@ -o conftest conftest.o 2>&1`
1122 if test $ld_ret -ne 0 ; then
1123 _ac_ld_flag_supported=no
1124 elif echo "$ld_out" | egrep 'option ignored|^usage:|unrecognized option|illegal option' >/dev/null ; then
1125 _ac_ld_flag_supported=no
1128 rm -f conftest.c conftest.o conftest
1131 AC_MSG_RESULT($_ac_ld_flag_supported)
1132 if test "$_ac_ld_flag_supported" = "yes" ; then
1139 # Don't bother with -Werror on Windows for now, too many warnings
1140 if test x$dbus_win != xyes -a x$dbus_cygwin != xyes -a x$USE_MAINTAINER_MODE = xyes; then
1141 if cc_supports_flag "-Werror"; then
1142 CFLAGS="$CFLAGS -Werror"
1146 if test "x$GCC" = "xyes"; then
1149 *[\ \ ]-Wall[\ \ ]*) ;;
1150 *) CFLAGS="$CFLAGS -Wall" ;;
1154 *[\ \ ]-Wchar-subscripts[\ \ ]*) ;;
1155 *) CFLAGS="$CFLAGS -Wchar-subscripts" ;;
1159 *[\ \ ]-Wmissing-declarations[\ \ ]*) ;;
1160 *) CFLAGS="$CFLAGS -Wmissing-declarations" ;;
1164 *[\ \ ]-Wmissing-prototypes[\ \ ]*) ;;
1165 *) CFLAGS="$CFLAGS -Wmissing-prototypes" ;;
1169 *[\ \ ]-Wnested-externs[\ \ ]*) ;;
1170 *) CFLAGS="$CFLAGS -Wnested-externs" ;;
1174 *[\ \ ]-Wpointer-arith[\ \ ]*) ;;
1175 *) CFLAGS="$CFLAGS -Wpointer-arith" ;;
1179 *[\ \ ]-Wcast-align[\ \ ]*) ;;
1180 *) CFLAGS="$CFLAGS -Wcast-align" ;;
1184 *[\ \ ]-Wno-address[\ \ ]*) ;;
1185 *) CFLAGS="$CFLAGS -Wno-address" ;;
1189 *[\ \ ]-Wfloat-equal[\ \ ]*) ;;
1190 *) if cc_supports_flag -Wfloat-equal; then
1191 CFLAGS="$CFLAGS -Wfloat-equal"
1197 *[\ \ ]-Wdeclaration-after-statement[\ \ ]*) ;;
1198 *) if cc_supports_flag -Wdeclaration-after-statement; then
1199 CFLAGS="$CFLAGS -Wdeclaration-after-statement"
1205 *[\ \ ]-fno-common[\ \ ]*) ;;
1206 *) if cc_supports_flag -fno-common; then
1207 CFLAGS="$CFLAGS -fno-common"
1213 *[\ \ ]-fPIC[\ \ ]*) ;;
1214 *) if test x$dbus_win = xno && cc_supports_flag -fPIC; then
1216 if ld_supports_flag -z,relro; then
1217 PIC_LDFLAGS="-Wl,-z,relro"
1224 *[\ \ ]-fPIE[\ \ ]*) ;;
1225 *) if test x$dbus_win = xno && cc_supports_flag -fPIE; then
1227 if ld_supports_flag -z,relro; then
1228 PIE_LDFLAGS="-pie -Wl,-z,relro"
1236 ### Disabled warnings, and compiler flag overrides
1238 # Let's just ignore unused for now
1240 *[\ \ ]-Wno-unused[\ \ ]*) ;;
1241 *) CFLAGS="$CFLAGS -Wno-unused" ;;
1244 # This group is for warnings we currently don't pass.
1245 # We would like to, however. Please fix.
1247 # http://bugs.freedesktop.org/show_bug.cgi?id=17433
1249 *[\ \ ]-Wno-sign-compare[\ \ ]*) ;;
1250 *) CFLAGS="$CFLAGS -Wno-sign-compare" ;;
1253 *[\ \ ]-Wno-pointer-sign[\ \ ]*) ;;
1254 *) if cc_supports_flag -Wno-pointer-sign; then
1255 CFLAGS="$CFLAGS -Wno-pointer-sign"
1260 # This one is special - it's not a warning override.
1261 # http://bugs.freedesktop.org/show_bug.cgi?id=10599
1263 *[\ \ ]-fno-strict-aliasing[\ \ ]*) ;;
1264 *) CFLAGS="$CFLAGS -fno-strict-aliasing" ;;
1266 ### End disabled warnings
1268 if test "x$enable_ansi" = "xyes"; then
1270 *[\ \ ]-ansi[\ \ ]*) ;;
1271 *) CFLAGS="$CFLAGS -ansi" ;;
1275 *[\ \ ]-D_POSIX_C_SOURCE*) ;;
1276 *) CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=199309L" ;;
1280 *[\ \ ]-D_BSD_SOURCE[\ \ ]*) ;;
1281 *) CFLAGS="$CFLAGS -D_BSD_SOURCE" ;;
1285 *[\ \ ]-pedantic[\ \ ]*) ;;
1286 *) CFLAGS="$CFLAGS -pedantic" ;;
1292 AC_SUBST(PIC_CFLAGS)
1293 AC_SUBST(PIC_LDFLAGS)
1294 AC_SUBST(PIE_CFLAGS)
1295 AC_SUBST(PIE_LDFLAGS)
1297 if ld_supports_flag --gc-sections; then
1298 SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
1299 CFLAGS="-ffunction-sections -fdata-sections $CFLAGS"
1301 AC_SUBST(SECTION_FLAGS)
1302 AC_SUBST(SECTION_LDFLAGS)
1303 AC_MSG_RESULT($ac_gcsections)
1307 # Solaris' C library apparently needs these runes to be threadsafe...
1308 CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT"
1312 # compress spaces in flags
1313 CFLAGS=`echo "$CFLAGS" | sed -e 's/ +/ /g'`
1314 CXXFLAGS=`echo "$CXXFLAGS" | sed -e 's/ +/ /g'`
1315 CPPFLAGS=`echo "$CPPFLAGS" | sed -e 's/ +/ /g'`
1318 ### Doxygen Documentation
1320 AC_PATH_PROG(DOXYGEN, doxygen, no)
1322 AC_MSG_CHECKING([whether to build Doxygen documentation])
1324 if test x$DOXYGEN = xno ; then
1330 if test x$enable_doxygen_docs = xauto ; then
1331 if test x$have_doxygen = xno ; then
1332 enable_doxygen_docs=no
1334 enable_doxygen_docs=yes
1338 if test x$enable_doxygen_docs = xyes; then
1339 if test x$have_doxygen = xno; then
1340 AC_MSG_ERROR([Building Doxygen docs explicitly required, but Doxygen not found])
1344 AM_CONDITIONAL(DBUS_DOXYGEN_DOCS_ENABLED, test x$enable_doxygen_docs = xyes)
1345 AC_MSG_RESULT($enable_doxygen_docs)
1347 ### XML Documentation
1349 AC_PATH_PROG(XMLTO, xmlto, no)
1351 AC_MSG_CHECKING([whether to build XML documentation])
1353 if test x$XMLTO = xno ; then
1359 if test x$enable_xml_docs = xauto ; then
1360 if test x$have_xmlto = xno ; then
1367 if test x$enable_xml_docs = xyes; then
1368 if test x$have_xmlto = xno; then
1369 AC_MSG_ERROR([Building XML docs explicitly required, but xmlto not found])
1373 AM_CONDITIONAL(DBUS_XML_DOCS_ENABLED, test x$enable_xml_docs = xyes)
1374 AC_MSG_RESULT($enable_xml_docs)
1376 AC_PATH_PROG([MAN2HTML], [man2html])
1377 AC_ARG_VAR([MAN2HTML], [Path to man2html (optional)])
1378 AM_CONDITIONAL(DBUS_HAVE_MAN2HTML, test x$MAN2HTML != x)
1380 AM_CONDITIONAL(DBUS_CAN_UPLOAD_DOCS,
1381 test x$enable_doxygen_docs = xyes -a x$enable_xml_docs = xyes -a \
1384 #### Have to go $localstatedir->$prefix/var->/usr/local/var
1386 #### find the actual value for $prefix that we'll end up with
1387 ## (I know this is broken and should be done in the Makefile, but
1388 ## that's a major pain and almost nobody actually seems to care)
1389 AS_AC_EXPAND(EXPANDED_PREFIX, "$prefix")
1390 AS_AC_EXPAND(EXPANDED_LOCALSTATEDIR, "$localstatedir")
1391 AS_AC_EXPAND(EXPANDED_SYSCONFDIR, "$sysconfdir")
1392 AS_AC_EXPAND(EXPANDED_BINDIR, "$bindir")
1393 AS_AC_EXPAND(EXPANDED_LIBDIR, "$libdir")
1394 AS_AC_EXPAND(EXPANDED_LIBEXECDIR, "$libexecdir")
1395 AS_AC_EXPAND(EXPANDED_DATADIR, "$datadir")
1397 #### Check our operating system
1398 operating_system=unknown
1399 if test -f /etc/redhat-release || test -f $EXPANDED_SYSCONFDIR/redhat-release ; then
1400 operating_system=redhat
1403 if test -f /etc/slackware-version || test -f $EXPANDED_SYSCONFDIR/slackware-version ; then
1404 operating_system=slackware
1407 if test -f /usr/bin/cygwin1.dll || test -f $EXPANDED_BINDIR/cygwin1.dll ; then
1408 operating_system=cygwin
1411 #### Sort out init scripts
1413 if test x$with_init_scripts = x; then
1414 case x$operating_system in
1415 xredhat) with_init_scripts=redhat ;;
1416 xslackware) with_init_scripts=slackware ;;
1417 xcygwin) with_init_scripts=cygwin ;;
1418 *) with_init_scripts=none ;;
1422 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_RED_HAT, test x$with_init_scripts = xredhat)
1423 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_SLACKWARE, test x$with_init_scripts = xslackware)
1424 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_CYGWIN, test x$with_init_scripts = xcygwin)
1426 ##### systemd unit files
1427 AC_ARG_WITH([systemdsystemunitdir],
1428 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
1429 [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
1430 if test "x$with_systemdsystemunitdir" != xno; then
1431 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
1433 AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])
1435 ##### Set up location for system bus socket
1436 if ! test -z "$with_system_socket"; then
1437 DBUS_SYSTEM_SOCKET=$with_system_socket
1439 DBUS_SYSTEM_SOCKET=${EXPANDED_LOCALSTATEDIR}/run/dbus/system_bus_socket
1442 AC_SUBST(DBUS_SYSTEM_SOCKET)
1443 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_SOCKET,"$DBUS_SYSTEM_SOCKET",[The name of the socket the system bus listens on by default])
1445 ## system bus only listens on local domain sockets, and never
1446 ## on an abstract socket (so only root can create the socket)
1447 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS="unix:path=$DBUS_SYSTEM_SOCKET"
1448 AC_SUBST(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS)
1449 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS, "$DBUS_SYSTEM_BUS_DEFAULT_ADDRESS",[The default D-Bus address of the system bus])
1451 #### Set up the pid file
1452 if ! test -z "$with_system_pid_file"; then
1453 DBUS_SYSTEM_PID_FILE=$with_system_pid_file
1454 elif test x$with_init_scripts = xredhat ; then
1455 DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/messagebus.pid
1457 DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/dbus/pid
1460 AC_SUBST(DBUS_SYSTEM_PID_FILE)
1462 #### Directory to check for console ownership
1463 if ! test -z "$with_console_auth_dir"; then
1464 DBUS_CONSOLE_AUTH_DIR=$with_console_auth_dir
1466 DBUS_CONSOLE_AUTH_DIR=/var/run/console/
1469 AC_SUBST(DBUS_CONSOLE_AUTH_DIR)
1470 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_AUTH_DIR, "$DBUS_CONSOLE_AUTH_DIR", [Directory to check for console ownerhip])
1472 #### File to check for console ownership
1473 if test x$have_console_owner_file = xyes; then
1474 if ! test -z "$with_console_owner_file"; then
1475 DBUS_CONSOLE_OWNER_FILE=$with_console_owner_file
1477 DBUS_CONSOLE_OWNER_FILE=/dev/console
1480 DBUS_CONSOLE_OWNER_FILE=
1483 AC_SUBST(DBUS_CONSOLE_OWNER_FILE)
1484 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_OWNER_FILE, "$DBUS_CONSOLE_OWNER_FILE", [File to check for console ownerhip])
1486 #### User to start the system bus as
1487 if test -z "$with_dbus_user" ; then
1488 DBUS_USER=messagebus
1490 DBUS_USER=$with_dbus_user
1493 AC_DEFINE_UNQUOTED(DBUS_USER,"$DBUS_USER", [User for running the system BUS daemon])
1495 #### Prefix to install into
1496 DBUS_PREFIX=$EXPANDED_PREFIX
1497 AC_SUBST(DBUS_PREFIX)
1498 AC_DEFINE_UNQUOTED(DBUS_PREFIX,"$DBUS_PREFIX", [Prefix for installing DBUS])
1500 #### Direcotry to install data files into
1501 DBUS_DATADIR=$EXPANDED_DATADIR
1502 AC_SUBST(DBUS_DATADIR)
1503 AC_DEFINE_UNQUOTED(DBUS_DATADIR,"$DBUS_DATADIR", [Directory for installing DBUS data files])
1505 #### Directory to install dbus-daemon
1506 if test -z "$with_dbus_daemondir" ; then
1507 DBUS_DAEMONDIR=$EXPANDED_BINDIR
1509 DBUS_DAEMONDIR=$with_dbus_daemondir
1511 AC_SUBST(DBUS_DAEMONDIR)
1512 AC_DEFINE_UNQUOTED(DBUS_DAEMONDIR,"$DBUS_DAEMONDIR", [Directory for installing the DBUS daemon])
1514 #### Directory to install the other binaries
1515 DBUS_BINDIR="$EXPANDED_BINDIR"
1516 AC_SUBST(DBUS_BINDIR)
1517 AC_DEFINE_UNQUOTED(DBUS_BINDIR,"$DBUS_BINDIR", [Directory for installing the binaries])
1519 #### Directory to install the libexec binaries
1520 DBUS_LIBEXECDIR="$EXPANDED_LIBEXECDIR"
1521 AC_SUBST(DBUS_LIBEXECDIR)
1522 AC_DEFINE_UNQUOTED(DBUS_LIBEXECDIR,"$DBUS_LIBEXECDIR", [Directory for installing the libexec binaries])
1524 #### Tell tests where to find certain stuff in builddir
1527 # Useful in a cross-compilation environment, where the tests are run on the host system.
1528 AC_ARG_WITH(dbus-test-dir, AS_HELP_STRING([--with-dbus-test-dir=[dirname]],[path where the tests tools are available]),
1530 AC_DEFUN([TEST_PATH], [
1531 TEST_$1=${DBUS_PWD}/test/$2
1532 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1",
1533 [Full path to test file test/$2 in builddir])
1536 AC_DEFUN([TEST_PROG], [
1537 TEST_$1=${DBUS_PWD}/test/$2
1538 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1$EXEEXT",
1539 [Full path to test file test/$2 in builddir])
1543 TEST_PATH(VALID_SERVICE_DIR, data/valid-service-files)
1544 TEST_PATH(INVALID_SERVICE_DIR, data/invalid-service-files)
1545 TEST_PATH(VALID_SERVICE_SYSTEM_DIR, data/valid-service-files-system)
1546 TEST_PATH(INVALID_SERVICE_SYSTEM_DIR, data/invalid-service-files-system)
1547 TEST_PROG(SERVICE_BINARY, test-service)
1548 TEST_PROG(SHELL_SERVICE_BINARY, test-shell-service)
1549 TEST_PROG(EXIT_BINARY, test-exit)
1550 TEST_PROG(SEGFAULT_BINARY, test-segfault)
1551 TEST_PROG(SLEEP_FOREVER_BINARY, test-sleep-forever)
1552 TEST_PROG(PRIVSERVER_BINARY, name-test/test-privserver)
1554 AC_DEFINE_UNQUOTED(TEST_BUS_BINARY, "$DBUS_PWD/bus/dbus-daemon$EXEEXT",
1555 [Full path to the daemon in the builddir])
1556 AC_SUBST(TEST_BUS_BINARY)
1558 ## Export the non-setuid external helper
1559 TEST_LAUNCH_HELPER_BINARY="$DBUS_PWD/bus/dbus-daemon-launch-helper-test$EXEEXT"
1560 AC_SUBST(TEST_LAUNCH_HELPER_BINARY)
1561 AC_DEFINE_UNQUOTED(DBUS_TEST_LAUNCH_HELPER_BINARY, "$TEST_LAUNCH_HELPER_BINARY",
1562 [Full path to the launch helper test program in the builddir])
1564 #### Find socket directories
1565 if ! test -z "$TMPDIR" ; then
1566 DEFAULT_SOCKET_DIR=$TMPDIR
1567 elif ! test -z "$TEMP" ; then
1568 DEFAULT_SOCKET_DIR=$TEMP
1569 elif ! test -z "$TMP" ; then
1570 DEFAULT_SOCKET_DIR=$TMP
1572 DEFAULT_SOCKET_DIR=/tmp
1575 DEFAULT_SOCKET_DIR=`echo $DEFAULT_SOCKET_DIR | sed 's/+/%2B/g'`
1577 if ! test -z "$with_test_socket_dir" ; then
1578 TEST_SOCKET_DIR="$with_test_socket_dir"
1580 TEST_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1582 AC_SUBST(TEST_SOCKET_DIR)
1583 AC_DEFINE_UNQUOTED(DBUS_TEST_SOCKET_DIR, "$TEST_SOCKET_DIR", [Where to put test sockets])
1585 if ! test -z "$with_session_socket_dir" ; then
1586 DBUS_SESSION_SOCKET_DIR="$with_session_socket_dir"
1588 DBUS_SESSION_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1590 AC_DEFINE_UNQUOTED(DBUS_SESSION_SOCKET_DIR, "$DBUS_SESSION_SOCKET_DIR", [Where per-session bus puts its sockets])
1591 AC_SUBST(DBUS_SESSION_SOCKET_DIR)
1593 if test x$dbus_win = xyes; then
1594 DBUS_SESSION_BUS_DEFAULT_ADDRESS="nonce-tcp:"
1595 elif test x$have_launchd = xyes; then
1596 DBUS_SESSION_BUS_DEFAULT_ADDRESS="launchd:env=DBUS_LAUNCHD_SESSION_BUS_SOCKET"
1598 DBUS_SESSION_BUS_DEFAULT_ADDRESS="unix:tmpdir=$DBUS_SESSION_SOCKET_DIR"
1600 AC_SUBST(DBUS_SESSION_BUS_DEFAULT_ADDRESS)
1602 # darwin needs this to initialize the environment
1603 AC_CHECK_HEADERS(crt_externs.h)
1604 AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])])
1605 AH_VERBATIM(_DARWIN_ENVIRON,
1607 #if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
1608 # include <sys/time.h>
1609 # include <crt_externs.h>
1610 # define environ (*_NSGetEnviron())
1617 dbus/dbus-arch-deps.h
1621 bus/messagebus-config
1622 bus/org.freedesktop.dbus-session.plist
1631 test/name-test/Makefile
1635 test/data/valid-config-files/debug-allow-all.conf
1636 test/data/valid-config-files/debug-allow-all-sha1.conf
1637 test/data/valid-config-files-system/debug-allow-all-pass.conf
1638 test/data/valid-config-files-system/debug-allow-all-fail.conf
1639 test/data/valid-service-files/org.freedesktop.DBus.TestSuite.PrivServer.service
1640 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteEchoService.service
1641 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteForkingEchoService.service
1642 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteSegfaultService.service
1643 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1644 test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1645 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteEchoService.service
1646 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteSegfaultService.service
1647 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service
1648 test/data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service
1649 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoExec.service
1650 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoUser.service
1651 test/data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoService.service
1654 dnl ==========================================================================
1659 prefix: ${EXPANDED_PREFIX}
1660 exec_prefix: ${exec_prefix}
1661 libdir: ${EXPANDED_LIBDIR}
1662 libexecdir: ${EXPANDED_LIBEXECDIR}
1663 bindir: ${EXPANDED_BINDIR}
1664 sysconfdir: ${EXPANDED_SYSCONFDIR}
1665 localstatedir: ${EXPANDED_LOCALSTATEDIR}
1666 datadir: ${EXPANDED_DATADIR}
1667 source code location: ${srcdir}
1670 cppflags: ${CPPFLAGS}
1671 cxxflags: ${CXXFLAGS}
1672 64-bit int: ${DBUS_INT64_TYPE}
1673 32-bit int: ${DBUS_INT32_TYPE}
1674 16-bit int: ${DBUS_INT16_TYPE}
1675 Doxygen: ${DOXYGEN:-not found}
1676 xmlto: ${XMLTO:-not found}
1677 man2html: ${MAN2HTML:-not found}"
1680 Maintainer mode: ${USE_MAINTAINER_MODE}
1681 gcc coverage profiling: ${enable_compiler_coverage}
1682 Building unit tests: ${enable_tests}
1683 Building verbose mode: ${enable_verbose_mode}
1684 Building assertions: ${enable_asserts}
1685 Building checks: ${enable_checks}
1686 Building SELinux support: ${have_selinux}
1687 Building inotify support: ${have_inotify}
1688 Building dnotify support: ${have_dnotify}
1689 Building kqueue support: ${have_kqueue}
1690 Building X11 code: ${enable_x11}
1691 Building Doxygen docs: ${enable_doxygen_docs}
1692 Building XML docs: ${enable_xml_docs}
1693 Building cache support: ${enable_userdb_cache}
1694 Building launchd support: ${have_launchd}
1695 Using XML parser: ${with_xml}
1696 Init scripts style: ${with_init_scripts}
1697 Abstract socket names: ${ac_cv_have_abstract_sockets}
1698 System bus socket: ${DBUS_SYSTEM_SOCKET}
1699 System bus address: ${DBUS_SYSTEM_BUS_DEFAULT_ADDRESS}
1700 System bus PID file: ${DBUS_SYSTEM_PID_FILE}
1701 Session bus address: ${DBUS_SESSION_BUS_DEFAULT_ADDRESS}
1702 Console auth dir: ${DBUS_CONSOLE_AUTH_DIR}
1703 Console owner file: ${have_console_owner_file}
1704 Console owner file path: ${DBUS_CONSOLE_OWNER_FILE}
1705 System bus user: ${DBUS_USER}
1706 Session bus services dir: ${EXPANDED_DATADIR}/dbus-1/services
1707 'make check' socket dir: ${TEST_SOCKET_DIR}
1709 if test x$have_launchd = xyes; then
1710 echo " launchd agent dir: ${LAUNCHD_AGENT_DIR}"
1714 if test x$enable_tests = xyes; then
1715 echo "NOTE: building with unit tests increases the size of the installed library and renders it insecure."
1717 if test x$enable_tests = xyes -a x$enable_asserts = xno; then
1718 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)"
1720 if test x$enable_compiler_coverage = xyes; then
1721 echo "NOTE: building with coverage profiling is definitely for developers only."
1723 if test x$enable_verbose_mode = xyes; then
1724 echo "NOTE: building with verbose mode increases library size, may slightly increase security risk, and decreases performance."
1726 if test x$enable_asserts = xyes; then
1727 echo "NOTE: building with assertions increases library size and decreases performance."
1729 if test x$enable_checks = xno; then
1730 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."
1732 if test x$dbus_use_libxml = xtrue; then
1734 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)."