bluetooth: fix invalid memory access
[pulseaudio-mirror.git] / configure.ac
blob8abaabb39eeb84f1d0b50a176cab3e2d31007800
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:2: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 AC_CHECK_PROG([STOW], [stow], [yes], [no])
66 AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
67    AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
68    ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
71 AM_SILENT_RULES([yes])
73 #### Checks for programs. ####
75 # mkdir -p
77 AC_PROG_MKDIR_P
79 # CC
81 AC_PROG_CC
82 AC_PROG_CC_C99
83 AM_PROG_CC_C_O
84 AC_PROG_GCC_TRADITIONAL
85 AC_USE_SYSTEM_EXTENSIONS
87 #### Platform hacks ####
89 case $host in
90    *-*-solaris* )
91       AC_DEFINE(_XOPEN_SOURCE,        600, Needed to get declarations for msg_control and msg_controllen on Solaris)
92       AC_DEFINE(__EXTENSIONS__,         1, Needed to get declarations for msg_control and msg_controllen on Solaris)
93       ;;
94    *-*-darwin* )
95       AC_DEFINE([_POSIX_C_SOURCE], [200112L], [Needed to get clock_gettime on Mac OS X])
96       AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
97       ;;
98 esac
100 # M4
102 AC_CHECK_PROGS([M4], gm4 m4, no)
103 if test "x$M4" = xno ; then
104    AC_MSG_ERROR([m4 missing])
107 dnl Compiler flags
108 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])
110 dnl Linker flags.
111 dnl Check whether the linker supports the -version-script option.
113 dnl This variable is used to make sure ${srcdir} is expanded and not
114 dnl passed to the CC_CHECK_LDFLAGS macro as a name.
115 tmp_ldflag="-Wl,-version-script=${srcdir}/src/map-file"
117 CC_CHECK_LDFLAGS([${tmp_ldflag}],
118     [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
119 AC_SUBST([VERSIONING_LDFLAGS])
121 dnl Use immediate (now) bindings; avoids the funky re-call in itself
122 dnl  the -z now syntax is lifted from Sun's linker and works with GNU's too
123 dnl  other linkes might be added later
124 CC_CHECK_LDFLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS="-Wl,-z,now"])
125 AC_SUBST([IMMEDIATE_LDFLAGS])
127 dnl On ELF systems we don't want the libraries to be unloaded since we
128 dnl don't clean them up properly, so we request the nodelete flag to be
129 dnl enabled.
131 dnl On other systems, we don't really know how to do that, but it's
132 dnl welcome if somebody can tell.
133 CC_CHECK_LDFLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS="-Wl,-z,nodelete"])
134 AC_SUBST([NODELETE_LDFLAGS])
136 dnl Check for the proper way to build libraries that have no undefined
137 dnl symbols; on some hosts this needs to be avoided but the macro
138 dnl takes care of it.
139 CC_NOUNDEFINED
141 dnl Check whether to build tests by default (as compile-test) or not
142 AC_ARG_ENABLE([default-build-tests],
143     AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
145 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
147 # Native atomic operation support
148 AC_ARG_ENABLE([atomic-arm-linux-helpers],
149     AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]),
150         [
151             case "${enableval}" in
152                 yes) atomic_arm_linux_helpers=yes ;;
153                 no) atomic_arm_linux_helpers=no ;;
154                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
155             esac
156         ],
157         [atomic_arm_linux_helpers=auto])
159 AC_ARG_ENABLE([atomic-arm-memory-barrier],
160     AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]),
161         [
162             case "${enableval}" in
163                 yes) AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers]) ;;
164                 no) ;;
165                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
166             esac
167         ],)
169 AC_MSG_CHECKING([target operating system])
170 case $host in
171         *-*-linux*)
172             AC_MSG_RESULT([linux])
173             pulse_target_os=linux
174         ;;
175         *-*-darwin*)
176             AC_MSG_RESULT([darwin])
177             pulse_target_os=darwin
178         ;;
179         *)
180             AC_MSG_RESULT([unknown])
181             pulse_target_os=unknown
182         ;;
183 esac
185 # If everything else fails use libatomic_ops
186 need_libatomic_ops=yes
188 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
189   pulseaudio_cv_sync_bool_compare_and_swap,
190   [AC_LINK_IFELSE(
191      AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
192      [pulseaudio_cv_sync_bool_compare_and_swap=yes],
193      [pulseaudio_cv_sync_bool_compare_and_swap=no])
194   ])
196 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
197     AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
198     need_libatomic_ops=no
199 else
200     # HW specific atomic ops stuff
201     AC_MSG_CHECKING([architecture for native atomic operations])
202     case $host in
203         arm*)
204             AC_MSG_RESULT([arm])
205             AC_MSG_CHECKING([whether we can use Linux kernel helpers])
206             # The Linux kernel helper functions have been there since 2.6.16. However
207             # compile time checking for kernel version in cross compile environment
208             # (which is usually the case for arm cpu) is tricky (or impossible).
209             if test "x$pulse_target_os" = "xlinux" && test "x$atomic_arm_linux_helpers" != "xno"; then
210                 AC_MSG_RESULT([yes])
211                 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
212                 need_libatomic_ops=no
213             else
214                AC_MSG_RESULT([no])
215                AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
216                  pulseaudio_cv_support_arm_atomic_ops,
217                  [AC_COMPILE_IFELSE(
218                     AC_LANG_PROGRAM([],
219                       [[volatile int a=0;
220                         int o=0, n=1, r;
221                         asm volatile ("ldrex    %0, [%1]\n"
222                                          "subs  %0, %0, %2\n"
223                                          "strexeq %0, %3, [%1]\n"
224                                          : "=&r" (r)
225                                          : "r" (&a), "Ir" (o), "r" (n)
226                                          : "cc");
227                         return (a==1 ? 0 : -1);
228                       ]]),
229                     [pulseaudio_cv_support_arm_atomic_ops=yes],
230                     [pulseaudio_cv_support_arm_atomic_ops=no])
231                  ])
232                AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
233                    AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARMv6 instructions.])
234                    need_libatomic_ops=no
235                  ])
236            fi
237         ;;
238         *-netbsdelf5*)
239             AC_MSG_RESULT([yes])
240             need_libatomic_ops=no
241         ;;
242         *-freebsd*)
243             AC_MSG_RESULT([yes])
244             need_libatomic_ops=no
245         ;;
246         *)
247             AC_MSG_RESULT([unknown])
248         ;;
249     esac
252 CC_CHECK_TLS
254 AC_CACHE_CHECK([whether $CC knows _Bool],
255   pulseaudio_cv__Bool,
256   [AC_COMPILE_IFELSE(
257      AC_LANG_PROGRAM([], [[_Bool b;]]),
258      [pulseaudio_cv__Bool=yes],
259      [pulseaudio_cv__Bool=no])
260   ])
262 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [
263     AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.])
264   ])
266 #### libtool stuff ####
267 LT_PREREQ(2.2)
268 LT_INIT([dlopen win32-dll disable-static])
270 dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
271 dnl exactly which version of libltdl is present in the system, so we
272 dnl just assume that it's a working version as long as we have the
273 dnl library and the header files.
275 dnl As an extra safety device, check for lt_dladvise_init() which is
276 dnl only implemented in libtool 2.x, and refine as we go if we have
277 dnl refined requirements.
279 dnl Check the header files first since the system may have a
280 dnl libltdl.so for runtime, but no headers, and we want to bail out as
281 dnl soon as possible.
283 dnl We don't need any special variable for this though, since the user
284 dnl can give the proper place to find libltdl through the standard
285 dnl variables like LDFLAGS and CPPFLAGS.
287 AC_CHECK_HEADER([ltdl.h],
288     [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
289     [LIBLTDL=])
291 AS_IF([test "x$LIBLTDL" = "x"],
292     [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
293 AC_SUBST([LIBLTDL])
295 #### Determine build environment ####
297 os_is_win32=0
298 os_is_darwin=0
300 case "$host_os" in
301         mingw*)
302         AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
303         os_is_win32=1
304                 ;;
305         darwin*)
306         AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.])
307         os_is_darwin=1
308                 ;;
309         esac
311 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
312 AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
314 ###################################
315 #   Basic environment checks      #
316 ###################################
318 #### Checks for header files. ####
320 # ISO
321 AC_HEADER_STDC
323 # POSIX
324 AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
325     netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
326     sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \
327     sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
328 AC_CHECK_HEADERS([netinet/ip.h], [], [],
329                  [#include <sys/types.h>
330                   #if HAVE_NETINET_IN_H
331                   # include <netinet/in.h>
332                   #endif
333                   #if HAVE_NETINET_IN_SYSTM_H
334                   # include <netinet/in_systm.h>
335                   #endif
336                  ])
337 AC_CHECK_HEADERS([regex.h], [HAVE_REGEX=1], [HAVE_REGEX=0])
338 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
340 AM_CONDITIONAL(HAVE_REGEX, test "x$HAVE_REGEX" = "x1")
341 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
343 # Linux
344 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
346 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
348 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
350 # Solaris
351 AC_CHECK_HEADERS_ONCE([sys/filio.h])
353 # Windows
354 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
356 # NetBSD
357 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
359 # Other
360 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
361 AC_CHECK_HEADERS_ONCE([byteswap.h])
362 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
363 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
364 AC_CHECK_HEADERS_ONCE([execinfo.h])
366 #### Typdefs, structures, etc. ####
368 AC_C_CONST
369 AC_C_BIGENDIAN
370 AC_TYPE_PID_T
371 AC_TYPE_SIZE_T
372 AC_CHECK_TYPES(ssize_t, , [AC_DEFINE([ssize_t], [signed long],
373     [Define ssize_t if it is not done by the standard libs.])])
374 AC_TYPE_OFF_T
376 AC_TYPE_UID_T
377 AC_CHECK_DECLS(environ)
379 AC_CHECK_DEFINE([SIGXCPU], [signal.h], [
380 HAVE_SIGXCPU=1
381 AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?])
382 ], [HAVE_SIGXCPU=0])
383 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
385 # Solaris lacks this
386 AC_CHECK_DEFINE([INADDR_NONE], [netinet/in.h], [],
387     [AC_CHECK_DEFINE([INADDR_NONE], [winsock2.h], [],
388         [AC_DEFINE([INADDR_NONE],  [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
390 #### POSIX threads ####
392 ACX_PTHREAD
394 #### Check for libs ####
396 # ISO
397 AC_SEARCH_LIBS([pow], [m])
399 # POSIX
400 AC_SEARCH_LIBS([sched_setscheduler], [rt])
401 AC_SEARCH_LIBS([dlopen], [dl])
402 AC_SEARCH_LIBS([shm_open], [rt])
403 AC_SEARCH_LIBS([inet_ntop], [nsl])
404 AC_SEARCH_LIBS([timer_create], [rt])
406 # BSD
407 AC_SEARCH_LIBS([connect], [socket])
408 AC_SEARCH_LIBS([backtrace], [execinfo])
410 # Non-standard
412 # This magic is needed so we do not needlessly add static libs to the win32
413 # build, disabling its ability to make dlls.
414 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
416 # Darwin/OS X
417 if test "x$os_is_darwin" = "x1" ; then
418     AC_MSG_CHECKING([looking for Apple CoreService Framework])
419     # How do I check a framework "library" - AC_CHECK_LIB prob. won't work??, just assign LIBS & hope
420     AC_CHECK_HEADER([/Developer/Headers/FlatCarbon/CoreServices.h],
421     [LIBS="$LIBS -framework CoreServices"],
422     [AC_MSG_ERROR([CoreServices.h header file not found]) ])
424     AC_MSG_RESULT([ok])
425     AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
426     HAVE_BONJOUR=1
429 AC_SUBST(HAVE_BONJOUR)
430 AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
432 #### Check for functions ####
434 # ISO
435 AC_CHECK_FUNCS_ONCE([lrintf strtof])
437 # POSIX
438 AC_FUNC_FORK
439 AC_FUNC_GETGROUPS
440 AC_FUNC_SELECT_ARGTYPES
441 AC_CHECK_FUNCS_ONCE([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \
442     getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \
443     pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
444     sigaction sleep sysconf pthread_setaffinity_np])
445 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
447 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
449 # X/OPEN
450 AC_CHECK_FUNCS_ONCE([readlink])
452 # SUSv2
453 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
455 # SUSv3
456 AC_CHECK_FUNCS_ONCE([strerror_r])
458 # BSD
459 AC_CHECK_FUNCS_ONCE([lstat])
461 # Non-standard
463 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4])
465 AC_FUNC_ALLOCA
467 AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
468   pulseaudio_cv_PTHREAD_PRIO_INHERIT,
469   [save_CC=$CC; CC=$PTHREAD_CC
470    save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS
471    save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS
472    AC_LINK_IFELSE(
473      AC_LANG_PROGRAM(
474        [[
475          #include <pthread.h>
476        ]],
477        [[int i = PTHREAD_PRIO_INHERIT;]]),
478      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes],
479      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=no])
480    CC=$save_CC
481    CFLAGS=$save_CFLAGS
482    LIBS=$save_LIBS
483   ])
485 AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
486     AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
487   ])
489 AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation])
491 #### Large File-Support (LFS) ####
493 AC_SYS_LARGEFILE
495 # Check for open64 to know if the current system does have open64() and similar functions
496 AC_CHECK_FUNCS_ONCE([open64])
498 #### [lib]iconv ####
500 AM_ICONV
502 IT_PROG_INTLTOOL([0.35.0])
503 GETTEXT_PACKAGE=pulseaudio
504 AC_SUBST([GETTEXT_PACKAGE])
505 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
506 AM_GLIB_GNU_GETTEXT
508 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
509 AC_SUBST(pulselocaledir)
511 ###################################
512 #      External libraries         #
513 ###################################
515 #### pkg-config ####
517 PKG_PROG_PKG_CONFIG
519 #### X11 (optional) ####
521 AC_ARG_ENABLE([x11],
522     AS_HELP_STRING([--disable-x11],[Disable optional X11 support]),
523         [
524             case "${enableval}" in
525                 yes) x11=yes ;;
526                 no) x11=no ;;
527                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
528             esac
529         ],
530         [x11=auto])
532 if test "x${x11}" != xno ; then
533     PKG_CHECK_MODULES(X11, [ x11 ice sm xtst ],
534         HAVE_X11=1,
535         [
536             HAVE_X11=0
537             if test "x$x11" = xyes ; then
538                 AC_MSG_ERROR([*** X11 not found])
539             fi
540         ])
541 else
542     HAVE_X11=0
545 if test "x${HAVE_X11}" = x1 ; then
546    AC_DEFINE([HAVE_X11], 1, [Have X11?])
549 AC_SUBST(X11_CFLAGS)
550 AC_SUBST(X11_LIBS)
551 AC_SUBST(HAVE_X11)
552 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
554 #### Capabilities (optional) ####
556 CAP_LIBS=''
558 AC_ARG_WITH(
559         [caps],
560         AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
562 if test "x${with_caps}" != "xno"; then
563     AC_SEARCH_LIBS([cap_init], [cap], [], [
564                     if test "x${with_caps}" = "xyes" ; then
565                         AC_MSG_ERROR([*** POSIX caps libraries not found])
566                     fi])
567     AC_CHECK_HEADERS([sys/capability.h], [], [
568                     if test "x${with_caps}" = "xyes" ; then
569                         AC_MSG_ERROR([*** POSIX caps headers not found])
570                     fi])
573 #### Valgrind (optional) ####
575 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
577 #### Sound file ####
579 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
580 AC_SUBST(LIBSNDFILE_CFLAGS)
581 AC_SUBST(LIBSNDFILE_LIBS)
583 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
584 AC_SUBST(LIBSPEEX_CFLAGS)
585 AC_SUBST(LIBSPEEX_LIBS)
587 #### atomic-ops ###
589 AC_MSG_CHECKING([whether we need libatomic_ops])
590 if test "x$need_libatomic_ops" = "xyes"; then
591    AC_MSG_RESULT([yes])
592    AC_CHECK_HEADERS([atomic_ops.h], [], [
593    AC_MSG_ERROR([*** libatomic-ops headers not found])
594    ])
596    # Win32 does not need the lib and breaks horribly if we try to include it
597    if test "x$os_is_win32" != "x1" ; then
598        LIBS="$LIBS -latomic_ops"
599    fi
600 else
601    AC_MSG_RESULT([no])
604 #### Libsamplerate support (optional) ####
606 AC_ARG_ENABLE([samplerate],
607     AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]),
608         [
609             case "${enableval}" in
610                 yes) samplerate=yes ;;
611                 no) samplerate=no ;;
612                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-samplerate) ;;
613             esac
614         ],
615         [samplerate=auto])
617 if test "x${samplerate}" != xno ; then
618     PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ],
619         HAVE_LIBSAMPLERATE=1,
620         [
621             HAVE_LIBSAMPLERATE=0
622             if test "x$samplerate" = xyes ; then
623                 AC_MSG_ERROR([*** Libsamplerate not found])
624             fi
625         ])
626 else
627     HAVE_LIBSAMPLERATE=0
630 if test "x${HAVE_LIBSAMPLERATE}" = x1 ; then
631    AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])
634 AC_SUBST(LIBSAMPLERATE_CFLAGS)
635 AC_SUBST(LIBSAMPLERATE_LIBS)
636 AC_SUBST(HAVE_LIBSAMPLERATE)
637 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
639 #### Database support ####
641 HAVE_TDB=0
642 HAVE_GDBM=0
643 HAVE_SIMPLEDB=0
645 AC_ARG_WITH(
646         [database],
647         AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
649 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then
650     PKG_CHECK_MODULES(TDB, [ tdb ],
651         [
652             HAVE_TDB=1
653             with_database=tdb
654         ], [
655             if test "x${with_database}" = "xtdb" ; then
656                 AC_MSG_ERROR([*** tdb not found])
657             fi
658         ])
661 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then
662    have_gdbm=yes
664    AC_CHECK_LIB(gdbm, gdbm_open, [], [have_gdbm=no])
665    AC_CHECK_HEADERS(gdbm.h, [], [have_gdbm=no])
667    if test "x${have_gdbm}" = "xyes" ; then
668        HAVE_GDBM=1
669        GDBM_CFLAGS=
670        GDBM_LIBS=-lgdbm
671        with_database=gdbm
672    elif test "x${with_database}" = "xgdbm"; then
673        AC_MSG_ERROR([*** gdbm not found])
674    fi
677 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xsimple" ; then
678     HAVE_SIMPLEDB=1
679     with_database=simple
682 if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1 -a "x${HAVE_SIMPLEDB}" != x1; then
683    AC_MSG_ERROR([*** missing database backend])
686 if test "x${HAVE_TDB}" = x1 ; then
687    AC_DEFINE([HAVE_TDB], 1, [Have tdb?])
690 if test "x${HAVE_GDBM}" = x1 ; then
691    AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
694 if test "x${HAVE_SIMPLEDB}" = x1 ; then
695     AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?])
698 AC_SUBST(TDB_CFLAGS)
699 AC_SUBST(TDB_LIBS)
700 AC_SUBST(HAVE_TDB)
701 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
703 AC_SUBST(GDBM_CFLAGS)
704 AC_SUBST(GDBM_LIBS)
705 AC_SUBST(HAVE_GDBM)
706 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
708 AC_SUBST(HAVE_SIMPLEDB)
709 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
711 #### OSS support (optional) ####
713 AC_ARG_ENABLE([oss-output],
714     AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]),
715         [
716             case "${enableval}" in
717                 yes) oss_output=yes ;;
718                 no) oss_output=no ;;
719                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-output) ;;
720             esac
721         ],
722         [oss_output=auto])
724 AC_ARG_ENABLE([oss-wrapper],
725     AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]),
726         [
727             case "${enableval}" in
728                 yes) oss_wrapper=yes ;;
729                 no) oss_wrapper=no ;;
730                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-wrapper) ;;
731             esac
732         ],
733         [oss_wrapper=auto])
735 if test "x${oss_output}" != xno || test "x${oss_wrapper}" != "xno"; then
736     AC_CHECK_HEADERS([sys/soundcard.h],
737         [
738             if test "x${oss_output}" != "xno"; then
739                 AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?])
740             fi
741             if test "x${oss_wrapper}" != "xno"; then
742                 AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?])
743             fi
744             HAVE_OSS=1
745         ],
746         [
747             HAVE_OSS=0
748             if test "x$oss_output" = xyes || test "x$oss_wrapper" = "xyes"; then
749                 AC_MSG_ERROR([*** OSS support not found])
750             fi
751         ])
752 else
753     HAVE_OSS=0
756 AC_SUBST(HAVE_OSS)
757 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS" = x1 && test "x${oss_output}" != "xno"])
758 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS" = x1 && test "x${oss_wrapper}" != "xno"])
760 #### CoreAudio support (optional) ####
762 AC_ARG_ENABLE([coreaudio-output],
763     AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]),
764         [
765             case "${enableval}" in
766                 yes) coreaudio_enabled=yes ;;
767                 no) coreaudio_enabled=no ;;
768                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-coreaudio-output) ;;
769             esac
770         ],
771         [coreaudio_enabled=auto])
773 if test "x${coreaudio_enabled}" != xno ; then
774     AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1)
775 else
776     HAVE_COREAUDIO=0
779 AC_SUBST(HAVE_COREAUDIO)
780 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = x1 && test "x${coreaudio_enabled}" != "xno"])
782 #### ALSA support (optional) ####
784 AC_ARG_ENABLE([alsa],
785     AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
786         [
787             case "${enableval}" in
788                 yes) alsa=yes ;;
789                 no) alsa=no ;;
790                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
791             esac
792         ],
793         [alsa=auto])
795 if test "x${alsa}" != xno ; then
796     PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
797         [
798             HAVE_ALSA=1
799             AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
800         ],
801         [
802             HAVE_ALSA=0
803             if test "x$alsa" = xyes ; then
804                 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
805             fi
806         ])
807 else
808     HAVE_ALSA=0
811 AC_SUBST(ASOUNDLIB_CFLAGS)
812 AC_SUBST(ASOUNDLIB_LIBS)
813 AC_SUBST(HAVE_ALSA)
814 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
816 #### Solaris audio support (optional) ####
818 AC_ARG_ENABLE([solaris],
819     AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
820         [
821             case "${enableval}" in
822                 yes) solaris=yes ;;
823                 no) solaris=no ;;
824                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
825             esac
826         ],
827         [solaris=auto])
829 if test "x${solaris}" != xno ; then
830     AC_CHECK_HEADERS([sys/audio.h],
831         [
832             HAVE_SOLARIS=1
833             AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
834         ],
835         [
836             HAVE_SOLARIS=0
837             if test "x$solaris" = xyes ; then
838                 AC_MSG_ERROR([*** Solaris audio support not found])
839             fi
840         ])
841 else
842     HAVE_SOLARIS=0
845 AC_SUBST(HAVE_SOLARIS)
846 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
848 #### GLib 2 support (optional) ####
850 AC_ARG_ENABLE([glib2],
851     AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
852         [
853             case "${enableval}" in
854                 yes) glib2=yes ;;
855                 no) glib2=no ;;
856                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
857             esac
858         ],
859         [glib2=auto])
861 if test "x${glib2}" != xno ; then
862     PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
863         HAVE_GLIB20=1,
864         [
865             HAVE_GLIB20=0
866             if test "x$glib2" = xyes ; then
867                 AC_MSG_ERROR([*** GLib 2 support not found])
868             fi
869         ])
870 else
871     HAVE_GLIB20=0
874 AC_SUBST(GLIB20_CFLAGS)
875 AC_SUBST(GLIB20_LIBS)
876 AC_SUBST(HAVE_GLIB20)
877 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
879 if test "x$HAVE_GLIB20" = x1 ; then
880    AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
883 #### GTK2 support (optional) ####
885 AC_ARG_ENABLE([gtk2],
886     AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
887         [
888             case "${enableval}" in
889                 yes) gtk2=yes ;;
890                 no) gtk2=no ;;
891                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
892             esac
893         ],
894         [gtk2=auto])
896 if test "x${gtk2}" != xno ; then
897     PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
898         HAVE_GTK20=1,
899         [
900             HAVE_GTK20=0
901             if test "x$gtk2" = xyes ; then
902                 AC_MSG_ERROR([*** Gtk+ 2 support not found])
903             fi
904         ])
905 else
906     HAVE_GTK20=0
909 AC_SUBST(GTK20_CFLAGS)
910 AC_SUBST(GTK20_LIBS)
911 AC_SUBST(HAVE_GTK20)
912 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
914 if test "x$HAVE_GTK20" = x1 ; then
915    AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
918 #### GConf support (optional) ####
920 AC_ARG_ENABLE([gconf],
921     AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
922         [
923             case "${enableval}" in
924                 yes) gconf=yes ;;
925                 no) gconf=no ;;
926                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
927             esac
928         ],
929         [gconf=auto])
931 if test "x${gconf}" != xno ; then
932     PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 ],
933         HAVE_GCONF=1,
934         [
935             HAVE_GCONF=0
936             if test "x$gconf" = xyes ; then
937                 AC_MSG_ERROR([*** GConf support not found])
938             fi
939         ])
940 else
941     HAVE_GCONF=0
944 AC_SUBST(GCONF_CFLAGS)
945 AC_SUBST(GCONF_LIBS)
946 AC_SUBST(HAVE_GCONF)
947 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
949 #### Avahi support (optional) ####
951 AC_ARG_ENABLE([avahi],
952     AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
953         [
954             case "${enableval}" in
955                 yes) avahi=yes ;;
956                 no) avahi=no ;;
957                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
958             esac
959         ],
960         [avahi=auto])
962 if test "x${avahi}" != xno ; then
963     PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
964         HAVE_AVAHI=1,
965         [
966                 HAVE_AVAHI=0
967                 if test "x$avahi" = xyes ; then
968                         AC_MSG_ERROR([*** Avahi support not found])
969                 fi
970         ])
971 else
972     HAVE_AVAHI=0
975 AC_SUBST(AVAHI_CFLAGS)
976 AC_SUBST(AVAHI_LIBS)
977 AC_SUBST(HAVE_AVAHI)
978 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
980 ### JACK (optional) ####
982 AC_ARG_ENABLE([jack],
983     AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
984         [
985             case "${enableval}" in
986                 yes) jack=yes ;;
987                 no) jack=no ;;
988                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
989             esac
990         ],
991         [jack=auto])
993 if test "x${jack}" != xno ; then
994     PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
995         HAVE_JACK=1,
996         [
997             HAVE_JACK=0
998             if test "x$jack" = xyes ; then
999                 AC_MSG_ERROR([*** JACK support not found])
1000             fi
1001         ])
1002 else
1003     HAVE_JACK=0
1006 AC_SUBST(JACK_CFLAGS)
1007 AC_SUBST(JACK_LIBS)
1008 AC_SUBST(HAVE_JACK)
1009 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
1011 #### Async DNS support (optional) ####
1013 AC_ARG_ENABLE([asyncns],
1014     AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
1015         [
1016             case "${enableval}" in
1017                 yes) asyncns=yes ;;
1018                 no) asyncns=no ;;
1019                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
1020             esac
1021         ],
1022         [asyncns=auto])
1024 if test "x${asyncns}" != xno ; then
1025     PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
1026         HAVE_LIBASYNCNS=1,
1027         [
1028             HAVE_LIBASYNCNS=0
1029             if test "x$asyncns" = xyes ; then
1030                 AC_MSG_ERROR([*** Async DNS support not found])
1031             fi
1032         ])
1033 else
1034     HAVE_LIBASYNCNS=0
1037 AC_SUBST(LIBASYNCNS_CFLAGS)
1038 AC_SUBST(LIBASYNCNS_LIBS)
1039 AC_SUBST(HAVE_LIBASYNCNS)
1040 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1042 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
1043    AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
1046 #### TCP wrappers (optional) ####
1048 AC_ARG_ENABLE([tcpwrap],
1049     AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
1050         [
1051             case "${enableval}" in
1052                 yes) tcpwrap=yes ;;
1053                 no) tcpwrap=no ;;
1054                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
1055             esac
1056         ],
1057         [tcpwrap=auto])
1059 if test "x${tcpwrap}" != xno ; then
1060     ACX_LIBWRAP
1061     if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
1062         AC_MSG_ERROR([*** TCP wrappers support not found])
1063     fi
1064 else
1065     LIBWRAP_LIBS=
1068 AC_SUBST(LIBWRAP_LIBS)
1070 #### LIRC support (optional) ####
1072 AC_ARG_ENABLE([lirc],
1073     AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
1074         [
1075             case "${enableval}" in
1076                 yes) lirc=yes ;;
1077                 no) lirc=no ;;
1078                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
1079             esac
1080         ],
1081         [lirc=auto])
1083 if test "x${lirc}" != xno ; then
1084     ACX_LIRC
1085     if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
1086         AC_MSG_ERROR([*** LIRC support not found])
1087     fi
1088 else
1089     HAVE_LIRC=0
1092 AC_SUBST(LIRC_CFLAGS)
1093 AC_SUBST(LIRC_LIBS)
1094 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1096 #### HAL support (optional) ####
1098 AC_ARG_ENABLE([hal],
1099     AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
1100         [
1101             case "${enableval}" in
1102                 yes) hal=yes ;;
1103                 no) hal=no ;;
1104                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
1105             esac
1106         ],
1107         [hal=auto])
1108 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1109     PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
1110         [
1111             HAVE_HAL=1
1112             AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
1113         ],
1114         [
1115             HAVE_HAL=0
1116             if test "x$hal" = xyes ; then
1117                 AC_MSG_ERROR([*** HAL support not found])
1118             fi
1119         ])
1120 else
1121     HAVE_HAL=0
1124 AC_SUBST(HAL_CFLAGS)
1125 AC_SUBST(HAL_LIBS)
1126 AC_SUBST(HAVE_HAL)
1127 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
1129 #### UDEV support (optional) ####
1131 AC_ARG_ENABLE([udev],
1132     AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
1133         [
1134             case "${enableval}" in
1135                 yes) udev=yes ;;
1136                 no) udev=no ;;
1137                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1138             esac
1139         ],
1140         [udev=auto])
1141 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1142     PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ],
1143         [
1144             HAVE_UDEV=1
1145             AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1146         ],
1147         [
1148             HAVE_UDEV=0
1149             if test "x$udev" = xyes ; then
1150                 AC_MSG_ERROR([*** UDEV support not found])
1151             fi
1152         ])
1153 else
1154     HAVE_UDEV=0
1157 AC_SUBST(UDEV_CFLAGS)
1158 AC_SUBST(UDEV_LIBS)
1159 AC_SUBST(HAVE_UDEV)
1160 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1162 #### HAL compat support (optional) ####
1164 AC_ARG_ENABLE([hal-compat],
1165     AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]),
1166         [
1167             case "${enableval}" in
1168                 yes) halcompat=yes ;;
1169                 no) halcompat=no ;;
1170                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal-compat) ;;
1171             esac
1172         ],
1173         [halcompat=auto])
1174 if test "x${halcompat}" != xno -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1" ; then
1175     HAVE_HAL_COMPAT=1
1176     AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
1177 else
1178     HAVE_HAL_COMPAT=0
1181 AC_SUBST(HAVE_HAL_COMPAT)
1182 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1184 #### BlueZ support (optional) ####
1186 AC_ARG_ENABLE([bluez],
1187     AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1188         [
1189             case "${enableval}" in
1190                 yes) bluez=yes ;;
1191                 no) bluez=no ;;
1192                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1193             esac
1194         ],
1195         [bluez=auto])
1196 if test "x${bluez}" != xno ; then
1197     PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1198         HAVE_BLUEZ=1,
1199         [
1200             HAVE_BLUEZ=0
1201             if test "x$bluez" = xyes ; then
1202                 AC_MSG_ERROR([*** BLUEZ support not found])
1203             fi
1204         ])
1205 else
1206     HAVE_BLUEZ=0
1209 AC_SUBST(BLUEZ_CFLAGS)
1210 AC_SUBST(BLUEZ_LIBS)
1211 AC_SUBST(HAVE_BLUEZ)
1212 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1214 #### D-Bus support (optional) ####
1216 AC_ARG_ENABLE([dbus],
1217     AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1218         [
1219             case "${enableval}" in
1220                 yes) dbus=yes ;;
1221                 no) dbus=no ;;
1222                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1223             esac
1224         ],
1225         [dbus=auto])
1227 if test "x$HAVE_HAL" = x1 ; then
1228    dbus=yes
1231 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1233     PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1234         [
1235             HAVE_DBUS=1
1236             saved_LIBS="$LIBS"
1237             LIBS="$LIBS $DBUS_LIBS"
1238             CFLAGS="$CFLAGS $DBUS_CFLAGS"
1239             AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1240             LIBS="$saved_LIBS"
1241             AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1242         ],
1243         [
1244             HAVE_DBUS=0
1245             if test "x$dbus" = xyes ; then
1246                 AC_MSG_ERROR([*** D-Bus support not found])
1247             fi
1248         ])
1249 else
1250     HAVE_DBUS=0
1253 AC_SUBST(DBUS_CFLAGS)
1254 AC_SUBST(DBUS_LIBS)
1255 AC_SUBST(HAVE_DBUS)
1256 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1258 ### IPv6 connection support (optional) ###
1260 AC_ARG_ENABLE([ipv6],
1261     AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1262         [
1263             case "${enableval}" in
1264                 yes) ipv6=yes ;;
1265                 no) ipv6=no ;;
1266                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1267             esac
1268         ],
1269         [ipv6=auto])
1271 if test "x${ipv6}" != xno ; then
1272     AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1273     HAVE_IPV6=1
1274 else
1275     HAVE_IPV6=0
1278 #### OpenSSL support (optional) ####
1280 AC_ARG_ENABLE([openssl],
1281     AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1282         [
1283             case "${enableval}" in
1284                 yes) openssl=yes ;;
1285                 no) openssl=no ;;
1286                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1287             esac
1288         ],
1289         [openssl=auto])
1291 if test "x${openssl}" != xno ; then
1293     PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1294         [
1295             HAVE_OPENSSL=1
1296             AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1297         ],
1298         [
1299             HAVE_OPENSSL=0
1300             if test "x$openssl" = xyes ; then
1301                 AC_MSG_ERROR([*** OpenSSL support not found])
1302             fi
1303         ])
1304 else
1305     HAVE_OPENSSL=0
1308 AC_SUBST(OPENSSL_CFLAGS)
1309 AC_SUBST(OPENSSL_LIBS)
1310 AC_SUBST(HAVE_OPENSSL)
1311 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1313 #### FFTW (optional) ####
1314 AC_ARG_WITH(
1315         [fftw],
1316         AS_HELP_STRING([--without-fftw], [Omit FFTW-using modules (equalizer)]))
1318 if test "x${with_fftw}" != "xno"; then
1319     PKG_CHECK_MODULES([FFTW], [fftw3f], [HAVE_FFTW=1], [HAVE_FFTW=0])
1321 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1323 ### Build and Install man pages ###
1324 AC_ARG_ENABLE(manpages,
1325         AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1326 [case "${enableval}" in
1327   yes) manpages=yes ;;
1328   no)  manpages=no ;;
1329   *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1330 esac],[manpages=yes])
1332 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1334 #### PulseAudio system group & user  #####
1336 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1337 if test -z "$with_system_user" ; then
1338     PA_SYSTEM_USER=pulse
1339 else
1340     PA_SYSTEM_USER=$with_system_user
1342 AC_SUBST(PA_SYSTEM_USER)
1343 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1345 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1346 if test -z "$with_system_group" ; then
1347     PA_SYSTEM_GROUP=pulse
1348 else
1349     PA_SYSTEM_GROUP=$with_system_group
1351 AC_SUBST(PA_SYSTEM_GROUP)
1352 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1354 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)]))
1355 if test -z "$with_access_group" ; then
1356     PA_ACCESS_GROUP=pulse-access
1357 else
1358     PA_ACCESS_GROUP=$with_access_group
1360 AC_SUBST(PA_ACCESS_GROUP)
1361 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1363 AC_ARG_ENABLE(
1364         per_user_esound_socket,
1365         AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1366         [
1367             case "${enableval}" in
1368                 yes) per_user_esound_socket=1 ;;
1369                 no) per_user_esound_socket=0 ;;
1370                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1371             esac
1372         ],
1373         [per_user_esound_socket=1])
1375 if test "x$per_user_esound_socket" = "x1"; then
1376    AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1379 #### PulseAudio system runtime dir ####
1380 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1381 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1382 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1383 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1384 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1385 AC_SUBST(PA_SYSTEM_STATE_PATH)
1387 ###################################
1388 #            Output               #
1389 ###################################
1391 AC_ARG_ENABLE([legacy-runtime-dir],
1392         AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1393 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1394         AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1397 AC_ARG_ENABLE(
1398         [static-bins],
1399         AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1400         [STATIC_BINS=1], [STATIC_BINS=0])
1401 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1403 AC_ARG_WITH(
1404         [preopen-mods],
1405         AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1406         [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1407 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1408 if test "x$PREOPEN_MODS" != "xall" ; then
1409     tmpLIBS=""
1410     for mod in $PREOPEN_MODS; do
1411         tmpLIBS="$tmpLIBS module-$mod.la"
1412     done
1413     PREOPEN_MODS="$tmpLIBS"
1414     AC_SUBST(PREOPEN_MODS)
1417 AC_ARG_WITH(
1418         [module-dir],
1419         AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules]),
1420         [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules"])
1422 AC_SUBST(modlibexecdir)
1424 AC_ARG_WITH(
1425         [udev-rules-dir],
1426         AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1427         [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1429 AC_SUBST(udevrulesdir)
1431 AC_ARG_ENABLE(
1432         [force-preopen],
1433         AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1434         [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1435 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1437 AC_CONFIG_FILES([
1438 Makefile
1439 src/Makefile
1440 man/Makefile
1441 libpulse.pc
1442 libpulse-simple.pc
1443 libpulse-browse.pc
1444 libpulse-mainloop-glib.pc
1445 doxygen/Makefile
1446 doxygen/doxygen.conf
1447 src/pulse/version.h
1448 po/Makefile.in
1451 AC_OUTPUT
1453 # ==========================================================================
1454 ENABLE_X11=no
1455 if test "x$HAVE_X11" = "x1" ; then
1456    ENABLE_X11=yes
1459 ENABLE_OSS_OUTPUT=no
1460 ENABLE_OSS_WRAPPER=no
1461 if test "x$HAVE_OSS" = "x1" ; then
1462    if test "x$enable_oss_output" != "xno"; then
1463       ENABLE_OSS_OUTPUT=yes
1464    fi
1465    if test "x$enable_oss_wrapper" != "xno"; then
1466       ENABLE_OSS_WRAPPER=yes
1467    fi
1470 ENABLE_COREAUDIO=no
1471 if test "x$HAVE_COREAUDIO" = "x1" ; then
1472    ENABLE_COREAUDIO=yes
1475 ENABLE_ALSA=no
1476 if test "x$HAVE_ALSA" = "x1" ; then
1477    ENABLE_ALSA=yes
1480 ENABLE_SOLARIS=no
1481 if test "x$HAVE_SOLARIS" = "x1" ; then
1482    ENABLE_SOLARIS=yes
1485 ENABLE_GTK20=no
1486 if test "x$HAVE_GTK20" = "x1" ; then
1487    ENABLE_GTK20=yes
1490 ENABLE_GLIB20=no
1491 if test "x$HAVE_GLIB20" = "x1" ; then
1492    ENABLE_GLIB20=yes
1495 ENABLE_GCONF=no
1496 if test "x$HAVE_GCONF" = "x1" ; then
1497    ENABLE_GCONF=yes
1500 ENABLE_AVAHI=no
1501 if test "x$HAVE_AVAHI" = "x1" ; then
1502    ENABLE_AVAHI=yes
1505 ENABLE_JACK=no
1506 if test "x$HAVE_JACK" = "x1" ; then
1507    ENABLE_JACK=yes
1510 ENABLE_LIBASYNCNS=no
1511 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1512    ENABLE_LIBASYNCNS=yes
1515 ENABLE_LIRC=no
1516 if test "x$HAVE_LIRC" = "x1" ; then
1517    ENABLE_LIRC=yes
1520 ENABLE_HAL=no
1521 if test "x$HAVE_HAL" = "x1" ; then
1522    ENABLE_HAL=yes
1525 ENABLE_UDEV=no
1526 if test "x$HAVE_UDEV" = "x1" ; then
1527    ENABLE_UDEV=yes
1530 ENABLE_HAL_COMPAT=no
1531 if test "x$HAVE_HAL_COMPAT" = "x1" ; then
1532    ENABLE_HAL_COMPAT=yes
1535 ENABLE_TCPWRAP=no
1536 if test "x${LIBWRAP_LIBS}" != x ; then
1537    ENABLE_TCPWRAP=yes
1540 ENABLE_LIBSAMPLERATE=no
1541 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1542    ENABLE_LIBSAMPLERATE=yes
1545 ENABLE_BLUEZ=no
1546 if test "x${HAVE_BLUEZ}" = "x1" ; then
1547    ENABLE_BLUEZ=yes
1550 ENABLE_GDBM=no
1551 if test "x${HAVE_GDBM}" = "x1" ; then
1552    ENABLE_GDBM=yes
1555 ENABLE_TDB=no
1556 if test "x${HAVE_TDB}" = "x1" ; then
1557    ENABLE_TDB=yes
1560 ENABLE_SIMPLEDB=no
1561 if test "x${HAVE_SIMPLEDB}" = "x1" ; then
1562     ENABLE_SIMPLEDB=yes
1565 ENABLE_FFTW=no
1566 if test "x${HAVE_FFTW}" = "x1" ; then
1567    ENABLE_FFTW=yes
1570 ENABLE_OPENSSL=no
1571 if test "x${HAVE_OPENSSL}" = "x1" ; then
1572    ENABLE_OPENSSL=yes
1575 ENABLE_IPV6=no
1576 if test "x${HAVE_IPV6}" = "x1" ; then
1577    ENABLE_IPV6=yes
1580 ENABLE_PER_USER_ESOUND_SOCKET=no
1581 if test "x$per_user_esound_socket" = "x1" ; then
1582    ENABLE_PER_USER_ESOUND_SOCKET=yes
1585 echo "
1586  ---{ $PACKAGE_NAME $VERSION }---
1588     prefix:                        ${prefix}
1589     sysconfdir:                    ${sysconfdir}
1590     localstatedir:                 ${localstatedir}
1591     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1592     System State Path:             ${PA_SYSTEM_STATE_PATH}
1593     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1594     Compiler:                      ${CC}
1595     CFLAGS:                        ${CFLAGS}
1597     Have X11:                      ${ENABLE_X11}
1598     Enable OSS Output:             ${ENABLE_OSS_OUTPUT}
1599     Enable OSS Wrapper:            ${ENABLE_OSS_WRAPPER}
1600     Enable CoreAudio:              ${ENABLE_COREAUDIO}
1601     Enable Alsa:                   ${ENABLE_ALSA}
1602     Enable Solaris:                ${ENABLE_SOLARIS}
1603     Enable GLib 2.0:               ${ENABLE_GLIB20}
1604     Enable Gtk+ 2.0:               ${ENABLE_GTK20}
1605     Enable GConf:                  ${ENABLE_GCONF}
1606     Enable Avahi:                  ${ENABLE_AVAHI}
1607     Enable Jack:                   ${ENABLE_JACK}
1608     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1609     Enable LIRC:                   ${ENABLE_LIRC}
1610     Enable HAL:                    ${ENABLE_HAL}
1611     Enable udev:                   ${ENABLE_UDEV}
1612     Enable HAL->udev compat:       ${ENABLE_HAL_COMPAT}
1613     Enable BlueZ:                  ${ENABLE_BLUEZ}
1614     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1615     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1616     Enable IPv6:                   ${ENABLE_IPV6}
1617     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1618     Enable tdb:                    ${ENABLE_TDB}
1619     Enable gdbm:                   ${ENABLE_GDBM}
1620     Enable simple database:        ${ENABLE_SIMPLEDB}
1621     Enable fftw:                   ${ENABLE_FFTW}
1623     System User:                   ${PA_SYSTEM_USER}
1624     System Group:                  ${PA_SYSTEM_GROUP}
1625     Access Group:                  ${PA_ACCESS_GROUP}
1626     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1627     Force preopen:                 ${FORCE_PREOPEN}
1628     Preopened modules:             ${PREOPEN_MODS}