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, 34)
47 # The stable ABI for client applications, for the version info x:y:z
48 # always will hold x=z
49 AC_SUBST(LIBPULSE_VERSION_INFO, [22:0:22])
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])
60 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
62 AC_CHECK_PROG([STOW], [stow], [yes], [no])
64 AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
65 AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
66 ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
69 AM_SILENT_RULES([yes])
72 #### Checks for programs. ####
86 # Only required if you want the WebRTC canceller -- no runtime dep on
89 AC_PROG_GCC_TRADITIONAL
90 AC_USE_SYSTEM_EXTENSIONS
91 AX_CXX_COMPILE_STDCXX_11([ext],[optional])
95 AC_CHECK_PROGS([M4], gm4 m4, no)
96 AS_IF([test "x$M4" = "xno"], AC_MSG_ERROR([m4 missing]))
104 AM_GNU_GETTEXT_VERSION([0.19.8])
105 AM_GNU_GETTEXT([external])
107 GETTEXT_PACKAGE=pulseaudio
108 AC_SUBST([GETTEXT_PACKAGE])
109 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
112 #### Determine host OS ####
114 # if the host has the possibility of sys/capability.h for dropping privileges
115 # used to determine if we should error out if it is not found
122 AC_MSG_CHECKING([host operating system])
125 AC_MSG_RESULT([linux])
130 AC_MSG_RESULT([freebsd])
134 AC_MSG_RESULT([netbsd])
137 AC_MSG_RESULT([darwin])
139 AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.])
142 AC_MSG_RESULT([win32])
144 AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
147 AC_MSG_RESULT([unknown])
151 AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
152 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
153 AC_SUBST([OS_IS_WIN32], [$os_is_win32])
155 # Platform specific hacks
158 AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
161 AC_DEFINE([WIN32_LEAN_AND_MEAN], 1, [Needed to avoid including unnecessary headers on Windows])
164 AC_DEFINE(_XOPEN_SOURCE, 600, [Needed to get declarations for msg_control and msg_controllen on Solaris])
165 AC_DEFINE(__EXTENSIONS__, 1, [Needed to get declarations for msg_control and msg_controllen on Solaris])
170 #### Compiler flags ####
172 AX_CHECK_COMPILE_FLAG([-std=gnu11],
174 [AC_MSG_ERROR([*** Compiler does not support -std=gnu11])],
177 AX_APPEND_COMPILE_FLAGS(
178 [-Wall -W -Wextra -pipe -Wno-long-long -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings -Wno-unused-parameter -fno-common -fdiagnostics-show-option -fdiagnostics-color=auto],
179 [], [-pedantic -Werror])
181 AS_CASE([" $CFLAGS "], [*" -O0 "*], [], [
182 # Don't append the flag if it already exists.
183 # Only enable fastpath asserts when doing a debug build, e.g. from bootstrap.sh.
184 AX_APPEND_FLAG([-DFASTPATH], [CPPFLAGS])
186 # Cannot use AX_APPEND_FLAG here, as it assumes no space inside the added flags.
187 # Cannot append flags with AX_APPEND_FLAG one by one, as this would destroy all fortifications
188 # if CPPFLAGS already contain -D_FORTIFY_SOURCE=2.
190 # Warnings to be aware of that appear with -D_FORTIFY_SOURCE=2 but without -U_FORTIFY_SOURCE:
191 # On Fedora 20 with -O0: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp]
192 # On Gentoo with -O2: "_FORTIFY_SOURCE" redefined [enabled by default]
193 AS_VAR_APPEND([CPPFLAGS],[" -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"])
196 #### Linker flags ####
198 # Check whether the linker supports the -version-script option.
199 # The Make variable $(srcdir) needs to be in the LDFLAGS in that form,
200 # so that it is expanded the right way in every subdir.
201 AX_CHECK_LINK_FLAG(["-Wl,-version-script=${srcdir}/src/map-file"],
202 [VERSIONING_LDFLAGS='-Wl,-version-script=$(abs_top_srcdir)/src/map-file'])
203 AC_SUBST([VERSIONING_LDFLAGS])
205 # Use immediate (now) bindings; avoids the funky re-call in itself.
206 # The -z now syntax is lifted from Sun's linker and works with GNU's too, other linkers might be added later.
207 AX_APPEND_LINK_FLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS])
208 AC_SUBST([IMMEDIATE_LDFLAGS])
209 AS_CASE([$IMMEDIATE_LDFLAGS],[*-z,now*],
210 [AC_DEFINE([HAVE_BIND_NOW],[1],
211 [Define to 1 if immediate binding is available])])
213 # On ELF systems we don't want the libraries to be unloaded since we don't clean them up properly,
214 # so we request the nodelete flag to be enabled.
215 # On other systems, we don't really know how to do that, but it's welcome if somebody can tell.
216 AX_APPEND_LINK_FLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS], [-shared])
217 AC_SUBST([NODELETE_LDFLAGS])
219 # Check for the proper way to build libraries that have no undefined symbols
221 # FreeBSD (et al.) does not complete linking for shared objects when pthreads
222 # are requested, as different implementations are present.
223 *-freebsd* | *-openbsd*) ;;
225 for possible_flag in "-Wl,--no-undefined" "-Wl,-z,defs"; do
226 AX_CHECK_LINK_FLAG([$possible_flag], [NOUNDEFINED_LDFLAGS="$possible_flag"; break])
230 AC_SUBST([NOUNDEFINED_LDFLAGS])
233 #### Atomic operations ####
235 # Native atomic operation support
236 AC_ARG_ENABLE([atomic-arm-linux-helpers],
237 AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]))
239 AC_ARG_ENABLE([atomic-arm-memory-barrier],
240 AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]))
242 if test "x$enable_atomic_arm_memory_barrier" = "xyes"; then
243 AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers])
246 # If everything else fails use libatomic_ops
247 need_libatomic_ops=yes
249 AC_CACHE_CHECK([whether $CC knows __atomic_store_n()],
250 pulseaudio_cv_atomic_store_n, [
252 [AC_LANG_PROGRAM([], [[int c = 0; __atomic_store_n(&c, 4, __ATOMIC_SEQ_CST);]])],
253 [pulseaudio_cv_atomic_store_n=yes],
254 [pulseaudio_cv_atomic_store_n=no])
258 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
259 pulseaudio_cv_sync_bool_compare_and_swap, [
261 [AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]])],
262 [pulseaudio_cv_sync_bool_compare_and_swap=yes],
263 [pulseaudio_cv_sync_bool_compare_and_swap=no])
266 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
267 AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
268 if test "$pulseaudio_cv_atomic_store_n" = "yes" ; then
269 AC_DEFINE([HAVE_ATOMIC_BUILTINS_MEMORY_MODEL], 1, [Have __atomic_store_n() and friends.])
271 need_libatomic_ops=no
273 # HW specific atomic ops stuff
274 AC_MSG_CHECKING([architecture for native atomic operations])
278 need_libatomic_ops=no
282 AC_MSG_CHECKING([whether we can use Linux kernel helpers])
283 # The Linux kernel helper functions have been there since 2.6.16. However
284 # compile time checking for kernel version in cross compile environment
285 # (which is usually the case for arm cpu) is tricky (or impossible).
286 if test "x$os_is_linux" = "x1" && test "x$enable_atomic_arm_linux_helpers" != "xno"; then
288 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
289 need_libatomic_ops=no
292 AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
293 pulseaudio_cv_support_arm_atomic_ops, [
295 [AC_LANG_PROGRAM([], [[
298 asm volatile ("ldrex %0, [%1]\n"
300 "strexeq %0, %3, [%1]\n"
302 : "r" (&a), "Ir" (o), "r" (n)
304 return (a==1 ? 0 : -1);
306 [pulseaudio_cv_support_arm_atomic_ops=yes],
307 [pulseaudio_cv_support_arm_atomic_ops=no])
309 AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
310 AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARM atomic instructions.])
311 need_libatomic_ops=no
317 need_libatomic_ops=no
320 AC_MSG_RESULT([unknown])
325 # If we're on ARM, check for the ARMV6 instructions we need */
328 AC_CACHE_CHECK([support for required armv6 instructions],
329 pulseaudio_cv_support_armv6,
332 [[volatile int a = -60000, b = 0xaaaabbbb, c = 0xccccdddd;
333 asm volatile ("ldr r0, %2 \n"
338 "pkhbt r1, r3, r2, LSL #8 \n"
341 : "m" (a), "m" (b), "m" (c)
342 : "r0", "r1", "r2", "r3", "cc");
343 return (a == -128 && b == 0xaabbdddd) ? 0 : -1;
345 [pulseaudio_cv_support_armv6=yes],
346 [pulseaudio_cv_support_armv6=no])
348 AS_IF([test "$pulseaudio_cv_support_armv6" = "yes"], [
349 AC_DEFINE([HAVE_ARMV6], 1, [Have ARMv6 instructions.])
356 #### NEON optimisations ####
357 AC_ARG_ENABLE([neon-opt],
358 AS_HELP_STRING([--enable-neon-opt], [Enable NEON optimisations on ARM CPUs that support it]))
360 AS_IF([test "x$enable_neon_opt" != "xno"],
361 [save_CFLAGS="$CFLAGS"; CFLAGS="-mfpu=neon $CFLAGS"
363 [AC_LANG_PROGRAM([[#include <arm_neon.h>]], [])],
366 NEON_CFLAGS="-mfpu=neon"
372 CFLAGS="$save_CFLAGS"
376 AS_IF([test "x$enable_neon_opt" = "xyes" && test "x$HAVE_NEON" = "x0"],
377 [AC_MSG_ERROR([*** Compiler does not support -mfpu=neon or CFLAGS override -mfpu])])
380 AC_SUBST(NEON_CFLAGS)
381 AM_CONDITIONAL([HAVE_NEON], [test "x$HAVE_NEON" = x1])
382 AS_IF([test "x$HAVE_NEON" = "x1"], AC_DEFINE([HAVE_NEON], 1, [Have NEON support?]))
385 #### libtool stuff ####
388 LT_INIT([dlopen win32-dll disable-static])
390 dnl As an extra safety device, check for lt_dladvise_init() which is
391 dnl only implemented in libtool 2.x, and refine as we go if we have
392 dnl refined requirements.
394 dnl Check the header files first since the system may have a
395 dnl libltdl.so for runtime, but no headers, and we want to bail out as
396 dnl soon as possible.
398 dnl We don't need any special variable for this though, since the user
399 dnl can give the proper place to find libltdl through the standard
400 dnl variables like LDFLAGS and CPPFLAGS.
402 AC_CHECK_HEADER([ltdl.h],
403 [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
406 AS_IF([test "x$LIBLTDL" = "x"],
407 [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.4 or later installed.])])
411 ###################################
412 # Basic environment checks #
413 ###################################
415 #### Checks for header files. ####
421 AC_CHECK_HEADERS_ONCE([arpa/inet.h cpuid.h glob.h grp.h netdb.h netinet/in.h \
422 netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
423 sys/mman.h sys/select.h sys/socket.h sys/wait.h \
424 sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
425 AC_CHECK_HEADERS([netinet/ip.h], [], [],
426 [#include <sys/types.h>
427 #if HAVE_NETINET_IN_H
428 # include <netinet/in.h>
430 #if HAVE_NETINET_IN_SYSTM_H
431 # include <netinet/in_systm.h>
434 AC_CHECK_HEADERS([sys/resource.h], [HAVE_SYS_RESOURCE_H=1], [HAVE_SYS_RESOURCE_H=0])
435 AC_SUBST(HAVE_SYS_RESOURCE_H)
436 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
437 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
438 AC_SUBST(HAVE_AF_UNIX)
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"],
633 [PKG_CHECK_MODULES(X11, [ x11-xcb xcb >= 1.6 ice sm xtst ], HAVE_X11=1, HAVE_X11=0)],
636 AS_IF([test "x$enable_x11" = "xyes" && test "x$HAVE_X11" = "x0"],
637 [AC_MSG_ERROR([*** X11 not found])])
640 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
641 AS_IF([test "x$HAVE_X11" = "x1"], AC_DEFINE([HAVE_X11], 1, [Have X11?]))
643 #### Capabilities (optional) ####
648 AS_HELP_STRING([--without-caps],[Omit support for dropping capabilities.]))
650 if test "x${with_caps}" != "xno"; then
651 AC_SEARCH_LIBS([cap_init], [cap], [], [])
653 # Only give an error on hosts that we know could support capabilities
654 AC_CHECK_HEADERS([sys/capability.h], [], [
655 if test "${host_has_caps}" = "1"; then
656 AC_MSG_ERROR([*** sys/capability.h not found. Use --without-caps to disable capabilities support.])
660 #### Valgrind (optional) ####
662 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
664 #### check unit tests ####
666 AC_ARG_ENABLE([tests],
667 AS_HELP_STRING([--disable-tests],[Disable unit tests]))
669 AS_IF([test "x$enable_tests" != "xno"],
670 [PKG_CHECK_MODULES(LIBCHECK, [ check >= 0.9.10 ], HAVE_LIBCHECK=1, HAVE_LIBCHECK=0)],
673 AS_IF([test "x$enable_tests" = "xyes" && test "x$HAVE_LIBCHECK" = "x0"],
674 [AC_MSG_ERROR([*** check library not found or too old])])
676 AM_CONDITIONAL([HAVE_TESTS], [test "x$HAVE_LIBCHECK" = x1])
680 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
684 AC_MSG_CHECKING([whether we need libatomic_ops])
685 if test "x$need_libatomic_ops" = "xyes"; then
687 AC_CHECK_HEADERS([atomic_ops.h],
688 [CFLAGS="$CFLAGS -DAO_REQUIRE_CAS"],
689 [AC_MSG_ERROR([*** libatomic-ops headers not found])])
691 # Win32 does not need the lib and breaks horribly if we try to include it
692 AS_IF([test "x$os_is_win32" != "x1"], [LIBS="$LIBS -latomic_ops"])
697 #### Libsamplerate support (optional) ####
699 AC_ARG_ENABLE([samplerate],
700 AS_HELP_STRING([--enable-samplerate],[Enable optional libsamplerate support (DEPRECATED)]))
702 AS_IF([test "x$enable_samplerate" = "xyes"],
703 [PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ], HAVE_LIBSAMPLERATE=1, HAVE_LIBSAMPLERATE=0)],
704 HAVE_LIBSAMPLERATE=0)
706 AS_IF([test "x$enable_samplerate" = "xyes" && test "x$HAVE_LIBSAMPLERATE" = "x0"],
707 [AC_MSG_ERROR([*** Libsamplerate not found])])
709 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
710 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?]))
712 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_MSG_WARN([Support for libsamplerate is DEPRECATED]))
714 #### Database support ####
716 AC_ARG_WITH([database],
717 AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
720 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xtdb"],
721 [PKG_CHECK_MODULES(TDB, [ tdb ], HAVE_TDB=1, HAVE_TDB=0)],
723 AS_IF([test "x$HAVE_TDB" = "x1"], with_database=tdb)
725 AS_IF([test "x$with_database" = "xtdb" && test "x$HAVE_TDB" = "x0"],
726 [AC_MSG_ERROR([*** tdb not found])])
729 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xgdbm"],
732 AC_CHECK_LIB(gdbm, gdbm_open, [], HAVE_GDBM=0)
733 AC_CHECK_HEADERS(gdbm.h, [], HAVE_GDBM=0)
736 AS_IF([test "x$HAVE_GDBM" = "x1"],
743 AS_IF([test "x$with_database" = "xgdbm" && test "x$HAVE_GDBM" = "x0"],
744 [AC_MSG_ERROR([*** gdbm not found])])
747 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xsimple"],
750 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], with_database=simple)
752 AS_IF([test "x$HAVE_TDB" != x1 -a "x$HAVE_GDBM" != x1 -a "x$HAVE_SIMPLEDB" != x1],
753 AC_MSG_ERROR([*** missing database backend]))
756 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
757 AS_IF([test "x$HAVE_TDB" = "x1"], AC_DEFINE([HAVE_TDB], 1, [Have tdb?]))
759 AC_SUBST(GDBM_CFLAGS)
761 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
762 AS_IF([test "x$HAVE_GDBM" = "x1"], AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?]))
764 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
765 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?]))
767 #### OSS support (optional) ####
769 AC_ARG_ENABLE([oss-output],
770 AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]))
772 AC_ARG_ENABLE([oss-wrapper],
773 AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]))
775 AC_ARG_WITH([pulsedsp-location],
776 AS_HELP_STRING([--with-pulsedsp-location],[Specify location where OSS wrapper will be installed]))
778 AS_IF([test "x$enable_oss_output" != "xno" -o "x$enable_oss_wrapper" != "xno"],
779 [AC_CHECK_HEADERS([sys/soundcard.h], HAVE_OSS=1, HAVE_OSS=0)],
782 AS_IF([test "x$enable_oss_output" = "xyes" -o "x$enable_oss_wrapper" = "xyes" && test "x$HAVE_OSS" = "x0"],
783 [AC_MSG_ERROR([*** OSS support not found])])
785 AS_IF([test "x$enable_oss_output" != "xno"],
786 [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_OUTPUT=1, HAVE_OSS_OUTPUT=0)],
789 AS_IF([test "x$enable_oss_wrapper" != "xno"],
790 [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_WRAPPER=1, HAVE_OSS_WRAPPER=0)],
793 AS_IF([test "x$with_pulsedsp_location" != "x"],
794 [PULSEDSP_LOCATION="$with_pulsedsp_location"],
795 [PULSEDSP_LOCATION="\$(pkglibdir)"])
797 AC_SUBST(HAVE_OSS_OUTPUT)
798 AC_SUBST(PULSEDSP_LOCATION)
799 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS_OUTPUT" = "x1"])
800 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS_WRAPPER" = "x1"])
801 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?]))
802 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?]))
804 # Some platforms like SunOS (Illumos) may ship without SOUND_PCM_* functionality
805 if test "x$HAVE_OSS" = "x1"; then
806 AC_CHECK_DECLS([SOUND_PCM_READ_RATE], [], [], [[#include <sys/soundcard.h>]])
807 AC_CHECK_DECLS([SOUND_PCM_READ_CHANNELS], [], [], [[#include <sys/soundcard.h>]])
808 AC_CHECK_DECLS([SOUND_PCM_READ_BITS], [], [], [[#include <sys/soundcard.h>]])
811 #### CoreAudio support (optional) ####
813 AC_ARG_ENABLE([coreaudio-output],
814 AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]))
816 AS_IF([test "x$enable_coreaudio_output" != "xno"],
817 [AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1, HAVE_COREAUDIO=0)],
820 AS_IF([test "x$enable_coreaudio_output" = "xyes" && test "x$HAVE_COREAUDIO" = "x0"],
821 [AC_MSG_ERROR([*** CoreAudio output support not found])])
823 AC_SUBST(HAVE_COREAUDIO)
824 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = "x1" && test "x$enable_coreaudio_output" != "xno"])
826 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], AC_DEFINE([HAVE_COREAUDIO], 1, [Have CoreAudio?]))
828 #### ALSA support (optional) ####
830 AC_ARG_ENABLE([alsa],
831 AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]))
833 AS_IF([test "x$enable_alsa" != "xno"],
834 [PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], HAVE_ALSA=1, HAVE_ALSA=0)],
837 AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
838 [AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])])
840 AS_IF([test "x$HAVE_ALSA" = "x1"],
842 save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $ASOUNDLIB_CFLAGS"
843 AC_CHECK_HEADERS([alsa/use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
844 CPPFLAGS="$save_CPPFLAGS"
849 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
850 AS_IF([test "x$HAVE_ALSA" = "x1"], AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]))
851 AS_IF([test "x$HAVE_ALSA_UCM" = "x1"], AC_DEFINE([HAVE_ALSA_UCM], 1, [Have ALSA UCM?]))
853 #### EsounD support (optional) ####
855 AC_ARG_ENABLE([esound],
856 AS_HELP_STRING([--disable-esound],[Disable optional EsounD support]))
857 AM_CONDITIONAL([HAVE_ESOUND], [test "x$enable_esound" != "xno"])
858 AS_IF([test "x$enable_esound" != "xno"], [HAVE_ESOUND=1])
860 #### Solaris audio support (optional) ####
862 AC_ARG_ENABLE([solaris],
863 AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]))
865 AS_IF([test "x$enable_solaris" != "xno"],
866 [AC_CHECK_HEADERS([sys/audio.h], HAVE_SOLARIS=1, HAVE_SOLARIS=0)],
869 AS_IF([test "x$enable_solaris" = "xyes" && test "x$HAVE_SOLARIS" = "x0"],
870 [AC_MSG_ERROR([*** Solaris audio support not found])])
872 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
873 AS_IF([test "x$HAVE_SOLARIS" = "x1"], AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?]))
875 #### WaveOut audio support (optional) ####
877 AC_ARG_ENABLE([waveout],
878 AS_HELP_STRING([--disable-waveout],[Disable optional WaveOut audio support]))
880 AS_IF([test "x$enable_waveout" != "xno"],
881 [AC_CHECK_HEADERS([mmsystem.h], HAVE_WAVEOUT=1, HAVE_WAVEOUT=0, [#include <windows.h>])],
884 AS_IF([test "x$enable_waveout" = "xyes" && test "x$HAVE_WAVEOUT" = "x0"],
885 [AC_MSG_ERROR([*** WaveOut audio support not found])])
887 AC_SUBST(HAVE_WAVEOUT)
888 AM_CONDITIONAL([HAVE_WAVEOUT], [test "x$HAVE_WAVEOUT" = x1])
889 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], AC_DEFINE([HAVE_WAVEOUT], 1, [Have WaveOut audio?]))
891 #### GLib 2 support (optional) ####
893 AC_ARG_ENABLE([glib2],
894 AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]))
896 AS_IF([test "x$enable_glib2" != "xno"],
897 [PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ], HAVE_GLIB20=1, HAVE_GLIB20=0)],
900 AS_IF([test "x$enable_glib2" = "xyes" && test "x$HAVE_GLIB20" = "x0"],
901 [AC_MSG_ERROR([*** GLib 2 support not found])])
903 AC_SUBST(HAVE_GLIB20)
904 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
905 AS_IF([test "x$HAVE_GLIB20" = "x1"], AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?]))
907 #### GTK3 support (optional) ####
909 AC_ARG_ENABLE([gtk3],
910 AS_HELP_STRING([--disable-gtk3],[Disable optional Gtk+ 3 support]))
912 AS_IF([test "x$enable_gtk3" != "xno"],
913 [PKG_CHECK_MODULES(GTK30, [ gtk+-3.0 ], HAVE_GTK30=1, HAVE_GTK30=0)],
916 AS_IF([test "x$enable_gtk3" = "xyes" && test "x$HAVE_GTK30" = "x0"],
917 [AC_MSG_ERROR([*** Gtk+ 3 support not found])])
919 AM_CONDITIONAL([HAVE_GTK30], [test "x$HAVE_GTK30" = x1])
920 AS_IF([test "x$HAVE_GTK30" = "x1"], AC_DEFINE([HAVE_GTK], 1, [Have GTK?]))
922 #### GSettings and GConf support (optional) ####
924 AC_ARG_ENABLE([gsettings],
925 AS_HELP_STRING([--disable-gsettings],[Disable optional GSettings support]))
927 AC_ARG_ENABLE([gconf],
928 AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]))
930 AS_IF([test "x$enable_gsettings" != "xno"],
931 [PKG_CHECK_MODULES(GSETTINGS, [ gio-2.0 >= 2.26.0 ], [HAVE_GSETTINGS=1], [HAVE_GSETTINGS=0])],
934 AS_IF([test "x$enable_gsettings" = "xyes" && test "x$HAVE_GSETTINGS" = "x0"],
935 [AC_MSG_ERROR([*** GSettings support not found])])
937 AS_IF([test "x$enable_gconf" != "xno"],
938 [PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ], HAVE_GCONF=1, HAVE_GCONF=0)],
941 AS_IF([test "x$enable_gconf" = "xyes" && test "x$HAVE_GCONF" = "x0"],
942 [AC_MSG_ERROR([*** GConf support not found])])
944 # Enable only one of GSettings and GConf, unless both were explicitly
945 # requested. If neither was explicitly requested and both are available, prefer
946 # GSettings. This is done, because if module-gsettings and module-gconf are
947 # both loaded, they can cause conflicting or at least confusing configuration.
948 # Distributions may want to enable both modules when building PulseAudio, if
949 # they ensure that both modules are never installed at the same time.
950 AS_IF([test "x$HAVE_GSETTINGS" = "x1" && test "x$enable_gconf" != "xyes"],
952 AS_IF([test "x$HAVE_GCONF" = "x1" && test "x$enable_gsettings" != "xyes"],
955 AM_CONDITIONAL([HAVE_GSETTINGS], [test "x$HAVE_GSETTINGS" = "x1"])
956 AC_SUBST([HAVE_GSETTINGS])
957 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = "x1"])
958 AC_SUBST([HAVE_GCONF])
960 if test "x$HAVE_GSETTINGS" = "x1" ; then
964 #### Avahi support (optional) ####
966 AC_ARG_ENABLE([avahi],
967 AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]))
969 AS_IF([test "x$enable_avahi" != "xno"],
970 [PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ], HAVE_AVAHI=1, HAVE_AVAHI=0)],
973 AS_IF([test "x$enable_avahi" = "xyes" && test "x$HAVE_AVAHI" = "x0"],
974 [AC_MSG_ERROR([*** Avahi support not found])])
977 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
979 #### JACK (optional) ####
981 AC_ARG_ENABLE([jack],
982 AS_HELP_STRING([--disable-jack],[Disable optional JACK support]))
984 AS_IF([test "x$enable_jack" != "xno"],
985 [PKG_CHECK_MODULES(JACK, [ jack >= 0.117.0 ], HAVE_JACK=1, HAVE_JACK=0)],
988 AS_IF([test "x$enable_jack" = "xyes" && test "x$HAVE_JACK" = "x0"],
989 [AC_MSG_ERROR([*** JACK support not found])])
991 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
993 #### Async DNS support (optional) ####
995 AC_ARG_ENABLE([asyncns],
996 AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]))
998 AS_IF([test "x$enable_asyncns" != "xno"],
999 [PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ], HAVE_LIBASYNCNS=1, HAVE_LIBASYNCNS=0)],
1002 AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
1003 [AC_MSG_ERROR([*** Async DNS support not found])])
1005 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1006 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
1008 #### Running from build tree (optional) ####
1010 AC_ARG_ENABLE([running-from-build-tree],
1011 AS_HELP_STRING([--disable-running-from-build-tree],[Disable running from build tree]))
1013 AS_IF([test "x$enable_running_from_build_tree" != "xno"],
1014 AC_DEFINE([HAVE_RUNNING_FROM_BUILD_TREE], 1, [Have running from build tree]))
1016 AC_SUBST(HAVE_RUNNING_FROM_BUILD_TREE)
1018 #### TCP wrappers (optional) ####
1020 AC_ARG_ENABLE([tcpwrap],
1021 AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]))
1023 AS_IF([test "x$enable_tcpwrap" != "xno"],
1026 AS_IF([test "x$LIBWRAP_LIBS" != "x"], HAVE_TCPWRAP=1, HAVE_TCPWRAP=0)
1030 AS_IF([test "x$enable_tcpwrap" = "xyes" && test "x$HAVE_TCPWRAP" = "x0"],
1031 [AC_MSG_ERROR([*** TCP wrappers support not found])])
1033 AC_SUBST(LIBWRAP_LIBS)
1035 #### LIRC support (optional) ####
1037 AC_ARG_ENABLE([lirc],
1038 AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]))
1043 AS_IF([test "x$enable_lirc" != "xno"],
1046 AC_CHECK_HEADER(lirc/lirc_client.h, [], [HAVE_LIRC=0])
1047 AC_CHECK_LIB(lirc_client, lirc_init, [LIRC_LIBS=-llirc_client], [HAVE_LIRC=0])
1051 AS_IF([test "x$enable_lirc" = "xyes" && test "x$HAVE_LIRC" = "x0"],
1052 [AC_MSG_ERROR([*** LIRC support not found])])
1054 AC_SUBST(LIRC_CFLAGS)
1056 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1058 #### D-Bus support (optional) ####
1060 AC_ARG_ENABLE([dbus],
1061 AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]))
1063 AS_IF([test "x$enable_dbus" != "xno"],
1064 [PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.4.12 ], HAVE_DBUS=1, HAVE_DBUS=0)],
1067 AS_IF([test "x$enable_dbus" = "xyes" && test "x$HAVE_DBUS" = "x0"],
1068 [AC_MSG_ERROR([*** D-Bus not available or too old version])])
1071 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1072 AS_IF([test "x$HAVE_DBUS" = "x1"], AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.]))
1074 PA_MACHINE_ID="${sysconfdir}/machine-id"
1075 AX_DEFINE_DIR(PA_MACHINE_ID, PA_MACHINE_ID, [D-Bus machine-id file])
1076 PA_MACHINE_ID_FALLBACK="${localstatedir}/lib/dbus/machine-id"
1077 AX_DEFINE_DIR(PA_MACHINE_ID_FALLBACK, PA_MACHINE_ID_FALLBACK,
1078 [Fallback machine-id file])
1080 #### BlueZ support (optional, dependent on D-Bus and SBC) ####
1082 AC_ARG_ENABLE([bluez5],
1083 AS_HELP_STRING([--disable-bluez5],[Disable optional BlueZ 5 support]))
1086 AS_IF([test "x$enable_bluez5" != "xno"],
1087 [PKG_CHECK_MODULES(SBC, [ sbc >= 1.0 ], HAVE_SBC=1, HAVE_SBC=0)],
1091 AS_IF([test "x$enable_bluez5" != "xno" && test "x$HAVE_DBUS" = "x1" && test "x$HAVE_SBC" = "x1"], HAVE_BLUEZ_5=1,
1093 AS_IF([test "x$enable_bluez5" = "xyes" && test "x$HAVE_BLUEZ_5" != "x1"],
1094 [AC_MSG_ERROR([*** BLUEZ 5 support not found (requires sbc and D-Bus)])])
1095 AC_SUBST(HAVE_BLUEZ_5)
1096 AM_CONDITIONAL([HAVE_BLUEZ_5], [test "x$HAVE_BLUEZ_5" = x1])
1098 AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], HAVE_BLUEZ=1, HAVE_BLUEZ=0)
1099 AC_SUBST(HAVE_BLUEZ)
1100 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1102 ## Bluetooth Headset profiles backend ##
1104 AC_ARG_ENABLE([bluez5-ofono-headset],
1105 AS_HELP_STRING([--disable-bluez5-ofono-headset],[Disable optional ofono headset backend support (Bluez 5)]))
1106 AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_ofono_headset" != "xno"], HAVE_BLUEZ_5_OFONO_HEADSET=1,
1107 HAVE_BLUEZ_5_OFONO_HEADSET=0)
1108 AC_SUBST(HAVE_BLUEZ_5_OFONO_HEADSET)
1109 AM_CONDITIONAL([HAVE_BLUEZ_5_OFONO_HEADSET], [test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = x1])
1110 AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_OFONO_HEADSET], 1, [Bluez 5 ofono headset backend enabled]))
1112 AC_ARG_ENABLE([bluez5-native-headset],
1113 AS_HELP_STRING([--disable-bluez5-native-headset],[Disable optional native headset backend support (Bluez 5)]))
1114 AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_native_headset" != "xno"],
1115 [PKG_CHECK_MODULES(BLUEZ, [ bluez >= 4.101 ], HAVE_BLUEZ_5_NATIVE_HEADSET=1, HAVE_BLUEZ_5_NATIVE_HEADSET=0)],
1116 HAVE_BLUEZ_5_NATIVE_HEADSET=0)
1117 AS_IF([test "x$enable_bluez5_native_headset" = "xyes" && test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x0"],
1118 [AC_MSG_ERROR([*** BlueZ 5 native headset backend support not available (requires the libbluetooth headers)])])
1119 AC_SUBST(HAVE_BLUEZ_5_NATIVE_HEADSET)
1120 AM_CONDITIONAL([HAVE_BLUEZ_5_NATIVE_HEADSET], [test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = x1])
1121 AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_NATIVE_HEADSET], 1, [Bluez 5 native headset backend enabled]))
1123 #### UDEV support (optional) ####
1125 AC_ARG_ENABLE([udev],
1126 AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]))
1128 AS_IF([test "x$enable_udev" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
1129 [PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], HAVE_UDEV=1, HAVE_UDEV=0)],
1132 AS_IF([test "x$enable_udev" = "xyes" && test "x$HAVE_UDEV" = "x0"],
1133 [AC_MSG_ERROR([*** UDEV support not found])])
1136 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1137 AS_IF([test "x$HAVE_UDEV" = "x1"], AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]))
1139 #### HAL compat support (optional, dependent on UDEV) ####
1141 AC_ARG_ENABLE([hal-compat],
1142 AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]))
1144 AS_IF([test "x$enable_hal_compat" != "xno"],
1145 [AS_IF([test "x$HAVE_UDEV" = "x1"], HAVE_HAL_COMPAT=1, HAVE_HAL_COMPAT=0)],
1148 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1149 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.]))
1151 #### IPv6 connection support (optional) ####
1153 AC_ARG_ENABLE([ipv6],
1154 AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]))
1156 AS_IF([test "x$enable_ipv6" != "xno"], [HAVE_IPV6=1], [HAVE_IPV6=0])
1158 AS_IF([test "x$HAVE_IPV6" = "x1"], AC_DEFINE([HAVE_IPV6], 1, [Define this to enable IPv6 connection support]))
1160 #### OpenSSL support (optional) ####
1162 AC_ARG_ENABLE([openssl],
1163 AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]))
1165 AS_IF([test "x$enable_openssl" != "xno"],
1166 [PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ], HAVE_OPENSSL=1, HAVE_OPENSSL=0)],
1169 AS_IF([test "x$enable_openssl" = "xyes" && test "x$HAVE_OPENSSL" = "x0"],
1170 [AC_MSG_ERROR([*** OpenSSL support not found])])
1172 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1173 AS_IF([test "x$HAVE_OPENSSL" = "x1"], AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL]))
1175 #### FFTW (optional) ####
1178 AS_HELP_STRING([--without-fftw],[Omit FFTW-using modules (equalizer)]))
1180 AS_IF([test "x$with_fftw" != "xno"],
1181 [PKG_CHECK_MODULES(FFTW, [ fftw3f ], HAVE_FFTW=1, HAVE_FFTW=0)],
1184 AS_IF([test "x$with_fftw" = "xyes" && test "x$HAVE_FFTW" = "x0"],
1185 [AC_MSG_ERROR([*** FFTW support not found])])
1187 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1189 #### speex (optional) ####
1191 AC_ARG_WITH([speex],
1192 AS_HELP_STRING([--without-speex],[Omit speex (resampling, AEC)]))
1194 AS_IF([test "x$with_speex" != "xno"],
1195 [PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ], HAVE_SPEEX=1, HAVE_SPEEX=0)],
1198 AS_IF([test "x$with_speex" = "xyes" && test "x$HAVE_SPEEX" = "x0"],
1199 [AC_MSG_ERROR([*** speex support not found])])
1201 AM_CONDITIONAL([HAVE_SPEEX], [test "x$HAVE_SPEEX" = "x1"])
1202 AS_IF([test "x$HAVE_SPEEX" = "x1"], AC_DEFINE([HAVE_SPEEX], 1, [Have speex]))
1204 #### soxr (optional) ####
1207 AS_HELP_STRING([--without-soxr],[Omit soxr (resampling)]))
1209 AS_IF([test "x$with_soxr" != "xno"],
1210 [PKG_CHECK_MODULES(LIBSOXR, [ soxr >= 0.1.1 ], HAVE_SOXR=1, HAVE_SOXR=0)],
1213 AS_IF([test "x$with_soxr" = "xyes" && test "x$HAVE_SOXR" = "x0"],
1214 [AC_MSG_ERROR([*** soxr support not found])])
1216 AM_CONDITIONAL([HAVE_SOXR], [test "x$HAVE_SOXR" = "x1"])
1217 AS_IF([test "x$HAVE_SOXR" = "x1"], AC_DEFINE([HAVE_SOXR], 1, [Have soxr]))
1220 #### gcov support (optional) #####
1222 AC_ARG_ENABLE([gcov],
1223 AS_HELP_STRING([--enable-gcov],[Enable optional gcov coverage analysis]))
1228 AS_IF([test "x$enable_gcov" = "xyes"],
1231 GCOV_CFLAGS="$GCOV_CFLAGS -fprofile-arcs -ftest-coverage"
1232 GCOV_LIBS="$GCOV_LIBS -fprofile-arcs"
1236 AC_SUBST(GCOV_CFLAGS)
1238 AM_CONDITIONAL([HAVE_GCOV], [test "x$HAVE_GCOV" = x1])
1240 #### ORC (optional) ####
1244 #### systemd support (optional) ####
1246 AC_ARG_ENABLE([systemd-daemon],
1247 AS_HELP_STRING([--disable-systemd-daemon],[Disable optional systemd daemon (socket activation) support]))
1249 AC_ARG_ENABLE([systemd-login],
1250 AS_HELP_STRING([--disable-systemd-login],[Disable optional systemd login support]))
1252 AC_ARG_ENABLE([systemd-journal],
1253 AS_HELP_STRING([--disable-systemd-journal],[Disable optional systemd journal support]))
1255 # Newer systemd's combine their subcomponent libraries into one
1256 # If it exists, we should use it for the further checks
1258 AS_IF([test "x$enable_systemd_daemon" != "xno" || test "x$enable_systemd_login" != "xno" || test "x$enable_systemd_journal" != "xno"],
1259 [PKG_CHECK_MODULES(SYSTEMD, [ libsystemd ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)],
1262 AS_IF([test "x$HAVE_SYSTEMD" = "x1"],
1264 HAVE_SYSTEMD_DAEMON=1
1265 HAVE_SYSTEMD_LOGIN=1
1266 HAVE_SYSTEMD_JOURNAL=1
1269 AC_ARG_WITH([systemduserunitdir],
1270 AS_HELP_STRING([--with-systemduserunitdir=DIR], [Directory for systemd user service files]),
1271 [], [with_systemduserunitdir=$($PKG_CONFIG --variable=systemduserunitdir systemd)])
1272 if test "x$with_systemduserunitdir" != xno; then
1273 AC_SUBST([systemduserunitdir], [$with_systemduserunitdir])
1276 #### systemd daemon support (optional) ####
1278 AS_IF([test "x$enable_systemd_daemon" != "xno"],
1279 [AS_IF([test "x$HAVE_SYSTEMD_DAEMON" != "x1"], [PKG_CHECK_MODULES(SYSTEMDDAEMON, [ libsystemd-daemon ], HAVE_SYSTEMD_DAEMON=1, HAVE_SYSTEMD_DAEMON=0)])],
1280 HAVE_SYSTEMD_DAEMON=0)
1282 AS_IF([test "x$enable_systemd_daemon" = "xyes" && test "x$HAVE_SYSTEMD_DAEMON" = "x0"],
1283 [AC_MSG_ERROR([*** Needed systemd daemon support not found])])
1285 AC_SUBST(HAVE_SYSTEMD_DAEMON)
1286 AM_CONDITIONAL([HAVE_SYSTEMD_DAEMON], [test "x$HAVE_SYSTEMD_DAEMON" = x1])
1287 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], AC_DEFINE([HAVE_SYSTEMD_DAEMON], 1, [Have SYSTEMDDAEMON?]))
1289 #### systemd login support (optional) ####
1291 AS_IF([test "x$enable_systemd_login" != "xno"],
1292 [AS_IF([test "x$HAVE_SYSTEMD_LOGIN" != "x1"], [PKG_CHECK_MODULES(SYSTEMDLOGIN, [ libsystemd-login ], HAVE_SYSTEMD_LOGIN=1, HAVE_SYSTEMD_LOGIN=0)])],
1293 HAVE_SYSTEMD_LOGIN=0)
1295 AS_IF([test "x$enable_systemd_login" = "xyes" && test "x$HAVE_SYSTEMD_LOGIN" = "x0"],
1296 [AC_MSG_ERROR([*** Needed systemd login support not found])])
1298 AC_SUBST(HAVE_SYSTEMD_LOGIN)
1299 AM_CONDITIONAL([HAVE_SYSTEMD_LOGIN], [test "x$HAVE_SYSTEMD_LOGIN" = x1])
1300 AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], AC_DEFINE([HAVE_SYSTEMD_LOGIN], 1, [Have SYSTEMDLOGIN?]))
1302 #### systemd journal support (optional) ####
1304 AS_IF([test "x$enable_systemd_journal" != "xno"],
1305 [AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" != "x1"], [PKG_CHECK_MODULES(SYSTEMDJOURNAL, [ libsystemd-journal ], HAVE_SYSTEMD_JOURNAL=1, HAVE_SYSTEMD_JOURNAL=0)])],
1306 HAVE_SYSTEMD_JOURNAL=0)
1308 AS_IF([test "x$enable_systemd_journal" = "xyes" && test "x$HAVE_SYSTEMD_JOURNAL" = "x0"],
1309 [AC_MSG_ERROR([*** Needed systemd journal support not found])])
1311 AC_SUBST(HAVE_SYSTEMD_JOURNAL)
1312 AM_CONDITIONAL([HAVE_SYSTEMD_JOURNAL], [test "x$HAVE_SYSTEMD_JOURNAL" = x1])
1313 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], AC_DEFINE([HAVE_SYSTEMD_JOURNAL], 1, [Have SYSTEMDJOURNAL?]))
1315 #### GStreamer-based RTP support (optional) ####
1317 AC_ARG_ENABLE([gstreamer],
1318 AS_HELP_STRING([--disable-gstreamer],[Disable optional GStreamer-based RTP support]))
1320 AS_IF([test "x$enable_gstreamer" != "xno"],
1321 [PKG_CHECK_MODULES(GSTREAMER, [ gstreamer-1.0 gstreamer-app-1.0 gstreamer-rtp-1.0 gio-2.0 ],
1322 HAVE_GSTREAMER=1, HAVE_GSTREAMER=0)],
1325 AS_IF([test "x$enable_gstreamer" = "xyes" && test "x$HAVE_GSTREAMER" = "x0"],
1326 [AC_MSG_ERROR([*** GStreamer 1.0 support not found])])
1328 AM_CONDITIONAL([HAVE_GSTREAMER], [test "x$HAVE_GSTREAMER" = x1])
1329 AS_IF([test "x$HAVE_GSTREAMER" = "x1"], AC_DEFINE([HAVE_GSTREAMER], 1, [Have GStreamer?]))
1331 #### Build and Install man pages ####
1333 AC_ARG_ENABLE([manpages],
1334 AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]))
1336 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" != "xno"])
1338 #### PulseAudio system group & user #####
1340 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1341 if test -z "$with_system_user" ; then
1342 PA_SYSTEM_USER=pulse
1344 PA_SYSTEM_USER=$with_system_user
1346 AC_SUBST(PA_SYSTEM_USER)
1347 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1349 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1350 if test -z "$with_system_group" ; then
1351 PA_SYSTEM_GROUP=pulse
1353 PA_SYSTEM_GROUP=$with_system_group
1355 AC_SUBST(PA_SYSTEM_GROUP)
1356 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1358 AC_ARG_WITH(access_group,AS_HELP_STRING([--with-access-group=<group>],[Group which is allowed access to a system-wide PulseAudio daemon (pulse-access)]))
1359 if test -z "$with_access_group" ; then
1360 PA_ACCESS_GROUP=pulse-access
1362 PA_ACCESS_GROUP=$with_access_group
1364 AC_SUBST(PA_ACCESS_GROUP)
1365 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1367 AC_ARG_ENABLE([per-user-esound-socket],
1368 AS_HELP_STRING([--disable-per-user-esound-socket],[Use global esound socket directory /tmp/.esd/socket.]))
1370 if test "x$enable_per_user_esound_socket" != "xno"; then
1371 USE_PER_USER_ESOUND_SOCKET=1
1372 AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1374 USE_PER_USER_ESOUND_SOCKET=0
1377 #### PulseAudio system runtime dir ####
1379 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1380 AX_DEFINE_DIR(PA_SYSTEM_RUNTIME_PATH, PA_SYSTEM_RUNTIME_PATH, [System runtime dir])
1381 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1382 AX_DEFINE_DIR(PA_SYSTEM_CONFIG_PATH, PA_SYSTEM_CONFIG_PATH, [System config dir])
1383 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1384 AX_DEFINE_DIR(PA_SYSTEM_STATE_PATH, PA_SYSTEM_STATE_PATH, [System state dir])
1386 PA_BINARY=${bindir}/pulseaudio${EXEEXT}
1387 AX_DEFINE_DIR(PA_BINARY, PA_BINARY, [Location of pulseaudio binary])
1389 PACTL_BINARY=${bindir}/pactl${EXEEXT}
1390 AX_DEFINE_DIR(PACTL_BINARY, PACTL_BINARY, [Location of pactl binary])
1392 AC_SUBST(PA_SOEXT, [.so])
1393 AC_DEFINE(PA_SOEXT, [".so"], [Shared object extension])
1395 AC_SUBST(pulseconfdir, ["${sysconfdir}/pulse"])
1396 AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR, pulseconfdir, [Location of configuration files])
1398 #### Mac OSX specific stuff #####
1400 AC_ARG_ENABLE(mac-universal,
1401 AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries]),
1402 enable_mac_universal=$enableval, enable_mac_universal="no")
1404 AC_ARG_WITH(mac-version-min,
1405 AS_HELP_STRING([--with-mac-version-min=<version>], [Defines the earliest version of MacOS X that the executables will run on.]),
1406 mac_version_min=$withval, mac_version_min="10.5")
1408 AC_ARG_WITH(mac-sysroot,
1409 AS_HELP_STRING([--with-mac-sysroot=<path>], [SDK basedir to use as the logical root directory for headers and libraries.]),
1410 mac_sysroot=$withval)
1412 if test "x$os_is_darwin" = "x1" ; then
1413 LDFLAGS="$LDFLAGS -mmacosx-version-min=$mac_version_min"
1414 CFLAGS="$CFLAGS -mmacosx-version-min=$mac_version_min"
1416 if test "x$mac_sysroot" != "x" ; then
1417 LDFLAGS="$LDFLAGS -isysroot $mac_sysroot"
1418 CFLAGS="$CFLAGS -isysroot $mac_sysroot"
1421 if test "x$enable_mac_universal" = "xyes" ; then
1422 mac_arches="-arch i386 -arch x86_64"
1423 LDFLAGS="$LDFLAGS $mac_arches"
1424 CFLAGS="$CFLAGS $mac_arches"
1428 AC_ARG_ENABLE([webrtc-aec],
1429 AS_HELP_STRING([--enable-webrtc-aec], [Enable the optional WebRTC-based echo canceller]))
1431 AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "$HAVE_CXX11" = "0"],
1432 [AC_MSG_ERROR([*** webrtc-audio-processing needs C++11 support])])
1434 AS_IF([test "x$enable_webrtc_aec" != "xno"],
1435 [PKG_CHECK_MODULES(WEBRTC, [ webrtc-audio-processing >= 0.2 ], [HAVE_WEBRTC=1], [HAVE_WEBRTC=0])],
1438 AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "x$HAVE_WEBRTC" = "x0"],
1439 [AC_MSG_ERROR([*** webrtc-audio-processing library not found])])
1441 AM_CONDITIONAL([HAVE_WEBRTC], [test "x$HAVE_WEBRTC" = "x1"])
1443 AC_ARG_ENABLE([adrian-aec],
1444 AS_HELP_STRING([--enable-adrian-aec], [Enable Adrian's optional echo canceller]))
1445 AS_IF([test "x$enable_adrian_aec" != "xno"],
1447 AM_CONDITIONAL([HAVE_ADRIAN_EC], [test "x$HAVE_ADRIAN_EC" = "x1"])
1450 #### Thread support ####
1453 AS_IF([test "$ac_cv_tls" = "__thread"],
1454 AC_DEFINE([SUPPORT_TLS___THREAD], 1, [Define this if the compiler supports __thread for Thread-Local Storage]))
1456 # Win32 build breaks with win32 pthread installed
1457 AS_IF([test "x$os_is_win32" != "x1"],
1460 AS_IF([test "x$ax_pthread_ok" = "xyes"],
1461 AC_DEFINE([_POSIX_PTHREAD_SEMANTICS], 1, [Needed on Solaris]))
1465 ###################################
1467 ###################################
1469 AC_DEFINE_UNQUOTED(PA_CFLAGS, "$CFLAGS", [The CFLAGS used during compilation])
1471 # Check whether to build tests by default (as compile-test) or not
1472 AC_ARG_ENABLE([default-build-tests],
1473 AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
1474 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
1476 AC_ARG_ENABLE([legacy-database-entry-format],
1477 AS_HELP_STRING([--disable-legacy-database-entry-format], [Try to load legacy (< 1.0) database files (card, device and volume restore).]))
1478 if test "x$enable_legacy_database_entry_format" != "xno" ; then
1479 AC_DEFINE(ENABLE_LEGACY_DATABASE_ENTRY_FORMAT, [1], [Legacy database entry format])
1482 AC_ARG_ENABLE([stream-restore-clear-old-devices],
1483 AS_HELP_STRING([--enable-stream-restore-clear-old-devices], [Forget per-stream routing settings that have been set before version 14.0. Recommended when using GNOME. See https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832]))
1484 if test "x$enable_stream_restore_clear_old_devices" == "xyes" ; then
1485 AC_DEFINE(STREAM_RESTORE_CLEAR_OLD_DEVICES, [1], [module-stream-restore: Clear old devices])
1488 AC_ARG_ENABLE([static-bins],
1489 AS_HELP_STRING([--enable-static-bins],[Statically link executables.]))
1490 AM_CONDITIONAL([STATIC_BINS], [test "x$enable_static_bins" = "xyes"])
1494 AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1495 [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1496 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1497 if test "x$PREOPEN_MODS" != "xall" ; then
1499 for mod in $PREOPEN_MODS; do
1500 tmpLIBS="$tmpLIBS module-$mod.la"
1502 PREOPEN_MODS="$tmpLIBS"
1503 AC_SUBST(PREOPEN_MODS)
1508 AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]),
1509 [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"])
1511 AC_SUBST(modlibexecdir)
1512 AX_DEFINE_DIR(PA_DLSEARCHPATH, modlibexecdir, [Modules dir])
1516 AS_HELP_STRING([--with-alsa-data-dir],[Directory for ALSA card profiles (defaults to ${datadir}/pulseaudio/alsa-mixer)]),
1517 [alsadatadir=$withval], [alsadatadir="${datadir}/pulseaudio/alsa-mixer"])
1519 AC_SUBST(alsadatadir)
1523 AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1524 [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1526 AC_SUBST(udevrulesdir)
1528 AC_ARG_WITH([bash-completion-dir],
1529 AS_HELP_STRING([--with-bash-completion-dir=DIR], [Directory for bash completion files]),
1530 [bashcompletiondir=$withval], [bashcompletiondir=$($PKG_CONFIG --variable=completionsdir bash-completion)])
1531 if test "x$bashcompletionsdir" = "x"; then
1532 bashcompletiondir="${datadir}/bash-completion/completions"
1535 AC_SUBST(bashcompletiondir)
1538 [zsh-completion-dir],
1539 AS_HELP_STRING([--with-zsh-completion-dir], [Zsh completions directory (defaults to ${datadir}/zsh/site-functions)]),
1540 [zshcompletiondir=$withval], [zshcompletiondir="${datadir}/zsh/site-functions"])
1542 AC_SUBST(zshcompletiondir)
1544 AC_ARG_ENABLE([force-preopen],
1545 AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]))
1547 if test "x$enable_force_preopen" = "xyes"; then
1553 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1555 # Substitute the variable with an empty string. This makes the output go to the
1556 # directory where doxygen is run (which is the doxygen directory under the
1557 # build directory). Substituting a variable with a constant value wouldn't
1558 # otherwise make sense, but the substitution variable needs to exist, because
1559 # we substitute a different value when using Meson.
1560 AC_SUBST([DOXYGEN_OUTPUT_DIRECTORY], [])
1568 libpulse-mainloop-glib.pc
1570 doxygen/doxygen.conf
1573 man/pulseaudio.1.xml
1574 man/pax11publish.1.xml
1578 man/pasuspender.1.xml
1580 man/pulse-daemon.conf.5.xml
1581 man/pulse-client.conf.5.xml
1582 man/default.pa.5.xml
1583 man/pulse-cli-syntax.5.xml
1584 man/start-pulseaudio-x11.1.xml
1587 AS_IF([test "x$HAVE_ESOUND" = "x1"],
1589 AC_CONFIG_FILES([man/esdcompat.1.xml])
1590 AC_CONFIG_FILES([src/esdcompat:src/daemon/esdcompat.in], [chmod +x src/esdcompat])
1593 AC_CONFIG_FILES([src/start-pulseaudio-x11:src/daemon/start-pulseaudio-x11.in], [chmod +x src/start-pulseaudio-x11])
1594 AC_CONFIG_FILES([src/client.conf:src/pulse/client.conf.in])
1595 AC_CONFIG_FILES([src/daemon.conf:src/daemon/daemon.conf.in],
1596 [m4 src/daemon.conf > src/daemon.conf.gen && mv src/daemon.conf.gen src/daemon.conf])
1597 AC_CONFIG_FILES([src/default.pa:src/daemon/default.pa.in],
1598 [m4 src/default.pa > src/default.pa.gen && mv src/default.pa.gen src/default.pa])
1599 AC_CONFIG_FILES([src/system.pa:src/daemon/system.pa.in],
1600 [m4 src/system.pa > src/system.pa.gen && mv src/system.pa.gen src/system.pa])
1601 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"],
1603 AC_CONFIG_FILES([src/pulseaudio.service:src/daemon/systemd/user/pulseaudio.service.in])
1606 # CMake related ProjectConfig files
1608 AX_DEFINE_DIR(PA_LIBDIR, PA_LIBDIR, [PulseAudio library dir])
1609 PA_INCDIR="$includedir"
1610 AX_DEFINE_DIR(PA_INCDIR, PA_INCDIR, [PulseAudio include dir])
1612 AC_CONFIG_FILES([PulseAudioConfig.cmake:PulseAudioConfig.cmake.in],
1613 [m4 PulseAudioConfig.cmake > PulseAudioConfig.cmake.gen && mv PulseAudioConfig.cmake.gen PulseAudioConfig.cmake])
1614 AC_CONFIG_FILES([PulseAudioConfigVersion.cmake])
1618 # ==========================================================================
1620 AS_IF([test "x$HAVE_MEMFD" = "x1"], ENABLE_MEMFD=yes, ENABLE_MEMFD=no)
1621 AS_IF([test "x$HAVE_X11" = "x1"], ENABLE_X11=yes, ENABLE_X11=no)
1622 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], ENABLE_OSS_OUTPUT=yes, ENABLE_OSS_OUTPUT=no)
1623 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no)
1624 AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no)
1625 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no)
1626 AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no)
1627 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no)
1628 AS_IF([test "x$HAVE_GLIB20" = "x1"], ENABLE_GLIB20=yes, ENABLE_GLIB20=no)
1629 AS_IF([test "x$HAVE_GTK30" = "x1"], ENABLE_GTK30=yes, ENABLE_GTK30=no)
1630 AS_IF([test "x$HAVE_GCONF" = "x1"], ENABLE_GCONF=yes, ENABLE_GCONF=no)
1631 AS_IF([test "x$HAVE_GSETTINGS" = "x1"], ENABLE_GSETTINGS=yes, ENABLE_GSETTINGS=no)
1632 AS_IF([test "x$HAVE_AVAHI" = "x1"], ENABLE_AVAHI=yes, ENABLE_AVAHI=no)
1633 AS_IF([test "x$HAVE_JACK" = "x1"], ENABLE_JACK=yes, ENABLE_JACK=no)
1634 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], ENABLE_LIBASYNCNS=yes, ENABLE_LIBASYNCNS=no)
1635 AS_IF([test "x$HAVE_LIRC" = "x1"], ENABLE_LIRC=yes, ENABLE_LIRC=no)
1636 AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
1637 AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
1638 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], ENABLE_SYSTEMD_DAEMON=yes, ENABLE_SYSTEMD_DAEMON=no)
1639 AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], ENABLE_SYSTEMD_LOGIN=yes, ENABLE_SYSTEMD_LOGIN=no)
1640 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], ENABLE_SYSTEMD_JOURNAL=yes, ENABLE_SYSTEMD_JOURNAL=no)
1641 AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], ENABLE_BLUEZ_5=yes, ENABLE_BLUEZ_5=no)
1642 AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], ENABLE_BLUEZ_5_OFONO_HEADSET=yes, ENABLE_BLUEZ_5_OFONO_HEADSET=no)
1643 AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], ENABLE_BLUEZ_5_NATIVE_HEADSET=yes, ENABLE_BLUEZ_5_NATIVE_HEADSET=no)
1644 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
1645 AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
1646 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE="yes (DEPRECATED)", ENABLE_LIBSAMPLERATE=no)
1647 AS_IF([test "x$HAVE_IPV6" = "x1"], ENABLE_IPV6=yes, ENABLE_IPV6=no)
1648 AS_IF([test "x$HAVE_OPENSSL" = "x1"], ENABLE_OPENSSL=yes, ENABLE_OPENSSL=no)
1649 AS_IF([test "x$HAVE_FFTW" = "x1"], ENABLE_FFTW=yes, ENABLE_FFTW=no)
1650 AS_IF([test "x$HAVE_ORC" = "xyes"], ENABLE_ORC=yes, ENABLE_ORC=no)
1651 AS_IF([test "x$HAVE_ADRIAN_EC" = "x1"], ENABLE_ADRIAN_EC=yes, ENABLE_ADRIAN_EC=no)
1652 AS_IF([test "x$HAVE_SPEEX" = "x1"], ENABLE_SPEEX=yes, ENABLE_SPEEX=no)
1653 AS_IF([test "x$HAVE_SOXR" = "x1"], ENABLE_SOXR=yes, ENABLE_SOXR=no)
1654 AS_IF([test "x$HAVE_WEBRTC" = "x1"], ENABLE_WEBRTC=yes, ENABLE_WEBRTC=no)
1655 AS_IF([test "x$HAVE_GSTREAMER" = "x1"], ENABLE_GSTREAMER=yes, ENABLE_GSTREAMER=no)
1656 AS_IF([test "x$HAVE_TDB" = "x1"], ENABLE_TDB=yes, ENABLE_TDB=no)
1657 AS_IF([test "x$HAVE_GDBM" = "x1"], ENABLE_GDBM=yes, ENABLE_GDBM=no)
1658 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no)
1659 AS_IF([test "x$HAVE_ESOUND" = "x1"], ENABLE_ESOUND=yes, ENABLE_ESOUND=no)
1660 AS_IF([test "x$HAVE_ESOUND" = "x1" -a "x$USE_PER_USER_ESOUND_SOCKET" = "x1"], ENABLE_PER_USER_ESOUND_SOCKET=yes, ENABLE_PER_USER_ESOUND_SOCKET=no)
1661 AS_IF([test "x$HAVE_GCOV" = "x1"], ENABLE_GCOV=yes, ENABLE_GCOV=no)
1662 AS_IF([test "x$HAVE_LIBCHECK" = "x1"], ENABLE_TESTS=yes, ENABLE_TESTS=no)
1663 AS_IF([test "x$enable_legacy_database_entry_format" != "xno"], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no)
1664 AS_IF([test "x$enable_stream_restore_clear_old_devices" == "xyes"], ENABLE_STREAM_RESTORE_CLEAR_OLD_DEVICES=yes, ENABLE_STREAM_RESTORE_CLEAR_OLD_DEVICES=no)
1667 ---{ $PACKAGE_NAME $VERSION }---
1670 sysconfdir: ${sysconfdir}
1671 localstatedir: ${localstatedir}
1672 modlibexecdir: ${modlibexecdir}
1673 alsadatadir: ${alsadatadir}
1674 System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH}
1675 System State Path: ${PA_SYSTEM_STATE_PATH}
1676 System Config Path: ${PA_SYSTEM_CONFIG_PATH}
1677 Zsh completions directory: ${zshcompletiondir}
1678 Bash completions directory: ${bashcompletiondir}
1681 CPPFLAGS: ${CPPFLAGS}
1684 Enable memfd shared memory: ${ENABLE_MEMFD}
1685 Enable X11: ${ENABLE_X11}
1686 Enable OSS Output: ${ENABLE_OSS_OUTPUT}
1687 Enable OSS Wrapper: ${ENABLE_OSS_WRAPPER}
1688 Enable EsounD: ${ENABLE_ESOUND}
1689 Enable Alsa: ${ENABLE_ALSA}
1690 Enable CoreAudio: ${ENABLE_COREAUDIO}
1691 Enable Solaris: ${ENABLE_SOLARIS}
1692 Enable WaveOut: ${ENABLE_WAVEOUT}
1693 Enable GLib 2.0: ${ENABLE_GLIB20}
1694 Enable Gtk+ 3.0: ${ENABLE_GTK30}
1695 Enable GConf: ${ENABLE_GCONF}
1696 Enable GSettings: ${ENABLE_GSETTINGS}
1697 Enable Avahi: ${ENABLE_AVAHI}
1698 Enable Jack: ${ENABLE_JACK}
1699 Enable Async DNS: ${ENABLE_LIBASYNCNS}
1700 Enable LIRC: ${ENABLE_LIRC}
1701 Enable D-Bus: ${ENABLE_DBUS}
1702 Enable BlueZ 5: ${ENABLE_BLUEZ_5}
1703 Enable ofono headsets: ${ENABLE_BLUEZ_5_OFONO_HEADSET}
1704 Enable native headsets: ${ENABLE_BLUEZ_5_NATIVE_HEADSET}
1705 Enable udev: ${ENABLE_UDEV}
1706 Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
1708 Daemon (Socket Activation): ${ENABLE_SYSTEMD_DAEMON}
1709 Login (Session Tracking): ${ENABLE_SYSTEMD_LOGIN}
1710 Journal (Logging): ${ENABLE_SYSTEMD_JOURNAL}
1711 Enable TCP Wrappers: ${ENABLE_TCPWRAP}
1712 Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
1713 Enable IPv6: ${ENABLE_IPV6}
1714 Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1715 Enable fftw: ${ENABLE_FFTW}
1716 Enable orc: ${ENABLE_ORC}
1717 Enable Adrian echo canceller: ${ENABLE_ADRIAN_EC}
1718 Enable speex (resampler, AEC): ${ENABLE_SPEEX}
1719 Enable soxr (resampler): ${ENABLE_SOXR}
1720 Enable WebRTC echo canceller: ${ENABLE_WEBRTC}
1721 Enable GStreamer-based RTP: ${ENABLE_GSTREAMER}
1722 Enable gcov coverage: ${ENABLE_GCOV}
1723 Enable unit tests: ${ENABLE_TESTS}
1726 gdbm: ${ENABLE_GDBM}
1727 simple database: ${ENABLE_SIMPLEDB}
1729 System User: ${PA_SYSTEM_USER}
1730 System Group: ${PA_SYSTEM_GROUP}
1731 Access Group: ${PA_ACCESS_GROUP}
1732 Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1733 Force preopen: ${FORCE_PREOPEN}
1734 Preopened modules: ${PREOPEN_MODS}
1736 Legacy Database Entry Support: ${ENABLE_LEGACY_DATABASE_ENTRY_FORMAT}
1737 module-stream-restore:
1738 Clear old devices: ${ENABLE_STREAM_RESTORE_CLEAR_OLD_DEVICES}
1741 if test "${ENABLE_SPEEX}" = "no" && test "${ENABLE_WEBRTC}" = "no" && test "${ENABLE_ADRIAN_EC}" = "no" ; then
1742 AC_MSG_ERROR([At least one echo canceller implementation must be available.])
1745 if test "${ENABLE_DBUS}" = "no" && test "x$os_is_win32" != "x1" ; then
1747 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1748 You do not have D-Bus support enabled. It is strongly recommended
1749 that you enable D-Bus support if your platform supports it.
1750 Many parts of PulseAudio use D-Bus, from ConsoleKit interaction
1751 to the Device Reservation Protocol to speak to JACK, Bluetooth
1752 support and even a native control protocol for communicating and
1753 controlling the PulseAudio daemon itself.
1754 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1758 if test "${ENABLE_UDEV}" = "no" && test "x$os_is_win32" != "x1" ; then
1760 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1761 You do not have udev support enabled. It is strongly recommended
1762 that you enable udev support if your platform supports it as it is
1763 the primary method used to detect hardware audio devices (on Linux)
1764 and is thus a critical part of PulseAudio on that platform.
1765 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1769 if test "${ENABLE_SPEEX}" = "no" && test "x$os_is_win32" != "x1" ; then
1771 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1772 You do not have speex support enabled. It is strongly recommended
1773 that you enable speex support if your platform supports it as it is
1774 the primary method used for audio resampling and is thus a critical
1775 part of PulseAudio on that platform.
1776 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====