2004-06-11 00:33:43 +00:00
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
2006-06-19 21:53:48 +00:00
# This file is part of PulseAudio.
2004-06-11 00:33:43 +00:00
#
2008-03-31 22:23:07 +00:00
# Copyright 2004-2008 Lennart Poettering
2007-02-13 15:35:19 +00:00
# Copyright 2006-2007 Pierre Ossman <ossman@cendio.se> for Cendio AB
#
2006-06-19 21:53:48 +00:00
# PulseAudio is free software; you can redistribute it and/or modify it
2004-11-14 14:58:54 +00:00
# under the terms of the GNU Lesser General Public License as published by
2004-06-11 00:33:43 +00:00
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
2006-06-19 21:53:48 +00:00
# PulseAudio is distributed in the hope that it will be useful, but
2004-06-11 00:33:43 +00:00
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
2004-11-14 14:58:54 +00:00
# You should have received a copy of the GNU Lesser General Public License
2014-11-26 14:14:51 +01:00
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
2004-06-11 00:33:43 +00:00
2008-12-16 14:25:31 +01:00
AC_PREREQ(2.63)
2006-05-19 17:40:44 +00:00
2011-11-02 19:40:15 +05:30
AC_INIT([pulseaudio],[m4_esyscmd(./git-version-gen .tarball-version)],[pulseaudio-discuss (at) lists (dot) freedesktop (dot) org],[pulseaudio],[http://pulseaudio.org/])
2006-02-16 19:19:58 +00:00
AC_CONFIG_SRCDIR([src/daemon/main.c])
2008-08-08 12:18:53 +02:00
AC_CONFIG_MACRO_DIR([m4])
2004-06-11 00:33:43 +00:00
AC_CONFIG_HEADERS([config.h])
2013-04-17 10:53:41 +02:00
AC_CONFIG_AUX_DIR([build-aux])
2013-09-16 02:00:33 +02:00
AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability subdir-objects silent-rules color-tests dist-xz tar-ustar])
2004-06-11 00:33:43 +00:00
2018-10-15 09:03:25 +05:30
AM_MAINTAINER_MODE([enable])
2012-09-25 19:26:18 -04:00
AS_IF([! test -n "$VERSION"], [
AC_MSG_ERROR([git-version-gen failed])
])
2009-06-23 17:40:33 +02:00
m4_define(pa_major, `echo $VERSION | cut -d. -f1 | cut -d- -f1`)
m4_define(pa_minor, `echo $VERSION | cut -d. -f2 | cut -d- -f1`)
2009-04-23 19:23:11 +03:00
2009-01-27 02:16:20 +01:00
AC_SUBST(PA_MAJOR, pa_major)
AC_SUBST(PA_MINOR, pa_minor)
AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)
2004-06-11 00:33:43 +00:00
2008-07-23 22:44:41 +02:00
AC_SUBST(PA_API_VERSION, 12)
2020-01-14 10:15:36 +01:00
AC_SUBST(PA_PROTOCOL_VERSION, 35)
2004-09-29 19:13:55 +00:00
2007-11-01 22:51:46 +00:00
# The stable ABI for client applications, for the version info x:y:z
2019-09-02 09:59:29 +05:30
# always will hold x=z
2020-11-23 13:22:25 -05:00
AC_SUBST(LIBPULSE_VERSION_INFO, [23:0:23])
2007-11-01 22:51:46 +00:00
# A simplified, synchronous, ABI-stable interface for client
2019-09-02 09:59:29 +05:30
# applications, for the version info x:y:z always will hold x=z
2017-07-25 01:47:58 +03:00
AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [1:1:1])
2007-11-01 22:51:46 +00:00
# The ABI-stable GLib adapter for client applications, for the version
2019-09-02 09:59:29 +05:30
# info x:y:z always will hold x=z
2020-09-20 18:43:05 -04:00
AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:6:0])
2006-05-16 17:54:33 +00:00
2009-11-20 21:37:16 +01:00
AC_CHECK_PROG([STOW], [stow], [yes], [no])
AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
2011-06-11 17:22:58 +02:00
AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
2009-11-20 21:37:16 +01:00
])
2004-06-11 00:33:43 +00:00
2009-06-22 23:03:43 +02:00
AM_SILENT_RULES([yes])
2011-06-11 17:22:58 +02:00
2006-01-10 17:51:06 +00:00
#### Checks for programs. ####
2007-11-23 21:49:05 +00:00
# mkdir -p
AC_PROG_MKDIR_P
2014-10-17 20:45:18 +02:00
# ln -s
AC_PROG_LN_S
2006-01-10 17:51:06 +00:00
# CC
2004-06-11 00:33:43 +00:00
AC_PROG_CC
2007-08-04 19:53:51 +00:00
AM_PROG_CC_C_O
2011-09-19 13:41:13 +05:30
# Only required if you want the WebRTC canceller -- no runtime dep on
# libstdc++ otherwise
AC_PROG_CXX
2006-01-10 17:51:06 +00:00
AC_PROG_GCC_TRADITIONAL
2008-08-19 00:17:49 +02:00
AC_USE_SYSTEM_EXTENSIONS
2017-10-13 12:23:37 -03:00
AX_CXX_COMPILE_STDCXX_11([ext],[optional])
2006-01-10 17:51:06 +00:00
# M4
2009-02-26 16:48:58 +11:00
AC_CHECK_PROGS([M4], gm4 m4, no)
2011-06-11 17:22:58 +02:00
AS_IF([test "x$M4" = "xno"], AC_MSG_ERROR([m4 missing]))
2006-01-10 17:51:06 +00:00
2011-06-11 17:27:49 +02:00
# pkg-config
PKG_PROG_PKG_CONFIG
# gettext
2020-09-20 20:11:52 -04:00
AM_GNU_GETTEXT_VERSION([0.19.8])
2013-03-27 14:00:36 +00:00
AM_GNU_GETTEXT([external])
2011-06-11 17:27:49 +02:00
GETTEXT_PACKAGE=pulseaudio
AC_SUBST([GETTEXT_PACKAGE])
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
2011-06-08 13:40:49 +02:00
#### Determine host OS ####
2013-12-10 16:47:53 -05:00
# if the host has the possibility of sys/capability.h for dropping privileges
# used to determine if we should error out if it is not found
host_has_caps=0
2011-06-08 13:40:49 +02:00
os_is_linux=0
os_is_win32=0
os_is_darwin=0
AC_MSG_CHECKING([host operating system])
case "$host_os" in
linux*)
AC_MSG_RESULT([linux])
2013-12-10 16:47:53 -05:00
host_has_caps=1
2011-06-08 13:40:49 +02:00
os_is_linux=1
;;
2013-12-10 16:47:53 -05:00
freebsd*)
AC_MSG_RESULT([freebsd])
host_has_caps=1
;;
2015-12-08 04:22:42 +01:00
netbsd*)
AC_MSG_RESULT([netbsd])
;;
2011-06-08 13:40:49 +02:00
darwin*)
AC_MSG_RESULT([darwin])
os_is_darwin=1
AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.])
;;
mingw*)
AC_MSG_RESULT([win32])
os_is_win32=1
AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
;;
*)
AC_MSG_RESULT([unknown])
;;
esac
AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
2011-06-29 15:16:10 +02:00
AC_SUBST([OS_IS_WIN32], [$os_is_win32])
2011-06-08 13:40:49 +02:00
# Platform specific hacks
case "$host_os" in
darwin* )
AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
;;
mingw* )
AC_DEFINE([WIN32_LEAN_AND_MEAN], 1, [Needed to avoid including unnecessary headers on Windows])
;;
solaris* )
AC_DEFINE(_XOPEN_SOURCE, 600, [Needed to get declarations for msg_control and msg_controllen on Solaris])
AC_DEFINE(__EXTENSIONS__, 1, [Needed to get declarations for msg_control and msg_controllen on Solaris])
;;
esac
2011-06-11 17:22:58 +02:00
2011-06-25 16:36:06 +02:00
#### Compiler flags ####
2011-06-11 17:22:58 +02:00
2016-03-14 00:00:03 +02:00
AX_CHECK_COMPILE_FLAG([-std=gnu11],
2016-02-17 19:47:05 +05:30
[],
2016-03-14 00:00:03 +02:00
[AC_MSG_ERROR([*** Compiler does not support -std=gnu11])],
2016-02-17 19:47:05 +05:30
[-pedantic -Werror])
2011-06-25 16:36:06 +02:00
AX_APPEND_COMPILE_FLAGS(
2019-01-15 21:52:31 -03:00
[-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],
2011-06-25 16:36:06 +02:00
[], [-pedantic -Werror])
2011-03-14 16:27:03 +01:00
2014-05-09 23:48:55 +06:00
AS_CASE([" $CFLAGS "], [*" -O0 "*], [], [
# Don't append the flag if it already exists.
# Only enable fastpath asserts when doing a debug build, e.g. from bootstrap.sh.
AX_APPEND_FLAG([-DFASTPATH], [CPPFLAGS])
# Cannot use AX_APPEND_FLAG here, as it assumes no space inside the added flags.
# Cannot append flags with AX_APPEND_FLAG one by one, as this would destroy all fortifications
# if CPPFLAGS already contain -D_FORTIFY_SOURCE=2.
# Warnings to be aware of that appear with -D_FORTIFY_SOURCE=2 but without -U_FORTIFY_SOURCE:
# On Fedora 20 with -O0: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp]
# On Gentoo with -O2: "_FORTIFY_SOURCE" redefined [enabled by default]
AS_VAR_APPEND([CPPFLAGS],[" -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"])
])
2007-10-28 19:13:50 +00:00
2011-06-25 16:36:06 +02:00
#### Linker flags ####
2009-03-05 13:59:59 +01:00
2011-06-25 16:36:06 +02:00
# Check whether the linker supports the -version-script option.
# The Make variable $(srcdir) needs to be in the LDFLAGS in that form,
# so that it is expanded the right way in every subdir.
2021-01-18 18:38:19 +03:00
AX_CHECK_LINK_FLAG(["-Wl,-version-script=${srcdir}/src/pulse/map-file"],
[VERSIONING_LDFLAGS='-Wl,-version-script=$(abs_top_srcdir)/src/pulse/map-file'])
2009-03-05 13:59:59 +01:00
AC_SUBST([VERSIONING_LDFLAGS])
2011-06-25 16:36:06 +02:00
# Use immediate (now) bindings; avoids the funky re-call in itself.
# The -z now syntax is lifted from Sun's linker and works with GNU's too, other linkers might be added later.
AX_APPEND_LINK_FLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS])
2009-07-07 20:51:53 +02:00
AC_SUBST([IMMEDIATE_LDFLAGS])
2018-01-26 03:58:19 +02:00
AS_CASE([$IMMEDIATE_LDFLAGS],[*-z,now*],
[AC_DEFINE([HAVE_BIND_NOW],[1],
[Define to 1 if immediate binding is available])])
2009-07-07 20:51:53 +02:00
2011-06-25 16:36:06 +02:00
# On ELF systems we don't want the libraries to be unloaded since we don't clean them up properly,
# so we request the nodelete flag to be enabled.
# On other systems, we don't really know how to do that, but it's welcome if somebody can tell.
2015-08-11 16:22:37 +02:00
AX_APPEND_LINK_FLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS], [-shared])
2009-07-17 14:18:07 +02:00
AC_SUBST([NODELETE_LDFLAGS])
2011-06-25 16:36:06 +02:00
# Check for the proper way to build libraries that have no undefined symbols
case $host in
# FreeBSD (et al.) does not complete linking for shared objects when pthreads
# are requested, as different implementations are present.
*-freebsd* | *-openbsd*) ;;
*)
for possible_flag in "-Wl,--no-undefined" "-Wl,-z,defs"; do
AX_CHECK_LINK_FLAG([$possible_flag], [NOUNDEFINED_LDFLAGS="$possible_flag"; break])
done
;;
esac
AC_SUBST([NOUNDEFINED_LDFLAGS])
2009-01-20 00:55:39 +01:00
2011-06-11 17:22:58 +02:00
#### Atomic operations ####
2008-03-26 21:15:52 +00:00
# Native atomic operation support
AC_ARG_ENABLE([atomic-arm-linux-helpers],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]))
2008-03-26 21:15:52 +00:00
AC_ARG_ENABLE([atomic-arm-memory-barrier],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]))
if test "x$enable_atomic_arm_memory_barrier" = "xyes"; then
AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers])
fi
2008-03-26 21:15:52 +00:00
# If everything else fails use libatomic_ops
need_libatomic_ops=yes
2019-05-29 19:20:37 +02:00
AC_CACHE_CHECK([whether $CC knows __atomic_store_n()],
pulseaudio_cv_atomic_store_n, [
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([], [[int c = 0; __atomic_store_n(&c, 4, __ATOMIC_SEQ_CST);]])],
[pulseaudio_cv_atomic_store_n=yes],
[pulseaudio_cv_atomic_store_n=no])
])
2008-08-08 14:43:37 +02:00
AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
2011-06-11 17:22:58 +02:00
pulseaudio_cv_sync_bool_compare_and_swap, [
AC_LINK_IFELSE(
2013-09-16 02:00:34 +02:00
[AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]])],
2011-06-11 17:22:58 +02:00
[pulseaudio_cv_sync_bool_compare_and_swap=yes],
[pulseaudio_cv_sync_bool_compare_and_swap=no])
])
2008-08-08 14:43:37 +02:00
if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
2007-10-28 19:13:50 +00:00
AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
2019-05-29 19:20:37 +02:00
if test "$pulseaudio_cv_atomic_store_n" = "yes" ; then
AC_DEFINE([HAVE_ATOMIC_BUILTINS_MEMORY_MODEL], 1, [Have __atomic_store_n() and friends.])
fi
2008-03-26 21:15:52 +00:00
need_libatomic_ops=no
2007-10-28 19:13:50 +00:00
else
2008-03-27 20:34:04 +00:00
# HW specific atomic ops stuff
2008-03-26 21:15:52 +00:00
AC_MSG_CHECKING([architecture for native atomic operations])
2009-11-21 00:17:33 +01:00
case $host in
2015-12-08 04:22:42 +01:00
*-netbsd*)
AC_MSG_RESULT([yes])
need_libatomic_ops=no
;;
2008-03-26 21:15:52 +00:00
arm*)
2009-01-22 01:52:35 +01:00
AC_MSG_RESULT([arm])
AC_MSG_CHECKING([whether we can use Linux kernel helpers])
# The Linux kernel helper functions have been there since 2.6.16. However
# compile time checking for kernel version in cross compile environment
# (which is usually the case for arm cpu) is tricky (or impossible).
2011-06-08 13:40:49 +02:00
if test "x$os_is_linux" = "x1" && test "x$enable_atomic_arm_linux_helpers" != "xno"; then
2009-01-22 01:52:35 +01:00
AC_MSG_RESULT([yes])
AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
need_libatomic_ops=no
else
2011-06-11 17:22:58 +02:00
AC_MSG_RESULT([no])
AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
pulseaudio_cv_support_arm_atomic_ops, [
AC_COMPILE_IFELSE(
2013-09-16 02:00:34 +02:00
[AC_LANG_PROGRAM([], [[
2011-06-11 17:22:58 +02:00
volatile int a=0;
int o=0, n=1, r;
asm volatile ("ldrex %0, [%1]\n"
"subs %0, %0, %2\n"
"strexeq %0, %3, [%1]\n"
: "=&r" (r)
: "r" (&a), "Ir" (o), "r" (n)
: "cc");
return (a==1 ? 0 : -1);
2013-09-16 02:00:34 +02:00
]])],
2011-06-11 17:22:58 +02:00
[pulseaudio_cv_support_arm_atomic_ops=yes],
[pulseaudio_cv_support_arm_atomic_ops=no])
])
AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARM atomic instructions.])
need_libatomic_ops=no
])
fi
2009-01-22 01:52:35 +01:00
;;
2011-06-11 17:22:58 +02:00
*-freebsd*)
2009-11-21 00:27:35 +01:00
AC_MSG_RESULT([yes])
need_libatomic_ops=no
2011-06-11 17:22:58 +02:00
;;
2008-03-26 21:15:52 +00:00
*)
2009-11-21 00:17:33 +01:00
AC_MSG_RESULT([unknown])
2008-03-26 21:15:52 +00:00
;;
esac
2007-10-28 19:13:50 +00:00
fi
2010-11-26 11:55:57 +05:30
# If we're on ARM, check for the ARMV6 instructions we need */
case $host in
arm*)
AC_CACHE_CHECK([support for required armv6 instructions],
pulseaudio_cv_support_armv6,
[AC_COMPILE_IFELSE(
2013-09-16 02:00:34 +02:00
[AC_LANG_PROGRAM([],
2010-11-26 11:55:57 +05:30
[[volatile int a = -60000, b = 0xaaaabbbb, c = 0xccccdddd;
asm volatile ("ldr r0, %2 \n"
"ldr r2, %3 \n"
"ldr r3, %4 \n"
"ssat r1, #8, r0 \n"
"str r1, %0 \n"
"pkhbt r1, r3, r2, LSL #8 \n"
"str r1, %1 \n"
: "=m" (a), "=m" (b)
: "m" (a), "m" (b), "m" (c)
: "r0", "r1", "r2", "r3", "cc");
return (a == -128 && b == 0xaabbdddd) ? 0 : -1;
2013-09-16 02:00:34 +02:00
]])],
2010-11-26 11:55:57 +05:30
[pulseaudio_cv_support_armv6=yes],
[pulseaudio_cv_support_armv6=no])
])
AS_IF([test "$pulseaudio_cv_support_armv6" = "yes"], [
AC_DEFINE([HAVE_ARMV6], 1, [Have ARMv6 instructions.])
])
;;
*)
;;
esac
2012-10-23 17:54:57 +02:00
#### NEON optimisations ####
AC_ARG_ENABLE([neon-opt],
AS_HELP_STRING([--enable-neon-opt], [Enable NEON optimisations on ARM CPUs that support it]))
AS_IF([test "x$enable_neon_opt" != "xno"],
2013-03-28 14:46:48 +01:00
[save_CFLAGS="$CFLAGS"; CFLAGS="-mfpu=neon $CFLAGS"
2012-10-23 17:54:57 +02:00
AC_COMPILE_IFELSE(
2013-09-16 02:00:34 +02:00
[AC_LANG_PROGRAM([[#include <arm_neon.h>]], [])],
2012-10-23 17:54:57 +02:00
[
HAVE_NEON=1
NEON_CFLAGS="-mfpu=neon"
],
[
HAVE_NEON=0
NEON_CFLAGS=
])
CFLAGS="$save_CFLAGS"
],
[HAVE_NEON=0])
AS_IF([test "x$enable_neon_opt" = "xyes" && test "x$HAVE_NEON" = "x0"],
2013-03-28 14:46:48 +01:00
[AC_MSG_ERROR([*** Compiler does not support -mfpu=neon or CFLAGS override -mfpu])])
2012-10-23 17:54:57 +02:00
AC_SUBST(HAVE_NEON)
AC_SUBST(NEON_CFLAGS)
AM_CONDITIONAL([HAVE_NEON], [test "x$HAVE_NEON" = x1])
AS_IF([test "x$HAVE_NEON" = "x1"], AC_DEFINE([HAVE_NEON], 1, [Have NEON support?]))
2011-06-11 17:22:58 +02:00
2006-01-10 17:51:06 +00:00
#### libtool stuff ####
2011-06-11 17:22:58 +02:00
2012-07-10 14:44:03 +02:00
LT_PREREQ(2.4)
2008-12-16 14:25:31 +01:00
LT_INIT([dlopen win32-dll disable-static])
2009-01-22 16:37:40 +01:00
2009-01-22 20:02:42 +01:00
dnl As an extra safety device, check for lt_dladvise_init() which is
dnl only implemented in libtool 2.x, and refine as we go if we have
dnl refined requirements.
dnl
2009-01-22 16:37:40 +01:00
dnl Check the header files first since the system may have a
dnl libltdl.so for runtime, but no headers, and we want to bail out as
dnl soon as possible.
dnl
dnl We don't need any special variable for this though, since the user
dnl can give the proper place to find libltdl through the standard
dnl variables like LDFLAGS and CPPFLAGS.
AC_CHECK_HEADER([ltdl.h],
2009-01-22 20:02:42 +01:00
[AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
2009-01-22 16:37:40 +01:00
[LIBLTDL=])
AS_IF([test "x$LIBLTDL" = "x"],
2012-07-10 14:44:03 +02:00
[AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.4 or later installed.])])
2009-01-22 16:37:40 +01:00
AC_SUBST([LIBLTDL])
2005-09-16 00:02:10 +00:00
2006-01-10 17:51:06 +00:00
###################################
# Basic environment checks #
###################################
#### Checks for header files. ####
# ISO
2004-08-17 17:56:09 +00:00
AC_HEADER_STDC
2006-01-10 17:51:06 +00:00
# POSIX
2017-11-22 17:14:10 +02:00
AC_CHECK_HEADERS_ONCE([arpa/inet.h cpuid.h glob.h grp.h netdb.h netinet/in.h \
2007-10-28 19:13:50 +00:00
netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
2011-06-29 15:16:11 +02:00
sys/mman.h sys/select.h sys/socket.h sys/wait.h \
2009-01-22 01:37:19 +01:00
sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
2006-09-02 12:45:53 +00:00
AC_CHECK_HEADERS([netinet/ip.h], [], [],
2009-01-22 01:52:35 +01:00
[#include <sys/types.h>
#if HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#if HAVE_NETINET_IN_SYSTM_H
# include <netinet/in_systm.h>
#endif
])
2011-06-29 15:16:11 +02:00
AC_CHECK_HEADERS([sys/resource.h], [HAVE_SYS_RESOURCE_H=1], [HAVE_SYS_RESOURCE_H=0])
AC_SUBST(HAVE_SYS_RESOURCE_H)
2006-01-10 17:51:06 +00:00
AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
2020-10-01 10:14:08 -04:00
# In principle we would test for <afunix.h>, but that doesn't ship (yet) with the
# MinGW headers.
AC_CHECK_HEADERS([winsock2.h], [HAVE_AF_UNIX=1], [])
2006-01-10 17:51:06 +00:00
AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
2011-06-29 15:16:11 +02:00
AC_SUBST(HAVE_AF_UNIX)
2006-01-10 17:51:06 +00:00
# Linux
AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
2009-05-17 23:25:23 +02:00
AC_CHECK_HEADERS_ONCE([sys/prctl.h])
2006-07-14 00:17:31 +00:00
2006-04-18 14:09:56 +00:00
# Solaris
2017-06-03 20:53:48 -07:00
AC_CHECK_HEADERS_ONCE([sys/conf.h sys/filio.h])
2006-04-18 14:09:56 +00:00
2006-01-10 17:51:06 +00:00
# Windows
2009-05-17 23:25:23 +02:00
AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
2006-01-10 17:51:06 +00:00
2009-01-22 01:52:35 +01:00
# NetBSD
2009-05-17 23:25:23 +02:00
AC_CHECK_HEADERS_ONCE([sys/atomic.h])
2009-01-22 01:52:35 +01:00
2006-01-10 17:51:06 +00:00
# Other
2009-05-17 23:25:23 +02:00
AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
AC_CHECK_HEADERS_ONCE([byteswap.h])
AC_CHECK_HEADERS_ONCE([sys/syscall.h])
AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
AC_CHECK_HEADERS_ONCE([execinfo.h])
2011-01-06 00:51:33 +01:00
AC_CHECK_HEADERS_ONCE([langinfo.h])
2011-01-04 16:48:06 +01:00
AC_CHECK_HEADERS_ONCE([regex.h pcreposix.h])
2015-11-28 10:01:05 +01:00
AC_CHECK_HEADERS_ONCE([locale.h xlocale.h])
2006-01-10 17:51:06 +00:00
2014-12-02 09:22:47 +01:00
AM_CONDITIONAL(HAVE_SYS_EVENTFD_H, test "x$ac_cv_header_sys_eventfd_h" = "xyes")
2011-06-11 17:22:58 +02:00
2006-01-10 17:51:06 +00:00
#### Typdefs, structures, etc. ####
2004-08-17 17:56:09 +00:00
AC_C_CONST
2006-01-10 17:51:06 +00:00
AC_C_BIGENDIAN
2004-08-17 17:56:09 +00:00
AC_TYPE_PID_T
AC_TYPE_SIZE_T
2011-06-11 17:22:58 +02:00
AC_CHECK_TYPES(ssize_t, , AC_DEFINE([ssize_t], [signed long], [Define ssize_t if it is not done by the standard libs.]))
2004-09-05 00:03:16 +00:00
AC_TYPE_OFF_T
2008-12-16 14:25:31 +01:00
2004-11-01 23:37:36 +00:00
AC_TYPE_UID_T
2008-05-15 23:34:41 +00:00
AC_CHECK_DECLS(environ)
2004-08-17 17:56:09 +00:00
2015-12-20 01:25:41 +01:00
AC_CHECK_SIZEOF(void*)
fast_64bit_operations="no"
# This check covers x32-ABI
AC_CHECK_DECL([__x86_64__], [fast_64bit_operations="yes"], [], [])
if test "x$fast_64bit_operations" = "xno"; then
AS_IF([test $ac_cv_sizeof_voidp -ge 8], [fast_64bit_operations="yes"])
fi
AS_IF([test "x$fast_64bit_operations" = "xyes"], AC_DEFINE([HAVE_FAST_64BIT_OPERATIONS], 1, [Have CPU with fast 64-bit operations?]))
2011-06-11 17:22:58 +02:00
# SIGXCPU
2011-06-15 18:49:22 +02:00
AX_CHECK_DEFINE([signal.h], [SIGXCPU], [HAVE_SIGXCPU=1], [HAVE_SIGXCPU=0])
2011-06-11 17:22:58 +02:00
AS_IF([test "x$HAVE_SIGXCPU" = "x1"], AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?]))
2006-01-10 17:51:06 +00:00
AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
2011-06-11 17:22:58 +02:00
# INADDR_NONE, Solaris lacks this
2011-06-15 18:49:22 +02:00
AX_CHECK_DEFINE([netinet/in.h], [INADDR_NONE], [],
[AX_CHECK_DEFINE([winsock2.h], [INADDR_NONE], [],
2006-06-12 12:52:37 +00:00
[AC_DEFINE([INADDR_NONE], [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
2006-01-10 17:51:06 +00:00
2011-06-11 17:27:49 +02:00
# _Bool
AC_CACHE_CHECK([whether $CC knows _Bool],
pulseaudio_cv__Bool,
[AC_COMPILE_IFELSE(
2013-09-16 02:00:34 +02:00
[AC_LANG_PROGRAM([], [[_Bool b;]])],
2011-06-11 17:27:49 +02:00
[pulseaudio_cv__Bool=yes],
[pulseaudio_cv__Bool=no])
])
AS_IF([test "$pulseaudio_cv__Bool" = "yes"], AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.]))
2006-01-10 17:51:06 +00:00
#### Check for libs ####
# ISO
2006-01-25 17:25:28 +00:00
AC_SEARCH_LIBS([pow], [m])
2006-01-10 17:51:06 +00:00
# POSIX
2006-01-25 17:25:28 +00:00
AC_SEARCH_LIBS([sched_setscheduler], [rt])
2006-05-24 15:38:11 +00:00
AC_SEARCH_LIBS([dlopen], [dl])
2006-08-22 11:41:14 +00:00
AC_SEARCH_LIBS([shm_open], [rt])
2007-07-10 15:20:39 +00:00
AC_SEARCH_LIBS([inet_ntop], [nsl])
2008-02-15 13:21:14 +00:00
AC_SEARCH_LIBS([timer_create], [rt])
2010-02-21 20:11:23 +01:00
AC_SEARCH_LIBS([pthread_setaffinity_np], [pthread])
2011-04-22 04:28:11 +02:00
AC_SEARCH_LIBS([pthread_getname_np], [pthread])
AC_SEARCH_LIBS([pthread_setname_np], [pthread])
2006-01-10 17:51:06 +00:00
# BSD
2006-01-25 17:25:28 +00:00
AC_SEARCH_LIBS([connect], [socket])
2011-05-22 23:02:44 +02:00
AC_SEARCH_LIBS([backtrace], [execinfo ubacktrace])
2006-01-10 17:51:06 +00:00
2009-09-16 09:07:50 +08:00
# Darwin/OS X
if test "x$os_is_darwin" = "x1" ; then
AC_MSG_CHECKING([looking for Apple CoreService Framework])
2015-06-16 02:32:01 -07:00
AC_CHECK_HEADER([CoreServices/CoreServices.h],
2011-06-11 17:22:58 +02:00
[LIBS="$LIBS -framework CoreServices"],
2015-06-16 02:32:01 -07:00
[AC_MSG_ERROR([CoreServices.h header file not found])]
2011-06-11 17:22:58 +02:00
)
2009-09-16 09:07:50 +08:00
AC_MSG_RESULT([ok])
AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
2009-12-10 10:32:57 +08:00
HAVE_BONJOUR=1
2009-09-16 09:07:50 +08:00
fi
2009-12-10 10:32:57 +08:00
AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
2011-04-30 15:25:55 +02:00
# Windows
2011-01-04 16:48:06 +01:00
AC_SEARCH_LIBS([regexec], [pcreposix])
2011-04-30 15:25:55 +02:00
# This magic is needed so we do not needlessly add static libs to the win32 build, disabling its ability to make dlls.
AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
2011-01-04 16:48:06 +01:00
2011-06-11 17:22:58 +02:00
2006-01-10 17:51:06 +00:00
#### Check for functions ####
2007-10-28 19:13:50 +00:00
# ISO
2009-05-17 23:25:23 +02:00
AC_CHECK_FUNCS_ONCE([lrintf strtof])
2007-10-28 19:13:50 +00:00
2006-01-10 17:51:06 +00:00
# POSIX
AC_FUNC_FORK
2004-11-01 23:37:36 +00:00
AC_FUNC_GETGROUPS
2010-03-02 21:33:34 -08:00
AC_CHECK_FUNCS_ONCE([chmod chown fstat fchown fchmod clock_gettime getaddrinfo getgrgid_r getgrnam_r \
2011-03-01 16:06:19 +01:00
getpwnam_r getpwuid_r gettimeofday getuid mlock nanosleep \
2007-10-28 19:13:50 +00:00
pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
2020-08-04 14:42:59 +03:00
sigaction sleep symlink sysconf uname pthread_getname_np pthread_setname_np])
2006-01-10 17:51:06 +00:00
AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
2011-06-29 15:16:11 +02:00
AC_SUBST(HAVE_MKFIFO)
2006-01-10 17:51:06 +00:00
AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
2020-08-04 14:42:59 +03:00
AC_CHECK_FUNCS([pthread_setaffinity_np], [HAVE_PTHREAD_SETAFFINITY_NP=1], [HAVE_PTHREAD_SETAFFINITY_NP=0])
AM_CONDITIONAL(HAVE_PTHREAD_SETAFFINITY_NP, test "x$HAVE_PTHREAD_SETAFFINITY_NP" = "x1")
2006-01-10 17:51:06 +00:00
# X/OPEN
2009-05-17 23:25:23 +02:00
AC_CHECK_FUNCS_ONCE([readlink])
2006-01-10 17:51:06 +00:00
# SUSv2
2009-05-17 23:25:23 +02:00
AC_CHECK_FUNCS_ONCE([ctime_r usleep])
2004-09-23 15:47:11 +00:00
2006-05-22 15:20:46 +00:00
# SUSv3
2009-05-17 23:25:23 +02:00
AC_CHECK_FUNCS_ONCE([strerror_r])
2006-05-22 15:20:46 +00:00
2006-01-10 17:51:06 +00:00
# BSD
2015-11-21 23:08:23 +01:00
AC_CHECK_FUNCS_ONCE([lstat paccept])
2006-01-10 17:51:06 +00:00
# Non-standard
2015-05-20 22:35:27 +03:00
AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtod_l pipe2 accept4])
2007-10-28 19:13:50 +00:00
2008-06-27 22:26:00 +02:00
AC_FUNC_ALLOCA
2011-01-04 16:48:06 +01:00
AC_CHECK_FUNCS([regexec], [HAVE_REGEX=1], [HAVE_REGEX=0])
AM_CONDITIONAL(HAVE_REGEX, [test "x$HAVE_REGEX" = "x1"])
2011-06-11 17:22:58 +02:00
# Large File-Support (LFS)
2006-04-16 09:12:31 +00:00
AC_SYS_LARGEFILE
2006-07-16 23:20:27 +00:00
# Check for open64 to know if the current system does have open64() and similar functions
2009-05-17 23:25:23 +02:00
AC_CHECK_FUNCS_ONCE([open64])
2006-07-16 23:20:27 +00:00
2014-10-11 01:34:23 -03:00
AC_SEARCH_LIBS([dladdr], [dl], [HAVE_DLADDR=1], [HAVE_DLADDR=0])
AC_DEFINE(HAVE_DLADDR, [1], [Have dladdr?])
2008-08-06 18:54:13 +02:00
2006-01-10 17:51:06 +00:00
###################################
# External libraries #
###################################
2011-06-11 17:27:49 +02:00
#### [lib]iconv ####
2009-01-07 16:33:43 +02:00
2011-06-11 17:27:49 +02:00
AM_ICONV
2009-01-07 16:33:43 +02:00
pulsecore: Introduce memfd support
Memfd is a simple memory sharing mechanism, added by the systemd/kdbus
developers, to share pages between processes in an anonymous, no global
registry needed, no mount-point required, relatively secure, manner.
This patch introduces the necessary building blocks for using memfd
shared memory transfers in PulseAudio.
Memfd support shall also help us in laying out the necessary (but not
yet sufficient) groundwork for application sandboxing, protecting PA
from its clients, and protecting clients data from each other.
We plan to exclusively use memfds, instead of POSIX SHM, on the way
forward.
Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com>
2016-03-13 01:04:18 +02:00
#### Linux memfd_create(2) SHM support ####
AC_ARG_ENABLE([memfd],
AS_HELP_STRING([--disable-memfd], [Disable Linux memfd shared memory]))
AS_IF([test "x$enable_memfd" != "xno"],
AC_CHECK_DECL(SYS_memfd_create, [HAVE_MEMFD=1], [HAVE_MEMFD=0], [#include <sys/syscall.h>]),
[HAVE_MEMFD=0])
AS_IF([test "x$enable_memfd" = "xyes" && test "x$HAVE_MEMFD" = "x0"],
[AC_MSG_ERROR([*** Your Linux kernel does not support memfd shared memory.
*** Use linux v3.17 or higher for such a feature.])])
2018-01-24 03:51:49 +02:00
AS_IF([test "x$HAVE_MEMFD" = "x1"],
AC_CHECK_FUNCS([memfd_create]))
pulsecore: Introduce memfd support
Memfd is a simple memory sharing mechanism, added by the systemd/kdbus
developers, to share pages between processes in an anonymous, no global
registry needed, no mount-point required, relatively secure, manner.
This patch introduces the necessary building blocks for using memfd
shared memory transfers in PulseAudio.
Memfd support shall also help us in laying out the necessary (but not
yet sufficient) groundwork for application sandboxing, protecting PA
from its clients, and protecting clients data from each other.
We plan to exclusively use memfds, instead of POSIX SHM, on the way
forward.
Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com>
2016-03-13 01:04:18 +02:00
AC_SUBST(HAVE_MEMFD)
AM_CONDITIONAL([HAVE_MEMFD], [test "x$HAVE_MEMFD" = x1])
AS_IF([test "x$HAVE_MEMFD" = "x1"], AC_DEFINE([HAVE_MEMFD], 1, [Have memfd shared memory.]))
2006-01-10 17:51:06 +00:00
#### X11 (optional) ####
2009-01-07 16:33:43 +02:00
AC_ARG_ENABLE([x11],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-x11],[Disable optional X11 support]))
2006-01-10 17:51:06 +00:00
2011-04-30 15:25:53 +02:00
AS_IF([test "x$enable_x11" != "xno"],
2020-12-22 20:54:40 +03:00
[
PKG_CHECK_MODULES(X11, [ x11-xcb xcb >= 1.6 ice sm xtst ], HAVE_X11=1, HAVE_X11=0)
AC_CHECK_LIB(X11, XSetIOErrorExitHandler, [HAVE_XSETIOERROREXITHANDLER=yes], [HAVE_XSETIOERROREXITHANDLER=no])
],
[
HAVE_X11=0
HAVE_XSETIOERROREXITHANDLER=no
])
2011-04-30 15:25:53 +02:00
2011-04-30 15:25:52 +02:00
AS_IF([test "x$enable_x11" = "xyes" && test "x$HAVE_X11" = "x0"],
[AC_MSG_ERROR([*** X11 not found])])
2006-01-10 17:51:06 +00:00
2011-06-29 15:16:11 +02:00
AC_SUBST(HAVE_X11)
2009-01-07 16:33:43 +02:00
AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
2011-04-30 15:25:51 +02:00
AS_IF([test "x$HAVE_X11" = "x1"], AC_DEFINE([HAVE_X11], 1, [Have X11?]))
2020-12-22 20:54:40 +03:00
AS_IF([test "x$HAVE_XSETIOERROREXITHANDLER" = "xyes"], AC_DEFINE([HAVE_XSETIOERROREXITHANDLER], 1, [Have XSetIOErrorExitHandler function.]))
2009-01-07 16:33:43 +02:00
2006-01-10 17:51:06 +00:00
#### Capabilities (optional) ####
CAP_LIBS=''
2011-06-11 17:22:58 +02:00
AC_ARG_WITH([caps],
2013-12-10 16:47:53 -05:00
AS_HELP_STRING([--without-caps],[Omit support for dropping capabilities.]))
2006-01-10 17:51:06 +00:00
if test "x${with_caps}" != "xno"; then
2013-12-10 16:47:53 -05:00
AC_SEARCH_LIBS([cap_init], [cap], [], [])
# Only give an error on hosts that we know could support capabilities
2006-06-02 15:30:04 +00:00
AC_CHECK_HEADERS([sys/capability.h], [], [
2013-12-10 16:47:53 -05:00
if test "${host_has_caps}" = "1"; then
AC_MSG_ERROR([*** sys/capability.h not found. Use --without-caps to disable capabilities support.])
fi])
2006-01-10 17:51:06 +00:00
fi
2008-08-18 19:55:55 +02:00
#### Valgrind (optional) ####
2009-05-17 23:25:23 +02:00
AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
2008-08-18 19:55:55 +02:00
2012-08-13 15:34:05 +08:00
#### check unit tests ####
AC_ARG_ENABLE([tests],
AS_HELP_STRING([--disable-tests],[Disable unit tests]))
AS_IF([test "x$enable_tests" != "xno"],
2016-08-10 15:22:16 +02:00
[PKG_CHECK_MODULES(LIBCHECK, [ check >= 0.9.10 ], HAVE_LIBCHECK=1, HAVE_LIBCHECK=0)],
2012-08-13 15:34:05 +08:00
HAVE_LIBCHECK=0)
2012-07-17 14:45:50 +08:00
2012-08-13 15:34:05 +08:00
AS_IF([test "x$enable_tests" = "xyes" && test "x$HAVE_LIBCHECK" = "x0"],
2016-08-10 15:22:16 +02:00
[AC_MSG_ERROR([*** check library not found or too old])])
2012-08-13 15:34:05 +08:00
AM_CONDITIONAL([HAVE_TESTS], [test "x$HAVE_LIBCHECK" = x1])
2006-01-10 17:51:06 +00:00
#### Sound file ####
2009-06-06 17:02:57 +02:00
PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
2004-08-03 19:26:56 +00:00
2011-06-11 17:22:58 +02:00
#### atomic-ops ####
2006-08-29 01:15:09 +00:00
2008-03-27 20:34:04 +00:00
AC_MSG_CHECKING([whether we need libatomic_ops])
2008-03-26 21:15:52 +00:00
if test "x$need_libatomic_ops" = "xyes"; then
2011-06-11 17:22:58 +02:00
AC_MSG_RESULT([yes])
2011-06-25 16:36:08 +02:00
AC_CHECK_HEADERS([atomic_ops.h],
[CFLAGS="$CFLAGS -DAO_REQUIRE_CAS"],
[AC_MSG_ERROR([*** libatomic-ops headers not found])])
2011-06-11 17:22:58 +02:00
# Win32 does not need the lib and breaks horribly if we try to include it
AS_IF([test "x$os_is_win32" != "x1"], [LIBS="$LIBS -latomic_ops"])
2008-03-26 21:15:52 +00:00
else
2011-06-11 17:22:58 +02:00
AC_MSG_RESULT([no])
2006-08-31 16:39:53 +00:00
fi
2006-08-30 16:55:37 +00:00
2007-10-28 19:13:50 +00:00
#### Libsamplerate support (optional) ####
AC_ARG_ENABLE([samplerate],
2015-01-05 15:44:15 +02:00
AS_HELP_STRING([--enable-samplerate],[Enable optional libsamplerate support (DEPRECATED)]))
2007-10-28 19:13:50 +00:00
2015-01-05 15:44:15 +02:00
AS_IF([test "x$enable_samplerate" = "xyes"],
2011-04-30 15:25:53 +02:00
[PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ], HAVE_LIBSAMPLERATE=1, HAVE_LIBSAMPLERATE=0)],
HAVE_LIBSAMPLERATE=0)
2011-04-30 15:25:52 +02:00
AS_IF([test "x$enable_samplerate" = "xyes" && test "x$HAVE_LIBSAMPLERATE" = "x0"],
[AC_MSG_ERROR([*** Libsamplerate not found])])
2007-10-28 19:13:50 +00:00
AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
2011-04-30 15:25:51 +02:00
AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?]))
2007-10-28 19:13:50 +00:00
2014-11-11 15:39:59 +01:00
AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_MSG_WARN([Support for libsamplerate is DEPRECATED]))
2009-05-14 01:24:26 +02:00
#### Database support ####
2011-04-30 15:25:54 +02:00
AC_ARG_WITH([database],
AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xtdb"],
[PKG_CHECK_MODULES(TDB, [ tdb ], HAVE_TDB=1, HAVE_TDB=0)],
HAVE_TDB=0)
AS_IF([test "x$HAVE_TDB" = "x1"], with_database=tdb)
2009-05-14 01:24:26 +02:00
2011-04-30 15:25:52 +02:00
AS_IF([test "x$with_database" = "xtdb" && test "x$HAVE_TDB" = "x0"],
[AC_MSG_ERROR([*** tdb not found])])
2009-05-14 01:24:26 +02:00
2011-04-30 15:25:54 +02:00
AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xgdbm"],
[
HAVE_GDBM=1
AC_CHECK_LIB(gdbm, gdbm_open, [], HAVE_GDBM=0)
AC_CHECK_HEADERS(gdbm.h, [], HAVE_GDBM=0)
],
HAVE_GDBM=0)
AS_IF([test "x$HAVE_GDBM" = "x1"],
[
with_database=gdbm
GDBM_CFLAGS=
GDBM_LIBS=-lgdbm
])
2009-05-14 01:24:26 +02:00
2011-04-30 15:25:52 +02:00
AS_IF([test "x$with_database" = "xgdbm" && test "x$HAVE_GDBM" = "x0"],
[AC_MSG_ERROR([*** gdbm not found])])
2009-05-14 01:24:26 +02:00
2009-08-12 18:30:14 +03:00
2011-04-30 15:25:54 +02:00
AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xsimple"],
HAVE_SIMPLEDB=1,
HAVE_SIMPLEDB=0)
AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], with_database=simple)
AS_IF([test "x$HAVE_TDB" != x1 -a "x$HAVE_GDBM" != x1 -a "x$HAVE_SIMPLEDB" != x1],
AC_MSG_ERROR([*** missing database backend]))
2009-05-14 01:24:26 +02:00
AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
2011-04-30 15:25:51 +02:00
AS_IF([test "x$HAVE_TDB" = "x1"], AC_DEFINE([HAVE_TDB], 1, [Have tdb?]))
2009-05-14 01:24:26 +02:00
AC_SUBST(GDBM_CFLAGS)
AC_SUBST(GDBM_LIBS)
AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
2011-04-30 15:25:51 +02:00
AS_IF([test "x$HAVE_GDBM" = "x1"], AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?]))
2009-05-14 01:24:26 +02:00
2009-08-12 18:30:14 +03:00
AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
2011-04-30 15:25:51 +02:00
AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?]))
2009-08-12 18:30:14 +03:00
2006-01-10 17:51:06 +00:00
#### OSS support (optional) ####
2009-08-08 01:53:15 +02:00
AC_ARG_ENABLE([oss-output],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]))
2006-06-12 12:19:24 +00:00
2009-08-08 01:53:15 +02:00
AC_ARG_ENABLE([oss-wrapper],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]))
2006-06-12 12:19:24 +00:00
2016-11-28 14:49:06 -03:00
AC_ARG_WITH([pulsedsp-location],
AS_HELP_STRING([--with-pulsedsp-location],[Specify location where OSS wrapper will be installed]))
2011-04-30 15:25:53 +02:00
AS_IF([test "x$enable_oss_output" != "xno" -o "x$enable_oss_wrapper" != "xno"],
[AC_CHECK_HEADERS([sys/soundcard.h], HAVE_OSS=1, HAVE_OSS=0)],
HAVE_OSS=0)
AS_IF([test "x$enable_oss_output" = "xyes" -o "x$enable_oss_wrapper" = "xyes" && test "x$HAVE_OSS" = "x0"],
2011-04-30 15:25:52 +02:00
[AC_MSG_ERROR([*** OSS support not found])])
2006-06-12 12:19:24 +00:00
2011-04-30 15:25:53 +02:00
AS_IF([test "x$enable_oss_output" != "xno"],
[AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_OUTPUT=1, HAVE_OSS_OUTPUT=0)],
HAVE_OSS_OUTPUT=0)
AS_IF([test "x$enable_oss_wrapper" != "xno"],
[AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_WRAPPER=1, HAVE_OSS_WRAPPER=0)],
HAVE_OSS_WRAPPER=0)
2016-11-28 14:49:06 -03:00
AS_IF([test "x$with_pulsedsp_location" != "x"],
[PULSEDSP_LOCATION="$with_pulsedsp_location"],
[PULSEDSP_LOCATION="\$(pkglibdir)"])
2011-06-29 15:16:11 +02:00
AC_SUBST(HAVE_OSS_OUTPUT)
2016-11-28 14:49:06 -03:00
AC_SUBST(PULSEDSP_LOCATION)
2011-04-30 15:25:50 +02:00
AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS_OUTPUT" = "x1"])
AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS_WRAPPER" = "x1"])
2011-04-30 15:25:51 +02:00
AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?]))
AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?]))
2006-02-16 01:16:39 +00:00
2015-12-21 04:10:35 +01:00
# Some platforms like SunOS (Illumos) may ship without SOUND_PCM_* functionality
if test "x$HAVE_OSS" = "x1"; then
AC_CHECK_DECLS([SOUND_PCM_READ_RATE], [], [], [[#include <sys/soundcard.h>]])
AC_CHECK_DECLS([SOUND_PCM_READ_CHANNELS], [], [], [[#include <sys/soundcard.h>]])
AC_CHECK_DECLS([SOUND_PCM_READ_BITS], [], [], [[#include <sys/soundcard.h>]])
fi
2009-10-31 01:58:26 +01:00
#### CoreAudio support (optional) ####
AC_ARG_ENABLE([coreaudio-output],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]))
2009-10-31 01:58:26 +01:00
2011-04-30 15:25:53 +02:00
AS_IF([test "x$enable_coreaudio_output" != "xno"],
[AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1, HAVE_COREAUDIO=0)],
HAVE_COREAUDIO=0)
2009-10-31 01:58:26 +01:00
2011-04-30 15:25:54 +02:00
AS_IF([test "x$enable_coreaudio_output" = "xyes" && test "x$HAVE_COREAUDIO" = "x0"],
[AC_MSG_ERROR([*** CoreAudio output support not found])])
2015-04-21 08:01:05 +02:00
AC_SUBST(HAVE_COREAUDIO)
2011-04-30 15:25:49 +02:00
AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = "x1" && test "x$enable_coreaudio_output" != "xno"])
2009-10-31 01:58:26 +01:00
2015-04-21 08:01:05 +02:00
AS_IF([test "x$HAVE_COREAUDIO" = "x1"], AC_DEFINE([HAVE_COREAUDIO], 1, [Have CoreAudio?]))
2006-01-10 17:51:06 +00:00
#### ALSA support (optional) ####
2007-10-28 19:13:50 +00:00
AC_ARG_ENABLE([alsa],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]))
2006-06-12 12:19:24 +00:00
2011-04-30 15:25:53 +02:00
AS_IF([test "x$enable_alsa" != "xno"],
2013-07-10 16:26:17 +02:00
[PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], HAVE_ALSA=1, HAVE_ALSA=0)],
2011-04-30 15:25:53 +02:00
HAVE_ALSA=0)
2011-04-30 15:25:52 +02:00
AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
2013-07-10 16:26:17 +02:00
[AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])])
AS_IF([test "x$HAVE_ALSA" = "x1"],
[
2013-09-17 19:13:44 +05:30
save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $ASOUNDLIB_CFLAGS"
2019-04-21 11:59:30 +02:00
AC_CHECK_HEADERS([alsa/use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
2013-09-17 19:13:44 +05:30
CPPFLAGS="$save_CPPFLAGS"
2013-07-10 16:26:17 +02:00
],
HAVE_ALSA_UCM=0)
2006-06-12 12:19:24 +00:00
2011-06-29 15:16:11 +02:00
AC_SUBST(HAVE_ALSA)
2004-09-12 23:29:54 +00:00
AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
2011-04-30 15:25:51 +02:00
AS_IF([test "x$HAVE_ALSA" = "x1"], AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]))
2013-07-10 16:26:17 +02:00
AS_IF([test "x$HAVE_ALSA_UCM" = "x1"], AC_DEFINE([HAVE_ALSA_UCM], 1, [Have ALSA UCM?]))
2004-07-16 00:27:02 +00:00
2011-12-08 16:06:50 +05:30
#### EsounD support (optional) ####
AC_ARG_ENABLE([esound],
AS_HELP_STRING([--disable-esound],[Disable optional EsounD support]))
AM_CONDITIONAL([HAVE_ESOUND], [test "x$enable_esound" != "xno"])
AS_IF([test "x$enable_esound" != "xno"], [HAVE_ESOUND=1])
2006-01-10 17:51:06 +00:00
#### Solaris audio support (optional) ####
2007-10-28 19:13:50 +00:00
AC_ARG_ENABLE([solaris],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]))
2006-06-12 12:19:24 +00:00
2011-04-30 15:25:53 +02:00
AS_IF([test "x$enable_solaris" != "xno"],
[AC_CHECK_HEADERS([sys/audio.h], HAVE_SOLARIS=1, HAVE_SOLARIS=0)],
HAVE_SOLARIS=0)
2011-04-30 15:25:52 +02:00
AS_IF([test "x$enable_solaris" = "xyes" && test "x$HAVE_SOLARIS" = "x0"],
[AC_MSG_ERROR([*** Solaris audio support not found])])
2006-06-12 12:19:24 +00:00
2006-01-10 17:51:06 +00:00
AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
2011-04-30 15:25:51 +02:00
AS_IF([test "x$HAVE_SOLARIS" = "x1"], AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?]))
2006-01-10 17:51:06 +00:00
2011-02-17 11:28:54 +01:00
#### WaveOut audio support (optional) ####
AC_ARG_ENABLE([waveout],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-waveout],[Disable optional WaveOut audio support]))
2011-02-17 11:28:54 +01:00
2011-04-30 15:25:53 +02:00
AS_IF([test "x$enable_waveout" != "xno"],
[AC_CHECK_HEADERS([mmsystem.h], HAVE_WAVEOUT=1, HAVE_WAVEOUT=0, [#include <windows.h>])],
HAVE_WAVEOUT=0)
2011-04-30 15:25:52 +02:00
AS_IF([test "x$enable_waveout" = "xyes" && test "x$HAVE_WAVEOUT" = "x0"],
[AC_MSG_ERROR([*** WaveOut audio support not found])])
2011-02-17 11:28:54 +01:00
2011-06-29 15:16:11 +02:00
AC_SUBST(HAVE_WAVEOUT)
2011-02-17 11:28:54 +01:00
AM_CONDITIONAL([HAVE_WAVEOUT], [test "x$HAVE_WAVEOUT" = x1])
2011-04-30 15:25:51 +02:00
AS_IF([test "x$HAVE_WAVEOUT" = "x1"], AC_DEFINE([HAVE_WAVEOUT], 1, [Have WaveOut audio?]))
2011-02-17 11:28:54 +01:00
2006-01-10 17:51:06 +00:00
#### GLib 2 support (optional) ####
2007-10-28 19:13:50 +00:00
AC_ARG_ENABLE([glib2],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]))
2006-06-12 12:19:24 +00:00
2011-04-30 15:25:53 +02:00
AS_IF([test "x$enable_glib2" != "xno"],
2020-07-23 19:36:11 -04:00
[PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.28.0 ], HAVE_GLIB20=1, HAVE_GLIB20=0)],
2011-04-30 15:25:53 +02:00
HAVE_GLIB20=0)
2011-04-30 15:25:52 +02:00
AS_IF([test "x$enable_glib2" = "xyes" && test "x$HAVE_GLIB20" = "x0"],
[AC_MSG_ERROR([*** GLib 2 support not found])])
2006-06-12 12:19:24 +00:00
2011-10-11 20:42:42 +01:00
AC_SUBST(HAVE_GLIB20)
2004-09-12 23:29:54 +00:00
AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
2011-04-30 15:25:51 +02:00
AS_IF([test "x$HAVE_GLIB20" = "x1"], AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?]))
2009-02-13 18:19:10 +01:00
2012-06-01 11:17:16 +02:00
#### GTK3 support (optional) ####
2009-02-13 18:19:10 +01:00
2012-06-01 11:17:16 +02:00
AC_ARG_ENABLE([gtk3],
AS_HELP_STRING([--disable-gtk3],[Disable optional Gtk+ 3 support]))
2009-02-13 18:19:10 +01:00
2012-06-01 11:17:16 +02:00
AS_IF([test "x$enable_gtk3" != "xno"],
[PKG_CHECK_MODULES(GTK30, [ gtk+-3.0 ], HAVE_GTK30=1, HAVE_GTK30=0)],
HAVE_GTK30=0)
2011-04-30 15:25:53 +02:00
2012-06-01 11:17:16 +02:00
AS_IF([test "x$enable_gtk3" = "xyes" && test "x$HAVE_GTK30" = "x0"],
[AC_MSG_ERROR([*** Gtk+ 3 support not found])])
2009-02-13 18:19:10 +01:00
2012-06-01 11:17:16 +02:00
AM_CONDITIONAL([HAVE_GTK30], [test "x$HAVE_GTK30" = x1])
AS_IF([test "x$HAVE_GTK30" = "x1"], AC_DEFINE([HAVE_GTK], 1, [Have GTK?]))
2009-02-13 18:19:10 +01:00
2021-02-09 10:15:50 +03:00
#### GSettings support (optional) ####
2018-04-17 09:07:42 +03:00
AC_ARG_ENABLE([gsettings],
AS_HELP_STRING([--disable-gsettings],[Disable optional GSettings support]))
2006-07-26 17:46:51 +00:00
2018-04-17 09:07:42 +03:00
AS_IF([test "x$enable_gsettings" != "xno"],
[PKG_CHECK_MODULES(GSETTINGS, [ gio-2.0 >= 2.26.0 ], [HAVE_GSETTINGS=1], [HAVE_GSETTINGS=0])],
HAVE_GSETTINGS=0)
AS_IF([test "x$enable_gsettings" = "xyes" && test "x$HAVE_GSETTINGS" = "x0"],
[AC_MSG_ERROR([*** GSettings support not found])])
AM_CONDITIONAL([HAVE_GSETTINGS], [test "x$HAVE_GSETTINGS" = "x1"])
2018-04-17 09:07:33 +03:00
AC_SUBST([HAVE_GSETTINGS])
module-gsettings: new module to store configuration using gsettings
GConf is deprecated, and distributions are removing it. paprefs depends
on GConf, so in order to avoid paprefs getting removed as well, paprefs
has to be changed to use something else than GConf. GSettings is the
easiest alternative to migrate to, although it has the same problems
that GConf had: no support for system mode or networking.
This patch takes the non-GConf specific code from module-gconf and puts
it in stdin-util.[ch], which is then reused by module-gsettings.
module-gsettings is designed to be very similar to module-gconf.
Migration is expected to happen as follows: Distributions update
PulseAudio and paprefs at the same time, or first PulseAudio and then
paprefs. paprefs depends on module-gsettings, and module-gsettings
conflicts with module-gconf. Therefore module-gconf gets automatically
removed during the paprefs update. After the update an old PulseAudio is
likely to be running with module-gconf loaded. If the user tries to use
paprefs during this period, whatever the user does in paprefs won't have
any effect until PulseAudio is restarted (probably by a reboot or
relogin). This is not ideal, but will have to do.
When module-gsettings is loaded, it runs gsettings-data-convert
(implemented in a later patch). That will copy the settings from GConf
to GSettings. If gsettings-data-convert is not available (it's part of
GConf, so it may have already been uninstalled), then any previous
paprefs settings are lost.
2016-07-25 21:58:48 +02:00
2018-04-17 09:07:37 +03:00
if test "x$HAVE_GSETTINGS" = "x1" ; then
module-gsettings: new module to store configuration using gsettings
GConf is deprecated, and distributions are removing it. paprefs depends
on GConf, so in order to avoid paprefs getting removed as well, paprefs
has to be changed to use something else than GConf. GSettings is the
easiest alternative to migrate to, although it has the same problems
that GConf had: no support for system mode or networking.
This patch takes the non-GConf specific code from module-gconf and puts
it in stdin-util.[ch], which is then reused by module-gsettings.
module-gsettings is designed to be very similar to module-gconf.
Migration is expected to happen as follows: Distributions update
PulseAudio and paprefs at the same time, or first PulseAudio and then
paprefs. paprefs depends on module-gsettings, and module-gsettings
conflicts with module-gconf. Therefore module-gconf gets automatically
removed during the paprefs update. After the update an old PulseAudio is
likely to be running with module-gconf loaded. If the user tries to use
paprefs during this period, whatever the user does in paprefs won't have
any effect until PulseAudio is restarted (probably by a reboot or
relogin). This is not ideal, but will have to do.
When module-gsettings is loaded, it runs gsettings-data-convert
(implemented in a later patch). That will copy the settings from GConf
to GSettings. If gsettings-data-convert is not available (it's part of
GConf, so it may have already been uninstalled), then any previous
paprefs settings are lost.
2016-07-25 21:58:48 +02:00
GLIB_GSETTINGS
fi
2006-07-13 15:51:49 +00:00
#### Avahi support (optional) ####
2007-10-28 19:13:50 +00:00
AC_ARG_ENABLE([avahi],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]))
2006-07-13 15:51:49 +00:00
2011-04-30 15:25:53 +02:00
AS_IF([test "x$enable_avahi" != "xno"],
[PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ], HAVE_AVAHI=1, HAVE_AVAHI=0)],
HAVE_AVAHI=0)
2011-04-30 15:25:52 +02:00
AS_IF([test "x$enable_avahi" = "xyes" && test "x$HAVE_AVAHI" = "x0"],
[AC_MSG_ERROR([*** Avahi support not found])])
2006-07-13 15:51:49 +00:00
2011-06-29 15:16:11 +02:00
AC_SUBST(HAVE_AVAHI)
2006-07-13 15:51:49 +00:00
AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
2011-06-11 17:22:58 +02:00
#### JACK (optional) ####
2006-04-17 00:11:04 +00:00
2007-10-28 19:13:50 +00:00
AC_ARG_ENABLE([jack],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-jack],[Disable optional JACK support]))
2006-06-12 12:19:24 +00:00
2011-04-30 15:25:53 +02:00
AS_IF([test "x$enable_jack" != "xno"],
2011-08-15 22:31:55 +05:30
[PKG_CHECK_MODULES(JACK, [ jack >= 0.117.0 ], HAVE_JACK=1, HAVE_JACK=0)],
2011-04-30 15:25:53 +02:00
HAVE_JACK=0)
2011-04-30 15:25:52 +02:00
AS_IF([test "x$enable_jack" = "xyes" && test "x$HAVE_JACK" = "x0"],
[AC_MSG_ERROR([*** JACK support not found])])
2006-06-12 12:19:24 +00:00
2006-04-17 00:11:04 +00:00
AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
2006-01-10 17:51:06 +00:00
#### Async DNS support (optional) ####
2007-10-28 19:13:50 +00:00
AC_ARG_ENABLE([asyncns],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]))
2006-06-12 12:19:24 +00:00
2011-04-30 15:25:53 +02:00
AS_IF([test "x$enable_asyncns" != "xno"],
[PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ], HAVE_LIBASYNCNS=1, HAVE_LIBASYNCNS=0)],
HAVE_LIBASYNCNS=0)
2011-04-30 15:25:52 +02:00
AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
[AC_MSG_ERROR([*** Async DNS support not found])])
2006-06-12 12:19:24 +00:00
2005-01-08 01:15:11 +00:00
AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
2011-04-30 15:25:51 +02:00
AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
2005-01-08 01:15:11 +00:00
2018-12-07 15:48:49 +08:00
#### Running from build tree (optional) ####
AC_ARG_ENABLE([running-from-build-tree],
AS_HELP_STRING([--disable-running-from-build-tree],[Disable running from build tree]))
AS_IF([test "x$enable_running_from_build_tree" != "xno"],
AC_DEFINE([HAVE_RUNNING_FROM_BUILD_TREE], 1, [Have running from build tree]))
AC_SUBST(HAVE_RUNNING_FROM_BUILD_TREE)
2006-01-10 17:51:06 +00:00
#### TCP wrappers (optional) ####
2004-11-07 20:48:46 +00:00
2007-10-28 19:13:50 +00:00
AC_ARG_ENABLE([tcpwrap],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]))
2006-06-12 12:19:24 +00:00
2011-04-30 15:25:53 +02:00
AS_IF([test "x$enable_tcpwrap" != "xno"],
[
ACX_LIBWRAP
AS_IF([test "x$LIBWRAP_LIBS" != "x"], HAVE_TCPWRAP=1, HAVE_TCPWRAP=0)
],
HAVE_TCPWRAP=0)
2011-04-30 15:25:52 +02:00
AS_IF([test "x$enable_tcpwrap" = "xyes" && test "x$HAVE_TCPWRAP" = "x0"],
[AC_MSG_ERROR([*** TCP wrappers support not found])])
2006-06-12 12:19:24 +00:00
2004-09-29 20:13:05 +00:00
AC_SUBST(LIBWRAP_LIBS)
2006-01-10 17:51:06 +00:00
#### LIRC support (optional) ####
2007-10-28 19:13:50 +00:00
AC_ARG_ENABLE([lirc],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]))
2006-06-12 12:19:24 +00:00
2011-06-08 22:25:48 +02:00
LIRC_CFLAGS=
LIRC_LIBS=
2011-04-30 15:25:53 +02:00
AS_IF([test "x$enable_lirc" != "xno"],
2011-06-08 22:25:48 +02:00
[
HAVE_LIRC=1
AC_CHECK_HEADER(lirc/lirc_client.h, [], [HAVE_LIRC=0])
AC_CHECK_LIB(lirc_client, lirc_init, [LIRC_LIBS=-llirc_client], [HAVE_LIRC=0])
],
2011-04-30 15:25:53 +02:00
HAVE_LIRC=0)
2011-04-30 15:25:52 +02:00
AS_IF([test "x$enable_lirc" = "xyes" && test "x$HAVE_LIRC" = "x0"],
[AC_MSG_ERROR([*** LIRC support not found])])
2006-06-12 12:19:24 +00:00
2005-01-08 21:36:53 +00:00
AC_SUBST(LIRC_CFLAGS)
AC_SUBST(LIRC_LIBS)
AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
2011-06-29 15:16:12 +02:00
#### D-Bus support (optional) ####
AC_ARG_ENABLE([dbus],
AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]))
AS_IF([test "x$enable_dbus" != "xno"],
2013-01-24 10:48:43 +02:00
[PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.4.12 ], HAVE_DBUS=1, HAVE_DBUS=0)],
2011-06-29 15:16:12 +02:00
HAVE_DBUS=0)
AS_IF([test "x$enable_dbus" = "xyes" && test "x$HAVE_DBUS" = "x0"],
2013-01-24 11:05:37 +02:00
[AC_MSG_ERROR([*** D-Bus not available or too old version])])
2011-06-29 15:16:12 +02:00
AC_SUBST(HAVE_DBUS)
AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
AS_IF([test "x$HAVE_DBUS" = "x1"], AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.]))
2012-05-15 14:10:34 +02:00
PA_MACHINE_ID="${sysconfdir}/machine-id"
2011-06-29 15:16:12 +02:00
AX_DEFINE_DIR(PA_MACHINE_ID, PA_MACHINE_ID, [D-Bus machine-id file])
2012-05-15 14:10:34 +02:00
PA_MACHINE_ID_FALLBACK="${localstatedir}/lib/dbus/machine-id"
2011-11-14 13:42:21 +05:30
AX_DEFINE_DIR(PA_MACHINE_ID_FALLBACK, PA_MACHINE_ID_FALLBACK,
[Fallback machine-id file])
2011-06-29 15:16:12 +02:00
2013-08-16 09:40:54 -03:00
#### BlueZ support (optional, dependent on D-Bus and SBC) ####
2007-11-11 23:18:19 +00:00
2013-08-16 09:40:54 -03:00
AC_ARG_ENABLE([bluez5],
AS_HELP_STRING([--disable-bluez5],[Disable optional BlueZ 5 support]))
2011-04-30 15:25:49 +02:00
2013-08-16 09:40:54 -03:00
## SBC ##
2018-03-26 17:15:50 +03:00
AS_IF([test "x$enable_bluez5" != "xno"],
2012-09-22 18:16:24 +03:00
[PKG_CHECK_MODULES(SBC, [ sbc >= 1.0 ], HAVE_SBC=1, HAVE_SBC=0)],
HAVE_SBC=0)
2013-08-16 09:40:54 -03:00
## BlueZ 5 ##
2014-11-23 15:23:38 +02:00
AS_IF([test "x$enable_bluez5" != "xno" && test "x$HAVE_DBUS" = "x1" && test "x$HAVE_SBC" = "x1"], HAVE_BLUEZ_5=1,
HAVE_BLUEZ_5=0)
2013-08-16 09:40:54 -03:00
AS_IF([test "x$enable_bluez5" = "xyes" && test "x$HAVE_BLUEZ_5" != "x1"],
[AC_MSG_ERROR([*** BLUEZ 5 support not found (requires sbc and D-Bus)])])
AC_SUBST(HAVE_BLUEZ_5)
AM_CONDITIONAL([HAVE_BLUEZ_5], [test "x$HAVE_BLUEZ_5" = x1])
2018-03-26 17:15:50 +03:00
AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], HAVE_BLUEZ=1, HAVE_BLUEZ=0)
2011-06-29 15:16:11 +02:00
AC_SUBST(HAVE_BLUEZ)
2007-11-11 23:18:19 +00:00
AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
2014-08-22 11:07:14 +03:00
## Bluetooth Headset profiles backend ##
2014-11-03 11:01:00 +01:00
AC_ARG_ENABLE([bluez5-ofono-headset],
AS_HELP_STRING([--disable-bluez5-ofono-headset],[Disable optional ofono headset backend support (Bluez 5)]))
2014-11-23 15:23:38 +02:00
AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_ofono_headset" != "xno"], HAVE_BLUEZ_5_OFONO_HEADSET=1,
HAVE_BLUEZ_5_OFONO_HEADSET=0)
2014-11-03 11:01:00 +01:00
AC_SUBST(HAVE_BLUEZ_5_OFONO_HEADSET)
AM_CONDITIONAL([HAVE_BLUEZ_5_OFONO_HEADSET], [test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = x1])
AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_OFONO_HEADSET], 1, [Bluez 5 ofono headset backend enabled]))
AC_ARG_ENABLE([bluez5-native-headset],
AS_HELP_STRING([--disable-bluez5-native-headset],[Disable optional native headset backend support (Bluez 5)]))
2014-11-23 15:23:39 +02:00
AS_IF([test "x$HAVE_BLUEZ_5" = "x1" && test "x$enable_bluez5_native_headset" != "xno"],
[PKG_CHECK_MODULES(BLUEZ, [ bluez >= 4.101 ], HAVE_BLUEZ_5_NATIVE_HEADSET=1, HAVE_BLUEZ_5_NATIVE_HEADSET=0)],
2014-11-23 15:23:38 +02:00
HAVE_BLUEZ_5_NATIVE_HEADSET=0)
2014-11-23 15:23:39 +02:00
AS_IF([test "x$enable_bluez5_native_headset" = "xyes" && test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x0"],
[AC_MSG_ERROR([*** BlueZ 5 native headset backend support not available (requires the libbluetooth headers)])])
2014-11-03 11:01:00 +01:00
AC_SUBST(HAVE_BLUEZ_5_NATIVE_HEADSET)
AM_CONDITIONAL([HAVE_BLUEZ_5_NATIVE_HEADSET], [test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = x1])
AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], AC_DEFINE([HAVE_BLUEZ_5_NATIVE_HEADSET], 1, [Bluez 5 native headset backend enabled]))
2014-08-22 11:07:14 +03:00
2011-06-29 15:16:12 +02:00
#### UDEV support (optional) ####
2007-10-28 19:13:50 +00:00
2011-06-29 15:16:12 +02:00
AC_ARG_ENABLE([udev],
AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]))
2011-04-30 15:25:53 +02:00
2011-06-29 15:16:12 +02:00
AS_IF([test "x$enable_udev" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
[PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], HAVE_UDEV=1, HAVE_UDEV=0)],
HAVE_UDEV=0)
2011-01-11 11:26:48 +00:00
2011-06-29 15:16:12 +02:00
AS_IF([test "x$enable_udev" = "xyes" && test "x$HAVE_UDEV" = "x0"],
[AC_MSG_ERROR([*** UDEV support not found])])
2011-06-25 16:36:07 +02:00
2011-06-29 15:16:12 +02:00
AC_SUBST(HAVE_UDEV)
AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
AS_IF([test "x$HAVE_UDEV" = "x1"], AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]))
2011-01-11 11:26:48 +00:00
2013-07-12 14:51:25 -03:00
#### HAL compat support (optional, dependent on UDEV) ####
2011-01-11 11:26:48 +00:00
AC_ARG_ENABLE([hal-compat],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]))
2011-06-29 15:16:12 +02:00
AS_IF([test "x$enable_hal_compat" != "xno"],
2012-05-15 16:06:42 +02:00
[AS_IF([test "x$HAVE_UDEV" = "x1"], HAVE_HAL_COMPAT=1, HAVE_HAL_COMPAT=0)],
2011-06-29 15:16:12 +02:00
HAVE_HAL_COMPAT=0)
2011-01-11 11:26:48 +00:00
AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
2011-06-29 15:16:12 +02:00
AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.]))
2011-01-11 11:26:48 +00:00
2011-06-11 17:22:58 +02:00
#### IPv6 connection support (optional) ####
2009-02-13 21:58:09 +01:00
AC_ARG_ENABLE([ipv6],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]))
2009-02-13 21:58:09 +01:00
2011-06-29 15:16:12 +02:00
AS_IF([test "x$enable_ipv6" != "xno"], [HAVE_IPV6=1], [HAVE_IPV6=0])
AS_IF([test "x$HAVE_IPV6" = "x1"], AC_DEFINE([HAVE_IPV6], 1, [Define this to enable IPv6 connection support]))
2009-02-13 21:58:09 +01:00
2008-08-03 22:46:21 +01:00
#### OpenSSL support (optional) ####
AC_ARG_ENABLE([openssl],
2011-04-30 15:25:49 +02:00
AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]))
2008-08-03 22:46:21 +01:00
2011-04-30 15:25:53 +02:00
AS_IF([test "x$enable_openssl" != "xno"],
[PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ], HAVE_OPENSSL=1, HAVE_OPENSSL=0)],
HAVE_OPENSSL=0)
2008-08-03 22:46:21 +01:00
2011-04-30 15:25:52 +02:00
AS_IF([test "x$enable_openssl" = "xyes" && test "x$HAVE_OPENSSL" = "x0"],
[AC_MSG_ERROR([*** OpenSSL support not found])])
2008-08-03 22:46:21 +01:00
AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
2011-04-30 15:25:51 +02:00
AS_IF([test "x$HAVE_OPENSSL" = "x1"], AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL]))
2008-08-03 22:46:21 +01:00
2009-10-07 19:30:11 +02:00
#### FFTW (optional) ####
2011-06-11 17:22:58 +02:00
2011-04-30 15:25:49 +02:00
AC_ARG_WITH([fftw],
AS_HELP_STRING([--without-fftw],[Omit FFTW-using modules (equalizer)]))
2009-10-07 19:30:11 +02:00
2011-04-30 15:25:53 +02:00
AS_IF([test "x$with_fftw" != "xno"],
[PKG_CHECK_MODULES(FFTW, [ fftw3f ], HAVE_FFTW=1, HAVE_FFTW=0)],
HAVE_FFTW=0)
2011-06-29 15:16:12 +02:00
AS_IF([test "x$with_fftw" = "xyes" && test "x$HAVE_FFTW" = "x0"],
[AC_MSG_ERROR([*** FFTW support not found])])
2009-10-07 19:30:11 +02:00
AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
2011-12-11 16:07:41 +01:00
#### speex (optional) ####
AC_ARG_WITH([speex],
AS_HELP_STRING([--without-speex],[Omit speex (resampling, AEC)]))
AS_IF([test "x$with_speex" != "xno"],
[PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ], HAVE_SPEEX=1, HAVE_SPEEX=0)],
HAVE_SPEEX=0)
AS_IF([test "x$with_speex" = "xyes" && test "x$HAVE_SPEEX" = "x0"],
[AC_MSG_ERROR([*** speex support not found])])
AM_CONDITIONAL([HAVE_SPEEX], [test "x$HAVE_SPEEX" = "x1"])
AS_IF([test "x$HAVE_SPEEX" = "x1"], AC_DEFINE([HAVE_SPEEX], 1, [Have speex]))
2015-01-14 22:22:03 +03:00
#### soxr (optional) ####
AC_ARG_WITH([soxr],
AS_HELP_STRING([--without-soxr],[Omit soxr (resampling)]))
AS_IF([test "x$with_soxr" != "xno"],
[PKG_CHECK_MODULES(LIBSOXR, [ soxr >= 0.1.1 ], HAVE_SOXR=1, HAVE_SOXR=0)],
HAVE_SOXR=0)
AS_IF([test "x$with_soxr" = "xyes" && test "x$HAVE_SOXR" = "x0"],
[AC_MSG_ERROR([*** soxr support not found])])
AM_CONDITIONAL([HAVE_SOXR], [test "x$HAVE_SOXR" = "x1"])
AS_IF([test "x$HAVE_SOXR" = "x1"], AC_DEFINE([HAVE_SOXR], 1, [Have soxr]))
2012-02-26 15:34:09 -08:00
2012-06-23 19:14:12 +08:00
#### gcov support (optional) #####
AC_ARG_ENABLE([gcov],
AS_HELP_STRING([--enable-gcov],[Enable optional gcov coverage analysis]))
GCOV_CFLAGS=
GCOV_LIBS=" -lgcov"
AS_IF([test "x$enable_gcov" = "xyes"],
[
HAVE_GCOV=1
GCOV_CFLAGS="$GCOV_CFLAGS -fprofile-arcs -ftest-coverage"
GCOV_LIBS="$GCOV_LIBS -fprofile-arcs"
],
HAVE_GCOV=0)
AC_SUBST(GCOV_CFLAGS)
AC_SUBST(GCOV_LIBS)
AM_CONDITIONAL([HAVE_GCOV], [test "x$HAVE_GCOV" = x1])
2011-06-11 17:22:58 +02:00
#### ORC (optional) ####
2011-03-25 16:16:56 +05:30
ORC_CHECK([0.4.11])
2010-09-13 18:41:30 +05:30
2014-10-17 13:51:25 +02:00
#### systemd support (optional) ####
2012-03-17 01:52:41 +01:00
2014-10-16 10:05:19 +01:00
AC_ARG_ENABLE([systemd-daemon],
AS_HELP_STRING([--disable-systemd-daemon],[Disable optional systemd daemon (socket activation) support]))
2014-10-17 13:32:03 +02:00
AC_ARG_ENABLE([systemd-login],
AS_HELP_STRING([--disable-systemd-login],[Disable optional systemd login support]))
2012-03-17 01:52:41 +01:00
2014-10-17 13:51:25 +02:00
AC_ARG_ENABLE([systemd-journal],
AS_HELP_STRING([--disable-systemd-journal],[Disable optional systemd journal support]))
# Newer systemd's combine their subcomponent libraries into one
# If it exists, we should use it for the further checks
2014-10-16 10:05:19 +01:00
AS_IF([test "x$enable_systemd_daemon" != "xno" || test "x$enable_systemd_login" != "xno" || test "x$enable_systemd_journal" != "xno"],
2014-10-17 13:51:25 +02:00
[PKG_CHECK_MODULES(SYSTEMD, [ libsystemd ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)],
HAVE_SYSTEMD=0)
AS_IF([test "x$HAVE_SYSTEMD" = "x1"],
[
2014-10-16 10:05:19 +01:00
HAVE_SYSTEMD_DAEMON=1
2014-10-17 13:51:25 +02:00
HAVE_SYSTEMD_LOGIN=1
HAVE_SYSTEMD_JOURNAL=1
])
2014-10-17 15:10:14 +02:00
AC_ARG_WITH([systemduserunitdir],
AS_HELP_STRING([--with-systemduserunitdir=DIR], [Directory for systemd user service files]),
[], [with_systemduserunitdir=$($PKG_CONFIG --variable=systemduserunitdir systemd)])
if test "x$with_systemduserunitdir" != xno; then
AC_SUBST([systemduserunitdir], [$with_systemduserunitdir])
fi
2014-10-16 10:05:19 +01:00
#### systemd daemon support (optional) ####
AS_IF([test "x$enable_systemd_daemon" != "xno"],
[AS_IF([test "x$HAVE_SYSTEMD_DAEMON" != "x1"], [PKG_CHECK_MODULES(SYSTEMDDAEMON, [ libsystemd-daemon ], HAVE_SYSTEMD_DAEMON=1, HAVE_SYSTEMD_DAEMON=0)])],
HAVE_SYSTEMD_DAEMON=0)
AS_IF([test "x$enable_systemd_daemon" = "xyes" && test "x$HAVE_SYSTEMD_DAEMON" = "x0"],
[AC_MSG_ERROR([*** Needed systemd daemon support not found])])
AC_SUBST(HAVE_SYSTEMD_DAEMON)
AM_CONDITIONAL([HAVE_SYSTEMD_DAEMON], [test "x$HAVE_SYSTEMD_DAEMON" = x1])
AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], AC_DEFINE([HAVE_SYSTEMD_DAEMON], 1, [Have SYSTEMDDAEMON?]))
2014-10-17 13:51:25 +02:00
#### systemd login support (optional) ####
2014-10-17 13:32:03 +02:00
AS_IF([test "x$enable_systemd_login" != "xno"],
2014-10-17 13:51:25 +02:00
[AS_IF([test "x$HAVE_SYSTEMD_LOGIN" != "x1"], [PKG_CHECK_MODULES(SYSTEMDLOGIN, [ libsystemd-login ], HAVE_SYSTEMD_LOGIN=1, HAVE_SYSTEMD_LOGIN=0)])],
2014-10-17 13:32:03 +02:00
HAVE_SYSTEMD_LOGIN=0)
2012-03-17 01:52:41 +01:00
2014-10-17 13:32:03 +02:00
AS_IF([test "x$enable_systemd_login" = "xyes" && test "x$HAVE_SYSTEMD_LOGIN" = "x0"],
[AC_MSG_ERROR([*** Needed systemd login support not found])])
2012-03-17 01:52:41 +01:00
2014-10-17 13:32:03 +02:00
AC_SUBST(HAVE_SYSTEMD_LOGIN)
AM_CONDITIONAL([HAVE_SYSTEMD_LOGIN], [test "x$HAVE_SYSTEMD_LOGIN" = x1])
AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], AC_DEFINE([HAVE_SYSTEMD_LOGIN], 1, [Have SYSTEMDLOGIN?]))
2012-03-17 01:52:41 +01:00
2014-10-17 13:32:03 +02:00
#### systemd journal support (optional) ####
2013-12-03 01:09:56 +01:00
AS_IF([test "x$enable_systemd_journal" != "xno"],
2014-10-17 13:51:25 +02:00
[AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" != "x1"], [PKG_CHECK_MODULES(SYSTEMDJOURNAL, [ libsystemd-journal ], HAVE_SYSTEMD_JOURNAL=1, HAVE_SYSTEMD_JOURNAL=0)])],
2013-12-03 01:09:56 +01:00
HAVE_SYSTEMD_JOURNAL=0)
AS_IF([test "x$enable_systemd_journal" = "xyes" && test "x$HAVE_SYSTEMD_JOURNAL" = "x0"],
[AC_MSG_ERROR([*** Needed systemd journal support not found])])
AC_SUBST(HAVE_SYSTEMD_JOURNAL)
AM_CONDITIONAL([HAVE_SYSTEMD_JOURNAL], [test "x$HAVE_SYSTEMD_JOURNAL" = x1])
2014-10-17 13:32:03 +02:00
AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], AC_DEFINE([HAVE_SYSTEMD_JOURNAL], 1, [Have SYSTEMDJOURNAL?]))
2013-12-03 01:09:56 +01:00
2016-05-12 19:26:55 +05:30
#### GStreamer-based RTP support (optional) ####
AC_ARG_ENABLE([gstreamer],
2020-11-23 19:12:27 +02:00
AS_HELP_STRING([--enable-gstreamer],[Enable optional GStreamer-based RTP support]))
2016-05-12 19:26:55 +05:30
2020-11-23 19:12:27 +02:00
AS_IF([test "x$enable_gstreamer" = "xyes"],
2020-10-22 10:06:40 -04:00
[PKG_CHECK_MODULES(GSTREAMER, [ gstreamer-1.0 >= 1.14 gstreamer-app-1.0 gstreamer-rtp-1.0 gio-2.0 ],
2020-02-20 14:19:28 +00:00
HAVE_GSTREAMER=1, HAVE_GSTREAMER=0)],
HAVE_GSTREAMER=0)
2016-05-12 19:26:55 +05:30
2020-02-20 14:19:28 +00:00
AS_IF([test "x$enable_gstreamer" = "xyes" && test "x$HAVE_GSTREAMER" = "x0"],
2016-05-12 19:26:55 +05:30
[AC_MSG_ERROR([*** GStreamer 1.0 support not found])])
2020-02-20 14:19:28 +00:00
AM_CONDITIONAL([HAVE_GSTREAMER], [test "x$HAVE_GSTREAMER" = x1])
AS_IF([test "x$HAVE_GSTREAMER" = "x1"], AC_DEFINE([HAVE_GSTREAMER], 1, [Have GStreamer?]))
2016-05-12 19:26:55 +05:30
2011-06-11 17:22:58 +02:00
#### Build and Install man pages ####
2011-04-30 15:25:49 +02:00
AC_ARG_ENABLE([manpages],
AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]))
2007-11-05 15:10:13 +00:00
2011-04-30 15:25:49 +02:00
AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" != "xno"])
2007-11-05 15:10:13 +00:00
2006-07-19 17:44:19 +00:00
#### PulseAudio system group & user #####
AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
if test -z "$with_system_user" ; then
PA_SYSTEM_USER=pulse
else
PA_SYSTEM_USER=$with_system_user
fi
AC_SUBST(PA_SYSTEM_USER)
AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
if test -z "$with_system_group" ; then
PA_SYSTEM_GROUP=pulse
else
PA_SYSTEM_GROUP=$with_system_group
fi
AC_SUBST(PA_SYSTEM_GROUP)
AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
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)]))
if test -z "$with_access_group" ; then
PA_ACCESS_GROUP=pulse-access
else
PA_ACCESS_GROUP=$with_access_group
fi
AC_SUBST(PA_ACCESS_GROUP)
AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
2011-04-30 15:25:49 +02:00
AC_ARG_ENABLE([per-user-esound-socket],
AS_HELP_STRING([--disable-per-user-esound-socket],[Use global esound socket directory /tmp/.esd/socket.]))
2007-12-06 19:30:16 +00:00
2011-04-30 15:25:49 +02:00
if test "x$enable_per_user_esound_socket" != "xno"; then
2011-04-30 15:25:50 +02:00
USE_PER_USER_ESOUND_SOCKET=1
AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
else
USE_PER_USER_ESOUND_SOCKET=0
2007-12-06 19:30:16 +00:00
fi
2006-07-19 17:44:19 +00:00
#### PulseAudio system runtime dir ####
2011-06-11 17:22:58 +02:00
2006-07-19 17:44:19 +00:00
PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
2011-06-25 16:36:07 +02:00
AX_DEFINE_DIR(PA_SYSTEM_RUNTIME_PATH, PA_SYSTEM_RUNTIME_PATH, [System runtime dir])
2008-05-21 22:42:57 +00:00
PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
2011-06-25 16:36:07 +02:00
AX_DEFINE_DIR(PA_SYSTEM_CONFIG_PATH, PA_SYSTEM_CONFIG_PATH, [System config dir])
2008-05-21 22:42:57 +00:00
PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
2011-06-25 16:36:07 +02:00
AX_DEFINE_DIR(PA_SYSTEM_STATE_PATH, PA_SYSTEM_STATE_PATH, [System state dir])
2006-07-19 17:44:19 +00:00
2011-06-29 15:16:08 +02:00
PA_BINARY=${bindir}/pulseaudio${EXEEXT}
AX_DEFINE_DIR(PA_BINARY, PA_BINARY, [Location of pulseaudio binary])
PACTL_BINARY=${bindir}/pactl${EXEEXT}
AX_DEFINE_DIR(PACTL_BINARY, PACTL_BINARY, [Location of pactl binary])
AC_SUBST(PA_SOEXT, [.so])
2013-09-24 19:45:57 -03:00
AC_DEFINE(PA_SOEXT, [".so"], [Shared object extension])
2011-06-29 15:16:08 +02:00
AC_SUBST(pulseconfdir, ["${sysconfdir}/pulse"])
AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR, pulseconfdir, [Location of configuration files])
2020-09-02 19:19:07 +05:30
AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR_UNQUOTED, pulseconfdir, [Location of configuration files])
2011-06-29 15:16:08 +02:00
2011-06-08 13:40:49 +02:00
#### Mac OSX specific stuff #####
AC_ARG_ENABLE(mac-universal,
AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries]),
enable_mac_universal=$enableval, enable_mac_universal="no")
AC_ARG_WITH(mac-version-min,
AS_HELP_STRING([--with-mac-version-min=<version>], [Defines the earliest version of MacOS X that the executables will run on.]),
mac_version_min=$withval, mac_version_min="10.5")
AC_ARG_WITH(mac-sysroot,
AS_HELP_STRING([--with-mac-sysroot=<path>], [SDK basedir to use as the logical root directory for headers and libraries.]),
2016-01-04 11:17:29 +05:30
mac_sysroot=$withval)
2011-06-08 13:40:49 +02:00
if test "x$os_is_darwin" = "x1" ; then
2016-01-04 11:17:29 +05:30
LDFLAGS="$LDFLAGS -mmacosx-version-min=$mac_version_min"
CFLAGS="$CFLAGS -mmacosx-version-min=$mac_version_min"
if test "x$mac_sysroot" != "x" ; then
LDFLAGS="$LDFLAGS -isysroot $mac_sysroot"
CFLAGS="$CFLAGS -isysroot $mac_sysroot"
fi
2011-06-08 13:40:49 +02:00
if test "x$enable_mac_universal" = "xyes" ; then
mac_arches="-arch i386 -arch x86_64"
LDFLAGS="$LDFLAGS $mac_arches"
CFLAGS="$CFLAGS $mac_arches"
fi
fi
2011-09-19 13:41:13 +05:30
AC_ARG_ENABLE([webrtc-aec],
AS_HELP_STRING([--enable-webrtc-aec], [Enable the optional WebRTC-based echo canceller]))
2016-07-06 16:04:27 +02:00
AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "$HAVE_CXX11" = "0"],
[AC_MSG_ERROR([*** webrtc-audio-processing needs C++11 support])])
2011-09-19 13:41:13 +05:30
AS_IF([test "x$enable_webrtc_aec" != "xno"],
2016-02-17 19:46:53 +05:30
[PKG_CHECK_MODULES(WEBRTC, [ webrtc-audio-processing >= 0.2 ], [HAVE_WEBRTC=1], [HAVE_WEBRTC=0])],
2011-09-19 13:41:13 +05:30
[HAVE_WEBRTC=0])
AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "x$HAVE_WEBRTC" = "x0"],
[AC_MSG_ERROR([*** webrtc-audio-processing library not found])])
AM_CONDITIONAL([HAVE_WEBRTC], [test "x$HAVE_WEBRTC" = "x1"])
2011-12-11 16:07:42 +01:00
AC_ARG_ENABLE([adrian-aec],
AS_HELP_STRING([--enable-adrian-aec], [Enable Adrian's optional echo canceller]))
AS_IF([test "x$enable_adrian_aec" != "xno"],
[HAVE_ADRIAN_EC=1])
AM_CONDITIONAL([HAVE_ADRIAN_EC], [test "x$HAVE_ADRIAN_EC" = "x1"])
2016-11-09 21:22:53 -08:00
#### Thread support ####
AX_TLS
AS_IF([test "$ac_cv_tls" = "__thread"],
AC_DEFINE([SUPPORT_TLS___THREAD], 1, [Define this if the compiler supports __thread for Thread-Local Storage]))
# Win32 build breaks with win32 pthread installed
AS_IF([test "x$os_is_win32" != "x1"],
[AX_PTHREAD])
AS_IF([test "x$ax_pthread_ok" = "xyes"],
AC_DEFINE([_POSIX_PTHREAD_SEMANTICS], 1, [Needed on Solaris]))
2011-06-08 13:40:49 +02:00
2006-01-10 17:51:06 +00:00
###################################
# Output #
###################################
2011-06-08 17:24:55 +02:00
AC_DEFINE_UNQUOTED(PA_CFLAGS, "$CFLAGS", [The CFLAGS used during compilation])
2011-06-25 16:36:06 +02:00
# Check whether to build tests by default (as compile-test) or not
AC_ARG_ENABLE([default-build-tests],
AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
2011-06-08 00:47:19 +01:00
AC_ARG_ENABLE([legacy-database-entry-format],
AS_HELP_STRING([--disable-legacy-database-entry-format], [Try to load legacy (< 1.0) database files (card, device and volume restore).]))
if test "x$enable_legacy_database_entry_format" != "xno" ; then
AC_DEFINE(ENABLE_LEGACY_DATABASE_ENTRY_FORMAT, [1], [Legacy database entry format])
fi
stream-restore: Forget pre-14.0 stream routing
Prior to commits f899d5f4669dcd536cc142cee99fe359dd8af3d6 and
f62a49b8cf109c011a9818d2358beb6834e6ec25, GNOME's sound settings
overwrote the routing for all entries in the stream-restore database
when selecting a device. Now we prevent that from happening (see the
aforementioned commits), but the old overwritten settings can still be in
the database after updating to PulseAudio 14.0, and they can cause
problems, as documented here:
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832
We can't distinguish between devices set by GNOME's sound settings
and devices set by the user, so this patch discards all old device
settings, even though that is going to cause PulseAudio to forget routing
settings for many users. This is less bad than keeping the incorrect
routing settings in the database, because it's difficult for users to
figure out how to fix the situation when e.g. speaker test tones go to
the internal speakers no matter what device is selected as the default,
whereas old manual configuration can be restored restored by doing the
manual configuration again. Also, it's probably more common to have at
some point changed the default device in GNOME's sound settings than it
is to have any manual per-stream routing settings.
This is disabled by default, because this causes data loss, but
distributions that use GNOME are recommended to enable this with
the --enable-stream-restore-clear-old-devices (Autotools) or
-Dstream-restore-clear-old-devices=true (Meson) build option.
Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832
2020-05-26 15:04:59 +03:00
AC_ARG_ENABLE([stream-restore-clear-old-devices],
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]))
if test "x$enable_stream_restore_clear_old_devices" == "xyes" ; then
AC_DEFINE(STREAM_RESTORE_CLEAR_OLD_DEVICES, [1], [module-stream-restore: Clear old devices])
fi
2011-04-30 15:25:49 +02:00
AC_ARG_ENABLE([static-bins],
AS_HELP_STRING([--enable-static-bins],[Statically link executables.]))
2011-06-11 17:22:58 +02:00
AM_CONDITIONAL([STATIC_BINS], [test "x$enable_static_bins" = "xyes"])
2006-01-10 17:51:06 +00:00
AC_ARG_WITH(
[preopen-mods],
2008-08-19 00:17:49 +02:00
AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
2006-01-10 17:51:06 +00:00
[PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
if test "x$PREOPEN_MODS" != "xall" ; then
tmpLIBS=""
for mod in $PREOPEN_MODS; do
tmpLIBS="$tmpLIBS module-$mod.la"
done
PREOPEN_MODS="$tmpLIBS"
AC_SUBST(PREOPEN_MODS)
2004-06-11 00:33:43 +00:00
fi
2006-05-16 17:54:33 +00:00
AC_ARG_WITH(
[module-dir],
2010-11-28 14:27:08 +00:00
AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]),
[modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"])
2006-05-16 17:54:33 +00:00
AC_SUBST(modlibexecdir)
2011-06-25 16:36:07 +02:00
AX_DEFINE_DIR(PA_DLSEARCHPATH, modlibexecdir, [Modules dir])
2006-05-16 17:54:33 +00:00
2020-08-02 17:43:03 +02:00
AC_ARG_WITH(
[alsa-data-dir],
AS_HELP_STRING([--with-alsa-data-dir],[Directory for ALSA card profiles (defaults to ${datadir}/pulseaudio/alsa-mixer)]),
[alsadatadir=$withval], [alsadatadir="${datadir}/pulseaudio/alsa-mixer"])
AC_SUBST(alsadatadir)
2009-12-06 12:31:25 +05:30
AC_ARG_WITH(
[udev-rules-dir],
AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
[udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
AC_SUBST(udevrulesdir)
2015-07-28 10:09:20 +05:30
AC_ARG_WITH([bash-completion-dir],
AS_HELP_STRING([--with-bash-completion-dir=DIR], [Directory for bash completion files]),
[bashcompletiondir=$withval], [bashcompletiondir=$($PKG_CONFIG --variable=completionsdir bash-completion)])
2015-09-27 16:48:18 +03:00
if test "x$bashcompletionsdir" = "x"; then
2015-07-28 10:09:20 +05:30
bashcompletiondir="${datadir}/bash-completion/completions"
fi
2015-01-25 13:38:43 +02:00
AC_SUBST(bashcompletiondir)
2014-08-12 12:41:55 +03:00
AC_ARG_WITH(
[zsh-completion-dir],
AS_HELP_STRING([--with-zsh-completion-dir], [Zsh completions directory (defaults to ${datadir}/zsh/site-functions)]),
[zshcompletiondir=$withval], [zshcompletiondir="${datadir}/zsh/site-functions"])
AC_SUBST(zshcompletiondir)
2011-04-30 15:25:49 +02:00
AC_ARG_ENABLE([force-preopen],
AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]))
if test "x$enable_force_preopen" = "xyes"; then
FORCE_PREOPEN=yes
else
FORCE_PREOPEN=no
fi
2008-11-10 19:11:40 +02:00
AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
2006-04-13 17:32:10 +00:00
2020-08-10 19:38:07 +03:00
# Substitute the variable with an empty string. This makes the output go to the
# directory where doxygen is run (which is the doxygen directory under the
# build directory). Substituting a variable with a constant value wouldn't
# otherwise make sense, but the substitution variable needs to exist, because
# we substitute a different value when using Meson.
AC_SUBST([DOXYGEN_OUTPUT_DIRECTORY], [])
2006-01-10 17:51:06 +00:00
AC_CONFIG_FILES([
Makefile
2006-02-16 19:19:58 +00:00
src/Makefile
2007-11-05 15:10:13 +00:00
man/Makefile
2006-06-19 21:53:48 +00:00
libpulse.pc
libpulse-simple.pc
2006-06-19 23:00:21 +00:00
libpulse-mainloop-glib.pc
2006-01-10 17:51:06 +00:00
doxygen/Makefile
doxygen/doxygen.conf
2006-06-19 21:53:48 +00:00
src/pulse/version.h
2008-08-06 18:54:13 +02:00
po/Makefile.in
2011-06-29 15:16:09 +02:00
man/pulseaudio.1.xml
man/pax11publish.1.xml
man/pacat.1.xml
man/pacmd.1.xml
man/pactl.1.xml
man/pasuspender.1.xml
man/padsp.1.xml
man/pulse-daemon.conf.5.xml
man/pulse-client.conf.5.xml
man/default.pa.5.xml
2012-04-05 11:41:18 +01:00
man/pulse-cli-syntax.5.xml
2011-07-02 21:17:43 +02:00
man/start-pulseaudio-x11.1.xml
2006-01-10 17:51:06 +00:00
])
2009-02-23 23:20:19 +02:00
2018-01-15 21:14:45 -03:00
AS_IF([test "x$HAVE_ESOUND" = "x1"],
[
AC_CONFIG_FILES([man/esdcompat.1.xml])
AC_CONFIG_FILES([src/esdcompat:src/daemon/esdcompat.in], [chmod +x src/esdcompat])
])
2011-06-29 15:16:09 +02:00
AC_CONFIG_FILES([src/start-pulseaudio-x11:src/daemon/start-pulseaudio-x11.in], [chmod +x src/start-pulseaudio-x11])
AC_CONFIG_FILES([src/client.conf:src/pulse/client.conf.in])
2011-06-29 15:16:10 +02:00
AC_CONFIG_FILES([src/daemon.conf:src/daemon/daemon.conf.in],
[m4 src/daemon.conf > src/daemon.conf.gen && mv src/daemon.conf.gen src/daemon.conf])
AC_CONFIG_FILES([src/default.pa:src/daemon/default.pa.in],
[m4 src/default.pa > src/default.pa.gen && mv src/default.pa.gen src/default.pa])
AC_CONFIG_FILES([src/system.pa:src/daemon/system.pa.in],
[m4 src/system.pa > src/system.pa.gen && mv src/system.pa.gen src/system.pa])
2014-11-12 10:53:15 +02:00
AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"],
2014-10-17 15:10:14 +02:00
[
AC_CONFIG_FILES([src/pulseaudio.service:src/daemon/systemd/user/pulseaudio.service.in])
2021-03-01 03:43:14 +02:00
AC_CONFIG_FILES([src/pulseaudio-x11.service:src/daemon/systemd/user/pulseaudio-x11.service.in])
2014-10-17 15:10:14 +02:00
])
2011-06-29 15:16:09 +02:00
2011-10-11 20:42:42 +01:00
# CMake related ProjectConfig files
PA_LIBDIR="$libdir"
AX_DEFINE_DIR(PA_LIBDIR, PA_LIBDIR, [PulseAudio library dir])
PA_INCDIR="$includedir"
AX_DEFINE_DIR(PA_INCDIR, PA_INCDIR, [PulseAudio include dir])
AC_CONFIG_FILES([PulseAudioConfig.cmake:PulseAudioConfig.cmake.in],
[m4 PulseAudioConfig.cmake > PulseAudioConfig.cmake.gen && mv PulseAudioConfig.cmake.gen PulseAudioConfig.cmake])
AC_CONFIG_FILES([PulseAudioConfigVersion.cmake])
2004-06-11 00:33:43 +00:00
AC_OUTPUT
2006-07-16 17:38:45 +00:00
# ==========================================================================
2009-05-14 01:24:26 +02:00
pulsecore: Introduce memfd support
Memfd is a simple memory sharing mechanism, added by the systemd/kdbus
developers, to share pages between processes in an anonymous, no global
registry needed, no mount-point required, relatively secure, manner.
This patch introduces the necessary building blocks for using memfd
shared memory transfers in PulseAudio.
Memfd support shall also help us in laying out the necessary (but not
yet sufficient) groundwork for application sandboxing, protecting PA
from its clients, and protecting clients data from each other.
We plan to exclusively use memfds, instead of POSIX SHM, on the way
forward.
Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com>
2016-03-13 01:04:18 +02:00
AS_IF([test "x$HAVE_MEMFD" = "x1"], ENABLE_MEMFD=yes, ENABLE_MEMFD=no)
2011-04-30 15:25:50 +02:00
AS_IF([test "x$HAVE_X11" = "x1"], ENABLE_X11=yes, ENABLE_X11=no)
AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], ENABLE_OSS_OUTPUT=yes, ENABLE_OSS_OUTPUT=no)
AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no)
AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no)
AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no)
AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no)
AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no)
AS_IF([test "x$HAVE_GLIB20" = "x1"], ENABLE_GLIB20=yes, ENABLE_GLIB20=no)
2012-06-01 11:17:16 +02:00
AS_IF([test "x$HAVE_GTK30" = "x1"], ENABLE_GTK30=yes, ENABLE_GTK30=no)
module-gsettings: new module to store configuration using gsettings
GConf is deprecated, and distributions are removing it. paprefs depends
on GConf, so in order to avoid paprefs getting removed as well, paprefs
has to be changed to use something else than GConf. GSettings is the
easiest alternative to migrate to, although it has the same problems
that GConf had: no support for system mode or networking.
This patch takes the non-GConf specific code from module-gconf and puts
it in stdin-util.[ch], which is then reused by module-gsettings.
module-gsettings is designed to be very similar to module-gconf.
Migration is expected to happen as follows: Distributions update
PulseAudio and paprefs at the same time, or first PulseAudio and then
paprefs. paprefs depends on module-gsettings, and module-gsettings
conflicts with module-gconf. Therefore module-gconf gets automatically
removed during the paprefs update. After the update an old PulseAudio is
likely to be running with module-gconf loaded. If the user tries to use
paprefs during this period, whatever the user does in paprefs won't have
any effect until PulseAudio is restarted (probably by a reboot or
relogin). This is not ideal, but will have to do.
When module-gsettings is loaded, it runs gsettings-data-convert
(implemented in a later patch). That will copy the settings from GConf
to GSettings. If gsettings-data-convert is not available (it's part of
GConf, so it may have already been uninstalled), then any previous
paprefs settings are lost.
2016-07-25 21:58:48 +02:00
AS_IF([test "x$HAVE_GSETTINGS" = "x1"], ENABLE_GSETTINGS=yes, ENABLE_GSETTINGS=no)
2011-04-30 15:25:50 +02:00
AS_IF([test "x$HAVE_AVAHI" = "x1"], ENABLE_AVAHI=yes, ENABLE_AVAHI=no)
AS_IF([test "x$HAVE_JACK" = "x1"], ENABLE_JACK=yes, ENABLE_JACK=no)
AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], ENABLE_LIBASYNCNS=yes, ENABLE_LIBASYNCNS=no)
AS_IF([test "x$HAVE_LIRC" = "x1"], ENABLE_LIRC=yes, ENABLE_LIRC=no)
AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
2014-10-16 10:05:19 +01:00
AS_IF([test "x$HAVE_SYSTEMD_DAEMON" = "x1"], ENABLE_SYSTEMD_DAEMON=yes, ENABLE_SYSTEMD_DAEMON=no)
2014-10-17 13:32:03 +02:00
AS_IF([test "x$HAVE_SYSTEMD_LOGIN" = "x1"], ENABLE_SYSTEMD_LOGIN=yes, ENABLE_SYSTEMD_LOGIN=no)
2013-12-03 01:09:56 +01:00
AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], ENABLE_SYSTEMD_JOURNAL=yes, ENABLE_SYSTEMD_JOURNAL=no)
2013-08-16 09:40:54 -03:00
AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], ENABLE_BLUEZ_5=yes, ENABLE_BLUEZ_5=no)
2014-11-03 11:01:00 +01:00
AS_IF([test "x$HAVE_BLUEZ_5_OFONO_HEADSET" = "x1"], ENABLE_BLUEZ_5_OFONO_HEADSET=yes, ENABLE_BLUEZ_5_OFONO_HEADSET=no)
AS_IF([test "x$HAVE_BLUEZ_5_NATIVE_HEADSET" = "x1"], ENABLE_BLUEZ_5_NATIVE_HEADSET=yes, ENABLE_BLUEZ_5_NATIVE_HEADSET=no)
2011-04-30 15:25:50 +02:00
AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
2014-11-11 15:39:59 +01:00
AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE="yes (DEPRECATED)", ENABLE_LIBSAMPLERATE=no)
2011-04-30 15:25:50 +02:00
AS_IF([test "x$HAVE_IPV6" = "x1"], ENABLE_IPV6=yes, ENABLE_IPV6=no)
AS_IF([test "x$HAVE_OPENSSL" = "x1"], ENABLE_OPENSSL=yes, ENABLE_OPENSSL=no)
AS_IF([test "x$HAVE_FFTW" = "x1"], ENABLE_FFTW=yes, ENABLE_FFTW=no)
AS_IF([test "x$HAVE_ORC" = "xyes"], ENABLE_ORC=yes, ENABLE_ORC=no)
2011-12-11 16:07:42 +01:00
AS_IF([test "x$HAVE_ADRIAN_EC" = "x1"], ENABLE_ADRIAN_EC=yes, ENABLE_ADRIAN_EC=no)
2011-12-11 16:07:41 +01:00
AS_IF([test "x$HAVE_SPEEX" = "x1"], ENABLE_SPEEX=yes, ENABLE_SPEEX=no)
2015-01-14 22:22:03 +03:00
AS_IF([test "x$HAVE_SOXR" = "x1"], ENABLE_SOXR=yes, ENABLE_SOXR=no)
2011-09-19 13:41:13 +05:30
AS_IF([test "x$HAVE_WEBRTC" = "x1"], ENABLE_WEBRTC=yes, ENABLE_WEBRTC=no)
2016-05-12 19:26:55 +05:30
AS_IF([test "x$HAVE_GSTREAMER" = "x1"], ENABLE_GSTREAMER=yes, ENABLE_GSTREAMER=no)
2011-04-30 15:25:50 +02:00
AS_IF([test "x$HAVE_TDB" = "x1"], ENABLE_TDB=yes, ENABLE_TDB=no)
AS_IF([test "x$HAVE_GDBM" = "x1"], ENABLE_GDBM=yes, ENABLE_GDBM=no)
AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no)
2011-12-08 16:06:50 +05:30
AS_IF([test "x$HAVE_ESOUND" = "x1"], ENABLE_ESOUND=yes, ENABLE_ESOUND=no)
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)
2012-06-23 19:14:12 +08:00
AS_IF([test "x$HAVE_GCOV" = "x1"], ENABLE_GCOV=yes, ENABLE_GCOV=no)
2012-08-13 15:34:05 +08:00
AS_IF([test "x$HAVE_LIBCHECK" = "x1"], ENABLE_TESTS=yes, ENABLE_TESTS=no)
2011-06-08 00:47:19 +01:00
AS_IF([test "x$enable_legacy_database_entry_format" != "xno"], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no)
stream-restore: Forget pre-14.0 stream routing
Prior to commits f899d5f4669dcd536cc142cee99fe359dd8af3d6 and
f62a49b8cf109c011a9818d2358beb6834e6ec25, GNOME's sound settings
overwrote the routing for all entries in the stream-restore database
when selecting a device. Now we prevent that from happening (see the
aforementioned commits), but the old overwritten settings can still be in
the database after updating to PulseAudio 14.0, and they can cause
problems, as documented here:
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832
We can't distinguish between devices set by GNOME's sound settings
and devices set by the user, so this patch discards all old device
settings, even though that is going to cause PulseAudio to forget routing
settings for many users. This is less bad than keeping the incorrect
routing settings in the database, because it's difficult for users to
figure out how to fix the situation when e.g. speaker test tones go to
the internal speakers no matter what device is selected as the default,
whereas old manual configuration can be restored restored by doing the
manual configuration again. Also, it's probably more common to have at
some point changed the default device in GNOME's sound settings than it
is to have any manual per-stream routing settings.
This is disabled by default, because this causes data loss, but
distributions that use GNOME are recommended to enable this with
the --enable-stream-restore-clear-old-devices (Autotools) or
-Dstream-restore-clear-old-devices=true (Meson) build option.
Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832
2020-05-26 15:04:59 +03:00
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)
2008-03-27 23:06:26 +00:00
2006-07-16 17:38:45 +00:00
echo "
---{ $PACKAGE_NAME $VERSION }---
2008-03-27 23:06:26 +00:00
prefix: ${prefix}
sysconfdir: ${sysconfdir}
localstatedir: ${localstatedir}
2011-06-25 16:36:07 +02:00
modlibexecdir: ${modlibexecdir}
2020-08-02 17:43:03 +02:00
alsadatadir: ${alsadatadir}
2008-03-27 23:06:26 +00:00
System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH}
2008-05-21 22:42:57 +00:00
System State Path: ${PA_SYSTEM_STATE_PATH}
System Config Path: ${PA_SYSTEM_CONFIG_PATH}
2014-08-12 12:41:55 +03:00
Zsh completions directory: ${zshcompletiondir}
2015-01-25 13:38:43 +02:00
Bash completions directory: ${bashcompletiondir}
2008-03-27 23:06:26 +00:00
Compiler: ${CC}
CFLAGS: ${CFLAGS}
2013-10-12 12:45:58 +03:00
CPPFLAGS: ${CPPFLAGS}
2011-02-17 11:28:54 +01:00
LIBS: ${LIBS}
2008-11-10 19:11:40 +02:00
pulsecore: Introduce memfd support
Memfd is a simple memory sharing mechanism, added by the systemd/kdbus
developers, to share pages between processes in an anonymous, no global
registry needed, no mount-point required, relatively secure, manner.
This patch introduces the necessary building blocks for using memfd
shared memory transfers in PulseAudio.
Memfd support shall also help us in laying out the necessary (but not
yet sufficient) groundwork for application sandboxing, protecting PA
from its clients, and protecting clients data from each other.
We plan to exclusively use memfds, instead of POSIX SHM, on the way
forward.
Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com>
2016-03-13 01:04:18 +02:00
Enable memfd shared memory: ${ENABLE_MEMFD}
2011-04-30 15:25:55 +02:00
Enable X11: ${ENABLE_X11}
2020-12-22 20:54:40 +03:00
Safe X11 I/O errors: ${HAVE_XSETIOERROREXITHANDLER}
2009-08-08 02:09:26 +02:00
Enable OSS Output: ${ENABLE_OSS_OUTPUT}
Enable OSS Wrapper: ${ENABLE_OSS_WRAPPER}
2011-12-08 16:06:50 +05:30
Enable EsounD: ${ENABLE_ESOUND}
2008-03-27 23:06:26 +00:00
Enable Alsa: ${ENABLE_ALSA}
2011-04-30 15:25:55 +02:00
Enable CoreAudio: ${ENABLE_COREAUDIO}
2008-03-27 23:06:26 +00:00
Enable Solaris: ${ENABLE_SOLARIS}
2011-02-17 11:28:54 +01:00
Enable WaveOut: ${ENABLE_WAVEOUT}
2008-03-27 23:06:26 +00:00
Enable GLib 2.0: ${ENABLE_GLIB20}
2012-06-01 11:17:16 +02:00
Enable Gtk+ 3.0: ${ENABLE_GTK30}
module-gsettings: new module to store configuration using gsettings
GConf is deprecated, and distributions are removing it. paprefs depends
on GConf, so in order to avoid paprefs getting removed as well, paprefs
has to be changed to use something else than GConf. GSettings is the
easiest alternative to migrate to, although it has the same problems
that GConf had: no support for system mode or networking.
This patch takes the non-GConf specific code from module-gconf and puts
it in stdin-util.[ch], which is then reused by module-gsettings.
module-gsettings is designed to be very similar to module-gconf.
Migration is expected to happen as follows: Distributions update
PulseAudio and paprefs at the same time, or first PulseAudio and then
paprefs. paprefs depends on module-gsettings, and module-gsettings
conflicts with module-gconf. Therefore module-gconf gets automatically
removed during the paprefs update. After the update an old PulseAudio is
likely to be running with module-gconf loaded. If the user tries to use
paprefs during this period, whatever the user does in paprefs won't have
any effect until PulseAudio is restarted (probably by a reboot or
relogin). This is not ideal, but will have to do.
When module-gsettings is loaded, it runs gsettings-data-convert
(implemented in a later patch). That will copy the settings from GConf
to GSettings. If gsettings-data-convert is not available (it's part of
GConf, so it may have already been uninstalled), then any previous
paprefs settings are lost.
2016-07-25 21:58:48 +02:00
Enable GSettings: ${ENABLE_GSETTINGS}
2008-03-27 23:06:26 +00:00
Enable Avahi: ${ENABLE_AVAHI}
Enable Jack: ${ENABLE_JACK}
Enable Async DNS: ${ENABLE_LIBASYNCNS}
Enable LIRC: ${ENABLE_LIRC}
2011-02-18 23:27:20 +01:00
Enable D-Bus: ${ENABLE_DBUS}
2013-08-16 09:40:54 -03:00
Enable BlueZ 5: ${ENABLE_BLUEZ_5}
2014-11-03 11:01:00 +01:00
Enable ofono headsets: ${ENABLE_BLUEZ_5_OFONO_HEADSET}
Enable native headsets: ${ENABLE_BLUEZ_5_NATIVE_HEADSET}
2009-03-01 20:34:07 +01:00
Enable udev: ${ENABLE_UDEV}
2011-01-11 11:26:48 +00:00
Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
2014-10-18 19:33:59 +02:00
Enable systemd
Daemon (Socket Activation): ${ENABLE_SYSTEMD_DAEMON}
Login (Session Tracking): ${ENABLE_SYSTEMD_LOGIN}
Journal (Logging): ${ENABLE_SYSTEMD_JOURNAL}
2008-03-27 23:06:26 +00:00
Enable TCP Wrappers: ${ENABLE_TCPWRAP}
Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
2009-02-13 21:58:09 +01:00
Enable IPv6: ${ENABLE_IPV6}
2008-08-03 22:46:21 +01:00
Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
2009-10-19 18:28:25 -07:00
Enable fftw: ${ENABLE_FFTW}
2010-09-13 18:41:30 +05:30
Enable orc: ${ENABLE_ORC}
2011-12-11 16:07:42 +01:00
Enable Adrian echo canceller: ${ENABLE_ADRIAN_EC}
Enable speex (resampler, AEC): ${ENABLE_SPEEX}
2015-01-14 22:22:03 +03:00
Enable soxr (resampler): ${ENABLE_SOXR}
2011-09-19 13:41:13 +05:30
Enable WebRTC echo canceller: ${ENABLE_WEBRTC}
2016-05-12 19:26:55 +05:30
Enable GStreamer-based RTP: ${ENABLE_GSTREAMER}
2012-06-23 19:14:12 +08:00
Enable gcov coverage: ${ENABLE_GCOV}
2012-08-13 15:34:05 +08:00
Enable unit tests: ${ENABLE_TESTS}
2011-04-30 15:25:55 +02:00
Database
tdb: ${ENABLE_TDB}
gdbm: ${ENABLE_GDBM}
simple database: ${ENABLE_SIMPLEDB}
2008-11-10 19:11:40 +02:00
2008-03-27 23:06:26 +00:00
System User: ${PA_SYSTEM_USER}
System Group: ${PA_SYSTEM_GROUP}
Access Group: ${PA_ACCESS_GROUP}
Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
2008-11-10 19:11:40 +02:00
Force preopen: ${FORCE_PREOPEN}
Preopened modules: ${PREOPEN_MODS}
2011-06-08 00:47:19 +01:00
Legacy Database Entry Support: ${ENABLE_LEGACY_DATABASE_ENTRY_FORMAT}
stream-restore: Forget pre-14.0 stream routing
Prior to commits f899d5f4669dcd536cc142cee99fe359dd8af3d6 and
f62a49b8cf109c011a9818d2358beb6834e6ec25, GNOME's sound settings
overwrote the routing for all entries in the stream-restore database
when selecting a device. Now we prevent that from happening (see the
aforementioned commits), but the old overwritten settings can still be in
the database after updating to PulseAudio 14.0, and they can cause
problems, as documented here:
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832
We can't distinguish between devices set by GNOME's sound settings
and devices set by the user, so this patch discards all old device
settings, even though that is going to cause PulseAudio to forget routing
settings for many users. This is less bad than keeping the incorrect
routing settings in the database, because it's difficult for users to
figure out how to fix the situation when e.g. speaker test tones go to
the internal speakers no matter what device is selected as the default,
whereas old manual configuration can be restored restored by doing the
manual configuration again. Also, it's probably more common to have at
some point changed the default device in GNOME's sound settings than it
is to have any manual per-stream routing settings.
This is disabled by default, because this causes data loss, but
distributions that use GNOME are recommended to enable this with
the --enable-stream-restore-clear-old-devices (Autotools) or
-Dstream-restore-clear-old-devices=true (Meson) build option.
Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832
2020-05-26 15:04:59 +03:00
module-stream-restore:
Clear old devices: ${ENABLE_STREAM_RESTORE_CLEAR_OLD_DEVICES}
2006-07-16 17:38:45 +00:00
"
2011-01-11 10:28:02 +00:00
2011-12-11 16:07:42 +01:00
if test "${ENABLE_SPEEX}" = "no" && test "${ENABLE_WEBRTC}" = "no" && test "${ENABLE_ADRIAN_EC}" = "no" ; then
AC_MSG_ERROR([At least one echo canceller implementation must be available.])
fi
2011-02-17 11:28:54 +01:00
if test "${ENABLE_DBUS}" = "no" && test "x$os_is_win32" != "x1" ; then
2011-01-11 10:28:02 +00:00
echo "
===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
2011-02-18 23:27:20 +01:00
You do not have D-Bus support enabled. It is strongly recommended
that you enable D-Bus support if your platform supports it.
Many parts of PulseAudio use D-Bus, from ConsoleKit interaction
2011-01-11 10:28:02 +00:00
to the Device Reservation Protocol to speak to JACK, Bluetooth
support and even a native control protocol for communicating and
2018-09-17 09:49:13 -07:00
controlling the PulseAudio daemon itself.
2011-01-11 10:28:02 +00:00
===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
"
fi
2011-02-17 11:28:54 +01:00
if test "${ENABLE_UDEV}" = "no" && test "x$os_is_win32" != "x1" ; then
2011-01-11 10:28:02 +00:00
echo "
===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
You do not have udev support enabled. It is strongly recommended
2011-02-18 23:27:20 +01:00
that you enable udev support if your platform supports it as it is
2011-01-11 10:28:02 +00:00
the primary method used to detect hardware audio devices (on Linux)
and is thus a critical part of PulseAudio on that platform.
===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
"
fi
2011-12-11 16:07:41 +01:00
if test "${ENABLE_SPEEX}" = "no" && test "x$os_is_win32" != "x1" ; then
echo "
===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
You do not have speex support enabled. It is strongly recommended
that you enable speex support if your platform supports it as it is
the primary method used for audio resampling and is thus a critical
part of PulseAudio on that platform.
===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
"
fi