AC_PREREQ(2.63)
-AC_INIT([pulseaudio], m4_esyscmd([./git-version-gen .tarball-version]),
- [mzchyfrnhqvb (at) 0pointer (dot) net])
+AC_INIT([pulseaudio],[m4_esyscmd(./git-version-gen .tarball-version)],[mzchyfrnhqvb (at) 0pointer (dot) net])
AC_CONFIG_SRCDIR([src/daemon/main.c])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h])
AC_SUBST(PACKAGE_URL, [http://pulseaudio.org/])
AC_SUBST(PA_API_VERSION, 12)
-AC_SUBST(PA_PROTOCOL_VERSION, 16)
+AC_SUBST(PA_PROTOCOL_VERSION, 17)
# The stable ABI for client applications, for the version info x:y:z
# always will hold y=z
-AC_SUBST(LIBPULSE_VERSION_INFO, [9:0:9])
+AC_SUBST(LIBPULSE_VERSION_INFO, [12:2:12])
# A simplified, synchronous, ABI-stable interface for client
# applications, for the version info x:y:z always will hold y=z
AC_CANONICAL_HOST
AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
-if type -p stow > /dev/null && test -d /usr/local/stow ; then
+AC_CHECK_PROG([STOW], [stow], [yes], [no])
+
+AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
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}"
-fi
-
-#### Platform hacks ####
-
-case $host in
- *-*-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)
- ;;
- *-*-darwin* )
- AC_DEFINE([_POSIX_C_SOURCE], [200112L], [Needed to get clock_gettime on Mac OS X])
- AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
- ;;
-esac
+])
AM_SILENT_RULES([yes])
AC_PROG_GCC_TRADITIONAL
AC_USE_SYSTEM_EXTENSIONS
+#### Platform hacks ####
+
+case $host in
+ *-*-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)
+ ;;
+ *-*-darwin* )
+ AC_DEFINE([_POSIX_C_SOURCE], [200112L], [Needed to get clock_gettime on Mac OS X])
+ AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
+ ;;
+esac
+
# M4
AC_CHECK_PROGS([M4], gm4 m4, no)
esac
],)
-AC_ARG_ENABLE([netbsd-atomic-ops],
- AS_HELP_STRING([--enable-netbsd-atomic-ops],[Use the native NetBSD atomic_ops implementation]),
- [
- case "${enableval}" in
- yes) atomic_netbsd_helpers=yes ;;
- no) atomic_netbsd_helpers=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for --enable-netbsd-atomic-ops) ;;
- esac
- ],
- [atomic_netbsd_helpers=auto])
-
AC_MSG_CHECKING([target operating system])
case $host in
*-*-linux*)
AC_MSG_RESULT([linux])
pulse_target_os=linux
;;
- *-*-netbsd*)
- AC_MSG_RESULT([netbsd])
- pulse_target_os=netbsd
+ *-*-darwin*)
+ AC_MSG_RESULT([darwin])
+ pulse_target_os=darwin
;;
*)
AC_MSG_RESULT([unknown])
else
# HW specific atomic ops stuff
AC_MSG_CHECKING([architecture for native atomic operations])
- case $host_cpu in
+ case $host in
arm*)
AC_MSG_RESULT([arm])
AC_MSG_CHECKING([whether we can use Linux kernel helpers])
])
fi
;;
+ *-netbsdelf5*)
+ AC_MSG_RESULT([yes])
+ need_libatomic_ops=no
+ ;;
+ *-freebsd*)
+ AC_MSG_RESULT([yes])
+ need_libatomic_ops=no
+ ;;
*)
- if test "x$pulse_target_os" = "xnetbsd" && test "x$atomic_netbsd_helpers" = "xyes"; then
- AC_MSG_RESULT([yes])
- AC_DEFINE_UNQUOTED(NETBSD_ATOMIC_OPS, 1, [netbsd implementation])
- need_libatomic_ops=no
- else
- AC_MSG_RESULT([unknown])
- fi
+ AC_MSG_RESULT([unknown])
;;
esac
fi
#### Determine build environment ####
os_is_win32=0
+os_is_darwin=0
case "$host_os" in
mingw*)
AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
os_is_win32=1
;;
+ darwin*)
+ AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.])
+ os_is_darwin=1
+ ;;
esac
AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
+AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
###################################
# Basic environment checks #
AC_SEARCH_LIBS([shm_open], [rt])
AC_SEARCH_LIBS([inet_ntop], [nsl])
AC_SEARCH_LIBS([timer_create], [rt])
+AC_SEARCH_LIBS([pthread_setaffinity_np], [pthread])
# BSD
AC_SEARCH_LIBS([connect], [socket])
# build, disabling its ability to make dlls.
AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
+# Darwin/OS X
+if test "x$os_is_darwin" = "x1" ; then
+ AC_MSG_CHECKING([looking for Apple CoreService Framework])
+ # How do I check a framework "library" - AC_CHECK_LIB prob. won't work??, just assign LIBS & hope
+ AC_CHECK_HEADER([/Developer/Headers/FlatCarbon/CoreServices.h],
+ [LIBS="$LIBS -framework CoreServices"],
+ [AC_MSG_ERROR([CoreServices.h header file not found]) ])
+
+ AC_MSG_RESULT([ok])
+ AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
+ HAVE_BONJOUR=1
+fi
+
+AC_SUBST(HAVE_BONJOUR)
+AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
+
#### Check for functions ####
# ISO
# Non-standard
-AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l])
+AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4])
AC_FUNC_ALLOCA
AC_SUBST(HAVE_X11)
AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
+#### Capabilities (optional) ####
+
+CAP_LIBS=''
+
+AC_ARG_WITH(
+ [caps],
+ AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
+
+if test "x${with_caps}" != "xno"; then
+ AC_SEARCH_LIBS([cap_init], [cap], [], [
+ if test "x${with_caps}" = "xyes" ; then
+ AC_MSG_ERROR([*** POSIX caps libraries not found])
+ fi])
+ AC_CHECK_HEADERS([sys/capability.h], [], [
+ if test "x${with_caps}" = "xyes" ; then
+ AC_MSG_ERROR([*** POSIX caps headers not found])
+ fi])
+fi
+
#### Valgrind (optional) ####
AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
HAVE_TDB=0
HAVE_GDBM=0
+HAVE_SIMPLEDB=0
AC_ARG_WITH(
[database],
- AS_HELP_STRING([--with-database=auto|tdb|gdbm],[Choose database backend.]),[],[with_database=auto])
+ AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then
PKG_CHECK_MODULES(TDB, [ tdb ],
fi
fi
-if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1; then
+if test "x${with_database}" = "xauto" -o "x${with_database}" = "xsimple" ; then
+ HAVE_SIMPLEDB=1
+ with_database=simple
+fi
+
+if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1 -a "x${HAVE_SIMPLEDB}" != x1; then
AC_MSG_ERROR([*** missing database backend])
fi
AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
fi
+if test "x${HAVE_SIMPLEDB}" = x1 ; then
+ AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?])
+fi
+
AC_SUBST(TDB_CFLAGS)
AC_SUBST(TDB_LIBS)
AC_SUBST(HAVE_TDB)
AC_SUBST(HAVE_GDBM)
AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
+AC_SUBST(HAVE_SIMPLEDB)
+AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
+
#### OSS support (optional) ####
AC_ARG_ENABLE([oss-output],
AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS" = x1 && test "x${oss_output}" != "xno"])
AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS" = x1 && test "x${oss_wrapper}" != "xno"])
+#### CoreAudio support (optional) ####
+
+AC_ARG_ENABLE([coreaudio-output],
+ AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]),
+ [
+ case "${enableval}" in
+ yes) coreaudio_enabled=yes ;;
+ no) coreaudio_enabled=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --disable-coreaudio-output) ;;
+ esac
+ ],
+ [coreaudio_enabled=auto])
+
+if test "x${coreaudio_enabled}" != xno ; then
+ AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1)
+else
+ HAVE_COREAUDIO=0
+fi
+
+AC_SUBST(HAVE_COREAUDIO)
+AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = x1 && test "x${coreaudio_enabled}" != "xno"])
+
#### ALSA support (optional) ####
AC_ARG_ENABLE([alsa],
[gconf=auto])
if test "x${gconf}" != xno ; then
- PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 ],
+ PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ],
HAVE_GCONF=1,
[
HAVE_GCONF=0
AC_SUBST(HAVE_AVAHI)
AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
-### LIBOIL ####
-
-PKG_CHECK_MODULES(LIBOIL, [ liboil-0.3 >= 0.3.0 ])
-AC_SUBST(LIBOIL_CFLAGS)
-AC_SUBST(LIBOIL_LIBS)
-
### JACK (optional) ####
AC_ARG_ENABLE([jack],
AC_SUBST(HAVE_UDEV)
AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
-AC_DEFINE([LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE], 1, [I know the API is subject to change.])
+#### HAL compat support (optional) ####
+
+AC_ARG_ENABLE([hal-compat],
+ AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]),
+ [
+ case "${enableval}" in
+ yes) halcompat=yes ;;
+ no) halcompat=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal-compat) ;;
+ esac
+ ],
+ [halcompat=auto])
+if test "x${halcompat}" != xno -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1" ; then
+ HAVE_HAL_COMPAT=1
+ AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
+else
+ HAVE_HAL_COMPAT=0
+fi
+
+AC_SUBST(HAVE_HAL_COMPAT)
+AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
#### BlueZ support (optional) ####
HAVE_DBUS=1
saved_LIBS="$LIBS"
LIBS="$LIBS $DBUS_LIBS"
+ CFLAGS="$CFLAGS $DBUS_CFLAGS"
AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
LIBS="$saved_LIBS"
AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
AC_SUBST(HAVE_OPENSSL)
AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
+#### FFTW (optional) ####
+AC_ARG_WITH(
+ [fftw],
+ AS_HELP_STRING([--without-fftw], [Omit FFTW-using modules (equalizer)]))
+
+if test "x${with_fftw}" != "xno"; then
+ PKG_CHECK_MODULES([FFTW], [fftw3f], [HAVE_FFTW=1], [HAVE_FFTW=0])
+fi
+AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
+
### Build and Install man pages ###
AC_ARG_ENABLE(manpages,
AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
AC_SUBST(modlibexecdir)
+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)
+
AC_ARG_ENABLE(
[force-preopen],
AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
fi
fi
+ENABLE_COREAUDIO=no
+if test "x$HAVE_COREAUDIO" = "x1" ; then
+ ENABLE_COREAUDIO=yes
+fi
+
ENABLE_ALSA=no
if test "x$HAVE_ALSA" = "x1" ; then
ENABLE_ALSA=yes
ENABLE_LIRC=yes
fi
+ENABLE_DBUS=no
+if test "x$HAVE_DBUS" = "x1" ; then
+ ENABLE_DBUS=yes
+fi
+
ENABLE_HAL=no
if test "x$HAVE_HAL" = "x1" ; then
ENABLE_HAL=yes
ENABLE_UDEV=yes
fi
+ENABLE_HAL_COMPAT=no
+if test "x$HAVE_HAL_COMPAT" = "x1" ; then
+ ENABLE_HAL_COMPAT=yes
+fi
+
ENABLE_TCPWRAP=no
if test "x${LIBWRAP_LIBS}" != x ; then
ENABLE_TCPWRAP=yes
ENABLE_TDB=yes
fi
+ENABLE_SIMPLEDB=no
+if test "x${HAVE_SIMPLEDB}" = "x1" ; then
+ ENABLE_SIMPLEDB=yes
+fi
+
+ENABLE_FFTW=no
+if test "x${HAVE_FFTW}" = "x1" ; then
+ ENABLE_FFTW=yes
+fi
+
ENABLE_OPENSSL=no
if test "x${HAVE_OPENSSL}" = "x1" ; then
ENABLE_OPENSSL=yes
Have X11: ${ENABLE_X11}
Enable OSS Output: ${ENABLE_OSS_OUTPUT}
Enable OSS Wrapper: ${ENABLE_OSS_WRAPPER}
+ Enable CoreAudio: ${ENABLE_COREAUDIO}
Enable Alsa: ${ENABLE_ALSA}
Enable Solaris: ${ENABLE_SOLARIS}
Enable GLib 2.0: ${ENABLE_GLIB20}
Enable Jack: ${ENABLE_JACK}
Enable Async DNS: ${ENABLE_LIBASYNCNS}
Enable LIRC: ${ENABLE_LIRC}
+ Enable DBUS: ${ENABLE_DBUS}
Enable HAL: ${ENABLE_HAL}
Enable udev: ${ENABLE_UDEV}
+ Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
Enable BlueZ: ${ENABLE_BLUEZ}
Enable TCP Wrappers: ${ENABLE_TCPWRAP}
Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
Enable tdb: ${ENABLE_TDB}
Enable gdbm: ${ENABLE_GDBM}
+ Enable simple database: ${ENABLE_SIMPLEDB}
+ Enable fftw: ${ENABLE_FFTW}
System User: ${PA_SYSTEM_USER}
System Group: ${PA_SYSTEM_GROUP}