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])
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 # In principle we would test for <afunix.h>, but that doesn't ship (yet) with the
439 AC_CHECK_HEADERS([winsock2.h], [HAVE_AF_UNIX=1], [])
440 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
441 AC_SUBST(HAVE_AF_UNIX)
444 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
445 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
447 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
450 AC_CHECK_HEADERS_ONCE([sys/conf.h sys/filio.h])
453 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
456 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
459 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
460 AC_CHECK_HEADERS_ONCE([byteswap.h])
461 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
462 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
463 AC_CHECK_HEADERS_ONCE([execinfo.h])
464 AC_CHECK_HEADERS_ONCE([langinfo.h])
465 AC_CHECK_HEADERS_ONCE([regex.h pcreposix.h])
466 AC_CHECK_HEADERS_ONCE([locale.h xlocale.h])
468 AM_CONDITIONAL(HAVE_SYS_EVENTFD_H, test "x$ac_cv_header_sys_eventfd_h" = "xyes")
470 #### Typdefs, structures, etc. ####
476 AC_CHECK_TYPES(ssize_t, , AC_DEFINE([ssize_t], [signed long], [Define ssize_t if it is not done by the standard libs.]))
480 AC_CHECK_DECLS(environ)
482 AC_CHECK_SIZEOF(void*)
484 fast_64bit_operations="no"
485 # This check covers x32-ABI
486 AC_CHECK_DECL([__x86_64__], [fast_64bit_operations="yes"], [], [])
487 if test "x$fast_64bit_operations" = "xno"; then
488 AS_IF([test $ac_cv_sizeof_voidp -ge 8], [fast_64bit_operations="yes"])
491 AS_IF([test "x$fast_64bit_operations" = "xyes"], AC_DEFINE([HAVE_FAST_64BIT_OPERATIONS], 1, [Have CPU with fast 64-bit operations?]))
494 AX_CHECK_DEFINE([signal.h], [SIGXCPU], [HAVE_SIGXCPU=1], [HAVE_SIGXCPU=0])
495 AS_IF([test "x$HAVE_SIGXCPU" = "x1"], AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?]))
496 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
498 # INADDR_NONE, Solaris lacks this
499 AX_CHECK_DEFINE([netinet/in.h], [INADDR_NONE], [],
500 [AX_CHECK_DEFINE([winsock2.h], [INADDR_NONE], [],
501 [AC_DEFINE([INADDR_NONE], [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
505 AC_CACHE_CHECK([whether $CC knows _Bool],
508 [AC_LANG_PROGRAM([], [[_Bool b;]])],
509 [pulseaudio_cv__Bool=yes],
510 [pulseaudio_cv__Bool=no])
513 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.]))
516 #### Check for libs ####
519 AC_SEARCH_LIBS([pow], [m])
522 AC_SEARCH_LIBS([sched_setscheduler], [rt])
523 AC_SEARCH_LIBS([dlopen], [dl])
524 AC_SEARCH_LIBS([shm_open], [rt])
525 AC_SEARCH_LIBS([inet_ntop], [nsl])
526 AC_SEARCH_LIBS([timer_create], [rt])
527 AC_SEARCH_LIBS([pthread_setaffinity_np], [pthread])
528 AC_SEARCH_LIBS([pthread_getname_np], [pthread])
529 AC_SEARCH_LIBS([pthread_setname_np], [pthread])
532 AC_SEARCH_LIBS([connect], [socket])
533 AC_SEARCH_LIBS([backtrace], [execinfo ubacktrace])
536 if test "x$os_is_darwin" = "x1" ; then
537 AC_MSG_CHECKING([looking for Apple CoreService Framework])
538 AC_CHECK_HEADER([CoreServices/CoreServices.h],
539 [LIBS="$LIBS -framework CoreServices"],
540 [AC_MSG_ERROR([CoreServices.h header file not found])]
544 AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
548 AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
551 AC_SEARCH_LIBS([regexec], [pcreposix])
552 # This magic is needed so we do not needlessly add static libs to the win32 build, disabling its ability to make dlls.
553 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
556 #### Check for functions ####
559 AC_CHECK_FUNCS_ONCE([lrintf strtof])
564 AC_CHECK_FUNCS_ONCE([chmod chown fstat fchown fchmod clock_gettime getaddrinfo getgrgid_r getgrnam_r \
565 getpwnam_r getpwuid_r gettimeofday getuid mlock nanosleep \
566 pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
567 sigaction sleep symlink sysconf uname pthread_getname_np pthread_setname_np])
568 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
569 AC_SUBST(HAVE_MKFIFO)
570 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
571 AC_CHECK_FUNCS([pthread_setaffinity_np], [HAVE_PTHREAD_SETAFFINITY_NP=1], [HAVE_PTHREAD_SETAFFINITY_NP=0])
572 AM_CONDITIONAL(HAVE_PTHREAD_SETAFFINITY_NP, test "x$HAVE_PTHREAD_SETAFFINITY_NP" = "x1")
575 AC_CHECK_FUNCS_ONCE([readlink])
578 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
581 AC_CHECK_FUNCS_ONCE([strerror_r])
584 AC_CHECK_FUNCS_ONCE([lstat paccept])
587 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtod_l pipe2 accept4])
591 AC_CHECK_FUNCS([regexec], [HAVE_REGEX=1], [HAVE_REGEX=0])
592 AM_CONDITIONAL(HAVE_REGEX, [test "x$HAVE_REGEX" = "x1"])
594 # Large File-Support (LFS)
596 # Check for open64 to know if the current system does have open64() and similar functions
597 AC_CHECK_FUNCS_ONCE([open64])
599 AC_SEARCH_LIBS([dladdr], [dl], [HAVE_DLADDR=1], [HAVE_DLADDR=0])
600 AC_DEFINE(HAVE_DLADDR, [1], [Have dladdr?])
602 ###################################
603 # External libraries #
604 ###################################
610 #### Linux memfd_create(2) SHM support ####
612 AC_ARG_ENABLE([memfd],
613 AS_HELP_STRING([--disable-memfd], [Disable Linux memfd shared memory]))
615 AS_IF([test "x$enable_memfd" != "xno"],
616 AC_CHECK_DECL(SYS_memfd_create, [HAVE_MEMFD=1], [HAVE_MEMFD=0], [#include <sys/syscall.h>]),
619 AS_IF([test "x$enable_memfd" = "xyes" && test "x$HAVE_MEMFD" = "x0"],
620 [AC_MSG_ERROR([*** Your Linux kernel does not support memfd shared memory.
621 *** Use linux v3.17 or higher for such a feature.])])
623 AS_IF([test "x$HAVE_MEMFD" = "x1"],
624 AC_CHECK_FUNCS([memfd_create]))
627 AM_CONDITIONAL([HAVE_MEMFD], [test "x$HAVE_MEMFD" = x1])
628 AS_IF([test "x$HAVE_MEMFD" = "x1"], AC_DEFINE([HAVE_MEMFD], 1, [Have memfd shared memory.]))
630 #### X11 (optional) ####
633 AS_HELP_STRING([--disable-x11],[Disable optional X11 support]))
635 AS_IF([test "x$enable_x11" != "xno"],
636 [PKG_CHECK_MODULES(X11, [ x11-xcb xcb >= 1.6 ice sm xtst ], HAVE_X11=1, HAVE_X11=0)],
639 AS_IF([test "x$enable_x11" = "xyes" && test "x$HAVE_X11" = "x0"],
640 [AC_MSG_ERROR([*** X11 not found])])
643 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
644 AS_IF([test "x$HAVE_X11" = "x1"], AC_DEFINE([HAVE_X11], 1, [Have X11?]))
646 #### Capabilities (optional) ####
651 AS_HELP_STRING([--without-caps],[Omit support for dropping capabilities.]))
653 if test "x${with_caps}" != "xno"; then
654 AC_SEARCH_LIBS([cap_init], [cap], [], [])
656 # Only give an error on hosts that we know could support capabilities
657 AC_CHECK_HEADERS([sys/capability.h], [], [
658 if test "${host_has_caps}" = "1"; then
659 AC_MSG_ERROR([*** sys/capability.h not found. Use --without-caps to disable capabilities support.])
663 #### Valgrind (optional) ####
665 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
667 #### check unit tests ####
669 AC_ARG_ENABLE([tests],
670 AS_HELP_STRING([--disable-tests],[Disable unit tests]))
672 AS_IF([test "x$enable_tests" != "xno"],
673 [PKG_CHECK_MODULES(LIBCHECK, [ check >= 0.9.10 ], HAVE_LIBCHECK=1, HAVE_LIBCHECK=0)],
676 AS_IF([test "x$enable_tests" = "xyes" && test "x$HAVE_LIBCHECK" = "x0"],
677 [AC_MSG_ERROR([*** check library not found or too old])])
679 AM_CONDITIONAL([HAVE_TESTS], [test "x$HAVE_LIBCHECK" = x1])
683 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
687 AC_MSG_CHECKING([whether we need libatomic_ops])
688 if test "x$need_libatomic_ops" = "xyes"; then
690 AC_CHECK_HEADERS([atomic_ops.h],
691 [CFLAGS="$CFLAGS -DAO_REQUIRE_CAS"],
692 [AC_MSG_ERROR([*** libatomic-ops headers not found])])
694 # Win32 does not need the lib and breaks horribly if we try to include it
695 AS_IF([test "x$os_is_win32" != "x1"], [LIBS="$LIBS -latomic_ops"])
700 #### Libsamplerate support (optional) ####
702 AC_ARG_ENABLE([samplerate],
703 AS_HELP_STRING([--enable-samplerate],[Enable optional libsamplerate support (DEPRECATED)]))
705 AS_IF([test "x$enable_samplerate" = "xyes"],
706 [PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ], HAVE_LIBSAMPLERATE=1, HAVE_LIBSAMPLERATE=0)],
707 HAVE_LIBSAMPLERATE=0)
709 AS_IF([test "x$enable_samplerate" = "xyes" && test "x$HAVE_LIBSAMPLERATE" = "x0"],
710 [AC_MSG_ERROR([*** Libsamplerate not found])])
712 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
713 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?]))
715 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_MSG_WARN([Support for libsamplerate is DEPRECATED]))
717 #### Database support ####
719 AC_ARG_WITH([database],
720 AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
723 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xtdb"],
724 [PKG_CHECK_MODULES(TDB, [ tdb ], HAVE_TDB=1, HAVE_TDB=0)],
726 AS_IF([test "x$HAVE_TDB" = "x1"], with_database=tdb)
728 AS_IF([test "x$with_database" = "xtdb" && test "x$HAVE_TDB" = "x0"],
729 [AC_MSG_ERROR([*** tdb not found])])
732 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xgdbm"],
735 AC_CHECK_LIB(gdbm, gdbm_open, [], HAVE_GDBM=0)
736 AC_CHECK_HEADERS(gdbm.h, [], HAVE_GDBM=0)
739 AS_IF([test "x$HAVE_GDBM" = "x1"],
746 AS_IF([test "x$with_database" = "xgdbm" && test "x$HAVE_GDBM" = "x0"],
747 [AC_MSG_ERROR([*** gdbm not found])])
750 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xsimple"],
753 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], with_database=simple)
755 AS_IF([test "x$HAVE_TDB" != x1 -a "x$HAVE_GDBM" != x1 -a "x$HAVE_SIMPLEDB" != x1],
756 AC_MSG_ERROR([*** missing database backend]))
759 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
760 AS_IF([test "x$HAVE_TDB" = "x1"], AC_DEFINE([HAVE_TDB], 1, [Have tdb?]))
762 AC_SUBST(GDBM_CFLAGS)
764 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
765 AS_IF([test "x$HAVE_GDBM" = "x1"], AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?]))
767 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
768 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?]))
770 #### OSS support (optional) ####
772 AC_ARG_ENABLE([oss-output],
773 AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]))
775 AC_ARG_ENABLE([oss-wrapper],
776 AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]))
778 AC_ARG_WITH([pulsedsp-location],
779 AS_HELP_STRING([--with-pulsedsp-location],[Specify location where OSS wrapper will be installed]))
781 AS_IF([test "x$enable_oss_output" != "xno" -o "x$enable_oss_wrapper" != "xno"],
782 [AC_CHECK_HEADERS([sys/soundcard.h], HAVE_OSS=1, HAVE_OSS=0)],
785 AS_IF([test "x$enable_oss_output" = "xyes" -o "x$enable_oss_wrapper" = "xyes" && test "x$HAVE_OSS" = "x0"],
786 [AC_MSG_ERROR([*** OSS support not found])])
788 AS_IF([test "x$enable_oss_output" != "xno"],
789 [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_OUTPUT=1, HAVE_OSS_OUTPUT=0)],
792 AS_IF([test "x$enable_oss_wrapper" != "xno"],
793 [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_WRAPPER=1, HAVE_OSS_WRAPPER=0)],
796 AS_IF([test "x$with_pulsedsp_location" != "x"],
797 [PULSEDSP_LOCATION="$with_pulsedsp_location"],
798 [PULSEDSP_LOCATION="\$(pkglibdir)"])
800 AC_SUBST(HAVE_OSS_OUTPUT)
801 AC_SUBST(PULSEDSP_LOCATION)
802 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS_OUTPUT" = "x1"])
803 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS_WRAPPER" = "x1"])
804 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?]))
805 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?]))
807 # Some platforms like SunOS (Illumos) may ship without SOUND_PCM_* functionality
808 if test "x$HAVE_OSS" = "x1"; then
809 AC_CHECK_DECLS([SOUND_PCM_READ_RATE], [], [], [[#include <sys/soundcard.h>]])
810 AC_CHECK_DECLS([SOUND_PCM_READ_CHANNELS], [], [], [[#include <sys/soundcard.h>]])
811 AC_CHECK_DECLS([SOUND_PCM_READ_BITS], [], [], [[#include <sys/soundcard.h>]])
814 #### CoreAudio support (optional) ####
816 AC_ARG_ENABLE([coreaudio-output],
817 AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]))
819 AS_IF([test "x$enable_coreaudio_output" != "xno"],
820 [AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1, HAVE_COREAUDIO=0)],
823 AS_IF([test "x$enable_coreaudio_output" = "xyes" && test "x$HAVE_COREAUDIO" = "x0"],
824 [AC_MSG_ERROR([*** CoreAudio output support not found])])
826 AC_SUBST(HAVE_COREAUDIO)
827 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = "x1" && test "x$enable_coreaudio_output" != "xno"])
829 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], AC_DEFINE([HAVE_COREAUDIO], 1, [Have CoreAudio?]))
831 #### ALSA support (optional) ####
833 AC_ARG_ENABLE([alsa],
834 AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]))
836 AS_IF([test "x$enable_alsa" != "xno"],
837 [PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], HAVE_ALSA=1, HAVE_ALSA=0)],
840 AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
841 [AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])])
843 AS_IF([test "x$HAVE_ALSA" = "x1"],
845 save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $ASOUNDLIB_CFLAGS"
846 AC_CHECK_HEADERS([alsa/use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
847 CPPFLAGS="$save_CPPFLAGS"
852 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
853 AS_IF([test "x$HAVE_ALSA" = "x1"], AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]))
854 AS_IF([test "x$HAVE_ALSA_UCM" = "x1"], AC_DEFINE([HAVE_ALSA_UCM], 1, [Have ALSA UCM?]))
856 #### EsounD support (optional) ####
858 AC_ARG_ENABLE([esound],
859 AS_HELP_STRING([--disable-esound],[Disable optional EsounD support]))
860 AM_CONDITIONAL([HAVE_ESOUND], [test "x$enable_esound" != "xno"])
861 AS_IF([test "x$enable_esound" != "xno"], [HAVE_ESOUND=1])
863 #### Solaris audio support (optional) ####
865 AC_ARG_ENABLE([solaris],
866 AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]))
868 AS_IF([test "x$enable_solaris" != "xno"],
869 [AC_CHECK_HEADERS([sys/audio.h], HAVE_SOLARIS=1, HAVE_SOLARIS=0)],
872 AS_IF([test "x$enable_solaris" = "xyes" && test "x$HAVE_SOLARIS" = "x0"],
873 [AC_MSG_ERROR([*** Solaris audio support not found])])
875 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
876 AS_IF([test "x$HAVE_SOLARIS" = "x1"], AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?]))
878 #### WaveOut audio support (optional) ####
880 AC_ARG_ENABLE([waveout],
881 AS_HELP_STRING([--disable-waveout],[Disable optional WaveOut audio support]))
883 AS_IF([test "x$enable_waveout" != "xno"],
884 [AC_CHECK_HEADERS([mmsystem.h], HAVE_WAVEOUT=1, HAVE_WAVEOUT=0, [#include <windows.h>])],
887 AS_IF([test "x$enable_waveout" = "xyes" && test "x$HAVE_WAVEOUT" = "x0"],
888 [AC_MSG_ERROR([*** WaveOut audio support not found])])
890 AC_SUBST(HAVE_WAVEOUT)
891 AM_CONDITIONAL([HAVE_WAVEOUT], [test "x$HAVE_WAVEOUT" = x1])
892 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], AC_DEFINE([HAVE_WAVEOUT], 1, [Have WaveOut audio?]))
894 #### GLib 2 support (optional) ####
896 AC_ARG_ENABLE([glib2],
897 AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]))
899 AS_IF([test "x$enable_glib2" != "xno"],
900 [PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.28.0 ], HAVE_GLIB20=1, HAVE_GLIB20=0)],
903 AS_IF([test "x$enable_glib2" = "xyes" && test "x$HAVE_GLIB20" = "x0"],
904 [AC_MSG_ERROR([*** GLib 2 support not found])])
906 AC_SUBST(HAVE_GLIB20)
907 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
908 AS_IF([test "x$HAVE_GLIB20" = "x1"], AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?]))
910 #### GTK3 support (optional) ####
912 AC_ARG_ENABLE([gtk3],
913 AS_HELP_STRING([--disable-gtk3],[Disable optional Gtk+ 3 support]))
915 AS_IF([test "x$enable_gtk3" != "xno"],
916 [PKG_CHECK_MODULES(GTK30, [ gtk+-3.0 ], HAVE_GTK30=1, HAVE_GTK30=0)],
919 AS_IF([test "x$enable_gtk3" = "xyes" && test "x$HAVE_GTK30" = "x0"],
920 [AC_MSG_ERROR([*** Gtk+ 3 support not found])])
922 AM_CONDITIONAL([HAVE_GTK30], [test "x$HAVE_GTK30" = x1])
923 AS_IF([test "x$HAVE_GTK30" = "x1"], AC_DEFINE([HAVE_GTK], 1, [Have GTK?]))
925 #### GSettings and GConf support (optional) ####
927 AC_ARG_ENABLE([gsettings],
928 AS_HELP_STRING([--disable-gsettings],[Disable optional GSettings support]))
930 AC_ARG_ENABLE([gconf],
931 AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]))
933 AS_IF([test "x$enable_gsettings" != "xno"],
934 [PKG_CHECK_MODULES(GSETTINGS, [ gio-2.0 >= 2.26.0 ], [HAVE_GSETTINGS=1], [HAVE_GSETTINGS=0])],
937 AS_IF([test "x$enable_gsettings" = "xyes" && test "x$HAVE_GSETTINGS" = "x0"],
938 [AC_MSG_ERROR([*** GSettings support not found])])
940 AS_IF([test "x$enable_gconf" != "xno"],
941 [PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ], HAVE_GCONF=1, HAVE_GCONF=0)],
944 AS_IF([test "x$enable_gconf" = "xyes" && test "x$HAVE_GCONF" = "x0"],
945 [AC_MSG_ERROR([*** GConf support not found])])
947 # Enable only one of GSettings and GConf, unless both were explicitly
948 # requested. If neither was explicitly requested and both are available, prefer
949 # GSettings. This is done, because if module-gsettings and module-gconf are
950 # both loaded, they can cause conflicting or at least confusing configuration.
951 # Distributions may want to enable both modules when building PulseAudio, if
952 # they ensure that both modules are never installed at the same time.
953 AS_IF([test "x$HAVE_GSETTINGS" = "x1" && test "x$enable_gconf" != "xyes"],
955 AS_IF([test "x$HAVE_GCONF" = "x1" && test "x$enable_gsettings" != "xyes"],
958 AM_CONDITIONAL([HAVE_GSETTINGS], [test "x$HAVE_GSETTINGS" = "x1"])
959 AC_SUBST([HAVE_GSETTINGS])
960 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = "x1"])
961 AC_SUBST([HAVE_GCONF])
963 if test "x$HAVE_GSETTINGS" = "x1" ; then
967 #### Avahi support (optional) ####
969 AC_ARG_ENABLE([avahi],
970 AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]))
972 AS_IF([test "x$enable_avahi" != "xno"],
973 [PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ], HAVE_AVAHI=1, HAVE_AVAHI=0)],
976 AS_IF([test "x$enable_avahi" = "xyes" && test "x$HAVE_AVAHI" = "x0"],
977 [AC_MSG_ERROR([*** Avahi support not found])])
980 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
982 #### JACK (optional) ####
984 AC_ARG_ENABLE([jack],
985 AS_HELP_STRING([--disable-jack],[Disable optional JACK support]))
987 AS_IF([test "x$enable_jack" != "xno"],
988 [PKG_CHECK_MODULES(JACK, [ jack >= 0.117.0 ], HAVE_JACK=1, HAVE_JACK=0)],
991 AS_IF([test "x$enable_jack" = "xyes" && test "x$HAVE_JACK" = "x0"],
992 [AC_MSG_ERROR([*** JACK support not found])])
994 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
996 #### Async DNS support (optional) ####
998 AC_ARG_ENABLE([asyncns],
999 AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]))
1001 AS_IF([test "x$enable_asyncns" != "xno"],
1002 [PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ], HAVE_LIBASYNCNS=1, HAVE_LIBASYNCNS=0)],
1005 AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
1006 [AC_MSG_ERROR([*** Async DNS support not found])])
1008 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1009 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
1011 #### Running from build tree (optional) ####
1013 AC_ARG_ENABLE([running-from-build-tree],
1014 AS_HELP_STRING([--disable-running-from-build-tree],[Disable running from build tree]))
1016 AS_IF([test "x$enable_running_from_build_tree" != "xno"],
1017 AC_DEFINE([HAVE_RUNNING_FROM_BUILD_TREE], 1, [Have running from build tree]))
1019 AC_SUBST(HAVE_RUNNING_FROM_BUILD_TREE)
1021 #### TCP wrappers (optional) ####
1023 AC_ARG_ENABLE([tcpwrap],
1024 AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]))
1026 AS_IF([test "x$enable_tcpwrap" != "xno"],
1029 AS_IF([test "x$LIBWRAP_LIBS" != "x"], HAVE_TCPWRAP=1, HAVE_TCPWRAP=0)
1033 AS_IF([test "x$enable_tcpwrap" = "xyes" && test "x$HAVE_TCPWRAP" = "x0"],
1034 [AC_MSG_ERROR([*** TCP wrappers support not found])])
1036 AC_SUBST(LIBWRAP_LIBS)
1038 #### LIRC support (optional) ####
1040 AC_ARG_ENABLE([lirc],
1041 AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]))
1046 AS_IF([test "x$enable_lirc" != "xno"],
1049 AC_CHECK_HEADER(lirc/lirc_client.h, [], [HAVE_LIRC=0])
1050 AC_CHECK_LIB(lirc_client, lirc_init, [LIRC_LIBS=-llirc_client], [HAVE_LIRC=0])
1054 AS_IF([test "x$enable_lirc" = "xyes" && test "x$HAVE_LIRC" = "x0"],
1055 [AC_MSG_ERROR([*** LIRC support not found])])
1057 AC_SUBST(LIRC_CFLAGS)
1059 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1061 #### D-Bus support (optional) ####
1063 AC_ARG_ENABLE([dbus],
1064 AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]))
1066 AS_IF([test "x$enable_dbus" != "xno"],
1067 [PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.4.12 ], HAVE_DBUS=1, HAVE_DBUS=0)],
1070 AS_IF([test "x$enable_dbus" = "xyes" && test "x$HAVE_DBUS" = "x0"],
1071 [AC_MSG_ERROR([*** D-Bus not available or too old version])])
1074 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1075 AS_IF([test "x$HAVE_DBUS" = "x1"], AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.]))
1077 PA_MACHINE_ID="${sysconfdir}/machine-id"
1078 AX_DEFINE_DIR(PA_MACHINE_ID, PA_MACHINE_ID, [D-Bus machine-id file])
1079 PA_MACHINE_ID_FALLBACK="${localstatedir}/lib/dbus/machine-id"
1080 AX_DEFINE_DIR(PA_MACHINE_ID_FALLBACK, PA_MACHINE_ID_FALLBACK,
1081 [Fallback machine-id file])
1083 #### BlueZ support (optional, dependent on D-Bus and SBC) ####
1085 AC_ARG_ENABLE([bluez5],
1086 AS_HELP_STRING([--disable-bluez5],[Disable optional BlueZ 5 support]))
1089 AS_IF([test "x$enable_bluez5" != "xno"],
1090 [PKG_CHECK_MODULES(SBC, [ sbc >= 1.0 ], HAVE_SBC=1, HAVE_SBC=0)],
1094 AS_IF([test "x$enable_bluez5" != "xno" && test "x$HAVE_DBUS" = "x1" && test "x$HAVE_SBC" = "x1"], HAVE_BLUEZ_5=1,
1096 AS_IF([test "x$enable_bluez5" = "xyes" && test "x$HAVE_BLUEZ_5" != "x1"],
1097 [AC_MSG_ERROR([*** BLUEZ 5 support not found (requires sbc and D-Bus)])])
1098 AC_SUBST(HAVE_BLUEZ_5)
1099 AM_CONDITIONAL([HAVE_BLUEZ_5], [test "x$HAVE_BLUEZ_5" = x1])
1101 AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], HAVE_BLUEZ=1, HAVE_BLUEZ=0)
1102 AC_SUBST(HAVE_BLUEZ)
1103 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1105 ## Bluetooth Headset profiles backend ##
1107 AC_ARG_ENABLE([bluez5-ofono-headset],
1108 AS_HELP_STRING([--disable-bluez5-ofono-headset],[Disable optional ofono headset backend support (Bluez 5)]))
1109 AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_ofono_headset" != "xno"], HAVE_BLUEZ_5_OFONO_HEADSET=1,
1110 HAVE_BLUEZ_5_OFONO_HEADSET=0)
1111 AC_SUBST(HAVE_BLUEZ_5_OFONO_HEADSET)
1112 AM_CONDITIONAL([HAVE_BLUEZ_5_OFONO_HEADSET], [test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = x1])
1113 AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_OFONO_HEADSET], 1, [Bluez 5 ofono headset backend enabled]))
1115 AC_ARG_ENABLE([bluez5-native-headset],
1116 AS_HELP_STRING([--disable-bluez5-native-headset],[Disable optional native headset backend support (Bluez 5)]))
1117 AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_native_headset" != "xno"],
1118 [PKG_CHECK_MODULES(BLUEZ, [ bluez >= 4.101 ], HAVE_BLUEZ_5_NATIVE_HEADSET=1, HAVE_BLUEZ_5_NATIVE_HEADSET=0)],
1119 HAVE_BLUEZ_5_NATIVE_HEADSET=0)
1120 AS_IF([test "x$enable_bluez5_native_headset" = "xyes" && test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x0"],
1121 [AC_MSG_ERROR([*** BlueZ 5 native headset backend support not available (requires the libbluetooth headers)])])
1122 AC_SUBST(HAVE_BLUEZ_5_NATIVE_HEADSET)
1123 AM_CONDITIONAL([HAVE_BLUEZ_5_NATIVE_HEADSET], [test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = x1])
1124 AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_NATIVE_HEADSET], 1, [Bluez 5 native headset backend enabled]))
1126 #### UDEV support (optional) ####
1128 AC_ARG_ENABLE([udev],
1129 AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]))
1131 AS_IF([test "x$enable_udev" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
1132 [PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], HAVE_UDEV=1, HAVE_UDEV=0)],
1135 AS_IF([test "x$enable_udev" = "xyes" && test "x$HAVE_UDEV" = "x0"],
1136 [AC_MSG_ERROR([*** UDEV support not found])])
1139 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1140 AS_IF([test "x$HAVE_UDEV" = "x1"], AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]))
1142 #### HAL compat support (optional, dependent on UDEV) ####
1144 AC_ARG_ENABLE([hal-compat],
1145 AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]))
1147 AS_IF([test "x$enable_hal_compat" != "xno"],
1148 [AS_IF([test "x$HAVE_UDEV" = "x1"], HAVE_HAL_COMPAT=1, HAVE_HAL_COMPAT=0)],
1151 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1152 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.]))
1154 #### IPv6 connection support (optional) ####
1156 AC_ARG_ENABLE([ipv6],
1157 AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]))
1159 AS_IF([test "x$enable_ipv6" != "xno"], [HAVE_IPV6=1], [HAVE_IPV6=0])
1161 AS_IF([test "x$HAVE_IPV6" = "x1"], AC_DEFINE([HAVE_IPV6], 1, [Define this to enable IPv6 connection support]))
1163 #### OpenSSL support (optional) ####
1165 AC_ARG_ENABLE([openssl],
1166 AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]))
1168 AS_IF([test "x$enable_openssl" != "xno"],
1169 [PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ], HAVE_OPENSSL=1, HAVE_OPENSSL=0)],
1172 AS_IF([test "x$enable_openssl" = "xyes" && test "x$HAVE_OPENSSL" = "x0"],
1173 [AC_MSG_ERROR([*** OpenSSL support not found])])
1175 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1176 AS_IF([test "x$HAVE_OPENSSL" = "x1"], AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL]))
1178 #### FFTW (optional) ####
1181 AS_HELP_STRING([--without-fftw],[Omit FFTW-using modules (equalizer)]))
1183 AS_IF([test "x$with_fftw" != "xno"],
1184 [PKG_CHECK_MODULES(FFTW, [ fftw3f ], HAVE_FFTW=1, HAVE_FFTW=0)],
1187 AS_IF([test "x$with_fftw" = "xyes" && test "x$HAVE_FFTW" = "x0"],
1188 [AC_MSG_ERROR([*** FFTW support not found])])
1190 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1192 #### speex (optional) ####
1194 AC_ARG_WITH([speex],
1195 AS_HELP_STRING([--without-speex],[Omit speex (resampling, AEC)]))
1197 AS_IF([test "x$with_speex" != "xno"],
1198 [PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ], HAVE_SPEEX=1, HAVE_SPEEX=0)],
1201 AS_IF([test "x$with_speex" = "xyes" && test "x$HAVE_SPEEX" = "x0"],
1202 [AC_MSG_ERROR([*** speex support not found])])
1204 AM_CONDITIONAL([HAVE_SPEEX], [test "x$HAVE_SPEEX" = "x1"])
1205 AS_IF([test "x$HAVE_SPEEX" = "x1"], AC_DEFINE([HAVE_SPEEX], 1, [Have speex]))
1207 #### soxr (optional) ####
1210 AS_HELP_STRING([--without-soxr],[Omit soxr (resampling)]))
1212 AS_IF([test "x$with_soxr" != "xno"],
1213 [PKG_CHECK_MODULES(LIBSOXR, [ soxr >= 0.1.1 ], HAVE_SOXR=1, HAVE_SOXR=0)],
1216 AS_IF([test "x$with_soxr" = "xyes" && test "x$HAVE_SOXR" = "x0"],
1217 [AC_MSG_ERROR([*** soxr support not found])])
1219 AM_CONDITIONAL([HAVE_SOXR], [test "x$HAVE_SOXR" = "x1"])
1220 AS_IF([test "x$HAVE_SOXR" = "x1"], AC_DEFINE([HAVE_SOXR], 1, [Have soxr]))
1223 #### gcov support (optional) #####
1225 AC_ARG_ENABLE([gcov],
1226 AS_HELP_STRING([--enable-gcov],[Enable optional gcov coverage analysis]))
1231 AS_IF([test "x$enable_gcov" = "xyes"],
1234 GCOV_CFLAGS="$GCOV_CFLAGS -fprofile-arcs -ftest-coverage"
1235 GCOV_LIBS="$GCOV_LIBS -fprofile-arcs"
1239 AC_SUBST(GCOV_CFLAGS)
1241 AM_CONDITIONAL([HAVE_GCOV], [test "x$HAVE_GCOV" = x1])
1243 #### ORC (optional) ####
1247 #### systemd support (optional) ####
1249 AC_ARG_ENABLE([systemd-daemon],
1250 AS_HELP_STRING([--disable-systemd-daemon],[Disable optional systemd daemon (socket activation) support]))
1252 AC_ARG_ENABLE([systemd-login],
1253 AS_HELP_STRING([--disable-systemd-login],[Disable optional systemd login support]))
1255 AC_ARG_ENABLE([systemd-journal],
1256 AS_HELP_STRING([--disable-systemd-journal],[Disable optional systemd journal support]))
1258 # Newer systemd's combine their subcomponent libraries into one
1259 # If it exists, we should use it for the further checks
1261 AS_IF([test "x$enable_systemd_daemon" != "xno" || test "x$enable_systemd_login" != "xno" || test "x$enable_systemd_journal" != "xno"],
1262 [PKG_CHECK_MODULES(SYSTEMD, [ libsystemd ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)],
1265 AS_IF([test "x$HAVE_SYSTEMD" = "x1"],
1267 HAVE_SYSTEMD_DAEMON=1
1268 HAVE_SYSTEMD_LOGIN=1
1269 HAVE_SYSTEMD_JOURNAL=1
1272 AC_ARG_WITH([systemduserunitdir],
1273 AS_HELP_STRING([--with-systemduserunitdir=DIR], [Directory for systemd user service files]),
1274 [], [with_systemduserunitdir=$($PKG_CONFIG --variable=systemduserunitdir systemd)])
1275 if test "x$with_systemduserunitdir" != xno; then
1276 AC_SUBST([systemduserunitdir], [$with_systemduserunitdir])
1279 #### systemd daemon support (optional) ####
1281 AS_IF([test "x$enable_systemd_daemon" != "xno"],
1282 [AS_IF([test "x$HAVE_SYSTEMD_DAEMON" != "x1"], [PKG_CHECK_MODULES(SYSTEMDDAEMON, [ libsystemd-daemon ], HAVE_SYSTEMD_DAEMON=1, HAVE_SYSTEMD_DAEMON=0)])],
1283 HAVE_SYSTEMD_DAEMON=0)
1285 AS_IF([test "x$enable_systemd_daemon" = "xyes" && test "x$HAVE_SYSTEMD_DAEMON" = "x0"],
1286 [AC_MSG_ERROR([*** Needed systemd daemon support not found])])
1288 AC_SUBST(HAVE_SYSTEMD_DAEMON)
1289 AM_CONDITIONAL([HAVE_SYSTEMD_DAEMON], [test "x$HAVE_SYSTEMD_DAEMON" = x1])
1290 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], AC_DEFINE([HAVE_SYSTEMD_DAEMON], 1, [Have SYSTEMDDAEMON?]))
1292 #### systemd login support (optional) ####
1294 AS_IF([test "x$enable_systemd_login" != "xno"],
1295 [AS_IF([test "x$HAVE_SYSTEMD_LOGIN" != "x1"], [PKG_CHECK_MODULES(SYSTEMDLOGIN, [ libsystemd-login ], HAVE_SYSTEMD_LOGIN=1, HAVE_SYSTEMD_LOGIN=0)])],
1296 HAVE_SYSTEMD_LOGIN=0)
1298 AS_IF([test "x$enable_systemd_login" = "xyes" && test "x$HAVE_SYSTEMD_LOGIN" = "x0"],
1299 [AC_MSG_ERROR([*** Needed systemd login support not found])])
1301 AC_SUBST(HAVE_SYSTEMD_LOGIN)
1302 AM_CONDITIONAL([HAVE_SYSTEMD_LOGIN], [test "x$HAVE_SYSTEMD_LOGIN" = x1])
1303 AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], AC_DEFINE([HAVE_SYSTEMD_LOGIN], 1, [Have SYSTEMDLOGIN?]))
1305 #### systemd journal support (optional) ####
1307 AS_IF([test "x$enable_systemd_journal" != "xno"],
1308 [AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" != "x1"], [PKG_CHECK_MODULES(SYSTEMDJOURNAL, [ libsystemd-journal ], HAVE_SYSTEMD_JOURNAL=1, HAVE_SYSTEMD_JOURNAL=0)])],
1309 HAVE_SYSTEMD_JOURNAL=0)
1311 AS_IF([test "x$enable_systemd_journal" = "xyes" && test "x$HAVE_SYSTEMD_JOURNAL" = "x0"],
1312 [AC_MSG_ERROR([*** Needed systemd journal support not found])])
1314 AC_SUBST(HAVE_SYSTEMD_JOURNAL)
1315 AM_CONDITIONAL([HAVE_SYSTEMD_JOURNAL], [test "x$HAVE_SYSTEMD_JOURNAL" = x1])
1316 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], AC_DEFINE([HAVE_SYSTEMD_JOURNAL], 1, [Have SYSTEMDJOURNAL?]))
1318 #### GStreamer-based RTP support (optional) ####
1320 AC_ARG_ENABLE([gstreamer],
1321 AS_HELP_STRING([--enable-gstreamer],[Enable optional GStreamer-based RTP support]))
1323 AS_IF([test "x$enable_gstreamer" = "xyes"],
1324 [PKG_CHECK_MODULES(GSTREAMER, [ gstreamer-1.0 >= 1.14 gstreamer-app-1.0 gstreamer-rtp-1.0 gio-2.0 ],
1325 HAVE_GSTREAMER=1, HAVE_GSTREAMER=0)],
1328 AS_IF([test "x$enable_gstreamer" = "xyes" && test "x$HAVE_GSTREAMER" = "x0"],
1329 [AC_MSG_ERROR([*** GStreamer 1.0 support not found])])
1331 AM_CONDITIONAL([HAVE_GSTREAMER], [test "x$HAVE_GSTREAMER" = x1])
1332 AS_IF([test "x$HAVE_GSTREAMER" = "x1"], AC_DEFINE([HAVE_GSTREAMER], 1, [Have GStreamer?]))
1334 #### Build and Install man pages ####
1336 AC_ARG_ENABLE([manpages],
1337 AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]))
1339 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" != "xno"])
1341 #### PulseAudio system group & user #####
1343 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1344 if test -z "$with_system_user" ; then
1345 PA_SYSTEM_USER=pulse
1347 PA_SYSTEM_USER=$with_system_user
1349 AC_SUBST(PA_SYSTEM_USER)
1350 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1352 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1353 if test -z "$with_system_group" ; then
1354 PA_SYSTEM_GROUP=pulse
1356 PA_SYSTEM_GROUP=$with_system_group
1358 AC_SUBST(PA_SYSTEM_GROUP)
1359 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1361 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)]))
1362 if test -z "$with_access_group" ; then
1363 PA_ACCESS_GROUP=pulse-access
1365 PA_ACCESS_GROUP=$with_access_group
1367 AC_SUBST(PA_ACCESS_GROUP)
1368 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1370 AC_ARG_ENABLE([per-user-esound-socket],
1371 AS_HELP_STRING([--disable-per-user-esound-socket],[Use global esound socket directory /tmp/.esd/socket.]))
1373 if test "x$enable_per_user_esound_socket" != "xno"; then
1374 USE_PER_USER_ESOUND_SOCKET=1
1375 AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1377 USE_PER_USER_ESOUND_SOCKET=0
1380 #### PulseAudio system runtime dir ####
1382 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1383 AX_DEFINE_DIR(PA_SYSTEM_RUNTIME_PATH, PA_SYSTEM_RUNTIME_PATH, [System runtime dir])
1384 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1385 AX_DEFINE_DIR(PA_SYSTEM_CONFIG_PATH, PA_SYSTEM_CONFIG_PATH, [System config dir])
1386 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1387 AX_DEFINE_DIR(PA_SYSTEM_STATE_PATH, PA_SYSTEM_STATE_PATH, [System state dir])
1389 PA_BINARY=${bindir}/pulseaudio${EXEEXT}
1390 AX_DEFINE_DIR(PA_BINARY, PA_BINARY, [Location of pulseaudio binary])
1392 PACTL_BINARY=${bindir}/pactl${EXEEXT}
1393 AX_DEFINE_DIR(PACTL_BINARY, PACTL_BINARY, [Location of pactl binary])
1395 AC_SUBST(PA_SOEXT, [.so])
1396 AC_DEFINE(PA_SOEXT, [".so"], [Shared object extension])
1398 AC_SUBST(pulseconfdir, ["${sysconfdir}/pulse"])
1399 AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR, pulseconfdir, [Location of configuration files])
1400 AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR_UNQUOTED, pulseconfdir, [Location of configuration files])
1402 #### Mac OSX specific stuff #####
1404 AC_ARG_ENABLE(mac-universal,
1405 AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries]),
1406 enable_mac_universal=$enableval, enable_mac_universal="no")
1408 AC_ARG_WITH(mac-version-min,
1409 AS_HELP_STRING([--with-mac-version-min=<version>], [Defines the earliest version of MacOS X that the executables will run on.]),
1410 mac_version_min=$withval, mac_version_min="10.5")
1412 AC_ARG_WITH(mac-sysroot,
1413 AS_HELP_STRING([--with-mac-sysroot=<path>], [SDK basedir to use as the logical root directory for headers and libraries.]),
1414 mac_sysroot=$withval)
1416 if test "x$os_is_darwin" = "x1" ; then
1417 LDFLAGS="$LDFLAGS -mmacosx-version-min=$mac_version_min"
1418 CFLAGS="$CFLAGS -mmacosx-version-min=$mac_version_min"
1420 if test "x$mac_sysroot" != "x" ; then
1421 LDFLAGS="$LDFLAGS -isysroot $mac_sysroot"
1422 CFLAGS="$CFLAGS -isysroot $mac_sysroot"
1425 if test "x$enable_mac_universal" = "xyes" ; then
1426 mac_arches="-arch i386 -arch x86_64"
1427 LDFLAGS="$LDFLAGS $mac_arches"
1428 CFLAGS="$CFLAGS $mac_arches"
1432 AC_ARG_ENABLE([webrtc-aec],
1433 AS_HELP_STRING([--enable-webrtc-aec], [Enable the optional WebRTC-based echo canceller]))
1435 AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "$HAVE_CXX11" = "0"],
1436 [AC_MSG_ERROR([*** webrtc-audio-processing needs C++11 support])])
1438 AS_IF([test "x$enable_webrtc_aec" != "xno"],
1439 [PKG_CHECK_MODULES(WEBRTC, [ webrtc-audio-processing >= 0.2 ], [HAVE_WEBRTC=1], [HAVE_WEBRTC=0])],
1442 AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "x$HAVE_WEBRTC" = "x0"],
1443 [AC_MSG_ERROR([*** webrtc-audio-processing library not found])])
1445 AM_CONDITIONAL([HAVE_WEBRTC], [test "x$HAVE_WEBRTC" = "x1"])
1447 AC_ARG_ENABLE([adrian-aec],
1448 AS_HELP_STRING([--enable-adrian-aec], [Enable Adrian's optional echo canceller]))
1449 AS_IF([test "x$enable_adrian_aec" != "xno"],
1451 AM_CONDITIONAL([HAVE_ADRIAN_EC], [test "x$HAVE_ADRIAN_EC" = "x1"])
1454 #### Thread support ####
1457 AS_IF([test "$ac_cv_tls" = "__thread"],
1458 AC_DEFINE([SUPPORT_TLS___THREAD], 1, [Define this if the compiler supports __thread for Thread-Local Storage]))
1460 # Win32 build breaks with win32 pthread installed
1461 AS_IF([test "x$os_is_win32" != "x1"],
1464 AS_IF([test "x$ax_pthread_ok" = "xyes"],
1465 AC_DEFINE([_POSIX_PTHREAD_SEMANTICS], 1, [Needed on Solaris]))
1469 ###################################
1471 ###################################
1473 AC_DEFINE_UNQUOTED(PA_CFLAGS, "$CFLAGS", [The CFLAGS used during compilation])
1475 # Check whether to build tests by default (as compile-test) or not
1476 AC_ARG_ENABLE([default-build-tests],
1477 AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
1478 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
1480 AC_ARG_ENABLE([legacy-database-entry-format],
1481 AS_HELP_STRING([--disable-legacy-database-entry-format], [Try to load legacy (< 1.0) database files (card, device and volume restore).]))
1482 if test "x$enable_legacy_database_entry_format" != "xno" ; then
1483 AC_DEFINE(ENABLE_LEGACY_DATABASE_ENTRY_FORMAT, [1], [Legacy database entry format])
1486 AC_ARG_ENABLE([stream-restore-clear-old-devices],
1487 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]))
1488 if test "x$enable_stream_restore_clear_old_devices" == "xyes" ; then
1489 AC_DEFINE(STREAM_RESTORE_CLEAR_OLD_DEVICES, [1], [module-stream-restore: Clear old devices])
1492 AC_ARG_ENABLE([static-bins],
1493 AS_HELP_STRING([--enable-static-bins],[Statically link executables.]))
1494 AM_CONDITIONAL([STATIC_BINS], [test "x$enable_static_bins" = "xyes"])
1498 AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1499 [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1500 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1501 if test "x$PREOPEN_MODS" != "xall" ; then
1503 for mod in $PREOPEN_MODS; do
1504 tmpLIBS="$tmpLIBS module-$mod.la"
1506 PREOPEN_MODS="$tmpLIBS"
1507 AC_SUBST(PREOPEN_MODS)
1512 AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]),
1513 [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"])
1515 AC_SUBST(modlibexecdir)
1516 AX_DEFINE_DIR(PA_DLSEARCHPATH, modlibexecdir, [Modules dir])
1520 AS_HELP_STRING([--with-alsa-data-dir],[Directory for ALSA card profiles (defaults to ${datadir}/pulseaudio/alsa-mixer)]),
1521 [alsadatadir=$withval], [alsadatadir="${datadir}/pulseaudio/alsa-mixer"])
1523 AC_SUBST(alsadatadir)
1527 AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1528 [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1530 AC_SUBST(udevrulesdir)
1532 AC_ARG_WITH([bash-completion-dir],
1533 AS_HELP_STRING([--with-bash-completion-dir=DIR], [Directory for bash completion files]),
1534 [bashcompletiondir=$withval], [bashcompletiondir=$($PKG_CONFIG --variable=completionsdir bash-completion)])
1535 if test "x$bashcompletionsdir" = "x"; then
1536 bashcompletiondir="${datadir}/bash-completion/completions"
1539 AC_SUBST(bashcompletiondir)
1542 [zsh-completion-dir],
1543 AS_HELP_STRING([--with-zsh-completion-dir], [Zsh completions directory (defaults to ${datadir}/zsh/site-functions)]),
1544 [zshcompletiondir=$withval], [zshcompletiondir="${datadir}/zsh/site-functions"])
1546 AC_SUBST(zshcompletiondir)
1548 AC_ARG_ENABLE([force-preopen],
1549 AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]))
1551 if test "x$enable_force_preopen" = "xyes"; then
1557 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1559 # Substitute the variable with an empty string. This makes the output go to the
1560 # directory where doxygen is run (which is the doxygen directory under the
1561 # build directory). Substituting a variable with a constant value wouldn't
1562 # otherwise make sense, but the substitution variable needs to exist, because
1563 # we substitute a different value when using Meson.
1564 AC_SUBST([DOXYGEN_OUTPUT_DIRECTORY], [])
1572 libpulse-mainloop-glib.pc
1574 doxygen/doxygen.conf
1577 man/pulseaudio.1.xml
1578 man/pax11publish.1.xml
1582 man/pasuspender.1.xml
1584 man/pulse-daemon.conf.5.xml
1585 man/pulse-client.conf.5.xml
1586 man/default.pa.5.xml
1587 man/pulse-cli-syntax.5.xml
1588 man/start-pulseaudio-x11.1.xml
1591 AS_IF([test "x$HAVE_ESOUND" = "x1"],
1593 AC_CONFIG_FILES([man/esdcompat.1.xml])
1594 AC_CONFIG_FILES([src/esdcompat:src/daemon/esdcompat.in], [chmod +x src/esdcompat])
1597 AC_CONFIG_FILES([src/start-pulseaudio-x11:src/daemon/start-pulseaudio-x11.in], [chmod +x src/start-pulseaudio-x11])
1598 AC_CONFIG_FILES([src/client.conf:src/pulse/client.conf.in])
1599 AC_CONFIG_FILES([src/daemon.conf:src/daemon/daemon.conf.in],
1600 [m4 src/daemon.conf > src/daemon.conf.gen && mv src/daemon.conf.gen src/daemon.conf])
1601 AC_CONFIG_FILES([src/default.pa:src/daemon/default.pa.in],
1602 [m4 src/default.pa > src/default.pa.gen && mv src/default.pa.gen src/default.pa])
1603 AC_CONFIG_FILES([src/system.pa:src/daemon/system.pa.in],
1604 [m4 src/system.pa > src/system.pa.gen && mv src/system.pa.gen src/system.pa])
1605 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"],
1607 AC_CONFIG_FILES([src/pulseaudio.service:src/daemon/systemd/user/pulseaudio.service.in])
1610 # CMake related ProjectConfig files
1612 AX_DEFINE_DIR(PA_LIBDIR, PA_LIBDIR, [PulseAudio library dir])
1613 PA_INCDIR="$includedir"
1614 AX_DEFINE_DIR(PA_INCDIR, PA_INCDIR, [PulseAudio include dir])
1616 AC_CONFIG_FILES([PulseAudioConfig.cmake:PulseAudioConfig.cmake.in],
1617 [m4 PulseAudioConfig.cmake > PulseAudioConfig.cmake.gen && mv PulseAudioConfig.cmake.gen PulseAudioConfig.cmake])
1618 AC_CONFIG_FILES([PulseAudioConfigVersion.cmake])
1622 # ==========================================================================
1624 AS_IF([test "x$HAVE_MEMFD" = "x1"], ENABLE_MEMFD=yes, ENABLE_MEMFD=no)
1625 AS_IF([test "x$HAVE_X11" = "x1"], ENABLE_X11=yes, ENABLE_X11=no)
1626 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], ENABLE_OSS_OUTPUT=yes, ENABLE_OSS_OUTPUT=no)
1627 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no)
1628 AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no)
1629 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no)
1630 AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no)
1631 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no)
1632 AS_IF([test "x$HAVE_GLIB20" = "x1"], ENABLE_GLIB20=yes, ENABLE_GLIB20=no)
1633 AS_IF([test "x$HAVE_GTK30" = "x1"], ENABLE_GTK30=yes, ENABLE_GTK30=no)
1634 AS_IF([test "x$HAVE_GCONF" = "x1"], ENABLE_GCONF=yes, ENABLE_GCONF=no)
1635 AS_IF([test "x$HAVE_GSETTINGS" = "x1"], ENABLE_GSETTINGS=yes, ENABLE_GSETTINGS=no)
1636 AS_IF([test "x$HAVE_AVAHI" = "x1"], ENABLE_AVAHI=yes, ENABLE_AVAHI=no)
1637 AS_IF([test "x$HAVE_JACK" = "x1"], ENABLE_JACK=yes, ENABLE_JACK=no)
1638 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], ENABLE_LIBASYNCNS=yes, ENABLE_LIBASYNCNS=no)
1639 AS_IF([test "x$HAVE_LIRC" = "x1"], ENABLE_LIRC=yes, ENABLE_LIRC=no)
1640 AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
1641 AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
1642 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], ENABLE_SYSTEMD_DAEMON=yes, ENABLE_SYSTEMD_DAEMON=no)
1643 AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], ENABLE_SYSTEMD_LOGIN=yes, ENABLE_SYSTEMD_LOGIN=no)
1644 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], ENABLE_SYSTEMD_JOURNAL=yes, ENABLE_SYSTEMD_JOURNAL=no)
1645 AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], ENABLE_BLUEZ_5=yes, ENABLE_BLUEZ_5=no)
1646 AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], ENABLE_BLUEZ_5_OFONO_HEADSET=yes, ENABLE_BLUEZ_5_OFONO_HEADSET=no)
1647 AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], ENABLE_BLUEZ_5_NATIVE_HEADSET=yes, ENABLE_BLUEZ_5_NATIVE_HEADSET=no)
1648 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
1649 AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
1650 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE="yes (DEPRECATED)", ENABLE_LIBSAMPLERATE=no)
1651 AS_IF([test "x$HAVE_IPV6" = "x1"], ENABLE_IPV6=yes, ENABLE_IPV6=no)
1652 AS_IF([test "x$HAVE_OPENSSL" = "x1"], ENABLE_OPENSSL=yes, ENABLE_OPENSSL=no)
1653 AS_IF([test "x$HAVE_FFTW" = "x1"], ENABLE_FFTW=yes, ENABLE_FFTW=no)
1654 AS_IF([test "x$HAVE_ORC" = "xyes"], ENABLE_ORC=yes, ENABLE_ORC=no)
1655 AS_IF([test "x$HAVE_ADRIAN_EC" = "x1"], ENABLE_ADRIAN_EC=yes, ENABLE_ADRIAN_EC=no)
1656 AS_IF([test "x$HAVE_SPEEX" = "x1"], ENABLE_SPEEX=yes, ENABLE_SPEEX=no)
1657 AS_IF([test "x$HAVE_SOXR" = "x1"], ENABLE_SOXR=yes, ENABLE_SOXR=no)
1658 AS_IF([test "x$HAVE_WEBRTC" = "x1"], ENABLE_WEBRTC=yes, ENABLE_WEBRTC=no)
1659 AS_IF([test "x$HAVE_GSTREAMER" = "x1"], ENABLE_GSTREAMER=yes, ENABLE_GSTREAMER=no)
1660 AS_IF([test "x$HAVE_TDB" = "x1"], ENABLE_TDB=yes, ENABLE_TDB=no)
1661 AS_IF([test "x$HAVE_GDBM" = "x1"], ENABLE_GDBM=yes, ENABLE_GDBM=no)
1662 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no)
1663 AS_IF([test "x$HAVE_ESOUND" = "x1"], ENABLE_ESOUND=yes, ENABLE_ESOUND=no)
1664 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)
1665 AS_IF([test "x$HAVE_GCOV" = "x1"], ENABLE_GCOV=yes, ENABLE_GCOV=no)
1666 AS_IF([test "x$HAVE_LIBCHECK" = "x1"], ENABLE_TESTS=yes, ENABLE_TESTS=no)
1667 AS_IF([test "x$enable_legacy_database_entry_format" != "xno"], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no)
1668 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)
1671 ---{ $PACKAGE_NAME $VERSION }---
1674 sysconfdir: ${sysconfdir}
1675 localstatedir: ${localstatedir}
1676 modlibexecdir: ${modlibexecdir}
1677 alsadatadir: ${alsadatadir}
1678 System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH}
1679 System State Path: ${PA_SYSTEM_STATE_PATH}
1680 System Config Path: ${PA_SYSTEM_CONFIG_PATH}
1681 Zsh completions directory: ${zshcompletiondir}
1682 Bash completions directory: ${bashcompletiondir}
1685 CPPFLAGS: ${CPPFLAGS}
1688 Enable memfd shared memory: ${ENABLE_MEMFD}
1689 Enable X11: ${ENABLE_X11}
1690 Enable OSS Output: ${ENABLE_OSS_OUTPUT}
1691 Enable OSS Wrapper: ${ENABLE_OSS_WRAPPER}
1692 Enable EsounD: ${ENABLE_ESOUND}
1693 Enable Alsa: ${ENABLE_ALSA}
1694 Enable CoreAudio: ${ENABLE_COREAUDIO}
1695 Enable Solaris: ${ENABLE_SOLARIS}
1696 Enable WaveOut: ${ENABLE_WAVEOUT}
1697 Enable GLib 2.0: ${ENABLE_GLIB20}
1698 Enable Gtk+ 3.0: ${ENABLE_GTK30}
1699 Enable GConf: ${ENABLE_GCONF}
1700 Enable GSettings: ${ENABLE_GSETTINGS}
1701 Enable Avahi: ${ENABLE_AVAHI}
1702 Enable Jack: ${ENABLE_JACK}
1703 Enable Async DNS: ${ENABLE_LIBASYNCNS}
1704 Enable LIRC: ${ENABLE_LIRC}
1705 Enable D-Bus: ${ENABLE_DBUS}
1706 Enable BlueZ 5: ${ENABLE_BLUEZ_5}
1707 Enable ofono headsets: ${ENABLE_BLUEZ_5_OFONO_HEADSET}
1708 Enable native headsets: ${ENABLE_BLUEZ_5_NATIVE_HEADSET}
1709 Enable udev: ${ENABLE_UDEV}
1710 Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
1712 Daemon (Socket Activation): ${ENABLE_SYSTEMD_DAEMON}
1713 Login (Session Tracking): ${ENABLE_SYSTEMD_LOGIN}
1714 Journal (Logging): ${ENABLE_SYSTEMD_JOURNAL}
1715 Enable TCP Wrappers: ${ENABLE_TCPWRAP}
1716 Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
1717 Enable IPv6: ${ENABLE_IPV6}
1718 Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1719 Enable fftw: ${ENABLE_FFTW}
1720 Enable orc: ${ENABLE_ORC}
1721 Enable Adrian echo canceller: ${ENABLE_ADRIAN_EC}
1722 Enable speex (resampler, AEC): ${ENABLE_SPEEX}
1723 Enable soxr (resampler): ${ENABLE_SOXR}
1724 Enable WebRTC echo canceller: ${ENABLE_WEBRTC}
1725 Enable GStreamer-based RTP: ${ENABLE_GSTREAMER}
1726 Enable gcov coverage: ${ENABLE_GCOV}
1727 Enable unit tests: ${ENABLE_TESTS}
1730 gdbm: ${ENABLE_GDBM}
1731 simple database: ${ENABLE_SIMPLEDB}
1733 System User: ${PA_SYSTEM_USER}
1734 System Group: ${PA_SYSTEM_GROUP}
1735 Access Group: ${PA_ACCESS_GROUP}
1736 Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1737 Force preopen: ${FORCE_PREOPEN}
1738 Preopened modules: ${PREOPEN_MODS}
1740 Legacy Database Entry Support: ${ENABLE_LEGACY_DATABASE_ENTRY_FORMAT}
1741 module-stream-restore:
1742 Clear old devices: ${ENABLE_STREAM_RESTORE_CLEAR_OLD_DEVICES}
1745 if test "${ENABLE_SPEEX}" = "no" && test "${ENABLE_WEBRTC}" = "no" && test "${ENABLE_ADRIAN_EC}" = "no" ; then
1746 AC_MSG_ERROR([At least one echo canceller implementation must be available.])
1749 if test "${ENABLE_DBUS}" = "no" && test "x$os_is_win32" != "x1" ; then
1751 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1752 You do not have D-Bus support enabled. It is strongly recommended
1753 that you enable D-Bus support if your platform supports it.
1754 Many parts of PulseAudio use D-Bus, from ConsoleKit interaction
1755 to the Device Reservation Protocol to speak to JACK, Bluetooth
1756 support and even a native control protocol for communicating and
1757 controlling the PulseAudio daemon itself.
1758 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1762 if test "${ENABLE_UDEV}" = "no" && test "x$os_is_win32" != "x1" ; then
1764 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1765 You do not have udev support enabled. It is strongly recommended
1766 that you enable udev support if your platform supports it as it is
1767 the primary method used to detect hardware audio devices (on Linux)
1768 and is thus a critical part of PulseAudio on that platform.
1769 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1773 if test "${ENABLE_SPEEX}" = "no" && test "x$os_is_win32" != "x1" ; then
1775 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1776 You do not have speex support enabled. It is strongly recommended
1777 that you enable speex support if your platform supports it as it is
1778 the primary method used for audio resampling and is thus a critical
1779 part of PulseAudio on that platform.
1780 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====