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