hack around another OS X bug: recv() with MSG_PEEK does not work
[pulseaudio-mirror.git] / configure.ac
blob11af89b07b6840cca4a641f51cc6fbd15e9a3714
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 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])
428 #### Check for functions ####
430 # ISO
431 AC_CHECK_FUNCS_ONCE([lrintf strtof])
433 # POSIX
434 AC_FUNC_FORK
435 AC_FUNC_GETGROUPS
436 AC_FUNC_SELECT_ARGTYPES
437 AC_CHECK_FUNCS_ONCE([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \
438     getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \
439     pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
440     sigaction sleep sysconf pthread_setaffinity_np])
441 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
443 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
445 # X/OPEN
446 AC_CHECK_FUNCS_ONCE([readlink])
448 # SUSv2
449 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
451 # SUSv3
452 AC_CHECK_FUNCS_ONCE([strerror_r])
454 # BSD
455 AC_CHECK_FUNCS_ONCE([lstat])
457 # Non-standard
459 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4])
461 AC_FUNC_ALLOCA
463 AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
464   pulseaudio_cv_PTHREAD_PRIO_INHERIT,
465   [save_CC=$CC; CC=$PTHREAD_CC
466    save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS
467    save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS
468    AC_LINK_IFELSE(
469      AC_LANG_PROGRAM(
470        [[
471          #include <pthread.h>
472        ]],
473        [[int i = PTHREAD_PRIO_INHERIT;]]),
474      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes],
475      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=no])
476    CC=$save_CC
477    CFLAGS=$save_CFLAGS
478    LIBS=$save_LIBS
479   ])
481 AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
482     AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
483   ])
485 AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation])
487 #### Large File-Support (LFS) ####
489 AC_SYS_LARGEFILE
491 # Check for open64 to know if the current system does have open64() and similar functions
492 AC_CHECK_FUNCS_ONCE([open64])
494 #### [lib]iconv ####
496 AM_ICONV
498 IT_PROG_INTLTOOL([0.35.0])
499 GETTEXT_PACKAGE=pulseaudio
500 AC_SUBST([GETTEXT_PACKAGE])
501 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
502 AM_GLIB_GNU_GETTEXT
504 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
505 AC_SUBST(pulselocaledir)
507 ###################################
508 #      External libraries         #
509 ###################################
511 #### pkg-config ####
513 PKG_PROG_PKG_CONFIG
515 #### X11 (optional) ####
517 AC_ARG_ENABLE([x11],
518     AS_HELP_STRING([--disable-x11],[Disable optional X11 support]),
519         [
520             case "${enableval}" in
521                 yes) x11=yes ;;
522                 no) x11=no ;;
523                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
524             esac
525         ],
526         [x11=auto])
528 if test "x${x11}" != xno ; then
529     PKG_CHECK_MODULES(X11, [ x11 ice sm xtst ],
530         HAVE_X11=1,
531         [
532             HAVE_X11=0
533             if test "x$x11" = xyes ; then
534                 AC_MSG_ERROR([*** X11 not found])
535             fi
536         ])
537 else
538     HAVE_X11=0
541 if test "x${HAVE_X11}" = x1 ; then
542    AC_DEFINE([HAVE_X11], 1, [Have X11?])
545 AC_SUBST(X11_CFLAGS)
546 AC_SUBST(X11_LIBS)
547 AC_SUBST(HAVE_X11)
548 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
550 #### Capabilities (optional) ####
552 CAP_LIBS=''
554 AC_ARG_WITH(
555         [caps],
556         AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
558 if test "x${with_caps}" != "xno"; then
559     AC_SEARCH_LIBS([cap_init], [cap], [], [
560                     if test "x${with_caps}" = "xyes" ; then
561                         AC_MSG_ERROR([*** POSIX caps libraries not found])
562                     fi])
563     AC_CHECK_HEADERS([sys/capability.h], [], [
564                     if test "x${with_caps}" = "xyes" ; then
565                         AC_MSG_ERROR([*** POSIX caps headers not found])
566                     fi])
569 #### Valgrind (optional) ####
571 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
573 #### Sound file ####
575 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
576 AC_SUBST(LIBSNDFILE_CFLAGS)
577 AC_SUBST(LIBSNDFILE_LIBS)
579 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
580 AC_SUBST(LIBSPEEX_CFLAGS)
581 AC_SUBST(LIBSPEEX_LIBS)
583 #### atomic-ops ###
585 AC_MSG_CHECKING([whether we need libatomic_ops])
586 if test "x$need_libatomic_ops" = "xyes"; then
587    AC_MSG_RESULT([yes])
588    AC_CHECK_HEADERS([atomic_ops.h], [], [
589    AC_MSG_ERROR([*** libatomic-ops headers not found])
590    ])
592    # Win32 does not need the lib and breaks horribly if we try to include it
593    if test "x$os_is_win32" != "x1" ; then
594        LIBS="$LIBS -latomic_ops"
595    fi
596 else
597    AC_MSG_RESULT([no])
600 #### Libsamplerate support (optional) ####
602 AC_ARG_ENABLE([samplerate],
603     AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]),
604         [
605             case "${enableval}" in
606                 yes) samplerate=yes ;;
607                 no) samplerate=no ;;
608                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-samplerate) ;;
609             esac
610         ],
611         [samplerate=auto])
613 if test "x${samplerate}" != xno ; then
614     PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ],
615         HAVE_LIBSAMPLERATE=1,
616         [
617             HAVE_LIBSAMPLERATE=0
618             if test "x$samplerate" = xyes ; then
619                 AC_MSG_ERROR([*** Libsamplerate not found])
620             fi
621         ])
622 else
623     HAVE_LIBSAMPLERATE=0
626 if test "x${HAVE_LIBSAMPLERATE}" = x1 ; then
627    AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])
630 AC_SUBST(LIBSAMPLERATE_CFLAGS)
631 AC_SUBST(LIBSAMPLERATE_LIBS)
632 AC_SUBST(HAVE_LIBSAMPLERATE)
633 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
635 #### Database support ####
637 HAVE_TDB=0
638 HAVE_GDBM=0
639 HAVE_SIMPLEDB=0
641 AC_ARG_WITH(
642         [database],
643         AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
645 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then
646     PKG_CHECK_MODULES(TDB, [ tdb ],
647         [
648             HAVE_TDB=1
649             with_database=tdb
650         ], [
651             if test "x${with_database}" = "xtdb" ; then
652                 AC_MSG_ERROR([*** tdb not found])
653             fi
654         ])
657 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then
658    have_gdbm=yes
660    AC_CHECK_LIB(gdbm, gdbm_open, [], [have_gdbm=no])
661    AC_CHECK_HEADERS(gdbm.h, [], [have_gdbm=no])
663    if test "x${have_gdbm}" = "xyes" ; then
664        HAVE_GDBM=1
665        GDBM_CFLAGS=
666        GDBM_LIBS=-lgdbm
667        with_database=gdbm
668    elif test "x${with_database}" = "xgdbm"; then
669        AC_MSG_ERROR([*** gdbm not found])
670    fi
673 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xsimple" ; then
674     HAVE_SIMPLEDB=1
675     with_database=simple
678 if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1 -a "x${HAVE_SIMPLEDB}" != x1; then
679    AC_MSG_ERROR([*** missing database backend])
682 if test "x${HAVE_TDB}" = x1 ; then
683    AC_DEFINE([HAVE_TDB], 1, [Have tdb?])
686 if test "x${HAVE_GDBM}" = x1 ; then
687    AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
690 if test "x${HAVE_SIMPLEDB}" = x1 ; then
691     AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?])
694 AC_SUBST(TDB_CFLAGS)
695 AC_SUBST(TDB_LIBS)
696 AC_SUBST(HAVE_TDB)
697 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
699 AC_SUBST(GDBM_CFLAGS)
700 AC_SUBST(GDBM_LIBS)
701 AC_SUBST(HAVE_GDBM)
702 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
704 AC_SUBST(HAVE_SIMPLEDB)
705 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
707 #### OSS support (optional) ####
709 AC_ARG_ENABLE([oss-output],
710     AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]),
711         [
712             case "${enableval}" in
713                 yes) oss_output=yes ;;
714                 no) oss_output=no ;;
715                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-output) ;;
716             esac
717         ],
718         [oss_output=auto])
720 AC_ARG_ENABLE([oss-wrapper],
721     AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]),
722         [
723             case "${enableval}" in
724                 yes) oss_wrapper=yes ;;
725                 no) oss_wrapper=no ;;
726                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-wrapper) ;;
727             esac
728         ],
729         [oss_wrapper=auto])
731 if test "x${oss_output}" != xno || test "x${oss_wrapper}" != "xno"; then
732     AC_CHECK_HEADERS([sys/soundcard.h],
733         [
734             if test "x${oss_output}" != "xno"; then
735                 AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?])
736             fi
737             if test "x${oss_wrapper}" != "xno"; then
738                 AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?])
739             fi
740             HAVE_OSS=1
741         ],
742         [
743             HAVE_OSS=0
744             if test "x$oss_output" = xyes || test "x$oss_wrapper" = "xyes"; then
745                 AC_MSG_ERROR([*** OSS support not found])
746             fi
747         ])
748 else
749     HAVE_OSS=0
752 AC_SUBST(HAVE_OSS)
753 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS" = x1 && test "x${oss_output}" != "xno"])
754 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS" = x1 && test "x${oss_wrapper}" != "xno"])
756 #### CoreAudio support (optional) ####
758 AC_ARG_ENABLE([coreaudio-output],
759     AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]),
760         [
761             case "${enableval}" in
762                 yes) coreaudio_enabled=yes ;;
763                 no) coreaudio_enabled=no ;;
764                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-coreaudio-output) ;;
765             esac
766         ],
767         [coreaudio_enabled=auto])
769 if test "x${coreaudio_enabled}" != xno ; then
770     AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1)
771 else
772     HAVE_COREAUDIO=0
775 AC_SUBST(HAVE_COREAUDIO)
776 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = x1 && test "x${coreaudio_enabled}" != "xno"])
778 #### ALSA support (optional) ####
780 AC_ARG_ENABLE([alsa],
781     AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
782         [
783             case "${enableval}" in
784                 yes) alsa=yes ;;
785                 no) alsa=no ;;
786                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
787             esac
788         ],
789         [alsa=auto])
791 if test "x${alsa}" != xno ; then
792     PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
793         [
794             HAVE_ALSA=1
795             AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
796         ],
797         [
798             HAVE_ALSA=0
799             if test "x$alsa" = xyes ; then
800                 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
801             fi
802         ])
803 else
804     HAVE_ALSA=0
807 AC_SUBST(ASOUNDLIB_CFLAGS)
808 AC_SUBST(ASOUNDLIB_LIBS)
809 AC_SUBST(HAVE_ALSA)
810 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
812 #### Solaris audio support (optional) ####
814 AC_ARG_ENABLE([solaris],
815     AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
816         [
817             case "${enableval}" in
818                 yes) solaris=yes ;;
819                 no) solaris=no ;;
820                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
821             esac
822         ],
823         [solaris=auto])
825 if test "x${solaris}" != xno ; then
826     AC_CHECK_HEADERS([sys/audio.h],
827         [
828             HAVE_SOLARIS=1
829             AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
830         ],
831         [
832             HAVE_SOLARIS=0
833             if test "x$solaris" = xyes ; then
834                 AC_MSG_ERROR([*** Solaris audio support not found])
835             fi
836         ])
837 else
838     HAVE_SOLARIS=0
841 AC_SUBST(HAVE_SOLARIS)
842 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
844 #### GLib 2 support (optional) ####
846 AC_ARG_ENABLE([glib2],
847     AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
848         [
849             case "${enableval}" in
850                 yes) glib2=yes ;;
851                 no) glib2=no ;;
852                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
853             esac
854         ],
855         [glib2=auto])
857 if test "x${glib2}" != xno ; then
858     PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
859         HAVE_GLIB20=1,
860         [
861             HAVE_GLIB20=0
862             if test "x$glib2" = xyes ; then
863                 AC_MSG_ERROR([*** GLib 2 support not found])
864             fi
865         ])
866 else
867     HAVE_GLIB20=0
870 AC_SUBST(GLIB20_CFLAGS)
871 AC_SUBST(GLIB20_LIBS)
872 AC_SUBST(HAVE_GLIB20)
873 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
875 if test "x$HAVE_GLIB20" = x1 ; then
876    AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
879 #### GTK2 support (optional) ####
881 AC_ARG_ENABLE([gtk2],
882     AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
883         [
884             case "${enableval}" in
885                 yes) gtk2=yes ;;
886                 no) gtk2=no ;;
887                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
888             esac
889         ],
890         [gtk2=auto])
892 if test "x${gtk2}" != xno ; then
893     PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
894         HAVE_GTK20=1,
895         [
896             HAVE_GTK20=0
897             if test "x$gtk2" = xyes ; then
898                 AC_MSG_ERROR([*** Gtk+ 2 support not found])
899             fi
900         ])
901 else
902     HAVE_GTK20=0
905 AC_SUBST(GTK20_CFLAGS)
906 AC_SUBST(GTK20_LIBS)
907 AC_SUBST(HAVE_GTK20)
908 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
910 if test "x$HAVE_GTK20" = x1 ; then
911    AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
914 #### GConf support (optional) ####
916 AC_ARG_ENABLE([gconf],
917     AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
918         [
919             case "${enableval}" in
920                 yes) gconf=yes ;;
921                 no) gconf=no ;;
922                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
923             esac
924         ],
925         [gconf=auto])
927 if test "x${gconf}" != xno ; then
928     PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 ],
929         HAVE_GCONF=1,
930         [
931             HAVE_GCONF=0
932             if test "x$gconf" = xyes ; then
933                 AC_MSG_ERROR([*** GConf support not found])
934             fi
935         ])
936 else
937     HAVE_GCONF=0
940 AC_SUBST(GCONF_CFLAGS)
941 AC_SUBST(GCONF_LIBS)
942 AC_SUBST(HAVE_GCONF)
943 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
945 #### Avahi support (optional) ####
947 AC_ARG_ENABLE([avahi],
948     AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
949         [
950             case "${enableval}" in
951                 yes) avahi=yes ;;
952                 no) avahi=no ;;
953                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
954             esac
955         ],
956         [avahi=auto])
958 if test "x${avahi}" != xno ; then
959     PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
960         HAVE_AVAHI=1,
961         [
962                 HAVE_AVAHI=0
963                 if test "x$avahi" = xyes ; then
964                         AC_MSG_ERROR([*** Avahi support not found])
965                 fi
966         ])
967 else
968     HAVE_AVAHI=0
971 AC_SUBST(AVAHI_CFLAGS)
972 AC_SUBST(AVAHI_LIBS)
973 AC_SUBST(HAVE_AVAHI)
974 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
976 ### JACK (optional) ####
978 AC_ARG_ENABLE([jack],
979     AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
980         [
981             case "${enableval}" in
982                 yes) jack=yes ;;
983                 no) jack=no ;;
984                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
985             esac
986         ],
987         [jack=auto])
989 if test "x${jack}" != xno ; then
990     PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
991         HAVE_JACK=1,
992         [
993             HAVE_JACK=0
994             if test "x$jack" = xyes ; then
995                 AC_MSG_ERROR([*** JACK support not found])
996             fi
997         ])
998 else
999     HAVE_JACK=0
1002 AC_SUBST(JACK_CFLAGS)
1003 AC_SUBST(JACK_LIBS)
1004 AC_SUBST(HAVE_JACK)
1005 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
1007 #### Async DNS support (optional) ####
1009 AC_ARG_ENABLE([asyncns],
1010     AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
1011         [
1012             case "${enableval}" in
1013                 yes) asyncns=yes ;;
1014                 no) asyncns=no ;;
1015                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
1016             esac
1017         ],
1018         [asyncns=auto])
1020 if test "x${asyncns}" != xno ; then
1021     PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
1022         HAVE_LIBASYNCNS=1,
1023         [
1024             HAVE_LIBASYNCNS=0
1025             if test "x$asyncns" = xyes ; then
1026                 AC_MSG_ERROR([*** Async DNS support not found])
1027             fi
1028         ])
1029 else
1030     HAVE_LIBASYNCNS=0
1033 AC_SUBST(LIBASYNCNS_CFLAGS)
1034 AC_SUBST(LIBASYNCNS_LIBS)
1035 AC_SUBST(HAVE_LIBASYNCNS)
1036 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1038 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
1039    AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
1042 #### TCP wrappers (optional) ####
1044 AC_ARG_ENABLE([tcpwrap],
1045     AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
1046         [
1047             case "${enableval}" in
1048                 yes) tcpwrap=yes ;;
1049                 no) tcpwrap=no ;;
1050                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
1051             esac
1052         ],
1053         [tcpwrap=auto])
1055 if test "x${tcpwrap}" != xno ; then
1056     ACX_LIBWRAP
1057     if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
1058         AC_MSG_ERROR([*** TCP wrappers support not found])
1059     fi
1060 else
1061     LIBWRAP_LIBS=
1064 AC_SUBST(LIBWRAP_LIBS)
1066 #### LIRC support (optional) ####
1068 AC_ARG_ENABLE([lirc],
1069     AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
1070         [
1071             case "${enableval}" in
1072                 yes) lirc=yes ;;
1073                 no) lirc=no ;;
1074                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
1075             esac
1076         ],
1077         [lirc=auto])
1079 if test "x${lirc}" != xno ; then
1080     ACX_LIRC
1081     if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
1082         AC_MSG_ERROR([*** LIRC support not found])
1083     fi
1084 else
1085     HAVE_LIRC=0
1088 AC_SUBST(LIRC_CFLAGS)
1089 AC_SUBST(LIRC_LIBS)
1090 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1092 #### HAL support (optional) ####
1094 AC_ARG_ENABLE([hal],
1095     AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
1096         [
1097             case "${enableval}" in
1098                 yes) hal=yes ;;
1099                 no) hal=no ;;
1100                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
1101             esac
1102         ],
1103         [hal=auto])
1104 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1105     PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
1106         [
1107             HAVE_HAL=1
1108             AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
1109         ],
1110         [
1111             HAVE_HAL=0
1112             if test "x$hal" = xyes ; then
1113                 AC_MSG_ERROR([*** HAL support not found])
1114             fi
1115         ])
1116 else
1117     HAVE_HAL=0
1120 AC_SUBST(HAL_CFLAGS)
1121 AC_SUBST(HAL_LIBS)
1122 AC_SUBST(HAVE_HAL)
1123 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
1125 #### UDEV support (optional) ####
1127 AC_ARG_ENABLE([udev],
1128     AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
1129         [
1130             case "${enableval}" in
1131                 yes) udev=yes ;;
1132                 no) udev=no ;;
1133                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1134             esac
1135         ],
1136         [udev=auto])
1137 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1138     PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ],
1139         [
1140             HAVE_UDEV=1
1141             AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1142         ],
1143         [
1144             HAVE_UDEV=0
1145             if test "x$udev" = xyes ; then
1146                 AC_MSG_ERROR([*** UDEV support not found])
1147             fi
1148         ])
1149 else
1150     HAVE_UDEV=0
1153 AC_SUBST(UDEV_CFLAGS)
1154 AC_SUBST(UDEV_LIBS)
1155 AC_SUBST(HAVE_UDEV)
1156 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1158 #### HAL compat support (optional) ####
1160 AC_ARG_ENABLE([hal-compat],
1161     AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]),
1162         [
1163             case "${enableval}" in
1164                 yes) halcompat=yes ;;
1165                 no) halcompat=no ;;
1166                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal-compat) ;;
1167             esac
1168         ],
1169         [halcompat=auto])
1170 if test "x${halcompat}" != xno -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1" ; then
1171     HAVE_HAL_COMPAT=1
1172     AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
1173 else
1174     HAVE_HAL_COMPAT=0
1177 AC_SUBST(HAVE_HAL_COMPAT)
1178 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1180 #### BlueZ support (optional) ####
1182 AC_ARG_ENABLE([bluez],
1183     AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1184         [
1185             case "${enableval}" in
1186                 yes) bluez=yes ;;
1187                 no) bluez=no ;;
1188                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1189             esac
1190         ],
1191         [bluez=auto])
1192 if test "x${bluez}" != xno ; then
1193     PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1194         HAVE_BLUEZ=1,
1195         [
1196             HAVE_BLUEZ=0
1197             if test "x$bluez" = xyes ; then
1198                 AC_MSG_ERROR([*** BLUEZ support not found])
1199             fi
1200         ])
1201 else
1202     HAVE_BLUEZ=0
1205 AC_SUBST(BLUEZ_CFLAGS)
1206 AC_SUBST(BLUEZ_LIBS)
1207 AC_SUBST(HAVE_BLUEZ)
1208 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1210 #### D-Bus support (optional) ####
1212 AC_ARG_ENABLE([dbus],
1213     AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1214         [
1215             case "${enableval}" in
1216                 yes) dbus=yes ;;
1217                 no) dbus=no ;;
1218                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1219             esac
1220         ],
1221         [dbus=auto])
1223 if test "x$HAVE_HAL" = x1 ; then
1224    dbus=yes
1227 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1229     PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1230         [
1231             HAVE_DBUS=1
1232             saved_LIBS="$LIBS"
1233             LIBS="$LIBS $DBUS_LIBS"
1234             CFLAGS="$CFLAGS $DBUS_CFLAGS"
1235             AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1236             LIBS="$saved_LIBS"
1237             AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1238         ],
1239         [
1240             HAVE_DBUS=0
1241             if test "x$dbus" = xyes ; then
1242                 AC_MSG_ERROR([*** D-Bus support not found])
1243             fi
1244         ])
1245 else
1246     HAVE_DBUS=0
1249 AC_SUBST(DBUS_CFLAGS)
1250 AC_SUBST(DBUS_LIBS)
1251 AC_SUBST(HAVE_DBUS)
1252 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1254 ### IPv6 connection support (optional) ###
1256 AC_ARG_ENABLE([ipv6],
1257     AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1258         [
1259             case "${enableval}" in
1260                 yes) ipv6=yes ;;
1261                 no) ipv6=no ;;
1262                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1263             esac
1264         ],
1265         [ipv6=auto])
1267 if test "x${ipv6}" != xno ; then
1268     AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1269     HAVE_IPV6=1
1270 else
1271     HAVE_IPV6=0
1274 #### OpenSSL support (optional) ####
1276 AC_ARG_ENABLE([openssl],
1277     AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1278         [
1279             case "${enableval}" in
1280                 yes) openssl=yes ;;
1281                 no) openssl=no ;;
1282                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1283             esac
1284         ],
1285         [openssl=auto])
1287 if test "x${openssl}" != xno ; then
1289     PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1290         [
1291             HAVE_OPENSSL=1
1292             AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1293         ],
1294         [
1295             HAVE_OPENSSL=0
1296             if test "x$openssl" = xyes ; then
1297                 AC_MSG_ERROR([*** OpenSSL support not found])
1298             fi
1299         ])
1300 else
1301     HAVE_OPENSSL=0
1304 AC_SUBST(OPENSSL_CFLAGS)
1305 AC_SUBST(OPENSSL_LIBS)
1306 AC_SUBST(HAVE_OPENSSL)
1307 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1309 #### FFTW (optional) ####
1310 AC_ARG_WITH(
1311         [fftw],
1312         AS_HELP_STRING([--without-fftw], [Omit FFTW-using modules (equalizer)]))
1314 if test "x${with_fftw}" != "xno"; then
1315     PKG_CHECK_MODULES([FFTW], [fftw3f], [HAVE_FFTW=1], [HAVE_FFTW=0])
1317 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1319 ### Build and Install man pages ###
1320 AC_ARG_ENABLE(manpages,
1321         AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1322 [case "${enableval}" in
1323   yes) manpages=yes ;;
1324   no)  manpages=no ;;
1325   *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1326 esac],[manpages=yes])
1328 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1330 #### PulseAudio system group & user  #####
1332 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1333 if test -z "$with_system_user" ; then
1334     PA_SYSTEM_USER=pulse
1335 else
1336     PA_SYSTEM_USER=$with_system_user
1338 AC_SUBST(PA_SYSTEM_USER)
1339 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1341 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1342 if test -z "$with_system_group" ; then
1343     PA_SYSTEM_GROUP=pulse
1344 else
1345     PA_SYSTEM_GROUP=$with_system_group
1347 AC_SUBST(PA_SYSTEM_GROUP)
1348 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1350 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)]))
1351 if test -z "$with_access_group" ; then
1352     PA_ACCESS_GROUP=pulse-access
1353 else
1354     PA_ACCESS_GROUP=$with_access_group
1356 AC_SUBST(PA_ACCESS_GROUP)
1357 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1359 AC_ARG_ENABLE(
1360         per_user_esound_socket,
1361         AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1362         [
1363             case "${enableval}" in
1364                 yes) per_user_esound_socket=1 ;;
1365                 no) per_user_esound_socket=0 ;;
1366                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1367             esac
1368         ],
1369         [per_user_esound_socket=1])
1371 if test "x$per_user_esound_socket" = "x1"; then
1372    AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1375 #### PulseAudio system runtime dir ####
1376 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1377 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1378 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1379 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1380 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1381 AC_SUBST(PA_SYSTEM_STATE_PATH)
1383 ###################################
1384 #            Output               #
1385 ###################################
1387 AC_ARG_ENABLE([legacy-runtime-dir],
1388         AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1389 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1390         AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1393 AC_ARG_ENABLE(
1394         [static-bins],
1395         AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1396         [STATIC_BINS=1], [STATIC_BINS=0])
1397 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1399 AC_ARG_WITH(
1400         [preopen-mods],
1401         AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1402         [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1403 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1404 if test "x$PREOPEN_MODS" != "xall" ; then
1405     tmpLIBS=""
1406     for mod in $PREOPEN_MODS; do
1407         tmpLIBS="$tmpLIBS module-$mod.la"
1408     done
1409     PREOPEN_MODS="$tmpLIBS"
1410     AC_SUBST(PREOPEN_MODS)
1413 AC_ARG_WITH(
1414         [module-dir],
1415         AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules]),
1416         [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules"])
1418 AC_SUBST(modlibexecdir)
1420 AC_ARG_WITH(
1421         [udev-rules-dir],
1422         AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1423         [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1425 AC_SUBST(udevrulesdir)
1427 AC_ARG_ENABLE(
1428         [force-preopen],
1429         AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1430         [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1431 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1433 AC_CONFIG_FILES([
1434 Makefile
1435 src/Makefile
1436 man/Makefile
1437 libpulse.pc
1438 libpulse-simple.pc
1439 libpulse-browse.pc
1440 libpulse-mainloop-glib.pc
1441 doxygen/Makefile
1442 doxygen/doxygen.conf
1443 src/pulse/version.h
1444 po/Makefile.in
1447 AC_OUTPUT
1449 # ==========================================================================
1450 ENABLE_X11=no
1451 if test "x$HAVE_X11" = "x1" ; then
1452    ENABLE_X11=yes
1455 ENABLE_OSS_OUTPUT=no
1456 ENABLE_OSS_WRAPPER=no
1457 if test "x$HAVE_OSS" = "x1" ; then
1458    if test "x$enable_oss_output" != "xno"; then
1459       ENABLE_OSS_OUTPUT=yes
1460    fi
1461    if test "x$enable_oss_wrapper" != "xno"; then
1462       ENABLE_OSS_WRAPPER=yes
1463    fi
1466 ENABLE_COREAUDIO=no
1467 if test "x$HAVE_COREAUDIO" = "x1" ; then
1468    ENABLE_COREAUDIO=yes
1471 ENABLE_ALSA=no
1472 if test "x$HAVE_ALSA" = "x1" ; then
1473    ENABLE_ALSA=yes
1476 ENABLE_SOLARIS=no
1477 if test "x$HAVE_SOLARIS" = "x1" ; then
1478    ENABLE_SOLARIS=yes
1481 ENABLE_GTK20=no
1482 if test "x$HAVE_GTK20" = "x1" ; then
1483    ENABLE_GTK20=yes
1486 ENABLE_GLIB20=no
1487 if test "x$HAVE_GLIB20" = "x1" ; then
1488    ENABLE_GLIB20=yes
1491 ENABLE_GCONF=no
1492 if test "x$HAVE_GCONF" = "x1" ; then
1493    ENABLE_GCONF=yes
1496 ENABLE_AVAHI=no
1497 if test "x$HAVE_AVAHI" = "x1" ; then
1498    ENABLE_AVAHI=yes
1501 ENABLE_JACK=no
1502 if test "x$HAVE_JACK" = "x1" ; then
1503    ENABLE_JACK=yes
1506 ENABLE_LIBASYNCNS=no
1507 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1508    ENABLE_LIBASYNCNS=yes
1511 ENABLE_LIRC=no
1512 if test "x$HAVE_LIRC" = "x1" ; then
1513    ENABLE_LIRC=yes
1516 ENABLE_HAL=no
1517 if test "x$HAVE_HAL" = "x1" ; then
1518    ENABLE_HAL=yes
1521 ENABLE_UDEV=no
1522 if test "x$HAVE_UDEV" = "x1" ; then
1523    ENABLE_UDEV=yes
1526 ENABLE_HAL_COMPAT=no
1527 if test "x$HAVE_HAL_COMPAT" = "x1" ; then
1528    ENABLE_HAL_COMPAT=yes
1531 ENABLE_TCPWRAP=no
1532 if test "x${LIBWRAP_LIBS}" != x ; then
1533    ENABLE_TCPWRAP=yes
1536 ENABLE_LIBSAMPLERATE=no
1537 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1538    ENABLE_LIBSAMPLERATE=yes
1541 ENABLE_BLUEZ=no
1542 if test "x${HAVE_BLUEZ}" = "x1" ; then
1543    ENABLE_BLUEZ=yes
1546 ENABLE_GDBM=no
1547 if test "x${HAVE_GDBM}" = "x1" ; then
1548    ENABLE_GDBM=yes
1551 ENABLE_TDB=no
1552 if test "x${HAVE_TDB}" = "x1" ; then
1553    ENABLE_TDB=yes
1556 ENABLE_SIMPLEDB=no
1557 if test "x${HAVE_SIMPLEDB}" = "x1" ; then
1558     ENABLE_SIMPLEDB=yes
1561 ENABLE_FFTW=no
1562 if test "x${HAVE_FFTW}" = "x1" ; then
1563    ENABLE_FFTW=yes
1566 ENABLE_OPENSSL=no
1567 if test "x${HAVE_OPENSSL}" = "x1" ; then
1568    ENABLE_OPENSSL=yes
1571 ENABLE_IPV6=no
1572 if test "x${HAVE_IPV6}" = "x1" ; then
1573    ENABLE_IPV6=yes
1576 ENABLE_PER_USER_ESOUND_SOCKET=no
1577 if test "x$per_user_esound_socket" = "x1" ; then
1578    ENABLE_PER_USER_ESOUND_SOCKET=yes
1581 echo "
1582  ---{ $PACKAGE_NAME $VERSION }---
1584     prefix:                        ${prefix}
1585     sysconfdir:                    ${sysconfdir}
1586     localstatedir:                 ${localstatedir}
1587     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1588     System State Path:             ${PA_SYSTEM_STATE_PATH}
1589     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1590     Compiler:                      ${CC}
1591     CFLAGS:                        ${CFLAGS}
1593     Have X11:                      ${ENABLE_X11}
1594     Enable OSS Output:             ${ENABLE_OSS_OUTPUT}
1595     Enable OSS Wrapper:            ${ENABLE_OSS_WRAPPER}
1596     Enable CoreAudio:              ${ENABLE_COREAUDIO}
1597     Enable Alsa:                   ${ENABLE_ALSA}
1598     Enable Solaris:                ${ENABLE_SOLARIS}
1599     Enable GLib 2.0:               ${ENABLE_GLIB20}
1600     Enable Gtk+ 2.0:               ${ENABLE_GTK20}
1601     Enable GConf:                  ${ENABLE_GCONF}
1602     Enable Avahi:                  ${ENABLE_AVAHI}
1603     Enable Jack:                   ${ENABLE_JACK}
1604     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1605     Enable LIRC:                   ${ENABLE_LIRC}
1606     Enable HAL:                    ${ENABLE_HAL}
1607     Enable udev:                   ${ENABLE_UDEV}
1608     Enable HAL->udev compat:       ${ENABLE_HAL_COMPAT}
1609     Enable BlueZ:                  ${ENABLE_BLUEZ}
1610     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1611     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1612     Enable IPv6:                   ${ENABLE_IPV6}
1613     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1614     Enable tdb:                    ${ENABLE_TDB}
1615     Enable gdbm:                   ${ENABLE_GDBM}
1616     Enable simple database:        ${ENABLE_SIMPLEDB}
1617     Enable fftw:                   ${ENABLE_FFTW}
1619     System User:                   ${PA_SYSTEM_USER}
1620     System Group:                  ${PA_SYSTEM_GROUP}
1621     Access Group:                  ${PA_ACCESS_GROUP}
1622     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1623     Force preopen:                 ${FORCE_PREOPEN}
1624     Preopened modules:             ${PREOPEN_MODS}