2 # Process this file with autoconf to produce a configure script.
4 # This file is part of PulseAudio.
6 # Copyright 2004-2008 Lennart Poettering
7 # Copyright 2006-2007 Pierre Ossman <ossman@cendio.se> for Cendio AB
9 # PulseAudio is free software; you can redistribute it and/or modify it
10 # under the terms of the GNU Lesser General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
14 # PulseAudio is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 # General Public License for more details.
19 # You should have received a copy of the GNU Lesser General Public License
20 # along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
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])
31 AM_MAINTAINER_MODE([enable])
33 AS_IF([! test -n "$VERSION"], [
34 AC_MSG_ERROR([git-version-gen failed])
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`)
40 AC_SUBST(PA_MAJOR, pa_major)
41 AC_SUBST(PA_MINOR, pa_minor)
42 AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)
44 AC_SUBST(PA_API_VERSION, 12)
45 AC_SUBST(PA_PROTOCOL_VERSION, 35)
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, [23:0:23])
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])
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])
59 AC_CHECK_PROG([STOW], [stow], [yes], [no])
61 AS_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}"
66 AM_SILENT_RULES([yes])
69 #### Checks for programs. ####
83 # Only required if you want the WebRTC canceller -- no runtime dep on
86 AC_PROG_GCC_TRADITIONAL
87 AC_USE_SYSTEM_EXTENSIONS
88 AX_CXX_COMPILE_STDCXX_11([ext],[optional])
92 AC_CHECK_PROGS([M4], gm4 m4, no)
93 AS_IF([test "x$M4" = "xno"], AC_MSG_ERROR([m4 missing]))
101 AM_GNU_GETTEXT_VERSION([0.19.8])
102 AM_GNU_GETTEXT([external])
104 GETTEXT_PACKAGE=pulseaudio
105 AC_SUBST([GETTEXT_PACKAGE])
106 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
109 #### Determine host OS ####
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
119 AC_MSG_CHECKING([host operating system])
122 AC_MSG_RESULT([linux])
127 AC_MSG_RESULT([freebsd])
131 AC_MSG_RESULT([netbsd])
134 AC_MSG_RESULT([darwin])
136 AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.])
139 AC_MSG_RESULT([win32])
141 AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
144 AC_MSG_RESULT([unknown])
148 AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
149 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
150 AC_SUBST([OS_IS_WIN32], [$os_is_win32])
152 # Platform specific hacks
155 AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
158 AC_DEFINE([WIN32_LEAN_AND_MEAN], 1, [Needed to avoid including unnecessary headers on Windows])
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])
167 #### Compiler flags ####
169 AX_CHECK_COMPILE_FLAG([-std=gnu11],
171 [AC_MSG_ERROR([*** Compiler does not support -std=gnu11])],
174 AX_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])
178 AS_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])
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.
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"])
193 #### Linker flags ####
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.
198 AX_CHECK_LINK_FLAG(["-Wl,-version-script=${srcdir}/src/map-file"],
199 [VERSIONING_LDFLAGS='-Wl,-version-script=$(abs_top_srcdir)/src/map-file'])
200 AC_SUBST([VERSIONING_LDFLAGS])
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.
204 AX_APPEND_LINK_FLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS])
205 AC_SUBST([IMMEDIATE_LDFLAGS])
206 AS_CASE([$IMMEDIATE_LDFLAGS],[*-z,now*],
207 [AC_DEFINE([HAVE_BIND_NOW],[1],
208 [Define to 1 if immediate binding is available])])
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.
213 AX_APPEND_LINK_FLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS], [-shared])
214 AC_SUBST([NODELETE_LDFLAGS])
216 # Check for the proper way to build libraries that have no undefined symbols
218 # FreeBSD (et al.) does not complete linking for shared objects when pthreads
219 # are requested, as different implementations are present.
220 *-freebsd* | *-openbsd*) ;;
222 for possible_flag in "-Wl,--no-undefined" "-Wl,-z,defs"; do
223 AX_CHECK_LINK_FLAG([$possible_flag], [NOUNDEFINED_LDFLAGS="$possible_flag"; break])
227 AC_SUBST([NOUNDEFINED_LDFLAGS])
230 #### Atomic operations ####
232 # Native atomic operation support
233 AC_ARG_ENABLE([atomic-arm-linux-helpers],
234 AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]))
236 AC_ARG_ENABLE([atomic-arm-memory-barrier],
237 AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]))
239 if test "x$enable_atomic_arm_memory_barrier" = "xyes"; then
240 AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers])
243 # If everything else fails use libatomic_ops
244 need_libatomic_ops=yes
246 AC_CACHE_CHECK([whether $CC knows __atomic_store_n()],
247 pulseaudio_cv_atomic_store_n, [
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])
255 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
256 pulseaudio_cv_sync_bool_compare_and_swap, [
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])
263 if 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.])
268 need_libatomic_ops=no
270 # HW specific atomic ops stuff
271 AC_MSG_CHECKING([architecture for native atomic operations])
275 need_libatomic_ops=no
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
285 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
286 need_libatomic_ops=no
289 AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
290 pulseaudio_cv_support_arm_atomic_ops, [
292 [AC_LANG_PROGRAM([], [[
295 asm volatile ("ldrex %0, [%1]\n"
297 "strexeq %0, %3, [%1]\n"
299 : "r" (&a), "Ir" (o), "r" (n)
301 return (a==1 ? 0 : -1);
303 [pulseaudio_cv_support_arm_atomic_ops=yes],
304 [pulseaudio_cv_support_arm_atomic_ops=no])
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
314 need_libatomic_ops=no
317 AC_MSG_RESULT([unknown])
322 # If we're on ARM, check for the ARMV6 instructions we need */
325 AC_CACHE_CHECK([support for required armv6 instructions],
326 pulseaudio_cv_support_armv6,
329 [[volatile int a = -60000, b = 0xaaaabbbb, c = 0xccccdddd;
330 asm volatile ("ldr r0, %2 \n"
335 "pkhbt r1, r3, r2, LSL #8 \n"
338 : "m" (a), "m" (b), "m" (c)
339 : "r0", "r1", "r2", "r3", "cc");
340 return (a == -128 && b == 0xaabbdddd) ? 0 : -1;
342 [pulseaudio_cv_support_armv6=yes],
343 [pulseaudio_cv_support_armv6=no])
345 AS_IF([test "$pulseaudio_cv_support_armv6" = "yes"], [
346 AC_DEFINE([HAVE_ARMV6], 1, [Have ARMv6 instructions.])
353 #### NEON optimisations ####
354 AC_ARG_ENABLE([neon-opt],
355 AS_HELP_STRING([--enable-neon-opt], [Enable NEON optimisations on ARM CPUs that support it]))
357 AS_IF([test "x$enable_neon_opt" != "xno"],
358 [save_CFLAGS="$CFLAGS"; CFLAGS="-mfpu=neon $CFLAGS"
360 [AC_LANG_PROGRAM([[#include <arm_neon.h>]], [])],
363 NEON_CFLAGS="-mfpu=neon"
369 CFLAGS="$save_CFLAGS"
373 AS_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])])
377 AC_SUBST(NEON_CFLAGS)
378 AM_CONDITIONAL([HAVE_NEON], [test "x$HAVE_NEON" = x1])
379 AS_IF([test "x$HAVE_NEON" = "x1"], AC_DEFINE([HAVE_NEON], 1, [Have NEON support?]))
382 #### libtool stuff ####
385 LT_INIT([dlopen win32-dll disable-static])
387 dnl As an extra safety device, check for lt_dladvise_init() which is
388 dnl only implemented in libtool 2.x, and refine as we go if we have
389 dnl refined requirements.
391 dnl Check the header files first since the system may have a
392 dnl libltdl.so for runtime, but no headers, and we want to bail out as
393 dnl soon as possible.
395 dnl We don't need any special variable for this though, since the user
396 dnl can give the proper place to find libltdl through the standard
397 dnl variables like LDFLAGS and CPPFLAGS.
399 AC_CHECK_HEADER([ltdl.h],
400 [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
403 AS_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.])])
408 ###################################
409 # Basic environment checks #
410 ###################################
412 #### Checks for header files. ####
418 AC_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])
422 AC_CHECK_HEADERS([netinet/ip.h], [], [],
423 [#include <sys/types.h>
424 #if HAVE_NETINET_IN_H
425 # include <netinet/in.h>
427 #if HAVE_NETINET_IN_SYSTM_H
428 # include <netinet/in_systm.h>
431 AC_CHECK_HEADERS([sys/resource.h], [HAVE_SYS_RESOURCE_H=1], [HAVE_SYS_RESOURCE_H=0])
432 AC_SUBST(HAVE_SYS_RESOURCE_H)
433 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
434 # In principle we would test for <afunix.h>, but that doesn't ship (yet) with the
436 AC_CHECK_HEADERS([winsock2.h], [HAVE_AF_UNIX=1], [])
437 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
438 AC_SUBST(HAVE_AF_UNIX)
441 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
442 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
444 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
447 AC_CHECK_HEADERS_ONCE([sys/conf.h sys/filio.h])
450 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
453 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
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])
465 AM_CONDITIONAL(HAVE_SYS_EVENTFD_H, test "x$ac_cv_header_sys_eventfd_h" = "xyes")
467 #### Typdefs, structures, etc. ####
473 AC_CHECK_TYPES(ssize_t, , AC_DEFINE([ssize_t], [signed long], [Define ssize_t if it is not done by the standard libs.]))
477 AC_CHECK_DECLS(environ)
479 AC_CHECK_SIZEOF(void*)
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"])
488 AS_IF([test "x$fast_64bit_operations" = "xyes"], AC_DEFINE([HAVE_FAST_64BIT_OPERATIONS], 1, [Have CPU with fast 64-bit operations?]))
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")
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>])])])
502 AC_CACHE_CHECK([whether $CC knows _Bool],
505 [AC_LANG_PROGRAM([], [[_Bool b;]])],
506 [pulseaudio_cv__Bool=yes],
507 [pulseaudio_cv__Bool=no])
510 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.]))
513 #### Check for libs ####
516 AC_SEARCH_LIBS([pow], [m])
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])
529 AC_SEARCH_LIBS([connect], [socket])
530 AC_SEARCH_LIBS([backtrace], [execinfo ubacktrace])
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])]
541 AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
545 AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
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])])
553 #### Check for functions ####
556 AC_CHECK_FUNCS_ONCE([lrintf strtof])
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")
572 AC_CHECK_FUNCS_ONCE([readlink])
575 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
578 AC_CHECK_FUNCS_ONCE([strerror_r])
581 AC_CHECK_FUNCS_ONCE([lstat paccept])
584 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtod_l pipe2 accept4])
588 AC_CHECK_FUNCS([regexec], [HAVE_REGEX=1], [HAVE_REGEX=0])
589 AM_CONDITIONAL(HAVE_REGEX, [test "x$HAVE_REGEX" = "x1"])
591 # Large File-Support (LFS)
593 # Check for open64 to know if the current system does have open64() and similar functions
594 AC_CHECK_FUNCS_ONCE([open64])
596 AC_SEARCH_LIBS([dladdr], [dl], [HAVE_DLADDR=1], [HAVE_DLADDR=0])
597 AC_DEFINE(HAVE_DLADDR, [1], [Have dladdr?])
599 ###################################
600 # External libraries #
601 ###################################
607 #### Linux memfd_create(2) SHM support ####
609 AC_ARG_ENABLE([memfd],
610 AS_HELP_STRING([--disable-memfd], [Disable Linux memfd shared memory]))
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>]),
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.])])
620 AS_IF([test "x$HAVE_MEMFD" = "x1"],
621 AC_CHECK_FUNCS([memfd_create]))
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.]))
627 #### X11 (optional) ####
630 AS_HELP_STRING([--disable-x11],[Disable optional X11 support]))
632 AS_IF([test "x$enable_x11" != "xno"],
634 PKG_CHECK_MODULES(X11, [ x11-xcb xcb >= 1.6 ice sm xtst ], HAVE_X11=1, HAVE_X11=0)
635 AC_CHECK_LIB(X11, XSetIOErrorExitHandler, [HAVE_XSETIOERROREXITHANDLER=yes], [HAVE_XSETIOERROREXITHANDLER=no])
639 HAVE_XSETIOERROREXITHANDLER=no
642 AS_IF([test "x$enable_x11" = "xyes" && test "x$HAVE_X11" = "x0"],
643 [AC_MSG_ERROR([*** X11 not found])])
646 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
647 AS_IF([test "x$HAVE_X11" = "x1"], AC_DEFINE([HAVE_X11], 1, [Have X11?]))
648 AS_IF([test "x$HAVE_XSETIOERROREXITHANDLER" = "xyes"], AC_DEFINE([HAVE_XSETIOERROREXITHANDLER], 1, [Have XSetIOErrorExitHandler function.]))
650 #### Capabilities (optional) ####
655 AS_HELP_STRING([--without-caps],[Omit support for dropping capabilities.]))
657 if test "x${with_caps}" != "xno"; then
658 AC_SEARCH_LIBS([cap_init], [cap], [], [])
660 # Only give an error on hosts that we know could support capabilities
661 AC_CHECK_HEADERS([sys/capability.h], [], [
662 if test "${host_has_caps}" = "1"; then
663 AC_MSG_ERROR([*** sys/capability.h not found. Use --without-caps to disable capabilities support.])
667 #### Valgrind (optional) ####
669 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
671 #### check unit tests ####
673 AC_ARG_ENABLE([tests],
674 AS_HELP_STRING([--disable-tests],[Disable unit tests]))
676 AS_IF([test "x$enable_tests" != "xno"],
677 [PKG_CHECK_MODULES(LIBCHECK, [ check >= 0.9.10 ], HAVE_LIBCHECK=1, HAVE_LIBCHECK=0)],
680 AS_IF([test "x$enable_tests" = "xyes" && test "x$HAVE_LIBCHECK" = "x0"],
681 [AC_MSG_ERROR([*** check library not found or too old])])
683 AM_CONDITIONAL([HAVE_TESTS], [test "x$HAVE_LIBCHECK" = x1])
687 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
691 AC_MSG_CHECKING([whether we need libatomic_ops])
692 if test "x$need_libatomic_ops" = "xyes"; then
694 AC_CHECK_HEADERS([atomic_ops.h],
695 [CFLAGS="$CFLAGS -DAO_REQUIRE_CAS"],
696 [AC_MSG_ERROR([*** libatomic-ops headers not found])])
698 # Win32 does not need the lib and breaks horribly if we try to include it
699 AS_IF([test "x$os_is_win32" != "x1"], [LIBS="$LIBS -latomic_ops"])
704 #### Libsamplerate support (optional) ####
706 AC_ARG_ENABLE([samplerate],
707 AS_HELP_STRING([--enable-samplerate],[Enable optional libsamplerate support (DEPRECATED)]))
709 AS_IF([test "x$enable_samplerate" = "xyes"],
710 [PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ], HAVE_LIBSAMPLERATE=1, HAVE_LIBSAMPLERATE=0)],
711 HAVE_LIBSAMPLERATE=0)
713 AS_IF([test "x$enable_samplerate" = "xyes" && test "x$HAVE_LIBSAMPLERATE" = "x0"],
714 [AC_MSG_ERROR([*** Libsamplerate not found])])
716 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
717 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?]))
719 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_MSG_WARN([Support for libsamplerate is DEPRECATED]))
721 #### Database support ####
723 AC_ARG_WITH([database],
724 AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
727 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xtdb"],
728 [PKG_CHECK_MODULES(TDB, [ tdb ], HAVE_TDB=1, HAVE_TDB=0)],
730 AS_IF([test "x$HAVE_TDB" = "x1"], with_database=tdb)
732 AS_IF([test "x$with_database" = "xtdb" && test "x$HAVE_TDB" = "x0"],
733 [AC_MSG_ERROR([*** tdb not found])])
736 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xgdbm"],
739 AC_CHECK_LIB(gdbm, gdbm_open, [], HAVE_GDBM=0)
740 AC_CHECK_HEADERS(gdbm.h, [], HAVE_GDBM=0)
743 AS_IF([test "x$HAVE_GDBM" = "x1"],
750 AS_IF([test "x$with_database" = "xgdbm" && test "x$HAVE_GDBM" = "x0"],
751 [AC_MSG_ERROR([*** gdbm not found])])
754 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xsimple"],
757 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], with_database=simple)
759 AS_IF([test "x$HAVE_TDB" != x1 -a "x$HAVE_GDBM" != x1 -a "x$HAVE_SIMPLEDB" != x1],
760 AC_MSG_ERROR([*** missing database backend]))
763 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
764 AS_IF([test "x$HAVE_TDB" = "x1"], AC_DEFINE([HAVE_TDB], 1, [Have tdb?]))
766 AC_SUBST(GDBM_CFLAGS)
768 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
769 AS_IF([test "x$HAVE_GDBM" = "x1"], AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?]))
771 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
772 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?]))
774 #### OSS support (optional) ####
776 AC_ARG_ENABLE([oss-output],
777 AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]))
779 AC_ARG_ENABLE([oss-wrapper],
780 AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]))
782 AC_ARG_WITH([pulsedsp-location],
783 AS_HELP_STRING([--with-pulsedsp-location],[Specify location where OSS wrapper will be installed]))
785 AS_IF([test "x$enable_oss_output" != "xno" -o "x$enable_oss_wrapper" != "xno"],
786 [AC_CHECK_HEADERS([sys/soundcard.h], HAVE_OSS=1, HAVE_OSS=0)],
789 AS_IF([test "x$enable_oss_output" = "xyes" -o "x$enable_oss_wrapper" = "xyes" && test "x$HAVE_OSS" = "x0"],
790 [AC_MSG_ERROR([*** OSS support not found])])
792 AS_IF([test "x$enable_oss_output" != "xno"],
793 [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_OUTPUT=1, HAVE_OSS_OUTPUT=0)],
796 AS_IF([test "x$enable_oss_wrapper" != "xno"],
797 [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_WRAPPER=1, HAVE_OSS_WRAPPER=0)],
800 AS_IF([test "x$with_pulsedsp_location" != "x"],
801 [PULSEDSP_LOCATION="$with_pulsedsp_location"],
802 [PULSEDSP_LOCATION="\$(pkglibdir)"])
804 AC_SUBST(HAVE_OSS_OUTPUT)
805 AC_SUBST(PULSEDSP_LOCATION)
806 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS_OUTPUT" = "x1"])
807 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS_WRAPPER" = "x1"])
808 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?]))
809 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?]))
811 # Some platforms like SunOS (Illumos) may ship without SOUND_PCM_* functionality
812 if test "x$HAVE_OSS" = "x1"; then
813 AC_CHECK_DECLS([SOUND_PCM_READ_RATE], [], [], [[#include <sys/soundcard.h>]])
814 AC_CHECK_DECLS([SOUND_PCM_READ_CHANNELS], [], [], [[#include <sys/soundcard.h>]])
815 AC_CHECK_DECLS([SOUND_PCM_READ_BITS], [], [], [[#include <sys/soundcard.h>]])
818 #### CoreAudio support (optional) ####
820 AC_ARG_ENABLE([coreaudio-output],
821 AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]))
823 AS_IF([test "x$enable_coreaudio_output" != "xno"],
824 [AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1, HAVE_COREAUDIO=0)],
827 AS_IF([test "x$enable_coreaudio_output" = "xyes" && test "x$HAVE_COREAUDIO" = "x0"],
828 [AC_MSG_ERROR([*** CoreAudio output support not found])])
830 AC_SUBST(HAVE_COREAUDIO)
831 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = "x1" && test "x$enable_coreaudio_output" != "xno"])
833 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], AC_DEFINE([HAVE_COREAUDIO], 1, [Have CoreAudio?]))
835 #### ALSA support (optional) ####
837 AC_ARG_ENABLE([alsa],
838 AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]))
840 AS_IF([test "x$enable_alsa" != "xno"],
841 [PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], HAVE_ALSA=1, HAVE_ALSA=0)],
844 AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
845 [AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])])
847 AS_IF([test "x$HAVE_ALSA" = "x1"],
849 save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $ASOUNDLIB_CFLAGS"
850 AC_CHECK_HEADERS([alsa/use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
851 CPPFLAGS="$save_CPPFLAGS"
856 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
857 AS_IF([test "x$HAVE_ALSA" = "x1"], AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]))
858 AS_IF([test "x$HAVE_ALSA_UCM" = "x1"], AC_DEFINE([HAVE_ALSA_UCM], 1, [Have ALSA UCM?]))
860 #### EsounD support (optional) ####
862 AC_ARG_ENABLE([esound],
863 AS_HELP_STRING([--disable-esound],[Disable optional EsounD support]))
864 AM_CONDITIONAL([HAVE_ESOUND], [test "x$enable_esound" != "xno"])
865 AS_IF([test "x$enable_esound" != "xno"], [HAVE_ESOUND=1])
867 #### Solaris audio support (optional) ####
869 AC_ARG_ENABLE([solaris],
870 AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]))
872 AS_IF([test "x$enable_solaris" != "xno"],
873 [AC_CHECK_HEADERS([sys/audio.h], HAVE_SOLARIS=1, HAVE_SOLARIS=0)],
876 AS_IF([test "x$enable_solaris" = "xyes" && test "x$HAVE_SOLARIS" = "x0"],
877 [AC_MSG_ERROR([*** Solaris audio support not found])])
879 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
880 AS_IF([test "x$HAVE_SOLARIS" = "x1"], AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?]))
882 #### WaveOut audio support (optional) ####
884 AC_ARG_ENABLE([waveout],
885 AS_HELP_STRING([--disable-waveout],[Disable optional WaveOut audio support]))
887 AS_IF([test "x$enable_waveout" != "xno"],
888 [AC_CHECK_HEADERS([mmsystem.h], HAVE_WAVEOUT=1, HAVE_WAVEOUT=0, [#include <windows.h>])],
891 AS_IF([test "x$enable_waveout" = "xyes" && test "x$HAVE_WAVEOUT" = "x0"],
892 [AC_MSG_ERROR([*** WaveOut audio support not found])])
894 AC_SUBST(HAVE_WAVEOUT)
895 AM_CONDITIONAL([HAVE_WAVEOUT], [test "x$HAVE_WAVEOUT" = x1])
896 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], AC_DEFINE([HAVE_WAVEOUT], 1, [Have WaveOut audio?]))
898 #### GLib 2 support (optional) ####
900 AC_ARG_ENABLE([glib2],
901 AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]))
903 AS_IF([test "x$enable_glib2" != "xno"],
904 [PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.28.0 ], HAVE_GLIB20=1, HAVE_GLIB20=0)],
907 AS_IF([test "x$enable_glib2" = "xyes" && test "x$HAVE_GLIB20" = "x0"],
908 [AC_MSG_ERROR([*** GLib 2 support not found])])
910 AC_SUBST(HAVE_GLIB20)
911 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
912 AS_IF([test "x$HAVE_GLIB20" = "x1"], AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?]))
914 #### GTK3 support (optional) ####
916 AC_ARG_ENABLE([gtk3],
917 AS_HELP_STRING([--disable-gtk3],[Disable optional Gtk+ 3 support]))
919 AS_IF([test "x$enable_gtk3" != "xno"],
920 [PKG_CHECK_MODULES(GTK30, [ gtk+-3.0 ], HAVE_GTK30=1, HAVE_GTK30=0)],
923 AS_IF([test "x$enable_gtk3" = "xyes" && test "x$HAVE_GTK30" = "x0"],
924 [AC_MSG_ERROR([*** Gtk+ 3 support not found])])
926 AM_CONDITIONAL([HAVE_GTK30], [test "x$HAVE_GTK30" = x1])
927 AS_IF([test "x$HAVE_GTK30" = "x1"], AC_DEFINE([HAVE_GTK], 1, [Have GTK?]))
929 #### GSettings and GConf support (optional) ####
931 AC_ARG_ENABLE([gsettings],
932 AS_HELP_STRING([--disable-gsettings],[Disable optional GSettings support]))
934 AC_ARG_ENABLE([gconf],
935 AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]))
937 AS_IF([test "x$enable_gsettings" != "xno"],
938 [PKG_CHECK_MODULES(GSETTINGS, [ gio-2.0 >= 2.26.0 ], [HAVE_GSETTINGS=1], [HAVE_GSETTINGS=0])],
941 AS_IF([test "x$enable_gsettings" = "xyes" && test "x$HAVE_GSETTINGS" = "x0"],
942 [AC_MSG_ERROR([*** GSettings support not found])])
944 AS_IF([test "x$enable_gconf" != "xno"],
945 [PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ], HAVE_GCONF=1, HAVE_GCONF=0)],
948 AS_IF([test "x$enable_gconf" = "xyes" && test "x$HAVE_GCONF" = "x0"],
949 [AC_MSG_ERROR([*** GConf support not found])])
951 # Enable only one of GSettings and GConf, unless both were explicitly
952 # requested. If neither was explicitly requested and both are available, prefer
953 # GSettings. This is done, because if module-gsettings and module-gconf are
954 # both loaded, they can cause conflicting or at least confusing configuration.
955 # Distributions may want to enable both modules when building PulseAudio, if
956 # they ensure that both modules are never installed at the same time.
957 AS_IF([test "x$HAVE_GSETTINGS" = "x1" && test "x$enable_gconf" != "xyes"],
959 AS_IF([test "x$HAVE_GCONF" = "x1" && test "x$enable_gsettings" != "xyes"],
962 AM_CONDITIONAL([HAVE_GSETTINGS], [test "x$HAVE_GSETTINGS" = "x1"])
963 AC_SUBST([HAVE_GSETTINGS])
964 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = "x1"])
965 AC_SUBST([HAVE_GCONF])
967 if test "x$HAVE_GSETTINGS" = "x1" ; then
971 #### Avahi support (optional) ####
973 AC_ARG_ENABLE([avahi],
974 AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]))
976 AS_IF([test "x$enable_avahi" != "xno"],
977 [PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ], HAVE_AVAHI=1, HAVE_AVAHI=0)],
980 AS_IF([test "x$enable_avahi" = "xyes" && test "x$HAVE_AVAHI" = "x0"],
981 [AC_MSG_ERROR([*** Avahi support not found])])
984 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
986 #### JACK (optional) ####
988 AC_ARG_ENABLE([jack],
989 AS_HELP_STRING([--disable-jack],[Disable optional JACK support]))
991 AS_IF([test "x$enable_jack" != "xno"],
992 [PKG_CHECK_MODULES(JACK, [ jack >= 0.117.0 ], HAVE_JACK=1, HAVE_JACK=0)],
995 AS_IF([test "x$enable_jack" = "xyes" && test "x$HAVE_JACK" = "x0"],
996 [AC_MSG_ERROR([*** JACK support not found])])
998 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
1000 #### Async DNS support (optional) ####
1002 AC_ARG_ENABLE([asyncns],
1003 AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]))
1005 AS_IF([test "x$enable_asyncns" != "xno"],
1006 [PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ], HAVE_LIBASYNCNS=1, HAVE_LIBASYNCNS=0)],
1009 AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
1010 [AC_MSG_ERROR([*** Async DNS support not found])])
1012 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1013 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
1015 #### Running from build tree (optional) ####
1017 AC_ARG_ENABLE([running-from-build-tree],
1018 AS_HELP_STRING([--disable-running-from-build-tree],[Disable running from build tree]))
1020 AS_IF([test "x$enable_running_from_build_tree" != "xno"],
1021 AC_DEFINE([HAVE_RUNNING_FROM_BUILD_TREE], 1, [Have running from build tree]))
1023 AC_SUBST(HAVE_RUNNING_FROM_BUILD_TREE)
1025 #### TCP wrappers (optional) ####
1027 AC_ARG_ENABLE([tcpwrap],
1028 AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]))
1030 AS_IF([test "x$enable_tcpwrap" != "xno"],
1033 AS_IF([test "x$LIBWRAP_LIBS" != "x"], HAVE_TCPWRAP=1, HAVE_TCPWRAP=0)
1037 AS_IF([test "x$enable_tcpwrap" = "xyes" && test "x$HAVE_TCPWRAP" = "x0"],
1038 [AC_MSG_ERROR([*** TCP wrappers support not found])])
1040 AC_SUBST(LIBWRAP_LIBS)
1042 #### LIRC support (optional) ####
1044 AC_ARG_ENABLE([lirc],
1045 AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]))
1050 AS_IF([test "x$enable_lirc" != "xno"],
1053 AC_CHECK_HEADER(lirc/lirc_client.h, [], [HAVE_LIRC=0])
1054 AC_CHECK_LIB(lirc_client, lirc_init, [LIRC_LIBS=-llirc_client], [HAVE_LIRC=0])
1058 AS_IF([test "x$enable_lirc" = "xyes" && test "x$HAVE_LIRC" = "x0"],
1059 [AC_MSG_ERROR([*** LIRC support not found])])
1061 AC_SUBST(LIRC_CFLAGS)
1063 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1065 #### D-Bus support (optional) ####
1067 AC_ARG_ENABLE([dbus],
1068 AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]))
1070 AS_IF([test "x$enable_dbus" != "xno"],
1071 [PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.4.12 ], HAVE_DBUS=1, HAVE_DBUS=0)],
1074 AS_IF([test "x$enable_dbus" = "xyes" && test "x$HAVE_DBUS" = "x0"],
1075 [AC_MSG_ERROR([*** D-Bus not available or too old version])])
1078 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1079 AS_IF([test "x$HAVE_DBUS" = "x1"], AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.]))
1081 PA_MACHINE_ID="${sysconfdir}/machine-id"
1082 AX_DEFINE_DIR(PA_MACHINE_ID, PA_MACHINE_ID, [D-Bus machine-id file])
1083 PA_MACHINE_ID_FALLBACK="${localstatedir}/lib/dbus/machine-id"
1084 AX_DEFINE_DIR(PA_MACHINE_ID_FALLBACK, PA_MACHINE_ID_FALLBACK,
1085 [Fallback machine-id file])
1087 #### BlueZ support (optional, dependent on D-Bus and SBC) ####
1089 AC_ARG_ENABLE([bluez5],
1090 AS_HELP_STRING([--disable-bluez5],[Disable optional BlueZ 5 support]))
1093 AS_IF([test "x$enable_bluez5" != "xno"],
1094 [PKG_CHECK_MODULES(SBC, [ sbc >= 1.0 ], HAVE_SBC=1, HAVE_SBC=0)],
1098 AS_IF([test "x$enable_bluez5" != "xno" && test "x$HAVE_DBUS" = "x1" && test "x$HAVE_SBC" = "x1"], HAVE_BLUEZ_5=1,
1100 AS_IF([test "x$enable_bluez5" = "xyes" && test "x$HAVE_BLUEZ_5" != "x1"],
1101 [AC_MSG_ERROR([*** BLUEZ 5 support not found (requires sbc and D-Bus)])])
1102 AC_SUBST(HAVE_BLUEZ_5)
1103 AM_CONDITIONAL([HAVE_BLUEZ_5], [test "x$HAVE_BLUEZ_5" = x1])
1105 AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], HAVE_BLUEZ=1, HAVE_BLUEZ=0)
1106 AC_SUBST(HAVE_BLUEZ)
1107 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1109 ## Bluetooth Headset profiles backend ##
1111 AC_ARG_ENABLE([bluez5-ofono-headset],
1112 AS_HELP_STRING([--disable-bluez5-ofono-headset],[Disable optional ofono headset backend support (Bluez 5)]))
1113 AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_ofono_headset" != "xno"], HAVE_BLUEZ_5_OFONO_HEADSET=1,
1114 HAVE_BLUEZ_5_OFONO_HEADSET=0)
1115 AC_SUBST(HAVE_BLUEZ_5_OFONO_HEADSET)
1116 AM_CONDITIONAL([HAVE_BLUEZ_5_OFONO_HEADSET], [test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = x1])
1117 AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_OFONO_HEADSET], 1, [Bluez 5 ofono headset backend enabled]))
1119 AC_ARG_ENABLE([bluez5-native-headset],
1120 AS_HELP_STRING([--disable-bluez5-native-headset],[Disable optional native headset backend support (Bluez 5)]))
1121 AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_native_headset" != "xno"],
1122 [PKG_CHECK_MODULES(BLUEZ, [ bluez >= 4.101 ], HAVE_BLUEZ_5_NATIVE_HEADSET=1, HAVE_BLUEZ_5_NATIVE_HEADSET=0)],
1123 HAVE_BLUEZ_5_NATIVE_HEADSET=0)
1124 AS_IF([test "x$enable_bluez5_native_headset" = "xyes" && test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x0"],
1125 [AC_MSG_ERROR([*** BlueZ 5 native headset backend support not available (requires the libbluetooth headers)])])
1126 AC_SUBST(HAVE_BLUEZ_5_NATIVE_HEADSET)
1127 AM_CONDITIONAL([HAVE_BLUEZ_5_NATIVE_HEADSET], [test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = x1])
1128 AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_NATIVE_HEADSET], 1, [Bluez 5 native headset backend enabled]))
1130 #### UDEV support (optional) ####
1132 AC_ARG_ENABLE([udev],
1133 AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]))
1135 AS_IF([test "x$enable_udev" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
1136 [PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], HAVE_UDEV=1, HAVE_UDEV=0)],
1139 AS_IF([test "x$enable_udev" = "xyes" && test "x$HAVE_UDEV" = "x0"],
1140 [AC_MSG_ERROR([*** UDEV support not found])])
1143 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1144 AS_IF([test "x$HAVE_UDEV" = "x1"], AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]))
1146 #### HAL compat support (optional, dependent on UDEV) ####
1148 AC_ARG_ENABLE([hal-compat],
1149 AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]))
1151 AS_IF([test "x$enable_hal_compat" != "xno"],
1152 [AS_IF([test "x$HAVE_UDEV" = "x1"], HAVE_HAL_COMPAT=1, HAVE_HAL_COMPAT=0)],
1155 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1156 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.]))
1158 #### IPv6 connection support (optional) ####
1160 AC_ARG_ENABLE([ipv6],
1161 AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]))
1163 AS_IF([test "x$enable_ipv6" != "xno"], [HAVE_IPV6=1], [HAVE_IPV6=0])
1165 AS_IF([test "x$HAVE_IPV6" = "x1"], AC_DEFINE([HAVE_IPV6], 1, [Define this to enable IPv6 connection support]))
1167 #### OpenSSL support (optional) ####
1169 AC_ARG_ENABLE([openssl],
1170 AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]))
1172 AS_IF([test "x$enable_openssl" != "xno"],
1173 [PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ], HAVE_OPENSSL=1, HAVE_OPENSSL=0)],
1176 AS_IF([test "x$enable_openssl" = "xyes" && test "x$HAVE_OPENSSL" = "x0"],
1177 [AC_MSG_ERROR([*** OpenSSL support not found])])
1179 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1180 AS_IF([test "x$HAVE_OPENSSL" = "x1"], AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL]))
1182 #### FFTW (optional) ####
1185 AS_HELP_STRING([--without-fftw],[Omit FFTW-using modules (equalizer)]))
1187 AS_IF([test "x$with_fftw" != "xno"],
1188 [PKG_CHECK_MODULES(FFTW, [ fftw3f ], HAVE_FFTW=1, HAVE_FFTW=0)],
1191 AS_IF([test "x$with_fftw" = "xyes" && test "x$HAVE_FFTW" = "x0"],
1192 [AC_MSG_ERROR([*** FFTW support not found])])
1194 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1196 #### speex (optional) ####
1198 AC_ARG_WITH([speex],
1199 AS_HELP_STRING([--without-speex],[Omit speex (resampling, AEC)]))
1201 AS_IF([test "x$with_speex" != "xno"],
1202 [PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ], HAVE_SPEEX=1, HAVE_SPEEX=0)],
1205 AS_IF([test "x$with_speex" = "xyes" && test "x$HAVE_SPEEX" = "x0"],
1206 [AC_MSG_ERROR([*** speex support not found])])
1208 AM_CONDITIONAL([HAVE_SPEEX], [test "x$HAVE_SPEEX" = "x1"])
1209 AS_IF([test "x$HAVE_SPEEX" = "x1"], AC_DEFINE([HAVE_SPEEX], 1, [Have speex]))
1211 #### soxr (optional) ####
1214 AS_HELP_STRING([--without-soxr],[Omit soxr (resampling)]))
1216 AS_IF([test "x$with_soxr" != "xno"],
1217 [PKG_CHECK_MODULES(LIBSOXR, [ soxr >= 0.1.1 ], HAVE_SOXR=1, HAVE_SOXR=0)],
1220 AS_IF([test "x$with_soxr" = "xyes" && test "x$HAVE_SOXR" = "x0"],
1221 [AC_MSG_ERROR([*** soxr support not found])])
1223 AM_CONDITIONAL([HAVE_SOXR], [test "x$HAVE_SOXR" = "x1"])
1224 AS_IF([test "x$HAVE_SOXR" = "x1"], AC_DEFINE([HAVE_SOXR], 1, [Have soxr]))
1227 #### gcov support (optional) #####
1229 AC_ARG_ENABLE([gcov],
1230 AS_HELP_STRING([--enable-gcov],[Enable optional gcov coverage analysis]))
1235 AS_IF([test "x$enable_gcov" = "xyes"],
1238 GCOV_CFLAGS="$GCOV_CFLAGS -fprofile-arcs -ftest-coverage"
1239 GCOV_LIBS="$GCOV_LIBS -fprofile-arcs"
1243 AC_SUBST(GCOV_CFLAGS)
1245 AM_CONDITIONAL([HAVE_GCOV], [test "x$HAVE_GCOV" = x1])
1247 #### ORC (optional) ####
1251 #### systemd support (optional) ####
1253 AC_ARG_ENABLE([systemd-daemon],
1254 AS_HELP_STRING([--disable-systemd-daemon],[Disable optional systemd daemon (socket activation) support]))
1256 AC_ARG_ENABLE([systemd-login],
1257 AS_HELP_STRING([--disable-systemd-login],[Disable optional systemd login support]))
1259 AC_ARG_ENABLE([systemd-journal],
1260 AS_HELP_STRING([--disable-systemd-journal],[Disable optional systemd journal support]))
1262 # Newer systemd's combine their subcomponent libraries into one
1263 # If it exists, we should use it for the further checks
1265 AS_IF([test "x$enable_systemd_daemon" != "xno" || test "x$enable_systemd_login" != "xno" || test "x$enable_systemd_journal" != "xno"],
1266 [PKG_CHECK_MODULES(SYSTEMD, [ libsystemd ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)],
1269 AS_IF([test "x$HAVE_SYSTEMD" = "x1"],
1271 HAVE_SYSTEMD_DAEMON=1
1272 HAVE_SYSTEMD_LOGIN=1
1273 HAVE_SYSTEMD_JOURNAL=1
1276 AC_ARG_WITH([systemduserunitdir],
1277 AS_HELP_STRING([--with-systemduserunitdir=DIR], [Directory for systemd user service files]),
1278 [], [with_systemduserunitdir=$($PKG_CONFIG --variable=systemduserunitdir systemd)])
1279 if test "x$with_systemduserunitdir" != xno; then
1280 AC_SUBST([systemduserunitdir], [$with_systemduserunitdir])
1283 #### systemd daemon support (optional) ####
1285 AS_IF([test "x$enable_systemd_daemon" != "xno"],
1286 [AS_IF([test "x$HAVE_SYSTEMD_DAEMON" != "x1"], [PKG_CHECK_MODULES(SYSTEMDDAEMON, [ libsystemd-daemon ], HAVE_SYSTEMD_DAEMON=1, HAVE_SYSTEMD_DAEMON=0)])],
1287 HAVE_SYSTEMD_DAEMON=0)
1289 AS_IF([test "x$enable_systemd_daemon" = "xyes" && test "x$HAVE_SYSTEMD_DAEMON" = "x0"],
1290 [AC_MSG_ERROR([*** Needed systemd daemon support not found])])
1292 AC_SUBST(HAVE_SYSTEMD_DAEMON)
1293 AM_CONDITIONAL([HAVE_SYSTEMD_DAEMON], [test "x$HAVE_SYSTEMD_DAEMON" = x1])
1294 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], AC_DEFINE([HAVE_SYSTEMD_DAEMON], 1, [Have SYSTEMDDAEMON?]))
1296 #### systemd login support (optional) ####
1298 AS_IF([test "x$enable_systemd_login" != "xno"],
1299 [AS_IF([test "x$HAVE_SYSTEMD_LOGIN" != "x1"], [PKG_CHECK_MODULES(SYSTEMDLOGIN, [ libsystemd-login ], HAVE_SYSTEMD_LOGIN=1, HAVE_SYSTEMD_LOGIN=0)])],
1300 HAVE_SYSTEMD_LOGIN=0)
1302 AS_IF([test "x$enable_systemd_login" = "xyes" && test "x$HAVE_SYSTEMD_LOGIN" = "x0"],
1303 [AC_MSG_ERROR([*** Needed systemd login support not found])])
1305 AC_SUBST(HAVE_SYSTEMD_LOGIN)
1306 AM_CONDITIONAL([HAVE_SYSTEMD_LOGIN], [test "x$HAVE_SYSTEMD_LOGIN" = x1])
1307 AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], AC_DEFINE([HAVE_SYSTEMD_LOGIN], 1, [Have SYSTEMDLOGIN?]))
1309 #### systemd journal support (optional) ####
1311 AS_IF([test "x$enable_systemd_journal" != "xno"],
1312 [AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" != "x1"], [PKG_CHECK_MODULES(SYSTEMDJOURNAL, [ libsystemd-journal ], HAVE_SYSTEMD_JOURNAL=1, HAVE_SYSTEMD_JOURNAL=0)])],
1313 HAVE_SYSTEMD_JOURNAL=0)
1315 AS_IF([test "x$enable_systemd_journal" = "xyes" && test "x$HAVE_SYSTEMD_JOURNAL" = "x0"],
1316 [AC_MSG_ERROR([*** Needed systemd journal support not found])])
1318 AC_SUBST(HAVE_SYSTEMD_JOURNAL)
1319 AM_CONDITIONAL([HAVE_SYSTEMD_JOURNAL], [test "x$HAVE_SYSTEMD_JOURNAL" = x1])
1320 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], AC_DEFINE([HAVE_SYSTEMD_JOURNAL], 1, [Have SYSTEMDJOURNAL?]))
1322 #### GStreamer-based RTP support (optional) ####
1324 AC_ARG_ENABLE([gstreamer],
1325 AS_HELP_STRING([--enable-gstreamer],[Enable optional GStreamer-based RTP support]))
1327 AS_IF([test "x$enable_gstreamer" = "xyes"],
1328 [PKG_CHECK_MODULES(GSTREAMER, [ gstreamer-1.0 >= 1.14 gstreamer-app-1.0 gstreamer-rtp-1.0 gio-2.0 ],
1329 HAVE_GSTREAMER=1, HAVE_GSTREAMER=0)],
1332 AS_IF([test "x$enable_gstreamer" = "xyes" && test "x$HAVE_GSTREAMER" = "x0"],
1333 [AC_MSG_ERROR([*** GStreamer 1.0 support not found])])
1335 AM_CONDITIONAL([HAVE_GSTREAMER], [test "x$HAVE_GSTREAMER" = x1])
1336 AS_IF([test "x$HAVE_GSTREAMER" = "x1"], AC_DEFINE([HAVE_GSTREAMER], 1, [Have GStreamer?]))
1338 #### Build and Install man pages ####
1340 AC_ARG_ENABLE([manpages],
1341 AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]))
1343 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" != "xno"])
1345 #### PulseAudio system group & user #####
1347 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1348 if test -z "$with_system_user" ; then
1349 PA_SYSTEM_USER=pulse
1351 PA_SYSTEM_USER=$with_system_user
1353 AC_SUBST(PA_SYSTEM_USER)
1354 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1356 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1357 if test -z "$with_system_group" ; then
1358 PA_SYSTEM_GROUP=pulse
1360 PA_SYSTEM_GROUP=$with_system_group
1362 AC_SUBST(PA_SYSTEM_GROUP)
1363 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1365 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)]))
1366 if test -z "$with_access_group" ; then
1367 PA_ACCESS_GROUP=pulse-access
1369 PA_ACCESS_GROUP=$with_access_group
1371 AC_SUBST(PA_ACCESS_GROUP)
1372 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1374 AC_ARG_ENABLE([per-user-esound-socket],
1375 AS_HELP_STRING([--disable-per-user-esound-socket],[Use global esound socket directory /tmp/.esd/socket.]))
1377 if test "x$enable_per_user_esound_socket" != "xno"; then
1378 USE_PER_USER_ESOUND_SOCKET=1
1379 AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1381 USE_PER_USER_ESOUND_SOCKET=0
1384 #### PulseAudio system runtime dir ####
1386 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1387 AX_DEFINE_DIR(PA_SYSTEM_RUNTIME_PATH, PA_SYSTEM_RUNTIME_PATH, [System runtime dir])
1388 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1389 AX_DEFINE_DIR(PA_SYSTEM_CONFIG_PATH, PA_SYSTEM_CONFIG_PATH, [System config dir])
1390 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1391 AX_DEFINE_DIR(PA_SYSTEM_STATE_PATH, PA_SYSTEM_STATE_PATH, [System state dir])
1393 PA_BINARY=${bindir}/pulseaudio${EXEEXT}
1394 AX_DEFINE_DIR(PA_BINARY, PA_BINARY, [Location of pulseaudio binary])
1396 PACTL_BINARY=${bindir}/pactl${EXEEXT}
1397 AX_DEFINE_DIR(PACTL_BINARY, PACTL_BINARY, [Location of pactl binary])
1399 AC_SUBST(PA_SOEXT, [.so])
1400 AC_DEFINE(PA_SOEXT, [".so"], [Shared object extension])
1402 AC_SUBST(pulseconfdir, ["${sysconfdir}/pulse"])
1403 AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR, pulseconfdir, [Location of configuration files])
1404 AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR_UNQUOTED, pulseconfdir, [Location of configuration files])
1406 #### Mac OSX specific stuff #####
1408 AC_ARG_ENABLE(mac-universal,
1409 AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries]),
1410 enable_mac_universal=$enableval, enable_mac_universal="no")
1412 AC_ARG_WITH(mac-version-min,
1413 AS_HELP_STRING([--with-mac-version-min=<version>], [Defines the earliest version of MacOS X that the executables will run on.]),
1414 mac_version_min=$withval, mac_version_min="10.5")
1416 AC_ARG_WITH(mac-sysroot,
1417 AS_HELP_STRING([--with-mac-sysroot=<path>], [SDK basedir to use as the logical root directory for headers and libraries.]),
1418 mac_sysroot=$withval)
1420 if test "x$os_is_darwin" = "x1" ; then
1421 LDFLAGS="$LDFLAGS -mmacosx-version-min=$mac_version_min"
1422 CFLAGS="$CFLAGS -mmacosx-version-min=$mac_version_min"
1424 if test "x$mac_sysroot" != "x" ; then
1425 LDFLAGS="$LDFLAGS -isysroot $mac_sysroot"
1426 CFLAGS="$CFLAGS -isysroot $mac_sysroot"
1429 if test "x$enable_mac_universal" = "xyes" ; then
1430 mac_arches="-arch i386 -arch x86_64"
1431 LDFLAGS="$LDFLAGS $mac_arches"
1432 CFLAGS="$CFLAGS $mac_arches"
1436 AC_ARG_ENABLE([webrtc-aec],
1437 AS_HELP_STRING([--enable-webrtc-aec], [Enable the optional WebRTC-based echo canceller]))
1439 AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "$HAVE_CXX11" = "0"],
1440 [AC_MSG_ERROR([*** webrtc-audio-processing needs C++11 support])])
1442 AS_IF([test "x$enable_webrtc_aec" != "xno"],
1443 [PKG_CHECK_MODULES(WEBRTC, [ webrtc-audio-processing >= 0.2 ], [HAVE_WEBRTC=1], [HAVE_WEBRTC=0])],
1446 AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "x$HAVE_WEBRTC" = "x0"],
1447 [AC_MSG_ERROR([*** webrtc-audio-processing library not found])])
1449 AM_CONDITIONAL([HAVE_WEBRTC], [test "x$HAVE_WEBRTC" = "x1"])
1451 AC_ARG_ENABLE([adrian-aec],
1452 AS_HELP_STRING([--enable-adrian-aec], [Enable Adrian's optional echo canceller]))
1453 AS_IF([test "x$enable_adrian_aec" != "xno"],
1455 AM_CONDITIONAL([HAVE_ADRIAN_EC], [test "x$HAVE_ADRIAN_EC" = "x1"])
1458 #### Thread support ####
1461 AS_IF([test "$ac_cv_tls" = "__thread"],
1462 AC_DEFINE([SUPPORT_TLS___THREAD], 1, [Define this if the compiler supports __thread for Thread-Local Storage]))
1464 # Win32 build breaks with win32 pthread installed
1465 AS_IF([test "x$os_is_win32" != "x1"],
1468 AS_IF([test "x$ax_pthread_ok" = "xyes"],
1469 AC_DEFINE([_POSIX_PTHREAD_SEMANTICS], 1, [Needed on Solaris]))
1473 ###################################
1475 ###################################
1477 AC_DEFINE_UNQUOTED(PA_CFLAGS, "$CFLAGS", [The CFLAGS used during compilation])
1479 # Check whether to build tests by default (as compile-test) or not
1480 AC_ARG_ENABLE([default-build-tests],
1481 AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
1482 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
1484 AC_ARG_ENABLE([legacy-database-entry-format],
1485 AS_HELP_STRING([--disable-legacy-database-entry-format], [Try to load legacy (< 1.0) database files (card, device and volume restore).]))
1486 if test "x$enable_legacy_database_entry_format" != "xno" ; then
1487 AC_DEFINE(ENABLE_LEGACY_DATABASE_ENTRY_FORMAT, [1], [Legacy database entry format])
1490 AC_ARG_ENABLE([stream-restore-clear-old-devices],
1491 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]))
1492 if test "x$enable_stream_restore_clear_old_devices" == "xyes" ; then
1493 AC_DEFINE(STREAM_RESTORE_CLEAR_OLD_DEVICES, [1], [module-stream-restore: Clear old devices])
1496 AC_ARG_ENABLE([static-bins],
1497 AS_HELP_STRING([--enable-static-bins],[Statically link executables.]))
1498 AM_CONDITIONAL([STATIC_BINS], [test "x$enable_static_bins" = "xyes"])
1502 AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1503 [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1504 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1505 if test "x$PREOPEN_MODS" != "xall" ; then
1507 for mod in $PREOPEN_MODS; do
1508 tmpLIBS="$tmpLIBS module-$mod.la"
1510 PREOPEN_MODS="$tmpLIBS"
1511 AC_SUBST(PREOPEN_MODS)
1516 AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]),
1517 [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"])
1519 AC_SUBST(modlibexecdir)
1520 AX_DEFINE_DIR(PA_DLSEARCHPATH, modlibexecdir, [Modules dir])
1524 AS_HELP_STRING([--with-alsa-data-dir],[Directory for ALSA card profiles (defaults to ${datadir}/pulseaudio/alsa-mixer)]),
1525 [alsadatadir=$withval], [alsadatadir="${datadir}/pulseaudio/alsa-mixer"])
1527 AC_SUBST(alsadatadir)
1531 AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1532 [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1534 AC_SUBST(udevrulesdir)
1536 AC_ARG_WITH([bash-completion-dir],
1537 AS_HELP_STRING([--with-bash-completion-dir=DIR], [Directory for bash completion files]),
1538 [bashcompletiondir=$withval], [bashcompletiondir=$($PKG_CONFIG --variable=completionsdir bash-completion)])
1539 if test "x$bashcompletionsdir" = "x"; then
1540 bashcompletiondir="${datadir}/bash-completion/completions"
1543 AC_SUBST(bashcompletiondir)
1546 [zsh-completion-dir],
1547 AS_HELP_STRING([--with-zsh-completion-dir], [Zsh completions directory (defaults to ${datadir}/zsh/site-functions)]),
1548 [zshcompletiondir=$withval], [zshcompletiondir="${datadir}/zsh/site-functions"])
1550 AC_SUBST(zshcompletiondir)
1552 AC_ARG_ENABLE([force-preopen],
1553 AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]))
1555 if test "x$enable_force_preopen" = "xyes"; then
1561 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1563 # Substitute the variable with an empty string. This makes the output go to the
1564 # directory where doxygen is run (which is the doxygen directory under the
1565 # build directory). Substituting a variable with a constant value wouldn't
1566 # otherwise make sense, but the substitution variable needs to exist, because
1567 # we substitute a different value when using Meson.
1568 AC_SUBST([DOXYGEN_OUTPUT_DIRECTORY], [])
1576 libpulse-mainloop-glib.pc
1578 doxygen/doxygen.conf
1581 man/pulseaudio.1.xml
1582 man/pax11publish.1.xml
1586 man/pasuspender.1.xml
1588 man/pulse-daemon.conf.5.xml
1589 man/pulse-client.conf.5.xml
1590 man/default.pa.5.xml
1591 man/pulse-cli-syntax.5.xml
1592 man/start-pulseaudio-x11.1.xml
1595 AS_IF([test "x$HAVE_ESOUND" = "x1"],
1597 AC_CONFIG_FILES([man/esdcompat.1.xml])
1598 AC_CONFIG_FILES([src/esdcompat:src/daemon/esdcompat.in], [chmod +x src/esdcompat])
1601 AC_CONFIG_FILES([src/start-pulseaudio-x11:src/daemon/start-pulseaudio-x11.in], [chmod +x src/start-pulseaudio-x11])
1602 AC_CONFIG_FILES([src/client.conf:src/pulse/client.conf.in])
1603 AC_CONFIG_FILES([src/daemon.conf:src/daemon/daemon.conf.in],
1604 [m4 src/daemon.conf > src/daemon.conf.gen && mv src/daemon.conf.gen src/daemon.conf])
1605 AC_CONFIG_FILES([src/default.pa:src/daemon/default.pa.in],
1606 [m4 src/default.pa > src/default.pa.gen && mv src/default.pa.gen src/default.pa])
1607 AC_CONFIG_FILES([src/system.pa:src/daemon/system.pa.in],
1608 [m4 src/system.pa > src/system.pa.gen && mv src/system.pa.gen src/system.pa])
1609 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"],
1611 AC_CONFIG_FILES([src/pulseaudio.service:src/daemon/systemd/user/pulseaudio.service.in])
1614 # CMake related ProjectConfig files
1616 AX_DEFINE_DIR(PA_LIBDIR, PA_LIBDIR, [PulseAudio library dir])
1617 PA_INCDIR="$includedir"
1618 AX_DEFINE_DIR(PA_INCDIR, PA_INCDIR, [PulseAudio include dir])
1620 AC_CONFIG_FILES([PulseAudioConfig.cmake:PulseAudioConfig.cmake.in],
1621 [m4 PulseAudioConfig.cmake > PulseAudioConfig.cmake.gen && mv PulseAudioConfig.cmake.gen PulseAudioConfig.cmake])
1622 AC_CONFIG_FILES([PulseAudioConfigVersion.cmake])
1626 # ==========================================================================
1628 AS_IF([test "x$HAVE_MEMFD" = "x1"], ENABLE_MEMFD=yes, ENABLE_MEMFD=no)
1629 AS_IF([test "x$HAVE_X11" = "x1"], ENABLE_X11=yes, ENABLE_X11=no)
1630 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], ENABLE_OSS_OUTPUT=yes, ENABLE_OSS_OUTPUT=no)
1631 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no)
1632 AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no)
1633 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no)
1634 AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no)
1635 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no)
1636 AS_IF([test "x$HAVE_GLIB20" = "x1"], ENABLE_GLIB20=yes, ENABLE_GLIB20=no)
1637 AS_IF([test "x$HAVE_GTK30" = "x1"], ENABLE_GTK30=yes, ENABLE_GTK30=no)
1638 AS_IF([test "x$HAVE_GCONF" = "x1"], ENABLE_GCONF=yes, ENABLE_GCONF=no)
1639 AS_IF([test "x$HAVE_GSETTINGS" = "x1"], ENABLE_GSETTINGS=yes, ENABLE_GSETTINGS=no)
1640 AS_IF([test "x$HAVE_AVAHI" = "x1"], ENABLE_AVAHI=yes, ENABLE_AVAHI=no)
1641 AS_IF([test "x$HAVE_JACK" = "x1"], ENABLE_JACK=yes, ENABLE_JACK=no)
1642 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], ENABLE_LIBASYNCNS=yes, ENABLE_LIBASYNCNS=no)
1643 AS_IF([test "x$HAVE_LIRC" = "x1"], ENABLE_LIRC=yes, ENABLE_LIRC=no)
1644 AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
1645 AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
1646 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], ENABLE_SYSTEMD_DAEMON=yes, ENABLE_SYSTEMD_DAEMON=no)
1647 AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], ENABLE_SYSTEMD_LOGIN=yes, ENABLE_SYSTEMD_LOGIN=no)
1648 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], ENABLE_SYSTEMD_JOURNAL=yes, ENABLE_SYSTEMD_JOURNAL=no)
1649 AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], ENABLE_BLUEZ_5=yes, ENABLE_BLUEZ_5=no)
1650 AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], ENABLE_BLUEZ_5_OFONO_HEADSET=yes, ENABLE_BLUEZ_5_OFONO_HEADSET=no)
1651 AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], ENABLE_BLUEZ_5_NATIVE_HEADSET=yes, ENABLE_BLUEZ_5_NATIVE_HEADSET=no)
1652 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
1653 AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
1654 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE="yes (DEPRECATED)", ENABLE_LIBSAMPLERATE=no)
1655 AS_IF([test "x$HAVE_IPV6" = "x1"], ENABLE_IPV6=yes, ENABLE_IPV6=no)
1656 AS_IF([test "x$HAVE_OPENSSL" = "x1"], ENABLE_OPENSSL=yes, ENABLE_OPENSSL=no)
1657 AS_IF([test "x$HAVE_FFTW" = "x1"], ENABLE_FFTW=yes, ENABLE_FFTW=no)
1658 AS_IF([test "x$HAVE_ORC" = "xyes"], ENABLE_ORC=yes, ENABLE_ORC=no)
1659 AS_IF([test "x$HAVE_ADRIAN_EC" = "x1"], ENABLE_ADRIAN_EC=yes, ENABLE_ADRIAN_EC=no)
1660 AS_IF([test "x$HAVE_SPEEX" = "x1"], ENABLE_SPEEX=yes, ENABLE_SPEEX=no)
1661 AS_IF([test "x$HAVE_SOXR" = "x1"], ENABLE_SOXR=yes, ENABLE_SOXR=no)
1662 AS_IF([test "x$HAVE_WEBRTC" = "x1"], ENABLE_WEBRTC=yes, ENABLE_WEBRTC=no)
1663 AS_IF([test "x$HAVE_GSTREAMER" = "x1"], ENABLE_GSTREAMER=yes, ENABLE_GSTREAMER=no)
1664 AS_IF([test "x$HAVE_TDB" = "x1"], ENABLE_TDB=yes, ENABLE_TDB=no)
1665 AS_IF([test "x$HAVE_GDBM" = "x1"], ENABLE_GDBM=yes, ENABLE_GDBM=no)
1666 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no)
1667 AS_IF([test "x$HAVE_ESOUND" = "x1"], ENABLE_ESOUND=yes, ENABLE_ESOUND=no)
1668 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)
1669 AS_IF([test "x$HAVE_GCOV" = "x1"], ENABLE_GCOV=yes, ENABLE_GCOV=no)
1670 AS_IF([test "x$HAVE_LIBCHECK" = "x1"], ENABLE_TESTS=yes, ENABLE_TESTS=no)
1671 AS_IF([test "x$enable_legacy_database_entry_format" != "xno"], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no)
1672 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)
1675 ---{ $PACKAGE_NAME $VERSION }---
1678 sysconfdir: ${sysconfdir}
1679 localstatedir: ${localstatedir}
1680 modlibexecdir: ${modlibexecdir}
1681 alsadatadir: ${alsadatadir}
1682 System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH}
1683 System State Path: ${PA_SYSTEM_STATE_PATH}
1684 System Config Path: ${PA_SYSTEM_CONFIG_PATH}
1685 Zsh completions directory: ${zshcompletiondir}
1686 Bash completions directory: ${bashcompletiondir}
1689 CPPFLAGS: ${CPPFLAGS}
1692 Enable memfd shared memory: ${ENABLE_MEMFD}
1693 Enable X11: ${ENABLE_X11}
1694 Safe X11 I/O errors: ${HAVE_XSETIOERROREXITHANDLER}
1695 Enable OSS Output: ${ENABLE_OSS_OUTPUT}
1696 Enable OSS Wrapper: ${ENABLE_OSS_WRAPPER}
1697 Enable EsounD: ${ENABLE_ESOUND}
1698 Enable Alsa: ${ENABLE_ALSA}
1699 Enable CoreAudio: ${ENABLE_COREAUDIO}
1700 Enable Solaris: ${ENABLE_SOLARIS}
1701 Enable WaveOut: ${ENABLE_WAVEOUT}
1702 Enable GLib 2.0: ${ENABLE_GLIB20}
1703 Enable Gtk+ 3.0: ${ENABLE_GTK30}
1704 Enable GConf: ${ENABLE_GCONF}
1705 Enable GSettings: ${ENABLE_GSETTINGS}
1706 Enable Avahi: ${ENABLE_AVAHI}
1707 Enable Jack: ${ENABLE_JACK}
1708 Enable Async DNS: ${ENABLE_LIBASYNCNS}
1709 Enable LIRC: ${ENABLE_LIRC}
1710 Enable D-Bus: ${ENABLE_DBUS}
1711 Enable BlueZ 5: ${ENABLE_BLUEZ_5}
1712 Enable ofono headsets: ${ENABLE_BLUEZ_5_OFONO_HEADSET}
1713 Enable native headsets: ${ENABLE_BLUEZ_5_NATIVE_HEADSET}
1714 Enable udev: ${ENABLE_UDEV}
1715 Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
1717 Daemon (Socket Activation): ${ENABLE_SYSTEMD_DAEMON}
1718 Login (Session Tracking): ${ENABLE_SYSTEMD_LOGIN}
1719 Journal (Logging): ${ENABLE_SYSTEMD_JOURNAL}
1720 Enable TCP Wrappers: ${ENABLE_TCPWRAP}
1721 Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
1722 Enable IPv6: ${ENABLE_IPV6}
1723 Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1724 Enable fftw: ${ENABLE_FFTW}
1725 Enable orc: ${ENABLE_ORC}
1726 Enable Adrian echo canceller: ${ENABLE_ADRIAN_EC}
1727 Enable speex (resampler, AEC): ${ENABLE_SPEEX}
1728 Enable soxr (resampler): ${ENABLE_SOXR}
1729 Enable WebRTC echo canceller: ${ENABLE_WEBRTC}
1730 Enable GStreamer-based RTP: ${ENABLE_GSTREAMER}
1731 Enable gcov coverage: ${ENABLE_GCOV}
1732 Enable unit tests: ${ENABLE_TESTS}
1735 gdbm: ${ENABLE_GDBM}
1736 simple database: ${ENABLE_SIMPLEDB}
1738 System User: ${PA_SYSTEM_USER}
1739 System Group: ${PA_SYSTEM_GROUP}
1740 Access Group: ${PA_ACCESS_GROUP}
1741 Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1742 Force preopen: ${FORCE_PREOPEN}
1743 Preopened modules: ${PREOPEN_MODS}
1745 Legacy Database Entry Support: ${ENABLE_LEGACY_DATABASE_ENTRY_FORMAT}
1746 module-stream-restore:
1747 Clear old devices: ${ENABLE_STREAM_RESTORE_CLEAR_OLD_DEVICES}
1750 if test "${ENABLE_SPEEX}" = "no" && test "${ENABLE_WEBRTC}" = "no" && test "${ENABLE_ADRIAN_EC}" = "no" ; then
1751 AC_MSG_ERROR([At least one echo canceller implementation must be available.])
1754 if test "${ENABLE_DBUS}" = "no" && test "x$os_is_win32" != "x1" ; then
1756 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1757 You do not have D-Bus support enabled. It is strongly recommended
1758 that you enable D-Bus support if your platform supports it.
1759 Many parts of PulseAudio use D-Bus, from ConsoleKit interaction
1760 to the Device Reservation Protocol to speak to JACK, Bluetooth
1761 support and even a native control protocol for communicating and
1762 controlling the PulseAudio daemon itself.
1763 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1767 if test "${ENABLE_UDEV}" = "no" && test "x$os_is_win32" != "x1" ; then
1769 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1770 You do not have udev support enabled. It is strongly recommended
1771 that you enable udev support if your platform supports it as it is
1772 the primary method used to detect hardware audio devices (on Linux)
1773 and is thus a critical part of PulseAudio on that platform.
1774 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1778 if test "${ENABLE_SPEEX}" = "no" && test "x$os_is_win32" != "x1" ; then
1780 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1781 You do not have speex support enabled. It is strongly recommended
1782 that you enable speex support if your platform supports it as it is
1783 the primary method used for audio resampling and is thus a critical
1784 part of PulseAudio on that platform.
1785 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====