Merge branch 'master' of ssh://rootserver/home/lennart/git/public/pulseaudio
[pulseaudio-mirror.git] / configure.ac
blob2bc068e6dcef3860b34327f0bc661efe75b24051
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)],[mzchyfrnhqvb (at) 0pointer (dot) net])
26 AC_CONFIG_SRCDIR([src/daemon/main.c])
27 AC_CONFIG_MACRO_DIR([m4])
28 AC_CONFIG_HEADERS([config.h])
29 AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax])
31 m4_define(pa_major, `echo $VERSION | cut -d. -f1 | cut -d- -f1`)
32 m4_define(pa_minor, `echo $VERSION | cut -d. -f2 | cut -d- -f1`)
33 m4_define(pa_micro, `echo $VERSION | cut -d. -f3 | cut -d- -f1`)
35 AC_SUBST(PA_MAJOR, pa_major)
36 AC_SUBST(PA_MINOR, pa_minor)
37 AC_SUBST(PA_MICRO, pa_micro)
38 AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)
39 AC_SUBST(PA_MAJORMINORMICRO, pa_major.pa_minor.pa_micro)
40 AC_SUBST(PACKAGE_URL, [http://pulseaudio.org/])
42 AC_SUBST(PA_API_VERSION, 12)
43 AC_SUBST(PA_PROTOCOL_VERSION, 17)
45 # The stable ABI for client applications, for the version info x:y:z
46 # always will hold y=z
47 AC_SUBST(LIBPULSE_VERSION_INFO, [12:0:12])
49 # A simplified, synchronous, ABI-stable interface for client
50 # applications, for the version info x:y:z always will hold y=z
51 AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:3:0])
53 # The ABI-stable network browsing interface for client applications,
54 # for the version info x:y:z always will hold y=z
55 AC_SUBST(LIBPULSE_BROWSE_VERSION_INFO, [1:1:1])
57 # The ABI-stable GLib adapter for client applications, for the version
58 # info x:y:z always will hold y=z
59 AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:4:0])
61 AC_CANONICAL_HOST
62 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
64 if type -p stow > /dev/null && test -d /usr/local/stow ; then
65    AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
66    ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
69 #### Platform hacks ####
71 case $host in
72    *-*-solaris* )
73       AC_DEFINE(_XOPEN_SOURCE,        600, Needed to get declarations for msg_control and msg_controllen on Solaris)
74       AC_DEFINE(__EXTENSIONS__,         1, Needed to get declarations for msg_control and msg_controllen on Solaris)
75       ;;
76    *-*-darwin* )
77       AC_DEFINE([_POSIX_C_SOURCE], [200112L], [Needed to get clock_gettime on Mac OS X])
78       AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
79       ;;
80 esac
82 AM_SILENT_RULES([yes])
84 #### Checks for programs. ####
86 # mkdir -p
88 AC_PROG_MKDIR_P
90 # CC
92 AC_PROG_CC
93 AC_PROG_CC_C99
94 AM_PROG_CC_C_O
95 AC_PROG_GCC_TRADITIONAL
96 AC_USE_SYSTEM_EXTENSIONS
98 # M4
100 AC_CHECK_PROGS([M4], gm4 m4, no)
101 if test "x$M4" = xno ; then
102    AC_MSG_ERROR([m4 missing])
105 dnl Compiler flags
106 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])
108 dnl Linker flags.
109 dnl Check whether the linker supports the -version-script option.
111 dnl This variable is used to make sure ${srcdir} is expanded and not
112 dnl passed to the CC_CHECK_LDFLAGS macro as a name.
113 tmp_ldflag="-Wl,-version-script=${srcdir}/src/map-file"
115 CC_CHECK_LDFLAGS([${tmp_ldflag}],
116     [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
117 AC_SUBST([VERSIONING_LDFLAGS])
119 dnl Use immediate (now) bindings; avoids the funky re-call in itself
120 dnl  the -z now syntax is lifted from Sun's linker and works with GNU's too
121 dnl  other linkes might be added later
122 CC_CHECK_LDFLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS="-Wl,-z,now"])
123 AC_SUBST([IMMEDIATE_LDFLAGS])
125 dnl On ELF systems we don't want the libraries to be unloaded since we
126 dnl don't clean them up properly, so we request the nodelete flag to be
127 dnl enabled.
129 dnl On other systems, we don't really know how to do that, but it's
130 dnl welcome if somebody can tell.
131 CC_CHECK_LDFLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS="-Wl,-z,nodelete"])
132 AC_SUBST([NODELETE_LDFLAGS])
134 dnl Check for the proper way to build libraries that have no undefined
135 dnl symbols; on some hosts this needs to be avoided but the macro
136 dnl takes care of it.
137 CC_NOUNDEFINED
139 dnl Check whether to build tests by default (as compile-test) or not
140 AC_ARG_ENABLE([default-build-tests],
141     AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
143 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
145 # Native atomic operation support
146 AC_ARG_ENABLE([atomic-arm-linux-helpers],
147     AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]),
148         [
149             case "${enableval}" in
150                 yes) atomic_arm_linux_helpers=yes ;;
151                 no) atomic_arm_linux_helpers=no ;;
152                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
153             esac
154         ],
155         [atomic_arm_linux_helpers=auto])
157 AC_ARG_ENABLE([atomic-arm-memory-barrier],
158     AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]),
159         [
160             case "${enableval}" in
161                 yes) AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers]) ;;
162                 no) ;;
163                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
164             esac
165         ],)
167 AC_ARG_ENABLE([netbsd-atomic-ops],
168     AS_HELP_STRING([--enable-netbsd-atomic-ops],[Use the native NetBSD atomic_ops implementation]),
169         [
170             case "${enableval}" in
171                 yes) atomic_netbsd_helpers=yes ;;
172                 no) atomic_netbsd_helpers=no ;;
173                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-netbsd-atomic-ops) ;;
174             esac
175         ],
176         [atomic_netbsd_helpers=auto])
178 AC_MSG_CHECKING([target operating system])
179 case $host in
180         *-*-linux*)
181             AC_MSG_RESULT([linux])
182             pulse_target_os=linux
183         ;;
184         *-*-netbsd*)
185             AC_MSG_RESULT([netbsd])
186             pulse_target_os=netbsd
187         ;;
188         *)
189             AC_MSG_RESULT([unknown])
190             pulse_target_os=unknown
191         ;;
192 esac
194 # If everything else fails use libatomic_ops
195 need_libatomic_ops=yes
197 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
198   pulseaudio_cv_sync_bool_compare_and_swap,
199   [AC_LINK_IFELSE(
200      AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
201      [pulseaudio_cv_sync_bool_compare_and_swap=yes],
202      [pulseaudio_cv_sync_bool_compare_and_swap=no])
203   ])
205 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
206     AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
207     need_libatomic_ops=no
208 else
209     # HW specific atomic ops stuff
210     AC_MSG_CHECKING([architecture for native atomic operations])
211     case $host_cpu in
212         arm*)
213             AC_MSG_RESULT([arm])
214             AC_MSG_CHECKING([whether we can use Linux kernel helpers])
215             # The Linux kernel helper functions have been there since 2.6.16. However
216             # compile time checking for kernel version in cross compile environment
217             # (which is usually the case for arm cpu) is tricky (or impossible).
218             if test "x$pulse_target_os" = "xlinux" && test "x$atomic_arm_linux_helpers" != "xno"; then
219                 AC_MSG_RESULT([yes])
220                 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
221                 need_libatomic_ops=no
222             else
223                AC_MSG_RESULT([no])
224                AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
225                  pulseaudio_cv_support_arm_atomic_ops,
226                  [AC_COMPILE_IFELSE(
227                     AC_LANG_PROGRAM([],
228                       [[volatile int a=0;
229                         int o=0, n=1, r;
230                         asm volatile ("ldrex    %0, [%1]\n"
231                                          "subs  %0, %0, %2\n"
232                                          "strexeq %0, %3, [%1]\n"
233                                          : "=&r" (r)
234                                          : "r" (&a), "Ir" (o), "r" (n)
235                                          : "cc");
236                         return (a==1 ? 0 : -1);
237                       ]]),
238                     [pulseaudio_cv_support_arm_atomic_ops=yes],
239                     [pulseaudio_cv_support_arm_atomic_ops=no])
240                  ])
241                AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
242                    AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARMv6 instructions.])
243                    need_libatomic_ops=no
244                  ])
245            fi
246         ;;
247         *)
248             if test "x$pulse_target_os" = "xnetbsd" && test "x$atomic_netbsd_helpers" = "xyes"; then
249                 AC_MSG_RESULT([yes])
250                 AC_DEFINE_UNQUOTED(NETBSD_ATOMIC_OPS, 1, [netbsd implementation])
251                 need_libatomic_ops=no
252             else
253                 AC_MSG_RESULT([unknown])
254             fi
255         ;;
256     esac
259 CC_CHECK_TLS
261 AC_CACHE_CHECK([whether $CC knows _Bool],
262   pulseaudio_cv__Bool,
263   [AC_COMPILE_IFELSE(
264      AC_LANG_PROGRAM([], [[_Bool b;]]),
265      [pulseaudio_cv__Bool=yes],
266      [pulseaudio_cv__Bool=no])
267   ])
269 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [
270     AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.])
271   ])
273 #### libtool stuff ####
274 LT_PREREQ(2.2)
275 LT_INIT([dlopen win32-dll disable-static])
277 dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
278 dnl exactly which version of libltdl is present in the system, so we
279 dnl just assume that it's a working version as long as we have the
280 dnl library and the header files.
282 dnl As an extra safety device, check for lt_dladvise_init() which is
283 dnl only implemented in libtool 2.x, and refine as we go if we have
284 dnl refined requirements.
286 dnl Check the header files first since the system may have a
287 dnl libltdl.so for runtime, but no headers, and we want to bail out as
288 dnl soon as possible.
290 dnl We don't need any special variable for this though, since the user
291 dnl can give the proper place to find libltdl through the standard
292 dnl variables like LDFLAGS and CPPFLAGS.
294 AC_CHECK_HEADER([ltdl.h],
295     [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
296     [LIBLTDL=])
298 AS_IF([test "x$LIBLTDL" = "x"],
299     [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
300 AC_SUBST([LIBLTDL])
302 #### Determine build environment ####
304 os_is_win32=0
306 case "$host_os" in
307         mingw*)
308         AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
309         os_is_win32=1
310                 ;;
311         esac
313 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
315 ###################################
316 #   Basic environment checks      #
317 ###################################
319 #### Checks for header files. ####
321 # ISO
322 AC_HEADER_STDC
324 # POSIX
325 AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
326     netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
327     sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \
328     sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
329 AC_CHECK_HEADERS([netinet/ip.h], [], [],
330                  [#include <sys/types.h>
331                   #if HAVE_NETINET_IN_H
332                   # include <netinet/in.h>
333                   #endif
334                   #if HAVE_NETINET_IN_SYSTM_H
335                   # include <netinet/in_systm.h>
336                   #endif
337                  ])
338 AC_CHECK_HEADERS([regex.h], [HAVE_REGEX=1], [HAVE_REGEX=0])
339 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
341 AM_CONDITIONAL(HAVE_REGEX, test "x$HAVE_REGEX" = "x1")
342 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
344 # Linux
345 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
347 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
349 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
351 # Solaris
352 AC_CHECK_HEADERS_ONCE([sys/filio.h])
354 # Windows
355 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
357 # NetBSD
358 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
360 # Other
361 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
362 AC_CHECK_HEADERS_ONCE([byteswap.h])
363 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
364 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
365 AC_CHECK_HEADERS_ONCE([execinfo.h])
367 #### Typdefs, structures, etc. ####
369 AC_C_CONST
370 AC_C_BIGENDIAN
371 AC_TYPE_PID_T
372 AC_TYPE_SIZE_T
373 AC_CHECK_TYPES(ssize_t, , [AC_DEFINE([ssize_t], [signed long],
374     [Define ssize_t if it is not done by the standard libs.])])
375 AC_TYPE_OFF_T
377 AC_TYPE_UID_T
378 AC_CHECK_DECLS(environ)
380 AC_CHECK_DEFINE([SIGXCPU], [signal.h], [
381 HAVE_SIGXCPU=1
382 AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?])
383 ], [HAVE_SIGXCPU=0])
384 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
386 # Solaris lacks this
387 AC_CHECK_DEFINE([INADDR_NONE], [netinet/in.h], [],
388     [AC_CHECK_DEFINE([INADDR_NONE], [winsock2.h], [],
389         [AC_DEFINE([INADDR_NONE],  [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
391 #### POSIX threads ####
393 ACX_PTHREAD
395 #### Check for libs ####
397 # ISO
398 AC_SEARCH_LIBS([pow], [m])
400 # POSIX
401 AC_SEARCH_LIBS([sched_setscheduler], [rt])
402 AC_SEARCH_LIBS([dlopen], [dl])
403 AC_SEARCH_LIBS([shm_open], [rt])
404 AC_SEARCH_LIBS([inet_ntop], [nsl])
405 AC_SEARCH_LIBS([timer_create], [rt])
407 # BSD
408 AC_SEARCH_LIBS([connect], [socket])
409 AC_SEARCH_LIBS([backtrace], [execinfo])
411 # Non-standard
413 # This magic is needed so we do not needlessly add static libs to the win32
414 # build, disabling its ability to make dlls.
415 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
417 #### Check for functions ####
419 # ISO
420 AC_CHECK_FUNCS_ONCE([lrintf strtof])
422 # POSIX
423 AC_FUNC_FORK
424 AC_FUNC_GETGROUPS
425 AC_FUNC_SELECT_ARGTYPES
426 AC_CHECK_FUNCS_ONCE([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \
427     getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \
428     pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
429     sigaction sleep sysconf pthread_setaffinity_np])
430 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
432 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
434 # X/OPEN
435 AC_CHECK_FUNCS_ONCE([readlink])
437 # SUSv2
438 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
440 # SUSv3
441 AC_CHECK_FUNCS_ONCE([strerror_r])
443 # BSD
444 AC_CHECK_FUNCS_ONCE([lstat])
446 # Non-standard
448 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4])
450 AC_FUNC_ALLOCA
452 AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
453   pulseaudio_cv_PTHREAD_PRIO_INHERIT,
454   [save_CC=$CC; CC=$PTHREAD_CC
455    save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS
456    save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS
457    AC_LINK_IFELSE(
458      AC_LANG_PROGRAM(
459        [[
460          #include <pthread.h>
461        ]],
462        [[int i = PTHREAD_PRIO_INHERIT;]]),
463      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes],
464      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=no])
465    CC=$save_CC
466    CFLAGS=$save_CFLAGS
467    LIBS=$save_LIBS
468   ])
470 AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
471     AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
472   ])
474 AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation])
476 #### Large File-Support (LFS) ####
478 AC_SYS_LARGEFILE
480 # Check for open64 to know if the current system does have open64() and similar functions
481 AC_CHECK_FUNCS_ONCE([open64])
483 #### [lib]iconv ####
485 AM_ICONV
487 IT_PROG_INTLTOOL([0.35.0])
488 GETTEXT_PACKAGE=pulseaudio
489 AC_SUBST([GETTEXT_PACKAGE])
490 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
491 AM_GLIB_GNU_GETTEXT
493 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
494 AC_SUBST(pulselocaledir)
496 ###################################
497 #      External libraries         #
498 ###################################
500 #### pkg-config ####
502 PKG_PROG_PKG_CONFIG
504 #### X11 (optional) ####
506 AC_ARG_ENABLE([x11],
507     AS_HELP_STRING([--disable-x11],[Disable optional X11 support]),
508         [
509             case "${enableval}" in
510                 yes) x11=yes ;;
511                 no) x11=no ;;
512                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
513             esac
514         ],
515         [x11=auto])
517 if test "x${x11}" != xno ; then
518     PKG_CHECK_MODULES(X11, [ x11 ice sm xtst ],
519         HAVE_X11=1,
520         [
521             HAVE_X11=0
522             if test "x$x11" = xyes ; then
523                 AC_MSG_ERROR([*** X11 not found])
524             fi
525         ])
526 else
527     HAVE_X11=0
530 if test "x${HAVE_X11}" = x1 ; then
531    AC_DEFINE([HAVE_X11], 1, [Have X11?])
534 AC_SUBST(X11_CFLAGS)
535 AC_SUBST(X11_LIBS)
536 AC_SUBST(HAVE_X11)
537 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
539 #### Capabilities (optional) ####
541 CAP_LIBS=''
543 AC_ARG_WITH(
544         [caps],
545         AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
547 if test "x${with_caps}" != "xno"; then
548     AC_SEARCH_LIBS([cap_init], [cap], [], [
549                     if test "x${with_caps}" = "xyes" ; then
550                         AC_MSG_ERROR([*** POSIX caps libraries not found])
551                     fi])
552     AC_CHECK_HEADERS([sys/capability.h], [], [
553                     if test "x${with_caps}" = "xyes" ; then
554                         AC_MSG_ERROR([*** POSIX caps headers not found])
555                     fi])
558 #### Valgrind (optional) ####
560 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
562 #### Sound file ####
564 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
565 AC_SUBST(LIBSNDFILE_CFLAGS)
566 AC_SUBST(LIBSNDFILE_LIBS)
568 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
569 AC_SUBST(LIBSPEEX_CFLAGS)
570 AC_SUBST(LIBSPEEX_LIBS)
572 #### atomic-ops ###
574 AC_MSG_CHECKING([whether we need libatomic_ops])
575 if test "x$need_libatomic_ops" = "xyes"; then
576    AC_MSG_RESULT([yes])
577    AC_CHECK_HEADERS([atomic_ops.h], [], [
578    AC_MSG_ERROR([*** libatomic-ops headers not found])
579    ])
581    # Win32 does not need the lib and breaks horribly if we try to include it
582    if test "x$os_is_win32" != "x1" ; then
583        LIBS="$LIBS -latomic_ops"
584    fi
585 else
586    AC_MSG_RESULT([no])
589 #### Libsamplerate support (optional) ####
591 AC_ARG_ENABLE([samplerate],
592     AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]),
593         [
594             case "${enableval}" in
595                 yes) samplerate=yes ;;
596                 no) samplerate=no ;;
597                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-samplerate) ;;
598             esac
599         ],
600         [samplerate=auto])
602 if test "x${samplerate}" != xno ; then
603     PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ],
604         HAVE_LIBSAMPLERATE=1,
605         [
606             HAVE_LIBSAMPLERATE=0
607             if test "x$samplerate" = xyes ; then
608                 AC_MSG_ERROR([*** Libsamplerate not found])
609             fi
610         ])
611 else
612     HAVE_LIBSAMPLERATE=0
615 if test "x${HAVE_LIBSAMPLERATE}" = x1 ; then
616    AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])
619 AC_SUBST(LIBSAMPLERATE_CFLAGS)
620 AC_SUBST(LIBSAMPLERATE_LIBS)
621 AC_SUBST(HAVE_LIBSAMPLERATE)
622 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
624 #### Database support ####
626 HAVE_TDB=0
627 HAVE_GDBM=0
628 HAVE_SIMPLEDB=0
630 AC_ARG_WITH(
631         [database],
632         AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[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${with_database}" = "xauto" -o "x${with_database}" = "xsimple" ; then
663     HAVE_SIMPLEDB=1
664     with_database=simple
667 if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1 -a "x${HAVE_SIMPLEDB}" != x1; then
668    AC_MSG_ERROR([*** missing database backend])
671 if test "x${HAVE_TDB}" = x1 ; then
672    AC_DEFINE([HAVE_TDB], 1, [Have tdb?])
675 if test "x${HAVE_GDBM}" = x1 ; then
676    AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
679 if test "x${HAVE_SIMPLEDB}" = x1 ; then
680     AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?])
683 AC_SUBST(TDB_CFLAGS)
684 AC_SUBST(TDB_LIBS)
685 AC_SUBST(HAVE_TDB)
686 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
688 AC_SUBST(GDBM_CFLAGS)
689 AC_SUBST(GDBM_LIBS)
690 AC_SUBST(HAVE_GDBM)
691 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
693 AC_SUBST(HAVE_SIMPLEDB)
694 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
696 #### OSS support (optional) ####
698 AC_ARG_ENABLE([oss-output],
699     AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]),
700         [
701             case "${enableval}" in
702                 yes) oss_output=yes ;;
703                 no) oss_output=no ;;
704                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-output) ;;
705             esac
706         ],
707         [oss_output=auto])
709 AC_ARG_ENABLE([oss-wrapper],
710     AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]),
711         [
712             case "${enableval}" in
713                 yes) oss_wrapper=yes ;;
714                 no) oss_wrapper=no ;;
715                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-wrapper) ;;
716             esac
717         ],
718         [oss_wrapper=auto])
720 if test "x${oss_output}" != xno || test "x${oss_wrapper}" != "xno"; then
721     AC_CHECK_HEADERS([sys/soundcard.h],
722         [
723             if test "x${oss_output}" != "xno"; then
724                 AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?])
725             fi
726             if test "x${oss_wrapper}" != "xno"; then
727                 AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?])
728             fi
729             HAVE_OSS=1
730         ],
731         [
732             HAVE_OSS=0
733             if test "x$oss_output" = xyes || test "x$oss_wrapper" = "xyes"; then
734                 AC_MSG_ERROR([*** OSS support not found])
735             fi
736         ])
737 else
738     HAVE_OSS=0
741 AC_SUBST(HAVE_OSS)
742 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS" = x1 && test "x${oss_output}" != "xno"])
743 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS" = x1 && test "x${oss_wrapper}" != "xno"])
745 #### CoreAudio support (optional) ####
747 AC_ARG_ENABLE([coreaudio-output],
748     AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]),
749         [
750             case "${enableval}" in
751                 yes) coreaudio_enabled=yes ;;
752                 no) coreaudio_enabled=no ;;
753                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-coreaudio-output) ;;
754             esac
755         ],
756         [coreaudio_enabled=auto])
758 if test "x${coreaudio_enabled}" != xno ; then
759     AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1)
760 else
761     HAVE_COREAUDIO=0
764 AC_SUBST(HAVE_COREAUDIO)
765 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = x1 && test "x${coreaudio_enabled}" != "xno"])
767 #### ALSA support (optional) ####
769 AC_ARG_ENABLE([alsa],
770     AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
771         [
772             case "${enableval}" in
773                 yes) alsa=yes ;;
774                 no) alsa=no ;;
775                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
776             esac
777         ],
778         [alsa=auto])
780 if test "x${alsa}" != xno ; then
781     PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
782         [
783             HAVE_ALSA=1
784             AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
785         ],
786         [
787             HAVE_ALSA=0
788             if test "x$alsa" = xyes ; then
789                 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
790             fi
791         ])
792 else
793     HAVE_ALSA=0
796 AC_SUBST(ASOUNDLIB_CFLAGS)
797 AC_SUBST(ASOUNDLIB_LIBS)
798 AC_SUBST(HAVE_ALSA)
799 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
801 #### Solaris audio support (optional) ####
803 AC_ARG_ENABLE([solaris],
804     AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
805         [
806             case "${enableval}" in
807                 yes) solaris=yes ;;
808                 no) solaris=no ;;
809                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
810             esac
811         ],
812         [solaris=auto])
814 if test "x${solaris}" != xno ; then
815     AC_CHECK_HEADERS([sys/audio.h],
816         [
817             HAVE_SOLARIS=1
818             AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
819         ],
820         [
821             HAVE_SOLARIS=0
822             if test "x$solaris" = xyes ; then
823                 AC_MSG_ERROR([*** Solaris audio support not found])
824             fi
825         ])
826 else
827     HAVE_SOLARIS=0
830 AC_SUBST(HAVE_SOLARIS)
831 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
833 #### GLib 2 support (optional) ####
835 AC_ARG_ENABLE([glib2],
836     AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
837         [
838             case "${enableval}" in
839                 yes) glib2=yes ;;
840                 no) glib2=no ;;
841                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
842             esac
843         ],
844         [glib2=auto])
846 if test "x${glib2}" != xno ; then
847     PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
848         HAVE_GLIB20=1,
849         [
850             HAVE_GLIB20=0
851             if test "x$glib2" = xyes ; then
852                 AC_MSG_ERROR([*** GLib 2 support not found])
853             fi
854         ])
855 else
856     HAVE_GLIB20=0
859 AC_SUBST(GLIB20_CFLAGS)
860 AC_SUBST(GLIB20_LIBS)
861 AC_SUBST(HAVE_GLIB20)
862 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
864 if test "x$HAVE_GLIB20" = x1 ; then
865    AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
868 #### GTK2 support (optional) ####
870 AC_ARG_ENABLE([gtk2],
871     AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
872         [
873             case "${enableval}" in
874                 yes) gtk2=yes ;;
875                 no) gtk2=no ;;
876                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
877             esac
878         ],
879         [gtk2=auto])
881 if test "x${gtk2}" != xno ; then
882     PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
883         HAVE_GTK20=1,
884         [
885             HAVE_GTK20=0
886             if test "x$gtk2" = xyes ; then
887                 AC_MSG_ERROR([*** Gtk+ 2 support not found])
888             fi
889         ])
890 else
891     HAVE_GTK20=0
894 AC_SUBST(GTK20_CFLAGS)
895 AC_SUBST(GTK20_LIBS)
896 AC_SUBST(HAVE_GTK20)
897 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
899 if test "x$HAVE_GTK20" = x1 ; then
900    AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
903 #### GConf support (optional) ####
905 AC_ARG_ENABLE([gconf],
906     AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
907         [
908             case "${enableval}" in
909                 yes) gconf=yes ;;
910                 no) gconf=no ;;
911                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
912             esac
913         ],
914         [gconf=auto])
916 if test "x${gconf}" != xno ; then
917     PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 ],
918         HAVE_GCONF=1,
919         [
920             HAVE_GCONF=0
921             if test "x$gconf" = xyes ; then
922                 AC_MSG_ERROR([*** GConf support not found])
923             fi
924         ])
925 else
926     HAVE_GCONF=0
929 AC_SUBST(GCONF_CFLAGS)
930 AC_SUBST(GCONF_LIBS)
931 AC_SUBST(HAVE_GCONF)
932 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
934 #### Avahi support (optional) ####
936 AC_ARG_ENABLE([avahi],
937     AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
938         [
939             case "${enableval}" in
940                 yes) avahi=yes ;;
941                 no) avahi=no ;;
942                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
943             esac
944         ],
945         [avahi=auto])
947 if test "x${avahi}" != xno ; then
948     PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
949         HAVE_AVAHI=1,
950         [
951                 HAVE_AVAHI=0
952                 if test "x$avahi" = xyes ; then
953                         AC_MSG_ERROR([*** Avahi support not found])
954                 fi
955         ])
956 else
957     HAVE_AVAHI=0
960 AC_SUBST(AVAHI_CFLAGS)
961 AC_SUBST(AVAHI_LIBS)
962 AC_SUBST(HAVE_AVAHI)
963 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
965 ### JACK (optional) ####
967 AC_ARG_ENABLE([jack],
968     AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
969         [
970             case "${enableval}" in
971                 yes) jack=yes ;;
972                 no) jack=no ;;
973                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
974             esac
975         ],
976         [jack=auto])
978 if test "x${jack}" != xno ; then
979     PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
980         HAVE_JACK=1,
981         [
982             HAVE_JACK=0
983             if test "x$jack" = xyes ; then
984                 AC_MSG_ERROR([*** JACK support not found])
985             fi
986         ])
987 else
988     HAVE_JACK=0
991 AC_SUBST(JACK_CFLAGS)
992 AC_SUBST(JACK_LIBS)
993 AC_SUBST(HAVE_JACK)
994 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
996 #### Async DNS support (optional) ####
998 AC_ARG_ENABLE([asyncns],
999     AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
1000         [
1001             case "${enableval}" in
1002                 yes) asyncns=yes ;;
1003                 no) asyncns=no ;;
1004                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
1005             esac
1006         ],
1007         [asyncns=auto])
1009 if test "x${asyncns}" != xno ; then
1010     PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
1011         HAVE_LIBASYNCNS=1,
1012         [
1013             HAVE_LIBASYNCNS=0
1014             if test "x$asyncns" = xyes ; then
1015                 AC_MSG_ERROR([*** Async DNS support not found])
1016             fi
1017         ])
1018 else
1019     HAVE_LIBASYNCNS=0
1022 AC_SUBST(LIBASYNCNS_CFLAGS)
1023 AC_SUBST(LIBASYNCNS_LIBS)
1024 AC_SUBST(HAVE_LIBASYNCNS)
1025 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1027 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
1028    AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
1031 #### TCP wrappers (optional) ####
1033 AC_ARG_ENABLE([tcpwrap],
1034     AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
1035         [
1036             case "${enableval}" in
1037                 yes) tcpwrap=yes ;;
1038                 no) tcpwrap=no ;;
1039                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
1040             esac
1041         ],
1042         [tcpwrap=auto])
1044 if test "x${tcpwrap}" != xno ; then
1045     ACX_LIBWRAP
1046     if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
1047         AC_MSG_ERROR([*** TCP wrappers support not found])
1048     fi
1049 else
1050     LIBWRAP_LIBS=
1053 AC_SUBST(LIBWRAP_LIBS)
1055 #### LIRC support (optional) ####
1057 AC_ARG_ENABLE([lirc],
1058     AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
1059         [
1060             case "${enableval}" in
1061                 yes) lirc=yes ;;
1062                 no) lirc=no ;;
1063                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
1064             esac
1065         ],
1066         [lirc=auto])
1068 if test "x${lirc}" != xno ; then
1069     ACX_LIRC
1070     if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
1071         AC_MSG_ERROR([*** LIRC support not found])
1072     fi
1073 else
1074     HAVE_LIRC=0
1077 AC_SUBST(LIRC_CFLAGS)
1078 AC_SUBST(LIRC_LIBS)
1079 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1081 #### HAL support (optional) ####
1083 AC_ARG_ENABLE([hal],
1084     AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
1085         [
1086             case "${enableval}" in
1087                 yes) hal=yes ;;
1088                 no) hal=no ;;
1089                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
1090             esac
1091         ],
1092         [hal=auto])
1093 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1094     PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
1095         [
1096             HAVE_HAL=1
1097             AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
1098         ],
1099         [
1100             HAVE_HAL=0
1101             if test "x$hal" = xyes ; then
1102                 AC_MSG_ERROR([*** HAL support not found])
1103             fi
1104         ])
1105 else
1106     HAVE_HAL=0
1109 AC_SUBST(HAL_CFLAGS)
1110 AC_SUBST(HAL_LIBS)
1111 AC_SUBST(HAVE_HAL)
1112 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
1114 #### UDEV support (optional) ####
1116 AC_ARG_ENABLE([udev],
1117     AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
1118         [
1119             case "${enableval}" in
1120                 yes) udev=yes ;;
1121                 no) udev=no ;;
1122                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1123             esac
1124         ],
1125         [udev=auto])
1126 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1127     PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ],
1128         [
1129             HAVE_UDEV=1
1130             AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1131         ],
1132         [
1133             HAVE_UDEV=0
1134             if test "x$udev" = xyes ; then
1135                 AC_MSG_ERROR([*** UDEV support not found])
1136             fi
1137         ])
1138 else
1139     HAVE_UDEV=0
1142 AC_SUBST(UDEV_CFLAGS)
1143 AC_SUBST(UDEV_LIBS)
1144 AC_SUBST(HAVE_UDEV)
1145 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1147 #### HAL compat support (optional) ####
1149 AC_ARG_ENABLE([hal-compat],
1150     AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]),
1151         [
1152             case "${enableval}" in
1153                 yes) halcompat=yes ;;
1154                 no) halcompat=no ;;
1155                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal-compat) ;;
1156             esac
1157         ],
1158         [halcompat=auto])
1159 if test "x${halcompat}" != xno -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1" ; then
1160     HAVE_HAL_COMPAT=1
1161     AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
1162 else
1163     HAVE_HAL_COMPAT=0
1166 AC_SUBST(HAVE_HAL_COMPAT)
1167 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1169 #### BlueZ support (optional) ####
1171 AC_ARG_ENABLE([bluez],
1172     AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1173         [
1174             case "${enableval}" in
1175                 yes) bluez=yes ;;
1176                 no) bluez=no ;;
1177                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1178             esac
1179         ],
1180         [bluez=auto])
1181 if test "x${bluez}" != xno ; then
1182     PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1183         HAVE_BLUEZ=1,
1184         [
1185             HAVE_BLUEZ=0
1186             if test "x$bluez" = xyes ; then
1187                 AC_MSG_ERROR([*** BLUEZ support not found])
1188             fi
1189         ])
1190 else
1191     HAVE_BLUEZ=0
1194 AC_SUBST(BLUEZ_CFLAGS)
1195 AC_SUBST(BLUEZ_LIBS)
1196 AC_SUBST(HAVE_BLUEZ)
1197 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1199 #### D-Bus support (optional) ####
1201 AC_ARG_ENABLE([dbus],
1202     AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1203         [
1204             case "${enableval}" in
1205                 yes) dbus=yes ;;
1206                 no) dbus=no ;;
1207                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1208             esac
1209         ],
1210         [dbus=auto])
1212 if test "x$HAVE_HAL" = x1 ; then
1213    dbus=yes
1216 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1218     PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1219         [
1220             HAVE_DBUS=1
1221             saved_LIBS="$LIBS"
1222             LIBS="$LIBS $DBUS_LIBS"
1223             CFLAGS="$CFLAGS $DBUS_CFLAGS"
1224             AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1225             LIBS="$saved_LIBS"
1226             AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1227         ],
1228         [
1229             HAVE_DBUS=0
1230             if test "x$dbus" = xyes ; then
1231                 AC_MSG_ERROR([*** D-Bus support not found])
1232             fi
1233         ])
1234 else
1235     HAVE_DBUS=0
1238 AC_SUBST(DBUS_CFLAGS)
1239 AC_SUBST(DBUS_LIBS)
1240 AC_SUBST(HAVE_DBUS)
1241 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1243 ### IPv6 connection support (optional) ###
1245 AC_ARG_ENABLE([ipv6],
1246     AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1247         [
1248             case "${enableval}" in
1249                 yes) ipv6=yes ;;
1250                 no) ipv6=no ;;
1251                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1252             esac
1253         ],
1254         [ipv6=auto])
1256 if test "x${ipv6}" != xno ; then
1257     AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1258     HAVE_IPV6=1
1259 else
1260     HAVE_IPV6=0
1263 #### OpenSSL support (optional) ####
1265 AC_ARG_ENABLE([openssl],
1266     AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1267         [
1268             case "${enableval}" in
1269                 yes) openssl=yes ;;
1270                 no) openssl=no ;;
1271                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1272             esac
1273         ],
1274         [openssl=auto])
1276 if test "x${openssl}" != xno ; then
1278     PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1279         [
1280             HAVE_OPENSSL=1
1281             AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1282         ],
1283         [
1284             HAVE_OPENSSL=0
1285             if test "x$openssl" = xyes ; then
1286                 AC_MSG_ERROR([*** OpenSSL support not found])
1287             fi
1288         ])
1289 else
1290     HAVE_OPENSSL=0
1293 AC_SUBST(OPENSSL_CFLAGS)
1294 AC_SUBST(OPENSSL_LIBS)
1295 AC_SUBST(HAVE_OPENSSL)
1296 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1298 #### FFTW (optional) ####
1299 AC_ARG_WITH(
1300         [fftw],
1301         AS_HELP_STRING([--without-fftw], [Omit FFTW-using modules (equalizer)]))
1303 if test "x${with_fftw}" != "xno"; then
1304     PKG_CHECK_MODULES([FFTW], [fftw3f], [HAVE_FFTW=1], [HAVE_FFTW=0])
1306 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1308 ### Build and Install man pages ###
1309 AC_ARG_ENABLE(manpages,
1310         AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1311 [case "${enableval}" in
1312   yes) manpages=yes ;;
1313   no)  manpages=no ;;
1314   *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1315 esac],[manpages=yes])
1317 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1319 #### PulseAudio system group & user  #####
1321 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1322 if test -z "$with_system_user" ; then
1323     PA_SYSTEM_USER=pulse
1324 else
1325     PA_SYSTEM_USER=$with_system_user
1327 AC_SUBST(PA_SYSTEM_USER)
1328 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1330 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1331 if test -z "$with_system_group" ; then
1332     PA_SYSTEM_GROUP=pulse
1333 else
1334     PA_SYSTEM_GROUP=$with_system_group
1336 AC_SUBST(PA_SYSTEM_GROUP)
1337 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1339 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)]))
1340 if test -z "$with_access_group" ; then
1341     PA_ACCESS_GROUP=pulse-access
1342 else
1343     PA_ACCESS_GROUP=$with_access_group
1345 AC_SUBST(PA_ACCESS_GROUP)
1346 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1348 AC_ARG_ENABLE(
1349         per_user_esound_socket,
1350         AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1351         [
1352             case "${enableval}" in
1353                 yes) per_user_esound_socket=1 ;;
1354                 no) per_user_esound_socket=0 ;;
1355                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1356             esac
1357         ],
1358         [per_user_esound_socket=1])
1360 if test "x$per_user_esound_socket" = "x1"; then
1361    AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1364 #### PulseAudio system runtime dir ####
1365 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1366 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1367 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1368 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1369 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1370 AC_SUBST(PA_SYSTEM_STATE_PATH)
1372 ###################################
1373 #            Output               #
1374 ###################################
1376 AC_ARG_ENABLE([legacy-runtime-dir],
1377         AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1378 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1379         AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1382 AC_ARG_ENABLE(
1383         [static-bins],
1384         AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1385         [STATIC_BINS=1], [STATIC_BINS=0])
1386 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1388 AC_ARG_WITH(
1389         [preopen-mods],
1390         AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1391         [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1392 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1393 if test "x$PREOPEN_MODS" != "xall" ; then
1394     tmpLIBS=""
1395     for mod in $PREOPEN_MODS; do
1396         tmpLIBS="$tmpLIBS module-$mod.la"
1397     done
1398     PREOPEN_MODS="$tmpLIBS"
1399     AC_SUBST(PREOPEN_MODS)
1402 AC_ARG_WITH(
1403         [module-dir],
1404         AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules]),
1405         [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules"])
1407 AC_SUBST(modlibexecdir)
1409 AC_ARG_ENABLE(
1410         [force-preopen],
1411         AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1412         [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1413 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1415 AC_CONFIG_FILES([
1416 Makefile
1417 src/Makefile
1418 man/Makefile
1419 libpulse.pc
1420 libpulse-simple.pc
1421 libpulse-browse.pc
1422 libpulse-mainloop-glib.pc
1423 doxygen/Makefile
1424 doxygen/doxygen.conf
1425 src/pulse/version.h
1426 po/Makefile.in
1429 AC_OUTPUT
1431 # ==========================================================================
1432 ENABLE_X11=no
1433 if test "x$HAVE_X11" = "x1" ; then
1434    ENABLE_X11=yes
1437 ENABLE_OSS_OUTPUT=no
1438 ENABLE_OSS_WRAPPER=no
1439 if test "x$HAVE_OSS" = "x1" ; then
1440    if test "x$enable_oss_output" != "xno"; then
1441       ENABLE_OSS_OUTPUT=yes
1442    fi
1443    if test "x$enable_oss_wrapper" != "xno"; then
1444       ENABLE_OSS_WRAPPER=yes
1445    fi
1448 ENABLE_COREAUDIO=no
1449 if test "x$HAVE_COREAUDIO" = "x1" ; then
1450    ENABLE_COREAUDIO=yes
1453 ENABLE_ALSA=no
1454 if test "x$HAVE_ALSA" = "x1" ; then
1455    ENABLE_ALSA=yes
1458 ENABLE_SOLARIS=no
1459 if test "x$HAVE_SOLARIS" = "x1" ; then
1460    ENABLE_SOLARIS=yes
1463 ENABLE_GTK20=no
1464 if test "x$HAVE_GTK20" = "x1" ; then
1465    ENABLE_GTK20=yes
1468 ENABLE_GLIB20=no
1469 if test "x$HAVE_GLIB20" = "x1" ; then
1470    ENABLE_GLIB20=yes
1473 ENABLE_GCONF=no
1474 if test "x$HAVE_GCONF" = "x1" ; then
1475    ENABLE_GCONF=yes
1478 ENABLE_AVAHI=no
1479 if test "x$HAVE_AVAHI" = "x1" ; then
1480    ENABLE_AVAHI=yes
1483 ENABLE_JACK=no
1484 if test "x$HAVE_JACK" = "x1" ; then
1485    ENABLE_JACK=yes
1488 ENABLE_LIBASYNCNS=no
1489 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1490    ENABLE_LIBASYNCNS=yes
1493 ENABLE_LIRC=no
1494 if test "x$HAVE_LIRC" = "x1" ; then
1495    ENABLE_LIRC=yes
1498 ENABLE_HAL=no
1499 if test "x$HAVE_HAL" = "x1" ; then
1500    ENABLE_HAL=yes
1503 ENABLE_UDEV=no
1504 if test "x$HAVE_UDEV" = "x1" ; then
1505    ENABLE_UDEV=yes
1508 ENABLE_HAL_COMPAT=no
1509 if test "x$HAVE_HAL_COMPAT" = "x1" ; then
1510    ENABLE_HAL_COMPAT=yes
1513 ENABLE_TCPWRAP=no
1514 if test "x${LIBWRAP_LIBS}" != x ; then
1515    ENABLE_TCPWRAP=yes
1518 ENABLE_LIBSAMPLERATE=no
1519 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1520    ENABLE_LIBSAMPLERATE=yes
1523 ENABLE_BLUEZ=no
1524 if test "x${HAVE_BLUEZ}" = "x1" ; then
1525    ENABLE_BLUEZ=yes
1528 ENABLE_GDBM=no
1529 if test "x${HAVE_GDBM}" = "x1" ; then
1530    ENABLE_GDBM=yes
1533 ENABLE_TDB=no
1534 if test "x${HAVE_TDB}" = "x1" ; then
1535    ENABLE_TDB=yes
1538 ENABLE_SIMPLEDB=no
1539 if test "x${HAVE_SIMPLEDB}" = "x1" ; then
1540     ENABLE_SIMPLEDB=yes
1543 ENABLE_FFTW=no
1544 if test "x${HAVE_FFTW}" = "x1" ; then
1545    ENABLE_FFTW=yes
1548 ENABLE_OPENSSL=no
1549 if test "x${HAVE_OPENSSL}" = "x1" ; then
1550    ENABLE_OPENSSL=yes
1553 ENABLE_IPV6=no
1554 if test "x${HAVE_IPV6}" = "x1" ; then
1555    ENABLE_IPV6=yes
1558 ENABLE_PER_USER_ESOUND_SOCKET=no
1559 if test "x$per_user_esound_socket" = "x1" ; then
1560    ENABLE_PER_USER_ESOUND_SOCKET=yes
1563 echo "
1564  ---{ $PACKAGE_NAME $VERSION }---
1566     prefix:                        ${prefix}
1567     sysconfdir:                    ${sysconfdir}
1568     localstatedir:                 ${localstatedir}
1569     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1570     System State Path:             ${PA_SYSTEM_STATE_PATH}
1571     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1572     Compiler:                      ${CC}
1573     CFLAGS:                        ${CFLAGS}
1575     Have X11:                      ${ENABLE_X11}
1576     Enable OSS Output:             ${ENABLE_OSS_OUTPUT}
1577     Enable OSS Wrapper:            ${ENABLE_OSS_WRAPPER}
1578     Enable CoreAudio:              ${ENABLE_COREAUDIO}
1579     Enable Alsa:                   ${ENABLE_ALSA}
1580     Enable Solaris:                ${ENABLE_SOLARIS}
1581     Enable GLib 2.0:               ${ENABLE_GLIB20}
1582     Enable Gtk+ 2.0:               ${ENABLE_GTK20}
1583     Enable GConf:                  ${ENABLE_GCONF}
1584     Enable Avahi:                  ${ENABLE_AVAHI}
1585     Enable Jack:                   ${ENABLE_JACK}
1586     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1587     Enable LIRC:                   ${ENABLE_LIRC}
1588     Enable HAL:                    ${ENABLE_HAL}
1589     Enable udev:                   ${ENABLE_UDEV}
1590     Enable HAL->udev compat:       ${ENABLE_HAL_COMPAT}
1591     Enable BlueZ:                  ${ENABLE_BLUEZ}
1592     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1593     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1594     Enable IPv6:                   ${ENABLE_IPV6}
1595     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1596     Enable tdb:                    ${ENABLE_TDB}
1597     Enable gdbm:                   ${ENABLE_GDBM}
1598     Enable simple database:        ${ENABLE_SIMPLEDB}
1599     Enable fftw:                   ${ENABLE_FFTW}
1601     System User:                   ${PA_SYSTEM_USER}
1602     System Group:                  ${PA_SYSTEM_GROUP}
1603     Access Group:                  ${PA_ACCESS_GROUP}
1604     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1605     Force preopen:                 ${FORCE_PREOPEN}
1606     Preopened modules:             ${PREOPEN_MODS}