introspect: Get format of source output
[pulseaudio-mirror.git] / configure.ac
blobf95cbee9fe11f0e59350763cbeaffce42df02e2e
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],[pulseaudio],[http://pulseaudio.org/])
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`)
34 AC_SUBST(PA_MAJOR, pa_major)
35 AC_SUBST(PA_MINOR, pa_minor)
36 AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)
38 AC_SUBST(PA_API_VERSION, 12)
39 AC_SUBST(PA_PROTOCOL_VERSION, 22)
41 # The stable ABI for client applications, for the version info x:y:z
42 # always will hold y=z
43 AC_SUBST(LIBPULSE_VERSION_INFO, [12:3:12])
45 # A simplified, synchronous, ABI-stable interface for client
46 # applications, for the version info x:y:z always will hold y=z
47 AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:3:0])
49 # The ABI-stable network browsing interface for client applications,
50 # for the version info x:y:z always will hold y=z
51 AC_SUBST(LIBPULSE_BROWSE_VERSION_INFO, [1:1:1])
53 # The ABI-stable GLib adapter for client applications, for the version
54 # info x:y:z always will hold y=z
55 AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:4:0])
57 AC_CANONICAL_HOST
58 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
60 AC_CHECK_PROG([STOW], [stow], [yes], [no])
62 AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
63     AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
64     ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
67 AM_SILENT_RULES([yes])
70 #### Checks for programs. ####
72 # mkdir -p
74 AC_PROG_MKDIR_P
76 # CC
78 AC_PROG_CC
79 AC_PROG_CC_C99
80 AM_PROG_CC_C_O
81 AC_PROG_GCC_TRADITIONAL
82 AC_USE_SYSTEM_EXTENSIONS
84 # M4
86 AC_CHECK_PROGS([M4], gm4 m4, no)
87 AS_IF([test "x$M4" = "xno"], AC_MSG_ERROR([m4 missing]))
89 # pkg-config
91 PKG_PROG_PKG_CONFIG
93 # gettext
95 IT_PROG_INTLTOOL([0.35.0])
96 GETTEXT_PACKAGE=pulseaudio
97 AC_SUBST([GETTEXT_PACKAGE])
98 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
99 AM_GLIB_GNU_GETTEXT
101 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
102 AC_SUBST(pulselocaledir)
105 #### Determine host OS ####
107 os_is_linux=0
108 os_is_win32=0
109 os_is_darwin=0
111 AC_MSG_CHECKING([host operating system])
112 case "$host_os" in
113     linux*)
114         AC_MSG_RESULT([linux])
115         os_is_linux=1
116     ;;
117     darwin*)
118         AC_MSG_RESULT([darwin])
119         os_is_darwin=1
120         AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.])
121     ;;
122     mingw*)
123         AC_MSG_RESULT([win32])
124         os_is_win32=1
125         AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
126     ;;
127     *)
128         AC_MSG_RESULT([unknown])
129     ;;
130 esac
132 AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
133 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
135 # Platform specific hacks
136 case "$host_os" in
137     darwin* )
138         AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
139     ;;
140     mingw* )
141         AC_DEFINE([WIN32_LEAN_AND_MEAN], 1, [Needed to avoid including unnecessary headers on Windows])
142     ;;
143     solaris* )
144         AC_DEFINE(_XOPEN_SOURCE,       600, [Needed to get declarations for msg_control and msg_controllen on Solaris])
145         AC_DEFINE(__EXTENSIONS__,        1, [Needed to get declarations for msg_control and msg_controllen on Solaris])
146     ;;
147 esac
150 #### Flags ####
152 dnl Compiler flags
154 # Some compilers (e.g. clang) default to a warning on an unkown command line option.
155 # Change that temporarily to an error, for the CC_CHECK_CFLAGS_APPEND macro to work.
156 save_CC="$CC"
157 CC="$CC -Werror"
158 CC_CHECK_CFLAGS_APPEND([-Wall -W -Wextra -pipe -Wno-long-long -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 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option])
159 CC="$save_CC"
161 dnl Linker flags.
162 dnl Check whether the linker supports the -version-script option.
164 dnl This variable is used to make sure ${srcdir} is expanded and not
165 dnl passed to the CC_CHECK_LDFLAGS macro as a name.
166 tmp_ldflag="-Wl,-version-script=${srcdir}/src/map-file"
168 CC_CHECK_LDFLAGS([${tmp_ldflag}],
169     [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
170 AC_SUBST([VERSIONING_LDFLAGS])
172 dnl Use immediate (now) bindings; avoids the funky re-call in itself
173 dnl  the -z now syntax is lifted from Sun's linker and works with GNU's too
174 dnl  other linkes might be added later
175 CC_CHECK_LDFLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS="-Wl,-z,now"])
176 AC_SUBST([IMMEDIATE_LDFLAGS])
178 dnl On ELF systems we don't want the libraries to be unloaded since we
179 dnl don't clean them up properly, so we request the nodelete flag to be
180 dnl enabled.
182 dnl On other systems, we don't really know how to do that, but it's
183 dnl welcome if somebody can tell.
184 CC_CHECK_LDFLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS="-Wl,-z,nodelete"])
185 AC_SUBST([NODELETE_LDFLAGS])
187 dnl Check for the proper way to build libraries that have no undefined
188 dnl symbols; on some hosts this needs to be avoided but the macro
189 dnl takes care of it.
190 CC_NOUNDEFINED
192 dnl Check whether to build tests by default (as compile-test) or not
193 AC_ARG_ENABLE([default-build-tests],
194     AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
196 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
199 #### Atomic operations ####
201 # Native atomic operation support
202 AC_ARG_ENABLE([atomic-arm-linux-helpers],
203     AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]))
205 AC_ARG_ENABLE([atomic-arm-memory-barrier],
206     AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]))
208 if test "x$enable_atomic_arm_memory_barrier" = "xyes"; then
209     AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers])
212 # If everything else fails use libatomic_ops
213 need_libatomic_ops=yes
215 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
216     pulseaudio_cv_sync_bool_compare_and_swap, [
217     AC_LINK_IFELSE(
218         AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
219         [pulseaudio_cv_sync_bool_compare_and_swap=yes],
220         [pulseaudio_cv_sync_bool_compare_and_swap=no])
221     ])
223 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
224     AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
225     need_libatomic_ops=no
226 else
227     # HW specific atomic ops stuff
228     AC_MSG_CHECKING([architecture for native atomic operations])
229     case $host in
230         arm*)
231             AC_MSG_RESULT([arm])
232             AC_MSG_CHECKING([whether we can use Linux kernel helpers])
233             # The Linux kernel helper functions have been there since 2.6.16. However
234             # compile time checking for kernel version in cross compile environment
235             # (which is usually the case for arm cpu) is tricky (or impossible).
236             if test "x$os_is_linux" = "x1" && test "x$enable_atomic_arm_linux_helpers" != "xno"; then
237                 AC_MSG_RESULT([yes])
238                 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
239                 need_libatomic_ops=no
240             else
241                 AC_MSG_RESULT([no])
242                 AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
243                     pulseaudio_cv_support_arm_atomic_ops, [
244                     AC_COMPILE_IFELSE(
245                         AC_LANG_PROGRAM([], [[
246                             volatile int a=0;
247                             int o=0, n=1, r;
248                             asm volatile ("ldrex    %0, [%1]\n"
249                                           "subs  %0, %0, %2\n"
250                                           "strexeq %0, %3, [%1]\n"
251                                           : "=&r" (r)
252                                           : "r" (&a), "Ir" (o), "r" (n)
253                                           : "cc");
254                             return (a==1 ? 0 : -1);
255                         ]]),
256                         [pulseaudio_cv_support_arm_atomic_ops=yes],
257                         [pulseaudio_cv_support_arm_atomic_ops=no])
258                 ])
259                 AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
260                     AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARM atomic instructions.])
261                     need_libatomic_ops=no
262                 ])
263             fi
264         ;;
265         *-netbsdelf5*)
266             AC_MSG_RESULT([yes])
267             need_libatomic_ops=no
268         ;;
269         *-freebsd*)
270             AC_MSG_RESULT([yes])
271             need_libatomic_ops=no
272         ;;
273         *)
274             AC_MSG_RESULT([unknown])
275         ;;
276     esac
279 # If we're on ARM, check for the ARMV6 instructions we need */
280 case $host in
281   arm*)
282     AC_CACHE_CHECK([support for required armv6 instructions],
283       pulseaudio_cv_support_armv6,
284       [AC_COMPILE_IFELSE(
285          AC_LANG_PROGRAM([],
286            [[volatile int a = -60000, b = 0xaaaabbbb, c = 0xccccdddd;
287              asm volatile ("ldr r0, %2 \n"
288                            "ldr r2, %3 \n"
289                            "ldr r3, %4 \n"
290                            "ssat r1, #8, r0 \n"
291                            "str r1, %0 \n"
292                            "pkhbt r1, r3, r2, LSL #8 \n"
293                            "str r1, %1 \n"
294                            : "=m" (a), "=m" (b)
295                            : "m" (a), "m" (b), "m" (c)
296                            : "r0", "r1", "r2", "r3", "cc");
297              return (a == -128 && b == 0xaabbdddd) ? 0 : -1;
298            ]]),
299          [pulseaudio_cv_support_armv6=yes],
300          [pulseaudio_cv_support_armv6=no])
301       ])
302     AS_IF([test "$pulseaudio_cv_support_armv6" = "yes"], [
303         AC_DEFINE([HAVE_ARMV6], 1, [Have ARMv6 instructions.])
304       ])
305   ;;
306   *)
307   ;;
308 esac
311 #### libtool stuff ####
313 LT_PREREQ(2.2)
314 LT_INIT([dlopen win32-dll disable-static])
316 dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
317 dnl exactly which version of libltdl is present in the system, so we
318 dnl just assume that it's a working version as long as we have the
319 dnl library and the header files.
321 dnl As an extra safety device, check for lt_dladvise_init() which is
322 dnl only implemented in libtool 2.x, and refine as we go if we have
323 dnl refined requirements.
325 dnl Check the header files first since the system may have a
326 dnl libltdl.so for runtime, but no headers, and we want to bail out as
327 dnl soon as possible.
329 dnl We don't need any special variable for this though, since the user
330 dnl can give the proper place to find libltdl through the standard
331 dnl variables like LDFLAGS and CPPFLAGS.
333 AC_CHECK_HEADER([ltdl.h],
334     [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
335     [LIBLTDL=])
337 AS_IF([test "x$LIBLTDL" = "x"],
338     [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
339 AC_SUBST([LIBLTDL])
342 ###################################
343 #   Basic environment checks      #
344 ###################################
346 #### Checks for header files. ####
348 # ISO
349 AC_HEADER_STDC
351 # POSIX
352 AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
353     netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
354     sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \
355     sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
356 AC_CHECK_HEADERS([netinet/ip.h], [], [],
357                  [#include <sys/types.h>
358                   #if HAVE_NETINET_IN_H
359                   # include <netinet/in.h>
360                   #endif
361                   #if HAVE_NETINET_IN_SYSTM_H
362                   # include <netinet/in_systm.h>
363                   #endif
364                  ])
365 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
366 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
368 # Linux
369 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
370 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
372 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
374 # Solaris
375 AC_CHECK_HEADERS_ONCE([sys/filio.h])
377 # Windows
378 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
380 # NetBSD
381 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
383 # Other
384 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
385 AC_CHECK_HEADERS_ONCE([byteswap.h])
386 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
387 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
388 AC_CHECK_HEADERS_ONCE([execinfo.h])
389 AC_CHECK_HEADERS_ONCE([langinfo.h])
390 AC_CHECK_HEADERS_ONCE([regex.h pcreposix.h])
393 #### Typdefs, structures, etc. ####
395 AC_C_CONST
396 AC_C_BIGENDIAN
397 AC_TYPE_PID_T
398 AC_TYPE_SIZE_T
399 AC_CHECK_TYPES(ssize_t, , AC_DEFINE([ssize_t], [signed long], [Define ssize_t if it is not done by the standard libs.]))
400 AC_TYPE_OFF_T
402 AC_TYPE_UID_T
403 AC_CHECK_DECLS(environ)
405 # SIGXCPU
406 AX_CHECK_DEFINE([signal.h], [SIGXCPU], [HAVE_SIGXCPU=1], [HAVE_SIGXCPU=0])
407 AS_IF([test "x$HAVE_SIGXCPU" = "x1"], AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?]))
408 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
410 # INADDR_NONE, Solaris lacks this
411 AX_CHECK_DEFINE([netinet/in.h], [INADDR_NONE], [],
412     [AX_CHECK_DEFINE([winsock2.h], [INADDR_NONE], [],
413         [AC_DEFINE([INADDR_NONE],  [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
416 # _Bool
417 AC_CACHE_CHECK([whether $CC knows _Bool],
418     pulseaudio_cv__Bool,
419     [AC_COMPILE_IFELSE(
420         AC_LANG_PROGRAM([], [[_Bool b;]]),
421         [pulseaudio_cv__Bool=yes],
422         [pulseaudio_cv__Bool=no])
423     ])
425 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.]))
428 #### Thread support ####
430 AX_TLS
431 AS_IF([test "$ac_cv_tls" == "__thread"],
432     AC_DEFINE([SUPPORT_TLS___THREAD], 1, [Define this if the compiler supports __thread for Thread-Local Storage]))
434 # Win32 build breaks with win32 pthread installed
435 AS_IF([test "x$os_is_win32" != "x1"],
436   [AX_PTHREAD])
439 #### Check for libs ####
441 # ISO
442 AC_SEARCH_LIBS([pow], [m])
444 # POSIX
445 AC_SEARCH_LIBS([sched_setscheduler], [rt])
446 AC_SEARCH_LIBS([dlopen], [dl])
447 AC_SEARCH_LIBS([shm_open], [rt])
448 AC_SEARCH_LIBS([inet_ntop], [nsl])
449 AC_SEARCH_LIBS([timer_create], [rt])
450 AC_SEARCH_LIBS([pthread_setaffinity_np], [pthread])
451 AC_SEARCH_LIBS([pthread_getname_np], [pthread])
452 AC_SEARCH_LIBS([pthread_setname_np], [pthread])
454 # BSD
455 AC_SEARCH_LIBS([connect], [socket])
456 AC_SEARCH_LIBS([backtrace], [execinfo])
458 # Darwin/OS X
459 if test "x$os_is_darwin" = "x1" ; then
460     AC_MSG_CHECKING([looking for Apple CoreService Framework])
461     # How do I check a framework "library" - AC_CHECK_LIB prob. won't work??, just assign LIBS & hope
462     AC_CHECK_HEADER([/Developer/Headers/FlatCarbon/CoreServices.h],
463         [LIBS="$LIBS -framework CoreServices"],
464         [AC_MSG_ERROR([CoreServices.h header file not found])]
465     )
467     AC_MSG_RESULT([ok])
468     AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
469     HAVE_BONJOUR=1
472 AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
474 # Windows
475 AC_SEARCH_LIBS([regexec], [pcreposix])
476 # This magic is needed so we do not needlessly add static libs to the win32  build, disabling its ability to make dlls.
477 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
480 #### Check for functions ####
482 # ISO
483 AC_CHECK_FUNCS_ONCE([lrintf strtof])
485 # POSIX
486 AC_FUNC_FORK
487 AC_FUNC_GETGROUPS
488 AC_FUNC_SELECT_ARGTYPES
489 AC_CHECK_FUNCS_ONCE([chmod chown fstat fchown fchmod clock_gettime getaddrinfo getgrgid_r getgrnam_r \
490     getpwnam_r getpwuid_r gettimeofday getuid mlock nanosleep \
491     pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
492     sigaction sleep symlink sysconf uname pthread_setaffinity_np pthread_getname_np pthread_setname_np])
493 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
495 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
497 # X/OPEN
498 AC_CHECK_FUNCS_ONCE([readlink])
500 # SUSv2
501 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
503 # SUSv3
504 AC_CHECK_FUNCS_ONCE([strerror_r])
506 # BSD
507 AC_CHECK_FUNCS_ONCE([lstat])
509 # Non-standard
510 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4])
512 AC_FUNC_ALLOCA
514 AC_CHECK_FUNCS([regexec], [HAVE_REGEX=1], [HAVE_REGEX=0])
515 AM_CONDITIONAL(HAVE_REGEX, [test "x$HAVE_REGEX" = "x1"])
517 # Large File-Support (LFS)
518 AC_SYS_LARGEFILE
519 # Check for open64 to know if the current system does have open64() and similar functions
520 AC_CHECK_FUNCS_ONCE([open64])
523 ###################################
524 #      External libraries         #
525 ###################################
527 #### [lib]iconv ####
529 AM_ICONV
531 #### X11 (optional) ####
533 AC_ARG_ENABLE([x11],
534     AS_HELP_STRING([--disable-x11],[Disable optional X11 support]))
536 AS_IF([test "x$enable_x11" != "xno"],
537     [PKG_CHECK_MODULES(X11, [ x11-xcb xcb >= 1.6 ice sm xtst ], HAVE_X11=1, HAVE_X11=0)],
538     HAVE_X11=0)
540 AS_IF([test "x$enable_x11" = "xyes" && test "x$HAVE_X11" = "x0"],
541     [AC_MSG_ERROR([*** X11 not found])])
543 AC_SUBST(X11_CFLAGS)
544 AC_SUBST(X11_LIBS)
545 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
546 AS_IF([test "x$HAVE_X11" = "x1"], AC_DEFINE([HAVE_X11], 1, [Have X11?]))
548 #### Capabilities (optional) ####
550 CAP_LIBS=''
552 AC_ARG_WITH([caps],
553     AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
555 if test "x${with_caps}" != "xno"; then
556     AC_SEARCH_LIBS([cap_init], [cap], [], [
557                     if test "x${with_caps}" = "xyes" ; then
558                         AC_MSG_ERROR([*** POSIX caps libraries not found])
559                     fi])
560     AC_CHECK_HEADERS([sys/capability.h], [], [
561                     if test "x${with_caps}" = "xyes" ; then
562                         AC_MSG_ERROR([*** POSIX caps headers not found])
563                     fi])
566 #### Valgrind (optional) ####
568 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
570 #### json parsing ####
572 PKG_CHECK_MODULES(LIBJSON, [ json >= 0.9 ])
573 AC_SUBST(LIBJSON_CFLAGS)
574 AC_SUBST(LIBJSON_LIBS)
576 #### Sound file ####
578 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
579 AC_SUBST(LIBSNDFILE_CFLAGS)
580 AC_SUBST(LIBSNDFILE_LIBS)
582 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
583 AC_SUBST(LIBSPEEX_CFLAGS)
584 AC_SUBST(LIBSPEEX_LIBS)
586 #### atomic-ops ####
588 AC_MSG_CHECKING([whether we need libatomic_ops])
589 if test "x$need_libatomic_ops" = "xyes"; then
590     AC_MSG_RESULT([yes])
591     AC_CHECK_HEADERS([atomic_ops.h], [], [
592     AC_MSG_ERROR([*** libatomic-ops headers not found])
593     ])
595     # Win32 does not need the lib and breaks horribly if we try to include it
596     AS_IF([test "x$os_is_win32" != "x1"], [LIBS="$LIBS -latomic_ops"])
597 else
598     AC_MSG_RESULT([no])
601 #### Libsamplerate support (optional) ####
603 AC_ARG_ENABLE([samplerate],
604     AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]))
606 AS_IF([test "x$enable_samplerate" != "xno"],
607     [PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ], HAVE_LIBSAMPLERATE=1, HAVE_LIBSAMPLERATE=0)],
608     HAVE_LIBSAMPLERATE=0)
610 AS_IF([test "x$enable_samplerate" = "xyes" && test "x$HAVE_LIBSAMPLERATE" = "x0"],
611     [AC_MSG_ERROR([*** Libsamplerate not found])])
613 AC_SUBST(LIBSAMPLERATE_CFLAGS)
614 AC_SUBST(LIBSAMPLERATE_LIBS)
615 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
616 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?]))
618 #### Database support ####
620 AC_ARG_WITH([database],
621     AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
624 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xtdb"],
625     [PKG_CHECK_MODULES(TDB, [ tdb ], HAVE_TDB=1, HAVE_TDB=0)],
626     HAVE_TDB=0)
627 AS_IF([test "x$HAVE_TDB" = "x1"], with_database=tdb)
629 AS_IF([test "x$with_database" = "xtdb" && test "x$HAVE_TDB" = "x0"],
630     [AC_MSG_ERROR([*** tdb not found])])
633 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xgdbm"],
634     [
635         HAVE_GDBM=1
636         AC_CHECK_LIB(gdbm, gdbm_open, [], HAVE_GDBM=0)
637         AC_CHECK_HEADERS(gdbm.h, [], HAVE_GDBM=0)
638     ],
639     HAVE_GDBM=0)
640 AS_IF([test "x$HAVE_GDBM" = "x1"],
641     [
642         with_database=gdbm
643         GDBM_CFLAGS=
644         GDBM_LIBS=-lgdbm
645     ])
647 AS_IF([test "x$with_database" = "xgdbm" && test "x$HAVE_GDBM" = "x0"],
648     [AC_MSG_ERROR([*** gdbm not found])])
651 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xsimple"],
652     HAVE_SIMPLEDB=1,
653     HAVE_SIMPLEDB=0)
654 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], with_database=simple)
656 AS_IF([test "x$HAVE_TDB" != x1 -a "x$HAVE_GDBM" != x1 -a "x$HAVE_SIMPLEDB" != x1],
657     AC_MSG_ERROR([*** missing database backend]))
660 AC_SUBST(TDB_CFLAGS)
661 AC_SUBST(TDB_LIBS)
662 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
663 AS_IF([test "x$HAVE_TDB" = "x1"], AC_DEFINE([HAVE_TDB], 1, [Have tdb?]))
665 AC_SUBST(GDBM_CFLAGS)
666 AC_SUBST(GDBM_LIBS)
667 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
668 AS_IF([test "x$HAVE_GDBM" = "x1"], AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?]))
670 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
671 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?]))
673 #### OSS support (optional) ####
675 AC_ARG_ENABLE([oss-output],
676     AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]))
678 AC_ARG_ENABLE([oss-wrapper],
679     AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]))
681 AS_IF([test "x$enable_oss_output" != "xno" -o "x$enable_oss_wrapper" != "xno"],
682     [AC_CHECK_HEADERS([sys/soundcard.h], HAVE_OSS=1, HAVE_OSS=0)],
683     HAVE_OSS=0)
685 AS_IF([test "x$enable_oss_output" = "xyes" -o "x$enable_oss_wrapper" = "xyes" && test "x$HAVE_OSS" = "x0"],
686     [AC_MSG_ERROR([*** OSS support not found])])
688 AS_IF([test "x$enable_oss_output" != "xno"],
689     [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_OUTPUT=1, HAVE_OSS_OUTPUT=0)],
690     HAVE_OSS_OUTPUT=0)
692 AS_IF([test "x$enable_oss_wrapper" != "xno"],
693     [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_WRAPPER=1, HAVE_OSS_WRAPPER=0)],
694     HAVE_OSS_WRAPPER=0)
696 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS_OUTPUT" = "x1"])
697 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS_WRAPPER" = "x1"])
698 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?]))
699 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?]))
701 #### CoreAudio support (optional) ####
703 AC_ARG_ENABLE([coreaudio-output],
704     AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]))
706 AS_IF([test "x$enable_coreaudio_output" != "xno"],
707     [AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1, HAVE_COREAUDIO=0)],
708     HAVE_COREAUDIO=0)
710 AS_IF([test "x$enable_coreaudio_output" = "xyes" && test "x$HAVE_COREAUDIO" = "x0"],
711     [AC_MSG_ERROR([*** CoreAudio output support not found])])
713 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = "x1" && test "x$enable_coreaudio_output" != "xno"])
715 #### ALSA support (optional) ####
717 AC_ARG_ENABLE([alsa],
718     AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]))
720 AS_IF([test "x$enable_alsa" != "xno"],
721     [PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], HAVE_ALSA=1, HAVE_ALSA=0)],
722     HAVE_ALSA=0)
724 AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
725     [AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])])
727 AC_SUBST(ASOUNDLIB_CFLAGS)
728 AC_SUBST(ASOUNDLIB_LIBS)
729 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
730 AS_IF([test "x$HAVE_ALSA" = "x1"], AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]))
732 #### Solaris audio support (optional) ####
734 AC_ARG_ENABLE([solaris],
735     AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]))
737 AS_IF([test "x$enable_solaris" != "xno"],
738     [AC_CHECK_HEADERS([sys/audio.h], HAVE_SOLARIS=1, HAVE_SOLARIS=0)],
739     HAVE_SOLARIS=0)
741 AS_IF([test "x$enable_solaris" = "xyes" && test "x$HAVE_SOLARIS" = "x0"],
742     [AC_MSG_ERROR([*** Solaris audio support not found])])
744 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
745 AS_IF([test "x$HAVE_SOLARIS" = "x1"], AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?]))
747 #### WaveOut audio support (optional) ####
749 AC_ARG_ENABLE([waveout],
750     AS_HELP_STRING([--disable-waveout],[Disable optional WaveOut audio support]))
752 AS_IF([test "x$enable_waveout" != "xno"],
753     [AC_CHECK_HEADERS([mmsystem.h], HAVE_WAVEOUT=1, HAVE_WAVEOUT=0, [#include <windows.h>])],
754     HAVE_WAVEOUT=0)
756 AS_IF([test "x$enable_waveout" = "xyes" && test "x$HAVE_WAVEOUT" = "x0"],
757     [AC_MSG_ERROR([*** WaveOut audio support not found])])
759 AM_CONDITIONAL([HAVE_WAVEOUT], [test "x$HAVE_WAVEOUT" = x1])
760 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], AC_DEFINE([HAVE_WAVEOUT], 1, [Have WaveOut audio?]))
762 #### GLib 2 support (optional) ####
764 AC_ARG_ENABLE([glib2],
765     AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]))
767 AS_IF([test "x$enable_glib2" != "xno"],
768     [PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ], HAVE_GLIB20=1, HAVE_GLIB20=0)],
769     HAVE_GLIB20=0)
771 AS_IF([test "x$enable_glib2" = "xyes" && test "x$HAVE_GLIB20" = "x0"],
772     [AC_MSG_ERROR([*** GLib 2 support not found])])
774 AC_SUBST(GLIB20_CFLAGS)
775 AC_SUBST(GLIB20_LIBS)
776 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
777 AS_IF([test "x$HAVE_GLIB20" = "x1"], AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?]))
779 #### GTK2 support (optional) ####
781 AC_ARG_ENABLE([gtk2],
782     AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]))
784 AS_IF([test "x$enable_gtk2" != "xno"],
785     [PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ], HAVE_GTK20=1, HAVE_GTK20=0)],
786     HAVE_GTK20=0)
788 AS_IF([test "x$enable_gtk2" = "xyes" && test "x$HAVE_GTK20" = "x0"],
789     [AC_MSG_ERROR([*** Gtk+ 2 support not found])])
791 AC_SUBST(GTK20_CFLAGS)
792 AC_SUBST(GTK20_LIBS)
793 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
794 AS_IF([test "x$HAVE_GTK20" = "x1"], AC_DEFINE([HAVE_GTK], 1, [Have GTK?]))
796 #### GConf support (optional) ####
798 AC_ARG_ENABLE([gconf],
799     AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]))
801 AS_IF([test "x$enable_gconf" != "xno"],
802     [PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ], HAVE_GCONF=1, HAVE_GCONF=0)],
803     HAVE_GCONF=0)
805 AS_IF([test "x$enable_gconf" = "xyes" && test "x$HAVE_GCONF" = "x0"],
806     [AC_MSG_ERROR([*** GConf support not found])])
808 AC_SUBST(GCONF_CFLAGS)
809 AC_SUBST(GCONF_LIBS)
810 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
812 #### Avahi support (optional) ####
814 AC_ARG_ENABLE([avahi],
815     AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]))
817 AS_IF([test "x$enable_avahi" != "xno"],
818     [PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ], HAVE_AVAHI=1, HAVE_AVAHI=0)],
819     HAVE_AVAHI=0)
821 AS_IF([test "x$enable_avahi" = "xyes" && test "x$HAVE_AVAHI" = "x0"],
822     [AC_MSG_ERROR([*** Avahi support not found])])
824 AC_SUBST(AVAHI_CFLAGS)
825 AC_SUBST(AVAHI_LIBS)
826 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
828 #### JACK (optional) ####
830 AC_ARG_ENABLE([jack],
831     AS_HELP_STRING([--disable-jack],[Disable optional JACK support]))
833 AS_IF([test "x$enable_jack" != "xno"],
834     [PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ], HAVE_JACK=1, HAVE_JACK=0)],
835     HAVE_JACK=0)
837 AS_IF([test "x$enable_jack" = "xyes" && test "x$HAVE_JACK" = "x0"],
838     [AC_MSG_ERROR([*** JACK support not found])])
840 AC_SUBST(JACK_CFLAGS)
841 AC_SUBST(JACK_LIBS)
842 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
844 #### Async DNS support (optional) ####
846 AC_ARG_ENABLE([asyncns],
847     AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]))
849 AS_IF([test "x$enable_asyncns" != "xno"],
850     [PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ], HAVE_LIBASYNCNS=1, HAVE_LIBASYNCNS=0)],
851     HAVE_LIBASYNCNS=0)
853 AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
854     [AC_MSG_ERROR([*** Async DNS support not found])])
856 AC_SUBST(LIBASYNCNS_CFLAGS)
857 AC_SUBST(LIBASYNCNS_LIBS)
858 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
859 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
861 #### TCP wrappers (optional) ####
863 AC_ARG_ENABLE([tcpwrap],
864     AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]))
866 AS_IF([test "x$enable_tcpwrap" != "xno"],
867     [
868         ACX_LIBWRAP
869         AS_IF([test "x$LIBWRAP_LIBS" != "x"], HAVE_TCPWRAP=1, HAVE_TCPWRAP=0)
870     ],
871     HAVE_TCPWRAP=0)
873 AS_IF([test "x$enable_tcpwrap" = "xyes" && test "x$HAVE_TCPWRAP" = "x0"],
874     [AC_MSG_ERROR([*** TCP wrappers support not found])])
876 AC_SUBST(LIBWRAP_LIBS)
878 #### LIRC support (optional) ####
880 AC_ARG_ENABLE([lirc],
881     AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]))
883 LIRC_CFLAGS=
884 LIRC_LIBS=
886 AS_IF([test "x$enable_lirc" != "xno"],
887     [
888         HAVE_LIRC=1
889         AC_CHECK_HEADER(lirc/lirc_client.h, [], [HAVE_LIRC=0])
890         AC_CHECK_LIB(lirc_client, lirc_init, [LIRC_LIBS=-llirc_client], [HAVE_LIRC=0])
891     ],
892     HAVE_LIRC=0)
894 AS_IF([test "x$enable_lirc" = "xyes" && test "x$HAVE_LIRC" = "x0"],
895     [AC_MSG_ERROR([*** LIRC support not found])])
897 AC_SUBST(LIRC_CFLAGS)
898 AC_SUBST(LIRC_LIBS)
899 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
901 #### HAL support (optional) ####
903 AC_ARG_ENABLE([hal],
904     AS_HELP_STRING([--disable-hal],[Disable optional HAL support]))
906 AS_IF([test "x$enable_hal" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
907     [PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ], HAVE_HAL=1, HAVE_HAL=0)],
908     HAVE_HAL=0)
910 AS_IF([test "x$enable_hal" = "xyes" && test "x$HAVE_HAL" = "x0"],
911     [AC_MSG_ERROR([*** HAL support not found])])
913 AC_SUBST(HAL_CFLAGS)
914 AC_SUBST(HAL_LIBS)
915 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
916 AS_IF([test "x$HAVE_HAL" = "x1"], AC_DEFINE([HAVE_HAL], 1, [Have HAL.]))
918 #### UDEV support (optional) ####
920 AC_ARG_ENABLE([udev],
921     AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]))
923 AS_IF([test "x$enable_udev" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
924     [PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], HAVE_UDEV=1, HAVE_UDEV=0)],
925     HAVE_UDEV=0)
927 AS_IF([test "x$enable_udev" = "xyes" && test "x$HAVE_UDEV" = "x0"],
928     [AC_MSG_ERROR([*** UDEV support not found])])
930 AC_SUBST(UDEV_CFLAGS)
931 AC_SUBST(UDEV_LIBS)
932 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
933 AS_IF([test "x$HAVE_UDEV" = "x1"], AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]))
935 #### BlueZ support (optional) ####
937 AC_ARG_ENABLE([bluez],
938     AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]))
940 AS_IF([test "x$enable_bluez" != "xno"],
941     [PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ], HAVE_BLUEZ=1, HAVE_BLUEZ=0)],
942     HAVE_BLUEZ=0)
944 AS_IF([test "x$enable_bluez" = "xyes" && test "x$HAVE_BLUEZ" = "x0"],
945     [AC_MSG_ERROR([*** BLUEZ support not found])])
947 AC_SUBST(BLUEZ_CFLAGS)
948 AC_SUBST(BLUEZ_LIBS)
949 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
951 #### D-Bus support (optional) ####
953 AC_ARG_ENABLE([dbus],
954     AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]))
956 AS_IF([test "x$enable_dbus" != "xno"],
957     [PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ], HAVE_DBUS=1, HAVE_DBUS=0)],
958     HAVE_DBUS=0)
960 AS_IF([test "x$enable_dbus" = "xyes" && test "x$HAVE_DBUS" = "x0"],
961     [AC_MSG_ERROR([*** D-Bus support not found])])
963 AS_IF([test "x$HAVE_DBUS" = "x1"],
964     [
965         save_CFLAGS="$CFLAGS"; CFLAGS="$CFLAGS $DBUS_CFLAGS"
966         save_LIBS="$LIBS"; LIBS="$LIBS $DBUS_LIBS"
967         AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
968         CFLAGS="$save_CFLAGS"
969         LIBS="$save_LIBS"
970     ])
972 AC_SUBST(DBUS_CFLAGS)
973 AC_SUBST(DBUS_LIBS)
974 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
975 AS_IF([test "x$HAVE_DBUS" = "x1"], AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.]))
977 # HAL and BlueZ depend on D-Bus: So double check if they were explicitly enabled.
978 if test "x$HAVE_DBUS" != "x1" ; then
979     HAVE_HAL=0
980     if test "x$enable_hal" = "xyes"; then
981         AC_MSG_ERROR([*** D-Bus support is required by HAL])
982     fi
984     HAVE_BLUEZ=0
985     if test "x$enable_bluez" = "xyes"; then
986         AC_MSG_ERROR([*** D-Bus support is required by BLUEZ])
987     fi
990 #### HAL compat support (optional) ####
992 AC_ARG_ENABLE([hal-compat],
993     AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]))
995 if test "x$enable_hal_compat" != "xno" -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1"; then
996     HAVE_HAL_COMPAT=1
997     AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
998 else
999     HAVE_HAL_COMPAT=0
1002 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1004 #### IPv6 connection support (optional) ####
1006 AC_ARG_ENABLE([ipv6],
1007     AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]))
1009 if test "x$enable_ipv6" != "xno"; then
1010     AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1011     HAVE_IPV6=1
1012 else
1013     HAVE_IPV6=0
1016 #### OpenSSL support (optional) ####
1018 AC_ARG_ENABLE([openssl],
1019     AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]))
1021 AS_IF([test "x$enable_openssl" != "xno"],
1022     [PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ], HAVE_OPENSSL=1, HAVE_OPENSSL=0)],
1023     HAVE_OPENSSL=0)
1025 AS_IF([test "x$enable_openssl" = "xyes" && test "x$HAVE_OPENSSL" = "x0"],
1026     [AC_MSG_ERROR([*** OpenSSL support not found])])
1028 AC_SUBST(OPENSSL_CFLAGS)
1029 AC_SUBST(OPENSSL_LIBS)
1030 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1031 AS_IF([test "x$HAVE_OPENSSL" = "x1"], AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL]))
1033 #### FFTW (optional) ####
1035 AC_ARG_WITH([fftw],
1036     AS_HELP_STRING([--without-fftw],[Omit FFTW-using modules (equalizer)]))
1038 AS_IF([test "x$with_fftw" != "xno"],
1039     [PKG_CHECK_MODULES(FFTW, [ fftw3f ], HAVE_FFTW=1, HAVE_FFTW=0)],
1040     HAVE_FFTW=0)
1042 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1044 #### ORC (optional) ####
1046 ORC_CHECK([0.4.11])
1048 #### Build and Install man pages ####
1050 AC_ARG_ENABLE([manpages],
1051     AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]))
1053 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" != "xno"])
1055 #### PulseAudio system group & user  #####
1057 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1058 if test -z "$with_system_user" ; then
1059     PA_SYSTEM_USER=pulse
1060 else
1061     PA_SYSTEM_USER=$with_system_user
1063 AC_SUBST(PA_SYSTEM_USER)
1064 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1066 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1067 if test -z "$with_system_group" ; then
1068     PA_SYSTEM_GROUP=pulse
1069 else
1070     PA_SYSTEM_GROUP=$with_system_group
1072 AC_SUBST(PA_SYSTEM_GROUP)
1073 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1075 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)]))
1076 if test -z "$with_access_group" ; then
1077     PA_ACCESS_GROUP=pulse-access
1078 else
1079     PA_ACCESS_GROUP=$with_access_group
1081 AC_SUBST(PA_ACCESS_GROUP)
1082 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1084 AC_ARG_ENABLE([per-user-esound-socket],
1085     AS_HELP_STRING([--disable-per-user-esound-socket],[Use global esound socket directory /tmp/.esd/socket.]))
1087 if test "x$enable_per_user_esound_socket" != "xno"; then
1088     USE_PER_USER_ESOUND_SOCKET=1
1089     AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1090 else
1091     USE_PER_USER_ESOUND_SOCKET=0
1094 #### PulseAudio system runtime dir ####
1096 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1097 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1098 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1099 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1100 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1101 AC_SUBST(PA_SYSTEM_STATE_PATH)
1103 #### Mac OSX specific stuff #####
1105 AC_ARG_ENABLE(mac-universal,
1106     AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries]),
1107     enable_mac_universal=$enableval, enable_mac_universal="no")
1109 AC_ARG_WITH(mac-version-min,
1110     AS_HELP_STRING([--with-mac-version-min=<version>], [Defines the earliest version of MacOS X that the executables will run on.]),
1111     mac_version_min=$withval, mac_version_min="10.5")
1113 AC_ARG_WITH(mac-sysroot,
1114     AS_HELP_STRING([--with-mac-sysroot=<path>], [SDK basedir to use as the logical root directory for headers and libraries.]),
1115     mac_sysroot=$withval, mac_sysroot="/Developer/SDKs/MacOSX10.5.sdk")
1117 if test "x$os_is_darwin" = "x1" ; then
1118     LDFLAGS="$LDFLAGS -isysroot $mac_sysroot -mmacosx-version-min=$mac_version_min"
1119     CFLAGS="$CFLAGS -isysroot $mac_sysroot -mmacosx-version-min=$mac_version_min"
1121     if test "x$enable_mac_universal" = "xyes" ; then
1122         mac_arches="-arch i386 -arch x86_64"
1123         LDFLAGS="$LDFLAGS $mac_arches"
1124         CFLAGS="$CFLAGS $mac_arches"
1125     fi
1129 ###################################
1130 #            Output               #
1131 ###################################
1133 AC_DEFINE_UNQUOTED(PA_CFLAGS, "$CFLAGS", [The CFLAGS used during compilation])
1135 AC_ARG_ENABLE([legacy-runtime-dir],
1136         AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1137 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1138         AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1141 AC_ARG_ENABLE([static-bins],
1142     AS_HELP_STRING([--enable-static-bins],[Statically link executables.]))
1144 AM_CONDITIONAL([STATIC_BINS], [test "x$enable_static_bins" = "xyes"])
1146 AC_ARG_WITH(
1147         [preopen-mods],
1148         AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1149         [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1150 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1151 if test "x$PREOPEN_MODS" != "xall" ; then
1152     tmpLIBS=""
1153     for mod in $PREOPEN_MODS; do
1154         tmpLIBS="$tmpLIBS module-$mod.la"
1155     done
1156     PREOPEN_MODS="$tmpLIBS"
1157     AC_SUBST(PREOPEN_MODS)
1160 AC_ARG_WITH(
1161         [module-dir],
1162         AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]),
1163         [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"])
1165 AC_SUBST(modlibexecdir)
1167 AC_ARG_WITH(
1168         [udev-rules-dir],
1169         AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1170         [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1172 AC_SUBST(udevrulesdir)
1174 AC_ARG_ENABLE([force-preopen],
1175     AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]))
1177 if test "x$enable_force_preopen" = "xyes"; then
1178     FORCE_PREOPEN=yes
1179 else
1180     FORCE_PREOPEN=no
1183 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1185 AC_CONFIG_FILES([
1186 Makefile
1187 src/Makefile
1188 man/Makefile
1189 libpulse.pc
1190 libpulse-simple.pc
1191 libpulse-browse.pc
1192 libpulse-mainloop-glib.pc
1193 doxygen/Makefile
1194 doxygen/doxygen.conf
1195 src/pulse/version.h
1196 po/Makefile.in
1199 AC_OUTPUT
1201 # ==========================================================================
1203 AS_IF([test "x$HAVE_X11" = "x1"], ENABLE_X11=yes, ENABLE_X11=no)
1204 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], ENABLE_OSS_OUTPUT=yes, ENABLE_OSS_OUTPUT=no)
1205 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no)
1206 AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no)
1207 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no)
1208 AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no)
1209 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no)
1210 AS_IF([test "x$HAVE_GLIB20" = "x1"], ENABLE_GLIB20=yes, ENABLE_GLIB20=no)
1211 AS_IF([test "x$HAVE_GTK20" = "x1"], ENABLE_GTK20=yes, ENABLE_GTK20=no)
1212 AS_IF([test "x$HAVE_GCONF" = "x1"], ENABLE_GCONF=yes, ENABLE_GCONF=no)
1213 AS_IF([test "x$HAVE_AVAHI" = "x1"], ENABLE_AVAHI=yes, ENABLE_AVAHI=no)
1214 AS_IF([test "x$HAVE_JACK" = "x1"], ENABLE_JACK=yes, ENABLE_JACK=no)
1215 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], ENABLE_LIBASYNCNS=yes, ENABLE_LIBASYNCNS=no)
1216 AS_IF([test "x$HAVE_LIRC" = "x1"], ENABLE_LIRC=yes, ENABLE_LIRC=no)
1217 AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
1218 AS_IF([test "x$HAVE_HAL" = "x1"], ENABLE_HAL=yes, ENABLE_HAL=no)
1219 AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
1220 AS_IF([test "x$HAVE_BLUEZ" = "x1"], ENABLE_BLUEZ=yes, ENABLE_BLUEZ=no)
1221 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
1222 AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
1223 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE=yes, ENABLE_LIBSAMPLERATE=no)
1224 AS_IF([test "x$HAVE_IPV6" = "x1"], ENABLE_IPV6=yes, ENABLE_IPV6=no)
1225 AS_IF([test "x$HAVE_OPENSSL" = "x1"], ENABLE_OPENSSL=yes, ENABLE_OPENSSL=no)
1226 AS_IF([test "x$HAVE_FFTW" = "x1"], ENABLE_FFTW=yes, ENABLE_FFTW=no)
1227 AS_IF([test "x$HAVE_ORC" = "xyes"], ENABLE_ORC=yes, ENABLE_ORC=no)
1228 AS_IF([test "x$HAVE_TDB" = "x1"], ENABLE_TDB=yes, ENABLE_TDB=no)
1229 AS_IF([test "x$HAVE_GDBM" = "x1"], ENABLE_GDBM=yes, ENABLE_GDBM=no)
1230 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no)
1231 AS_IF([test "x$USE_PER_USER_ESOUND_SOCKET" = "x1"], ENABLE_PER_USER_ESOUND_SOCKET=yes, ENABLE_PER_USER_ESOUND_SOCKET=no)
1233 echo "
1234  ---{ $PACKAGE_NAME $VERSION }---
1236     prefix:                        ${prefix}
1237     sysconfdir:                    ${sysconfdir}
1238     localstatedir:                 ${localstatedir}
1239     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1240     System State Path:             ${PA_SYSTEM_STATE_PATH}
1241     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1242     Compiler:                      ${CC}
1243     CFLAGS:                        ${CFLAGS}
1244     LIBS:                          ${LIBS}
1246     Enable X11:                    ${ENABLE_X11}
1247     Enable OSS Output:             ${ENABLE_OSS_OUTPUT}
1248     Enable OSS Wrapper:            ${ENABLE_OSS_WRAPPER}
1249     Enable Alsa:                   ${ENABLE_ALSA}
1250     Enable CoreAudio:              ${ENABLE_COREAUDIO}
1251     Enable Solaris:                ${ENABLE_SOLARIS}
1252     Enable WaveOut:                ${ENABLE_WAVEOUT}
1253     Enable GLib 2.0:               ${ENABLE_GLIB20}
1254     Enable Gtk+ 2.0:               ${ENABLE_GTK20}
1255     Enable GConf:                  ${ENABLE_GCONF}
1256     Enable Avahi:                  ${ENABLE_AVAHI}
1257     Enable Jack:                   ${ENABLE_JACK}
1258     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1259     Enable LIRC:                   ${ENABLE_LIRC}
1260     Enable D-Bus:                  ${ENABLE_DBUS}
1261       Enable HAL:                  ${ENABLE_HAL}
1262       Enable BlueZ:                ${ENABLE_BLUEZ}
1263     Enable udev:                   ${ENABLE_UDEV}
1264       Enable HAL->udev compat:     ${ENABLE_HAL_COMPAT}
1265     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1266     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1267     Enable IPv6:                   ${ENABLE_IPV6}
1268     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1269     Enable fftw:                   ${ENABLE_FFTW}
1270     Enable orc:                    ${ENABLE_ORC}
1271     Database
1272       tdb:                         ${ENABLE_TDB}
1273       gdbm:                        ${ENABLE_GDBM}
1274       simple database:             ${ENABLE_SIMPLEDB}
1276     System User:                   ${PA_SYSTEM_USER}
1277     System Group:                  ${PA_SYSTEM_GROUP}
1278     Access Group:                  ${PA_ACCESS_GROUP}
1279     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1280     Force preopen:                 ${FORCE_PREOPEN}
1281     Preopened modules:             ${PREOPEN_MODS}
1284 if test "${ENABLE_DBUS}" = "no" && test "x$os_is_win32" != "x1" ; then
1285    echo "
1286 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1287 You do not have D-Bus support enabled. It is strongly recommended
1288 that you enable D-Bus support if your platform supports it.
1289 Many parts of PulseAudio use D-Bus, from ConsoleKit interaction
1290 to the Device Reservation Protocol to speak to JACK, Bluetooth
1291 support and even a native control protocol for communicating and
1292 controling the PulseAudio daemon itself.
1293 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1297 if test "${ENABLE_UDEV}" = "no" && test "x$os_is_win32" != "x1" ; then
1298    echo "
1299 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1300 You do not have udev support enabled. It is strongly recommended
1301 that you enable udev support if your platform supports it as it is
1302 the primary method used to detect hardware audio devices (on Linux)
1303 and is thus a critical part of PulseAudio on that platform.
1304 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====