udev: watch for both ACL changes and processes closing devices
[pulseaudio-mirror.git] / configure.ac
blob05312d39ae385090e962de02fad301af2eefd184
1 # -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
4 # This file is part of PulseAudio.
6 # Copyright 2004-2008 Lennart Poettering
7 # Copyright 2006-2007 Pierre Ossman <ossman@cendio.se> for Cendio AB
9 # PulseAudio is free software; you can redistribute it and/or modify it
10 # under the terms of the GNU Lesser General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
14 # PulseAudio is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 # General Public License for more details.
19 # You should have received a copy of the GNU Lesser General Public License
20 # along with PulseAudio; if not, write to the Free Software Foundation,
21 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
23 AC_PREREQ(2.63)
25 AC_INIT([pulseaudio], m4_esyscmd([./git-version-gen .tarball-version]),
26         [mzchyfrnhqvb (at) 0pointer (dot) net])
27 AC_CONFIG_SRCDIR([src/daemon/main.c])
28 AC_CONFIG_MACRO_DIR([m4])
29 AC_CONFIG_HEADERS([config.h])
30 AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax])
32 m4_define(pa_major, `echo $VERSION | cut -d. -f1 | cut -d- -f1`)
33 m4_define(pa_minor, `echo $VERSION | cut -d. -f2 | cut -d- -f1`)
34 m4_define(pa_micro, `echo $VERSION | cut -d. -f3 | cut -d- -f1`)
36 AC_SUBST(PA_MAJOR, pa_major)
37 AC_SUBST(PA_MINOR, pa_minor)
38 AC_SUBST(PA_MICRO, pa_micro)
39 AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)
40 AC_SUBST(PA_MAJORMINORMICRO, pa_major.pa_minor.pa_micro)
41 AC_SUBST(PACKAGE_URL, [http://pulseaudio.org/])
43 AC_SUBST(PA_API_VERSION, 12)
44 AC_SUBST(PA_PROTOCOL_VERSION, 16)
46 # The stable ABI for client applications, for the version info x:y:z
47 # always will hold y=z
48 AC_SUBST(LIBPULSE_VERSION_INFO, [9:0:9])
50 # A simplified, synchronous, ABI-stable interface for client
51 # applications, for the version info x:y:z always will hold y=z
52 AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:3:0])
54 # The ABI-stable network browsing interface for client applications,
55 # for the version info x:y:z always will hold y=z
56 AC_SUBST(LIBPULSE_BROWSE_VERSION_INFO, [1:1:1])
58 # The ABI-stable GLib adapter for client applications, for the version
59 # info x:y:z always will hold y=z
60 AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:4:0])
62 AC_CANONICAL_HOST
63 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
65 if type -p stow > /dev/null && test -d /usr/local/stow ; then
66    AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
67    ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
70 #### Platform hacks ####
72 case $host in
73    *-*-solaris* )
74       AC_DEFINE(_XOPEN_SOURCE,        600, Needed to get declarations for msg_control and msg_controllen on Solaris)
75       AC_DEFINE(__EXTENSIONS__,         1, Needed to get declarations for msg_control and msg_controllen on Solaris)
76       ;;
77    *-*-darwin* )
78       AC_DEFINE([_POSIX_C_SOURCE], [200112L], [Needed to get clock_gettime on Mac OS X])
79       AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
80       ;;
81 esac
83 AM_SILENT_RULES([yes])
85 #### Checks for programs. ####
87 # mkdir -p
89 AC_PROG_MKDIR_P
91 # CC
93 AC_PROG_CC
94 AC_PROG_CC_C99
95 AM_PROG_CC_C_O
96 AC_PROG_GCC_TRADITIONAL
97 AC_USE_SYSTEM_EXTENSIONS
99 # M4
101 AC_CHECK_PROGS([M4], gm4 m4, no)
102 if test "x$M4" = xno ; then
103    AC_MSG_ERROR([m4 missing])
106 dnl Compiler flags
107 CC_CHECK_CFLAGS_APPEND([-Wall -W -Wextra -pipe -Wno-long-long -Winline -Wvla -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option])
109 dnl Linker flags.
110 dnl Check whether the linker supports the -version-script option.
112 dnl This variable is used to make sure ${srcdir} is expanded and not
113 dnl passed to the CC_CHECK_LDFLAGS macro as a name.
114 tmp_ldflag="-Wl,-version-script=${srcdir}/src/map-file"
116 CC_CHECK_LDFLAGS([${tmp_ldflag}],
117     [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
118 AC_SUBST([VERSIONING_LDFLAGS])
120 dnl Use immediate (now) bindings; avoids the funky re-call in itself
121 dnl  the -z now syntax is lifted from Sun's linker and works with GNU's too
122 dnl  other linkes might be added later
123 CC_CHECK_LDFLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS="-Wl,-z,now"])
124 AC_SUBST([IMMEDIATE_LDFLAGS])
126 dnl On ELF systems we don't want the libraries to be unloaded since we
127 dnl don't clean them up properly, so we request the nodelete flag to be
128 dnl enabled.
130 dnl On other systems, we don't really know how to do that, but it's
131 dnl welcome if somebody can tell.
132 CC_CHECK_LDFLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS="-Wl,-z,nodelete"])
133 AC_SUBST([NODELETE_LDFLAGS])
135 dnl Check for the proper way to build libraries that have no undefined
136 dnl symbols; on some hosts this needs to be avoided but the macro
137 dnl takes care of it.
138 CC_NOUNDEFINED
140 dnl Check whether to build tests by default (as compile-test) or not
141 AC_ARG_ENABLE([default-build-tests],
142     AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
144 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
146 # Native atomic operation support
147 AC_ARG_ENABLE([atomic-arm-linux-helpers],
148     AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]),
149         [
150             case "${enableval}" in
151                 yes) atomic_arm_linux_helpers=yes ;;
152                 no) atomic_arm_linux_helpers=no ;;
153                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
154             esac
155         ],
156         [atomic_arm_linux_helpers=auto])
158 AC_ARG_ENABLE([atomic-arm-memory-barrier],
159     AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]),
160         [
161             case "${enableval}" in
162                 yes) AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers]) ;;
163                 no) ;;
164                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
165             esac
166         ],)
168 AC_ARG_ENABLE([netbsd-atomic-ops],
169     AS_HELP_STRING([--enable-netbsd-atomic-ops],[Use the native NetBSD atomic_ops implementation]),
170         [
171             case "${enableval}" in
172                 yes) atomic_netbsd_helpers=yes ;;
173                 no) atomic_netbsd_helpers=no ;;
174                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-netbsd-atomic-ops) ;;
175             esac
176         ],
177         [atomic_netbsd_helpers=auto])
179 AC_MSG_CHECKING([target operating system])
180 case $host in
181         *-*-linux*)
182             AC_MSG_RESULT([linux])
183             pulse_target_os=linux
184         ;;
185         *-*-netbsd*)
186             AC_MSG_RESULT([netbsd])
187             pulse_target_os=netbsd
188         ;;
189         *)
190             AC_MSG_RESULT([unknown])
191             pulse_target_os=unknown
192         ;;
193 esac
195 # If everything else fails use libatomic_ops
196 need_libatomic_ops=yes
198 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
199   pulseaudio_cv_sync_bool_compare_and_swap,
200   [AC_LINK_IFELSE(
201      AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
202      [pulseaudio_cv_sync_bool_compare_and_swap=yes],
203      [pulseaudio_cv_sync_bool_compare_and_swap=no])
204   ])
206 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
207     AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
208     need_libatomic_ops=no
209 else
210     # HW specific atomic ops stuff
211     AC_MSG_CHECKING([architecture for native atomic operations])
212     case $host_cpu in
213         arm*)
214             AC_MSG_RESULT([arm])
215             AC_MSG_CHECKING([whether we can use Linux kernel helpers])
216             # The Linux kernel helper functions have been there since 2.6.16. However
217             # compile time checking for kernel version in cross compile environment
218             # (which is usually the case for arm cpu) is tricky (or impossible).
219             if test "x$pulse_target_os" = "xlinux" && test "x$atomic_arm_linux_helpers" != "xno"; then
220                 AC_MSG_RESULT([yes])
221                 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
222                 need_libatomic_ops=no
223             else
224                AC_MSG_RESULT([no])
225                AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
226                  pulseaudio_cv_support_arm_atomic_ops,
227                  [AC_COMPILE_IFELSE(
228                     AC_LANG_PROGRAM([],
229                       [[volatile int a=0;
230                         int o=0, n=1, r;
231                         asm volatile ("ldrex    %0, [%1]\n"
232                                          "subs  %0, %0, %2\n"
233                                          "strexeq %0, %3, [%1]\n"
234                                          : "=&r" (r)
235                                          : "r" (&a), "Ir" (o), "r" (n)
236                                          : "cc");
237                         return (a==1 ? 0 : -1);
238                       ]]),
239                     [pulseaudio_cv_support_arm_atomic_ops=yes],
240                     [pulseaudio_cv_support_arm_atomic_ops=no])
241                  ])
242                AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
243                    AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARMv6 instructions.])
244                    need_libatomic_ops=no
245                  ])
246            fi
247         ;;
248         *)
249             if test "x$pulse_target_os" = "xnetbsd" && test "x$atomic_netbsd_helpers" = "xyes"; then
250                 AC_MSG_RESULT([yes])
251                 AC_DEFINE_UNQUOTED(NETBSD_ATOMIC_OPS, 1, [netbsd implementation])
252                 need_libatomic_ops=no
253             else
254                 AC_MSG_RESULT([unknown])
255             fi
256         ;;
257     esac
260 CC_CHECK_TLS
262 AC_CACHE_CHECK([whether $CC knows _Bool],
263   pulseaudio_cv__Bool,
264   [AC_COMPILE_IFELSE(
265      AC_LANG_PROGRAM([], [[_Bool b;]]),
266      [pulseaudio_cv__Bool=yes],
267      [pulseaudio_cv__Bool=no])
268   ])
270 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [
271     AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.])
272   ])
274 #### libtool stuff ####
275 LT_PREREQ(2.2)
276 LT_INIT([dlopen win32-dll disable-static])
278 dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
279 dnl exactly which version of libltdl is present in the system, so we
280 dnl just assume that it's a working version as long as we have the
281 dnl library and the header files.
283 dnl As an extra safety device, check for lt_dladvise_init() which is
284 dnl only implemented in libtool 2.x, and refine as we go if we have
285 dnl refined requirements.
287 dnl Check the header files first since the system may have a
288 dnl libltdl.so for runtime, but no headers, and we want to bail out as
289 dnl soon as possible.
291 dnl We don't need any special variable for this though, since the user
292 dnl can give the proper place to find libltdl through the standard
293 dnl variables like LDFLAGS and CPPFLAGS.
295 AC_CHECK_HEADER([ltdl.h],
296     [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
297     [LIBLTDL=])
299 AS_IF([test "x$LIBLTDL" = "x"],
300     [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
301 AC_SUBST([LIBLTDL])
303 #### Determine build environment ####
305 os_is_win32=0
307 case "$host_os" in
308         mingw*)
309         AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
310         os_is_win32=1
311                 ;;
312         esac
314 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
316 ###################################
317 #   Basic environment checks      #
318 ###################################
320 #### Checks for header files. ####
322 # ISO
323 AC_HEADER_STDC
325 # POSIX
326 AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
327     netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
328     sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \
329     sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
330 AC_CHECK_HEADERS([netinet/ip.h], [], [],
331                  [#include <sys/types.h>
332                   #if HAVE_NETINET_IN_H
333                   # include <netinet/in.h>
334                   #endif
335                   #if HAVE_NETINET_IN_SYSTM_H
336                   # include <netinet/in_systm.h>
337                   #endif
338                  ])
339 AC_CHECK_HEADERS([regex.h], [HAVE_REGEX=1], [HAVE_REGEX=0])
340 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
342 AM_CONDITIONAL(HAVE_REGEX, test "x$HAVE_REGEX" = "x1")
343 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
345 # Linux
346 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
348 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
350 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
352 # Solaris
353 AC_CHECK_HEADERS_ONCE([sys/filio.h])
355 # Windows
356 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
358 # NetBSD
359 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
361 # Other
362 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
363 AC_CHECK_HEADERS_ONCE([byteswap.h])
364 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
365 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
366 AC_CHECK_HEADERS_ONCE([execinfo.h])
368 #### Typdefs, structures, etc. ####
370 AC_C_CONST
371 AC_C_BIGENDIAN
372 AC_TYPE_PID_T
373 AC_TYPE_SIZE_T
374 AC_CHECK_TYPES(ssize_t, , [AC_DEFINE([ssize_t], [signed long],
375     [Define ssize_t if it is not done by the standard libs.])])
376 AC_TYPE_OFF_T
378 AC_TYPE_UID_T
379 AC_CHECK_DECLS(environ)
381 AC_CHECK_DEFINE([SIGXCPU], [signal.h], [
382 HAVE_SIGXCPU=1
383 AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?])
384 ], [HAVE_SIGXCPU=0])
385 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
387 # Solaris lacks this
388 AC_CHECK_DEFINE([INADDR_NONE], [netinet/in.h], [],
389     [AC_CHECK_DEFINE([INADDR_NONE], [winsock2.h], [],
390         [AC_DEFINE([INADDR_NONE],  [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
392 #### POSIX threads ####
394 ACX_PTHREAD
396 #### Check for libs ####
398 # ISO
399 AC_SEARCH_LIBS([pow], [m])
401 # POSIX
402 AC_SEARCH_LIBS([sched_setscheduler], [rt])
403 AC_SEARCH_LIBS([dlopen], [dl])
404 AC_SEARCH_LIBS([shm_open], [rt])
405 AC_SEARCH_LIBS([inet_ntop], [nsl])
406 AC_SEARCH_LIBS([timer_create], [rt])
408 # BSD
409 AC_SEARCH_LIBS([connect], [socket])
410 AC_SEARCH_LIBS([backtrace], [execinfo])
412 # Non-standard
414 # This magic is needed so we do not needlessly add static libs to the win32
415 # build, disabling its ability to make dlls.
416 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
418 #### Check for functions ####
420 # ISO
421 AC_CHECK_FUNCS_ONCE([lrintf strtof])
423 # POSIX
424 AC_FUNC_FORK
425 AC_FUNC_GETGROUPS
426 AC_FUNC_SELECT_ARGTYPES
427 AC_CHECK_FUNCS_ONCE([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \
428     getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \
429     pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
430     sigaction sleep sysconf pthread_setaffinity_np])
431 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
433 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
435 # X/OPEN
436 AC_CHECK_FUNCS_ONCE([readlink])
438 # SUSv2
439 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
441 # SUSv3
442 AC_CHECK_FUNCS_ONCE([strerror_r])
444 # BSD
445 AC_CHECK_FUNCS_ONCE([lstat])
447 # Non-standard
449 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l])
451 AC_FUNC_ALLOCA
453 AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
454   pulseaudio_cv_PTHREAD_PRIO_INHERIT,
455   [save_CC=$CC; CC=$PTHREAD_CC
456    save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS
457    save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS
458    AC_LINK_IFELSE(
459      AC_LANG_PROGRAM(
460        [[
461          #include <pthread.h>
462        ]],
463        [[int i = PTHREAD_PRIO_INHERIT;]]),
464      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes],
465      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=no])
466    CC=$save_CC
467    CFLAGS=$save_CFLAGS
468    LIBS=$save_LIBS
469   ])
471 AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
472     AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
473   ])
475 AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation])
477 #### Large File-Support (LFS) ####
479 AC_SYS_LARGEFILE
481 # Check for open64 to know if the current system does have open64() and similar functions
482 AC_CHECK_FUNCS_ONCE([open64])
484 #### [lib]iconv ####
486 AM_ICONV
488 IT_PROG_INTLTOOL([0.35.0])
489 GETTEXT_PACKAGE=pulseaudio
490 AC_SUBST([GETTEXT_PACKAGE])
491 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
492 AM_GLIB_GNU_GETTEXT
494 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
495 AC_SUBST(pulselocaledir)
497 ###################################
498 #      External libraries         #
499 ###################################
501 #### pkg-config ####
503 PKG_PROG_PKG_CONFIG
505 #### X11 (optional) ####
507 AC_ARG_ENABLE([x11],
508     AS_HELP_STRING([--disable-x11],[Disable optional X11 support]),
509         [
510             case "${enableval}" in
511                 yes) x11=yes ;;
512                 no) x11=no ;;
513                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
514             esac
515         ],
516         [x11=auto])
518 if test "x${x11}" != xno ; then
519     PKG_CHECK_MODULES(X11, [ x11 ice sm xtst ],
520         HAVE_X11=1,
521         [
522             HAVE_X11=0
523             if test "x$x11" = xyes ; then
524                 AC_MSG_ERROR([*** X11 not found])
525             fi
526         ])
527 else
528     HAVE_X11=0
531 if test "x${HAVE_X11}" = x1 ; then
532    AC_DEFINE([HAVE_X11], 1, [Have X11?])
535 AC_SUBST(X11_CFLAGS)
536 AC_SUBST(X11_LIBS)
537 AC_SUBST(HAVE_X11)
538 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
540 #### Capabilities (optional) ####
542 CAP_LIBS=''
544 AC_ARG_WITH(
545         [caps],
546         AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
548 if test "x${with_caps}" != "xno"; then
549     AC_SEARCH_LIBS([cap_init], [cap], [], [
550                     if test "x${with_caps}" = "xyes" ; then
551                         AC_MSG_ERROR([*** POSIX caps libraries not found])
552                     fi])
553     AC_CHECK_HEADERS([sys/capability.h], [], [
554                     if test "x${with_caps}" = "xyes" ; then
555                         AC_MSG_ERROR([*** POSIX caps headers not found])
556                     fi])
559 #### Valgrind (optional) ####
561 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
563 #### Sound file ####
565 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
566 AC_SUBST(LIBSNDFILE_CFLAGS)
567 AC_SUBST(LIBSNDFILE_LIBS)
569 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
570 AC_SUBST(LIBSPEEX_CFLAGS)
571 AC_SUBST(LIBSPEEX_LIBS)
573 #### atomic-ops ###
575 AC_MSG_CHECKING([whether we need libatomic_ops])
576 if test "x$need_libatomic_ops" = "xyes"; then
577    AC_MSG_RESULT([yes])
578    AC_CHECK_HEADERS([atomic_ops.h], [], [
579    AC_MSG_ERROR([*** libatomic-ops headers not found])
580    ])
582    # Win32 does not need the lib and breaks horribly if we try to include it
583    if test "x$os_is_win32" != "x1" ; then
584        LIBS="$LIBS -latomic_ops"
585    fi
586 else
587    AC_MSG_RESULT([no])
590 #### Libsamplerate support (optional) ####
592 AC_ARG_ENABLE([samplerate],
593     AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]),
594         [
595             case "${enableval}" in
596                 yes) samplerate=yes ;;
597                 no) samplerate=no ;;
598                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-samplerate) ;;
599             esac
600         ],
601         [samplerate=auto])
603 if test "x${samplerate}" != xno ; then
604     PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ],
605         HAVE_LIBSAMPLERATE=1,
606         [
607             HAVE_LIBSAMPLERATE=0
608             if test "x$samplerate" = xyes ; then
609                 AC_MSG_ERROR([*** Libsamplerate not found])
610             fi
611         ])
612 else
613     HAVE_LIBSAMPLERATE=0
616 if test "x${HAVE_LIBSAMPLERATE}" = x1 ; then
617    AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])
620 AC_SUBST(LIBSAMPLERATE_CFLAGS)
621 AC_SUBST(LIBSAMPLERATE_LIBS)
622 AC_SUBST(HAVE_LIBSAMPLERATE)
623 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
625 #### Database support ####
627 HAVE_TDB=0
628 HAVE_GDBM=0
629 HAVE_SIMPLEDB=0
631 AC_ARG_WITH(
632         [database],
633         AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
635 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then
636     PKG_CHECK_MODULES(TDB, [ tdb ],
637         [
638             HAVE_TDB=1
639             with_database=tdb
640         ], [
641             if test "x${with_database}" = "xtdb" ; then
642                 AC_MSG_ERROR([*** tdb not found])
643             fi
644         ])
647 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then
648    have_gdbm=yes
650    AC_CHECK_LIB(gdbm, gdbm_open, [], [have_gdbm=no])
651    AC_CHECK_HEADERS(gdbm.h, [], [have_gdbm=no])
653    if test "x${have_gdbm}" = "xyes" ; then
654        HAVE_GDBM=1
655        GDBM_CFLAGS=
656        GDBM_LIBS=-lgdbm
657        with_database=gdbm
658    elif test "x${with_database}" = "xgdbm"; then
659        AC_MSG_ERROR([*** gdbm not found])
660    fi
663 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xsimple" ; then
664     HAVE_SIMPLEDB=1
665     with_database=simple
668 if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1 -a "x${HAVE_SIMPLEDB}" != x1; then
669    AC_MSG_ERROR([*** missing database backend])
672 if test "x${HAVE_TDB}" = x1 ; then
673    AC_DEFINE([HAVE_TDB], 1, [Have tdb?])
676 if test "x${HAVE_GDBM}" = x1 ; then
677    AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
680 if test "x${HAVE_SIMPLEDB}" = x1 ; then
681     AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?])
684 AC_SUBST(TDB_CFLAGS)
685 AC_SUBST(TDB_LIBS)
686 AC_SUBST(HAVE_TDB)
687 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
689 AC_SUBST(GDBM_CFLAGS)
690 AC_SUBST(GDBM_LIBS)
691 AC_SUBST(HAVE_GDBM)
692 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
694 AC_SUBST(HAVE_SIMPLEDB)
695 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
697 #### OSS support (optional) ####
699 AC_ARG_ENABLE([oss-output],
700     AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]),
701         [
702             case "${enableval}" in
703                 yes) oss_output=yes ;;
704                 no) oss_output=no ;;
705                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-output) ;;
706             esac
707         ],
708         [oss_output=auto])
710 AC_ARG_ENABLE([oss-wrapper],
711     AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]),
712         [
713             case "${enableval}" in
714                 yes) oss_wrapper=yes ;;
715                 no) oss_wrapper=no ;;
716                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-wrapper) ;;
717             esac
718         ],
719         [oss_wrapper=auto])
721 if test "x${oss_output}" != xno || test "x${oss_wrapper}" != "xno"; then
722     AC_CHECK_HEADERS([sys/soundcard.h],
723         [
724             if test "x${oss_output}" != "xno"; then
725                 AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?])
726             fi
727             if test "x${oss_wrapper}" != "xno"; then
728                 AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?])
729             fi
730             HAVE_OSS=1
731         ],
732         [
733             HAVE_OSS=0
734             if test "x$oss_output" = xyes || test "x$oss_wrapper" = "xyes"; then
735                 AC_MSG_ERROR([*** OSS support not found])
736             fi
737         ])
738 else
739     HAVE_OSS=0
742 AC_SUBST(HAVE_OSS)
743 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS" = x1 && test "x${oss_output}" != "xno"])
744 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS" = x1 && test "x${oss_wrapper}" != "xno"])
746 #### ALSA support (optional) ####
748 AC_ARG_ENABLE([alsa],
749     AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
750         [
751             case "${enableval}" in
752                 yes) alsa=yes ;;
753                 no) alsa=no ;;
754                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
755             esac
756         ],
757         [alsa=auto])
759 if test "x${alsa}" != xno ; then
760     PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
761         [
762             HAVE_ALSA=1
763             AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
764         ],
765         [
766             HAVE_ALSA=0
767             if test "x$alsa" = xyes ; then
768                 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
769             fi
770         ])
771 else
772     HAVE_ALSA=0
775 AC_SUBST(ASOUNDLIB_CFLAGS)
776 AC_SUBST(ASOUNDLIB_LIBS)
777 AC_SUBST(HAVE_ALSA)
778 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
780 #### Solaris audio support (optional) ####
782 AC_ARG_ENABLE([solaris],
783     AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
784         [
785             case "${enableval}" in
786                 yes) solaris=yes ;;
787                 no) solaris=no ;;
788                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
789             esac
790         ],
791         [solaris=auto])
793 if test "x${solaris}" != xno ; then
794     AC_CHECK_HEADERS([sys/audio.h],
795         [
796             HAVE_SOLARIS=1
797             AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
798         ],
799         [
800             HAVE_SOLARIS=0
801             if test "x$solaris" = xyes ; then
802                 AC_MSG_ERROR([*** Solaris audio support not found])
803             fi
804         ])
805 else
806     HAVE_SOLARIS=0
809 AC_SUBST(HAVE_SOLARIS)
810 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
812 #### GLib 2 support (optional) ####
814 AC_ARG_ENABLE([glib2],
815     AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
816         [
817             case "${enableval}" in
818                 yes) glib2=yes ;;
819                 no) glib2=no ;;
820                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
821             esac
822         ],
823         [glib2=auto])
825 if test "x${glib2}" != xno ; then
826     PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
827         HAVE_GLIB20=1,
828         [
829             HAVE_GLIB20=0
830             if test "x$glib2" = xyes ; then
831                 AC_MSG_ERROR([*** GLib 2 support not found])
832             fi
833         ])
834 else
835     HAVE_GLIB20=0
838 AC_SUBST(GLIB20_CFLAGS)
839 AC_SUBST(GLIB20_LIBS)
840 AC_SUBST(HAVE_GLIB20)
841 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
843 if test "x$HAVE_GLIB20" = x1 ; then
844    AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
847 #### GTK2 support (optional) ####
849 AC_ARG_ENABLE([gtk2],
850     AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
851         [
852             case "${enableval}" in
853                 yes) gtk2=yes ;;
854                 no) gtk2=no ;;
855                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
856             esac
857         ],
858         [gtk2=auto])
860 if test "x${gtk2}" != xno ; then
861     PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
862         HAVE_GTK20=1,
863         [
864             HAVE_GTK20=0
865             if test "x$gtk2" = xyes ; then
866                 AC_MSG_ERROR([*** Gtk+ 2 support not found])
867             fi
868         ])
869 else
870     HAVE_GTK20=0
873 AC_SUBST(GTK20_CFLAGS)
874 AC_SUBST(GTK20_LIBS)
875 AC_SUBST(HAVE_GTK20)
876 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
878 if test "x$HAVE_GTK20" = x1 ; then
879    AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
882 #### GConf support (optional) ####
884 AC_ARG_ENABLE([gconf],
885     AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
886         [
887             case "${enableval}" in
888                 yes) gconf=yes ;;
889                 no) gconf=no ;;
890                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
891             esac
892         ],
893         [gconf=auto])
895 if test "x${gconf}" != xno ; then
896     PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 ],
897         HAVE_GCONF=1,
898         [
899             HAVE_GCONF=0
900             if test "x$gconf" = xyes ; then
901                 AC_MSG_ERROR([*** GConf support not found])
902             fi
903         ])
904 else
905     HAVE_GCONF=0
908 AC_SUBST(GCONF_CFLAGS)
909 AC_SUBST(GCONF_LIBS)
910 AC_SUBST(HAVE_GCONF)
911 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
913 #### Avahi support (optional) ####
915 AC_ARG_ENABLE([avahi],
916     AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
917         [
918             case "${enableval}" in
919                 yes) avahi=yes ;;
920                 no) avahi=no ;;
921                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
922             esac
923         ],
924         [avahi=auto])
926 if test "x${avahi}" != xno ; then
927     PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
928         HAVE_AVAHI=1,
929         [
930                 HAVE_AVAHI=0
931                 if test "x$avahi" = xyes ; then
932                         AC_MSG_ERROR([*** Avahi support not found])
933                 fi
934         ])
935 else
936     HAVE_AVAHI=0
939 AC_SUBST(AVAHI_CFLAGS)
940 AC_SUBST(AVAHI_LIBS)
941 AC_SUBST(HAVE_AVAHI)
942 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
944 ### LIBOIL ####
946 PKG_CHECK_MODULES(LIBOIL, [ liboil-0.3 >= 0.3.0 ])
947 AC_SUBST(LIBOIL_CFLAGS)
948 AC_SUBST(LIBOIL_LIBS)
950 ### JACK (optional) ####
952 AC_ARG_ENABLE([jack],
953     AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
954         [
955             case "${enableval}" in
956                 yes) jack=yes ;;
957                 no) jack=no ;;
958                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
959             esac
960         ],
961         [jack=auto])
963 if test "x${jack}" != xno ; then
964     PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
965         HAVE_JACK=1,
966         [
967             HAVE_JACK=0
968             if test "x$jack" = xyes ; then
969                 AC_MSG_ERROR([*** JACK support not found])
970             fi
971         ])
972 else
973     HAVE_JACK=0
976 AC_SUBST(JACK_CFLAGS)
977 AC_SUBST(JACK_LIBS)
978 AC_SUBST(HAVE_JACK)
979 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
981 #### Async DNS support (optional) ####
983 AC_ARG_ENABLE([asyncns],
984     AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
985         [
986             case "${enableval}" in
987                 yes) asyncns=yes ;;
988                 no) asyncns=no ;;
989                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
990             esac
991         ],
992         [asyncns=auto])
994 if test "x${asyncns}" != xno ; then
995     PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
996         HAVE_LIBASYNCNS=1,
997         [
998             HAVE_LIBASYNCNS=0
999             if test "x$asyncns" = xyes ; then
1000                 AC_MSG_ERROR([*** Async DNS support not found])
1001             fi
1002         ])
1003 else
1004     HAVE_LIBASYNCNS=0
1007 AC_SUBST(LIBASYNCNS_CFLAGS)
1008 AC_SUBST(LIBASYNCNS_LIBS)
1009 AC_SUBST(HAVE_LIBASYNCNS)
1010 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1012 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
1013    AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
1016 #### TCP wrappers (optional) ####
1018 AC_ARG_ENABLE([tcpwrap],
1019     AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
1020         [
1021             case "${enableval}" in
1022                 yes) tcpwrap=yes ;;
1023                 no) tcpwrap=no ;;
1024                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
1025             esac
1026         ],
1027         [tcpwrap=auto])
1029 if test "x${tcpwrap}" != xno ; then
1030     ACX_LIBWRAP
1031     if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
1032         AC_MSG_ERROR([*** TCP wrappers support not found])
1033     fi
1034 else
1035     LIBWRAP_LIBS=
1038 AC_SUBST(LIBWRAP_LIBS)
1040 #### LIRC support (optional) ####
1042 AC_ARG_ENABLE([lirc],
1043     AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
1044         [
1045             case "${enableval}" in
1046                 yes) lirc=yes ;;
1047                 no) lirc=no ;;
1048                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
1049             esac
1050         ],
1051         [lirc=auto])
1053 if test "x${lirc}" != xno ; then
1054     ACX_LIRC
1055     if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
1056         AC_MSG_ERROR([*** LIRC support not found])
1057     fi
1058 else
1059     HAVE_LIRC=0
1062 AC_SUBST(LIRC_CFLAGS)
1063 AC_SUBST(LIRC_LIBS)
1064 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1066 #### HAL support (optional) ####
1068 AC_ARG_ENABLE([hal],
1069     AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
1070         [
1071             case "${enableval}" in
1072                 yes) hal=yes ;;
1073                 no) hal=no ;;
1074                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
1075             esac
1076         ],
1077         [hal=auto])
1078 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1079     PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
1080         [
1081             HAVE_HAL=1
1082             AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
1083         ],
1084         [
1085             HAVE_HAL=0
1086             if test "x$hal" = xyes ; then
1087                 AC_MSG_ERROR([*** HAL support not found])
1088             fi
1089         ])
1090 else
1091     HAVE_HAL=0
1094 AC_SUBST(HAL_CFLAGS)
1095 AC_SUBST(HAL_LIBS)
1096 AC_SUBST(HAVE_HAL)
1097 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
1099 #### UDEV support (optional) ####
1101 AC_ARG_ENABLE([udev],
1102     AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
1103         [
1104             case "${enableval}" in
1105                 yes) udev=yes ;;
1106                 no) udev=no ;;
1107                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1108             esac
1109         ],
1110         [udev=auto])
1111 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1112     PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ],
1113         [
1114             HAVE_UDEV=1
1115             AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1116         ],
1117         [
1118             HAVE_UDEV=0
1119             if test "x$udev" = xyes ; then
1120                 AC_MSG_ERROR([*** UDEV support not found])
1121             fi
1122         ])
1123 else
1124     HAVE_UDEV=0
1127 AC_SUBST(UDEV_CFLAGS)
1128 AC_SUBST(UDEV_LIBS)
1129 AC_SUBST(HAVE_UDEV)
1130 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1132 #### HAL compat support (optional) ####
1134 AC_ARG_ENABLE([hal-compat],
1135     AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]),
1136         [
1137             case "${enableval}" in
1138                 yes) halcompat=yes ;;
1139                 no) halcompat=no ;;
1140                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal-compat) ;;
1141             esac
1142         ],
1143         [halcompat=auto])
1144 if test "x${halcompat}" != xno -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1" ; then
1145     HAVE_HAL_COMPAT=1
1146     AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
1147 else
1148     HAVE_HAL_COMPAT=0
1151 AC_SUBST(HAVE_HAL_COMPAT)
1152 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1154 #### BlueZ support (optional) ####
1156 AC_ARG_ENABLE([bluez],
1157     AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1158         [
1159             case "${enableval}" in
1160                 yes) bluez=yes ;;
1161                 no) bluez=no ;;
1162                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1163             esac
1164         ],
1165         [bluez=auto])
1166 if test "x${bluez}" != xno ; then
1167     PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1168         HAVE_BLUEZ=1,
1169         [
1170             HAVE_BLUEZ=0
1171             if test "x$bluez" = xyes ; then
1172                 AC_MSG_ERROR([*** BLUEZ support not found])
1173             fi
1174         ])
1175 else
1176     HAVE_BLUEZ=0
1179 AC_SUBST(BLUEZ_CFLAGS)
1180 AC_SUBST(BLUEZ_LIBS)
1181 AC_SUBST(HAVE_BLUEZ)
1182 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1184 #### D-Bus support (optional) ####
1186 AC_ARG_ENABLE([dbus],
1187     AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1188         [
1189             case "${enableval}" in
1190                 yes) dbus=yes ;;
1191                 no) dbus=no ;;
1192                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1193             esac
1194         ],
1195         [dbus=auto])
1197 if test "x$HAVE_HAL" = x1 ; then
1198    dbus=yes
1201 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1203     PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1204         [
1205             HAVE_DBUS=1
1206             saved_LIBS="$LIBS"
1207             LIBS="$LIBS $DBUS_LIBS"
1208             AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1209             LIBS="$saved_LIBS"
1210             AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1211         ],
1212         [
1213             HAVE_DBUS=0
1214             if test "x$dbus" = xyes ; then
1215                 AC_MSG_ERROR([*** D-Bus support not found])
1216             fi
1217         ])
1218 else
1219     HAVE_DBUS=0
1222 AC_SUBST(DBUS_CFLAGS)
1223 AC_SUBST(DBUS_LIBS)
1224 AC_SUBST(HAVE_DBUS)
1225 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1227 ### IPv6 connection support (optional) ###
1229 AC_ARG_ENABLE([ipv6],
1230     AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1231         [
1232             case "${enableval}" in
1233                 yes) ipv6=yes ;;
1234                 no) ipv6=no ;;
1235                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1236             esac
1237         ],
1238         [ipv6=auto])
1240 if test "x${ipv6}" != xno ; then
1241     AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1242     HAVE_IPV6=1
1243 else
1244     HAVE_IPV6=0
1247 #### OpenSSL support (optional) ####
1249 AC_ARG_ENABLE([openssl],
1250     AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1251         [
1252             case "${enableval}" in
1253                 yes) openssl=yes ;;
1254                 no) openssl=no ;;
1255                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1256             esac
1257         ],
1258         [openssl=auto])
1260 if test "x${openssl}" != xno ; then
1262     PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1263         [
1264             HAVE_OPENSSL=1
1265             AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1266         ],
1267         [
1268             HAVE_OPENSSL=0
1269             if test "x$openssl" = xyes ; then
1270                 AC_MSG_ERROR([*** OpenSSL support not found])
1271             fi
1272         ])
1273 else
1274     HAVE_OPENSSL=0
1277 AC_SUBST(OPENSSL_CFLAGS)
1278 AC_SUBST(OPENSSL_LIBS)
1279 AC_SUBST(HAVE_OPENSSL)
1280 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1282 ### Build and Install man pages ###
1283 AC_ARG_ENABLE(manpages,
1284         AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1285 [case "${enableval}" in
1286   yes) manpages=yes ;;
1287   no)  manpages=no ;;
1288   *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1289 esac],[manpages=yes])
1291 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1293 #### PulseAudio system group & user  #####
1295 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1296 if test -z "$with_system_user" ; then
1297     PA_SYSTEM_USER=pulse
1298 else
1299     PA_SYSTEM_USER=$with_system_user
1301 AC_SUBST(PA_SYSTEM_USER)
1302 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1304 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1305 if test -z "$with_system_group" ; then
1306     PA_SYSTEM_GROUP=pulse
1307 else
1308     PA_SYSTEM_GROUP=$with_system_group
1310 AC_SUBST(PA_SYSTEM_GROUP)
1311 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1313 AC_ARG_WITH(access_group,AS_HELP_STRING([--with-access-group=<group>],[Group which is allowed access to a system-wide PulseAudio daemon (pulse-access)]))
1314 if test -z "$with_access_group" ; then
1315     PA_ACCESS_GROUP=pulse-access
1316 else
1317     PA_ACCESS_GROUP=$with_access_group
1319 AC_SUBST(PA_ACCESS_GROUP)
1320 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1322 AC_ARG_ENABLE(
1323         per_user_esound_socket,
1324         AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1325         [
1326             case "${enableval}" in
1327                 yes) per_user_esound_socket=1 ;;
1328                 no) per_user_esound_socket=0 ;;
1329                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1330             esac
1331         ],
1332         [per_user_esound_socket=1])
1334 if test "x$per_user_esound_socket" = "x1"; then
1335    AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1338 #### PulseAudio system runtime dir ####
1339 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1340 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1341 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1342 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1343 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1344 AC_SUBST(PA_SYSTEM_STATE_PATH)
1346 ###################################
1347 #            Output               #
1348 ###################################
1350 AC_ARG_ENABLE([legacy-runtime-dir],
1351         AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1352 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1353         AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1356 AC_ARG_ENABLE(
1357         [static-bins],
1358         AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1359         [STATIC_BINS=1], [STATIC_BINS=0])
1360 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1362 AC_ARG_WITH(
1363         [preopen-mods],
1364         AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1365         [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1366 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1367 if test "x$PREOPEN_MODS" != "xall" ; then
1368     tmpLIBS=""
1369     for mod in $PREOPEN_MODS; do
1370         tmpLIBS="$tmpLIBS module-$mod.la"
1371     done
1372     PREOPEN_MODS="$tmpLIBS"
1373     AC_SUBST(PREOPEN_MODS)
1376 AC_ARG_WITH(
1377         [module-dir],
1378         AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules]),
1379         [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules"])
1381 AC_SUBST(modlibexecdir)
1383 AC_ARG_ENABLE(
1384         [force-preopen],
1385         AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1386         [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1387 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1389 AC_CONFIG_FILES([
1390 Makefile
1391 src/Makefile
1392 man/Makefile
1393 libpulse.pc
1394 libpulse-simple.pc
1395 libpulse-browse.pc
1396 libpulse-mainloop-glib.pc
1397 doxygen/Makefile
1398 doxygen/doxygen.conf
1399 src/pulse/version.h
1400 po/Makefile.in
1403 AC_OUTPUT
1405 # ==========================================================================
1406 ENABLE_X11=no
1407 if test "x$HAVE_X11" = "x1" ; then
1408    ENABLE_X11=yes
1411 ENABLE_OSS_OUTPUT=no
1412 ENABLE_OSS_WRAPPER=no
1413 if test "x$HAVE_OSS" = "x1" ; then
1414    if test "x$enable_oss_output" != "xno"; then
1415       ENABLE_OSS_OUTPUT=yes
1416    fi
1417    if test "x$enable_oss_wrapper" != "xno"; then
1418       ENABLE_OSS_WRAPPER=yes
1419    fi
1422 ENABLE_ALSA=no
1423 if test "x$HAVE_ALSA" = "x1" ; then
1424    ENABLE_ALSA=yes
1427 ENABLE_SOLARIS=no
1428 if test "x$HAVE_SOLARIS" = "x1" ; then
1429    ENABLE_SOLARIS=yes
1432 ENABLE_GTK20=no
1433 if test "x$HAVE_GTK20" = "x1" ; then
1434    ENABLE_GTK20=yes
1437 ENABLE_GLIB20=no
1438 if test "x$HAVE_GLIB20" = "x1" ; then
1439    ENABLE_GLIB20=yes
1442 ENABLE_GCONF=no
1443 if test "x$HAVE_GCONF" = "x1" ; then
1444    ENABLE_GCONF=yes
1447 ENABLE_AVAHI=no
1448 if test "x$HAVE_AVAHI" = "x1" ; then
1449    ENABLE_AVAHI=yes
1452 ENABLE_JACK=no
1453 if test "x$HAVE_JACK" = "x1" ; then
1454    ENABLE_JACK=yes
1457 ENABLE_LIBASYNCNS=no
1458 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1459    ENABLE_LIBASYNCNS=yes
1462 ENABLE_LIRC=no
1463 if test "x$HAVE_LIRC" = "x1" ; then
1464    ENABLE_LIRC=yes
1467 ENABLE_HAL=no
1468 if test "x$HAVE_HAL" = "x1" ; then
1469    ENABLE_HAL=yes
1472 ENABLE_UDEV=no
1473 if test "x$HAVE_UDEV" = "x1" ; then
1474    ENABLE_UDEV=yes
1477 ENABLE_HAL_COMPAT=no
1478 if test "x$HAVE_HAL_COMPAT" = "x1" ; then
1479    ENABLE_HAL_COMPAT=yes
1482 ENABLE_TCPWRAP=no
1483 if test "x${LIBWRAP_LIBS}" != x ; then
1484    ENABLE_TCPWRAP=yes
1487 ENABLE_LIBSAMPLERATE=no
1488 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1489    ENABLE_LIBSAMPLERATE=yes
1492 ENABLE_BLUEZ=no
1493 if test "x${HAVE_BLUEZ}" = "x1" ; then
1494    ENABLE_BLUEZ=yes
1497 ENABLE_GDBM=no
1498 if test "x${HAVE_GDBM}" = "x1" ; then
1499    ENABLE_GDBM=yes
1502 ENABLE_TDB=no
1503 if test "x${HAVE_TDB}" = "x1" ; then
1504    ENABLE_TDB=yes
1507 ENABLE_SIMPLEDB=no
1508 if test "x${HAVE_SIMPLEDB}" = "x1" ; then
1509     ENABLE_SIMPLEDB=yes
1512 ENABLE_OPENSSL=no
1513 if test "x${HAVE_OPENSSL}" = "x1" ; then
1514    ENABLE_OPENSSL=yes
1517 ENABLE_IPV6=no
1518 if test "x${HAVE_IPV6}" = "x1" ; then
1519    ENABLE_IPV6=yes
1522 ENABLE_PER_USER_ESOUND_SOCKET=no
1523 if test "x$per_user_esound_socket" = "x1" ; then
1524    ENABLE_PER_USER_ESOUND_SOCKET=yes
1527 echo "
1528  ---{ $PACKAGE_NAME $VERSION }---
1530     prefix:                        ${prefix}
1531     sysconfdir:                    ${sysconfdir}
1532     localstatedir:                 ${localstatedir}
1533     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1534     System State Path:             ${PA_SYSTEM_STATE_PATH}
1535     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1536     Compiler:                      ${CC}
1537     CFLAGS:                        ${CFLAGS}
1539     Have X11:                      ${ENABLE_X11}
1540     Enable OSS Output:             ${ENABLE_OSS_OUTPUT}
1541     Enable OSS Wrapper:            ${ENABLE_OSS_WRAPPER}
1542     Enable Alsa:                   ${ENABLE_ALSA}
1543     Enable Solaris:                ${ENABLE_SOLARIS}
1544     Enable GLib 2.0:               ${ENABLE_GLIB20}
1545     Enable Gtk+ 2.0:               ${ENABLE_GTK20}
1546     Enable GConf:                  ${ENABLE_GCONF}
1547     Enable Avahi:                  ${ENABLE_AVAHI}
1548     Enable Jack:                   ${ENABLE_JACK}
1549     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1550     Enable LIRC:                   ${ENABLE_LIRC}
1551     Enable HAL:                    ${ENABLE_HAL}
1552     Enable udev:                   ${ENABLE_UDEV}
1553     Enable HAL->udev compat:       ${ENABLE_HAL_COMPAT}
1554     Enable BlueZ:                  ${ENABLE_BLUEZ}
1555     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1556     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1557     Enable IPv6:                   ${ENABLE_IPV6}
1558     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1559     Enable tdb:                    ${ENABLE_TDB}
1560     Enable gdbm:                   ${ENABLE_GDBM}
1561     Enable simple database:        ${ENABLE_SIMPLEDB}
1563     System User:                   ${PA_SYSTEM_USER}
1564     System Group:                  ${PA_SYSTEM_GROUP}
1565     Access Group:                  ${PA_ACCESS_GROUP}
1566     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1567     Force preopen:                 ${FORCE_PREOPEN}
1568     Preopened modules:             ${PREOPEN_MODS}