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