X-Git-Url: https://code.delx.au/pulseaudio/blobdiff_plain/c6b18880bec79d5731619c148a8931ee18972bc3..c1892f29de7962a95806f78719d0ff9af87b49a3:/configure.ac diff --git a/configure.ac b/configure.ac index f0f71dfa..ddf7a1cc 100644 --- a/configure.ac +++ b/configure.ac @@ -20,30 +20,35 @@ # along with PulseAudio; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -AC_PREREQ(2.60) +AC_PREREQ(2.63) -m4_define(PA_MAJOR, [0]) -m4_define(PA_MINOR, [9]) -m4_define(PA_MICRO, [12]) +m4_define(pa_major, [0]) +m4_define(pa_minor, [9]) +m4_define(pa_micro, [15]) -AC_INIT([pulseaudio], PA_MAJOR.PA_MINOR.PA_MICRO,[mzchyfrnhqvb (at) 0pointer (dot) net]) +AC_INIT([pulseaudio],[pa_major.pa_minor.pa_micro-test2],[mzchyfrnhqvb (at) 0pointer (dot) net]) AC_CONFIG_SRCDIR([src/daemon/main.c]) +AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS([config.h]) -AM_INIT_AUTOMAKE([foreign 1.10 -Wall]) +AM_INIT_AUTOMAKE([foreign 1.10 -Wall -Wno-portability]) -AC_SUBST(PA_MAJORMINOR, "PA_MAJOR.PA_MINOR") +AC_SUBST(PA_MAJOR, pa_major) +AC_SUBST(PA_MINOR, pa_minor) +AC_SUBST(PA_MICRO, pa_micro) +AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor) +AC_SUBST(PA_MAJORMINORMICRO, pa_major.pa_minor.pa_micro) AC_SUBST(PACKAGE_URL, [http://pulseaudio.org/]) AC_SUBST(PA_API_VERSION, 12) -AC_SUBST(PA_PROTOCOL_VERSION, 14) +AC_SUBST(PA_PROTOCOL_VERSION, 15) # The stable ABI for client applications, for the version info x:y:z # always will hold y=z -AC_SUBST(LIBPULSE_VERSION_INFO, [5:0:5]) +AC_SUBST(LIBPULSE_VERSION_INFO, [8:0:8]) # A simplified, synchronous, ABI-stable interface for client # applications, for the version info x:y:z always will hold y=z -AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:1:0]) +AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:2:0]) # The ABI-stable network browsing interface for client applications, # for the version info x:y:z always will hold y=z @@ -51,12 +56,7 @@ AC_SUBST(LIBPULSE_BROWSE_VERSION_INFO, [1:1:1]) # The ABI-stable GLib adapter for client applications, for the version # info x:y:z always will hold y=z -AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:3:0]) - -# An internally used, ABI-unstable library that contains the -# PulseAudio core, SONAMEs are bumped on every release, version info -# suffix will always be 0:0 -AC_SUBST(LIBPULSECORE_VERSION_INFO, [6:0:0]) +AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:4:0]) AC_CANONICAL_HOST AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.]) @@ -85,9 +85,10 @@ AC_PROG_MKDIR_P # CC AC_PROG_CC +AC_PROG_CC_C99 AM_PROG_CC_C_O AC_PROG_GCC_TRADITIONAL -AC_GNU_SOURCE +AC_USE_SYSTEM_EXTENSIONS # M4 @@ -96,37 +97,22 @@ if test "x$M4" = xno ; then AC_MSG_ERROR([m4 missing]) fi -# GCC flags - -test_gcc_flag() { - AC_LANG_CONFTEST([int main(int argc, char*argv[]) {}]) - $CC -c conftest.c $CFLAGS -o conftest.o > /dev/null 2> /dev/null - ret=$? - rm -f conftest.o - return $ret -} - -# If using GCC specify some additional parameters -if test "x$GCC" = "xyes" ; then - - # We use gnu99 instead of c99 because many have interpreted the standard - # in a way that int64_t isn't defined on non-64 bit platforms. - DESIRED_FLAGS="-std=gnu99 -Wall -W -Wextra -pedantic -pipe -Wformat -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wpointer-arith -Wcast-align -Wwrite-strings -Winline -Wno-unused-parameter -ffast-math" - - for flag in $DESIRED_FLAGS ; do - AC_MSG_CHECKING([whether $CC accepts $flag]) - if test_gcc_flag $flag ; then - CFLAGS="$CFLAGS $flag" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - fi - done -fi +dnl Compiler flags +DESIRED_FLAGS="-Wall -W -Wextra -pipe -Wno-long-long -Winline -Wvla -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=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option" + +for flag in $DESIRED_FLAGS ; do + CC_CHECK_CFLAGS([$flag], [CFLAGS="$CFLAGS $flag"]) +done + +dnl 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"]) # Native atomic operation support AC_ARG_ENABLE([atomic-arm-linux-helpers], - AC_HELP_STRING([--disable-atomic-arm-linux-helpers], [use inline asm or libatomic_ops instead]), + AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]), [ case "${enableval}" in yes) atomic_arm_linux_helpers=yes ;; @@ -137,7 +123,7 @@ AC_ARG_ENABLE([atomic-arm-linux-helpers], [atomic_arm_linux_helpers=auto]) AC_ARG_ENABLE([atomic-arm-memory-barrier], - AC_HELP_STRING([--enable-atomic-arm-memory-barrier], [only really needed in SMP arm systems]), + AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]), [ case "${enableval}" in yes) AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers]) ;; @@ -146,137 +132,151 @@ AC_ARG_ENABLE([atomic-arm-memory-barrier], 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 - ;; - *) - AC_MSG_RESULT([unknown]) - pulse_target_os=unknown - ;; + *-*-linux*) + AC_MSG_RESULT([linux]) + pulse_target_os=linux + ;; + *-*-netbsd*) + AC_MSG_RESULT([netbsd]) + pulse_target_os=netbsd + ;; + *) + AC_MSG_RESULT([unknown]) + pulse_target_os=unknown + ;; esac # If everything else fails use libatomic_ops need_libatomic_ops=yes -AC_MSG_CHECKING([whether $CC knows __sync_bool_compare_and_swap()]) -AC_LANG_CONFTEST([int main() { int a = 4; __sync_bool_compare_and_swap(&a, 4, 5); }]) -$CC conftest.c $CFLAGS -o conftest > /dev/null 2> /dev/null -ret=$? -rm -f conftest.o conftest -if test $ret -eq 0 ; then +AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()], + pulseaudio_cv_sync_bool_compare_and_swap, + [AC_LINK_IFELSE( + AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]), + [pulseaudio_cv_sync_bool_compare_and_swap=yes], + [pulseaudio_cv_sync_bool_compare_and_swap=no]) + ]) + +if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.]) - AC_MSG_RESULT([yes]) need_libatomic_ops=no else - AC_MSG_RESULT([no]) # HW specific atomic ops stuff AC_MSG_CHECKING([architecture for native atomic operations]) case $host_cpu in arm*) - 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). - if test "x$pulse_target_os" = "xlinux" && test "x$atomic_arm_linux_helpers" != "xno"; then - AC_MSG_RESULT([yes]) - AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation]) - need_libatomic_ops=no - else - AC_MSG_RESULT([no]) - AC_MSG_CHECKING([compiler support for arm inline asm atomic operations]) - AC_LANG_CONFTEST([[int main() - { - 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); - }]]) - $CC conftest.c $CFLAGS -o conftest > /dev/null 2>&1 - ret=$? - rm -f conftest.o conftest - if test $ret -eq 0 ; then - AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARMv6 instructions.]) - AC_MSG_RESULT([yes]) - need_libatomic_ops=no - else - AC_MSG_RESULT([no]) - fi - fi - ;; + 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). + if test "x$pulse_target_os" = "xlinux" && test "x$atomic_arm_linux_helpers" != "xno"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation]) + need_libatomic_ops=no + else + AC_MSG_RESULT([no]) + AC_CACHE_CHECK([compiler support for arm inline asm atomic operations], + pulseaudio_cv_support_arm_atomic_ops, + [AC_COMPILE_IFELSE( + AC_LANG_PROGRAM([], + [[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); + ]]), + [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 ARMv6 instructions.]) + need_libatomic_ops=no + ]) + fi + ;; *) - AC_MSG_RESULT([unknown]) + 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 ;; esac fi -AC_MSG_CHECKING([whether $CC knows __thread]) -AC_LANG_CONFTEST([static __thread int a = 6; int main() { a = 5; }]) -$CC conftest.c $CFLAGS -o conftest > /dev/null 2> /dev/null -ret=$? -rm -f conftest.o conftest -if test $ret -eq 0 ; then - AC_DEFINE([HAVE_TLS_BUILTIN], 1, [Have __thread().]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi +CC_CHECK_TLS + +AC_CACHE_CHECK([whether $CC knows _Bool], + pulseaudio_cv__Bool, + [AC_COMPILE_IFELSE( + AC_LANG_PROGRAM([], [[_Bool b;]]), + [pulseaudio_cv__Bool=yes], + [pulseaudio_cv__Bool=no]) + ]) -AC_MSG_CHECKING([whether $CC knows _Bool]) -AC_LANG_CONFTEST([int main() { _Bool b; }]) -$CC conftest.c $CFLAGS -o conftest > /dev/null 2> /dev/null -ret=$? -rm -f conftest.o conftest -if test $ret -eq 0 ; then +AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [ AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi + ]) #### libtool stuff #### - -AC_LTDL_ENABLE_INSTALL -AC_LIBLTDL_INSTALLABLE -AC_LIBTOOL_DLOPEN -AC_LIBTOOL_WIN32_DLL -AC_PROG_LIBTOOL -AC_SUBST(LTDLINCL) -AC_SUBST(LIBLTDL) -AC_CONFIG_SUBDIRS(libltdl) - -old_LIBS=$LIBS -LIBS="$LIBS $LIBLTDL" -AC_CHECK_FUNCS([lt_dlmutex_register]) -LIBS=$old_LIBS -AC_CHECK_TYPES([struct lt_user_dlloader, lt_dladvise], , , [#include ]) - -if test "x$enable_ltdl_install" = "xno" && test "x$ac_cv_lib_ltdl_lt_dlinit" = "xno" ; then - AC_MSG_ERROR([[ - - *** Cannot find the libltdl development files. - *** Maybe you need to install the libltdl-dev package. - ]]) -fi +LT_PREREQ(2.2) +LT_INIT([dlopen win32-dll disable-static]) + +dnl Unfortunately, even up to libtool 2.2.6a there is no way to know +dnl exactly which version of libltdl is present in the system, so we +dnl just assume that it's a working version as long as we have the +dnl library and the header files. +dnl +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 +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], + [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])], + [LIBLTDL=]) + +AS_IF([test "x$LIBLTDL" = "x"], + [AC_MSG_ERROR([Unable to find libltdl.])]) +AC_SUBST([LIBLTDL]) #### Determine build environment #### os_is_win32=0 case "$host_os" in - mingw*) + mingw*) AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.]) os_is_win32=1 - ;; - esac + ;; + esac AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1") @@ -293,16 +293,16 @@ AC_HEADER_STDC AC_CHECK_HEADERS([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \ netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \ sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \ - syslog.h sys/dl.h dlfcn.h linux/sockios.h]) + sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h]) AC_CHECK_HEADERS([netinet/ip.h], [], [], - [#include - #if HAVE_NETINET_IN_H - # include - #endif - #if HAVE_NETINET_IN_SYSTM_H - # include - #endif - ]) + [#include + #if HAVE_NETINET_IN_H + # include + #endif + #if HAVE_NETINET_IN_SYSTM_H + # include + #endif + ]) AC_CHECK_HEADERS([regex.h], [HAVE_REGEX=1], [HAVE_REGEX=0]) AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0]) @@ -322,10 +322,15 @@ AC_CHECK_HEADERS([sys/filio.h]) # Windows AC_CHECK_HEADERS([windows.h winsock2.h ws2tcpip.h]) +# NetBSD +AC_CHECK_HEADERS([sys/atomic.h]) + # Other AC_CHECK_HEADERS([sys/ioctl.h]) AC_CHECK_HEADERS([byteswap.h]) AC_CHECK_HEADERS([sys/syscall.h]) +AC_CHECK_HEADERS([sys/eventfd.h]) +AC_CHECK_HEADERS([execinfo.h]) #### Typdefs, structures, etc. #### @@ -336,7 +341,7 @@ AC_TYPE_SIZE_T AC_CHECK_TYPES(ssize_t, , [AC_DEFINE([ssize_t], [signed long], [Define ssize_t if it is not done by the standard libs.])]) AC_TYPE_OFF_T -AC_TYPE_SIGNAL + AC_TYPE_UID_T AC_CHECK_DECLS(environ) @@ -388,10 +393,10 @@ AC_CHECK_FUNCS([lrintf strtof]) AC_FUNC_FORK AC_FUNC_GETGROUPS AC_FUNC_SELECT_ARGTYPES -AC_CHECK_FUNCS([chmod chown clock_gettime getaddrinfo getgrgid_r \ - getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \ +AC_CHECK_FUNCS([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \ + getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \ pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \ - sigaction sleep sysconf]) + sigaction sleep sysconf pthread_setaffinity_np]) AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0]) AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1") @@ -414,20 +419,29 @@ AC_CHECK_FUNCS([setresuid setresgid setreuid setregid seteuid setegid ppoll strs AC_FUNC_ALLOCA -AC_MSG_CHECKING([for PTHREAD_PRIO_INHERIT]) -AC_LANG_CONFTEST([AC_LANG_SOURCE([[ -#include -int main() { int i = PTHREAD_PRIO_INHERIT; }]])]) -$PTHREAD_CC conftest.c $PTHREAD_CFLAGS $CFLAGS $PTHREAD_LIBS -o conftest > /dev/null 2> /dev/null -ret=$? -rm -f conftest.o conftest - -if test $ret -eq 0 ; then +AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], + pulseaudio_cv_PTHREAD_PRIO_INHERIT, + [save_CC=$CC; CC=$PTHREAD_CC + save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS + save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS + AC_LINK_IFELSE( + AC_LANG_PROGRAM( + [[ + #include + ]], + [[int i = PTHREAD_PRIO_INHERIT;]]), + [pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes], + [pulseaudio_cv_PTHREAD_PRIO_INHERIT=no]) + CC=$save_CC + CFLAGS=$save_CFLAGS + LIBS=$save_LIBS + ]) + +AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [ AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi + ]) + +AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation]) #### Large File-Support (LFS) #### @@ -440,8 +454,6 @@ AC_CHECK_FUNCS([open64]) AM_ICONV -AM_GNU_GETTEXT([external]) - IT_PROG_INTLTOOL([0.35.0]) GETTEXT_PACKAGE=pulseaudio AC_SUBST([GETTEXT_PACKAGE]) @@ -455,21 +467,44 @@ AC_SUBST(pulselocaledir) # External libraries # ################################### +#### pkg-config #### + +PKG_PROG_PKG_CONFIG + #### X11 (optional) #### -HAVE_X11=0 +AC_ARG_ENABLE([x11], + AS_HELP_STRING([--disable-x11],[Disable optional X11 support]), + [ + case "${enableval}" in + yes) x11=yes ;; + no) x11=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;; + esac + ], + [x11=auto]) + +if test "x${x11}" != xno ; then + PKG_CHECK_MODULES(X11, [ x11 ice sm xtst ], + HAVE_X11=1, + [ + HAVE_X11=0 + if test "x$x11" = xyes ; then + AC_MSG_ERROR([*** X11 not found]) + fi + ]) +else + HAVE_X11=0 +fi -# The macro tests the host, not the build target -if test "x$os_is_win32" != "x1" ; then - AC_PATH_XTRA - test "x$no_x" != "xyes" && HAVE_X11=1 +if test "x${HAVE_X11}" = x1 ; then + AC_DEFINE([HAVE_X11], 1, [Have X11?]) fi +AC_SUBST(X11_CFLAGS) +AC_SUBST(X11_LIBS) AC_SUBST(HAVE_X11) -AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "x1") -if test "x$HAVE_X11" = "x1" ; then - AC_DEFINE([HAVE_X11], 1, [Have X11]) -fi +AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1]) #### Capabilities (optional) #### @@ -477,7 +512,7 @@ CAP_LIBS='' AC_ARG_WITH( [caps], - AC_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.])) + AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.])) if test "x${with_caps}" != "xno"; then AC_SEARCH_LIBS([cap_init], [cap], [], [ @@ -490,17 +525,9 @@ if test "x${with_caps}" != "xno"; then fi]) fi -#### pkg-config #### - -# Check for pkg-config manually first, as if its not installed the -# PKG_PROG_PKG_CONFIG macro won't be defined. -AC_CHECK_PROG(have_pkg_config, pkg-config, yes, no) +#### Valgrind (optional) #### -if test x"$have_pkg_config" = "xno"; then - AC_MSG_ERROR(pkg-config is required to install this program) -fi - -PKG_PROG_PKG_CONFIG +AC_CHECK_HEADERS([valgrind/memcheck.h]) #### Sound file #### @@ -532,7 +559,7 @@ fi #### Libsamplerate support (optional) #### AC_ARG_ENABLE([samplerate], - AC_HELP_STRING([--disable-samplerate], [Disable optional libsamplerate support]), + AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]), [ case "${enableval}" in yes) samplerate=yes ;; @@ -567,7 +594,7 @@ AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1]) #### OSS support (optional) #### AC_ARG_ENABLE([oss], - AC_HELP_STRING([--disable-oss], [Disable optional OSS support]), + AS_HELP_STRING([--disable-oss],[Disable optional OSS support]), [ case "${enableval}" in yes) oss=yes ;; @@ -600,7 +627,7 @@ AM_CONDITIONAL([HAVE_OSS], [test "x$HAVE_OSS" = x1]) #### ALSA support (optional) #### AC_ARG_ENABLE([alsa], - AC_HELP_STRING([--disable-alsa], [Disable optional ALSA support]), + AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]), [ case "${enableval}" in yes) alsa=yes ;; @@ -611,7 +638,7 @@ AC_ARG_ENABLE([alsa], [alsa=auto]) if test "x${alsa}" != xno ; then - PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.17 ], + PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], [ HAVE_ALSA=1 AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]) @@ -619,7 +646,7 @@ if test "x${alsa}" != xno ; then [ HAVE_ALSA=0 if test "x$alsa" = xyes ; then - AC_MSG_ERROR([*** Needed alsa >= 1.0.17 support not found]) + AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found]) fi ]) else @@ -634,7 +661,7 @@ AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1]) #### Solaris audio support (optional) #### AC_ARG_ENABLE([solaris], - AC_HELP_STRING([--disable-solaris], [Disable optional Solaris audio support]), + AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]), [ case "${enableval}" in yes) solaris=yes ;; @@ -666,7 +693,7 @@ AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1]) #### GLib 2 support (optional) #### AC_ARG_ENABLE([glib2], - AC_HELP_STRING([--disable-glib2], [Disable optional GLib 2 support]), + AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]), [ case "${enableval}" in yes) glib2=yes ;; @@ -694,10 +721,49 @@ AC_SUBST(GLIB20_LIBS) AC_SUBST(HAVE_GLIB20) AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1]) +if test "x$HAVE_GLIB20" = x1 ; then + AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?]) +fi + +#### GTK2 support (optional) #### + +AC_ARG_ENABLE([gtk2], + AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]), + [ + case "${enableval}" in + yes) gtk2=yes ;; + no) gtk2=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;; + esac + ], + [gtk2=auto]) + +if test "x${gtk2}" != xno ; then + PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ], + HAVE_GTK20=1, + [ + HAVE_GTK20=0 + if test "x$gtk2" = xyes ; then + AC_MSG_ERROR([*** Gtk+ 2 support not found]) + fi + ]) +else + HAVE_GTK20=0 +fi + +AC_SUBST(GTK20_CFLAGS) +AC_SUBST(GTK20_LIBS) +AC_SUBST(HAVE_GTK20) +AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1]) + +if test "x$HAVE_GTK20" = x1 ; then + AC_DEFINE([HAVE_GTK], 1, [Have GTK?]) +fi + #### GConf support (optional) #### AC_ARG_ENABLE([gconf], - AC_HELP_STRING([--disable-gconf], [Disable optional GConf support]), + AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]), [ case "${enableval}" in yes) gconf=yes ;; @@ -728,7 +794,7 @@ AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1]) #### Avahi support (optional) #### AC_ARG_ENABLE([avahi], - AC_HELP_STRING([--disable-avahi], [Disable optional Avahi support]), + AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]), [ case "${enableval}" in yes) avahi=yes ;; @@ -765,7 +831,7 @@ AC_SUBST(LIBOIL_LIBS) ### JACK (optional) #### AC_ARG_ENABLE([jack], - AC_HELP_STRING([--disable-jack], [Disable optional JACK support]), + AS_HELP_STRING([--disable-jack],[Disable optional JACK support]), [ case "${enableval}" in yes) jack=yes ;; @@ -796,7 +862,7 @@ AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1]) #### Async DNS support (optional) #### AC_ARG_ENABLE([asyncns], - AC_HELP_STRING([--disable-asyncns], [Disable optional Async DNS support]), + AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]), [ case "${enableval}" in yes) asyncns=yes ;; @@ -831,7 +897,7 @@ fi #### TCP wrappers (optional) #### AC_ARG_ENABLE([tcpwrap], - AC_HELP_STRING([--disable-tcpwrap], [Disable optional TCP wrappers support]), + AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]), [ case "${enableval}" in yes) tcpwrap=yes ;; @@ -855,7 +921,7 @@ AC_SUBST(LIBWRAP_LIBS) #### LIRC support (optional) #### AC_ARG_ENABLE([lirc], - AC_HELP_STRING([--disable-lirc], [Disable optional LIRC support]), + AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]), [ case "${enableval}" in yes) lirc=yes ;; @@ -881,7 +947,7 @@ AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1]) #### HAL support (optional) #### AC_ARG_ENABLE([hal], - AC_HELP_STRING([--disable-hal], [Disable optional HAL support]), + AS_HELP_STRING([--disable-hal],[Disable optional HAL support]), [ case "${enableval}" in yes) hal=yes ;; @@ -891,8 +957,11 @@ AC_ARG_ENABLE([hal], ], [hal=auto]) if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then - PKG_CHECK_MODULES(HAL, [ hal >= 0.5.7 ], - HAVE_HAL=1, + PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ], + [ + HAVE_HAL=1 + AC_DEFINE([HAVE_HAL], 1, [Have HAL.]) + ], [ HAVE_HAL=0 if test "x$hal" = xyes ; then @@ -911,7 +980,7 @@ AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1]) #### BlueZ support (optional) #### AC_ARG_ENABLE([bluez], - AC_HELP_STRING([--disable-bluez], [Disable optional BlueZ support]), + AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]), [ case "${enableval}" in yes) bluez=yes ;; @@ -941,7 +1010,7 @@ AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1]) #### D-Bus support (optional) #### AC_ARG_ENABLE([dbus], - AC_HELP_STRING([--disable-dbus], [Disable optional D-Bus support]), + AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]), [ case "${enableval}" in yes) dbus=yes ;; @@ -984,7 +1053,7 @@ AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1]) #### PolicyKit support (optional) #### AC_ARG_ENABLE([polkit], - AC_HELP_STRING([--disable-polkit], [Disable optional PolicyKit support]), + AS_HELP_STRING([--disable-polkit],[Disable optional PolicyKit support]), [ case "${enableval}" in yes) polkit=yes ;; @@ -1018,6 +1087,62 @@ AC_SUBST(POLKIT_LIBS) AC_SUBST(HAVE_POLKIT) AM_CONDITIONAL([HAVE_POLKIT], [test "x$HAVE_POLKIT" = x1]) + +### IPv6 connection support (optional) ### + +AC_ARG_ENABLE([ipv6], + AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]), + [ + case "${enableval}" in + yes) ipv6=yes ;; + no) ipv6=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;; + esac + ], + [ipv6=auto]) + +if test "x${ipv6}" != xno ; then + AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support]) + HAVE_IPV6=1 +else + HAVE_IPV6=0 +fi + +#### OpenSSL support (optional) #### + +AC_ARG_ENABLE([openssl], + AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]), + [ + case "${enableval}" in + yes) openssl=yes ;; + no) openssl=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;; + esac + ], + [openssl=auto]) + +if test "x${openssl}" != xno ; then + + PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ], + [ + HAVE_OPENSSL=1 + AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL]) + ], + [ + HAVE_OPENSSL=0 + if test "x$openssl" = xyes ; then + AC_MSG_ERROR([*** OpenSSL support not found]) + fi + ]) +else + HAVE_OPENSSL=0 +fi + +AC_SUBST(OPENSSL_CFLAGS) +AC_SUBST(OPENSSL_LIBS) +AC_SUBST(HAVE_OPENSSL) +AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1]) + ### Build and Install man pages ### AC_ARG_ENABLE(manpages, AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]), @@ -1097,13 +1222,13 @@ AC_SUBST(PA_SYSTEM_STATE_PATH) AC_ARG_ENABLE( [static-bins], - AC_HELP_STRING([--enable-static-bins],[Statically link executables.]), + AS_HELP_STRING([--enable-static-bins],[Statically link executables.]), [STATIC_BINS=1], [STATIC_BINS=0]) AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"]) AC_ARG_WITH( [preopen-mods], - AC_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]), + AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]), [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"]) AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"]) if test "x$PREOPEN_MODS" != "xall" ; then @@ -1117,16 +1242,16 @@ fi AC_ARG_WITH( [module-dir], - AC_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/"]) + AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules/]), + [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules/"]) AC_SUBST(modlibexecdir) AC_ARG_ENABLE( [force-preopen], - AC_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]), - [FORCE_PREOPEN=1], [FORCE_PREOPEN=0]) -AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "x1"]) + AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]), + [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no]) +AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"]) AC_CONFIG_FILES([ Makefile @@ -1164,6 +1289,11 @@ if test "x$HAVE_SOLARIS" = "x1" ; then ENABLE_SOLARIS=yes fi +ENABLE_GTK20=no +if test "x$HAVE_GTK20" = "x1" ; then + ENABLE_GTK20=yes +fi + ENABLE_GLIB20=no if test "x$HAVE_GLIB20" = "x1" ; then ENABLE_GLIB20=yes @@ -1219,6 +1349,16 @@ if test "x${HAVE_POLKIT}" = "x1" ; then ENABLE_POLKIT=yes fi +ENABLE_OPENSSL=no +if test "x${HAVE_OPENSSL}" = "x1" ; then + ENABLE_OPENSSL=yes +fi + +ENABLE_IPV6=no +if test "x${HAVE_IPV6}" = "x1" ; then + ENABLE_IPV6=yes +fi + ENABLE_PER_USER_ESOUND_SOCKET=no if test "x$per_user_esound_socket" = "x1" ; then ENABLE_PER_USER_ESOUND_SOCKET=yes @@ -1235,11 +1375,13 @@ echo " System Config Path: ${PA_SYSTEM_CONFIG_PATH} Compiler: ${CC} CFLAGS: ${CFLAGS} + Have X11: ${ENABLE_X11} Enable OSS: ${ENABLE_OSS} Enable Alsa: ${ENABLE_ALSA} Enable Solaris: ${ENABLE_SOLARIS} Enable GLib 2.0: ${ENABLE_GLIB20} + Enable Gtk+ 2.0: ${ENABLE_GTK20} Enable GConf: ${ENABLE_GCONF} Enable Avahi: ${ENABLE_AVAHI} Enable Jack: ${ENABLE_JACK} @@ -1250,9 +1392,14 @@ echo " Enable TCP Wrappers: ${ENABLE_TCPWRAP} Enable libsamplerate: ${ENABLE_LIBSAMPLERATE} Enable PolicyKit: ${ENABLE_POLKIT} + Enable IPv6: ${ENABLE_IPV6} + Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL} + System User: ${PA_SYSTEM_USER} System Group: ${PA_SYSTEM_GROUP} Realtime Group: ${PA_REALTIME_GROUP} Access Group: ${PA_ACCESS_GROUP} Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET} + Force preopen: ${FORCE_PREOPEN} + Preopened modules: ${PREOPEN_MODS} "