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_cpu", [Canonical host system architecture 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"],
637 PKG_CHECK_MODULES(X11, [ x11-xcb xcb >= 1.6 ice sm xtst ], HAVE_X11=1, HAVE_X11=0)
638 AC_CHECK_LIB(X11, XSetIOErrorExitHandler, [HAVE_XSETIOERROREXITHANDLER=yes], [HAVE_XSETIOERROREXITHANDLER=no])
642 HAVE_XSETIOERROREXITHANDLER=no
645 AS_IF([test "x$enable_x11" = "xyes" && test "x$HAVE_X11" = "x0"],
646 [AC_MSG_ERROR([*** X11 not found])])
649 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
650 AS_IF([test "x$HAVE_X11" = "x1"], AC_DEFINE([HAVE_X11], 1, [Have X11?]))
651 AS_IF([test "x$HAVE_XSETIOERROREXITHANDLER" = "xyes"], AC_DEFINE([HAVE_XSETIOERROREXITHANDLER], 1, [Have XSetIOErrorExitHandler function.]))
653 #### Capabilities (optional) ####
658 AS_HELP_STRING([--without-caps],[Omit support for dropping capabilities.]))
660 if test "x${with_caps}" != "xno"; then
661 AC_SEARCH_LIBS([cap_init], [cap], [], [])
663 # Only give an error on hosts that we know could support capabilities
664 AC_CHECK_HEADERS([sys/capability.h], [], [
665 if test "${host_has_caps}" = "1"; then
666 AC_MSG_ERROR([*** sys/capability.h not found. Use --without-caps to disable capabilities support.])
670 #### Valgrind (optional) ####
672 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
674 #### check unit tests ####
676 AC_ARG_ENABLE([tests],
677 AS_HELP_STRING([--disable-tests],[Disable unit tests]))
679 AS_IF([test "x$enable_tests" != "xno"],
680 [PKG_CHECK_MODULES(LIBCHECK, [ check >= 0.9.10 ], HAVE_LIBCHECK=1, HAVE_LIBCHECK=0)],
683 AS_IF([test "x$enable_tests" = "xyes" && test "x$HAVE_LIBCHECK" = "x0"],
684 [AC_MSG_ERROR([*** check library not found or too old])])
686 AM_CONDITIONAL([HAVE_TESTS], [test "x$HAVE_LIBCHECK" = x1])
690 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
694 AC_MSG_CHECKING([whether we need libatomic_ops])
695 if test "x$need_libatomic_ops" = "xyes"; then
697 AC_CHECK_HEADERS([atomic_ops.h],
698 [CFLAGS="$CFLAGS -DAO_REQUIRE_CAS"],
699 [AC_MSG_ERROR([*** libatomic-ops headers not found])])
701 # Win32 does not need the lib and breaks horribly if we try to include it
702 AS_IF([test "x$os_is_win32" != "x1"], [LIBS="$LIBS -latomic_ops"])
707 #### Libsamplerate support (optional) ####
709 AC_ARG_ENABLE([samplerate],
710 AS_HELP_STRING([--enable-samplerate],[Enable optional libsamplerate support (DEPRECATED)]))
712 AS_IF([test "x$enable_samplerate" = "xyes"],
713 [PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ], HAVE_LIBSAMPLERATE=1, HAVE_LIBSAMPLERATE=0)],
714 HAVE_LIBSAMPLERATE=0)
716 AS_IF([test "x$enable_samplerate" = "xyes" && test "x$HAVE_LIBSAMPLERATE" = "x0"],
717 [AC_MSG_ERROR([*** Libsamplerate not found])])
719 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
720 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?]))
722 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_MSG_WARN([Support for libsamplerate is DEPRECATED]))
724 #### Database support ####
726 AC_ARG_WITH([database],
727 AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
730 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xtdb"],
731 [PKG_CHECK_MODULES(TDB, [ tdb ], HAVE_TDB=1, HAVE_TDB=0)],
733 AS_IF([test "x$HAVE_TDB" = "x1"], with_database=tdb)
735 AS_IF([test "x$with_database" = "xtdb" && test "x$HAVE_TDB" = "x0"],
736 [AC_MSG_ERROR([*** tdb not found])])
739 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xgdbm"],
742 AC_CHECK_LIB(gdbm, gdbm_open, [], HAVE_GDBM=0)
743 AC_CHECK_HEADERS(gdbm.h, [], HAVE_GDBM=0)
746 AS_IF([test "x$HAVE_GDBM" = "x1"],
753 AS_IF([test "x$with_database" = "xgdbm" && test "x$HAVE_GDBM" = "x0"],
754 [AC_MSG_ERROR([*** gdbm not found])])
757 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xsimple"],
760 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], with_database=simple)
762 AS_IF([test "x$HAVE_TDB" != x1 -a "x$HAVE_GDBM" != x1 -a "x$HAVE_SIMPLEDB" != x1],
763 AC_MSG_ERROR([*** missing database backend]))
766 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
767 AS_IF([test "x$HAVE_TDB" = "x1"], AC_DEFINE([HAVE_TDB], 1, [Have tdb?]))
769 AC_SUBST(GDBM_CFLAGS)
771 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
772 AS_IF([test "x$HAVE_GDBM" = "x1"], AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?]))
774 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
775 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?]))
777 #### OSS support (optional) ####
779 AC_ARG_ENABLE([oss-output],
780 AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]))
782 AC_ARG_ENABLE([oss-wrapper],
783 AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]))
785 AC_ARG_WITH([pulsedsp-location],
786 AS_HELP_STRING([--with-pulsedsp-location],[Specify location where OSS wrapper will be installed]))
788 AS_IF([test "x$enable_oss_output" != "xno" -o "x$enable_oss_wrapper" != "xno"],
789 [AC_CHECK_HEADERS([sys/soundcard.h], HAVE_OSS=1, HAVE_OSS=0)],
792 AS_IF([test "x$enable_oss_output" = "xyes" -o "x$enable_oss_wrapper" = "xyes" && test "x$HAVE_OSS" = "x0"],
793 [AC_MSG_ERROR([*** OSS support not found])])
795 AS_IF([test "x$enable_oss_output" != "xno"],
796 [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_OUTPUT=1, HAVE_OSS_OUTPUT=0)],
799 AS_IF([test "x$enable_oss_wrapper" != "xno"],
800 [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_WRAPPER=1, HAVE_OSS_WRAPPER=0)],
803 AS_IF([test "x$with_pulsedsp_location" != "x"],
804 [PULSEDSP_LOCATION="$with_pulsedsp_location"],
805 [PULSEDSP_LOCATION="\$(pkglibdir)"])
807 AC_SUBST(HAVE_OSS_OUTPUT)
808 AC_SUBST(PULSEDSP_LOCATION)
809 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS_OUTPUT" = "x1"])
810 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS_WRAPPER" = "x1"])
811 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?]))
812 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?]))
814 # Some platforms like SunOS (Illumos) may ship without SOUND_PCM_* functionality
815 if test "x$HAVE_OSS" = "x1"; then
816 AC_CHECK_DECLS([SOUND_PCM_READ_RATE], [], [], [[#include <sys/soundcard.h>]])
817 AC_CHECK_DECLS([SOUND_PCM_READ_CHANNELS], [], [], [[#include <sys/soundcard.h>]])
818 AC_CHECK_DECLS([SOUND_PCM_READ_BITS], [], [], [[#include <sys/soundcard.h>]])
821 #### CoreAudio support (optional) ####
823 AC_ARG_ENABLE([coreaudio-output],
824 AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]))
826 AS_IF([test "x$enable_coreaudio_output" != "xno"],
827 [AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1, HAVE_COREAUDIO=0)],
830 AS_IF([test "x$enable_coreaudio_output" = "xyes" && test "x$HAVE_COREAUDIO" = "x0"],
831 [AC_MSG_ERROR([*** CoreAudio output support not found])])
833 AC_SUBST(HAVE_COREAUDIO)
834 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = "x1" && test "x$enable_coreaudio_output" != "xno"])
836 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], AC_DEFINE([HAVE_COREAUDIO], 1, [Have CoreAudio?]))
838 #### ALSA support (optional) ####
840 AC_ARG_ENABLE([alsa],
841 AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]))
843 AS_IF([test "x$enable_alsa" != "xno"],
844 [PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], HAVE_ALSA=1, HAVE_ALSA=0)],
847 AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
848 [AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])])
850 AS_IF([test "x$HAVE_ALSA" = "x1"],
852 save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $ASOUNDLIB_CFLAGS"
853 AC_CHECK_HEADERS([alsa/use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
854 CPPFLAGS="$save_CPPFLAGS"
859 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
860 AS_IF([test "x$HAVE_ALSA" = "x1"], AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]))
861 AS_IF([test "x$HAVE_ALSA_UCM" = "x1"], AC_DEFINE([HAVE_ALSA_UCM], 1, [Have ALSA UCM?]))
863 #### EsounD support (optional) ####
865 AC_ARG_ENABLE([esound],
866 AS_HELP_STRING([--disable-esound],[Disable optional EsounD support]))
867 AM_CONDITIONAL([HAVE_ESOUND], [test "x$enable_esound" != "xno"])
868 AS_IF([test "x$enable_esound" != "xno"], [HAVE_ESOUND=1])
870 #### Solaris audio support (optional) ####
872 AC_ARG_ENABLE([solaris],
873 AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]))
875 AS_IF([test "x$enable_solaris" != "xno"],
876 [AC_CHECK_HEADERS([sys/audio.h], HAVE_SOLARIS=1, HAVE_SOLARIS=0)],
879 AS_IF([test "x$enable_solaris" = "xyes" && test "x$HAVE_SOLARIS" = "x0"],
880 [AC_MSG_ERROR([*** Solaris audio support not found])])
882 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
883 AS_IF([test "x$HAVE_SOLARIS" = "x1"], AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?]))
885 #### WaveOut audio support (optional) ####
887 AC_ARG_ENABLE([waveout],
888 AS_HELP_STRING([--disable-waveout],[Disable optional WaveOut audio support]))
890 AS_IF([test "x$enable_waveout" != "xno"],
891 [AC_CHECK_HEADERS([mmsystem.h], HAVE_WAVEOUT=1, HAVE_WAVEOUT=0, [#include <windows.h>])],
894 AS_IF([test "x$enable_waveout" = "xyes" && test "x$HAVE_WAVEOUT" = "x0"],
895 [AC_MSG_ERROR([*** WaveOut audio support not found])])
897 AC_SUBST(HAVE_WAVEOUT)
898 AM_CONDITIONAL([HAVE_WAVEOUT], [test "x$HAVE_WAVEOUT" = x1])
899 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], AC_DEFINE([HAVE_WAVEOUT], 1, [Have WaveOut audio?]))
901 #### GLib 2 support (optional) ####
903 AC_ARG_ENABLE([glib2],
904 AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]))
906 AS_IF([test "x$enable_glib2" != "xno"],
907 [PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.28.0 ], HAVE_GLIB20=1, HAVE_GLIB20=0)],
910 AS_IF([test "x$enable_glib2" = "xyes" && test "x$HAVE_GLIB20" = "x0"],
911 [AC_MSG_ERROR([*** GLib 2 support not found])])
913 AC_SUBST(HAVE_GLIB20)
914 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
915 AS_IF([test "x$HAVE_GLIB20" = "x1"], AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?]))
917 #### GTK3 support (optional) ####
919 AC_ARG_ENABLE([gtk3],
920 AS_HELP_STRING([--disable-gtk3],[Disable optional Gtk+ 3 support]))
922 AS_IF([test "x$enable_gtk3" != "xno"],
923 [PKG_CHECK_MODULES(GTK30, [ gtk+-3.0 ], HAVE_GTK30=1, HAVE_GTK30=0)],
926 AS_IF([test "x$enable_gtk3" = "xyes" && test "x$HAVE_GTK30" = "x0"],
927 [AC_MSG_ERROR([*** Gtk+ 3 support not found])])
929 AM_CONDITIONAL([HAVE_GTK30], [test "x$HAVE_GTK30" = x1])
930 AS_IF([test "x$HAVE_GTK30" = "x1"], AC_DEFINE([HAVE_GTK], 1, [Have GTK?]))
932 #### GSettings and GConf support (optional) ####
934 AC_ARG_ENABLE([gsettings],
935 AS_HELP_STRING([--disable-gsettings],[Disable optional GSettings support]))
937 AC_ARG_ENABLE([gconf],
938 AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]))
940 AS_IF([test "x$enable_gsettings" != "xno"],
941 [PKG_CHECK_MODULES(GSETTINGS, [ gio-2.0 >= 2.26.0 ], [HAVE_GSETTINGS=1], [HAVE_GSETTINGS=0])],
944 AS_IF([test "x$enable_gsettings" = "xyes" && test "x$HAVE_GSETTINGS" = "x0"],
945 [AC_MSG_ERROR([*** GSettings support not found])])
947 AS_IF([test "x$enable_gconf" != "xno"],
948 [PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ], HAVE_GCONF=1, HAVE_GCONF=0)],
951 AS_IF([test "x$enable_gconf" = "xyes" && test "x$HAVE_GCONF" = "x0"],
952 [AC_MSG_ERROR([*** GConf support not found])])
954 # Enable only one of GSettings and GConf, unless both were explicitly
955 # requested. If neither was explicitly requested and both are available, prefer
956 # GSettings. This is done, because if module-gsettings and module-gconf are
957 # both loaded, they can cause conflicting or at least confusing configuration.
958 # Distributions may want to enable both modules when building PulseAudio, if
959 # they ensure that both modules are never installed at the same time.
960 AS_IF([test "x$HAVE_GSETTINGS" = "x1" && test "x$enable_gconf" != "xyes"],
962 AS_IF([test "x$HAVE_GCONF" = "x1" && test "x$enable_gsettings" != "xyes"],
965 AM_CONDITIONAL([HAVE_GSETTINGS], [test "x$HAVE_GSETTINGS" = "x1"])
966 AC_SUBST([HAVE_GSETTINGS])
967 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = "x1"])
968 AC_SUBST([HAVE_GCONF])
970 if test "x$HAVE_GSETTINGS" = "x1" ; then
974 #### Avahi support (optional) ####
976 AC_ARG_ENABLE([avahi],
977 AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]))
979 AS_IF([test "x$enable_avahi" != "xno"],
980 [PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ], HAVE_AVAHI=1, HAVE_AVAHI=0)],
983 AS_IF([test "x$enable_avahi" = "xyes" && test "x$HAVE_AVAHI" = "x0"],
984 [AC_MSG_ERROR([*** Avahi support not found])])
987 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
989 #### JACK (optional) ####
991 AC_ARG_ENABLE([jack],
992 AS_HELP_STRING([--disable-jack],[Disable optional JACK support]))
994 AS_IF([test "x$enable_jack" != "xno"],
995 [PKG_CHECK_MODULES(JACK, [ jack >= 0.117.0 ], HAVE_JACK=1, HAVE_JACK=0)],
998 AS_IF([test "x$enable_jack" = "xyes" && test "x$HAVE_JACK" = "x0"],
999 [AC_MSG_ERROR([*** JACK support not found])])
1001 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
1003 #### Async DNS support (optional) ####
1005 AC_ARG_ENABLE([asyncns],
1006 AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]))
1008 AS_IF([test "x$enable_asyncns" != "xno"],
1009 [PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ], HAVE_LIBASYNCNS=1, HAVE_LIBASYNCNS=0)],
1012 AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
1013 [AC_MSG_ERROR([*** Async DNS support not found])])
1015 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1016 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
1018 #### Running from build tree (optional) ####
1020 AC_ARG_ENABLE([running-from-build-tree],
1021 AS_HELP_STRING([--disable-running-from-build-tree],[Disable running from build tree]))
1023 AS_IF([test "x$enable_running_from_build_tree" != "xno"],
1024 AC_DEFINE([HAVE_RUNNING_FROM_BUILD_TREE], 1, [Have running from build tree]))
1026 AC_SUBST(HAVE_RUNNING_FROM_BUILD_TREE)
1028 #### TCP wrappers (optional) ####
1030 AC_ARG_ENABLE([tcpwrap],
1031 AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]))
1033 AS_IF([test "x$enable_tcpwrap" != "xno"],
1036 AS_IF([test "x$LIBWRAP_LIBS" != "x"], HAVE_TCPWRAP=1, HAVE_TCPWRAP=0)
1040 AS_IF([test "x$enable_tcpwrap" = "xyes" && test "x$HAVE_TCPWRAP" = "x0"],
1041 [AC_MSG_ERROR([*** TCP wrappers support not found])])
1043 AC_SUBST(LIBWRAP_LIBS)
1045 #### LIRC support (optional) ####
1047 AC_ARG_ENABLE([lirc],
1048 AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]))
1053 AS_IF([test "x$enable_lirc" != "xno"],
1056 AC_CHECK_HEADER(lirc/lirc_client.h, [], [HAVE_LIRC=0])
1057 AC_CHECK_LIB(lirc_client, lirc_init, [LIRC_LIBS=-llirc_client], [HAVE_LIRC=0])
1061 AS_IF([test "x$enable_lirc" = "xyes" && test "x$HAVE_LIRC" = "x0"],
1062 [AC_MSG_ERROR([*** LIRC support not found])])
1064 AC_SUBST(LIRC_CFLAGS)
1066 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1068 #### D-Bus support (optional) ####
1070 AC_ARG_ENABLE([dbus],
1071 AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]))
1073 AS_IF([test "x$enable_dbus" != "xno"],
1074 [PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.4.12 ], HAVE_DBUS=1, HAVE_DBUS=0)],
1077 AS_IF([test "x$enable_dbus" = "xyes" && test "x$HAVE_DBUS" = "x0"],
1078 [AC_MSG_ERROR([*** D-Bus not available or too old version])])
1081 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1082 AS_IF([test "x$HAVE_DBUS" = "x1"], AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.]))
1084 PA_MACHINE_ID="${sysconfdir}/machine-id"
1085 AX_DEFINE_DIR(PA_MACHINE_ID, PA_MACHINE_ID, [D-Bus machine-id file])
1086 PA_MACHINE_ID_FALLBACK="${localstatedir}/lib/dbus/machine-id"
1087 AX_DEFINE_DIR(PA_MACHINE_ID_FALLBACK, PA_MACHINE_ID_FALLBACK,
1088 [Fallback machine-id file])
1090 #### BlueZ support (optional, dependent on D-Bus and SBC) ####
1092 AC_ARG_ENABLE([bluez5],
1093 AS_HELP_STRING([--disable-bluez5],[Disable optional BlueZ 5 support]))
1096 AS_IF([test "x$enable_bluez5" != "xno"],
1097 [PKG_CHECK_MODULES(SBC, [ sbc >= 1.0 ], HAVE_SBC=1, HAVE_SBC=0)],
1101 AS_IF([test "x$enable_bluez5" != "xno" && test "x$HAVE_DBUS" = "x1" && test "x$HAVE_SBC" = "x1"], HAVE_BLUEZ_5=1,
1103 AS_IF([test "x$enable_bluez5" = "xyes" && test "x$HAVE_BLUEZ_5" != "x1"],
1104 [AC_MSG_ERROR([*** BLUEZ 5 support not found (requires sbc and D-Bus)])])
1105 AC_SUBST(HAVE_BLUEZ_5)
1106 AM_CONDITIONAL([HAVE_BLUEZ_5], [test "x$HAVE_BLUEZ_5" = x1])
1108 AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], HAVE_BLUEZ=1, HAVE_BLUEZ=0)
1109 AC_SUBST(HAVE_BLUEZ)
1110 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1112 ## Bluetooth Headset profiles backend ##
1114 AC_ARG_ENABLE([bluez5-ofono-headset],
1115 AS_HELP_STRING([--disable-bluez5-ofono-headset],[Disable optional ofono headset backend support (Bluez 5)]))
1116 AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_ofono_headset" != "xno"], HAVE_BLUEZ_5_OFONO_HEADSET=1,
1117 HAVE_BLUEZ_5_OFONO_HEADSET=0)
1118 AC_SUBST(HAVE_BLUEZ_5_OFONO_HEADSET)
1119 AM_CONDITIONAL([HAVE_BLUEZ_5_OFONO_HEADSET], [test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = x1])
1120 AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_OFONO_HEADSET], 1, [Bluez 5 ofono headset backend enabled]))
1122 AC_ARG_ENABLE([bluez5-native-headset],
1123 AS_HELP_STRING([--disable-bluez5-native-headset],[Disable optional native headset backend support (Bluez 5)]))
1124 AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_native_headset" != "xno"],
1125 [PKG_CHECK_MODULES(BLUEZ, [ bluez >= 4.101 ], HAVE_BLUEZ_5_NATIVE_HEADSET=1, HAVE_BLUEZ_5_NATIVE_HEADSET=0)],
1126 HAVE_BLUEZ_5_NATIVE_HEADSET=0)
1127 AS_IF([test "x$enable_bluez5_native_headset" = "xyes" && test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x0"],
1128 [AC_MSG_ERROR([*** BlueZ 5 native headset backend support not available (requires the libbluetooth headers)])])
1129 AC_SUBST(HAVE_BLUEZ_5_NATIVE_HEADSET)
1130 AM_CONDITIONAL([HAVE_BLUEZ_5_NATIVE_HEADSET], [test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = x1])
1131 AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_NATIVE_HEADSET], 1, [Bluez 5 native headset backend enabled]))
1133 #### UDEV support (optional) ####
1135 AC_ARG_ENABLE([udev],
1136 AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]))
1138 AS_IF([test "x$enable_udev" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
1139 [PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], HAVE_UDEV=1, HAVE_UDEV=0)],
1142 AS_IF([test "x$enable_udev" = "xyes" && test "x$HAVE_UDEV" = "x0"],
1143 [AC_MSG_ERROR([*** UDEV support not found])])
1146 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1147 AS_IF([test "x$HAVE_UDEV" = "x1"], AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]))
1149 #### HAL compat support (optional, dependent on UDEV) ####
1151 AC_ARG_ENABLE([hal-compat],
1152 AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]))
1154 AS_IF([test "x$enable_hal_compat" != "xno"],
1155 [AS_IF([test "x$HAVE_UDEV" = "x1"], HAVE_HAL_COMPAT=1, HAVE_HAL_COMPAT=0)],
1158 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1159 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.]))
1161 #### IPv6 connection support (optional) ####
1163 AC_ARG_ENABLE([ipv6],
1164 AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]))
1166 AS_IF([test "x$enable_ipv6" != "xno"], [HAVE_IPV6=1], [HAVE_IPV6=0])
1168 AS_IF([test "x$HAVE_IPV6" = "x1"], AC_DEFINE([HAVE_IPV6], 1, [Define this to enable IPv6 connection support]))
1170 #### OpenSSL support (optional) ####
1172 AC_ARG_ENABLE([openssl],
1173 AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]))
1175 AS_IF([test "x$enable_openssl" != "xno"],
1176 [PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ], HAVE_OPENSSL=1, HAVE_OPENSSL=0)],
1179 AS_IF([test "x$enable_openssl" = "xyes" && test "x$HAVE_OPENSSL" = "x0"],
1180 [AC_MSG_ERROR([*** OpenSSL support not found])])
1182 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1183 AS_IF([test "x$HAVE_OPENSSL" = "x1"], AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL]))
1185 #### FFTW (optional) ####
1188 AS_HELP_STRING([--without-fftw],[Omit FFTW-using modules (equalizer)]))
1190 AS_IF([test "x$with_fftw" != "xno"],
1191 [PKG_CHECK_MODULES(FFTW, [ fftw3f ], HAVE_FFTW=1, HAVE_FFTW=0)],
1194 AS_IF([test "x$with_fftw" = "xyes" && test "x$HAVE_FFTW" = "x0"],
1195 [AC_MSG_ERROR([*** FFTW support not found])])
1197 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1199 #### speex (optional) ####
1201 AC_ARG_WITH([speex],
1202 AS_HELP_STRING([--without-speex],[Omit speex (resampling, AEC)]))
1204 AS_IF([test "x$with_speex" != "xno"],
1205 [PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ], HAVE_SPEEX=1, HAVE_SPEEX=0)],
1208 AS_IF([test "x$with_speex" = "xyes" && test "x$HAVE_SPEEX" = "x0"],
1209 [AC_MSG_ERROR([*** speex support not found])])
1211 AM_CONDITIONAL([HAVE_SPEEX], [test "x$HAVE_SPEEX" = "x1"])
1212 AS_IF([test "x$HAVE_SPEEX" = "x1"], AC_DEFINE([HAVE_SPEEX], 1, [Have speex]))
1214 #### soxr (optional) ####
1217 AS_HELP_STRING([--without-soxr],[Omit soxr (resampling)]))
1219 AS_IF([test "x$with_soxr" != "xno"],
1220 [PKG_CHECK_MODULES(LIBSOXR, [ soxr >= 0.1.1 ], HAVE_SOXR=1, HAVE_SOXR=0)],
1223 AS_IF([test "x$with_soxr" = "xyes" && test "x$HAVE_SOXR" = "x0"],
1224 [AC_MSG_ERROR([*** soxr support not found])])
1226 AM_CONDITIONAL([HAVE_SOXR], [test "x$HAVE_SOXR" = "x1"])
1227 AS_IF([test "x$HAVE_SOXR" = "x1"], AC_DEFINE([HAVE_SOXR], 1, [Have soxr]))
1230 #### gcov support (optional) #####
1232 AC_ARG_ENABLE([gcov],
1233 AS_HELP_STRING([--enable-gcov],[Enable optional gcov coverage analysis]))
1238 AS_IF([test "x$enable_gcov" = "xyes"],
1241 GCOV_CFLAGS="$GCOV_CFLAGS -fprofile-arcs -ftest-coverage"
1242 GCOV_LIBS="$GCOV_LIBS -fprofile-arcs"
1246 AC_SUBST(GCOV_CFLAGS)
1248 AM_CONDITIONAL([HAVE_GCOV], [test "x$HAVE_GCOV" = x1])
1250 #### ORC (optional) ####
1254 #### systemd support (optional) ####
1256 AC_ARG_ENABLE([systemd-daemon],
1257 AS_HELP_STRING([--disable-systemd-daemon],[Disable optional systemd daemon (socket activation) support]))
1259 AC_ARG_ENABLE([systemd-login],
1260 AS_HELP_STRING([--disable-systemd-login],[Disable optional systemd login support]))
1262 AC_ARG_ENABLE([systemd-journal],
1263 AS_HELP_STRING([--disable-systemd-journal],[Disable optional systemd journal support]))
1265 # Newer systemd's combine their subcomponent libraries into one
1266 # If it exists, we should use it for the further checks
1268 AS_IF([test "x$enable_systemd_daemon" != "xno" || test "x$enable_systemd_login" != "xno" || test "x$enable_systemd_journal" != "xno"],
1269 [PKG_CHECK_MODULES(SYSTEMD, [ libsystemd ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)],
1272 AS_IF([test "x$HAVE_SYSTEMD" = "x1"],
1274 HAVE_SYSTEMD_DAEMON=1
1275 HAVE_SYSTEMD_LOGIN=1
1276 HAVE_SYSTEMD_JOURNAL=1
1279 AC_ARG_WITH([systemduserunitdir],
1280 AS_HELP_STRING([--with-systemduserunitdir=DIR], [Directory for systemd user service files]),
1281 [], [with_systemduserunitdir=$($PKG_CONFIG --variable=systemduserunitdir systemd)])
1282 if test "x$with_systemduserunitdir" != xno; then
1283 AC_SUBST([systemduserunitdir], [$with_systemduserunitdir])
1286 #### systemd daemon support (optional) ####
1288 AS_IF([test "x$enable_systemd_daemon" != "xno"],
1289 [AS_IF([test "x$HAVE_SYSTEMD_DAEMON" != "x1"], [PKG_CHECK_MODULES(SYSTEMDDAEMON, [ libsystemd-daemon ], HAVE_SYSTEMD_DAEMON=1, HAVE_SYSTEMD_DAEMON=0)])],
1290 HAVE_SYSTEMD_DAEMON=0)
1292 AS_IF([test "x$enable_systemd_daemon" = "xyes" && test "x$HAVE_SYSTEMD_DAEMON" = "x0"],
1293 [AC_MSG_ERROR([*** Needed systemd daemon support not found])])
1295 AC_SUBST(HAVE_SYSTEMD_DAEMON)
1296 AM_CONDITIONAL([HAVE_SYSTEMD_DAEMON], [test "x$HAVE_SYSTEMD_DAEMON" = x1])
1297 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], AC_DEFINE([HAVE_SYSTEMD_DAEMON], 1, [Have SYSTEMDDAEMON?]))
1299 #### systemd login support (optional) ####
1301 AS_IF([test "x$enable_systemd_login" != "xno"],
1302 [AS_IF([test "x$HAVE_SYSTEMD_LOGIN" != "x1"], [PKG_CHECK_MODULES(SYSTEMDLOGIN, [ libsystemd-login ], HAVE_SYSTEMD_LOGIN=1, HAVE_SYSTEMD_LOGIN=0)])],
1303 HAVE_SYSTEMD_LOGIN=0)
1305 AS_IF([test "x$enable_systemd_login" = "xyes" && test "x$HAVE_SYSTEMD_LOGIN" = "x0"],
1306 [AC_MSG_ERROR([*** Needed systemd login support not found])])
1308 AC_SUBST(HAVE_SYSTEMD_LOGIN)
1309 AM_CONDITIONAL([HAVE_SYSTEMD_LOGIN], [test "x$HAVE_SYSTEMD_LOGIN" = x1])
1310 AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], AC_DEFINE([HAVE_SYSTEMD_LOGIN], 1, [Have SYSTEMDLOGIN?]))
1312 #### systemd journal support (optional) ####
1314 AS_IF([test "x$enable_systemd_journal" != "xno"],
1315 [AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" != "x1"], [PKG_CHECK_MODULES(SYSTEMDJOURNAL, [ libsystemd-journal ], HAVE_SYSTEMD_JOURNAL=1, HAVE_SYSTEMD_JOURNAL=0)])],
1316 HAVE_SYSTEMD_JOURNAL=0)
1318 AS_IF([test "x$enable_systemd_journal" = "xyes" && test "x$HAVE_SYSTEMD_JOURNAL" = "x0"],
1319 [AC_MSG_ERROR([*** Needed systemd journal support not found])])
1321 AC_SUBST(HAVE_SYSTEMD_JOURNAL)
1322 AM_CONDITIONAL([HAVE_SYSTEMD_JOURNAL], [test "x$HAVE_SYSTEMD_JOURNAL" = x1])
1323 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], AC_DEFINE([HAVE_SYSTEMD_JOURNAL], 1, [Have SYSTEMDJOURNAL?]))
1325 #### GStreamer-based RTP support (optional) ####
1327 AC_ARG_ENABLE([gstreamer],
1328 AS_HELP_STRING([--enable-gstreamer],[Enable optional GStreamer-based RTP support]))
1330 AS_IF([test "x$enable_gstreamer" = "xyes"],
1331 [PKG_CHECK_MODULES(GSTREAMER, [ gstreamer-1.0 >= 1.14 gstreamer-app-1.0 gstreamer-rtp-1.0 gio-2.0 ],
1332 HAVE_GSTREAMER=1, HAVE_GSTREAMER=0)],
1335 AS_IF([test "x$enable_gstreamer" = "xyes" && test "x$HAVE_GSTREAMER" = "x0"],
1336 [AC_MSG_ERROR([*** GStreamer 1.0 support not found])])
1338 AM_CONDITIONAL([HAVE_GSTREAMER], [test "x$HAVE_GSTREAMER" = x1])
1339 AS_IF([test "x$HAVE_GSTREAMER" = "x1"], AC_DEFINE([HAVE_GSTREAMER], 1, [Have GStreamer?]))
1341 #### Build and Install man pages ####
1343 AC_ARG_ENABLE([manpages],
1344 AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]))
1346 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" != "xno"])
1348 #### PulseAudio system group & user #####
1350 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1351 if test -z "$with_system_user" ; then
1352 PA_SYSTEM_USER=pulse
1354 PA_SYSTEM_USER=$with_system_user
1356 AC_SUBST(PA_SYSTEM_USER)
1357 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1359 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1360 if test -z "$with_system_group" ; then
1361 PA_SYSTEM_GROUP=pulse
1363 PA_SYSTEM_GROUP=$with_system_group
1365 AC_SUBST(PA_SYSTEM_GROUP)
1366 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1368 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)]))
1369 if test -z "$with_access_group" ; then
1370 PA_ACCESS_GROUP=pulse-access
1372 PA_ACCESS_GROUP=$with_access_group
1374 AC_SUBST(PA_ACCESS_GROUP)
1375 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1377 AC_ARG_ENABLE([per-user-esound-socket],
1378 AS_HELP_STRING([--disable-per-user-esound-socket],[Use global esound socket directory /tmp/.esd/socket.]))
1380 if test "x$enable_per_user_esound_socket" != "xno"; then
1381 USE_PER_USER_ESOUND_SOCKET=1
1382 AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1384 USE_PER_USER_ESOUND_SOCKET=0
1387 #### PulseAudio system runtime dir ####
1389 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1390 AX_DEFINE_DIR(PA_SYSTEM_RUNTIME_PATH, PA_SYSTEM_RUNTIME_PATH, [System runtime dir])
1391 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1392 AX_DEFINE_DIR(PA_SYSTEM_CONFIG_PATH, PA_SYSTEM_CONFIG_PATH, [System config dir])
1393 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1394 AX_DEFINE_DIR(PA_SYSTEM_STATE_PATH, PA_SYSTEM_STATE_PATH, [System state dir])
1396 PA_BINARY=${bindir}/pulseaudio${EXEEXT}
1397 AX_DEFINE_DIR(PA_BINARY, PA_BINARY, [Location of pulseaudio binary])
1399 PACTL_BINARY=${bindir}/pactl${EXEEXT}
1400 AX_DEFINE_DIR(PACTL_BINARY, PACTL_BINARY, [Location of pactl binary])
1402 AC_SUBST(PA_SOEXT, [.so])
1403 AC_DEFINE(PA_SOEXT, [".so"], [Shared object extension])
1405 AC_SUBST(pulseconfdir, ["${sysconfdir}/pulse"])
1406 AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR, pulseconfdir, [Location of configuration files])
1407 AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR_UNQUOTED, pulseconfdir, [Location of configuration files])
1409 #### Mac OSX specific stuff #####
1411 AC_ARG_ENABLE(mac-universal,
1412 AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries]),
1413 enable_mac_universal=$enableval, enable_mac_universal="no")
1415 AC_ARG_WITH(mac-version-min,
1416 AS_HELP_STRING([--with-mac-version-min=<version>], [Defines the earliest version of MacOS X that the executables will run on.]),
1417 mac_version_min=$withval, mac_version_min="10.5")
1419 AC_ARG_WITH(mac-sysroot,
1420 AS_HELP_STRING([--with-mac-sysroot=<path>], [SDK basedir to use as the logical root directory for headers and libraries.]),
1421 mac_sysroot=$withval)
1423 if test "x$os_is_darwin" = "x1" ; then
1424 LDFLAGS="$LDFLAGS -mmacosx-version-min=$mac_version_min"
1425 CFLAGS="$CFLAGS -mmacosx-version-min=$mac_version_min"
1427 if test "x$mac_sysroot" != "x" ; then
1428 LDFLAGS="$LDFLAGS -isysroot $mac_sysroot"
1429 CFLAGS="$CFLAGS -isysroot $mac_sysroot"
1432 if test "x$enable_mac_universal" = "xyes" ; then
1433 mac_arches="-arch i386 -arch x86_64"
1434 LDFLAGS="$LDFLAGS $mac_arches"
1435 CFLAGS="$CFLAGS $mac_arches"
1439 AC_ARG_ENABLE([webrtc-aec],
1440 AS_HELP_STRING([--enable-webrtc-aec], [Enable the optional WebRTC-based echo canceller]))
1442 AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "$HAVE_CXX11" = "0"],
1443 [AC_MSG_ERROR([*** webrtc-audio-processing needs C++11 support])])
1445 AS_IF([test "x$enable_webrtc_aec" != "xno"],
1446 [PKG_CHECK_MODULES(WEBRTC, [ webrtc-audio-processing >= 0.2 ], [HAVE_WEBRTC=1], [HAVE_WEBRTC=0])],
1449 AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "x$HAVE_WEBRTC" = "x0"],
1450 [AC_MSG_ERROR([*** webrtc-audio-processing library not found])])
1452 AM_CONDITIONAL([HAVE_WEBRTC], [test "x$HAVE_WEBRTC" = "x1"])
1454 AC_ARG_ENABLE([adrian-aec],
1455 AS_HELP_STRING([--enable-adrian-aec], [Enable Adrian's optional echo canceller]))
1456 AS_IF([test "x$enable_adrian_aec" != "xno"],
1458 AM_CONDITIONAL([HAVE_ADRIAN_EC], [test "x$HAVE_ADRIAN_EC" = "x1"])
1461 #### Thread support ####
1464 AS_IF([test "$ac_cv_tls" = "__thread"],
1465 AC_DEFINE([SUPPORT_TLS___THREAD], 1, [Define this if the compiler supports __thread for Thread-Local Storage]))
1467 # Win32 build breaks with win32 pthread installed
1468 AS_IF([test "x$os_is_win32" != "x1"],
1471 AS_IF([test "x$ax_pthread_ok" = "xyes"],
1472 AC_DEFINE([_POSIX_PTHREAD_SEMANTICS], 1, [Needed on Solaris]))
1476 ###################################
1478 ###################################
1480 AC_DEFINE_UNQUOTED(PA_CFLAGS, "$CFLAGS", [The CFLAGS used during compilation])
1482 # Check whether to build tests by default (as compile-test) or not
1483 AC_ARG_ENABLE([default-build-tests],
1484 AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
1485 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
1487 AC_ARG_ENABLE([legacy-database-entry-format],
1488 AS_HELP_STRING([--disable-legacy-database-entry-format], [Try to load legacy (< 1.0) database files (card, device and volume restore).]))
1489 if test "x$enable_legacy_database_entry_format" != "xno" ; then
1490 AC_DEFINE(ENABLE_LEGACY_DATABASE_ENTRY_FORMAT, [1], [Legacy database entry format])
1493 AC_ARG_ENABLE([stream-restore-clear-old-devices],
1494 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]))
1495 if test "x$enable_stream_restore_clear_old_devices" == "xyes" ; then
1496 AC_DEFINE(STREAM_RESTORE_CLEAR_OLD_DEVICES, [1], [module-stream-restore: Clear old devices])
1499 AC_ARG_ENABLE([static-bins],
1500 AS_HELP_STRING([--enable-static-bins],[Statically link executables.]))
1501 AM_CONDITIONAL([STATIC_BINS], [test "x$enable_static_bins" = "xyes"])
1505 AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1506 [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1507 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1508 if test "x$PREOPEN_MODS" != "xall" ; then
1510 for mod in $PREOPEN_MODS; do
1511 tmpLIBS="$tmpLIBS module-$mod.la"
1513 PREOPEN_MODS="$tmpLIBS"
1514 AC_SUBST(PREOPEN_MODS)
1519 AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]),
1520 [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"])
1522 AC_SUBST(modlibexecdir)
1523 AX_DEFINE_DIR(PA_DLSEARCHPATH, modlibexecdir, [Modules dir])
1527 AS_HELP_STRING([--with-alsa-data-dir],[Directory for ALSA card profiles (defaults to ${datadir}/pulseaudio/alsa-mixer)]),
1528 [alsadatadir=$withval], [alsadatadir="${datadir}/pulseaudio/alsa-mixer"])
1530 AC_SUBST(alsadatadir)
1534 AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1535 [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1537 AC_SUBST(udevrulesdir)
1539 AC_ARG_WITH([bash-completion-dir],
1540 AS_HELP_STRING([--with-bash-completion-dir=DIR], [Directory for bash completion files]),
1541 [bashcompletiondir=$withval], [bashcompletiondir=$($PKG_CONFIG --variable=completionsdir bash-completion)])
1542 if test "x$bashcompletionsdir" = "x"; then
1543 bashcompletiondir="${datadir}/bash-completion/completions"
1546 AC_SUBST(bashcompletiondir)
1549 [zsh-completion-dir],
1550 AS_HELP_STRING([--with-zsh-completion-dir], [Zsh completions directory (defaults to ${datadir}/zsh/site-functions)]),
1551 [zshcompletiondir=$withval], [zshcompletiondir="${datadir}/zsh/site-functions"])
1553 AC_SUBST(zshcompletiondir)
1555 AC_ARG_ENABLE([force-preopen],
1556 AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]))
1558 if test "x$enable_force_preopen" = "xyes"; then
1564 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1566 # Substitute the variable with an empty string. This makes the output go to the
1567 # directory where doxygen is run (which is the doxygen directory under the
1568 # build directory). Substituting a variable with a constant value wouldn't
1569 # otherwise make sense, but the substitution variable needs to exist, because
1570 # we substitute a different value when using Meson.
1571 AC_SUBST([DOXYGEN_OUTPUT_DIRECTORY], [])
1579 libpulse-mainloop-glib.pc
1581 doxygen/doxygen.conf
1584 man/pulseaudio.1.xml
1585 man/pax11publish.1.xml
1589 man/pasuspender.1.xml
1591 man/pulse-daemon.conf.5.xml
1592 man/pulse-client.conf.5.xml
1593 man/default.pa.5.xml
1594 man/pulse-cli-syntax.5.xml
1595 man/start-pulseaudio-x11.1.xml
1598 AS_IF([test "x$HAVE_ESOUND" = "x1"],
1600 AC_CONFIG_FILES([man/esdcompat.1.xml])
1601 AC_CONFIG_FILES([src/esdcompat:src/daemon/esdcompat.in], [chmod +x src/esdcompat])
1604 AC_CONFIG_FILES([src/start-pulseaudio-x11:src/daemon/start-pulseaudio-x11.in], [chmod +x src/start-pulseaudio-x11])
1605 AC_CONFIG_FILES([src/client.conf:src/pulse/client.conf.in])
1606 AC_CONFIG_FILES([src/daemon.conf:src/daemon/daemon.conf.in],
1607 [m4 src/daemon.conf > src/daemon.conf.gen && mv src/daemon.conf.gen src/daemon.conf])
1608 AC_CONFIG_FILES([src/default.pa:src/daemon/default.pa.in],
1609 [m4 src/default.pa > src/default.pa.gen && mv src/default.pa.gen src/default.pa])
1610 AC_CONFIG_FILES([src/system.pa:src/daemon/system.pa.in],
1611 [m4 src/system.pa > src/system.pa.gen && mv src/system.pa.gen src/system.pa])
1612 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"],
1614 AC_CONFIG_FILES([src/pulseaudio.service:src/daemon/systemd/user/pulseaudio.service.in])
1617 # CMake related ProjectConfig files
1619 AX_DEFINE_DIR(PA_LIBDIR, PA_LIBDIR, [PulseAudio library dir])
1620 PA_INCDIR="$includedir"
1621 AX_DEFINE_DIR(PA_INCDIR, PA_INCDIR, [PulseAudio include dir])
1623 AC_CONFIG_FILES([PulseAudioConfig.cmake:PulseAudioConfig.cmake.in],
1624 [m4 PulseAudioConfig.cmake > PulseAudioConfig.cmake.gen && mv PulseAudioConfig.cmake.gen PulseAudioConfig.cmake])
1625 AC_CONFIG_FILES([PulseAudioConfigVersion.cmake])
1629 # ==========================================================================
1631 AS_IF([test "x$HAVE_MEMFD" = "x1"], ENABLE_MEMFD=yes, ENABLE_MEMFD=no)
1632 AS_IF([test "x$HAVE_X11" = "x1"], ENABLE_X11=yes, ENABLE_X11=no)
1633 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], ENABLE_OSS_OUTPUT=yes, ENABLE_OSS_OUTPUT=no)
1634 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no)
1635 AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no)
1636 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no)
1637 AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no)
1638 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no)
1639 AS_IF([test "x$HAVE_GLIB20" = "x1"], ENABLE_GLIB20=yes, ENABLE_GLIB20=no)
1640 AS_IF([test "x$HAVE_GTK30" = "x1"], ENABLE_GTK30=yes, ENABLE_GTK30=no)
1641 AS_IF([test "x$HAVE_GCONF" = "x1"], ENABLE_GCONF=yes, ENABLE_GCONF=no)
1642 AS_IF([test "x$HAVE_GSETTINGS" = "x1"], ENABLE_GSETTINGS=yes, ENABLE_GSETTINGS=no)
1643 AS_IF([test "x$HAVE_AVAHI" = "x1"], ENABLE_AVAHI=yes, ENABLE_AVAHI=no)
1644 AS_IF([test "x$HAVE_JACK" = "x1"], ENABLE_JACK=yes, ENABLE_JACK=no)
1645 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], ENABLE_LIBASYNCNS=yes, ENABLE_LIBASYNCNS=no)
1646 AS_IF([test "x$HAVE_LIRC" = "x1"], ENABLE_LIRC=yes, ENABLE_LIRC=no)
1647 AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
1648 AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
1649 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], ENABLE_SYSTEMD_DAEMON=yes, ENABLE_SYSTEMD_DAEMON=no)
1650 AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], ENABLE_SYSTEMD_LOGIN=yes, ENABLE_SYSTEMD_LOGIN=no)
1651 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], ENABLE_SYSTEMD_JOURNAL=yes, ENABLE_SYSTEMD_JOURNAL=no)
1652 AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], ENABLE_BLUEZ_5=yes, ENABLE_BLUEZ_5=no)
1653 AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], ENABLE_BLUEZ_5_OFONO_HEADSET=yes, ENABLE_BLUEZ_5_OFONO_HEADSET=no)
1654 AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], ENABLE_BLUEZ_5_NATIVE_HEADSET=yes, ENABLE_BLUEZ_5_NATIVE_HEADSET=no)
1655 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
1656 AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
1657 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE="yes (DEPRECATED)", ENABLE_LIBSAMPLERATE=no)
1658 AS_IF([test "x$HAVE_IPV6" = "x1"], ENABLE_IPV6=yes, ENABLE_IPV6=no)
1659 AS_IF([test "x$HAVE_OPENSSL" = "x1"], ENABLE_OPENSSL=yes, ENABLE_OPENSSL=no)
1660 AS_IF([test "x$HAVE_FFTW" = "x1"], ENABLE_FFTW=yes, ENABLE_FFTW=no)
1661 AS_IF([test "x$HAVE_ORC" = "xyes"], ENABLE_ORC=yes, ENABLE_ORC=no)
1662 AS_IF([test "x$HAVE_ADRIAN_EC" = "x1"], ENABLE_ADRIAN_EC=yes, ENABLE_ADRIAN_EC=no)
1663 AS_IF([test "x$HAVE_SPEEX" = "x1"], ENABLE_SPEEX=yes, ENABLE_SPEEX=no)
1664 AS_IF([test "x$HAVE_SOXR" = "x1"], ENABLE_SOXR=yes, ENABLE_SOXR=no)
1665 AS_IF([test "x$HAVE_WEBRTC" = "x1"], ENABLE_WEBRTC=yes, ENABLE_WEBRTC=no)
1666 AS_IF([test "x$HAVE_GSTREAMER" = "x1"], ENABLE_GSTREAMER=yes, ENABLE_GSTREAMER=no)
1667 AS_IF([test "x$HAVE_TDB" = "x1"], ENABLE_TDB=yes, ENABLE_TDB=no)
1668 AS_IF([test "x$HAVE_GDBM" = "x1"], ENABLE_GDBM=yes, ENABLE_GDBM=no)
1669 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no)
1670 AS_IF([test "x$HAVE_ESOUND" = "x1"], ENABLE_ESOUND=yes, ENABLE_ESOUND=no)
1671 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)
1672 AS_IF([test "x$HAVE_GCOV" = "x1"], ENABLE_GCOV=yes, ENABLE_GCOV=no)
1673 AS_IF([test "x$HAVE_LIBCHECK" = "x1"], ENABLE_TESTS=yes, ENABLE_TESTS=no)
1674 AS_IF([test "x$enable_legacy_database_entry_format" != "xno"], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no)
1675 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)
1678 ---{ $PACKAGE_NAME $VERSION }---
1681 sysconfdir: ${sysconfdir}
1682 localstatedir: ${localstatedir}
1683 modlibexecdir: ${modlibexecdir}
1684 alsadatadir: ${alsadatadir}
1685 System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH}
1686 System State Path: ${PA_SYSTEM_STATE_PATH}
1687 System Config Path: ${PA_SYSTEM_CONFIG_PATH}
1688 Zsh completions directory: ${zshcompletiondir}
1689 Bash completions directory: ${bashcompletiondir}
1692 CPPFLAGS: ${CPPFLAGS}
1695 Enable memfd shared memory: ${ENABLE_MEMFD}
1696 Enable X11: ${ENABLE_X11}
1697 Safe X11 I/O errors: ${HAVE_XSETIOERROREXITHANDLER}
1698 Enable OSS Output: ${ENABLE_OSS_OUTPUT}
1699 Enable OSS Wrapper: ${ENABLE_OSS_WRAPPER}
1700 Enable EsounD: ${ENABLE_ESOUND}
1701 Enable Alsa: ${ENABLE_ALSA}
1702 Enable CoreAudio: ${ENABLE_COREAUDIO}
1703 Enable Solaris: ${ENABLE_SOLARIS}
1704 Enable WaveOut: ${ENABLE_WAVEOUT}
1705 Enable GLib 2.0: ${ENABLE_GLIB20}
1706 Enable Gtk+ 3.0: ${ENABLE_GTK30}
1707 Enable GConf: ${ENABLE_GCONF}
1708 Enable GSettings: ${ENABLE_GSETTINGS}
1709 Enable Avahi: ${ENABLE_AVAHI}
1710 Enable Jack: ${ENABLE_JACK}
1711 Enable Async DNS: ${ENABLE_LIBASYNCNS}
1712 Enable LIRC: ${ENABLE_LIRC}
1713 Enable D-Bus: ${ENABLE_DBUS}
1714 Enable BlueZ 5: ${ENABLE_BLUEZ_5}
1715 Enable ofono headsets: ${ENABLE_BLUEZ_5_OFONO_HEADSET}
1716 Enable native headsets: ${ENABLE_BLUEZ_5_NATIVE_HEADSET}
1717 Enable udev: ${ENABLE_UDEV}
1718 Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
1720 Daemon (Socket Activation): ${ENABLE_SYSTEMD_DAEMON}
1721 Login (Session Tracking): ${ENABLE_SYSTEMD_LOGIN}
1722 Journal (Logging): ${ENABLE_SYSTEMD_JOURNAL}
1723 Enable TCP Wrappers: ${ENABLE_TCPWRAP}
1724 Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
1725 Enable IPv6: ${ENABLE_IPV6}
1726 Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1727 Enable fftw: ${ENABLE_FFTW}
1728 Enable orc: ${ENABLE_ORC}
1729 Enable Adrian echo canceller: ${ENABLE_ADRIAN_EC}
1730 Enable speex (resampler, AEC): ${ENABLE_SPEEX}
1731 Enable soxr (resampler): ${ENABLE_SOXR}
1732 Enable WebRTC echo canceller: ${ENABLE_WEBRTC}
1733 Enable GStreamer-based RTP: ${ENABLE_GSTREAMER}
1734 Enable gcov coverage: ${ENABLE_GCOV}
1735 Enable unit tests: ${ENABLE_TESTS}
1738 gdbm: ${ENABLE_GDBM}
1739 simple database: ${ENABLE_SIMPLEDB}
1741 System User: ${PA_SYSTEM_USER}
1742 System Group: ${PA_SYSTEM_GROUP}
1743 Access Group: ${PA_ACCESS_GROUP}
1744 Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1745 Force preopen: ${FORCE_PREOPEN}
1746 Preopened modules: ${PREOPEN_MODS}
1748 Legacy Database Entry Support: ${ENABLE_LEGACY_DATABASE_ENTRY_FORMAT}
1749 module-stream-restore:
1750 Clear old devices: ${ENABLE_STREAM_RESTORE_CLEAR_OLD_DEVICES}
1753 if test "${ENABLE_SPEEX}" = "no" && test "${ENABLE_WEBRTC}" = "no" && test "${ENABLE_ADRIAN_EC}" = "no" ; then
1754 AC_MSG_ERROR([At least one echo canceller implementation must be available.])
1757 if test "${ENABLE_DBUS}" = "no" && test "x$os_is_win32" != "x1" ; then
1759 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1760 You do not have D-Bus support enabled. It is strongly recommended
1761 that you enable D-Bus support if your platform supports it.
1762 Many parts of PulseAudio use D-Bus, from ConsoleKit interaction
1763 to the Device Reservation Protocol to speak to JACK, Bluetooth
1764 support and even a native control protocol for communicating and
1765 controlling the PulseAudio daemon itself.
1766 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1770 if test "${ENABLE_UDEV}" = "no" && test "x$os_is_win32" != "x1" ; then
1772 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1773 You do not have udev support enabled. It is strongly recommended
1774 that you enable udev support if your platform supports it as it is
1775 the primary method used to detect hardware audio devices (on Linux)
1776 and is thus a critical part of PulseAudio on that platform.
1777 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1781 if test "${ENABLE_SPEEX}" = "no" && test "x$os_is_win32" != "x1" ; then
1783 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1784 You do not have speex support enabled. It is strongly recommended
1785 that you enable speex support if your platform supports it as it is
1786 the primary method used for audio resampling and is thus a critical
1787 part of PulseAudio on that platform.
1788 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====