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