3aef6e15a8b05ad44add306dc3f8e80d45e3006a
[platform/upstream/dbus.git] / configure.in
1 dnl -*- mode: m4 -*-
2 AC_PREREQ(2.52)
3
4 AC_INIT(dbus/dbus.h)
5
6 AC_CANONICAL_TARGET
7
8 AM_INIT_AUTOMAKE(dbus, 0.93)
9
10 AM_CONFIG_HEADER(config.h)
11
12 # Honor aclocal flags
13 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
14
15 GETTEXT_PACKAGE=dbus-1
16 AC_SUBST(GETTEXT_PACKAGE)
17 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[The name of the gettext domain])
18
19  ## must come before we use the $USE_MAINTAINER_MODE variable later
20 AM_MAINTAINER_MODE
21
22 # libtool versioning - this applies to libdbus
23 #
24 # See http://sources.redhat.com/autobook/autobook/autobook_91.html#SEC91 for details
25 #
26
27 ## increment if the interface has additions, changes, removals.
28 LT_CURRENT=3
29
30 ## increment any time the source changes; set to
31 ##  0 if you increment CURRENT
32 LT_REVISION=0
33
34 ## increment if any interfaces have been added; set to 0
35 ## if any interfaces have been changed or removed. removal has
36 ## precedence over adding, so set to 0 if both happened.
37 LT_AGE=0
38
39 AC_SUBST(LT_CURRENT)
40 AC_SUBST(LT_REVISION)
41 AC_SUBST(LT_AGE)
42
43
44 AC_PROG_CC
45 AC_PROG_CXX
46 AC_ISC_POSIX
47 AC_HEADER_STDC
48
49 AC_ARG_ENABLE(tests, AS_HELP_STRING([--enable-tests],[enable unit test code]),enable_tests=$enableval,enable_tests=$USE_MAINTAINER_MODE)
50 AC_ARG_ENABLE(ansi, AS_HELP_STRING([--enable-ansi],[enable -ansi -pedantic gcc flags]),enable_ansi=$enableval,enable_ansi=no)
51 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)
52 AC_ARG_ENABLE(asserts, AS_HELP_STRING([--enable-asserts],[include assertion checks]),enable_asserts=$enableval,enable_asserts=$USE_MAINTAINER_MODE)
53 AC_ARG_ENABLE(checks, AS_HELP_STRING([--enable-checks],[include sanity checks on public API]),enable_checks=$enableval,enable_checks=yes)
54 AC_ARG_ENABLE(xml-docs, AS_HELP_STRING([--enable-xml-docs],[build XML documentation (requires xmlto)]),enable_xml_docs=$enableval,enable_xml_docs=auto)
55 AC_ARG_ENABLE(doxygen-docs, AS_HELP_STRING([--enable-doxygen-docs],[build DOXYGEN documentation (requires Doxygen)]),enable_doxygen_docs=$enableval,enable_doxygen_docs=auto)
56 AC_ARG_ENABLE(gcov, AS_HELP_STRING([--enable-gcov],[compile with coverage profiling instrumentation (gcc only)]),enable_gcov=$enableval,enable_gcov=no)
57 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)
58 AC_ARG_ENABLE(selinux, AS_HELP_STRING([--enable-selinux],[build with SELinux support]),enable_selinux=$enableval,enable_selinux=auto)
59 AC_ARG_ENABLE(dnotify, AS_HELP_STRING([--enable-dnotify],[build with dnotify support (linux only)]),enable_dnotify=$enableval,enable_dnotify=auto)
60 AC_ARG_ENABLE(kqueue, AS_HELP_STRING([--enable-kqueue],[build with kqueue support]),enable_kqueue=$enableval,enable_kqueue=auto)
61 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)
62
63 AC_ARG_WITH(xml, AS_HELP_STRING([--with-xml=[libxml/expat]],[XML library to use]))
64 AC_ARG_WITH(init-scripts, AS_HELP_STRING([--with-init-scripts=[redhat]],[Style of init scripts to install]))
65 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]))
66 AC_ARG_WITH(test-socket-dir, AS_HELP_STRING([--with-test-socket-dir=[dirname]],[Where to put sockets for make check]))
67 AC_ARG_WITH(system-pid-file, AS_HELP_STRING([--with-system-pid-file=[pidfile]],[PID file for systemwide daemon]))
68 AC_ARG_WITH(system-socket, AS_HELP_STRING([--with-system-socket=[filename]],[UNIX domain socket for systemwide daemon]))
69 AC_ARG_WITH(console-auth-dir, AS_HELP_STRING([--with-console-auth-dir=[dirname]],[directory to check for console ownerhip]))
70 AC_ARG_WITH(console-owner-file, AS_HELP_STRING([--with-console-owner-file=[filename]],[file whose owner determines current console owner]))
71 AC_ARG_WITH(dbus_user, AS_HELP_STRING([--with-dbus-user=<user>],[User for running the DBUS daemon (messagebus)]))
72 AC_ARG_WITH(dbus_daemondir, AS_HELP_STRING([--with-dbus-daemondir=[dirname]],[Directory for installing the DBUS daemon]))
73
74
75 dnl DBUS_BUILD_TESTS controls unit tests built in to .c files 
76 dnl and also some stuff in the test/ subdir
77 AM_CONDITIONAL(DBUS_BUILD_TESTS, test x$enable_tests = xyes)
78 if test x$enable_tests = xyes; then
79     AC_DEFINE(DBUS_BUILD_TESTS,1,[Build test code])
80 fi
81
82 if test x$enable_verbose_mode = xyes; then
83     AC_DEFINE(DBUS_ENABLE_VERBOSE_MODE,1,[Support a verbose mode])
84 fi
85 if test x$enable_asserts = xno; then
86     AC_DEFINE(DBUS_DISABLE_ASSERT,1,[Disable assertion checking])
87     AC_DEFINE(G_DISABLE_ASSERT,1,[Disable GLib assertion macros])
88 fi
89 if test x$enable_checks = xno; then
90     AC_DEFINE(DBUS_DISABLE_CHECKS,1,[Disable public API sanity checking])
91     AC_DEFINE(G_DISABLE_CHECKS,1,[Disable GLib public API sanity checking])
92 fi
93
94 #### gcc warning flags
95
96 cc_supports_flag() {
97   AC_MSG_CHECKING(whether $CC supports "$@")
98   Cfile=/tmp/foo${$}
99   touch ${Cfile}.c
100   $CC -c "$@" ${Cfile}.c -o ${Cfile}.o >/dev/null 2>&1
101   rc=$?
102   rm -f ${Cfile}.c ${Cfile}.o
103   case $rc in
104     0) AC_MSG_RESULT(yes);;
105     *) AC_MSG_RESULT(no);;
106   esac
107   return $rc
108 }
109
110 if test "x$GCC" = "xyes"; then
111   changequote(,)dnl
112   case " $CFLAGS " in
113   *[\ \ ]-Wall[\ \      ]*) ;;
114   *) CFLAGS="$CFLAGS -Wall" ;;
115   esac
116
117   case " $CFLAGS " in
118   *[\ \ ]-Wchar-subscripts[\ \  ]*) ;;
119   *) CFLAGS="$CFLAGS -Wchar-subscripts" ;;
120   esac
121
122   case " $CFLAGS " in
123   *[\ \ ]-Wmissing-declarations[\ \     ]*) ;;
124   *) CFLAGS="$CFLAGS -Wmissing-declarations" ;;
125   esac
126
127   case " $CFLAGS " in
128   *[\ \ ]-Wmissing-prototypes[\ \       ]*) ;;
129   *) CFLAGS="$CFLAGS -Wmissing-prototypes" ;;
130   esac
131
132   case " $CFLAGS " in
133   *[\ \ ]-Wnested-externs[\ \   ]*) ;;
134   *) CFLAGS="$CFLAGS -Wnested-externs" ;;
135   esac
136
137   case " $CFLAGS " in
138   *[\ \ ]-Wpointer-arith[\ \    ]*) ;;
139   *) CFLAGS="$CFLAGS -Wpointer-arith" ;;
140   esac
141
142   case " $CFLAGS " in
143   *[\ \ ]-Wcast-align[\ \       ]*) ;;
144   *) CFLAGS="$CFLAGS -Wcast-align" ;;
145   esac
146
147   case " $CFLAGS " in
148   *[\ \ ]-Wfloat-equal[\ \      ]*) ;;
149   *) if cc_supports_flag -Wfloat-equals; then
150         CFLAGS="$CFLAGS -Wfloat-equal" 
151      fi
152      ;;
153   esac
154
155   case " $CFLAGS " in
156   *[\ \ ]-Wsign-compare[\ \     ]*) ;;
157   *) CFLAGS="$CFLAGS -Wsign-compare" ;;
158   esac
159
160   case " $CFLAGS " in
161   *[\ \ ]-Wdeclaration-after-statement[\ \      ]*) ;;
162   *) if cc_supports_flag -Wdeclaration-after-statement; then
163         CFLAGS="$CFLAGS -Wdeclaration-after-statement"
164      fi
165      ;;
166   esac
167
168   case " $CFLAGS " in
169   *[\ \ ]-fno-common[\ \        ]*) ;;
170   *) if cc_supports_flag -fno-common; then
171         CFLAGS="$CFLAGS -fno-common"
172      fi
173      ;;
174   esac
175
176   if test "x$enable_ansi" = "xyes"; then
177     case " $CFLAGS " in
178     *[\ \       ]-ansi[\ \      ]*) ;;
179     *) CFLAGS="$CFLAGS -ansi" ;;
180     esac
181
182     case " $CFLAGS " in
183     *[\ \       ]-D_POSIX_C_SOURCE*) ;;
184     *) CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=199309L" ;;
185     esac
186
187     case " $CFLAGS " in
188     *[\ \       ]-D_BSD_SOURCE[\ \      ]*) ;;
189     *) CFLAGS="$CFLAGS -D_BSD_SOURCE" ;;
190     esac
191
192     case " $CFLAGS " in
193     *[\ \       ]-pedantic[\ \  ]*) ;;
194     *) CFLAGS="$CFLAGS -pedantic" ;;
195     esac
196   fi
197   if test x$enable_gcov = xyes; then
198     case " $CFLAGS " in
199     *[\ \       ]-fprofile-arcs[\ \     ]*) ;;
200     *) CFLAGS="$CFLAGS -fprofile-arcs" ;;
201     esac
202     case " $CFLAGS " in
203     *[\ \       ]-ftest-coverage[\ \    ]*) ;;
204     *) CFLAGS="$CFLAGS -ftest-coverage" ;;
205     esac
206
207     ## remove optimization
208     CFLAGS=`echo "$CFLAGS" | sed -e 's/-O[0-9]*//g'`
209   fi
210   changequote([,])dnl
211 else
212   if test x$enable_gcov = xyes; then
213     AC_MSG_ERROR([--enable-gcov can only be used with gcc])
214   fi
215 fi
216
217 AM_PROG_LIBTOOL
218
219 changequote(,)dnl
220 # let ourselves use our own unstable API
221 CPPFLAGS="-DDBUS_API_SUBJECT_TO_CHANGE=1 $CPPFLAGS"
222 # compress spaces in flags
223 CFLAGS=`echo "$CFLAGS" | sed -e 's/ +/ /g'`
224 CXXFLAGS=`echo "$CXXFLAGS" | sed -e 's/ +/ /g'`
225 CPPFLAGS=`echo "$CPPFLAGS" | sed -e 's/ +/ /g'`
226 changequote([,])dnl
227
228 if test x$enable_gcov = xyes; then
229      ## so that config.h changes when you toggle gcov support
230      AC_DEFINE_UNQUOTED(DBUS_GCOV_ENABLED, 1, [Defined if gcov is enabled to force a rebuild due to config.h changing])
231
232      AC_MSG_CHECKING([for gcc 3.3 version of gcov file format])
233      have_gcc33_gcov=no
234      AC_RUN_IFELSE( [AC_LANG_PROGRAM( , [[ if (__GNUC__ >=3 && __GNUC_MINOR__ >= 3) exit (0); else exit (1); ]])],  
235                    have_gcc33_gcov=yes)
236      if test x$have_gcc33_gcov = xyes ; then
237          AC_DEFINE_UNQUOTED(DBUS_HAVE_GCC33_GCOV, 1, [Defined if we have gcc 3.3 and thus the new gcov format])
238      fi
239      AC_MSG_RESULT($have_gcc33_gcov)
240 fi
241 AM_CONDITIONAL(DBUS_GCOV_ENABLED, test x$enable_gcov = xyes)
242
243 #### Integer sizes 
244
245 AC_CHECK_SIZEOF(char)
246 AC_CHECK_SIZEOF(short)
247 AC_CHECK_SIZEOF(long)
248 AC_CHECK_SIZEOF(int)
249 AC_CHECK_SIZEOF(void *)
250 AC_CHECK_SIZEOF(long long)
251 AC_CHECK_SIZEOF(__int64)
252
253 ### See what our 64 bit type is called
254 AC_MSG_CHECKING([64-bit integer type])
255
256 case 8 in
257 $ac_cv_sizeof_int)
258   dbusint64=int
259   dbusint64_constant='(val)'
260   dbusuint64_constant='(val)'
261   ;;
262 $ac_cv_sizeof_long)
263   dbusint64=long
264   dbusint64_constant='(val##L)'
265   dbusuint64_constant='(val##UL)'
266   ;;
267 $ac_cv_sizeof_long_long)
268   dbusint64='long long'
269   dbusint64_constant='(val##LL)'
270   dbusuint64_constant='(val##ULL)'
271   ;;
272 $ac_cv_sizeof___int64)
273   dbusint64=__int64
274   dbusint64_constant='(val##i64)'
275   dbusuint64_constant='(val##ui64)'
276   ;;
277 esac
278
279 if test -z "$dbusint64" ; then
280         DBUS_INT64_TYPE="no_int64_type_detected"
281         DBUS_HAVE_INT64=0
282         DBUS_INT64_CONSTANT=
283         DBUS_UINT64_CONSTANT=
284         AC_MSG_RESULT([none found])
285 else
286         DBUS_INT64_TYPE="$dbusint64"
287         DBUS_HAVE_INT64=1
288         DBUS_INT64_CONSTANT="$dbusint64_constant"
289         DBUS_UINT64_CONSTANT="$dbusuint64_constant"
290         AC_MSG_RESULT($DBUS_INT64_TYPE)
291 fi
292
293 AC_SUBST(DBUS_INT64_TYPE)
294 AC_SUBST(DBUS_INT64_CONSTANT)
295 AC_SUBST(DBUS_UINT64_CONSTANT)
296 AC_SUBST(DBUS_HAVE_INT64)
297
298 ### see what 32-bit int is called
299 AC_MSG_CHECKING([32-bit integer type])
300
301 case 4 in
302 $ac_cv_sizeof_short)
303   dbusint32=int
304   ;;
305 $ac_cv_sizeof_int)
306   dbusint32=int
307   ;;
308 $ac_cv_sizeof_long)
309   dbusint32=long
310   ;;
311 esac
312
313 if test -z "$dbusint32" ; then
314         DBUS_INT32_TYPE="no_int32_type_detected"
315         AC_MSG_ERROR([No 32-bit integer type found])
316 else
317         DBUS_INT32_TYPE="$dbusint32"
318         AC_MSG_RESULT($DBUS_INT32_TYPE)
319 fi
320
321 AC_SUBST(DBUS_INT32_TYPE)
322
323 ### see what 16-bit int is called
324 AC_MSG_CHECKING([16-bit integer type])
325
326 case 2 in
327 $ac_cv_sizeof_short)
328   dbusint16=short
329   ;;
330 $ac_cv_sizeof_int)
331   dbusint16=int
332   ;;
333 esac
334
335 if test -z "$dbusint16" ; then
336         DBUS_INT16_TYPE="no_int16_type_detected"
337         AC_MSG_ERROR([No 16-bit integer type found])
338 else
339         DBUS_INT16_TYPE="$dbusint16"
340         AC_MSG_RESULT($DBUS_INT16_TYPE)
341 fi
342
343 AC_SUBST(DBUS_INT16_TYPE)
344
345 ## byte order
346 case $host_os in
347         darwin*)
348                 # check at compile-time, so that it is possible to build universal
349                 # (with multiple architectures at once on the compile line)
350                 AH_VERBATIM([WORDS_BIGENDIAN_DARWIN], [
351                         /* Use the compiler-provided endianness defines to allow universal compiling. */
352                         #if defined(__BIG_ENDIAN__)
353                         #define WORDS_BIGENDIAN 1
354                         #endif
355                 ])
356                 ;;
357         *)
358                 AC_C_BIGENDIAN
359                 ;;
360 esac
361
362 dnl **********************************
363 dnl *** va_copy checks (from GLib) ***
364 dnl **********************************
365 dnl we currently check for all three va_copy possibilities, so we get
366 dnl all results in config.log for bug reports.
367 AC_CACHE_CHECK([for an implementation of va_copy()],dbus_cv_va_copy,[
368         AC_LINK_IFELSE([#include <stdarg.h>
369         void f (int i, ...) {
370         va_list args1, args2;
371         va_start (args1, i);
372         va_copy (args2, args1);
373         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
374           exit (1);
375         va_end (args1); va_end (args2);
376         }
377         int main() {
378           f (0, 42);
379           return 0;
380         }],
381         [dbus_cv_va_copy=yes],
382         [dbus_cv_va_copy=no])
383 ])
384 AC_CACHE_CHECK([for an implementation of __va_copy()],dbus_cv___va_copy,[
385         AC_LINK_IFELSE([#include <stdarg.h>
386         void f (int i, ...) {
387         va_list args1, args2;
388         va_start (args1, i);
389         __va_copy (args2, args1);
390         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
391           exit (1);
392         va_end (args1); va_end (args2);
393         }
394         int main() {
395           f (0, 42);
396           return 0;
397         }],
398         [dbus_cv___va_copy=yes],
399         [dbus_cv___va_copy=no])
400 ])
401
402 if test "x$dbus_cv_va_copy" = "xyes"; then
403   dbus_va_copy_func=va_copy
404 else if test "x$dbus_cv___va_copy" = "xyes"; then
405   dbus_va_copy_func=__va_copy
406 fi
407 fi
408
409 if test -n "$dbus_va_copy_func"; then
410   AC_DEFINE_UNQUOTED(DBUS_VA_COPY,$dbus_va_copy_func,[A 'va_copy' style function])
411 fi
412
413 AC_CACHE_CHECK([whether va_lists can be copied by value],dbus_cv_va_val_copy,[
414         AC_TRY_RUN([#include <stdarg.h>
415         void f (int i, ...) {
416         va_list args1, args2;
417         va_start (args1, i);
418         args2 = args1;
419         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
420           exit (1);
421         va_end (args1); va_end (args2);
422         }
423         int main() {
424           f (0, 42);
425           return 0;
426         }],
427         [dbus_cv_va_val_copy=yes],
428         [dbus_cv_va_val_copy=no],
429         [dbus_cv_va_val_copy=yes])
430 ])
431
432 if test "x$dbus_cv_va_val_copy" = "xno"; then
433   AC_DEFINE(DBUS_VA_COPY_AS_ARRAY,1, ['va_lists' cannot be copies as values])
434 fi
435
436
437 #### Atomic integers (checks by Sebastian Wilhelmi for GLib)
438 AC_MSG_CHECKING([whether to use inline assembler routines for atomic integers])
439 have_atomic_inc=no
440 if test x"$GCC" = xyes; then
441   if test "x$enable_ansi" = "xyes"; then
442     AC_MSG_RESULT([no])
443   else
444     case $host_cpu in
445       i386)
446         AC_MSG_RESULT([no])
447         ;;
448       i?86)
449         case $host_os in
450           darwin*)
451             AC_MSG_RESULT([darwin])
452             # check at compile-time, so that it is possible to build universal
453             # (with multiple architectures at once on the compile line)
454             AH_VERBATIM([DBUS_USE_ATOMIC_INT_486_DARWIN], [
455               #if (defined(__i386__) || defined(__x86_64__))
456               # define DBUS_USE_ATOMIC_INT_486 1
457               #endif
458             ])
459             ;;
460           *)
461             AC_MSG_RESULT([i486])
462             AC_DEFINE_UNQUOTED(DBUS_USE_ATOMIC_INT_486, 1, [Use atomic integer implementation for 486])
463             ;;
464         esac
465         have_atomic_inc=yes
466         ;;
467       *)
468         AC_MSG_RESULT([no])
469         ;;
470     esac
471   fi
472 fi
473 if test x$have_atomic_inc = xyes ; then
474   case $host_os in
475     darwin*)
476       AH_VERBATIM([DBUS_HAVE_ATOMIC_INT_DARWIN], [
477         #if (defined(__i386__) || defined(__x86_64__))
478         # define DBUS_HAVE_ATOMIC_INT 1
479         #endif
480       ])
481       ;;
482     *)
483       AC_DEFINE_UNQUOTED(DBUS_HAVE_ATOMIC_INT, 1, [Some atomic integer implementation present])
484       ;;
485   esac
486 fi
487
488 #### Various functions
489 AC_CHECK_LIB(socket,socket)
490 AC_CHECK_LIB(nsl,gethostbyname)
491
492 AC_CHECK_FUNCS(vsnprintf vasprintf nanosleep usleep poll setenv unsetenv socketpair getgrouplist)
493
494 AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)])
495
496 AC_CACHE_CHECK([for posix getpwnam_r],
497                 ac_cv_func_posix_getpwnam_r,
498                 [AC_TRY_RUN([
499 #include <errno.h>
500 #include <pwd.h>
501 int main () { 
502     char buffer[10000];
503     struct passwd pwd, *pwptr = &pwd;
504     int error;
505     errno = 0;
506     error = getpwnam_r ("", &pwd, buffer, 
507                         sizeof (buffer), &pwptr);
508    return (error < 0 && errno == ENOSYS) 
509            || error == ENOSYS; 
510 }               ],
511         [ac_cv_func_posix_getpwnam_r=yes],
512         [ac_cv_func_posix_getpwnam_r=no])])
513 if test "$ac_cv_func_posix_getpwnam_r" = yes; then
514         AC_DEFINE(HAVE_POSIX_GETPWNAM_R,1,
515                 [Have POSIX function getpwnam_r])
516 else
517         AC_CACHE_CHECK([for nonposix getpwnam_r],
518                 ac_cv_func_nonposix_getpwnam_r,
519                 [AC_TRY_LINK([#include <pwd.h>],
520                         [char buffer[10000];
521                         struct passwd pwd;
522                         getpwnam_r ("", &pwd, buffer, 
523                                         sizeof (buffer));],
524                         [ac_cv_func_nonposix_getpwnam_r=yes],
525                         [ac_cv_func_nonposix_getpwnam_r=no])])
526                 if test "$ac_cv_func_nonposix_getpwnam_r" = yes; then
527                 AC_DEFINE(HAVE_NONPOSIX_GETPWNAM_R,1,
528                         [Have non-POSIX function getpwnam_r])
529         fi
530 fi
531
532 dnl check for socklen_t
533 AC_MSG_CHECKING(whether socklen_t is defined)
534 AC_TRY_COMPILE([
535 #include <sys/types.h>
536 #include <sys/socket.h>
537 #include <netdb.h>
538 ],[
539 socklen_t foo;
540 foo = 1;
541 ],dbus_have_socklen_t=yes,dbus_have_socklen_t=no)
542 AC_MSG_RESULT($dbus_have_socklen_t)
543
544 if test "x$dbus_have_socklen_t" = "xyes"; then
545     AC_DEFINE(HAVE_SOCKLEN_T,1,[Have socklen_t type])
546 fi
547
548 dnl check for writev header and writev function so we're 
549 dnl good to go if HAVE_WRITEV gets defined.
550 AC_CHECK_HEADERS(sys/uio.h, [AC_CHECK_FUNCS(writev)])
551
552 dnl check for flavours of varargs macros (test from GLib)
553 AC_MSG_CHECKING(for ISO C99 varargs macros in C)
554 AC_TRY_COMPILE([],[
555 int a(int p1, int p2, int p3);
556 #define call_a(...) a(1,__VA_ARGS__)
557 call_a(2,3);
558 ],dbus_have_iso_c_varargs=yes,dbus_have_iso_c_varargs=no)
559 AC_MSG_RESULT($dbus_have_iso_c_varargs)
560
561 AC_MSG_CHECKING(for GNUC varargs macros)
562 AC_TRY_COMPILE([],[
563 int a(int p1, int p2, int p3);
564 #define call_a(params...) a(1,params)
565 call_a(2,3);
566 ],dbus_have_gnuc_varargs=yes,dbus_have_gnuc_varargs=no)
567 AC_MSG_RESULT($dbus_have_gnuc_varargs)
568
569 dnl Output varargs tests
570 if test x$dbus_have_iso_c_varargs = xyes; then
571     AC_DEFINE(HAVE_ISO_VARARGS,1,[Have ISO C99 varargs macros])
572 fi
573 if test x$dbus_have_gnuc_varargs = xyes; then
574     AC_DEFINE(HAVE_GNUC_VARARGS,1,[Have GNU-style varargs macros])
575 fi
576
577 dnl Check for various credentials.
578 AC_MSG_CHECKING(for struct cmsgcred)
579 AC_TRY_COMPILE([
580 #include <sys/types.h>
581 #include <sys/socket.h>
582 ],[
583 struct cmsgcred cred;
584
585 cred.cmcred_pid = 0;
586 ],dbus_have_struct_cmsgcred=yes,dbus_have_struct_cmsgcred=no)
587 AC_MSG_RESULT($dbus_have_struct_cmsgcred)
588
589 if test x$dbus_have_struct_cmsgcred = xyes; then
590     AC_DEFINE(HAVE_CMSGCRED,1,[Have cmsgcred structure])
591 fi
592
593 AC_CHECK_FUNCS(getpeerucred getpeereid)
594
595 #### Abstract sockets
596
597 AC_MSG_CHECKING(abstract socket namespace)
598 AC_LANG_PUSH(C)
599 AC_RUN_IFELSE([AC_LANG_PROGRAM(
600 [[
601 #include <sys/types.h>
602 #include <stdlib.h>
603 #include <string.h>
604 #include <stdio.h>
605 #include <sys/socket.h>
606 #include <sys/un.h>
607 #include <errno.h>
608 ]],
609 [[
610   int listen_fd;
611   struct sockaddr_un addr;
612   
613   listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
614   
615   if (listen_fd < 0)
616     {
617       fprintf (stderr, "socket() failed: %s\n", strerror (errno));
618       exit (1);
619     }
620
621   memset (&addr, '\0', sizeof (addr));
622   addr.sun_family = AF_UNIX;
623   strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
624   addr.sun_path[0] = '\0'; /* this is what makes it abstract */
625   
626   if (bind (listen_fd, (struct sockaddr*) &addr, SUN_LEN (&addr)) < 0)
627     {
628        fprintf (stderr, "Abstract socket namespace bind() failed: %s\n", 
629                 strerror (errno));
630        exit (1);
631     }
632   else 
633     exit (0);
634 ]])],
635               [have_abstract_sockets=yes],
636               [have_abstract_sockets=no])
637 AC_LANG_POP(C)
638 AC_MSG_RESULT($have_abstract_sockets)
639
640 if test x$enable_abstract_sockets = xyes; then
641     if test x$have_abstract_sockets = xno; then
642         AC_MSG_ERROR([Abstract sockets explicitly required, and support not detected.])
643     fi
644 fi
645
646 if test x$enable_abstract_sockets = xno; then
647    have_abstract_sockets=no;
648 fi
649
650 if test x$have_abstract_sockets = xyes ; then
651    DBUS_PATH_OR_ABSTRACT=abstract
652    AC_DEFINE(HAVE_ABSTRACT_SOCKETS,1,[Have abstract socket namespace])
653 else
654    DBUS_PATH_OR_ABSTRACT=path
655 fi
656
657 # this is used in addresses to prefer abstract, e.g. 
658 # unix:path=/foo or unix:abstract=/foo 
659 AC_SUBST(DBUS_PATH_OR_ABSTRACT)
660
661 #### Sort out XML library
662
663 # see what we have
664 AC_CHECK_LIB(expat, XML_ParserCreate_MM,
665              [ AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false) ],
666              have_expat=false)
667
668 PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= 2.6.0, have_libxml=true, have_libxml=false)
669
670 # see what we want to use
671 dbus_use_libxml=false
672 dbus_use_expat=false
673 if test x$with_xml = xexpat; then
674         dbus_use_expat=true
675         if ! $have_expat ; then
676            AC_MSG_ERROR([Explicitly requested expat but expat not found])
677         fi
678 elif test x$with_xml = xlibxml; then
679         dbus_use_libxml=true
680         if ! $have_libxml ; then
681            AC_MSG_ERROR([Explicitly requested libxml but libxml not found])
682         fi
683 else
684         ### expat is the default because libxml can't currently survive 
685         ### our brutal OOM-handling unit test setup.
686         ### http://bugzilla.gnome.org/show_bug.cgi?id=109368
687         if $have_expat ; then
688                 with_xml=expat
689                 dbus_use_expat=true
690         elif $have_libxml ; then
691                 with_xml=libxml
692                 dbus_use_libxml=true
693         else
694                 AC_MSG_ERROR([No XML library found, check config.log for failed attempts])
695         fi
696 fi
697
698 AM_CONDITIONAL(DBUS_USE_EXPAT, $dbus_use_expat)
699 AM_CONDITIONAL(DBUS_USE_LIBXML, $dbus_use_libxml)
700
701 if $dbus_use_expat; then
702    XML_LIBS=-lexpat
703    XML_CFLAGS=
704 fi
705 if $dbus_use_libxml; then
706    XML_LIBS=$LIBXML_LIBS
707    XML_CFLAGS=$LIBXML_CFLAGS
708 fi
709
710 # SELinux detection
711 if test x$enable_selinux = xno ; then
712     have_selinux=no;
713 else
714     # See if we have SELinux library
715     AC_CHECK_LIB(selinux, is_selinux_enabled, 
716                  have_selinux=yes, have_selinux=no)
717
718     # see if we have the SELinux header with the new D-Bus stuff in it
719     if test x$have_selinux = xyes ; then
720         AC_MSG_CHECKING([for DBUS Flask permissions in selinux/av_permissions.h])
721         AC_TRY_COMPILE([#include <selinux/av_permissions.h>],
722                         [#ifdef DBUS__ACQUIRE_SVC return 0;
723                          #else
724                          #error DBUS__ACQUIRE_SVC not defined
725                          #endif],
726                         have_selinux=yes, have_selinux=no)
727         AC_MSG_RESULT($have_selinux)
728     fi
729
730     if test x$enable_selinux = xauto ; then
731         if test x$have_selinux = xno ; then
732                 AC_MSG_WARN([Sufficiently new SELinux library not found])
733         fi
734     else 
735         if test x$have_selinux = xno ; then
736                 AC_MSG_ERROR([SElinux explicitly required, and SELinux library not found])
737         fi
738     fi
739 fi
740
741 AM_CONDITIONAL(HAVE_SELINUX, test x$have_selinux = xyes)
742
743 if test x$have_selinux = xyes ; then
744     SELINUX_LIBS="-lselinux -lpthread"
745     AC_DEFINE(HAVE_SELINUX,1,[SELinux support])
746 else
747     SELINUX_LIBS=
748 fi
749
750 # dnotify checks
751 if test x$enable_dnotify = xno ; then
752     have_dnotify=no;
753 else
754     if test x$target_os = xlinux-gnu -o x$target_os = xlinux; then
755         have_dnotify=yes;       
756     else
757         have_dnotify=no;
758     fi
759 fi
760
761 dnl check if dnotify backend is enabled
762 if test x$have_dnotify = xyes; then
763    AC_DEFINE(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX,1,[Use dnotify on Linux])
764 fi
765
766 AM_CONDITIONAL(DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX, test x$have_dnotify = xyes)
767
768 # kqueue checks
769 if test x$enable_kqueue = xno ; then
770     have_kqueue=no
771 else
772     have_kqueue=yes
773     AC_CHECK_HEADER(sys/event.h, , have_kqueue=no)
774     AC_CHECK_FUNC(kqueue, , have_kqueue=no)
775
776     if test x$enable_kqueue = xyes -a x$have_kqueue = xno; then
777         AC_MSG_ERROR(kqueue support explicitly enabled but not available)
778     fi
779 fi
780
781 dnl check if kqueue backend is enabled
782 if test x$have_kqueue = xyes; then
783    AC_DEFINE(DBUS_BUS_ENABLE_KQUEUE,1,[Use kqueue])
784 fi
785
786 AM_CONDITIONAL(DBUS_BUS_ENABLE_KQUEUE, test x$have_kqueue = xyes) 
787
788 dnl console owner file
789 if test x$enable_console_owner_file = xno ; then
790     have_console_owner_file=no;
791 else
792     case $target_os in
793     solaris*)
794         have_console_owner_file=yes;
795         AC_DEFINE(HAVE_CONSOLE_OWNER_FILE,1,[Have console owner file])
796         ;;
797     *)
798         have_console_owner_file=no;;
799     esac
800 fi
801
802 AM_CONDITIONAL(HAVE_CONSOLE_OWNER_FILE, test x$have_console_owner_file = xyes)
803
804 #### Set up final flags
805 DBUS_CLIENT_CFLAGS=
806 DBUS_CLIENT_LIBS=
807 AC_SUBST(DBUS_CLIENT_CFLAGS)
808 AC_SUBST(DBUS_CLIENT_LIBS)
809
810 DBUS_BUS_CFLAGS=$XML_CFLAGS
811 DBUS_BUS_LIBS="$XML_LIBS $SELINUX_LIBS $INTLLIBS"
812 AC_SUBST(DBUS_BUS_CFLAGS)
813 AC_SUBST(DBUS_BUS_LIBS)
814
815 DBUS_TEST_CFLAGS=
816 DBUS_TEST_LIBS=
817 AC_SUBST(DBUS_TEST_CFLAGS)
818 AC_SUBST(DBUS_TEST_LIBS)
819
820 ### X11 detection
821 AC_PATH_XTRA
822
823 ## for now enable_x11 just tracks have_x11, 
824 ## there's no --enable-x11
825 if test x$no_x = xyes ; then
826    have_x11=no
827    enable_x11=no
828 else
829    have_x11=yes
830    enable_x11=yes
831 fi
832
833 if test x$enable_x11 = xyes ; then
834    AC_DEFINE(DBUS_BUILD_X11,1,[Build X11-dependent code])
835    DBUS_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
836    DBUS_X_CFLAGS="$X_CFLAGS"
837 else
838    DBUS_X_LIBS=
839    DBUS_X_CFLAGS=
840 fi
841
842 AC_SUBST(DBUS_X_CFLAGS)
843 AC_SUBST(DBUS_X_LIBS)
844
845 ### Doxygen Documentation
846
847 AC_PATH_PROG(DOXYGEN, doxygen, no)
848
849 AC_MSG_CHECKING([whether to build Doxygen documentation])
850
851 if test x$DOXYGEN = xno ; then
852     have_doxygen=no
853 else
854     have_doxygen=yes
855 fi
856
857 if test x$enable_doxygen_docs = xauto ; then
858     if test x$have_doxygen = xno ; then
859         enable_doxygen_docs=no
860     else
861         enable_doxygen_docs=yes
862     fi
863 fi
864
865 if test x$enable_doxygen_docs = xyes; then
866     if test x$have_doxygen = xno; then
867         AC_MSG_ERROR([Building Doxygen docs explicitly required, but Doxygen not found])
868     fi
869 fi
870
871 AM_CONDITIONAL(DBUS_DOXYGEN_DOCS_ENABLED, test x$enable_doxygen_docs = xyes)
872 AC_MSG_RESULT(yes)
873
874 ### XML Documentation
875
876 AC_PATH_PROG(XMLTO, xmlto, no)
877
878 AC_MSG_CHECKING([whether to build XML documentation])
879
880 if test x$XMLTO = xno ; then
881     have_xmlto=no
882 else
883     have_xmlto=yes
884 fi
885
886 if test x$enable_xml_docs = xauto ; then
887     if test x$have_xmlto = xno ; then
888         enable_xml_docs=no
889     else
890         enable_xml_docs=yes
891     fi
892 fi
893
894 if test x$enable_xml_docs = xyes; then
895     if test x$have_xmlto = xno; then
896         AC_MSG_ERROR([Building XML docs explicitly required, but xmlto not found])
897     fi
898 fi
899
900 AM_CONDITIONAL(DBUS_XML_DOCS_ENABLED, test x$enable_xml_docs = xyes)
901 AC_MSG_RESULT(yes)
902
903 #### Have to go $localstatedir->$prefix/var->/usr/local/var   
904 #### someone please fix this a better way...
905
906 #### find the actual value for $prefix that we'll end up with
907 ##   (I know this is broken and should be done in the Makefile, but
908 ##    that's a major pain and almost nobody actually seems to care)
909 REAL_PREFIX=
910 if test "x$prefix" = "xNONE"; then
911   REAL_PREFIX=$ac_default_prefix
912 else
913   REAL_PREFIX=$prefix
914 fi
915
916 ## temporarily change prefix and exec_prefix
917 old_prefix=$prefix
918 prefix=$REAL_PREFIX
919
920 if test "x$exec_prefix" = xNONE ; then
921    REAL_EXEC_PREFIX=$REAL_PREFIX
922 else
923    REAL_EXEC_PREFIX=$exec_prefix
924 fi
925 old_exec_prefix=$exec_prefix
926 exec_prefix=$REAL_EXEC_PREFIX
927
928 ## eval everything
929 LOCALSTATEDIR_TMP="$localstatedir"
930 EXPANDED_LOCALSTATEDIR=`eval echo $LOCALSTATEDIR_TMP`
931 AC_SUBST(EXPANDED_LOCALSTATEDIR)
932
933 SYSCONFDIR_TMP="$sysconfdir"
934 EXPANDED_SYSCONFDIR=`eval echo $SYSCONFDIR_TMP`
935 AC_SUBST(EXPANDED_SYSCONFDIR)
936
937 BINDIR_TMP="$bindir"
938 EXPANDED_BINDIR=`eval echo $BINDIR_TMP`
939 AC_SUBST(EXPANDED_BINDIR)
940
941 LIBDIR_TMP="$libdir"
942 EXPANDED_LIBDIR=`eval echo $LIBDIR_TMP`
943 AC_SUBST(EXPANDED_LIBDIR)
944
945 DATADIR_TMP="$datadir"
946 EXPANDED_DATADIR=`eval echo $DATADIR_TMP`
947 AC_SUBST(EXPANDED_DATADIR)
948
949 ## put prefix and exec_prefix back
950 prefix=$old_prefix
951 exec_prefix=$old_exec_prefix
952
953 #### Check our operating system
954 operating_system=unknown
955 if test -f /etc/redhat-release || test -f $EXPANDED_SYSCONFDIR/redhat-release ; then
956    operating_system=redhat
957 fi
958
959 if test -f /etc/slackware-version || test -f $EXPANDED_SYSCONFDIR/slackware-version ; then
960    operating_system=slackware
961 fi
962
963 #### Sort out init scripts
964
965 if test x$with_init_scripts = x; then
966     if test xredhat = x$operating_system ; then
967         with_init_scripts=redhat
968     else
969         if test xslackware = x$operating_system ; then
970                 with_init_scripts=slackware
971             else
972                 with_init_scripts=none
973         fi
974     fi
975 fi
976
977 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_RED_HAT, test x$with_init_scripts = xredhat)
978
979 AM_CONDITIONAL(DBUS_INIT_SCRIPTS_SLACKWARE, test x$with_init_scripts = xslackware)
980
981 ##### Set up location for system bus socket
982 if ! test -z "$with_system_socket"; then
983    DBUS_SYSTEM_SOCKET=$with_system_socket
984 else
985    DBUS_SYSTEM_SOCKET=${EXPANDED_LOCALSTATEDIR}/run/dbus/system_bus_socket
986 fi
987
988 AC_SUBST(DBUS_SYSTEM_SOCKET)
989 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_SOCKET,"$DBUS_SYSTEM_SOCKET",[The name of the socket the system bus listens on by default])
990
991 ## system bus only listens on local domain sockets, and never 
992 ## on an abstract socket (so only root can create the socket)
993 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS="unix:path=$DBUS_SYSTEM_SOCKET"
994 AC_SUBST(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS)
995 AC_DEFINE_UNQUOTED(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS, "$DBUS_SYSTEM_BUS_DEFAULT_ADDRESS",[The default D-Bus address of the system bus])
996
997 #### Set up the pid file
998 if ! test -z "$with_system_pid_file"; then
999    DBUS_SYSTEM_PID_FILE=$with_system_pid_file
1000 elif test x$with_init_scripts = xredhat ; then
1001    DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/messagebus.pid
1002 else
1003    DBUS_SYSTEM_PID_FILE=${EXPANDED_LOCALSTATEDIR}/run/dbus/pid
1004 fi
1005
1006 AC_SUBST(DBUS_SYSTEM_PID_FILE)
1007
1008 #### Directory to check for console ownership
1009 if ! test -z "$with_console_auth_dir"; then
1010    DBUS_CONSOLE_AUTH_DIR=$with_console_auth_dir
1011 else
1012    DBUS_CONSOLE_AUTH_DIR=/var/run/console/
1013 fi
1014
1015 AC_SUBST(DBUS_CONSOLE_AUTH_DIR)
1016 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_AUTH_DIR, "$DBUS_CONSOLE_AUTH_DIR", [Directory to check for console ownerhip])
1017
1018 #### File to check for console ownership
1019 if test x$have_console_owner_file = xyes; then
1020    if ! test -z "$with_console_owner_file"; then
1021       DBUS_CONSOLE_OWNER_FILE=$with_console_owner_file
1022    else
1023       DBUS_CONSOLE_OWNER_FILE=/dev/console
1024    fi
1025 else
1026   DBUS_CONSOLE_OWNER_FILE=
1027 fi
1028
1029 AC_SUBST(DBUS_CONSOLE_OWNER_FILE)
1030 AC_DEFINE_UNQUOTED(DBUS_CONSOLE_OWNER_FILE, "$DBUS_CONSOLE_OWNER_FILE", [File to check for console ownerhip])
1031
1032 #### User to start the system bus as
1033 if test -z "$with_dbus_user" ; then
1034     DBUS_USER=messagebus
1035 else
1036     DBUS_USER=$with_dbus_user
1037 fi
1038 AC_SUBST(DBUS_USER)
1039 AC_DEFINE_UNQUOTED(DBUS_USER,"$DBUS_USER", [User for running the system BUS daemon])
1040
1041 #### Directory to install dbus-daemon
1042 if test -z "$with_dbus_daemondir" ; then
1043     DBUS_DAEMONDIR=$EXPANDED_BINDIR
1044 else
1045     DBUS_DAEMONDIR=$with_dbus_daemondir
1046 fi
1047 AC_SUBST(DBUS_DAEMONDIR)
1048 AC_DEFINE_UNQUOTED(DBUS_DAEMONDIR,"$DBUS_DAEMONDIR", [Directory for installing the DBUS daemon])
1049
1050 #### Tell tests where to find certain stuff in builddir
1051
1052 DBUS_PWD=`pwd`
1053 AC_DEFUN([TEST_PATH], [
1054 TEST_$1=${DBUS_PWD}/test/$2
1055 AC_DEFINE_UNQUOTED(TEST_$1, "$TEST_$1",
1056                    [Full path to test file test/$2 in builddir])
1057 AC_SUBST(TEST_$1)
1058 ])
1059
1060 TEST_PATH(SERVICE_DIR, data/valid-service-files)
1061 TEST_PATH(SERVICE_BINARY, test-service)
1062 TEST_PATH(SHELL_SERVICE_BINARY, test-shell-service)
1063 TEST_PATH(EXIT_BINARY, test-exit)
1064 TEST_PATH(SEGFAULT_BINARY, test-segfault)
1065 TEST_PATH(SLEEP_FOREVER_BINARY, test-sleep-forever)
1066
1067 #### Find socket directories
1068 if ! test -z "$TMPDIR" ; then
1069    DEFAULT_SOCKET_DIR=$TMPDIR
1070 elif ! test -z "$TEMP" ; then
1071    DEFAULT_SOCKET_DIR=$TEMP
1072 elif ! test -z "$TMP" ; then
1073    DEFAULT_SOCKET_DIR=$TMP
1074 else
1075    DEFAULT_SOCKET_DIR=/tmp
1076 fi
1077
1078 if ! test -z "$with_test_socket_dir" ; then
1079    TEST_SOCKET_DIR="$with_test_socket_dir"
1080 else
1081    TEST_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1082 fi
1083 AC_SUBST(TEST_SOCKET_DIR)
1084 AC_DEFINE_UNQUOTED(DBUS_TEST_SOCKET_DIR, "$TEST_SOCKET_DIR", [Where to put test sockets])
1085
1086 if ! test -z "$with_session_socket_dir" ; then
1087    DBUS_SESSION_SOCKET_DIR="$with_session_socket_dir"
1088 else
1089    DBUS_SESSION_SOCKET_DIR=$DEFAULT_SOCKET_DIR
1090 fi
1091 AC_DEFINE_UNQUOTED(DBUS_SESSION_SOCKET_DIR, "$DBUS_SESSION_SOCKET_DIR", [Where per-session bus puts its sockets])
1092 AC_SUBST(DBUS_SESSION_SOCKET_DIR)
1093
1094 AC_OUTPUT([
1095 Doxyfile
1096 dbus/dbus-arch-deps.h
1097 bus/system.conf
1098 bus/session.conf
1099 bus/messagebus
1100 bus/rc.messagebus
1101 bus/dbus-daemon.1
1102 Makefile
1103 dbus/Makefile
1104 bus/Makefile
1105 tools/Makefile
1106 test/Makefile
1107 test/name-test/Makefile
1108 doc/Makefile
1109 dbus-1.pc
1110 test/data/valid-config-files/debug-allow-all.conf
1111 test/data/valid-config-files/debug-allow-all-sha1.conf
1112 test/data/valid-service-files/debug-echo.service
1113 test/data/valid-service-files/debug-segfault.service
1114 test/data/valid-service-files/debug-shell-echo-success.service
1115 test/data/valid-service-files/debug-shell-echo-fail.service
1116 ])
1117
1118 dnl ==========================================================================
1119 echo "
1120                     D-Bus $VERSION
1121                   ==============
1122
1123         prefix:                   ${prefix}
1124         exec_prefix:              ${exec_prefix}
1125         libdir:                   ${EXPANDED_LIBDIR}
1126         bindir:                   ${EXPANDED_BINDIR}
1127         sysconfdir:               ${EXPANDED_SYSCONFDIR}
1128         localstatedir:            ${EXPANDED_LOCALSTATEDIR}
1129         datadir:                  ${EXPANDED_DATADIR}
1130         source code location:     ${srcdir}
1131         compiler:                 ${CC}
1132         cflags:                   ${CFLAGS}
1133         cppflags:                 ${CPPFLAGS}
1134         cxxflags:                 ${CXXFLAGS}
1135         64-bit int:               ${DBUS_INT64_TYPE}
1136         32-bit int:               ${DBUS_INT32_TYPE}
1137         16-bit int:               ${DBUS_INT16_TYPE}
1138         Doxygen:                  ${DOXYGEN}
1139         xmlto:                    ${XMLTO}"
1140
1141 echo "
1142         Maintainer mode:          ${USE_MAINTAINER_MODE}
1143         gcc coverage profiling:   ${enable_gcov}
1144         Building unit tests:      ${enable_tests}
1145         Building verbose mode:    ${enable_verbose_mode}
1146         Building assertions:      ${enable_asserts}
1147         Building checks:          ${enable_checks}
1148         Building SELinux support: ${have_selinux}
1149         Building dnotify support: ${have_dnotify}
1150         Building X11 code:        ${enable_x11}
1151         Building Doxygen docs:    ${enable_doxygen_docs}
1152         Building XML docs:        ${enable_xml_docs}
1153         Gettext libs (empty OK):  ${INTLLIBS}
1154         Using XML parser:         ${with_xml}
1155         Init scripts style:       ${with_init_scripts}
1156         Abstract socket names:    ${have_abstract_sockets}
1157         System bus socket:        ${DBUS_SYSTEM_SOCKET}
1158         System bus address:       ${DBUS_SYSTEM_BUS_DEFAULT_ADDRESS}
1159         System bus PID file:      ${DBUS_SYSTEM_PID_FILE}
1160         Session bus socket dir:   ${DBUS_SESSION_SOCKET_DIR}
1161         Console auth dir:         ${DBUS_CONSOLE_AUTH_DIR}
1162         Console owner file:       ${have_console_owner_file}
1163         Console owner file path:  ${DBUS_CONSOLE_OWNER_FILE}
1164         System bus user:          ${DBUS_USER}
1165         Session bus services dir: ${EXPANDED_DATADIR}/dbus-1/services
1166         'make check' socket dir:  ${TEST_SOCKET_DIR}
1167 "
1168
1169 if test x$enable_tests = xyes; then
1170         echo "NOTE: building with unit tests increases the size of the installed library and renders it insecure."
1171 fi
1172 if test x$enable_tests = xyes -a x$enable_asserts = xno; then
1173         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)"
1174 fi
1175 if test x$enable_gcov = xyes; then
1176         echo "NOTE: building with coverage profiling is definitely for developers only."
1177 fi
1178 if test x$enable_verbose_mode = xyes; then
1179         echo "NOTE: building with verbose mode increases library size, may slightly increase security risk, and decreases performance."
1180 fi
1181 if test x$enable_asserts = xyes; then
1182         echo "NOTE: building with assertions increases library size and decreases performance."
1183 fi
1184 if test x$enable_checks = xno; then
1185         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."
1186 fi