echo-cancel: Try to minimise in-flight chunks in snapshot latency
[platform/upstream/pulseaudio.git] / configure.ac
1 # -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
3
4 # This file is part of PulseAudio.
5 #
6 # Copyright 2004-2008 Lennart Poettering
7 # Copyright 2006-2007 Pierre Ossman <ossman@cendio.se> for Cendio AB
8 #
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.
13 #
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.
18 #
19 # You should have received a copy of the GNU Lesser General Public License
20 # along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
21
22 AC_PREREQ(2.63)
23
24 AC_INIT([pulseaudio],[m4_esyscmd(./git-version-gen .tarball-version)],[pulseaudio-discuss (at) lists (dot) freedesktop (dot) org],[pulseaudio],[http://pulseaudio.org/])
25 AC_CONFIG_SRCDIR([src/daemon/main.c])
26 AC_CONFIG_MACRO_DIR([m4])
27 AC_CONFIG_HEADERS([config.h])
28 AC_CONFIG_AUX_DIR([build-aux])
29 AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability subdir-objects silent-rules color-tests dist-xz tar-ustar])
30
31 AS_IF([! test -n "$VERSION"], [
32    AC_MSG_ERROR([git-version-gen failed])
33 ])
34
35 m4_define(pa_major, `echo $VERSION | cut -d. -f1 | cut -d- -f1`)
36 m4_define(pa_minor, `echo $VERSION | cut -d. -f2 | cut -d- -f1`)
37
38 AC_SUBST(PA_MAJOR, pa_major)
39 AC_SUBST(PA_MINOR, pa_minor)
40 AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)
41
42 AC_SUBST(PA_API_VERSION, 12)
43 AC_SUBST(PA_PROTOCOL_VERSION, 32)
44
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, [20:1:20])
48
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, [1:0:1])
52
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:5:0])
56
57 AC_CANONICAL_HOST
58 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
59
60 AC_CHECK_PROG([STOW], [stow], [yes], [no])
61
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}"
65 ])
66
67 AM_SILENT_RULES([yes])
68
69
70 #### Checks for programs. ####
71
72 # mkdir -p
73
74 AC_PROG_MKDIR_P
75
76 # ln -s
77
78 AC_PROG_LN_S
79
80 # CC
81
82 AC_PROG_CC
83 AM_PROG_CC_C_O
84 # Only required if you want the WebRTC canceller -- no runtime dep on
85 # libstdc++ otherwise
86 AC_PROG_CXX
87 AX_CXX_COMPILE_STDCXX_11([ext],[optional])
88 AC_PROG_GCC_TRADITIONAL
89 AC_USE_SYSTEM_EXTENSIONS
90
91 # M4
92
93 AC_CHECK_PROGS([M4], gm4 m4, no)
94 AS_IF([test "x$M4" = "xno"], AC_MSG_ERROR([m4 missing]))
95
96 # pkg-config
97
98 PKG_PROG_PKG_CONFIG
99
100 # gettext
101
102 if test "x$enable_nls" != "xno"; then
103 IT_PROG_INTLTOOL([0.35.0])
104
105 AM_GNU_GETTEXT_VERSION([0.18.1])
106 AM_GNU_GETTEXT([external])
107
108 GETTEXT_PACKAGE=pulseaudio
109 AC_SUBST([GETTEXT_PACKAGE])
110 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
111 else
112 # workaround till an intltool m4 bug is fixed upstream
113 # (https://bugs.launchpad.net/intltool/+bug/904647)
114 USE_NLS=no
115 AC_SUBST(USE_NLS)
116 fi
117
118
119 #### Determine host OS ####
120
121 # if the host has the possibility of sys/capability.h for dropping privileges
122 # used to determine if we should error out if it is not found
123 host_has_caps=0
124
125 os_is_linux=0
126 os_is_win32=0
127 os_is_darwin=0
128
129 AC_MSG_CHECKING([host operating system])
130 case "$host_os" in
131     linux*)
132         AC_MSG_RESULT([linux])
133         host_has_caps=1
134         os_is_linux=1
135     ;;
136     freebsd*)
137         AC_MSG_RESULT([freebsd])
138         host_has_caps=1
139     ;;
140     netbsd*)
141         AC_MSG_RESULT([netbsd])
142     ;;
143     darwin*)
144         AC_MSG_RESULT([darwin])
145         os_is_darwin=1
146         AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.])
147     ;;
148     mingw*)
149         AC_MSG_RESULT([win32])
150         os_is_win32=1
151         AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
152     ;;
153     *)
154         AC_MSG_RESULT([unknown])
155     ;;
156 esac
157
158 AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
159 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
160 AC_SUBST([OS_IS_WIN32], [$os_is_win32])
161
162 # Platform specific hacks
163 case "$host_os" in
164     darwin* )
165         AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
166     ;;
167     mingw* )
168         AC_DEFINE([WIN32_LEAN_AND_MEAN], 1, [Needed to avoid including unnecessary headers on Windows])
169     ;;
170     solaris* )
171         AC_DEFINE(_XOPEN_SOURCE,       600, [Needed to get declarations for msg_control and msg_controllen on Solaris])
172         AC_DEFINE(__EXTENSIONS__,        1, [Needed to get declarations for msg_control and msg_controllen on Solaris])
173     ;;
174 esac
175
176
177 #### Compiler flags ####
178
179 AX_CHECK_COMPILE_FLAG([-std=gnu11],
180    [],
181    [AC_MSG_ERROR([*** Compiler does not support -std=gnu11])],
182    [-pedantic -Werror])
183
184 AX_APPEND_COMPILE_FLAGS(
185     [-Wall -W -Wextra -pipe -Wno-long-long -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 -fno-common -fdiagnostics-show-option -fdiagnostics-color=auto],
186     [], [-pedantic -Werror])
187
188 AS_CASE([" $CFLAGS "], [*" -O0 "*], [], [
189     # Don't append the flag if it already exists.
190     # Only enable fastpath asserts when doing a debug build, e.g. from bootstrap.sh.
191     AX_APPEND_FLAG([-DFASTPATH], [CPPFLAGS])
192
193     # Cannot use AX_APPEND_FLAG here, as it assumes no space inside the added flags.
194     # Cannot append flags with AX_APPEND_FLAG one by one, as this would destroy all fortifications
195     # if CPPFLAGS already contain -D_FORTIFY_SOURCE=2.
196
197     # Warnings to be aware of that appear with -D_FORTIFY_SOURCE=2 but without -U_FORTIFY_SOURCE:
198     # On Fedora 20 with -O0: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp]
199     # On Gentoo with -O2:    "_FORTIFY_SOURCE" redefined [enabled by default]
200     AS_VAR_APPEND([CPPFLAGS],[" -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"])
201 ])
202
203 #### Linker flags ####
204
205 # Check whether the linker supports the -version-script option.
206 # The Make variable $(srcdir) needs to be in the LDFLAGS in that form,
207 # so that it is expanded the right way in every subdir.
208 AX_CHECK_LINK_FLAG(["-Wl,-version-script=${srcdir}/src/map-file"],
209     [VERSIONING_LDFLAGS='-Wl,-version-script=$(abs_top_srcdir)/src/map-file'])
210 AC_SUBST([VERSIONING_LDFLAGS])
211
212 # Use immediate (now) bindings; avoids the funky re-call in itself.
213 # The -z now syntax is lifted from Sun's linker and works with GNU's too, other linkers might be added later.
214 AX_APPEND_LINK_FLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS])
215 AC_SUBST([IMMEDIATE_LDFLAGS])
216
217 # On ELF systems we don't want the libraries to be unloaded since we don't clean them up properly,
218 # so we request the nodelete flag to be enabled.
219 # On other systems, we don't really know how to do that, but it's welcome if somebody can tell.
220 AX_APPEND_LINK_FLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS], [-shared])
221 AC_SUBST([NODELETE_LDFLAGS])
222
223 # Check for the proper way to build libraries that have no undefined symbols
224 case $host in
225     # FreeBSD (et al.) does not complete linking for shared objects when pthreads
226     # are requested, as different implementations are present.
227     *-freebsd* | *-openbsd*) ;;
228     *)
229         for possible_flag in "-Wl,--no-undefined" "-Wl,-z,defs"; do
230             AX_CHECK_LINK_FLAG([$possible_flag], [NOUNDEFINED_LDFLAGS="$possible_flag"; break])
231         done
232     ;;
233 esac
234 AC_SUBST([NOUNDEFINED_LDFLAGS])
235
236
237 #### Atomic operations ####
238
239 # Native atomic operation support
240 AC_ARG_ENABLE([atomic-arm-linux-helpers],
241     AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]))
242
243 AC_ARG_ENABLE([atomic-arm-memory-barrier],
244     AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]))
245
246 if test "x$enable_atomic_arm_memory_barrier" = "xyes"; then
247     AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers])
248 fi
249
250 # If everything else fails use libatomic_ops
251 need_libatomic_ops=yes
252
253 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
254     pulseaudio_cv_sync_bool_compare_and_swap, [
255     AC_LINK_IFELSE(
256         [AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]])],
257         [pulseaudio_cv_sync_bool_compare_and_swap=yes],
258         [pulseaudio_cv_sync_bool_compare_and_swap=no])
259     ])
260
261 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
262     AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
263     need_libatomic_ops=no
264 else
265     # HW specific atomic ops stuff
266     AC_MSG_CHECKING([architecture for native atomic operations])
267     case $host in
268         *-netbsd*)
269             AC_MSG_RESULT([yes])
270             need_libatomic_ops=no
271         ;;
272         arm*)
273             AC_MSG_RESULT([arm])
274             AC_MSG_CHECKING([whether we can use Linux kernel helpers])
275             # The Linux kernel helper functions have been there since 2.6.16. However
276             # compile time checking for kernel version in cross compile environment
277             # (which is usually the case for arm cpu) is tricky (or impossible).
278             if test "x$os_is_linux" = "x1" && test "x$enable_atomic_arm_linux_helpers" != "xno"; then
279                 AC_MSG_RESULT([yes])
280                 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
281                 need_libatomic_ops=no
282             else
283                 AC_MSG_RESULT([no])
284                 AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
285                     pulseaudio_cv_support_arm_atomic_ops, [
286                     AC_COMPILE_IFELSE(
287                         [AC_LANG_PROGRAM([], [[
288                             volatile int a=0;
289                             int o=0, n=1, r;
290                             asm volatile ("ldrex    %0, [%1]\n"
291                                           "subs  %0, %0, %2\n"
292                                           "strexeq %0, %3, [%1]\n"
293                                           : "=&r" (r)
294                                           : "r" (&a), "Ir" (o), "r" (n)
295                                           : "cc");
296                             return (a==1 ? 0 : -1);
297                         ]])],
298                         [pulseaudio_cv_support_arm_atomic_ops=yes],
299                         [pulseaudio_cv_support_arm_atomic_ops=no])
300                 ])
301                 AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
302                     AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARM atomic instructions.])
303                     need_libatomic_ops=no
304                 ])
305             fi
306         ;;
307         *-freebsd*)
308             AC_MSG_RESULT([yes])
309             need_libatomic_ops=no
310         ;;
311         *)
312             AC_MSG_RESULT([unknown])
313         ;;
314     esac
315 fi
316
317 # If we're on ARM, check for the ARMV6 instructions we need */
318 case $host in
319   arm*)
320     AC_CACHE_CHECK([support for required armv6 instructions],
321       pulseaudio_cv_support_armv6,
322       [AC_COMPILE_IFELSE(
323          [AC_LANG_PROGRAM([],
324            [[volatile int a = -60000, b = 0xaaaabbbb, c = 0xccccdddd;
325              asm volatile ("ldr r0, %2 \n"
326                            "ldr r2, %3 \n"
327                            "ldr r3, %4 \n"
328                            "ssat r1, #8, r0 \n"
329                            "str r1, %0 \n"
330                            "pkhbt r1, r3, r2, LSL #8 \n"
331                            "str r1, %1 \n"
332                            : "=m" (a), "=m" (b)
333                            : "m" (a), "m" (b), "m" (c)
334                            : "r0", "r1", "r2", "r3", "cc");
335              return (a == -128 && b == 0xaabbdddd) ? 0 : -1;
336            ]])],
337          [pulseaudio_cv_support_armv6=yes],
338          [pulseaudio_cv_support_armv6=no])
339       ])
340     AS_IF([test "$pulseaudio_cv_support_armv6" = "yes"], [
341         AC_DEFINE([HAVE_ARMV6], 1, [Have ARMv6 instructions.])
342       ])
343   ;;
344   *)
345   ;;
346 esac
347
348 #### NEON optimisations ####
349 AC_ARG_ENABLE([neon-opt],
350     AS_HELP_STRING([--enable-neon-opt], [Enable NEON optimisations on ARM CPUs that support it]))
351
352 AS_IF([test "x$enable_neon_opt" != "xno"],
353     [save_CFLAGS="$CFLAGS"; CFLAGS="-mfpu=neon $CFLAGS"
354      AC_COMPILE_IFELSE(
355         [AC_LANG_PROGRAM([[#include <arm_neon.h>]], [])],
356         [
357          HAVE_NEON=1
358          NEON_CFLAGS="-mfpu=neon"
359         ],
360         [
361          HAVE_NEON=0
362          NEON_CFLAGS=
363         ])
364      CFLAGS="$save_CFLAGS"
365     ],
366     [HAVE_NEON=0])
367
368 AS_IF([test "x$enable_neon_opt" = "xyes" && test "x$HAVE_NEON" = "x0"],
369       [AC_MSG_ERROR([*** Compiler does not support -mfpu=neon or CFLAGS override -mfpu])])
370
371 AC_SUBST(HAVE_NEON)
372 AC_SUBST(NEON_CFLAGS)
373 AM_CONDITIONAL([HAVE_NEON], [test "x$HAVE_NEON" = x1])
374 AS_IF([test "x$HAVE_NEON" = "x1"], AC_DEFINE([HAVE_NEON], 1, [Have NEON support?]))
375
376
377 #### libtool stuff ####
378
379 LT_PREREQ(2.4)
380 LT_INIT([dlopen win32-dll disable-static])
381
382 dnl As an extra safety device, check for lt_dladvise_init() which is
383 dnl only implemented in libtool 2.x, and refine as we go if we have
384 dnl refined requirements.
385 dnl
386 dnl Check the header files first since the system may have a
387 dnl libltdl.so for runtime, but no headers, and we want to bail out as
388 dnl soon as possible.
389 dnl
390 dnl We don't need any special variable for this though, since the user
391 dnl can give the proper place to find libltdl through the standard
392 dnl variables like LDFLAGS and CPPFLAGS.
393
394 AC_CHECK_HEADER([ltdl.h],
395     [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
396     [LIBLTDL=])
397
398 AS_IF([test "x$LIBLTDL" = "x"],
399     [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.4 or later installed.])])
400 AC_SUBST([LIBLTDL])
401
402
403 ###################################
404 #   Basic environment checks      #
405 ###################################
406
407 #### Checks for header files. ####
408
409 # ISO
410 AC_HEADER_STDC
411
412 # POSIX
413 AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
414     netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
415     sys/mman.h sys/select.h sys/socket.h sys/wait.h \
416     sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
417 AC_CHECK_HEADERS([netinet/ip.h], [], [],
418                  [#include <sys/types.h>
419                   #if HAVE_NETINET_IN_H
420                   # include <netinet/in.h>
421                   #endif
422                   #if HAVE_NETINET_IN_SYSTM_H
423                   # include <netinet/in_systm.h>
424                   #endif
425                  ])
426 AC_CHECK_HEADERS([sys/resource.h], [HAVE_SYS_RESOURCE_H=1], [HAVE_SYS_RESOURCE_H=0])
427 AC_SUBST(HAVE_SYS_RESOURCE_H)
428 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
429 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
430 AC_SUBST(HAVE_AF_UNIX)
431
432 # Linux
433 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
434 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
435
436 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
437
438 # Solaris
439 AC_CHECK_HEADERS_ONCE([sys/filio.h])
440
441 # Windows
442 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
443
444 # NetBSD
445 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
446
447 # Other
448 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
449 AC_CHECK_HEADERS_ONCE([byteswap.h])
450 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
451 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
452 AC_CHECK_HEADERS_ONCE([execinfo.h])
453 AC_CHECK_HEADERS_ONCE([langinfo.h])
454 AC_CHECK_HEADERS_ONCE([regex.h pcreposix.h])
455 AC_CHECK_HEADERS_ONCE([locale.h xlocale.h])
456
457 AM_CONDITIONAL(HAVE_SYS_EVENTFD_H, test "x$ac_cv_header_sys_eventfd_h" = "xyes")
458
459 #### Typdefs, structures, etc. ####
460
461 AC_C_CONST
462 AC_C_BIGENDIAN
463 AC_TYPE_PID_T
464 AC_TYPE_SIZE_T
465 AC_CHECK_TYPES(ssize_t, , AC_DEFINE([ssize_t], [signed long], [Define ssize_t if it is not done by the standard libs.]))
466 AC_TYPE_OFF_T
467
468 AC_TYPE_UID_T
469 AC_CHECK_DECLS(environ)
470
471 AC_CHECK_SIZEOF(void*)
472
473 fast_64bit_operations="no"
474 # This check covers x32-ABI
475 AC_CHECK_DECL([__x86_64__], [fast_64bit_operations="yes"], [], [])
476 if test "x$fast_64bit_operations" = "xno"; then
477     AS_IF([test $ac_cv_sizeof_voidp -ge 8], [fast_64bit_operations="yes"])
478 fi
479
480 AS_IF([test "x$fast_64bit_operations" = "xyes"], AC_DEFINE([HAVE_FAST_64BIT_OPERATIONS], 1, [Have CPU with fast 64-bit operations?]))
481
482 # SIGXCPU
483 AX_CHECK_DEFINE([signal.h], [SIGXCPU], [HAVE_SIGXCPU=1], [HAVE_SIGXCPU=0])
484 AS_IF([test "x$HAVE_SIGXCPU" = "x1"], AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?]))
485 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
486
487 # INADDR_NONE, Solaris lacks this
488 AX_CHECK_DEFINE([netinet/in.h], [INADDR_NONE], [],
489     [AX_CHECK_DEFINE([winsock2.h], [INADDR_NONE], [],
490         [AC_DEFINE([INADDR_NONE],  [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
491
492
493 # _Bool
494 AC_CACHE_CHECK([whether $CC knows _Bool],
495     pulseaudio_cv__Bool,
496     [AC_COMPILE_IFELSE(
497         [AC_LANG_PROGRAM([], [[_Bool b;]])],
498         [pulseaudio_cv__Bool=yes],
499         [pulseaudio_cv__Bool=no])
500     ])
501
502 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.]))
503
504
505 #### Check for libs ####
506
507 # ISO
508 AC_SEARCH_LIBS([pow], [m])
509
510 # POSIX
511 AC_SEARCH_LIBS([sched_setscheduler], [rt])
512 AC_SEARCH_LIBS([dlopen], [dl])
513 AC_SEARCH_LIBS([shm_open], [rt])
514 AC_SEARCH_LIBS([inet_ntop], [nsl])
515 AC_SEARCH_LIBS([timer_create], [rt])
516 AC_SEARCH_LIBS([pthread_setaffinity_np], [pthread])
517 AC_SEARCH_LIBS([pthread_getname_np], [pthread])
518 AC_SEARCH_LIBS([pthread_setname_np], [pthread])
519
520 # BSD
521 AC_SEARCH_LIBS([connect], [socket])
522 AC_SEARCH_LIBS([backtrace], [execinfo ubacktrace])
523
524 # Darwin/OS X
525 if test "x$os_is_darwin" = "x1" ; then
526     AC_MSG_CHECKING([looking for Apple CoreService Framework])
527     AC_CHECK_HEADER([CoreServices/CoreServices.h],
528         [LIBS="$LIBS -framework CoreServices"],
529         [AC_MSG_ERROR([CoreServices.h header file not found])]
530     )
531
532     AC_MSG_RESULT([ok])
533     AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
534     HAVE_BONJOUR=1
535 fi
536
537 AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
538
539 # Windows
540 AC_SEARCH_LIBS([regexec], [pcreposix])
541 # This magic is needed so we do not needlessly add static libs to the win32  build, disabling its ability to make dlls.
542 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
543
544
545 #### Check for functions ####
546
547 # ISO
548 AC_CHECK_FUNCS_ONCE([lrintf strtof])
549
550 # POSIX
551 AC_FUNC_FORK
552 AC_FUNC_GETGROUPS
553 AC_CHECK_FUNCS_ONCE([chmod chown fstat fchown fchmod clock_gettime getaddrinfo getgrgid_r getgrnam_r \
554     getpwnam_r getpwuid_r gettimeofday getuid mlock nanosleep \
555     pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
556     sigaction sleep symlink sysconf uname pthread_setaffinity_np pthread_getname_np pthread_setname_np])
557 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
558 AC_SUBST(HAVE_MKFIFO)
559 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
560
561 # X/OPEN
562 AC_CHECK_FUNCS_ONCE([readlink])
563
564 # SUSv2
565 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
566
567 # SUSv3
568 AC_CHECK_FUNCS_ONCE([strerror_r])
569
570 # BSD
571 AC_CHECK_FUNCS_ONCE([lstat paccept])
572
573 # Non-standard
574 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtod_l pipe2 accept4])
575
576 AC_FUNC_ALLOCA
577
578 AC_CHECK_FUNCS([regexec], [HAVE_REGEX=1], [HAVE_REGEX=0])
579 AM_CONDITIONAL(HAVE_REGEX, [test "x$HAVE_REGEX" = "x1"])
580
581 # Large File-Support (LFS)
582 AC_SYS_LARGEFILE
583 # Check for open64 to know if the current system does have open64() and similar functions
584 AC_CHECK_FUNCS_ONCE([open64])
585
586 AC_SEARCH_LIBS([dladdr], [dl], [HAVE_DLADDR=1], [HAVE_DLADDR=0])
587 AC_DEFINE(HAVE_DLADDR, [1], [Have dladdr?])
588
589 ###################################
590 #      External libraries         #
591 ###################################
592
593 #### [lib]iconv ####
594
595 AM_ICONV
596
597 #### Linux memfd_create(2) SHM support ####
598
599 AC_ARG_ENABLE([memfd],
600     AS_HELP_STRING([--disable-memfd], [Disable Linux memfd shared memory]))
601
602 AS_IF([test "x$enable_memfd" != "xno"],
603     AC_CHECK_DECL(SYS_memfd_create, [HAVE_MEMFD=1], [HAVE_MEMFD=0], [#include <sys/syscall.h>]),
604     [HAVE_MEMFD=0])
605
606 AS_IF([test "x$enable_memfd" = "xyes" && test "x$HAVE_MEMFD" = "x0"],
607     [AC_MSG_ERROR([*** Your Linux kernel does not support memfd shared memory.
608                   *** Use linux v3.17 or higher for such a feature.])])
609
610 AC_SUBST(HAVE_MEMFD)
611 AM_CONDITIONAL([HAVE_MEMFD], [test "x$HAVE_MEMFD" = x1])
612 AS_IF([test "x$HAVE_MEMFD" = "x1"], AC_DEFINE([HAVE_MEMFD], 1, [Have memfd shared memory.]))
613
614 #### X11 (optional) ####
615
616 AC_ARG_ENABLE([x11],
617     AS_HELP_STRING([--disable-x11],[Disable optional X11 support]))
618
619 AS_IF([test "x$enable_x11" != "xno"],
620     [PKG_CHECK_MODULES(X11, [ x11-xcb xcb >= 1.6 ice sm xtst ], HAVE_X11=1, HAVE_X11=0)],
621     HAVE_X11=0)
622
623 AS_IF([test "x$enable_x11" = "xyes" && test "x$HAVE_X11" = "x0"],
624     [AC_MSG_ERROR([*** X11 not found])])
625
626 AC_SUBST(HAVE_X11)
627 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
628 AS_IF([test "x$HAVE_X11" = "x1"], AC_DEFINE([HAVE_X11], 1, [Have X11?]))
629
630 #### Capabilities (optional) ####
631
632 CAP_LIBS=''
633
634 AC_ARG_WITH([caps],
635     AS_HELP_STRING([--without-caps],[Omit support for dropping capabilities.]))
636
637 if test "x${with_caps}" != "xno"; then
638     AC_SEARCH_LIBS([cap_init], [cap], [], [])
639
640     # Only give an error on hosts that we know could support capabilities
641     AC_CHECK_HEADERS([sys/capability.h], [], [
642       if test "${host_has_caps}" = "1"; then
643         AC_MSG_ERROR([*** sys/capability.h not found.  Use --without-caps to disable capabilities support.])
644       fi])
645 fi
646
647 #### Valgrind (optional) ####
648
649 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
650
651 #### check unit tests ####
652
653 AC_ARG_ENABLE([tests],
654     AS_HELP_STRING([--disable-tests],[Disable unit tests]))
655
656 AS_IF([test "x$enable_tests" != "xno"],
657     [PKG_CHECK_MODULES(LIBCHECK, [ check >= 0.9.10 ], HAVE_LIBCHECK=1, HAVE_LIBCHECK=0)],
658     HAVE_LIBCHECK=0)
659
660 AS_IF([test "x$enable_tests" = "xyes" && test "x$HAVE_LIBCHECK" = "x0"],
661     [AC_MSG_ERROR([*** check library not found or too old])])
662
663 AM_CONDITIONAL([HAVE_TESTS], [test "x$HAVE_LIBCHECK" = x1])
664
665 #### Sound file ####
666
667 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
668
669 #### atomic-ops ####
670
671 AC_MSG_CHECKING([whether we need libatomic_ops])
672 if test "x$need_libatomic_ops" = "xyes"; then
673     AC_MSG_RESULT([yes])
674     AC_CHECK_HEADERS([atomic_ops.h],
675         [CFLAGS="$CFLAGS -DAO_REQUIRE_CAS"],
676         [AC_MSG_ERROR([*** libatomic-ops headers not found])])
677
678     # Win32 does not need the lib and breaks horribly if we try to include it
679     AS_IF([test "x$os_is_win32" != "x1"], [LIBS="$LIBS -latomic_ops"])
680 else
681     AC_MSG_RESULT([no])
682 fi
683
684 #### Libsamplerate support (optional) ####
685
686 AC_ARG_ENABLE([samplerate],
687     AS_HELP_STRING([--enable-samplerate],[Enable optional libsamplerate support (DEPRECATED)]))
688
689 AS_IF([test "x$enable_samplerate" = "xyes"],
690     [PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ], HAVE_LIBSAMPLERATE=1, HAVE_LIBSAMPLERATE=0)],
691     HAVE_LIBSAMPLERATE=0)
692
693 AS_IF([test "x$enable_samplerate" = "xyes" && test "x$HAVE_LIBSAMPLERATE" = "x0"],
694     [AC_MSG_ERROR([*** Libsamplerate not found])])
695
696 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
697 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?]))
698
699 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_MSG_WARN([Support for libsamplerate is DEPRECATED]))
700
701 #### Database support ####
702
703 AC_ARG_WITH([database],
704     AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
705
706
707 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xtdb"],
708     [PKG_CHECK_MODULES(TDB, [ tdb ], HAVE_TDB=1, HAVE_TDB=0)],
709     HAVE_TDB=0)
710 AS_IF([test "x$HAVE_TDB" = "x1"], with_database=tdb)
711
712 AS_IF([test "x$with_database" = "xtdb" && test "x$HAVE_TDB" = "x0"],
713     [AC_MSG_ERROR([*** tdb not found])])
714
715
716 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xgdbm"],
717     [
718         HAVE_GDBM=1
719         AC_CHECK_LIB(gdbm, gdbm_open, [], HAVE_GDBM=0)
720         AC_CHECK_HEADERS(gdbm.h, [], HAVE_GDBM=0)
721     ],
722     HAVE_GDBM=0)
723 AS_IF([test "x$HAVE_GDBM" = "x1"],
724     [
725         with_database=gdbm
726         GDBM_CFLAGS=
727         GDBM_LIBS=-lgdbm
728     ])
729
730 AS_IF([test "x$with_database" = "xgdbm" && test "x$HAVE_GDBM" = "x0"],
731     [AC_MSG_ERROR([*** gdbm not found])])
732
733
734 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xsimple"],
735     HAVE_SIMPLEDB=1,
736     HAVE_SIMPLEDB=0)
737 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], with_database=simple)
738
739 AS_IF([test "x$HAVE_TDB" != x1 -a "x$HAVE_GDBM" != x1 -a "x$HAVE_SIMPLEDB" != x1],
740     AC_MSG_ERROR([*** missing database backend]))
741
742
743 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
744 AS_IF([test "x$HAVE_TDB" = "x1"], AC_DEFINE([HAVE_TDB], 1, [Have tdb?]))
745
746 AC_SUBST(GDBM_CFLAGS)
747 AC_SUBST(GDBM_LIBS)
748 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
749 AS_IF([test "x$HAVE_GDBM" = "x1"], AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?]))
750
751 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
752 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?]))
753
754 #### OSS support (optional) ####
755
756 AC_ARG_ENABLE([oss-output],
757     AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]))
758
759 AC_ARG_ENABLE([oss-wrapper],
760     AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]))
761
762 AC_ARG_WITH([pulsedsp-location],
763     AS_HELP_STRING([--with-pulsedsp-location],[Specify location where OSS wrapper will be installed]))
764
765 AS_IF([test "x$enable_oss_output" != "xno" -o "x$enable_oss_wrapper" != "xno"],
766     [AC_CHECK_HEADERS([sys/soundcard.h], HAVE_OSS=1, HAVE_OSS=0)],
767     HAVE_OSS=0)
768
769 AS_IF([test "x$enable_oss_output" = "xyes" -o "x$enable_oss_wrapper" = "xyes" && test "x$HAVE_OSS" = "x0"],
770     [AC_MSG_ERROR([*** OSS support not found])])
771
772 AS_IF([test "x$enable_oss_output" != "xno"],
773     [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_OUTPUT=1, HAVE_OSS_OUTPUT=0)],
774     HAVE_OSS_OUTPUT=0)
775
776 AS_IF([test "x$enable_oss_wrapper" != "xno"],
777     [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_WRAPPER=1, HAVE_OSS_WRAPPER=0)],
778     HAVE_OSS_WRAPPER=0)
779
780 AS_IF([test "x$with_pulsedsp_location" != "x"],
781     [PULSEDSP_LOCATION="$with_pulsedsp_location"],
782     [PULSEDSP_LOCATION="\$(pkglibdir)"])
783
784 AC_SUBST(HAVE_OSS_OUTPUT)
785 AC_SUBST(PULSEDSP_LOCATION)
786 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS_OUTPUT" = "x1"])
787 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS_WRAPPER" = "x1"])
788 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?]))
789 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?]))
790
791 # Some platforms like SunOS (Illumos) may ship without SOUND_PCM_* functionality
792 if test "x$HAVE_OSS" = "x1"; then
793     AC_CHECK_DECLS([SOUND_PCM_READ_RATE], [], [], [[#include <sys/soundcard.h>]])
794     AC_CHECK_DECLS([SOUND_PCM_READ_CHANNELS], [], [], [[#include <sys/soundcard.h>]])
795     AC_CHECK_DECLS([SOUND_PCM_READ_BITS], [], [], [[#include <sys/soundcard.h>]])
796 fi
797
798 #### CoreAudio support (optional) ####
799
800 AC_ARG_ENABLE([coreaudio-output],
801     AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]))
802
803 AS_IF([test "x$enable_coreaudio_output" != "xno"],
804     [AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1, HAVE_COREAUDIO=0)],
805     HAVE_COREAUDIO=0)
806
807 AS_IF([test "x$enable_coreaudio_output" = "xyes" && test "x$HAVE_COREAUDIO" = "x0"],
808     [AC_MSG_ERROR([*** CoreAudio output support not found])])
809
810 AC_SUBST(HAVE_COREAUDIO)
811 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = "x1" && test "x$enable_coreaudio_output" != "xno"])
812
813 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], AC_DEFINE([HAVE_COREAUDIO], 1, [Have CoreAudio?]))
814
815 #### ALSA support (optional) ####
816
817 AC_ARG_ENABLE([alsa],
818     AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]))
819
820 AS_IF([test "x$enable_alsa" != "xno"],
821     [PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], HAVE_ALSA=1, HAVE_ALSA=0)],
822     HAVE_ALSA=0)
823
824 AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
825     [AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])])
826
827 AS_IF([test "x$HAVE_ALSA" = "x1"],
828     [
829         save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $ASOUNDLIB_CFLAGS"
830         AC_CHECK_HEADERS([use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
831         CPPFLAGS="$save_CPPFLAGS"
832     ],
833     HAVE_ALSA_UCM=0)
834
835 AC_SUBST(HAVE_ALSA)
836 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
837 AS_IF([test "x$HAVE_ALSA" = "x1"], AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]))
838 AS_IF([test "x$HAVE_ALSA_UCM" = "x1"], AC_DEFINE([HAVE_ALSA_UCM], 1, [Have ALSA UCM?]))
839
840 #### EsounD support (optional) ####
841
842 AC_ARG_ENABLE([esound],
843     AS_HELP_STRING([--disable-esound],[Disable optional EsounD support]))
844 AM_CONDITIONAL([HAVE_ESOUND], [test "x$enable_esound" != "xno"])
845 AS_IF([test "x$enable_esound" != "xno"], [HAVE_ESOUND=1])
846
847 #### Solaris audio support (optional) ####
848
849 AC_ARG_ENABLE([solaris],
850     AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]))
851
852 AS_IF([test "x$enable_solaris" != "xno"],
853     [AC_CHECK_HEADERS([sys/audio.h], HAVE_SOLARIS=1, HAVE_SOLARIS=0)],
854     HAVE_SOLARIS=0)
855
856 AS_IF([test "x$enable_solaris" = "xyes" && test "x$HAVE_SOLARIS" = "x0"],
857     [AC_MSG_ERROR([*** Solaris audio support not found])])
858
859 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
860 AS_IF([test "x$HAVE_SOLARIS" = "x1"], AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?]))
861
862 #### WaveOut audio support (optional) ####
863
864 AC_ARG_ENABLE([waveout],
865     AS_HELP_STRING([--disable-waveout],[Disable optional WaveOut audio support]))
866
867 AS_IF([test "x$enable_waveout" != "xno"],
868     [AC_CHECK_HEADERS([mmsystem.h], HAVE_WAVEOUT=1, HAVE_WAVEOUT=0, [#include <windows.h>])],
869     HAVE_WAVEOUT=0)
870
871 AS_IF([test "x$enable_waveout" = "xyes" && test "x$HAVE_WAVEOUT" = "x0"],
872     [AC_MSG_ERROR([*** WaveOut audio support not found])])
873
874 AC_SUBST(HAVE_WAVEOUT)
875 AM_CONDITIONAL([HAVE_WAVEOUT], [test "x$HAVE_WAVEOUT" = x1])
876 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], AC_DEFINE([HAVE_WAVEOUT], 1, [Have WaveOut audio?]))
877
878 #### GLib 2 support (optional) ####
879
880 AC_ARG_ENABLE([glib2],
881     AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]))
882
883 AS_IF([test "x$enable_glib2" != "xno"],
884     [PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ], HAVE_GLIB20=1, HAVE_GLIB20=0)],
885     HAVE_GLIB20=0)
886
887 AS_IF([test "x$enable_glib2" = "xyes" && test "x$HAVE_GLIB20" = "x0"],
888     [AC_MSG_ERROR([*** GLib 2 support not found])])
889
890 AC_SUBST(HAVE_GLIB20)
891 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
892 AS_IF([test "x$HAVE_GLIB20" = "x1"], AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?]))
893
894 #### GTK3 support (optional) ####
895
896 AC_ARG_ENABLE([gtk3],
897     AS_HELP_STRING([--disable-gtk3],[Disable optional Gtk+ 3 support]))
898
899 AS_IF([test "x$enable_gtk3" != "xno"],
900     [PKG_CHECK_MODULES(GTK30, [ gtk+-3.0 ], HAVE_GTK30=1, HAVE_GTK30=0)],
901     HAVE_GTK30=0)
902
903 AS_IF([test "x$enable_gtk3" = "xyes" && test "x$HAVE_GTK30" = "x0"],
904     [AC_MSG_ERROR([*** Gtk+ 3 support not found])])
905
906 AM_CONDITIONAL([HAVE_GTK30], [test "x$HAVE_GTK30" = x1])
907 AS_IF([test "x$HAVE_GTK30" = "x1"], AC_DEFINE([HAVE_GTK], 1, [Have GTK?]))
908
909 #### GConf support (optional) ####
910
911 AC_ARG_ENABLE([gconf],
912     AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]))
913
914 AS_IF([test "x$enable_gconf" != "xno"],
915     [PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ], HAVE_GCONF=1, HAVE_GCONF=0)],
916     HAVE_GCONF=0)
917
918 AS_IF([test "x$enable_gconf" = "xyes" && test "x$HAVE_GCONF" = "x0"],
919     [AC_MSG_ERROR([*** GConf support not found])])
920
921 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
922
923 #### Avahi support (optional) ####
924
925 AC_ARG_ENABLE([avahi],
926     AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]))
927
928 AS_IF([test "x$enable_avahi" != "xno"],
929     [PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ], HAVE_AVAHI=1, HAVE_AVAHI=0)],
930     HAVE_AVAHI=0)
931
932 AS_IF([test "x$enable_avahi" = "xyes" && test "x$HAVE_AVAHI" = "x0"],
933     [AC_MSG_ERROR([*** Avahi support not found])])
934
935 AC_SUBST(HAVE_AVAHI)
936 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
937
938 #### JACK (optional) ####
939
940 AC_ARG_ENABLE([jack],
941     AS_HELP_STRING([--disable-jack],[Disable optional JACK support]))
942
943 AS_IF([test "x$enable_jack" != "xno"],
944     [PKG_CHECK_MODULES(JACK, [ jack >= 0.117.0 ], HAVE_JACK=1, HAVE_JACK=0)],
945     HAVE_JACK=0)
946
947 AS_IF([test "x$enable_jack" = "xyes" && test "x$HAVE_JACK" = "x0"],
948     [AC_MSG_ERROR([*** JACK support not found])])
949
950 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
951
952 #### Async DNS support (optional) ####
953
954 AC_ARG_ENABLE([asyncns],
955     AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]))
956
957 AS_IF([test "x$enable_asyncns" != "xno"],
958     [PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ], HAVE_LIBASYNCNS=1, HAVE_LIBASYNCNS=0)],
959     HAVE_LIBASYNCNS=0)
960
961 AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
962     [AC_MSG_ERROR([*** Async DNS support not found])])
963
964 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
965 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
966
967 #### TCP wrappers (optional) ####
968
969 AC_ARG_ENABLE([tcpwrap],
970     AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]))
971
972 AS_IF([test "x$enable_tcpwrap" != "xno"],
973     [
974         ACX_LIBWRAP
975         AS_IF([test "x$LIBWRAP_LIBS" != "x"], HAVE_TCPWRAP=1, HAVE_TCPWRAP=0)
976     ],
977     HAVE_TCPWRAP=0)
978
979 AS_IF([test "x$enable_tcpwrap" = "xyes" && test "x$HAVE_TCPWRAP" = "x0"],
980     [AC_MSG_ERROR([*** TCP wrappers support not found])])
981
982 AC_SUBST(LIBWRAP_LIBS)
983
984 #### LIRC support (optional) ####
985
986 AC_ARG_ENABLE([lirc],
987     AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]))
988
989 LIRC_CFLAGS=
990 LIRC_LIBS=
991
992 AS_IF([test "x$enable_lirc" != "xno"],
993     [
994         HAVE_LIRC=1
995         AC_CHECK_HEADER(lirc/lirc_client.h, [], [HAVE_LIRC=0])
996         AC_CHECK_LIB(lirc_client, lirc_init, [LIRC_LIBS=-llirc_client], [HAVE_LIRC=0])
997     ],
998     HAVE_LIRC=0)
999
1000 AS_IF([test "x$enable_lirc" = "xyes" && test "x$HAVE_LIRC" = "x0"],
1001     [AC_MSG_ERROR([*** LIRC support not found])])
1002
1003 AC_SUBST(LIRC_CFLAGS)
1004 AC_SUBST(LIRC_LIBS)
1005 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1006
1007 #### D-Bus support (optional) ####
1008
1009 AC_ARG_ENABLE([dbus],
1010     AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]))
1011
1012 AS_IF([test "x$enable_dbus" != "xno"],
1013     [PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.4.12 ], HAVE_DBUS=1, HAVE_DBUS=0)],
1014     HAVE_DBUS=0)
1015
1016 AS_IF([test "x$enable_dbus" = "xyes" && test "x$HAVE_DBUS" = "x0"],
1017     [AC_MSG_ERROR([*** D-Bus not available or too old version])])
1018
1019 AS_IF([test "x$HAVE_DBUS" = "x1"],
1020     [
1021         save_CFLAGS="$CFLAGS"; CFLAGS="$CFLAGS $DBUS_CFLAGS"
1022         save_LIBS="$LIBS"; LIBS="$LIBS $DBUS_LIBS"
1023         AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1024         CFLAGS="$save_CFLAGS"
1025         LIBS="$save_LIBS"
1026     ])
1027
1028 AC_SUBST(HAVE_DBUS)
1029 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1030 AS_IF([test "x$HAVE_DBUS" = "x1"], AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.]))
1031
1032 PA_MACHINE_ID="${sysconfdir}/machine-id"
1033 AX_DEFINE_DIR(PA_MACHINE_ID, PA_MACHINE_ID, [D-Bus machine-id file])
1034 PA_MACHINE_ID_FALLBACK="${localstatedir}/lib/dbus/machine-id"
1035 AX_DEFINE_DIR(PA_MACHINE_ID_FALLBACK, PA_MACHINE_ID_FALLBACK,
1036               [Fallback machine-id file])
1037
1038 #### BlueZ support (optional, dependent on D-Bus and SBC) ####
1039
1040 AC_ARG_ENABLE([bluez4],
1041     AS_HELP_STRING([--disable-bluez4],[Disable optional BlueZ 4 support]))
1042 AC_ARG_ENABLE([bluez5],
1043     AS_HELP_STRING([--disable-bluez5],[Disable optional BlueZ 5 support]))
1044
1045 ## SBC ##
1046 AS_IF([test "x$enable_bluez4" != "xno" || test "x$enable_bluez5" != "xno"],
1047     [PKG_CHECK_MODULES(SBC, [ sbc >= 1.0 ], HAVE_SBC=1, HAVE_SBC=0)],
1048     HAVE_SBC=0)
1049
1050 ## BlueZ 4 ##
1051 AS_IF([test "x$enable_bluez4" != "xno" && test "x$HAVE_DBUS" = "x1" && test "x$HAVE_SBC" = "x1"], HAVE_BLUEZ_4=1,
1052       HAVE_BLUEZ_4=0)
1053 AS_IF([test "x$enable_bluez4" = "xyes" && test "x$HAVE_BLUEZ_4" != "x1"],
1054     [AC_MSG_ERROR([*** BLUEZ 4 support not found (requires sbc and D-Bus)])])
1055 AC_SUBST(HAVE_BLUEZ_4)
1056 AM_CONDITIONAL([HAVE_BLUEZ_4], [test "x$HAVE_BLUEZ_4" = x1])
1057
1058 ## BlueZ 5 ##
1059 AS_IF([test "x$enable_bluez5" != "xno" && test "x$HAVE_DBUS" = "x1" && test "x$HAVE_SBC" = "x1"], HAVE_BLUEZ_5=1,
1060       HAVE_BLUEZ_5=0)
1061 AS_IF([test "x$enable_bluez5" = "xyes" && test "x$HAVE_BLUEZ_5" != "x1"],
1062     [AC_MSG_ERROR([*** BLUEZ 5 support not found (requires sbc and D-Bus)])])
1063 AC_SUBST(HAVE_BLUEZ_5)
1064 AM_CONDITIONAL([HAVE_BLUEZ_5], [test "x$HAVE_BLUEZ_5" = x1])
1065
1066 AS_IF([test "x$HAVE_BLUEZ_4" = "x1" || test "x$HAVE_BLUEZ_5" = "x1"], HAVE_BLUEZ=1, HAVE_BLUEZ=0)
1067 AC_SUBST(HAVE_BLUEZ)
1068 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1069
1070 ## Bluetooth Headset profiles backend ##
1071
1072 AC_ARG_ENABLE([bluez5-ofono-headset],
1073     AS_HELP_STRING([--disable-bluez5-ofono-headset],[Disable optional ofono headset backend support (Bluez 5)]))
1074 AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_ofono_headset" != "xno"], HAVE_BLUEZ_5_OFONO_HEADSET=1,
1075       HAVE_BLUEZ_5_OFONO_HEADSET=0)
1076 AC_SUBST(HAVE_BLUEZ_5_OFONO_HEADSET)
1077 AM_CONDITIONAL([HAVE_BLUEZ_5_OFONO_HEADSET], [test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = x1])
1078 AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_OFONO_HEADSET], 1, [Bluez 5 ofono headset backend enabled]))
1079
1080 AC_ARG_ENABLE([bluez5-native-headset],
1081     AS_HELP_STRING([--disable-bluez5-native-headset],[Disable optional native headset backend support (Bluez 5)]))
1082 AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_native_headset" != "xno"],
1083       [PKG_CHECK_MODULES(BLUEZ, [ bluez >= 4.101 ], HAVE_BLUEZ_5_NATIVE_HEADSET=1, HAVE_BLUEZ_5_NATIVE_HEADSET=0)],
1084       HAVE_BLUEZ_5_NATIVE_HEADSET=0)
1085 AS_IF([test "x$enable_bluez5_native_headset" = "xyes" && test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x0"],
1086       [AC_MSG_ERROR([*** BlueZ 5 native headset backend support not available (requires the libbluetooth headers)])])
1087 AC_SUBST(HAVE_BLUEZ_5_NATIVE_HEADSET)
1088 AM_CONDITIONAL([HAVE_BLUEZ_5_NATIVE_HEADSET], [test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = x1])
1089 AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_NATIVE_HEADSET], 1, [Bluez 5 native headset backend enabled]))
1090
1091 #### UDEV support (optional) ####
1092
1093 AC_ARG_ENABLE([udev],
1094     AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]))
1095
1096 AS_IF([test "x$enable_udev" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
1097     [PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], HAVE_UDEV=1, HAVE_UDEV=0)],
1098     HAVE_UDEV=0)
1099
1100 AS_IF([test "x$enable_udev" = "xyes" && test "x$HAVE_UDEV" = "x0"],
1101     [AC_MSG_ERROR([*** UDEV support not found])])
1102
1103 AC_SUBST(HAVE_UDEV)
1104 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1105 AS_IF([test "x$HAVE_UDEV" = "x1"], AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]))
1106
1107 #### HAL compat support (optional, dependent on UDEV) ####
1108
1109 AC_ARG_ENABLE([hal-compat],
1110     AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]))
1111
1112 AS_IF([test "x$enable_hal_compat" != "xno"],
1113     [AS_IF([test "x$HAVE_UDEV" = "x1"], HAVE_HAL_COMPAT=1, HAVE_HAL_COMPAT=0)],
1114     HAVE_HAL_COMPAT=0)
1115
1116 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1117 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.]))
1118
1119 #### IPv6 connection support (optional) ####
1120
1121 AC_ARG_ENABLE([ipv6],
1122     AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]))
1123
1124 AS_IF([test "x$enable_ipv6" != "xno"], [HAVE_IPV6=1], [HAVE_IPV6=0])
1125
1126 AS_IF([test "x$HAVE_IPV6" = "x1"], AC_DEFINE([HAVE_IPV6], 1, [Define this to enable IPv6 connection support]))
1127
1128 #### OpenSSL support (optional) ####
1129
1130 AC_ARG_ENABLE([openssl],
1131     AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]))
1132
1133 AS_IF([test "x$enable_openssl" != "xno"],
1134     [PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ], HAVE_OPENSSL=1, HAVE_OPENSSL=0)],
1135     HAVE_OPENSSL=0)
1136
1137 AS_IF([test "x$enable_openssl" = "xyes" && test "x$HAVE_OPENSSL" = "x0"],
1138     [AC_MSG_ERROR([*** OpenSSL support not found])])
1139
1140 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1141 AS_IF([test "x$HAVE_OPENSSL" = "x1"], AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL]))
1142
1143 #### FFTW (optional) ####
1144
1145 AC_ARG_WITH([fftw],
1146     AS_HELP_STRING([--without-fftw],[Omit FFTW-using modules (equalizer)]))
1147
1148 AS_IF([test "x$with_fftw" != "xno"],
1149     [PKG_CHECK_MODULES(FFTW, [ fftw3f ], HAVE_FFTW=1, HAVE_FFTW=0)],
1150     HAVE_FFTW=0)
1151
1152 AS_IF([test "x$with_fftw" = "xyes" && test "x$HAVE_FFTW" = "x0"],
1153     [AC_MSG_ERROR([*** FFTW support not found])])
1154
1155 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1156
1157 #### speex (optional) ####
1158
1159 AC_ARG_WITH([speex],
1160     AS_HELP_STRING([--without-speex],[Omit speex (resampling, AEC)]))
1161
1162 AS_IF([test "x$with_speex" != "xno"],
1163     [PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ], HAVE_SPEEX=1, HAVE_SPEEX=0)],
1164     HAVE_SPEEX=0)
1165
1166 AS_IF([test "x$with_speex" = "xyes" && test "x$HAVE_SPEEX" = "x0"],
1167     [AC_MSG_ERROR([*** speex support not found])])
1168
1169 AM_CONDITIONAL([HAVE_SPEEX], [test "x$HAVE_SPEEX" = "x1"])
1170 AS_IF([test "x$HAVE_SPEEX" = "x1"], AC_DEFINE([HAVE_SPEEX], 1, [Have speex]))
1171
1172 #### soxr (optional) ####
1173
1174 AC_ARG_WITH([soxr],
1175     AS_HELP_STRING([--without-soxr],[Omit soxr (resampling)]))
1176
1177 AS_IF([test "x$with_soxr" != "xno"],
1178     [PKG_CHECK_MODULES(LIBSOXR, [ soxr >= 0.1.1 ], HAVE_SOXR=1, HAVE_SOXR=0)],
1179     HAVE_SOXR=0)
1180
1181 AS_IF([test "x$with_soxr" = "xyes" && test "x$HAVE_SOXR" = "x0"],
1182     [AC_MSG_ERROR([*** soxr support not found])])
1183
1184 AM_CONDITIONAL([HAVE_SOXR], [test "x$HAVE_SOXR" = "x1"])
1185 AS_IF([test "x$HAVE_SOXR" = "x1"], AC_DEFINE([HAVE_SOXR], 1, [Have soxr]))
1186
1187
1188 #### gcov support (optional) #####
1189
1190 AC_ARG_ENABLE([gcov],
1191     AS_HELP_STRING([--enable-gcov],[Enable optional gcov coverage analysis]))
1192
1193 GCOV_CFLAGS=
1194 GCOV_LIBS=" -lgcov"
1195
1196 AS_IF([test "x$enable_gcov" = "xyes"],
1197     [
1198         HAVE_GCOV=1
1199         GCOV_CFLAGS="$GCOV_CFLAGS -fprofile-arcs -ftest-coverage"
1200         GCOV_LIBS="$GCOV_LIBS -fprofile-arcs"
1201     ],
1202     HAVE_GCOV=0)
1203
1204 AC_SUBST(GCOV_CFLAGS)
1205 AC_SUBST(GCOV_LIBS)
1206 AM_CONDITIONAL([HAVE_GCOV], [test "x$HAVE_GCOV" = x1])
1207
1208 #### ORC (optional) ####
1209
1210 ORC_CHECK([0.4.11])
1211
1212 #### systemd support (optional) ####
1213
1214 AC_ARG_ENABLE([systemd-daemon],
1215     AS_HELP_STRING([--disable-systemd-daemon],[Disable optional systemd daemon (socket activation) support]))
1216
1217 AC_ARG_ENABLE([systemd-login],
1218     AS_HELP_STRING([--disable-systemd-login],[Disable optional systemd login support]))
1219
1220 AC_ARG_ENABLE([systemd-journal],
1221     AS_HELP_STRING([--disable-systemd-journal],[Disable optional systemd journal support]))
1222
1223 # Newer systemd's combine their subcomponent libraries into one
1224 # If it exists, we should use it for the further checks
1225
1226 AS_IF([test "x$enable_systemd_daemon" != "xno" || test "x$enable_systemd_login" != "xno" || test "x$enable_systemd_journal" != "xno"],
1227     [PKG_CHECK_MODULES(SYSTEMD, [ libsystemd ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)],
1228     HAVE_SYSTEMD=0)
1229
1230 AS_IF([test "x$HAVE_SYSTEMD" = "x1"],
1231     [
1232         HAVE_SYSTEMD_DAEMON=1
1233         HAVE_SYSTEMD_LOGIN=1
1234         HAVE_SYSTEMD_JOURNAL=1
1235     ])
1236
1237 AC_ARG_WITH([systemduserunitdir],
1238         AS_HELP_STRING([--with-systemduserunitdir=DIR], [Directory for systemd user service files]),
1239         [], [with_systemduserunitdir=$($PKG_CONFIG --variable=systemduserunitdir systemd)])
1240 if test "x$with_systemduserunitdir" != xno; then
1241         AC_SUBST([systemduserunitdir], [$with_systemduserunitdir])
1242 fi
1243
1244 #### systemd daemon support (optional) ####
1245
1246 AS_IF([test "x$enable_systemd_daemon" != "xno"],
1247     [AS_IF([test "x$HAVE_SYSTEMD_DAEMON" != "x1"], [PKG_CHECK_MODULES(SYSTEMDDAEMON, [ libsystemd-daemon ], HAVE_SYSTEMD_DAEMON=1, HAVE_SYSTEMD_DAEMON=0)])],
1248     HAVE_SYSTEMD_DAEMON=0)
1249
1250 AS_IF([test "x$enable_systemd_daemon" = "xyes" && test "x$HAVE_SYSTEMD_DAEMON" = "x0"],
1251     [AC_MSG_ERROR([*** Needed systemd daemon support not found])])
1252
1253 AC_SUBST(HAVE_SYSTEMD_DAEMON)
1254 AM_CONDITIONAL([HAVE_SYSTEMD_DAEMON], [test "x$HAVE_SYSTEMD_DAEMON" = x1])
1255 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], AC_DEFINE([HAVE_SYSTEMD_DAEMON], 1, [Have SYSTEMDDAEMON?]))
1256
1257 #### systemd login support (optional) ####
1258
1259 AS_IF([test "x$enable_systemd_login" != "xno"],
1260     [AS_IF([test "x$HAVE_SYSTEMD_LOGIN" != "x1"], [PKG_CHECK_MODULES(SYSTEMDLOGIN, [ libsystemd-login ], HAVE_SYSTEMD_LOGIN=1, HAVE_SYSTEMD_LOGIN=0)])],
1261     HAVE_SYSTEMD_LOGIN=0)
1262
1263 AS_IF([test "x$enable_systemd_login" = "xyes" && test "x$HAVE_SYSTEMD_LOGIN" = "x0"],
1264     [AC_MSG_ERROR([*** Needed systemd login support not found])])
1265
1266 AC_SUBST(HAVE_SYSTEMD_LOGIN)
1267 AM_CONDITIONAL([HAVE_SYSTEMD_LOGIN], [test "x$HAVE_SYSTEMD_LOGIN" = x1])
1268 AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], AC_DEFINE([HAVE_SYSTEMD_LOGIN], 1, [Have SYSTEMDLOGIN?]))
1269
1270 #### systemd journal support (optional) ####
1271
1272 AS_IF([test "x$enable_systemd_journal" != "xno"],
1273     [AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" != "x1"], [PKG_CHECK_MODULES(SYSTEMDJOURNAL, [ libsystemd-journal ], HAVE_SYSTEMD_JOURNAL=1, HAVE_SYSTEMD_JOURNAL=0)])],
1274     HAVE_SYSTEMD_JOURNAL=0)
1275
1276 AS_IF([test "x$enable_systemd_journal" = "xyes" && test "x$HAVE_SYSTEMD_JOURNAL" = "x0"],
1277     [AC_MSG_ERROR([*** Needed systemd journal support not found])])
1278
1279 AC_SUBST(HAVE_SYSTEMD_JOURNAL)
1280 AM_CONDITIONAL([HAVE_SYSTEMD_JOURNAL], [test "x$HAVE_SYSTEMD_JOURNAL" = x1])
1281 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], AC_DEFINE([HAVE_SYSTEMD_JOURNAL], 1, [Have SYSTEMDJOURNAL?]))
1282
1283 #### Build and Install man pages ####
1284
1285 AC_ARG_ENABLE([manpages],
1286     AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]))
1287
1288 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" != "xno"])
1289
1290 #### PulseAudio system group & user  #####
1291
1292 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1293 if test -z "$with_system_user" ; then
1294     PA_SYSTEM_USER=pulse
1295 else
1296     PA_SYSTEM_USER=$with_system_user
1297 fi
1298 AC_SUBST(PA_SYSTEM_USER)
1299 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1300
1301 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1302 if test -z "$with_system_group" ; then
1303     PA_SYSTEM_GROUP=pulse
1304 else
1305     PA_SYSTEM_GROUP=$with_system_group
1306 fi
1307 AC_SUBST(PA_SYSTEM_GROUP)
1308 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1309
1310 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)]))
1311 if test -z "$with_access_group" ; then
1312     PA_ACCESS_GROUP=pulse-access
1313 else
1314     PA_ACCESS_GROUP=$with_access_group
1315 fi
1316 AC_SUBST(PA_ACCESS_GROUP)
1317 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1318
1319 AC_ARG_ENABLE([per-user-esound-socket],
1320     AS_HELP_STRING([--disable-per-user-esound-socket],[Use global esound socket directory /tmp/.esd/socket.]))
1321
1322 if test "x$enable_per_user_esound_socket" != "xno"; then
1323     USE_PER_USER_ESOUND_SOCKET=1
1324     AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1325 else
1326     USE_PER_USER_ESOUND_SOCKET=0
1327 fi
1328
1329 #### PulseAudio system runtime dir ####
1330
1331 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1332 AX_DEFINE_DIR(PA_SYSTEM_RUNTIME_PATH, PA_SYSTEM_RUNTIME_PATH, [System runtime dir])
1333 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1334 AX_DEFINE_DIR(PA_SYSTEM_CONFIG_PATH, PA_SYSTEM_CONFIG_PATH, [System config dir])
1335 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1336 AX_DEFINE_DIR(PA_SYSTEM_STATE_PATH, PA_SYSTEM_STATE_PATH, [System state dir])
1337
1338 PA_BINARY=${bindir}/pulseaudio${EXEEXT}
1339 AX_DEFINE_DIR(PA_BINARY, PA_BINARY, [Location of pulseaudio binary])
1340
1341 PACTL_BINARY=${bindir}/pactl${EXEEXT}
1342 AX_DEFINE_DIR(PACTL_BINARY, PACTL_BINARY, [Location of pactl binary])
1343
1344 AC_SUBST(PA_SOEXT, [.so])
1345 AC_DEFINE(PA_SOEXT, [".so"], [Shared object extension])
1346
1347 AC_SUBST(pulseconfdir, ["${sysconfdir}/pulse"])
1348 AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR, pulseconfdir, [Location of configuration files])
1349
1350 #### Mac OSX specific stuff #####
1351
1352 AC_ARG_ENABLE(mac-universal,
1353     AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries]),
1354     enable_mac_universal=$enableval, enable_mac_universal="no")
1355
1356 AC_ARG_WITH(mac-version-min,
1357     AS_HELP_STRING([--with-mac-version-min=<version>], [Defines the earliest version of MacOS X that the executables will run on.]),
1358     mac_version_min=$withval, mac_version_min="10.5")
1359
1360 AC_ARG_WITH(mac-sysroot,
1361     AS_HELP_STRING([--with-mac-sysroot=<path>], [SDK basedir to use as the logical root directory for headers and libraries.]),
1362     mac_sysroot=$withval)
1363
1364 if test "x$os_is_darwin" = "x1" ; then
1365     LDFLAGS="$LDFLAGS -mmacosx-version-min=$mac_version_min"
1366     CFLAGS="$CFLAGS -mmacosx-version-min=$mac_version_min"
1367
1368     if test "x$mac_sysroot" != "x" ; then
1369         LDFLAGS="$LDFLAGS -isysroot $mac_sysroot"
1370         CFLAGS="$CFLAGS -isysroot $mac_sysroot"
1371     fi
1372
1373     if test "x$enable_mac_universal" = "xyes" ; then
1374         mac_arches="-arch i386 -arch x86_64"
1375         LDFLAGS="$LDFLAGS $mac_arches"
1376         CFLAGS="$CFLAGS $mac_arches"
1377     fi
1378 fi
1379
1380 AC_ARG_ENABLE([webrtc-aec],
1381     AS_HELP_STRING([--enable-webrtc-aec], [Enable the optional WebRTC-based echo canceller]))
1382
1383 AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "$HAVE_CXX11" = "0"],
1384     [AC_MSG_ERROR([*** webrtc-audio-processing needs C++11 support])])
1385
1386 AS_IF([test "x$enable_webrtc_aec" != "xno"],
1387     [PKG_CHECK_MODULES(WEBRTC, [ webrtc-audio-processing >= 0.2 ], [HAVE_WEBRTC=1], [HAVE_WEBRTC=0])],
1388     [HAVE_WEBRTC=0])
1389
1390 AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "x$HAVE_WEBRTC" = "x0"],
1391     [AC_MSG_ERROR([*** webrtc-audio-processing library not found])])
1392
1393 AM_CONDITIONAL([HAVE_WEBRTC], [test "x$HAVE_WEBRTC" = "x1"])
1394
1395 AC_ARG_ENABLE([adrian-aec],
1396     AS_HELP_STRING([--enable-adrian-aec], [Enable Adrian's optional echo canceller]))
1397 AS_IF([test "x$enable_adrian_aec" != "xno"],
1398     [HAVE_ADRIAN_EC=1])
1399 AM_CONDITIONAL([HAVE_ADRIAN_EC], [test "x$HAVE_ADRIAN_EC" = "x1"])
1400
1401
1402 #### Thread support ####
1403
1404 AX_TLS
1405 AS_IF([test "$ac_cv_tls" = "__thread"],
1406     AC_DEFINE([SUPPORT_TLS___THREAD], 1, [Define this if the compiler supports __thread for Thread-Local Storage]))
1407
1408 # Win32 build breaks with win32 pthread installed
1409 AS_IF([test "x$os_is_win32" != "x1"],
1410   [AX_PTHREAD])
1411
1412 AS_IF([test "x$ax_pthread_ok" = "xyes"],
1413     AC_DEFINE([_POSIX_PTHREAD_SEMANTICS], 1, [Needed on Solaris]))
1414
1415
1416
1417 ###################################
1418 #            Output               #
1419 ###################################
1420
1421 AC_DEFINE_UNQUOTED(PA_CFLAGS, "$CFLAGS", [The CFLAGS used during compilation])
1422
1423 # Check whether to build tests by default (as compile-test) or not
1424 AC_ARG_ENABLE([default-build-tests],
1425     AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
1426 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
1427
1428 AC_ARG_ENABLE([legacy-database-entry-format],
1429         AS_HELP_STRING([--disable-legacy-database-entry-format], [Try to load legacy (< 1.0) database files (card, device and volume restore).]))
1430 if test "x$enable_legacy_database_entry_format" != "xno" ; then
1431         AC_DEFINE(ENABLE_LEGACY_DATABASE_ENTRY_FORMAT, [1], [Legacy database entry format])
1432 fi
1433
1434 AC_ARG_ENABLE([static-bins],
1435     AS_HELP_STRING([--enable-static-bins],[Statically link executables.]))
1436 AM_CONDITIONAL([STATIC_BINS], [test "x$enable_static_bins" = "xyes"])
1437
1438 AC_ARG_WITH(
1439         [preopen-mods],
1440         AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1441         [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1442 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1443 if test "x$PREOPEN_MODS" != "xall" ; then
1444     tmpLIBS=""
1445     for mod in $PREOPEN_MODS; do
1446         tmpLIBS="$tmpLIBS module-$mod.la"
1447     done
1448     PREOPEN_MODS="$tmpLIBS"
1449     AC_SUBST(PREOPEN_MODS)
1450 fi
1451
1452 AC_ARG_WITH(
1453         [module-dir],
1454         AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]),
1455         [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"])
1456
1457 AC_SUBST(modlibexecdir)
1458 AX_DEFINE_DIR(PA_DLSEARCHPATH, modlibexecdir, [Modules dir])
1459
1460 AC_ARG_WITH(
1461         [udev-rules-dir],
1462         AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1463         [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1464
1465 AC_SUBST(udevrulesdir)
1466
1467 AC_ARG_WITH([bash-completion-dir],
1468         AS_HELP_STRING([--with-bash-completion-dir=DIR], [Directory for bash completion files]),
1469         [bashcompletiondir=$withval], [bashcompletiondir=$($PKG_CONFIG --variable=completionsdir bash-completion)])
1470 if test "x$bashcompletionsdir" = "x"; then
1471         bashcompletiondir="${datadir}/bash-completion/completions"
1472 fi
1473
1474 AC_SUBST(bashcompletiondir)
1475
1476 AC_ARG_WITH(
1477         [zsh-completion-dir],
1478         AS_HELP_STRING([--with-zsh-completion-dir], [Zsh completions directory (defaults to ${datadir}/zsh/site-functions)]),
1479         [zshcompletiondir=$withval], [zshcompletiondir="${datadir}/zsh/site-functions"])
1480
1481 AC_SUBST(zshcompletiondir)
1482
1483 AC_ARG_ENABLE([force-preopen],
1484     AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]))
1485
1486 if test "x$enable_force_preopen" = "xyes"; then
1487     FORCE_PREOPEN=yes
1488 else
1489     FORCE_PREOPEN=no
1490 fi
1491
1492 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1493
1494 AC_CONFIG_FILES([
1495 Makefile
1496 src/Makefile
1497 man/Makefile
1498 libpulse.pc
1499 libpulse-simple.pc
1500 libpulse-mainloop-glib.pc
1501 doxygen/Makefile
1502 doxygen/doxygen.conf
1503 src/pulse/version.h
1504 po/Makefile.in
1505 man/pulseaudio.1.xml
1506 man/esdcompat.1.xml
1507 man/pax11publish.1.xml
1508 man/pacat.1.xml
1509 man/pacmd.1.xml
1510 man/pactl.1.xml
1511 man/pasuspender.1.xml
1512 man/padsp.1.xml
1513 man/pulse-daemon.conf.5.xml
1514 man/pulse-client.conf.5.xml
1515 man/default.pa.5.xml
1516 man/pulse-cli-syntax.5.xml
1517 man/start-pulseaudio-x11.1.xml
1518 ])
1519
1520 AC_CONFIG_FILES([src/esdcompat:src/daemon/esdcompat.in], [chmod +x src/esdcompat])
1521 AC_CONFIG_FILES([src/start-pulseaudio-x11:src/daemon/start-pulseaudio-x11.in], [chmod +x src/start-pulseaudio-x11])
1522 AC_CONFIG_FILES([src/client.conf:src/pulse/client.conf.in])
1523 AC_CONFIG_FILES([src/daemon.conf:src/daemon/daemon.conf.in],
1524     [m4 src/daemon.conf > src/daemon.conf.gen && mv src/daemon.conf.gen src/daemon.conf])
1525 AC_CONFIG_FILES([src/default.pa:src/daemon/default.pa.in],
1526     [m4 src/default.pa > src/default.pa.gen && mv src/default.pa.gen src/default.pa])
1527 AC_CONFIG_FILES([src/system.pa:src/daemon/system.pa.in],
1528     [m4 src/system.pa > src/system.pa.gen && mv src/system.pa.gen src/system.pa])
1529 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"],
1530     [
1531         AC_CONFIG_FILES([src/pulseaudio.service:src/daemon/systemd/user/pulseaudio.service.in])
1532     ])
1533
1534 # CMake related ProjectConfig files
1535 PA_LIBDIR="$libdir"
1536 AX_DEFINE_DIR(PA_LIBDIR, PA_LIBDIR, [PulseAudio library dir])
1537 PA_INCDIR="$includedir"
1538 AX_DEFINE_DIR(PA_INCDIR, PA_INCDIR, [PulseAudio include dir])
1539
1540 AC_CONFIG_FILES([PulseAudioConfig.cmake:PulseAudioConfig.cmake.in],
1541     [m4 PulseAudioConfig.cmake > PulseAudioConfig.cmake.gen && mv PulseAudioConfig.cmake.gen PulseAudioConfig.cmake])
1542 AC_CONFIG_FILES([PulseAudioConfigVersion.cmake])
1543
1544 AC_OUTPUT
1545
1546 # ==========================================================================
1547
1548 AS_IF([test "x$HAVE_MEMFD" = "x1"], ENABLE_MEMFD=yes, ENABLE_MEMFD=no)
1549 AS_IF([test "x$HAVE_X11" = "x1"], ENABLE_X11=yes, ENABLE_X11=no)
1550 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], ENABLE_OSS_OUTPUT=yes, ENABLE_OSS_OUTPUT=no)
1551 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no)
1552 AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no)
1553 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no)
1554 AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no)
1555 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no)
1556 AS_IF([test "x$HAVE_GLIB20" = "x1"], ENABLE_GLIB20=yes, ENABLE_GLIB20=no)
1557 AS_IF([test "x$HAVE_GTK30" = "x1"], ENABLE_GTK30=yes, ENABLE_GTK30=no)
1558 AS_IF([test "x$HAVE_GCONF" = "x1"], ENABLE_GCONF=yes, ENABLE_GCONF=no)
1559 AS_IF([test "x$HAVE_AVAHI" = "x1"], ENABLE_AVAHI=yes, ENABLE_AVAHI=no)
1560 AS_IF([test "x$HAVE_JACK" = "x1"], ENABLE_JACK=yes, ENABLE_JACK=no)
1561 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], ENABLE_LIBASYNCNS=yes, ENABLE_LIBASYNCNS=no)
1562 AS_IF([test "x$HAVE_LIRC" = "x1"], ENABLE_LIRC=yes, ENABLE_LIRC=no)
1563 AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
1564 AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
1565 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], ENABLE_SYSTEMD_DAEMON=yes, ENABLE_SYSTEMD_DAEMON=no)
1566 AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], ENABLE_SYSTEMD_LOGIN=yes, ENABLE_SYSTEMD_LOGIN=no)
1567 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], ENABLE_SYSTEMD_JOURNAL=yes, ENABLE_SYSTEMD_JOURNAL=no)
1568 AS_IF([test "x$HAVE_BLUEZ_4" = "x1"], ENABLE_BLUEZ_4=yes, ENABLE_BLUEZ_4=no)
1569 AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], ENABLE_BLUEZ_5=yes, ENABLE_BLUEZ_5=no)
1570 AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], ENABLE_BLUEZ_5_OFONO_HEADSET=yes, ENABLE_BLUEZ_5_OFONO_HEADSET=no)
1571 AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], ENABLE_BLUEZ_5_NATIVE_HEADSET=yes, ENABLE_BLUEZ_5_NATIVE_HEADSET=no)
1572 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
1573 AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
1574 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE="yes (DEPRECATED)", ENABLE_LIBSAMPLERATE=no)
1575 AS_IF([test "x$HAVE_IPV6" = "x1"], ENABLE_IPV6=yes, ENABLE_IPV6=no)
1576 AS_IF([test "x$HAVE_OPENSSL" = "x1"], ENABLE_OPENSSL=yes, ENABLE_OPENSSL=no)
1577 AS_IF([test "x$HAVE_FFTW" = "x1"], ENABLE_FFTW=yes, ENABLE_FFTW=no)
1578 AS_IF([test "x$HAVE_ORC" = "xyes"], ENABLE_ORC=yes, ENABLE_ORC=no)
1579 AS_IF([test "x$HAVE_ADRIAN_EC" = "x1"], ENABLE_ADRIAN_EC=yes, ENABLE_ADRIAN_EC=no)
1580 AS_IF([test "x$HAVE_SPEEX" = "x1"], ENABLE_SPEEX=yes, ENABLE_SPEEX=no)
1581 AS_IF([test "x$HAVE_SOXR" = "x1"], ENABLE_SOXR=yes, ENABLE_SOXR=no)
1582 AS_IF([test "x$HAVE_WEBRTC" = "x1"], ENABLE_WEBRTC=yes, ENABLE_WEBRTC=no)
1583 AS_IF([test "x$HAVE_TDB" = "x1"], ENABLE_TDB=yes, ENABLE_TDB=no)
1584 AS_IF([test "x$HAVE_GDBM" = "x1"], ENABLE_GDBM=yes, ENABLE_GDBM=no)
1585 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no)
1586 AS_IF([test "x$HAVE_ESOUND" = "x1"], ENABLE_ESOUND=yes, ENABLE_ESOUND=no)
1587 AS_IF([test "x$HAVE_ESOUND" = "x1" -a "x$USE_PER_USER_ESOUND_SOCKET" = "x1"], ENABLE_PER_USER_ESOUND_SOCKET=yes, ENABLE_PER_USER_ESOUND_SOCKET=no)
1588 AS_IF([test "x$HAVE_GCOV" = "x1"], ENABLE_GCOV=yes, ENABLE_GCOV=no)
1589 AS_IF([test "x$HAVE_LIBCHECK" = "x1"], ENABLE_TESTS=yes, ENABLE_TESTS=no)
1590 AS_IF([test "x$enable_legacy_database_entry_format" != "xno"], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no)
1591
1592 echo "
1593  ---{ $PACKAGE_NAME $VERSION }---
1594
1595     prefix:                        ${prefix}
1596     sysconfdir:                    ${sysconfdir}
1597     localstatedir:                 ${localstatedir}
1598     modlibexecdir:                 ${modlibexecdir}
1599     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1600     System State Path:             ${PA_SYSTEM_STATE_PATH}
1601     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1602     Zsh completions directory:     ${zshcompletiondir}
1603     Bash completions directory:    ${bashcompletiondir}
1604     Compiler:                      ${CC}
1605     CFLAGS:                        ${CFLAGS}
1606     CPPFLAGS:                      ${CPPFLAGS}
1607     LIBS:                          ${LIBS}
1608
1609     Enable memfd shared memory:    ${ENABLE_MEMFD}
1610     Enable X11:                    ${ENABLE_X11}
1611     Enable OSS Output:             ${ENABLE_OSS_OUTPUT}
1612     Enable OSS Wrapper:            ${ENABLE_OSS_WRAPPER}
1613     Enable EsounD:                 ${ENABLE_ESOUND}
1614     Enable Alsa:                   ${ENABLE_ALSA}
1615     Enable CoreAudio:              ${ENABLE_COREAUDIO}
1616     Enable Solaris:                ${ENABLE_SOLARIS}
1617     Enable WaveOut:                ${ENABLE_WAVEOUT}
1618     Enable GLib 2.0:               ${ENABLE_GLIB20}
1619     Enable Gtk+ 3.0:               ${ENABLE_GTK30}
1620     Enable GConf:                  ${ENABLE_GCONF}
1621     Enable Avahi:                  ${ENABLE_AVAHI}
1622     Enable Jack:                   ${ENABLE_JACK}
1623     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1624     Enable LIRC:                   ${ENABLE_LIRC}
1625     Enable D-Bus:                  ${ENABLE_DBUS}
1626       Enable BlueZ 4:              ${ENABLE_BLUEZ_4}
1627       Enable BlueZ 5:              ${ENABLE_BLUEZ_5}
1628         Enable ofono headsets:     ${ENABLE_BLUEZ_5_OFONO_HEADSET}
1629         Enable native headsets:    ${ENABLE_BLUEZ_5_NATIVE_HEADSET}
1630     Enable udev:                   ${ENABLE_UDEV}
1631       Enable HAL->udev compat:     ${ENABLE_HAL_COMPAT}
1632     Enable systemd
1633       Daemon (Socket Activation):  ${ENABLE_SYSTEMD_DAEMON}
1634       Login (Session Tracking):    ${ENABLE_SYSTEMD_LOGIN}
1635       Journal (Logging):           ${ENABLE_SYSTEMD_JOURNAL}
1636     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1637     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1638     Enable IPv6:                   ${ENABLE_IPV6}
1639     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1640     Enable fftw:                   ${ENABLE_FFTW}
1641     Enable orc:                    ${ENABLE_ORC}
1642     Enable Adrian echo canceller:  ${ENABLE_ADRIAN_EC}
1643     Enable speex (resampler, AEC): ${ENABLE_SPEEX}
1644     Enable soxr (resampler):       ${ENABLE_SOXR}
1645     Enable WebRTC echo canceller:  ${ENABLE_WEBRTC}
1646     Enable gcov coverage:          ${ENABLE_GCOV}
1647     Enable unit tests:             ${ENABLE_TESTS}
1648     Database
1649       tdb:                         ${ENABLE_TDB}
1650       gdbm:                        ${ENABLE_GDBM}
1651       simple database:             ${ENABLE_SIMPLEDB}
1652
1653     System User:                   ${PA_SYSTEM_USER}
1654     System Group:                  ${PA_SYSTEM_GROUP}
1655     Access Group:                  ${PA_ACCESS_GROUP}
1656     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1657     Force preopen:                 ${FORCE_PREOPEN}
1658     Preopened modules:             ${PREOPEN_MODS}
1659
1660     Legacy Database Entry Support: ${ENABLE_LEGACY_DATABASE_ENTRY_FORMAT}
1661 "
1662
1663 if test "${ENABLE_SPEEX}" = "no" && test "${ENABLE_WEBRTC}" = "no" && test "${ENABLE_ADRIAN_EC}" = "no" ; then
1664 AC_MSG_ERROR([At least one echo canceller implementation must be available.])
1665 fi
1666
1667 if test "${ENABLE_DBUS}" = "no" && test "x$os_is_win32" != "x1" ; then
1668    echo "
1669 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1670 You do not have D-Bus support enabled. It is strongly recommended
1671 that you enable D-Bus support if your platform supports it.
1672 Many parts of PulseAudio use D-Bus, from ConsoleKit interaction
1673 to the Device Reservation Protocol to speak to JACK, Bluetooth
1674 support and even a native control protocol for communicating and
1675 controling the PulseAudio daemon itself.
1676 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1677 "
1678 fi
1679
1680 if test "${ENABLE_UDEV}" = "no" && test "x$os_is_win32" != "x1" ; then
1681    echo "
1682 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1683 You do not have udev support enabled. It is strongly recommended
1684 that you enable udev support if your platform supports it as it is
1685 the primary method used to detect hardware audio devices (on Linux)
1686 and is thus a critical part of PulseAudio on that platform.
1687 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1688 "
1689 fi
1690
1691 if test "${ENABLE_SPEEX}" = "no" && test "x$os_is_win32" != "x1" ; then
1692    echo "
1693 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1694 You do not have speex support enabled. It is strongly recommended
1695 that you enable speex support if your platform supports it as it is
1696 the primary method used for audio resampling and is thus a critical
1697 part of PulseAudio on that platform.
1698 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1699 "
1700 fi