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