conf: add pa_config_parse_not_bool() for parsing inverse boolean configuration options
[pulseaudio-mirror.git] / configure.ac
bloba38d8a15303720b0dd7699624b5e900768ffaaaa
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
630 AC_ARG_WITH(
631         [database],
632         AS_HELP_STRING([--with-database=auto|tdb|gdbm],[Choose database backend.]),[],[with_database=auto])
634 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then
635     PKG_CHECK_MODULES(TDB, [ tdb ],
636         [
637             HAVE_TDB=1
638             with_database=tdb
639         ], [
640             if test "x${with_database}" = "xtdb" ; then
641                 AC_MSG_ERROR([*** tdb not found])
642             fi
643         ])
646 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then
647    have_gdbm=yes
649    AC_CHECK_LIB(gdbm, gdbm_open, [], [have_gdbm=no])
650    AC_CHECK_HEADERS(gdbm.h, [], [have_gdbm=no])
652    if test "x${have_gdbm}" = "xyes" ; then
653        HAVE_GDBM=1
654        GDBM_CFLAGS=
655        GDBM_LIBS=-lgdbm
656        with_database=gdbm
657    elif test "x${with_database}" = "xgdbm"; then
658        AC_MSG_ERROR([*** gdbm not found])
659    fi
662 if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1; then
663    AC_MSG_ERROR([*** missing database backend])
666 if test "x${HAVE_TDB}" = x1 ; then
667    AC_DEFINE([HAVE_TDB], 1, [Have tdb?])
670 if test "x${HAVE_GDBM}" = x1 ; then
671    AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
674 AC_SUBST(TDB_CFLAGS)
675 AC_SUBST(TDB_LIBS)
676 AC_SUBST(HAVE_TDB)
677 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
679 AC_SUBST(GDBM_CFLAGS)
680 AC_SUBST(GDBM_LIBS)
681 AC_SUBST(HAVE_GDBM)
682 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
684 #### OSS support (optional) ####
686 AC_ARG_ENABLE([oss-output],
687     AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]),
688         [
689             case "${enableval}" in
690                 yes) oss_output=yes ;;
691                 no) oss_output=no ;;
692                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-output) ;;
693             esac
694         ],
695         [oss_output=auto])
697 AC_ARG_ENABLE([oss-wrapper],
698     AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]),
699         [
700             case "${enableval}" in
701                 yes) oss_wrapper=yes ;;
702                 no) oss_wrapper=no ;;
703                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-wrapper) ;;
704             esac
705         ],
706         [oss_wrapper=auto])
708 if test "x${oss_output}" != xno || test "x${oss_wrapper}" != "xno"; then
709     AC_CHECK_HEADERS([sys/soundcard.h],
710         [
711             if test "x${oss_output}" != "xno"; then
712                 AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?])
713             fi
714             if test "x${oss_wrapper}" != "xno"; then
715                 AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?])
716             fi
717             HAVE_OSS=1
718         ],
719         [
720             HAVE_OSS=0
721             if test "x$oss_output" = xyes || test "x$oss_wrapper" = "xyes"; then
722                 AC_MSG_ERROR([*** OSS support not found])
723             fi
724         ])
725 else
726     HAVE_OSS=0
729 AC_SUBST(HAVE_OSS)
730 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS" = x1 && test "x${oss_output}" != "xno"])
731 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS" = x1 && test "x${oss_wrapper}" != "xno"])
733 #### ALSA support (optional) ####
735 AC_ARG_ENABLE([alsa],
736     AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
737         [
738             case "${enableval}" in
739                 yes) alsa=yes ;;
740                 no) alsa=no ;;
741                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
742             esac
743         ],
744         [alsa=auto])
746 if test "x${alsa}" != xno ; then
747     PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
748         [
749             HAVE_ALSA=1
750             AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
751         ],
752         [
753             HAVE_ALSA=0
754             if test "x$alsa" = xyes ; then
755                 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
756             fi
757         ])
758 else
759     HAVE_ALSA=0
762 AC_SUBST(ASOUNDLIB_CFLAGS)
763 AC_SUBST(ASOUNDLIB_LIBS)
764 AC_SUBST(HAVE_ALSA)
765 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
767 #### Solaris audio support (optional) ####
769 AC_ARG_ENABLE([solaris],
770     AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
771         [
772             case "${enableval}" in
773                 yes) solaris=yes ;;
774                 no) solaris=no ;;
775                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
776             esac
777         ],
778         [solaris=auto])
780 if test "x${solaris}" != xno ; then
781     AC_CHECK_HEADERS([sys/audio.h],
782         [
783             HAVE_SOLARIS=1
784             AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
785         ],
786         [
787             HAVE_SOLARIS=0
788             if test "x$solaris" = xyes ; then
789                 AC_MSG_ERROR([*** Solaris audio support not found])
790             fi
791         ])
792 else
793     HAVE_SOLARIS=0
796 AC_SUBST(HAVE_SOLARIS)
797 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
799 #### GLib 2 support (optional) ####
801 AC_ARG_ENABLE([glib2],
802     AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
803         [
804             case "${enableval}" in
805                 yes) glib2=yes ;;
806                 no) glib2=no ;;
807                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
808             esac
809         ],
810         [glib2=auto])
812 if test "x${glib2}" != xno ; then
813     PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
814         HAVE_GLIB20=1,
815         [
816             HAVE_GLIB20=0
817             if test "x$glib2" = xyes ; then
818                 AC_MSG_ERROR([*** GLib 2 support not found])
819             fi
820         ])
821 else
822     HAVE_GLIB20=0
825 AC_SUBST(GLIB20_CFLAGS)
826 AC_SUBST(GLIB20_LIBS)
827 AC_SUBST(HAVE_GLIB20)
828 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
830 if test "x$HAVE_GLIB20" = x1 ; then
831    AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
834 #### GTK2 support (optional) ####
836 AC_ARG_ENABLE([gtk2],
837     AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
838         [
839             case "${enableval}" in
840                 yes) gtk2=yes ;;
841                 no) gtk2=no ;;
842                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
843             esac
844         ],
845         [gtk2=auto])
847 if test "x${gtk2}" != xno ; then
848     PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
849         HAVE_GTK20=1,
850         [
851             HAVE_GTK20=0
852             if test "x$gtk2" = xyes ; then
853                 AC_MSG_ERROR([*** Gtk+ 2 support not found])
854             fi
855         ])
856 else
857     HAVE_GTK20=0
860 AC_SUBST(GTK20_CFLAGS)
861 AC_SUBST(GTK20_LIBS)
862 AC_SUBST(HAVE_GTK20)
863 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
865 if test "x$HAVE_GTK20" = x1 ; then
866    AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
869 #### GConf support (optional) ####
871 AC_ARG_ENABLE([gconf],
872     AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
873         [
874             case "${enableval}" in
875                 yes) gconf=yes ;;
876                 no) gconf=no ;;
877                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
878             esac
879         ],
880         [gconf=auto])
882 if test "x${gconf}" != xno ; then
883     PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 ],
884         HAVE_GCONF=1,
885         [
886             HAVE_GCONF=0
887             if test "x$gconf" = xyes ; then
888                 AC_MSG_ERROR([*** GConf support not found])
889             fi
890         ])
891 else
892     HAVE_GCONF=0
895 AC_SUBST(GCONF_CFLAGS)
896 AC_SUBST(GCONF_LIBS)
897 AC_SUBST(HAVE_GCONF)
898 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
900 #### Avahi support (optional) ####
902 AC_ARG_ENABLE([avahi],
903     AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
904         [
905             case "${enableval}" in
906                 yes) avahi=yes ;;
907                 no) avahi=no ;;
908                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
909             esac
910         ],
911         [avahi=auto])
913 if test "x${avahi}" != xno ; then
914     PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
915         HAVE_AVAHI=1,
916         [
917                 HAVE_AVAHI=0
918                 if test "x$avahi" = xyes ; then
919                         AC_MSG_ERROR([*** Avahi support not found])
920                 fi
921         ])
922 else
923     HAVE_AVAHI=0
926 AC_SUBST(AVAHI_CFLAGS)
927 AC_SUBST(AVAHI_LIBS)
928 AC_SUBST(HAVE_AVAHI)
929 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
931 ### LIBOIL ####
933 PKG_CHECK_MODULES(LIBOIL, [ liboil-0.3 >= 0.3.0 ])
934 AC_SUBST(LIBOIL_CFLAGS)
935 AC_SUBST(LIBOIL_LIBS)
937 ### JACK (optional) ####
939 AC_ARG_ENABLE([jack],
940     AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
941         [
942             case "${enableval}" in
943                 yes) jack=yes ;;
944                 no) jack=no ;;
945                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
946             esac
947         ],
948         [jack=auto])
950 if test "x${jack}" != xno ; then
951     PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
952         HAVE_JACK=1,
953         [
954             HAVE_JACK=0
955             if test "x$jack" = xyes ; then
956                 AC_MSG_ERROR([*** JACK support not found])
957             fi
958         ])
959 else
960     HAVE_JACK=0
963 AC_SUBST(JACK_CFLAGS)
964 AC_SUBST(JACK_LIBS)
965 AC_SUBST(HAVE_JACK)
966 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
968 #### Async DNS support (optional) ####
970 AC_ARG_ENABLE([asyncns],
971     AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
972         [
973             case "${enableval}" in
974                 yes) asyncns=yes ;;
975                 no) asyncns=no ;;
976                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
977             esac
978         ],
979         [asyncns=auto])
981 if test "x${asyncns}" != xno ; then
982     PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
983         HAVE_LIBASYNCNS=1,
984         [
985             HAVE_LIBASYNCNS=0
986             if test "x$asyncns" = xyes ; then
987                 AC_MSG_ERROR([*** Async DNS support not found])
988             fi
989         ])
990 else
991     HAVE_LIBASYNCNS=0
994 AC_SUBST(LIBASYNCNS_CFLAGS)
995 AC_SUBST(LIBASYNCNS_LIBS)
996 AC_SUBST(HAVE_LIBASYNCNS)
997 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
999 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
1000    AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
1003 #### TCP wrappers (optional) ####
1005 AC_ARG_ENABLE([tcpwrap],
1006     AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
1007         [
1008             case "${enableval}" in
1009                 yes) tcpwrap=yes ;;
1010                 no) tcpwrap=no ;;
1011                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
1012             esac
1013         ],
1014         [tcpwrap=auto])
1016 if test "x${tcpwrap}" != xno ; then
1017     ACX_LIBWRAP
1018     if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
1019         AC_MSG_ERROR([*** TCP wrappers support not found])
1020     fi
1021 else
1022     LIBWRAP_LIBS=
1025 AC_SUBST(LIBWRAP_LIBS)
1027 #### LIRC support (optional) ####
1029 AC_ARG_ENABLE([lirc],
1030     AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
1031         [
1032             case "${enableval}" in
1033                 yes) lirc=yes ;;
1034                 no) lirc=no ;;
1035                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
1036             esac
1037         ],
1038         [lirc=auto])
1040 if test "x${lirc}" != xno ; then
1041     ACX_LIRC
1042     if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
1043         AC_MSG_ERROR([*** LIRC support not found])
1044     fi
1045 else
1046     HAVE_LIRC=0
1049 AC_SUBST(LIRC_CFLAGS)
1050 AC_SUBST(LIRC_LIBS)
1051 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1053 #### HAL support (optional) ####
1055 AC_ARG_ENABLE([hal],
1056     AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
1057         [
1058             case "${enableval}" in
1059                 yes) hal=yes ;;
1060                 no) hal=no ;;
1061                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
1062             esac
1063         ],
1064         [hal=auto])
1065 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1066     PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
1067         [
1068             HAVE_HAL=1
1069             AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
1070         ],
1071         [
1072             HAVE_HAL=0
1073             if test "x$hal" = xyes ; then
1074                 AC_MSG_ERROR([*** HAL support not found])
1075             fi
1076         ])
1077 else
1078     HAVE_HAL=0
1081 AC_SUBST(HAL_CFLAGS)
1082 AC_SUBST(HAL_LIBS)
1083 AC_SUBST(HAVE_HAL)
1084 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
1086 #### UDEV support (optional) ####
1088 AC_ARG_ENABLE([udev],
1089     AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
1090         [
1091             case "${enableval}" in
1092                 yes) udev=yes ;;
1093                 no) udev=no ;;
1094                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1095             esac
1096         ],
1097         [udev=auto])
1098 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1099     PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ],
1100         [
1101             HAVE_UDEV=1
1102             AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1103         ],
1104         [
1105             HAVE_UDEV=0
1106             if test "x$udev" = xyes ; then
1107                 AC_MSG_ERROR([*** UDEV support not found])
1108             fi
1109         ])
1110 else
1111     HAVE_UDEV=0
1114 AC_SUBST(UDEV_CFLAGS)
1115 AC_SUBST(UDEV_LIBS)
1116 AC_SUBST(HAVE_UDEV)
1117 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1119 #### HAL compat support (optional) ####
1121 AC_ARG_ENABLE([hal-compat],
1122     AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]),
1123         [
1124             case "${enableval}" in
1125                 yes) halcompat=yes ;;
1126                 no) halcompat=no ;;
1127                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal-compat) ;;
1128             esac
1129         ],
1130         [halcompat=auto])
1131 if test "x${halcompat}" != xno -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1" ; then
1132     HAVE_HAL_COMPAT=1
1133     AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
1134 else
1135     HAVE_HAL_COMPAT=0
1138 AC_SUBST(HAVE_HAL_COMPAT)
1139 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1141 #### BlueZ support (optional) ####
1143 AC_ARG_ENABLE([bluez],
1144     AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1145         [
1146             case "${enableval}" in
1147                 yes) bluez=yes ;;
1148                 no) bluez=no ;;
1149                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1150             esac
1151         ],
1152         [bluez=auto])
1153 if test "x${bluez}" != xno ; then
1154     PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1155         HAVE_BLUEZ=1,
1156         [
1157             HAVE_BLUEZ=0
1158             if test "x$bluez" = xyes ; then
1159                 AC_MSG_ERROR([*** BLUEZ support not found])
1160             fi
1161         ])
1162 else
1163     HAVE_BLUEZ=0
1166 AC_SUBST(BLUEZ_CFLAGS)
1167 AC_SUBST(BLUEZ_LIBS)
1168 AC_SUBST(HAVE_BLUEZ)
1169 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1171 #### D-Bus support (optional) ####
1173 AC_ARG_ENABLE([dbus],
1174     AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1175         [
1176             case "${enableval}" in
1177                 yes) dbus=yes ;;
1178                 no) dbus=no ;;
1179                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1180             esac
1181         ],
1182         [dbus=auto])
1184 if test "x$HAVE_HAL" = x1 ; then
1185    dbus=yes
1188 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1190     PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1191         [
1192             HAVE_DBUS=1
1193             saved_LIBS="$LIBS"
1194             LIBS="$LIBS $DBUS_LIBS"
1195             AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1196             LIBS="$saved_LIBS"
1197             AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1198         ],
1199         [
1200             HAVE_DBUS=0
1201             if test "x$dbus" = xyes ; then
1202                 AC_MSG_ERROR([*** D-Bus support not found])
1203             fi
1204         ])
1205 else
1206     HAVE_DBUS=0
1209 AC_SUBST(DBUS_CFLAGS)
1210 AC_SUBST(DBUS_LIBS)
1211 AC_SUBST(HAVE_DBUS)
1212 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1214 ### IPv6 connection support (optional) ###
1216 AC_ARG_ENABLE([ipv6],
1217     AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1218         [
1219             case "${enableval}" in
1220                 yes) ipv6=yes ;;
1221                 no) ipv6=no ;;
1222                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1223             esac
1224         ],
1225         [ipv6=auto])
1227 if test "x${ipv6}" != xno ; then
1228     AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1229     HAVE_IPV6=1
1230 else
1231     HAVE_IPV6=0
1234 #### OpenSSL support (optional) ####
1236 AC_ARG_ENABLE([openssl],
1237     AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1238         [
1239             case "${enableval}" in
1240                 yes) openssl=yes ;;
1241                 no) openssl=no ;;
1242                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1243             esac
1244         ],
1245         [openssl=auto])
1247 if test "x${openssl}" != xno ; then
1249     PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1250         [
1251             HAVE_OPENSSL=1
1252             AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1253         ],
1254         [
1255             HAVE_OPENSSL=0
1256             if test "x$openssl" = xyes ; then
1257                 AC_MSG_ERROR([*** OpenSSL support not found])
1258             fi
1259         ])
1260 else
1261     HAVE_OPENSSL=0
1264 AC_SUBST(OPENSSL_CFLAGS)
1265 AC_SUBST(OPENSSL_LIBS)
1266 AC_SUBST(HAVE_OPENSSL)
1267 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1269 ### Build and Install man pages ###
1270 AC_ARG_ENABLE(manpages,
1271         AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1272 [case "${enableval}" in
1273   yes) manpages=yes ;;
1274   no)  manpages=no ;;
1275   *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1276 esac],[manpages=yes])
1278 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1280 #### PulseAudio system group & user  #####
1282 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1283 if test -z "$with_system_user" ; then
1284     PA_SYSTEM_USER=pulse
1285 else
1286     PA_SYSTEM_USER=$with_system_user
1288 AC_SUBST(PA_SYSTEM_USER)
1289 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1291 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1292 if test -z "$with_system_group" ; then
1293     PA_SYSTEM_GROUP=pulse
1294 else
1295     PA_SYSTEM_GROUP=$with_system_group
1297 AC_SUBST(PA_SYSTEM_GROUP)
1298 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1300 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)]))
1301 if test -z "$with_access_group" ; then
1302     PA_ACCESS_GROUP=pulse-access
1303 else
1304     PA_ACCESS_GROUP=$with_access_group
1306 AC_SUBST(PA_ACCESS_GROUP)
1307 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1309 AC_ARG_ENABLE(
1310         per_user_esound_socket,
1311         AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1312         [
1313             case "${enableval}" in
1314                 yes) per_user_esound_socket=1 ;;
1315                 no) per_user_esound_socket=0 ;;
1316                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1317             esac
1318         ],
1319         [per_user_esound_socket=1])
1321 if test "x$per_user_esound_socket" = "x1"; then
1322    AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1325 #### PulseAudio system runtime dir ####
1326 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1327 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1328 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1329 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1330 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1331 AC_SUBST(PA_SYSTEM_STATE_PATH)
1333 ###################################
1334 #            Output               #
1335 ###################################
1337 AC_ARG_ENABLE([legacy-runtime-dir],
1338         AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1339 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1340         AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1343 AC_ARG_ENABLE(
1344         [static-bins],
1345         AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1346         [STATIC_BINS=1], [STATIC_BINS=0])
1347 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1349 AC_ARG_WITH(
1350         [preopen-mods],
1351         AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1352         [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1353 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1354 if test "x$PREOPEN_MODS" != "xall" ; then
1355     tmpLIBS=""
1356     for mod in $PREOPEN_MODS; do
1357         tmpLIBS="$tmpLIBS module-$mod.la"
1358     done
1359     PREOPEN_MODS="$tmpLIBS"
1360     AC_SUBST(PREOPEN_MODS)
1363 AC_ARG_WITH(
1364         [module-dir],
1365         AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules]),
1366         [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules"])
1368 AC_SUBST(modlibexecdir)
1370 AC_ARG_ENABLE(
1371         [force-preopen],
1372         AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1373         [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1374 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1376 AC_CONFIG_FILES([
1377 Makefile
1378 src/Makefile
1379 man/Makefile
1380 libpulse.pc
1381 libpulse-simple.pc
1382 libpulse-browse.pc
1383 libpulse-mainloop-glib.pc
1384 doxygen/Makefile
1385 doxygen/doxygen.conf
1386 src/pulse/version.h
1387 po/Makefile.in
1390 AC_OUTPUT
1392 # ==========================================================================
1393 ENABLE_X11=no
1394 if test "x$HAVE_X11" = "x1" ; then
1395    ENABLE_X11=yes
1398 ENABLE_OSS_OUTPUT=no
1399 ENABLE_OSS_WRAPPER=no
1400 if test "x$HAVE_OSS" = "x1" ; then
1401    if test "x$enable_oss_output" != "xno"; then
1402       ENABLE_OSS_OUTPUT=yes
1403    fi
1404    if test "x$enable_oss_wrapper" != "xno"; then
1405       ENABLE_OSS_WRAPPER=yes
1406    fi
1409 ENABLE_ALSA=no
1410 if test "x$HAVE_ALSA" = "x1" ; then
1411    ENABLE_ALSA=yes
1414 ENABLE_SOLARIS=no
1415 if test "x$HAVE_SOLARIS" = "x1" ; then
1416    ENABLE_SOLARIS=yes
1419 ENABLE_GTK20=no
1420 if test "x$HAVE_GTK20" = "x1" ; then
1421    ENABLE_GTK20=yes
1424 ENABLE_GLIB20=no
1425 if test "x$HAVE_GLIB20" = "x1" ; then
1426    ENABLE_GLIB20=yes
1429 ENABLE_GCONF=no
1430 if test "x$HAVE_GCONF" = "x1" ; then
1431    ENABLE_GCONF=yes
1434 ENABLE_AVAHI=no
1435 if test "x$HAVE_AVAHI" = "x1" ; then
1436    ENABLE_AVAHI=yes
1439 ENABLE_JACK=no
1440 if test "x$HAVE_JACK" = "x1" ; then
1441    ENABLE_JACK=yes
1444 ENABLE_LIBASYNCNS=no
1445 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1446    ENABLE_LIBASYNCNS=yes
1449 ENABLE_LIRC=no
1450 if test "x$HAVE_LIRC" = "x1" ; then
1451    ENABLE_LIRC=yes
1454 ENABLE_HAL=no
1455 if test "x$HAVE_HAL" = "x1" ; then
1456    ENABLE_HAL=yes
1459 ENABLE_UDEV=no
1460 if test "x$HAVE_UDEV" = "x1" ; then
1461    ENABLE_UDEV=yes
1464 ENABLE_HAL_COMPAT=no
1465 if test "x$HAVE_HAL_COMPAT" = "x1" ; then
1466    ENABLE_HAL_COMPAT=yes
1469 ENABLE_TCPWRAP=no
1470 if test "x${LIBWRAP_LIBS}" != x ; then
1471    ENABLE_TCPWRAP=yes
1474 ENABLE_LIBSAMPLERATE=no
1475 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1476    ENABLE_LIBSAMPLERATE=yes
1479 ENABLE_BLUEZ=no
1480 if test "x${HAVE_BLUEZ}" = "x1" ; then
1481    ENABLE_BLUEZ=yes
1484 ENABLE_GDBM=no
1485 if test "x${HAVE_GDBM}" = "x1" ; then
1486    ENABLE_GDBM=yes
1489 ENABLE_TDB=no
1490 if test "x${HAVE_TDB}" = "x1" ; then
1491    ENABLE_TDB=yes
1494 ENABLE_OPENSSL=no
1495 if test "x${HAVE_OPENSSL}" = "x1" ; then
1496    ENABLE_OPENSSL=yes
1499 ENABLE_IPV6=no
1500 if test "x${HAVE_IPV6}" = "x1" ; then
1501    ENABLE_IPV6=yes
1504 ENABLE_PER_USER_ESOUND_SOCKET=no
1505 if test "x$per_user_esound_socket" = "x1" ; then
1506    ENABLE_PER_USER_ESOUND_SOCKET=yes
1509 echo "
1510  ---{ $PACKAGE_NAME $VERSION }---
1512     prefix:                        ${prefix}
1513     sysconfdir:                    ${sysconfdir}
1514     localstatedir:                 ${localstatedir}
1515     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1516     System State Path:             ${PA_SYSTEM_STATE_PATH}
1517     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1518     Compiler:                      ${CC}
1519     CFLAGS:                        ${CFLAGS}
1521     Have X11:                      ${ENABLE_X11}
1522     Enable OSS Output:             ${ENABLE_OSS_OUTPUT}
1523     Enable OSS Wrapper:            ${ENABLE_OSS_WRAPPER}
1524     Enable Alsa:                   ${ENABLE_ALSA}
1525     Enable Solaris:                ${ENABLE_SOLARIS}
1526     Enable GLib 2.0:               ${ENABLE_GLIB20}
1527     Enable Gtk+ 2.0:               ${ENABLE_GTK20}
1528     Enable GConf:                  ${ENABLE_GCONF}
1529     Enable Avahi:                  ${ENABLE_AVAHI}
1530     Enable Jack:                   ${ENABLE_JACK}
1531     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1532     Enable LIRC:                   ${ENABLE_LIRC}
1533     Enable HAL:                    ${ENABLE_HAL}
1534     Enable udev:                   ${ENABLE_UDEV}
1535     Enable HAL->udev compat:       ${ENABLE_HAL_COMPAT}
1536     Enable BlueZ:                  ${ENABLE_BLUEZ}
1537     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1538     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1539     Enable IPv6:                   ${ENABLE_IPV6}
1540     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1541     Enable tdb:                    ${ENABLE_TDB}
1542     Enable gdbm:                   ${ENABLE_GDBM}
1544     System User:                   ${PA_SYSTEM_USER}
1545     System Group:                  ${PA_SYSTEM_GROUP}
1546     Access Group:                  ${PA_ACCESS_GROUP}
1547     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1548     Force preopen:                 ${FORCE_PREOPEN}
1549     Preopened modules:             ${PREOPEN_MODS}