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, 33)
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, [21:1:21])
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:5: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.3])
105 AM_GNU_GETTEXT([external])
107 GETTEXT_PACKAGE=pulseaudio
108 AC_SUBST([GETTEXT_PACKAGE])
109 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
112 #### Determine host OS ####
114 # if the host has the possibility of sys/capability.h for dropping privileges
115 # used to determine if we should error out if it is not found
122 AC_MSG_CHECKING([host operating system])
125 AC_MSG_RESULT([linux])
130 AC_MSG_RESULT([freebsd])
134 AC_MSG_RESULT([netbsd])
137 AC_MSG_RESULT([darwin])
139 AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.])
142 AC_MSG_RESULT([win32])
144 AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
147 AC_MSG_RESULT([unknown])
151 AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
152 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
153 AC_SUBST([OS_IS_WIN32], [$os_is_win32])
155 # Platform specific hacks
158 AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
161 AC_DEFINE([WIN32_LEAN_AND_MEAN], 1, [Needed to avoid including unnecessary headers on Windows])
164 AC_DEFINE(_XOPEN_SOURCE, 600, [Needed to get declarations for msg_control and msg_controllen on Solaris])
165 AC_DEFINE(__EXTENSIONS__, 1, [Needed to get declarations for msg_control and msg_controllen on Solaris])
170 #### Compiler flags ####
172 AX_CHECK_COMPILE_FLAG([-std=gnu11],
174 [AC_MSG_ERROR([*** Compiler does not support -std=gnu11])],
177 AX_APPEND_COMPILE_FLAGS(
178 [-Wall -W -Wextra -pipe -Wno-long-long -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings -Wno-unused-parameter -fno-common -fdiagnostics-show-option -fdiagnostics-color=auto],
179 [], [-pedantic -Werror])
181 AS_CASE([" $CFLAGS "], [*" -O0 "*], [], [
182 # Don't append the flag if it already exists.
183 # Only enable fastpath asserts when doing a debug build, e.g. from bootstrap.sh.
184 AX_APPEND_FLAG([-DFASTPATH], [CPPFLAGS])
186 # Cannot use AX_APPEND_FLAG here, as it assumes no space inside the added flags.
187 # Cannot append flags with AX_APPEND_FLAG one by one, as this would destroy all fortifications
188 # if CPPFLAGS already contain -D_FORTIFY_SOURCE=2.
190 # Warnings to be aware of that appear with -D_FORTIFY_SOURCE=2 but without -U_FORTIFY_SOURCE:
191 # On Fedora 20 with -O0: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp]
192 # On Gentoo with -O2: "_FORTIFY_SOURCE" redefined [enabled by default]
193 AS_VAR_APPEND([CPPFLAGS],[" -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"])
196 #### Linker flags ####
198 # Check whether the linker supports the -version-script option.
199 # The Make variable $(srcdir) needs to be in the LDFLAGS in that form,
200 # so that it is expanded the right way in every subdir.
201 AX_CHECK_LINK_FLAG(["-Wl,-version-script=${srcdir}/src/map-file"],
202 [VERSIONING_LDFLAGS='-Wl,-version-script=$(abs_top_srcdir)/src/map-file'])
203 AC_SUBST([VERSIONING_LDFLAGS])
205 # Use immediate (now) bindings; avoids the funky re-call in itself.
206 # The -z now syntax is lifted from Sun's linker and works with GNU's too, other linkers might be added later.
207 AX_APPEND_LINK_FLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS])
208 AC_SUBST([IMMEDIATE_LDFLAGS])
209 AS_CASE([$IMMEDIATE_LDFLAGS],[*-z,now*],
210 [AC_DEFINE([HAVE_BIND_NOW],[1],
211 [Define to 1 if immediate binding is available])])
213 # On ELF systems we don't want the libraries to be unloaded since we don't clean them up properly,
214 # so we request the nodelete flag to be enabled.
215 # On other systems, we don't really know how to do that, but it's welcome if somebody can tell.
216 AX_APPEND_LINK_FLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS], [-shared])
217 AC_SUBST([NODELETE_LDFLAGS])
219 # Check for the proper way to build libraries that have no undefined symbols
221 # FreeBSD (et al.) does not complete linking for shared objects when pthreads
222 # are requested, as different implementations are present.
223 *-freebsd* | *-openbsd*) ;;
225 for possible_flag in "-Wl,--no-undefined" "-Wl,-z,defs"; do
226 AX_CHECK_LINK_FLAG([$possible_flag], [NOUNDEFINED_LDFLAGS="$possible_flag"; break])
230 AC_SUBST([NOUNDEFINED_LDFLAGS])
233 #### Atomic operations ####
235 # Native atomic operation support
236 AC_ARG_ENABLE([atomic-arm-linux-helpers],
237 AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]))
239 AC_ARG_ENABLE([atomic-arm-memory-barrier],
240 AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]))
242 if test "x$enable_atomic_arm_memory_barrier" = "xyes"; then
243 AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers])
246 # If everything else fails use libatomic_ops
247 need_libatomic_ops=yes
249 AC_CACHE_CHECK([whether $CC knows __atomic_store_n()],
250 pulseaudio_cv_atomic_store_n, [
252 [AC_LANG_PROGRAM([], [[int c = 0; __atomic_store_n(&c, 4, __ATOMIC_SEQ_CST);]])],
253 [pulseaudio_cv_atomic_store_n=yes],
254 [pulseaudio_cv_atomic_store_n=no])
258 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
259 pulseaudio_cv_sync_bool_compare_and_swap, [
261 [AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]])],
262 [pulseaudio_cv_sync_bool_compare_and_swap=yes],
263 [pulseaudio_cv_sync_bool_compare_and_swap=no])
266 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
267 AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
268 if test "$pulseaudio_cv_atomic_store_n" = "yes" ; then
269 AC_DEFINE([HAVE_ATOMIC_BUILTINS_MEMORY_MODEL], 1, [Have __atomic_store_n() and friends.])
271 need_libatomic_ops=no
273 # HW specific atomic ops stuff
274 AC_MSG_CHECKING([architecture for native atomic operations])
278 need_libatomic_ops=no
282 AC_MSG_CHECKING([whether we can use Linux kernel helpers])
283 # The Linux kernel helper functions have been there since 2.6.16. However
284 # compile time checking for kernel version in cross compile environment
285 # (which is usually the case for arm cpu) is tricky (or impossible).
286 if test "x$os_is_linux" = "x1" && test "x$enable_atomic_arm_linux_helpers" != "xno"; then
288 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
289 need_libatomic_ops=no
292 AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
293 pulseaudio_cv_support_arm_atomic_ops, [
295 [AC_LANG_PROGRAM([], [[
298 asm volatile ("ldrex %0, [%1]\n"
300 "strexeq %0, %3, [%1]\n"
302 : "r" (&a), "Ir" (o), "r" (n)
304 return (a==1 ? 0 : -1);
306 [pulseaudio_cv_support_arm_atomic_ops=yes],
307 [pulseaudio_cv_support_arm_atomic_ops=no])
309 AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
310 AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARM atomic instructions.])
311 need_libatomic_ops=no
317 need_libatomic_ops=no
320 AC_MSG_RESULT([unknown])
325 # If we're on ARM, check for the ARMV6 instructions we need */
328 AC_CACHE_CHECK([support for required armv6 instructions],
329 pulseaudio_cv_support_armv6,
332 [[volatile int a = -60000, b = 0xaaaabbbb, c = 0xccccdddd;
333 asm volatile ("ldr r0, %2 \n"
338 "pkhbt r1, r3, r2, LSL #8 \n"
341 : "m" (a), "m" (b), "m" (c)
342 : "r0", "r1", "r2", "r3", "cc");
343 return (a == -128 && b == 0xaabbdddd) ? 0 : -1;
345 [pulseaudio_cv_support_armv6=yes],
346 [pulseaudio_cv_support_armv6=no])
348 AS_IF([test "$pulseaudio_cv_support_armv6" = "yes"], [
349 AC_DEFINE([HAVE_ARMV6], 1, [Have ARMv6 instructions.])
356 #### NEON optimisations ####
357 AC_ARG_ENABLE([neon-opt],
358 AS_HELP_STRING([--enable-neon-opt], [Enable NEON optimisations on ARM CPUs that support it]))
360 AS_IF([test "x$enable_neon_opt" != "xno"],
361 [save_CFLAGS="$CFLAGS"; CFLAGS="-mfpu=neon $CFLAGS"
363 [AC_LANG_PROGRAM([[#include <arm_neon.h>]], [])],
366 NEON_CFLAGS="-mfpu=neon"
372 CFLAGS="$save_CFLAGS"
376 AS_IF([test "x$enable_neon_opt" = "xyes" && test "x$HAVE_NEON" = "x0"],
377 [AC_MSG_ERROR([*** Compiler does not support -mfpu=neon or CFLAGS override -mfpu])])
380 AC_SUBST(NEON_CFLAGS)
381 AM_CONDITIONAL([HAVE_NEON], [test "x$HAVE_NEON" = x1])
382 AS_IF([test "x$HAVE_NEON" = "x1"], AC_DEFINE([HAVE_NEON], 1, [Have NEON support?]))
385 #### libtool stuff ####
388 LT_INIT([dlopen win32-dll disable-static])
390 dnl As an extra safety device, check for lt_dladvise_init() which is
391 dnl only implemented in libtool 2.x, and refine as we go if we have
392 dnl refined requirements.
394 dnl Check the header files first since the system may have a
395 dnl libltdl.so for runtime, but no headers, and we want to bail out as
396 dnl soon as possible.
398 dnl We don't need any special variable for this though, since the user
399 dnl can give the proper place to find libltdl through the standard
400 dnl variables like LDFLAGS and CPPFLAGS.
402 AC_CHECK_HEADER([ltdl.h],
403 [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
406 AS_IF([test "x$LIBLTDL" = "x"],
407 [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.4 or later installed.])])
411 ###################################
412 # Basic environment checks #
413 ###################################
415 #### Checks for header files. ####
421 AC_CHECK_HEADERS_ONCE([arpa/inet.h cpuid.h glob.h grp.h netdb.h netinet/in.h \
422 netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
423 sys/mman.h sys/select.h sys/socket.h sys/wait.h \
424 sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
425 AC_CHECK_HEADERS([netinet/ip.h], [], [],
426 [#include <sys/types.h>
427 #if HAVE_NETINET_IN_H
428 # include <netinet/in.h>
430 #if HAVE_NETINET_IN_SYSTM_H
431 # include <netinet/in_systm.h>
434 AC_CHECK_HEADERS([sys/resource.h], [HAVE_SYS_RESOURCE_H=1], [HAVE_SYS_RESOURCE_H=0])
435 AC_SUBST(HAVE_SYS_RESOURCE_H)
436 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
437 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
438 AC_SUBST(HAVE_AF_UNIX)
441 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
442 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
444 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
447 AC_CHECK_HEADERS_ONCE([sys/conf.h sys/filio.h])
450 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
453 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
456 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
457 AC_CHECK_HEADERS_ONCE([byteswap.h])
458 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
459 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
460 AC_CHECK_HEADERS_ONCE([execinfo.h])
461 AC_CHECK_HEADERS_ONCE([langinfo.h])
462 AC_CHECK_HEADERS_ONCE([regex.h pcreposix.h])
463 AC_CHECK_HEADERS_ONCE([locale.h xlocale.h])
465 AM_CONDITIONAL(HAVE_SYS_EVENTFD_H, test "x$ac_cv_header_sys_eventfd_h" = "xyes")
467 #### Typdefs, structures, etc. ####
473 AC_CHECK_TYPES(ssize_t, , AC_DEFINE([ssize_t], [signed long], [Define ssize_t if it is not done by the standard libs.]))
477 AC_CHECK_DECLS(environ)
479 AC_CHECK_SIZEOF(void*)
481 fast_64bit_operations="no"
482 # This check covers x32-ABI
483 AC_CHECK_DECL([__x86_64__], [fast_64bit_operations="yes"], [], [])
484 if test "x$fast_64bit_operations" = "xno"; then
485 AS_IF([test $ac_cv_sizeof_voidp -ge 8], [fast_64bit_operations="yes"])
488 AS_IF([test "x$fast_64bit_operations" = "xyes"], AC_DEFINE([HAVE_FAST_64BIT_OPERATIONS], 1, [Have CPU with fast 64-bit operations?]))
491 AX_CHECK_DEFINE([signal.h], [SIGXCPU], [HAVE_SIGXCPU=1], [HAVE_SIGXCPU=0])
492 AS_IF([test "x$HAVE_SIGXCPU" = "x1"], AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?]))
493 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
495 # INADDR_NONE, Solaris lacks this
496 AX_CHECK_DEFINE([netinet/in.h], [INADDR_NONE], [],
497 [AX_CHECK_DEFINE([winsock2.h], [INADDR_NONE], [],
498 [AC_DEFINE([INADDR_NONE], [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
502 AC_CACHE_CHECK([whether $CC knows _Bool],
505 [AC_LANG_PROGRAM([], [[_Bool b;]])],
506 [pulseaudio_cv__Bool=yes],
507 [pulseaudio_cv__Bool=no])
510 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.]))
513 #### Check for libs ####
516 AC_SEARCH_LIBS([pow], [m])
519 AC_SEARCH_LIBS([sched_setscheduler], [rt])
520 AC_SEARCH_LIBS([dlopen], [dl])
521 AC_SEARCH_LIBS([shm_open], [rt])
522 AC_SEARCH_LIBS([inet_ntop], [nsl])
523 AC_SEARCH_LIBS([timer_create], [rt])
524 AC_SEARCH_LIBS([pthread_setaffinity_np], [pthread])
525 AC_SEARCH_LIBS([pthread_getname_np], [pthread])
526 AC_SEARCH_LIBS([pthread_setname_np], [pthread])
529 AC_SEARCH_LIBS([connect], [socket])
530 AC_SEARCH_LIBS([backtrace], [execinfo ubacktrace])
533 if test "x$os_is_darwin" = "x1" ; then
534 AC_MSG_CHECKING([looking for Apple CoreService Framework])
535 AC_CHECK_HEADER([CoreServices/CoreServices.h],
536 [LIBS="$LIBS -framework CoreServices"],
537 [AC_MSG_ERROR([CoreServices.h header file not found])]
541 AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
545 AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
548 AC_SEARCH_LIBS([regexec], [pcreposix])
549 # This magic is needed so we do not needlessly add static libs to the win32 build, disabling its ability to make dlls.
550 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
553 #### Check for functions ####
556 AC_CHECK_FUNCS_ONCE([lrintf strtof])
561 AC_CHECK_FUNCS_ONCE([chmod chown fstat fchown fchmod clock_gettime getaddrinfo getgrgid_r getgrnam_r \
562 getpwnam_r getpwuid_r gettimeofday getuid mlock nanosleep \
563 pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
564 sigaction sleep symlink sysconf uname pthread_setaffinity_np pthread_getname_np pthread_setname_np])
565 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
566 AC_SUBST(HAVE_MKFIFO)
567 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
570 AC_CHECK_FUNCS_ONCE([readlink])
573 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
576 AC_CHECK_FUNCS_ONCE([strerror_r])
579 AC_CHECK_FUNCS_ONCE([lstat paccept])
582 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtod_l pipe2 accept4])
586 AC_CHECK_FUNCS([regexec], [HAVE_REGEX=1], [HAVE_REGEX=0])
587 AM_CONDITIONAL(HAVE_REGEX, [test "x$HAVE_REGEX" = "x1"])
589 # Large File-Support (LFS)
591 # Check for open64 to know if the current system does have open64() and similar functions
592 AC_CHECK_FUNCS_ONCE([open64])
594 AC_SEARCH_LIBS([dladdr], [dl], [HAVE_DLADDR=1], [HAVE_DLADDR=0])
595 AC_DEFINE(HAVE_DLADDR, [1], [Have dladdr?])
597 ###################################
598 # External libraries #
599 ###################################
605 #### Linux memfd_create(2) SHM support ####
607 AC_ARG_ENABLE([memfd],
608 AS_HELP_STRING([--disable-memfd], [Disable Linux memfd shared memory]))
610 AS_IF([test "x$enable_memfd" != "xno"],
611 AC_CHECK_DECL(SYS_memfd_create, [HAVE_MEMFD=1], [HAVE_MEMFD=0], [#include <sys/syscall.h>]),
614 AS_IF([test "x$enable_memfd" = "xyes" && test "x$HAVE_MEMFD" = "x0"],
615 [AC_MSG_ERROR([*** Your Linux kernel does not support memfd shared memory.
616 *** Use linux v3.17 or higher for such a feature.])])
618 AS_IF([test "x$HAVE_MEMFD" = "x1"],
619 AC_CHECK_FUNCS([memfd_create]))
622 AM_CONDITIONAL([HAVE_MEMFD], [test "x$HAVE_MEMFD" = x1])
623 AS_IF([test "x$HAVE_MEMFD" = "x1"], AC_DEFINE([HAVE_MEMFD], 1, [Have memfd shared memory.]))
625 #### X11 (optional) ####
628 AS_HELP_STRING([--disable-x11],[Disable optional X11 support]))
630 AS_IF([test "x$enable_x11" != "xno"],
631 [PKG_CHECK_MODULES(X11, [ x11-xcb xcb >= 1.6 ice sm xtst ], HAVE_X11=1, HAVE_X11=0)],
634 AS_IF([test "x$enable_x11" = "xyes" && test "x$HAVE_X11" = "x0"],
635 [AC_MSG_ERROR([*** X11 not found])])
638 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
639 AS_IF([test "x$HAVE_X11" = "x1"], AC_DEFINE([HAVE_X11], 1, [Have X11?]))
641 #### Capabilities (optional) ####
646 AS_HELP_STRING([--without-caps],[Omit support for dropping capabilities.]))
648 if test "x${with_caps}" != "xno"; then
649 AC_SEARCH_LIBS([cap_init], [cap], [], [])
651 # Only give an error on hosts that we know could support capabilities
652 AC_CHECK_HEADERS([sys/capability.h], [], [
653 if test "${host_has_caps}" = "1"; then
654 AC_MSG_ERROR([*** sys/capability.h not found. Use --without-caps to disable capabilities support.])
658 #### Valgrind (optional) ####
660 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
662 #### check unit tests ####
664 AC_ARG_ENABLE([tests],
665 AS_HELP_STRING([--disable-tests],[Disable unit tests]))
667 AS_IF([test "x$enable_tests" != "xno"],
668 [PKG_CHECK_MODULES(LIBCHECK, [ check >= 0.9.10 ], HAVE_LIBCHECK=1, HAVE_LIBCHECK=0)],
671 AS_IF([test "x$enable_tests" = "xyes" && test "x$HAVE_LIBCHECK" = "x0"],
672 [AC_MSG_ERROR([*** check library not found or too old])])
674 AM_CONDITIONAL([HAVE_TESTS], [test "x$HAVE_LIBCHECK" = x1])
678 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
682 AC_MSG_CHECKING([whether we need libatomic_ops])
683 if test "x$need_libatomic_ops" = "xyes"; then
685 AC_CHECK_HEADERS([atomic_ops.h],
686 [CFLAGS="$CFLAGS -DAO_REQUIRE_CAS"],
687 [AC_MSG_ERROR([*** libatomic-ops headers not found])])
689 # Win32 does not need the lib and breaks horribly if we try to include it
690 AS_IF([test "x$os_is_win32" != "x1"], [LIBS="$LIBS -latomic_ops"])
695 #### Libsamplerate support (optional) ####
697 AC_ARG_ENABLE([samplerate],
698 AS_HELP_STRING([--enable-samplerate],[Enable optional libsamplerate support (DEPRECATED)]))
700 AS_IF([test "x$enable_samplerate" = "xyes"],
701 [PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ], HAVE_LIBSAMPLERATE=1, HAVE_LIBSAMPLERATE=0)],
702 HAVE_LIBSAMPLERATE=0)
704 AS_IF([test "x$enable_samplerate" = "xyes" && test "x$HAVE_LIBSAMPLERATE" = "x0"],
705 [AC_MSG_ERROR([*** Libsamplerate not found])])
707 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
708 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?]))
710 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_MSG_WARN([Support for libsamplerate is DEPRECATED]))
712 #### Database support ####
714 AC_ARG_WITH([database],
715 AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
718 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xtdb"],
719 [PKG_CHECK_MODULES(TDB, [ tdb ], HAVE_TDB=1, HAVE_TDB=0)],
721 AS_IF([test "x$HAVE_TDB" = "x1"], with_database=tdb)
723 AS_IF([test "x$with_database" = "xtdb" && test "x$HAVE_TDB" = "x0"],
724 [AC_MSG_ERROR([*** tdb not found])])
727 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xgdbm"],
730 AC_CHECK_LIB(gdbm, gdbm_open, [], HAVE_GDBM=0)
731 AC_CHECK_HEADERS(gdbm.h, [], HAVE_GDBM=0)
734 AS_IF([test "x$HAVE_GDBM" = "x1"],
741 AS_IF([test "x$with_database" = "xgdbm" && test "x$HAVE_GDBM" = "x0"],
742 [AC_MSG_ERROR([*** gdbm not found])])
745 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xsimple"],
748 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], with_database=simple)
750 AS_IF([test "x$HAVE_TDB" != x1 -a "x$HAVE_GDBM" != x1 -a "x$HAVE_SIMPLEDB" != x1],
751 AC_MSG_ERROR([*** missing database backend]))
754 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
755 AS_IF([test "x$HAVE_TDB" = "x1"], AC_DEFINE([HAVE_TDB], 1, [Have tdb?]))
757 AC_SUBST(GDBM_CFLAGS)
759 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
760 AS_IF([test "x$HAVE_GDBM" = "x1"], AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?]))
762 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
763 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?]))
765 #### OSS support (optional) ####
767 AC_ARG_ENABLE([oss-output],
768 AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]))
770 AC_ARG_ENABLE([oss-wrapper],
771 AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]))
773 AC_ARG_WITH([pulsedsp-location],
774 AS_HELP_STRING([--with-pulsedsp-location],[Specify location where OSS wrapper will be installed]))
776 AS_IF([test "x$enable_oss_output" != "xno" -o "x$enable_oss_wrapper" != "xno"],
777 [AC_CHECK_HEADERS([sys/soundcard.h], HAVE_OSS=1, HAVE_OSS=0)],
780 AS_IF([test "x$enable_oss_output" = "xyes" -o "x$enable_oss_wrapper" = "xyes" && test "x$HAVE_OSS" = "x0"],
781 [AC_MSG_ERROR([*** OSS support not found])])
783 AS_IF([test "x$enable_oss_output" != "xno"],
784 [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_OUTPUT=1, HAVE_OSS_OUTPUT=0)],
787 AS_IF([test "x$enable_oss_wrapper" != "xno"],
788 [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_WRAPPER=1, HAVE_OSS_WRAPPER=0)],
791 AS_IF([test "x$with_pulsedsp_location" != "x"],
792 [PULSEDSP_LOCATION="$with_pulsedsp_location"],
793 [PULSEDSP_LOCATION="\$(pkglibdir)"])
795 AC_SUBST(HAVE_OSS_OUTPUT)
796 AC_SUBST(PULSEDSP_LOCATION)
797 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS_OUTPUT" = "x1"])
798 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS_WRAPPER" = "x1"])
799 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?]))
800 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?]))
802 # Some platforms like SunOS (Illumos) may ship without SOUND_PCM_* functionality
803 if test "x$HAVE_OSS" = "x1"; then
804 AC_CHECK_DECLS([SOUND_PCM_READ_RATE], [], [], [[#include <sys/soundcard.h>]])
805 AC_CHECK_DECLS([SOUND_PCM_READ_CHANNELS], [], [], [[#include <sys/soundcard.h>]])
806 AC_CHECK_DECLS([SOUND_PCM_READ_BITS], [], [], [[#include <sys/soundcard.h>]])
809 #### CoreAudio support (optional) ####
811 AC_ARG_ENABLE([coreaudio-output],
812 AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]))
814 AS_IF([test "x$enable_coreaudio_output" != "xno"],
815 [AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1, HAVE_COREAUDIO=0)],
818 AS_IF([test "x$enable_coreaudio_output" = "xyes" && test "x$HAVE_COREAUDIO" = "x0"],
819 [AC_MSG_ERROR([*** CoreAudio output support not found])])
821 AC_SUBST(HAVE_COREAUDIO)
822 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = "x1" && test "x$enable_coreaudio_output" != "xno"])
824 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], AC_DEFINE([HAVE_COREAUDIO], 1, [Have CoreAudio?]))
826 #### ALSA support (optional) ####
828 AC_ARG_ENABLE([alsa],
829 AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]))
831 AS_IF([test "x$enable_alsa" != "xno"],
832 [PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], HAVE_ALSA=1, HAVE_ALSA=0)],
835 AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
836 [AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])])
838 AS_IF([test "x$HAVE_ALSA" = "x1"],
840 save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $ASOUNDLIB_CFLAGS"
841 AC_CHECK_HEADERS([alsa/use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
842 CPPFLAGS="$save_CPPFLAGS"
847 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
848 AS_IF([test "x$HAVE_ALSA" = "x1"], AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]))
849 AS_IF([test "x$HAVE_ALSA_UCM" = "x1"], AC_DEFINE([HAVE_ALSA_UCM], 1, [Have ALSA UCM?]))
851 #### EsounD support (optional) ####
853 AC_ARG_ENABLE([esound],
854 AS_HELP_STRING([--disable-esound],[Disable optional EsounD support]))
855 AM_CONDITIONAL([HAVE_ESOUND], [test "x$enable_esound" != "xno"])
856 AS_IF([test "x$enable_esound" != "xno"], [HAVE_ESOUND=1])
858 #### Solaris audio support (optional) ####
860 AC_ARG_ENABLE([solaris],
861 AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]))
863 AS_IF([test "x$enable_solaris" != "xno"],
864 [AC_CHECK_HEADERS([sys/audio.h], HAVE_SOLARIS=1, HAVE_SOLARIS=0)],
867 AS_IF([test "x$enable_solaris" = "xyes" && test "x$HAVE_SOLARIS" = "x0"],
868 [AC_MSG_ERROR([*** Solaris audio support not found])])
870 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
871 AS_IF([test "x$HAVE_SOLARIS" = "x1"], AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?]))
873 #### WaveOut audio support (optional) ####
875 AC_ARG_ENABLE([waveout],
876 AS_HELP_STRING([--disable-waveout],[Disable optional WaveOut audio support]))
878 AS_IF([test "x$enable_waveout" != "xno"],
879 [AC_CHECK_HEADERS([mmsystem.h], HAVE_WAVEOUT=1, HAVE_WAVEOUT=0, [#include <windows.h>])],
882 AS_IF([test "x$enable_waveout" = "xyes" && test "x$HAVE_WAVEOUT" = "x0"],
883 [AC_MSG_ERROR([*** WaveOut audio support not found])])
885 AC_SUBST(HAVE_WAVEOUT)
886 AM_CONDITIONAL([HAVE_WAVEOUT], [test "x$HAVE_WAVEOUT" = x1])
887 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], AC_DEFINE([HAVE_WAVEOUT], 1, [Have WaveOut audio?]))
889 #### GLib 2 support (optional) ####
891 AC_ARG_ENABLE([glib2],
892 AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]))
894 AS_IF([test "x$enable_glib2" != "xno"],
895 [PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ], HAVE_GLIB20=1, HAVE_GLIB20=0)],
898 AS_IF([test "x$enable_glib2" = "xyes" && test "x$HAVE_GLIB20" = "x0"],
899 [AC_MSG_ERROR([*** GLib 2 support not found])])
901 AC_SUBST(HAVE_GLIB20)
902 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
903 AS_IF([test "x$HAVE_GLIB20" = "x1"], AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?]))
905 #### GTK3 support (optional) ####
907 AC_ARG_ENABLE([gtk3],
908 AS_HELP_STRING([--disable-gtk3],[Disable optional Gtk+ 3 support]))
910 AS_IF([test "x$enable_gtk3" != "xno"],
911 [PKG_CHECK_MODULES(GTK30, [ gtk+-3.0 ], HAVE_GTK30=1, HAVE_GTK30=0)],
914 AS_IF([test "x$enable_gtk3" = "xyes" && test "x$HAVE_GTK30" = "x0"],
915 [AC_MSG_ERROR([*** Gtk+ 3 support not found])])
917 AM_CONDITIONAL([HAVE_GTK30], [test "x$HAVE_GTK30" = x1])
918 AS_IF([test "x$HAVE_GTK30" = "x1"], AC_DEFINE([HAVE_GTK], 1, [Have GTK?]))
920 #### GSettings and GConf support (optional) ####
922 AC_ARG_ENABLE([gsettings],
923 AS_HELP_STRING([--disable-gsettings],[Disable optional GSettings support]))
925 AC_ARG_ENABLE([gconf],
926 AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]))
928 AS_IF([test "x$enable_gsettings" != "xno"],
929 [PKG_CHECK_MODULES(GSETTINGS, [ gio-2.0 >= 2.26.0 ], [HAVE_GSETTINGS=1], [HAVE_GSETTINGS=0])],
932 AS_IF([test "x$enable_gsettings" = "xyes" && test "x$HAVE_GSETTINGS" = "x0"],
933 [AC_MSG_ERROR([*** GSettings support not found])])
935 AS_IF([test "x$enable_gconf" != "xno"],
936 [PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ], HAVE_GCONF=1, HAVE_GCONF=0)],
939 AS_IF([test "x$enable_gconf" = "xyes" && test "x$HAVE_GCONF" = "x0"],
940 [AC_MSG_ERROR([*** GConf support not found])])
942 # Enable only one of GSettings and GConf, unless both were explicitly
943 # requested. If neither was explicitly requested and both are available, prefer
944 # GSettings. This is done, because if module-gsettings and module-gconf are
945 # both loaded, they can cause conflicting or at least confusing configuration.
946 # Distributions may want to enable both modules when building PulseAudio, if
947 # they ensure that both modules are never installed at the same time.
948 AS_IF([test "x$HAVE_GSETTINGS" = "x1" && test "x$enable_gconf" != "xyes"],
950 AS_IF([test "x$HAVE_GCONF" = "x1" && test "x$enable_gsettings" != "xyes"],
953 AM_CONDITIONAL([HAVE_GSETTINGS], [test "x$HAVE_GSETTINGS" = "x1"])
954 AC_SUBST([HAVE_GSETTINGS])
955 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = "x1"])
956 AC_SUBST([HAVE_GCONF])
958 if test "x$HAVE_GSETTINGS" = "x1" ; then
962 #### Avahi support (optional) ####
964 AC_ARG_ENABLE([avahi],
965 AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]))
967 AS_IF([test "x$enable_avahi" != "xno"],
968 [PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ], HAVE_AVAHI=1, HAVE_AVAHI=0)],
971 AS_IF([test "x$enable_avahi" = "xyes" && test "x$HAVE_AVAHI" = "x0"],
972 [AC_MSG_ERROR([*** Avahi support not found])])
975 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
977 #### JACK (optional) ####
979 AC_ARG_ENABLE([jack],
980 AS_HELP_STRING([--disable-jack],[Disable optional JACK support]))
982 AS_IF([test "x$enable_jack" != "xno"],
983 [PKG_CHECK_MODULES(JACK, [ jack >= 0.117.0 ], HAVE_JACK=1, HAVE_JACK=0)],
986 AS_IF([test "x$enable_jack" = "xyes" && test "x$HAVE_JACK" = "x0"],
987 [AC_MSG_ERROR([*** JACK support not found])])
989 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
991 #### Async DNS support (optional) ####
993 AC_ARG_ENABLE([asyncns],
994 AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]))
996 AS_IF([test "x$enable_asyncns" != "xno"],
997 [PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ], HAVE_LIBASYNCNS=1, HAVE_LIBASYNCNS=0)],
1000 AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
1001 [AC_MSG_ERROR([*** Async DNS support not found])])
1003 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1004 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
1006 #### Running from build tree (optional) ####
1008 AC_ARG_ENABLE([running-from-build-tree],
1009 AS_HELP_STRING([--disable-running-from-build-tree],[Disable running from build tree]))
1011 AS_IF([test "x$enable_running_from_build_tree" != "xno"],
1012 AC_DEFINE([HAVE_RUNNING_FROM_BUILD_TREE], 1, [Have running from build tree]))
1014 AC_SUBST(HAVE_RUNNING_FROM_BUILD_TREE)
1016 #### TCP wrappers (optional) ####
1018 AC_ARG_ENABLE([tcpwrap],
1019 AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]))
1021 AS_IF([test "x$enable_tcpwrap" != "xno"],
1024 AS_IF([test "x$LIBWRAP_LIBS" != "x"], HAVE_TCPWRAP=1, HAVE_TCPWRAP=0)
1028 AS_IF([test "x$enable_tcpwrap" = "xyes" && test "x$HAVE_TCPWRAP" = "x0"],
1029 [AC_MSG_ERROR([*** TCP wrappers support not found])])
1031 AC_SUBST(LIBWRAP_LIBS)
1033 #### LIRC support (optional) ####
1035 AC_ARG_ENABLE([lirc],
1036 AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]))
1041 AS_IF([test "x$enable_lirc" != "xno"],
1044 AC_CHECK_HEADER(lirc/lirc_client.h, [], [HAVE_LIRC=0])
1045 AC_CHECK_LIB(lirc_client, lirc_init, [LIRC_LIBS=-llirc_client], [HAVE_LIRC=0])
1049 AS_IF([test "x$enable_lirc" = "xyes" && test "x$HAVE_LIRC" = "x0"],
1050 [AC_MSG_ERROR([*** LIRC support not found])])
1052 AC_SUBST(LIRC_CFLAGS)
1054 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1056 #### D-Bus support (optional) ####
1058 AC_ARG_ENABLE([dbus],
1059 AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]))
1061 AS_IF([test "x$enable_dbus" != "xno"],
1062 [PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.4.12 ], HAVE_DBUS=1, HAVE_DBUS=0)],
1065 AS_IF([test "x$enable_dbus" = "xyes" && test "x$HAVE_DBUS" = "x0"],
1066 [AC_MSG_ERROR([*** D-Bus not available or too old version])])
1069 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1070 AS_IF([test "x$HAVE_DBUS" = "x1"], AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.]))
1072 PA_MACHINE_ID="${sysconfdir}/machine-id"
1073 AX_DEFINE_DIR(PA_MACHINE_ID, PA_MACHINE_ID, [D-Bus machine-id file])
1074 PA_MACHINE_ID_FALLBACK="${localstatedir}/lib/dbus/machine-id"
1075 AX_DEFINE_DIR(PA_MACHINE_ID_FALLBACK, PA_MACHINE_ID_FALLBACK,
1076 [Fallback machine-id file])
1078 #### BlueZ support (optional, dependent on D-Bus and SBC) ####
1080 AC_ARG_ENABLE([bluez5],
1081 AS_HELP_STRING([--disable-bluez5],[Disable optional BlueZ 5 support]))
1084 AS_IF([test "x$enable_bluez5" != "xno"],
1085 [PKG_CHECK_MODULES(SBC, [ sbc >= 1.0 ], HAVE_SBC=1, HAVE_SBC=0)],
1089 AS_IF([test "x$enable_bluez5" != "xno" && test "x$HAVE_DBUS" = "x1" && test "x$HAVE_SBC" = "x1"], HAVE_BLUEZ_5=1,
1091 AS_IF([test "x$enable_bluez5" = "xyes" && test "x$HAVE_BLUEZ_5" != "x1"],
1092 [AC_MSG_ERROR([*** BLUEZ 5 support not found (requires sbc and D-Bus)])])
1093 AC_SUBST(HAVE_BLUEZ_5)
1094 AM_CONDITIONAL([HAVE_BLUEZ_5], [test "x$HAVE_BLUEZ_5" = x1])
1096 AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], HAVE_BLUEZ=1, HAVE_BLUEZ=0)
1097 AC_SUBST(HAVE_BLUEZ)
1098 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1100 ## Bluetooth Headset profiles backend ##
1102 AC_ARG_ENABLE([bluez5-ofono-headset],
1103 AS_HELP_STRING([--disable-bluez5-ofono-headset],[Disable optional ofono headset backend support (Bluez 5)]))
1104 AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_ofono_headset" != "xno"], HAVE_BLUEZ_5_OFONO_HEADSET=1,
1105 HAVE_BLUEZ_5_OFONO_HEADSET=0)
1106 AC_SUBST(HAVE_BLUEZ_5_OFONO_HEADSET)
1107 AM_CONDITIONAL([HAVE_BLUEZ_5_OFONO_HEADSET], [test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = x1])
1108 AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_OFONO_HEADSET], 1, [Bluez 5 ofono headset backend enabled]))
1110 AC_ARG_ENABLE([bluez5-native-headset],
1111 AS_HELP_STRING([--disable-bluez5-native-headset],[Disable optional native headset backend support (Bluez 5)]))
1112 AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_native_headset" != "xno"],
1113 [PKG_CHECK_MODULES(BLUEZ, [ bluez >= 4.101 ], HAVE_BLUEZ_5_NATIVE_HEADSET=1, HAVE_BLUEZ_5_NATIVE_HEADSET=0)],
1114 HAVE_BLUEZ_5_NATIVE_HEADSET=0)
1115 AS_IF([test "x$enable_bluez5_native_headset" = "xyes" && test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x0"],
1116 [AC_MSG_ERROR([*** BlueZ 5 native headset backend support not available (requires the libbluetooth headers)])])
1117 AC_SUBST(HAVE_BLUEZ_5_NATIVE_HEADSET)
1118 AM_CONDITIONAL([HAVE_BLUEZ_5_NATIVE_HEADSET], [test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = x1])
1119 AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_NATIVE_HEADSET], 1, [Bluez 5 native headset backend enabled]))
1121 #### UDEV support (optional) ####
1123 AC_ARG_ENABLE([udev],
1124 AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]))
1126 AS_IF([test "x$enable_udev" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
1127 [PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], HAVE_UDEV=1, HAVE_UDEV=0)],
1130 AS_IF([test "x$enable_udev" = "xyes" && test "x$HAVE_UDEV" = "x0"],
1131 [AC_MSG_ERROR([*** UDEV support not found])])
1134 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1135 AS_IF([test "x$HAVE_UDEV" = "x1"], AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]))
1137 #### HAL compat support (optional, dependent on UDEV) ####
1139 AC_ARG_ENABLE([hal-compat],
1140 AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]))
1142 AS_IF([test "x$enable_hal_compat" != "xno"],
1143 [AS_IF([test "x$HAVE_UDEV" = "x1"], HAVE_HAL_COMPAT=1, HAVE_HAL_COMPAT=0)],
1146 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1147 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.]))
1149 #### IPv6 connection support (optional) ####
1151 AC_ARG_ENABLE([ipv6],
1152 AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]))
1154 AS_IF([test "x$enable_ipv6" != "xno"], [HAVE_IPV6=1], [HAVE_IPV6=0])
1156 AS_IF([test "x$HAVE_IPV6" = "x1"], AC_DEFINE([HAVE_IPV6], 1, [Define this to enable IPv6 connection support]))
1158 #### OpenSSL support (optional) ####
1160 AC_ARG_ENABLE([openssl],
1161 AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]))
1163 AS_IF([test "x$enable_openssl" != "xno"],
1164 [PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ], HAVE_OPENSSL=1, HAVE_OPENSSL=0)],
1167 AS_IF([test "x$enable_openssl" = "xyes" && test "x$HAVE_OPENSSL" = "x0"],
1168 [AC_MSG_ERROR([*** OpenSSL support not found])])
1170 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1171 AS_IF([test "x$HAVE_OPENSSL" = "x1"], AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL]))
1173 #### FFTW (optional) ####
1176 AS_HELP_STRING([--without-fftw],[Omit FFTW-using modules (equalizer)]))
1178 AS_IF([test "x$with_fftw" != "xno"],
1179 [PKG_CHECK_MODULES(FFTW, [ fftw3f ], HAVE_FFTW=1, HAVE_FFTW=0)],
1182 AS_IF([test "x$with_fftw" = "xyes" && test "x$HAVE_FFTW" = "x0"],
1183 [AC_MSG_ERROR([*** FFTW support not found])])
1185 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1187 #### speex (optional) ####
1189 AC_ARG_WITH([speex],
1190 AS_HELP_STRING([--without-speex],[Omit speex (resampling, AEC)]))
1192 AS_IF([test "x$with_speex" != "xno"],
1193 [PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ], HAVE_SPEEX=1, HAVE_SPEEX=0)],
1196 AS_IF([test "x$with_speex" = "xyes" && test "x$HAVE_SPEEX" = "x0"],
1197 [AC_MSG_ERROR([*** speex support not found])])
1199 AM_CONDITIONAL([HAVE_SPEEX], [test "x$HAVE_SPEEX" = "x1"])
1200 AS_IF([test "x$HAVE_SPEEX" = "x1"], AC_DEFINE([HAVE_SPEEX], 1, [Have speex]))
1202 #### soxr (optional) ####
1205 AS_HELP_STRING([--without-soxr],[Omit soxr (resampling)]))
1207 AS_IF([test "x$with_soxr" != "xno"],
1208 [PKG_CHECK_MODULES(LIBSOXR, [ soxr >= 0.1.1 ], HAVE_SOXR=1, HAVE_SOXR=0)],
1211 AS_IF([test "x$with_soxr" = "xyes" && test "x$HAVE_SOXR" = "x0"],
1212 [AC_MSG_ERROR([*** soxr support not found])])
1214 AM_CONDITIONAL([HAVE_SOXR], [test "x$HAVE_SOXR" = "x1"])
1215 AS_IF([test "x$HAVE_SOXR" = "x1"], AC_DEFINE([HAVE_SOXR], 1, [Have soxr]))
1218 #### gcov support (optional) #####
1220 AC_ARG_ENABLE([gcov],
1221 AS_HELP_STRING([--enable-gcov],[Enable optional gcov coverage analysis]))
1226 AS_IF([test "x$enable_gcov" = "xyes"],
1229 GCOV_CFLAGS="$GCOV_CFLAGS -fprofile-arcs -ftest-coverage"
1230 GCOV_LIBS="$GCOV_LIBS -fprofile-arcs"
1234 AC_SUBST(GCOV_CFLAGS)
1236 AM_CONDITIONAL([HAVE_GCOV], [test "x$HAVE_GCOV" = x1])
1238 #### ORC (optional) ####
1242 #### systemd support (optional) ####
1244 AC_ARG_ENABLE([systemd-daemon],
1245 AS_HELP_STRING([--disable-systemd-daemon],[Disable optional systemd daemon (socket activation) support]))
1247 AC_ARG_ENABLE([systemd-login],
1248 AS_HELP_STRING([--disable-systemd-login],[Disable optional systemd login support]))
1250 AC_ARG_ENABLE([systemd-journal],
1251 AS_HELP_STRING([--disable-systemd-journal],[Disable optional systemd journal support]))
1253 # Newer systemd's combine their subcomponent libraries into one
1254 # If it exists, we should use it for the further checks
1256 AS_IF([test "x$enable_systemd_daemon" != "xno" || test "x$enable_systemd_login" != "xno" || test "x$enable_systemd_journal" != "xno"],
1257 [PKG_CHECK_MODULES(SYSTEMD, [ libsystemd ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)],
1260 AS_IF([test "x$HAVE_SYSTEMD" = "x1"],
1262 HAVE_SYSTEMD_DAEMON=1
1263 HAVE_SYSTEMD_LOGIN=1
1264 HAVE_SYSTEMD_JOURNAL=1
1267 AC_ARG_WITH([systemduserunitdir],
1268 AS_HELP_STRING([--with-systemduserunitdir=DIR], [Directory for systemd user service files]),
1269 [], [with_systemduserunitdir=$($PKG_CONFIG --variable=systemduserunitdir systemd)])
1270 if test "x$with_systemduserunitdir" != xno; then
1271 AC_SUBST([systemduserunitdir], [$with_systemduserunitdir])
1274 #### systemd daemon support (optional) ####
1276 AS_IF([test "x$enable_systemd_daemon" != "xno"],
1277 [AS_IF([test "x$HAVE_SYSTEMD_DAEMON" != "x1"], [PKG_CHECK_MODULES(SYSTEMDDAEMON, [ libsystemd-daemon ], HAVE_SYSTEMD_DAEMON=1, HAVE_SYSTEMD_DAEMON=0)])],
1278 HAVE_SYSTEMD_DAEMON=0)
1280 AS_IF([test "x$enable_systemd_daemon" = "xyes" && test "x$HAVE_SYSTEMD_DAEMON" = "x0"],
1281 [AC_MSG_ERROR([*** Needed systemd daemon support not found])])
1283 AC_SUBST(HAVE_SYSTEMD_DAEMON)
1284 AM_CONDITIONAL([HAVE_SYSTEMD_DAEMON], [test "x$HAVE_SYSTEMD_DAEMON" = x1])
1285 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], AC_DEFINE([HAVE_SYSTEMD_DAEMON], 1, [Have SYSTEMDDAEMON?]))
1287 #### systemd login support (optional) ####
1289 AS_IF([test "x$enable_systemd_login" != "xno"],
1290 [AS_IF([test "x$HAVE_SYSTEMD_LOGIN" != "x1"], [PKG_CHECK_MODULES(SYSTEMDLOGIN, [ libsystemd-login ], HAVE_SYSTEMD_LOGIN=1, HAVE_SYSTEMD_LOGIN=0)])],
1291 HAVE_SYSTEMD_LOGIN=0)
1293 AS_IF([test "x$enable_systemd_login" = "xyes" && test "x$HAVE_SYSTEMD_LOGIN" = "x0"],
1294 [AC_MSG_ERROR([*** Needed systemd login support not found])])
1296 AC_SUBST(HAVE_SYSTEMD_LOGIN)
1297 AM_CONDITIONAL([HAVE_SYSTEMD_LOGIN], [test "x$HAVE_SYSTEMD_LOGIN" = x1])
1298 AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], AC_DEFINE([HAVE_SYSTEMD_LOGIN], 1, [Have SYSTEMDLOGIN?]))
1300 #### systemd journal support (optional) ####
1302 AS_IF([test "x$enable_systemd_journal" != "xno"],
1303 [AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" != "x1"], [PKG_CHECK_MODULES(SYSTEMDJOURNAL, [ libsystemd-journal ], HAVE_SYSTEMD_JOURNAL=1, HAVE_SYSTEMD_JOURNAL=0)])],
1304 HAVE_SYSTEMD_JOURNAL=0)
1306 AS_IF([test "x$enable_systemd_journal" = "xyes" && test "x$HAVE_SYSTEMD_JOURNAL" = "x0"],
1307 [AC_MSG_ERROR([*** Needed systemd journal support not found])])
1309 AC_SUBST(HAVE_SYSTEMD_JOURNAL)
1310 AM_CONDITIONAL([HAVE_SYSTEMD_JOURNAL], [test "x$HAVE_SYSTEMD_JOURNAL" = x1])
1311 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], AC_DEFINE([HAVE_SYSTEMD_JOURNAL], 1, [Have SYSTEMDJOURNAL?]))
1313 #### GStreamer-based RTP support (optional) ####
1315 AC_ARG_ENABLE([gstreamer],
1316 AS_HELP_STRING([--disable-gstreamer],[Disable optional GStreamer-based RTP support]))
1318 AS_IF([test "x$enable_gstreamer" != "xno"],
1319 [PKG_CHECK_MODULES(GSTREAMER, [ gstreamer-1.0 gstreamer-app-1.0 gstreamer-rtp-1.0 gio-2.0 ],
1320 HAVE_GSTREAMER=1, HAVE_GSTREAMER=0)],
1323 AS_IF([test "x$enable_gstreamer" = "xyes" && test "x$HAVE_GSTREAMER" = "x0"],
1324 [AC_MSG_ERROR([*** GStreamer 1.0 support not found])])
1326 AM_CONDITIONAL([HAVE_GSTREAMER], [test "x$HAVE_GSTREAMER" = x1])
1327 AS_IF([test "x$HAVE_GSTREAMER" = "x1"], AC_DEFINE([HAVE_GSTREAMER], 1, [Have GStreamer?]))
1329 #### Build and Install man pages ####
1331 AC_ARG_ENABLE([manpages],
1332 AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]))
1334 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" != "xno"])
1336 #### PulseAudio system group & user #####
1338 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1339 if test -z "$with_system_user" ; then
1340 PA_SYSTEM_USER=pulse
1342 PA_SYSTEM_USER=$with_system_user
1344 AC_SUBST(PA_SYSTEM_USER)
1345 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1347 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1348 if test -z "$with_system_group" ; then
1349 PA_SYSTEM_GROUP=pulse
1351 PA_SYSTEM_GROUP=$with_system_group
1353 AC_SUBST(PA_SYSTEM_GROUP)
1354 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1356 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)]))
1357 if test -z "$with_access_group" ; then
1358 PA_ACCESS_GROUP=pulse-access
1360 PA_ACCESS_GROUP=$with_access_group
1362 AC_SUBST(PA_ACCESS_GROUP)
1363 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1365 AC_ARG_ENABLE([per-user-esound-socket],
1366 AS_HELP_STRING([--disable-per-user-esound-socket],[Use global esound socket directory /tmp/.esd/socket.]))
1368 if test "x$enable_per_user_esound_socket" != "xno"; then
1369 USE_PER_USER_ESOUND_SOCKET=1
1370 AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1372 USE_PER_USER_ESOUND_SOCKET=0
1375 #### PulseAudio system runtime dir ####
1377 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1378 AX_DEFINE_DIR(PA_SYSTEM_RUNTIME_PATH, PA_SYSTEM_RUNTIME_PATH, [System runtime dir])
1379 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1380 AX_DEFINE_DIR(PA_SYSTEM_CONFIG_PATH, PA_SYSTEM_CONFIG_PATH, [System config dir])
1381 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1382 AX_DEFINE_DIR(PA_SYSTEM_STATE_PATH, PA_SYSTEM_STATE_PATH, [System state dir])
1384 PA_BINARY=${bindir}/pulseaudio${EXEEXT}
1385 AX_DEFINE_DIR(PA_BINARY, PA_BINARY, [Location of pulseaudio binary])
1387 PACTL_BINARY=${bindir}/pactl${EXEEXT}
1388 AX_DEFINE_DIR(PACTL_BINARY, PACTL_BINARY, [Location of pactl binary])
1390 AC_SUBST(PA_SOEXT, [.so])
1391 AC_DEFINE(PA_SOEXT, [".so"], [Shared object extension])
1393 AC_SUBST(pulseconfdir, ["${sysconfdir}/pulse"])
1394 AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR, pulseconfdir, [Location of configuration files])
1396 #### Mac OSX specific stuff #####
1398 AC_ARG_ENABLE(mac-universal,
1399 AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries]),
1400 enable_mac_universal=$enableval, enable_mac_universal="no")
1402 AC_ARG_WITH(mac-version-min,
1403 AS_HELP_STRING([--with-mac-version-min=<version>], [Defines the earliest version of MacOS X that the executables will run on.]),
1404 mac_version_min=$withval, mac_version_min="10.5")
1406 AC_ARG_WITH(mac-sysroot,
1407 AS_HELP_STRING([--with-mac-sysroot=<path>], [SDK basedir to use as the logical root directory for headers and libraries.]),
1408 mac_sysroot=$withval)
1410 if test "x$os_is_darwin" = "x1" ; then
1411 LDFLAGS="$LDFLAGS -mmacosx-version-min=$mac_version_min"
1412 CFLAGS="$CFLAGS -mmacosx-version-min=$mac_version_min"
1414 if test "x$mac_sysroot" != "x" ; then
1415 LDFLAGS="$LDFLAGS -isysroot $mac_sysroot"
1416 CFLAGS="$CFLAGS -isysroot $mac_sysroot"
1419 if test "x$enable_mac_universal" = "xyes" ; then
1420 mac_arches="-arch i386 -arch x86_64"
1421 LDFLAGS="$LDFLAGS $mac_arches"
1422 CFLAGS="$CFLAGS $mac_arches"
1426 AC_ARG_ENABLE([webrtc-aec],
1427 AS_HELP_STRING([--enable-webrtc-aec], [Enable the optional WebRTC-based echo canceller]))
1429 AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "$HAVE_CXX11" = "0"],
1430 [AC_MSG_ERROR([*** webrtc-audio-processing needs C++11 support])])
1432 AS_IF([test "x$enable_webrtc_aec" != "xno"],
1433 [PKG_CHECK_MODULES(WEBRTC, [ webrtc-audio-processing >= 0.2 ], [HAVE_WEBRTC=1], [HAVE_WEBRTC=0])],
1436 AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "x$HAVE_WEBRTC" = "x0"],
1437 [AC_MSG_ERROR([*** webrtc-audio-processing library not found])])
1439 AM_CONDITIONAL([HAVE_WEBRTC], [test "x$HAVE_WEBRTC" = "x1"])
1441 AC_ARG_ENABLE([adrian-aec],
1442 AS_HELP_STRING([--enable-adrian-aec], [Enable Adrian's optional echo canceller]))
1443 AS_IF([test "x$enable_adrian_aec" != "xno"],
1445 AM_CONDITIONAL([HAVE_ADRIAN_EC], [test "x$HAVE_ADRIAN_EC" = "x1"])
1448 #### Thread support ####
1451 AS_IF([test "$ac_cv_tls" = "__thread"],
1452 AC_DEFINE([SUPPORT_TLS___THREAD], 1, [Define this if the compiler supports __thread for Thread-Local Storage]))
1454 # Win32 build breaks with win32 pthread installed
1455 AS_IF([test "x$os_is_win32" != "x1"],
1458 AS_IF([test "x$ax_pthread_ok" = "xyes"],
1459 AC_DEFINE([_POSIX_PTHREAD_SEMANTICS], 1, [Needed on Solaris]))
1463 ###################################
1465 ###################################
1467 AC_DEFINE_UNQUOTED(PA_CFLAGS, "$CFLAGS", [The CFLAGS used during compilation])
1469 # Check whether to build tests by default (as compile-test) or not
1470 AC_ARG_ENABLE([default-build-tests],
1471 AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
1472 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
1474 AC_ARG_ENABLE([legacy-database-entry-format],
1475 AS_HELP_STRING([--disable-legacy-database-entry-format], [Try to load legacy (< 1.0) database files (card, device and volume restore).]))
1476 if test "x$enable_legacy_database_entry_format" != "xno" ; then
1477 AC_DEFINE(ENABLE_LEGACY_DATABASE_ENTRY_FORMAT, [1], [Legacy database entry format])
1480 AC_ARG_ENABLE([static-bins],
1481 AS_HELP_STRING([--enable-static-bins],[Statically link executables.]))
1482 AM_CONDITIONAL([STATIC_BINS], [test "x$enable_static_bins" = "xyes"])
1486 AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1487 [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1488 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1489 if test "x$PREOPEN_MODS" != "xall" ; then
1491 for mod in $PREOPEN_MODS; do
1492 tmpLIBS="$tmpLIBS module-$mod.la"
1494 PREOPEN_MODS="$tmpLIBS"
1495 AC_SUBST(PREOPEN_MODS)
1500 AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]),
1501 [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"])
1503 AC_SUBST(modlibexecdir)
1504 AX_DEFINE_DIR(PA_DLSEARCHPATH, modlibexecdir, [Modules dir])
1508 AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1509 [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1511 AC_SUBST(udevrulesdir)
1513 AC_ARG_WITH([bash-completion-dir],
1514 AS_HELP_STRING([--with-bash-completion-dir=DIR], [Directory for bash completion files]),
1515 [bashcompletiondir=$withval], [bashcompletiondir=$($PKG_CONFIG --variable=completionsdir bash-completion)])
1516 if test "x$bashcompletionsdir" = "x"; then
1517 bashcompletiondir="${datadir}/bash-completion/completions"
1520 AC_SUBST(bashcompletiondir)
1523 [zsh-completion-dir],
1524 AS_HELP_STRING([--with-zsh-completion-dir], [Zsh completions directory (defaults to ${datadir}/zsh/site-functions)]),
1525 [zshcompletiondir=$withval], [zshcompletiondir="${datadir}/zsh/site-functions"])
1527 AC_SUBST(zshcompletiondir)
1529 AC_ARG_ENABLE([force-preopen],
1530 AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]))
1532 if test "x$enable_force_preopen" = "xyes"; then
1538 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1546 libpulse-mainloop-glib.pc
1548 doxygen/doxygen.conf
1551 man/pulseaudio.1.xml
1552 man/pax11publish.1.xml
1556 man/pasuspender.1.xml
1558 man/pulse-daemon.conf.5.xml
1559 man/pulse-client.conf.5.xml
1560 man/default.pa.5.xml
1561 man/pulse-cli-syntax.5.xml
1562 man/start-pulseaudio-x11.1.xml
1565 AS_IF([test "x$HAVE_ESOUND" = "x1"],
1567 AC_CONFIG_FILES([man/esdcompat.1.xml])
1568 AC_CONFIG_FILES([src/esdcompat:src/daemon/esdcompat.in], [chmod +x src/esdcompat])
1571 AC_CONFIG_FILES([src/start-pulseaudio-x11:src/daemon/start-pulseaudio-x11.in], [chmod +x src/start-pulseaudio-x11])
1572 AC_CONFIG_FILES([src/client.conf:src/pulse/client.conf.in])
1573 AC_CONFIG_FILES([src/daemon.conf:src/daemon/daemon.conf.in],
1574 [m4 src/daemon.conf > src/daemon.conf.gen && mv src/daemon.conf.gen src/daemon.conf])
1575 AC_CONFIG_FILES([src/default.pa:src/daemon/default.pa.in],
1576 [m4 src/default.pa > src/default.pa.gen && mv src/default.pa.gen src/default.pa])
1577 AC_CONFIG_FILES([src/system.pa:src/daemon/system.pa.in],
1578 [m4 src/system.pa > src/system.pa.gen && mv src/system.pa.gen src/system.pa])
1579 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"],
1581 AC_CONFIG_FILES([src/pulseaudio.service:src/daemon/systemd/user/pulseaudio.service.in])
1584 # CMake related ProjectConfig files
1586 AX_DEFINE_DIR(PA_LIBDIR, PA_LIBDIR, [PulseAudio library dir])
1587 PA_INCDIR="$includedir"
1588 AX_DEFINE_DIR(PA_INCDIR, PA_INCDIR, [PulseAudio include dir])
1590 AC_CONFIG_FILES([PulseAudioConfig.cmake:PulseAudioConfig.cmake.in],
1591 [m4 PulseAudioConfig.cmake > PulseAudioConfig.cmake.gen && mv PulseAudioConfig.cmake.gen PulseAudioConfig.cmake])
1592 AC_CONFIG_FILES([PulseAudioConfigVersion.cmake])
1596 # ==========================================================================
1598 AS_IF([test "x$HAVE_MEMFD" = "x1"], ENABLE_MEMFD=yes, ENABLE_MEMFD=no)
1599 AS_IF([test "x$HAVE_X11" = "x1"], ENABLE_X11=yes, ENABLE_X11=no)
1600 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], ENABLE_OSS_OUTPUT=yes, ENABLE_OSS_OUTPUT=no)
1601 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no)
1602 AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no)
1603 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no)
1604 AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no)
1605 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no)
1606 AS_IF([test "x$HAVE_GLIB20" = "x1"], ENABLE_GLIB20=yes, ENABLE_GLIB20=no)
1607 AS_IF([test "x$HAVE_GTK30" = "x1"], ENABLE_GTK30=yes, ENABLE_GTK30=no)
1608 AS_IF([test "x$HAVE_GCONF" = "x1"], ENABLE_GCONF=yes, ENABLE_GCONF=no)
1609 AS_IF([test "x$HAVE_GSETTINGS" = "x1"], ENABLE_GSETTINGS=yes, ENABLE_GSETTINGS=no)
1610 AS_IF([test "x$HAVE_AVAHI" = "x1"], ENABLE_AVAHI=yes, ENABLE_AVAHI=no)
1611 AS_IF([test "x$HAVE_JACK" = "x1"], ENABLE_JACK=yes, ENABLE_JACK=no)
1612 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], ENABLE_LIBASYNCNS=yes, ENABLE_LIBASYNCNS=no)
1613 AS_IF([test "x$HAVE_LIRC" = "x1"], ENABLE_LIRC=yes, ENABLE_LIRC=no)
1614 AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
1615 AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
1616 AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], ENABLE_SYSTEMD_DAEMON=yes, ENABLE_SYSTEMD_DAEMON=no)
1617 AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], ENABLE_SYSTEMD_LOGIN=yes, ENABLE_SYSTEMD_LOGIN=no)
1618 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], ENABLE_SYSTEMD_JOURNAL=yes, ENABLE_SYSTEMD_JOURNAL=no)
1619 AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], ENABLE_BLUEZ_5=yes, ENABLE_BLUEZ_5=no)
1620 AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], ENABLE_BLUEZ_5_OFONO_HEADSET=yes, ENABLE_BLUEZ_5_OFONO_HEADSET=no)
1621 AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], ENABLE_BLUEZ_5_NATIVE_HEADSET=yes, ENABLE_BLUEZ_5_NATIVE_HEADSET=no)
1622 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
1623 AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
1624 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE="yes (DEPRECATED)", ENABLE_LIBSAMPLERATE=no)
1625 AS_IF([test "x$HAVE_IPV6" = "x1"], ENABLE_IPV6=yes, ENABLE_IPV6=no)
1626 AS_IF([test "x$HAVE_OPENSSL" = "x1"], ENABLE_OPENSSL=yes, ENABLE_OPENSSL=no)
1627 AS_IF([test "x$HAVE_FFTW" = "x1"], ENABLE_FFTW=yes, ENABLE_FFTW=no)
1628 AS_IF([test "x$HAVE_ORC" = "xyes"], ENABLE_ORC=yes, ENABLE_ORC=no)
1629 AS_IF([test "x$HAVE_ADRIAN_EC" = "x1"], ENABLE_ADRIAN_EC=yes, ENABLE_ADRIAN_EC=no)
1630 AS_IF([test "x$HAVE_SPEEX" = "x1"], ENABLE_SPEEX=yes, ENABLE_SPEEX=no)
1631 AS_IF([test "x$HAVE_SOXR" = "x1"], ENABLE_SOXR=yes, ENABLE_SOXR=no)
1632 AS_IF([test "x$HAVE_WEBRTC" = "x1"], ENABLE_WEBRTC=yes, ENABLE_WEBRTC=no)
1633 AS_IF([test "x$HAVE_GSTREAMER" = "x1"], ENABLE_GSTREAMER=yes, ENABLE_GSTREAMER=no)
1634 AS_IF([test "x$HAVE_TDB" = "x1"], ENABLE_TDB=yes, ENABLE_TDB=no)
1635 AS_IF([test "x$HAVE_GDBM" = "x1"], ENABLE_GDBM=yes, ENABLE_GDBM=no)
1636 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no)
1637 AS_IF([test "x$HAVE_ESOUND" = "x1"], ENABLE_ESOUND=yes, ENABLE_ESOUND=no)
1638 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)
1639 AS_IF([test "x$HAVE_GCOV" = "x1"], ENABLE_GCOV=yes, ENABLE_GCOV=no)
1640 AS_IF([test "x$HAVE_LIBCHECK" = "x1"], ENABLE_TESTS=yes, ENABLE_TESTS=no)
1641 AS_IF([test "x$enable_legacy_database_entry_format" != "xno"], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no)
1644 ---{ $PACKAGE_NAME $VERSION }---
1647 sysconfdir: ${sysconfdir}
1648 localstatedir: ${localstatedir}
1649 modlibexecdir: ${modlibexecdir}
1650 System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH}
1651 System State Path: ${PA_SYSTEM_STATE_PATH}
1652 System Config Path: ${PA_SYSTEM_CONFIG_PATH}
1653 Zsh completions directory: ${zshcompletiondir}
1654 Bash completions directory: ${bashcompletiondir}
1657 CPPFLAGS: ${CPPFLAGS}
1660 Enable memfd shared memory: ${ENABLE_MEMFD}
1661 Enable X11: ${ENABLE_X11}
1662 Enable OSS Output: ${ENABLE_OSS_OUTPUT}
1663 Enable OSS Wrapper: ${ENABLE_OSS_WRAPPER}
1664 Enable EsounD: ${ENABLE_ESOUND}
1665 Enable Alsa: ${ENABLE_ALSA}
1666 Enable CoreAudio: ${ENABLE_COREAUDIO}
1667 Enable Solaris: ${ENABLE_SOLARIS}
1668 Enable WaveOut: ${ENABLE_WAVEOUT}
1669 Enable GLib 2.0: ${ENABLE_GLIB20}
1670 Enable Gtk+ 3.0: ${ENABLE_GTK30}
1671 Enable GConf: ${ENABLE_GCONF}
1672 Enable GSettings: ${ENABLE_GSETTINGS}
1673 Enable Avahi: ${ENABLE_AVAHI}
1674 Enable Jack: ${ENABLE_JACK}
1675 Enable Async DNS: ${ENABLE_LIBASYNCNS}
1676 Enable LIRC: ${ENABLE_LIRC}
1677 Enable D-Bus: ${ENABLE_DBUS}
1678 Enable BlueZ 5: ${ENABLE_BLUEZ_5}
1679 Enable ofono headsets: ${ENABLE_BLUEZ_5_OFONO_HEADSET}
1680 Enable native headsets: ${ENABLE_BLUEZ_5_NATIVE_HEADSET}
1681 Enable udev: ${ENABLE_UDEV}
1682 Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
1684 Daemon (Socket Activation): ${ENABLE_SYSTEMD_DAEMON}
1685 Login (Session Tracking): ${ENABLE_SYSTEMD_LOGIN}
1686 Journal (Logging): ${ENABLE_SYSTEMD_JOURNAL}
1687 Enable TCP Wrappers: ${ENABLE_TCPWRAP}
1688 Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
1689 Enable IPv6: ${ENABLE_IPV6}
1690 Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1691 Enable fftw: ${ENABLE_FFTW}
1692 Enable orc: ${ENABLE_ORC}
1693 Enable Adrian echo canceller: ${ENABLE_ADRIAN_EC}
1694 Enable speex (resampler, AEC): ${ENABLE_SPEEX}
1695 Enable soxr (resampler): ${ENABLE_SOXR}
1696 Enable WebRTC echo canceller: ${ENABLE_WEBRTC}
1697 Enable GStreamer-based RTP: ${ENABLE_GSTREAMER}
1698 Enable gcov coverage: ${ENABLE_GCOV}
1699 Enable unit tests: ${ENABLE_TESTS}
1702 gdbm: ${ENABLE_GDBM}
1703 simple database: ${ENABLE_SIMPLEDB}
1705 System User: ${PA_SYSTEM_USER}
1706 System Group: ${PA_SYSTEM_GROUP}
1707 Access Group: ${PA_ACCESS_GROUP}
1708 Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1709 Force preopen: ${FORCE_PREOPEN}
1710 Preopened modules: ${PREOPEN_MODS}
1712 Legacy Database Entry Support: ${ENABLE_LEGACY_DATABASE_ENTRY_FORMAT}
1715 if test "${ENABLE_SPEEX}" = "no" && test "${ENABLE_WEBRTC}" = "no" && test "${ENABLE_ADRIAN_EC}" = "no" ; then
1716 AC_MSG_ERROR([At least one echo canceller implementation must be available.])
1719 if test "${ENABLE_DBUS}" = "no" && test "x$os_is_win32" != "x1" ; then
1721 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1722 You do not have D-Bus support enabled. It is strongly recommended
1723 that you enable D-Bus support if your platform supports it.
1724 Many parts of PulseAudio use D-Bus, from ConsoleKit interaction
1725 to the Device Reservation Protocol to speak to JACK, Bluetooth
1726 support and even a native control protocol for communicating and
1727 controlling the PulseAudio daemon itself.
1728 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1732 if test "${ENABLE_UDEV}" = "no" && test "x$os_is_win32" != "x1" ; then
1734 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1735 You do not have udev support enabled. It is strongly recommended
1736 that you enable udev support if your platform supports it as it is
1737 the primary method used to detect hardware audio devices (on Linux)
1738 and is thus a critical part of PulseAudio on that platform.
1739 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1743 if test "${ENABLE_SPEEX}" = "no" && test "x$os_is_win32" != "x1" ; then
1745 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1746 You do not have speex support enabled. It is strongly recommended
1747 that you enable speex support if your platform supports it as it is
1748 the primary method used for audio resampling and is thus a critical
1749 part of PulseAudio on that platform.
1750 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====