2 # Process this file with autoconf to produce a configure script.
4 # This file is part of PulseAudio.
6 # Copyright 2004-2008 Lennart Poettering
7 # Copyright 2006-2007 Pierre Ossman <ossman@cendio.se> for Cendio AB
9 # PulseAudio is free software; you can redistribute it and/or modify it
10 # under the terms of the GNU Lesser General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
14 # PulseAudio is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 # General Public License for more details.
19 # You should have received a copy of the GNU Lesser General Public License
20 # along with PulseAudio; if not, write to the Free Software Foundation,
21 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
25 AC_INIT([pulseaudio], m4_esyscmd([./git-version-gen .tarball-version]),
26 [mzchyfrnhqvb (at) 0pointer (dot) net])
27 AC_CONFIG_SRCDIR([src/daemon/main.c])
28 AC_CONFIG_MACRO_DIR([m4])
29 AC_CONFIG_HEADERS([config.h])
30 AM_INIT_AUTOMAKE([foreign 1.10 -Wall -Wno-portability])
32 m4_define(pa_major, `echo $VERSION | cut -d. -f 1`)
33 m4_define(pa_minor, `echo $VERSION | cut -d. -f 2`)
34 m4_define(pa_micro, `echo $VERSION | cut -d. -f 3`)
36 AC_SUBST(PA_MAJOR, pa_major)
37 AC_SUBST(PA_MINOR, pa_minor)
38 AC_SUBST(PA_MICRO, pa_micro)
39 AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)
40 AC_SUBST(PA_MAJORMINORMICRO, pa_major.pa_minor.pa_micro)
41 AC_SUBST(PACKAGE_URL, [http://pulseaudio.org/])
43 AC_SUBST(PA_API_VERSION, 12)
44 AC_SUBST(PA_PROTOCOL_VERSION, 15)
46 # The stable ABI for client applications, for the version info x:y:z
47 # always will hold y=z
48 AC_SUBST(LIBPULSE_VERSION_INFO, [8:0:8])
50 # A simplified, synchronous, ABI-stable interface for client
51 # applications, for the version info x:y:z always will hold y=z
52 AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:2:0])
54 # The ABI-stable network browsing interface for client applications,
55 # for the version info x:y:z always will hold y=z
56 AC_SUBST(LIBPULSE_BROWSE_VERSION_INFO, [1:1:1])
58 # The ABI-stable GLib adapter for client applications, for the version
59 # info x:y:z always will hold y=z
60 AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:4:0])
63 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
65 if type -p stow > /dev/null && test -d /usr/local/stow ; then
66 AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
67 ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
70 #### Platform hacks ####
74 AC_DEFINE(_XOPEN_SOURCE, 600, Needed to get declarations for msg_control and msg_controllen on Solaris)
75 AC_DEFINE(__EXTENSIONS__, 1, Needed to get declarations for msg_control and msg_controllen on Solaris)
79 #### Checks for programs. ####
90 AC_PROG_GCC_TRADITIONAL
91 AC_USE_SYSTEM_EXTENSIONS
95 AC_CHECK_PROGS([M4], gm4 m4, no)
96 if test "x$M4" = xno ; then
97 AC_MSG_ERROR([m4 missing])
101 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"
103 for flag in $DESIRED_FLAGS ; do
104 CC_CHECK_CFLAGS([$flag], [CFLAGS="$CFLAGS $flag"])
108 dnl Check whether the linker supports the -version-script option.
110 dnl This variable is used to make sure ${srcdir} is expanded and not
111 dnl passed to the CC_CHECK_LDFLAGS macro as a name.
112 tmp_ldflag="-Wl,-version-script=${srcdir}/src/map-file"
114 CC_CHECK_LDFLAGS([${tmp_ldflag}],
115 [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
116 AC_SUBST([VERSIONING_LDFLAGS])
118 dnl Check whether to build tests by default (as compile-test) or not
119 AC_ARG_ENABLE([default-build-tests],
120 AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
122 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
124 # Native atomic operation support
125 AC_ARG_ENABLE([atomic-arm-linux-helpers],
126 AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]),
128 case "${enableval}" in
129 yes) atomic_arm_linux_helpers=yes ;;
130 no) atomic_arm_linux_helpers=no ;;
131 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
134 [atomic_arm_linux_helpers=auto])
136 AC_ARG_ENABLE([atomic-arm-memory-barrier],
137 AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]),
139 case "${enableval}" in
140 yes) AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers]) ;;
142 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
146 AC_ARG_ENABLE([netbsd-atomic-ops],
147 AS_HELP_STRING([--enable-netbsd-atomic-ops],[Use the native NetBSD atomic_ops implementation]),
149 case "${enableval}" in
150 yes) atomic_netbsd_helpers=yes ;;
151 no) atomic_netbsd_helpers=no ;;
152 *) AC_MSG_ERROR(bad value ${enableval} for --enable-netbsd-atomic-ops) ;;
155 [atomic_netbsd_helpers=auto])
157 AC_MSG_CHECKING([target operating system])
160 AC_MSG_RESULT([linux])
161 pulse_target_os=linux
164 AC_MSG_RESULT([netbsd])
165 pulse_target_os=netbsd
168 AC_MSG_RESULT([unknown])
169 pulse_target_os=unknown
173 # If everything else fails use libatomic_ops
174 need_libatomic_ops=yes
176 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
177 pulseaudio_cv_sync_bool_compare_and_swap,
179 AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
180 [pulseaudio_cv_sync_bool_compare_and_swap=yes],
181 [pulseaudio_cv_sync_bool_compare_and_swap=no])
184 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
185 AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
186 need_libatomic_ops=no
188 # HW specific atomic ops stuff
189 AC_MSG_CHECKING([architecture for native atomic operations])
193 AC_MSG_CHECKING([whether we can use Linux kernel helpers])
194 # The Linux kernel helper functions have been there since 2.6.16. However
195 # compile time checking for kernel version in cross compile environment
196 # (which is usually the case for arm cpu) is tricky (or impossible).
197 if test "x$pulse_target_os" = "xlinux" && test "x$atomic_arm_linux_helpers" != "xno"; then
199 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
200 need_libatomic_ops=no
203 AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
204 pulseaudio_cv_support_arm_atomic_ops,
209 asm volatile ("ldrex %0, [%1]\n"
211 "strexeq %0, %3, [%1]\n"
213 : "r" (&a), "Ir" (o), "r" (n)
215 return (a==1 ? 0 : -1);
217 [pulseaudio_cv_support_arm_atomic_ops=yes],
218 [pulseaudio_cv_support_arm_atomic_ops=no])
220 AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
221 AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARMv6 instructions.])
222 need_libatomic_ops=no
227 if test "x$pulse_target_os" = "xnetbsd" && test "x$atomic_netbsd_helpers" = "xyes"; then
229 AC_DEFINE_UNQUOTED(NETBSD_ATOMIC_OPS, 1, [netbsd implementation])
230 need_libatomic_ops=no
232 AC_MSG_RESULT([unknown])
240 AC_CACHE_CHECK([whether $CC knows _Bool],
243 AC_LANG_PROGRAM([], [[_Bool b;]]),
244 [pulseaudio_cv__Bool=yes],
245 [pulseaudio_cv__Bool=no])
248 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [
249 AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.])
252 #### libtool stuff ####
254 LT_INIT([dlopen win32-dll disable-static])
256 dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
257 dnl exactly which version of libltdl is present in the system, so we
258 dnl just assume that it's a working version as long as we have the
259 dnl library and the header files.
261 dnl As an extra safety device, check for lt_dladvise_init() which is
262 dnl only implemented in libtool 2.x, and refine as we go if we have
263 dnl refined requirements.
265 dnl Check the header files first since the system may have a
266 dnl libltdl.so for runtime, but no headers, and we want to bail out as
267 dnl soon as possible.
269 dnl We don't need any special variable for this though, since the user
270 dnl can give the proper place to find libltdl through the standard
271 dnl variables like LDFLAGS and CPPFLAGS.
273 AC_CHECK_HEADER([ltdl.h],
274 [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
277 AS_IF([test "x$LIBLTDL" = "x"],
278 [AC_MSG_ERROR([Unable to find libltdl.])])
281 #### Determine build environment ####
287 AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
292 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
294 ###################################
295 # Basic environment checks #
296 ###################################
298 #### Checks for header files. ####
304 AC_CHECK_HEADERS([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
305 netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
306 sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \
307 sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
308 AC_CHECK_HEADERS([netinet/ip.h], [], [],
309 [#include <sys/types.h>
310 #if HAVE_NETINET_IN_H
311 # include <netinet/in.h>
313 #if HAVE_NETINET_IN_SYSTM_H
314 # include <netinet/in_systm.h>
317 AC_CHECK_HEADERS([regex.h], [HAVE_REGEX=1], [HAVE_REGEX=0])
318 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
320 AM_CONDITIONAL(HAVE_REGEX, test "x$HAVE_REGEX" = "x1")
321 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
324 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
326 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
328 AC_CHECK_HEADERS([sys/prctl.h])
331 AC_CHECK_HEADERS([sys/filio.h])
334 AC_CHECK_HEADERS([windows.h winsock2.h ws2tcpip.h])
337 AC_CHECK_HEADERS([sys/atomic.h])
340 AC_CHECK_HEADERS([sys/ioctl.h])
341 AC_CHECK_HEADERS([byteswap.h])
342 AC_CHECK_HEADERS([sys/syscall.h])
343 AC_CHECK_HEADERS([sys/eventfd.h])
344 AC_CHECK_HEADERS([execinfo.h])
346 #### Typdefs, structures, etc. ####
352 AC_CHECK_TYPES(ssize_t, , [AC_DEFINE([ssize_t], [signed long],
353 [Define ssize_t if it is not done by the standard libs.])])
357 AC_CHECK_DECLS(environ)
359 AC_CHECK_DEFINE([SIGXCPU], [signal.h], [
361 AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?])
363 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
366 AC_CHECK_DEFINE([INADDR_NONE], [netinet/in.h], [],
367 [AC_CHECK_DEFINE([INADDR_NONE], [winsock2.h], [],
368 [AC_DEFINE([INADDR_NONE], [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
370 #### POSIX threads ####
374 #### Check for libs ####
377 AC_SEARCH_LIBS([pow], [m])
380 AC_SEARCH_LIBS([sched_setscheduler], [rt])
381 AC_SEARCH_LIBS([dlopen], [dl])
382 AC_SEARCH_LIBS([shm_open], [rt])
383 AC_SEARCH_LIBS([inet_ntop], [nsl])
384 AC_SEARCH_LIBS([timer_create], [rt])
387 AC_SEARCH_LIBS([connect], [socket])
391 # This magic is needed so we do not needlessly add static libs to the win32
392 # build, disabling its ability to make dlls.
393 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
395 AC_CHECK_LIB(gdbm, gdbm_open)
396 AC_CHECK_HEADERS(gdbm.h, [], [AC_MSG_ERROR([gdbm.h not found])])
398 #### Check for functions ####
401 AC_CHECK_FUNCS([lrintf strtof])
406 AC_FUNC_SELECT_ARGTYPES
407 AC_CHECK_FUNCS([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \
408 getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \
409 pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
410 sigaction sleep sysconf pthread_setaffinity_np])
411 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
413 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
416 AC_CHECK_FUNCS([readlink])
419 AC_CHECK_FUNCS([ctime_r usleep])
422 AC_CHECK_FUNCS([strerror_r])
425 AC_CHECK_FUNCS([lstat])
429 AC_CHECK_FUNCS([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l])
433 AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
434 pulseaudio_cv_PTHREAD_PRIO_INHERIT,
435 [save_CC=$CC; CC=$PTHREAD_CC
436 save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS
437 save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS
443 [[int i = PTHREAD_PRIO_INHERIT;]]),
444 [pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes],
445 [pulseaudio_cv_PTHREAD_PRIO_INHERIT=no])
451 AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
452 AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
455 AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation])
457 #### Large File-Support (LFS) ####
461 # Check for open64 to know if the current system does have open64() and similar functions
462 AC_CHECK_FUNCS([open64])
468 IT_PROG_INTLTOOL([0.35.0])
469 GETTEXT_PACKAGE=pulseaudio
470 AC_SUBST([GETTEXT_PACKAGE])
471 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
474 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
475 AC_SUBST(pulselocaledir)
477 ###################################
478 # External libraries #
479 ###################################
485 #### X11 (optional) ####
488 AS_HELP_STRING([--disable-x11],[Disable optional X11 support]),
490 case "${enableval}" in
493 *) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
498 if test "x${x11}" != xno ; then
499 PKG_CHECK_MODULES(X11, [ x11 ice sm xtst ],
503 if test "x$x11" = xyes ; then
504 AC_MSG_ERROR([*** X11 not found])
511 if test "x${HAVE_X11}" = x1 ; then
512 AC_DEFINE([HAVE_X11], 1, [Have X11?])
518 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
520 #### Capabilities (optional) ####
526 AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
528 if test "x${with_caps}" != "xno"; then
529 AC_SEARCH_LIBS([cap_init], [cap], [], [
530 if test "x${with_caps}" = "xyes" ; then
531 AC_MSG_ERROR([*** POSIX caps libraries not found])
533 AC_CHECK_HEADERS([sys/capability.h], [], [
534 if test "x${with_caps}" = "xyes" ; then
535 AC_MSG_ERROR([*** POSIX caps headers not found])
539 #### Valgrind (optional) ####
541 AC_CHECK_HEADERS([valgrind/memcheck.h])
545 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.10 ])
546 AC_SUBST(LIBSNDFILE_CFLAGS)
547 AC_SUBST(LIBSNDFILE_LIBS)
549 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
550 AC_SUBST(LIBSPEEX_CFLAGS)
551 AC_SUBST(LIBSPEEX_LIBS)
555 AC_MSG_CHECKING([whether we need libatomic_ops])
556 if test "x$need_libatomic_ops" = "xyes"; then
558 AC_CHECK_HEADERS([atomic_ops.h], [], [
559 AC_MSG_ERROR([*** libatomic-ops headers not found])
562 # Win32 does not need the lib and breaks horribly if we try to include it
563 if test "x$os_is_win32" != "x1" ; then
564 LIBS="$LIBS -latomic_ops"
570 #### Libsamplerate support (optional) ####
572 AC_ARG_ENABLE([samplerate],
573 AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]),
575 case "${enableval}" in
576 yes) samplerate=yes ;;
578 *) AC_MSG_ERROR(bad value ${enableval} for --disable-samplerate) ;;
583 if test "x${samplerate}" != xno ; then
584 PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ],
585 HAVE_LIBSAMPLERATE=1,
588 if test "x$samplerate" = xyes ; then
589 AC_MSG_ERROR([*** Libsamplerate not found])
596 if test "x${HAVE_LIBSAMPLERATE}" = x1 ; then
597 AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])
600 AC_SUBST(LIBSAMPLERATE_CFLAGS)
601 AC_SUBST(LIBSAMPLERATE_LIBS)
602 AC_SUBST(HAVE_LIBSAMPLERATE)
603 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
605 #### OSS support (optional) ####
608 AS_HELP_STRING([--disable-oss],[Disable optional OSS support]),
610 case "${enableval}" in
613 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss) ;;
618 if test "x${oss}" != xno ; then
619 AC_CHECK_HEADERS([sys/soundcard.h],
622 AC_DEFINE([HAVE_OSS], 1, [Have OSS?])
626 if test "x$oss" = xyes ; then
627 AC_MSG_ERROR([*** OSS support not found])
635 AM_CONDITIONAL([HAVE_OSS], [test "x$HAVE_OSS" = x1])
638 #### ALSA support (optional) ####
640 AC_ARG_ENABLE([alsa],
641 AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
643 case "${enableval}" in
646 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
651 if test "x${alsa}" != xno ; then
652 PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
655 AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
659 if test "x$alsa" = xyes ; then
660 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
667 AC_SUBST(ASOUNDLIB_CFLAGS)
668 AC_SUBST(ASOUNDLIB_LIBS)
670 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
672 #### Solaris audio support (optional) ####
674 AC_ARG_ENABLE([solaris],
675 AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
677 case "${enableval}" in
680 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
685 if test "x${solaris}" != xno ; then
686 AC_CHECK_HEADERS([sys/audio.h],
689 AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
693 if test "x$solaris" = xyes ; then
694 AC_MSG_ERROR([*** Solaris audio support not found])
701 AC_SUBST(HAVE_SOLARIS)
702 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
704 #### GLib 2 support (optional) ####
706 AC_ARG_ENABLE([glib2],
707 AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
709 case "${enableval}" in
712 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
717 if test "x${glib2}" != xno ; then
718 PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
722 if test "x$glib2" = xyes ; then
723 AC_MSG_ERROR([*** GLib 2 support not found])
730 AC_SUBST(GLIB20_CFLAGS)
731 AC_SUBST(GLIB20_LIBS)
732 AC_SUBST(HAVE_GLIB20)
733 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
735 if test "x$HAVE_GLIB20" = x1 ; then
736 AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
739 #### GTK2 support (optional) ####
741 AC_ARG_ENABLE([gtk2],
742 AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
744 case "${enableval}" in
747 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
752 if test "x${gtk2}" != xno ; then
753 PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
757 if test "x$gtk2" = xyes ; then
758 AC_MSG_ERROR([*** Gtk+ 2 support not found])
765 AC_SUBST(GTK20_CFLAGS)
768 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
770 if test "x$HAVE_GTK20" = x1 ; then
771 AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
774 #### GConf support (optional) ####
776 AC_ARG_ENABLE([gconf],
777 AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
779 case "${enableval}" in
782 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
787 if test "x${gconf}" != xno ; then
788 PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 ],
792 if test "x$gconf" = xyes ; then
793 AC_MSG_ERROR([*** GConf support not found])
800 AC_SUBST(GCONF_CFLAGS)
803 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
805 #### Avahi support (optional) ####
807 AC_ARG_ENABLE([avahi],
808 AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
810 case "${enableval}" in
813 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
818 if test "x${avahi}" != xno ; then
819 PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
823 if test "x$avahi" = xyes ; then
824 AC_MSG_ERROR([*** Avahi support not found])
831 AC_SUBST(AVAHI_CFLAGS)
834 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
838 PKG_CHECK_MODULES(LIBOIL, [ liboil-0.3 >= 0.3.0 ])
839 AC_SUBST(LIBOIL_CFLAGS)
840 AC_SUBST(LIBOIL_LIBS)
842 ### JACK (optional) ####
844 AC_ARG_ENABLE([jack],
845 AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
847 case "${enableval}" in
850 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
855 if test "x${jack}" != xno ; then
856 PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
860 if test "x$jack" = xyes ; then
861 AC_MSG_ERROR([*** JACK support not found])
868 AC_SUBST(JACK_CFLAGS)
871 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
873 #### Async DNS support (optional) ####
875 AC_ARG_ENABLE([asyncns],
876 AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
878 case "${enableval}" in
881 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
886 if test "x${asyncns}" != xno ; then
887 PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
891 if test "x$asyncns" = xyes ; then
892 AC_MSG_ERROR([*** Async DNS support not found])
899 AC_SUBST(LIBASYNCNS_CFLAGS)
900 AC_SUBST(LIBASYNCNS_LIBS)
901 AC_SUBST(HAVE_LIBASYNCNS)
902 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
904 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
905 AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
908 #### TCP wrappers (optional) ####
910 AC_ARG_ENABLE([tcpwrap],
911 AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
913 case "${enableval}" in
916 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
921 if test "x${tcpwrap}" != xno ; then
923 if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
924 AC_MSG_ERROR([*** TCP wrappers support not found])
930 AC_SUBST(LIBWRAP_LIBS)
932 #### LIRC support (optional) ####
934 AC_ARG_ENABLE([lirc],
935 AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
937 case "${enableval}" in
940 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
945 if test "x${lirc}" != xno ; then
947 if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
948 AC_MSG_ERROR([*** LIRC support not found])
954 AC_SUBST(LIRC_CFLAGS)
956 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
958 #### HAL support (optional) ####
961 AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
963 case "${enableval}" in
966 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
970 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
971 PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
974 AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
978 if test "x$hal" = xyes ; then
979 AC_MSG_ERROR([*** HAL support not found])
989 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
991 #### UDEV support (optional) ####
993 AC_ARG_ENABLE([udev],
994 AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
996 case "${enableval}" in
999 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1003 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1004 PKG_CHECK_MODULES(UDEV, [ libudev >= 137 ],
1007 AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1011 if test "x$udev" = xyes ; then
1012 AC_MSG_ERROR([*** UDEV support not found])
1019 AC_SUBST(UDEV_CFLAGS)
1022 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1024 AC_DEFINE([LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE], 1, [I know the API is subject to change.])
1026 #### BlueZ support (optional) ####
1028 AC_ARG_ENABLE([bluez],
1029 AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1031 case "${enableval}" in
1034 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1038 if test "x${bluez}" != xno ; then
1039 PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1043 if test "x$bluez" = xyes ; then
1044 AC_MSG_ERROR([*** BLUEZ support not found])
1051 AC_SUBST(BLUEZ_CFLAGS)
1052 AC_SUBST(BLUEZ_LIBS)
1053 AC_SUBST(HAVE_BLUEZ)
1054 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1056 #### D-Bus support (optional) ####
1058 AC_ARG_ENABLE([dbus],
1059 AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1061 case "${enableval}" in
1064 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1069 if test "x$HAVE_HAL" = x1 ; then
1073 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1075 PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1079 LIBS="$LIBS $DBUS_LIBS"
1080 AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1082 AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1086 if test "x$dbus" = xyes ; then
1087 AC_MSG_ERROR([*** D-Bus support not found])
1094 AC_SUBST(DBUS_CFLAGS)
1097 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1099 #### PolicyKit support (optional) ####
1101 AC_ARG_ENABLE([polkit],
1102 AS_HELP_STRING([--disable-polkit],[Disable optional PolicyKit support]),
1104 case "${enableval}" in
1107 *) AC_MSG_ERROR(bad value ${enableval} for --disable-polkit) ;;
1112 if test "x${polkit}" != xno ; then
1114 PKG_CHECK_MODULES(POLKIT, [ polkit-dbus >= 0.7 ],
1117 AC_DEFINE([HAVE_POLKIT], 1, [Have PolicyKit])
1118 policydir=`pkg-config polkit-dbus --variable prefix`/share/PolicyKit/policy/
1123 if test "x$polkit" = xyes ; then
1124 AC_MSG_ERROR([*** PolicyKit support not found])
1131 AC_SUBST(POLKIT_CFLAGS)
1132 AC_SUBST(POLKIT_LIBS)
1133 AC_SUBST(HAVE_POLKIT)
1134 AM_CONDITIONAL([HAVE_POLKIT], [test "x$HAVE_POLKIT" = x1])
1137 ### IPv6 connection support (optional) ###
1139 AC_ARG_ENABLE([ipv6],
1140 AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1142 case "${enableval}" in
1145 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1150 if test "x${ipv6}" != xno ; then
1151 AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1157 #### OpenSSL support (optional) ####
1159 AC_ARG_ENABLE([openssl],
1160 AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1162 case "${enableval}" in
1165 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1170 if test "x${openssl}" != xno ; then
1172 PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1175 AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1179 if test "x$openssl" = xyes ; then
1180 AC_MSG_ERROR([*** OpenSSL support not found])
1187 AC_SUBST(OPENSSL_CFLAGS)
1188 AC_SUBST(OPENSSL_LIBS)
1189 AC_SUBST(HAVE_OPENSSL)
1190 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1192 ### Build and Install man pages ###
1193 AC_ARG_ENABLE(manpages,
1194 AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1195 [case "${enableval}" in
1196 yes) manpages=yes ;;
1198 *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1199 esac],[manpages=yes])
1201 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1203 #### PulseAudio system group & user #####
1205 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1206 if test -z "$with_system_user" ; then
1207 PA_SYSTEM_USER=pulse
1209 PA_SYSTEM_USER=$with_system_user
1211 AC_SUBST(PA_SYSTEM_USER)
1212 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1214 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1215 if test -z "$with_system_group" ; then
1216 PA_SYSTEM_GROUP=pulse
1218 PA_SYSTEM_GROUP=$with_system_group
1220 AC_SUBST(PA_SYSTEM_GROUP)
1221 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1223 AC_ARG_WITH(realtime_group,AS_HELP_STRING([--with-realtime-group=<group>],[Group for users that are allowed to start the PulseAudio daemon with realtime scheduling (realtime)]))
1224 if test -z "$with_realtime_group" ; then
1225 PA_REALTIME_GROUP=pulse-rt
1227 PA_REALTIME_GROUP=$with_realtime_group
1229 AC_SUBST(PA_REALTIME_GROUP)
1230 AC_DEFINE_UNQUOTED(PA_REALTIME_GROUP,"$PA_REALTIME_GROUP", [Realtime group])
1232 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)]))
1233 if test -z "$with_access_group" ; then
1234 PA_ACCESS_GROUP=pulse-access
1236 PA_ACCESS_GROUP=$with_access_group
1238 AC_SUBST(PA_ACCESS_GROUP)
1239 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1242 per_user_esound_socket,
1243 AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1245 case "${enableval}" in
1246 yes) per_user_esound_socket=1 ;;
1247 no) per_user_esound_socket=0 ;;
1248 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1251 [per_user_esound_socket=1])
1253 if test "x$per_user_esound_socket" = "x1"; then
1254 AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1257 #### PulseAudio system runtime dir ####
1258 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1259 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1260 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1261 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1262 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1263 AC_SUBST(PA_SYSTEM_STATE_PATH)
1265 ###################################
1267 ###################################
1269 AC_ARG_ENABLE([legacy-runtime-dir],
1270 AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1271 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1272 AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1277 AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1278 [STATIC_BINS=1], [STATIC_BINS=0])
1279 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1283 AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1284 [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1285 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1286 if test "x$PREOPEN_MODS" != "xall" ; then
1288 for mod in $PREOPEN_MODS; do
1289 tmpLIBS="$tmpLIBS module-$mod.la"
1291 PREOPEN_MODS="$tmpLIBS"
1292 AC_SUBST(PREOPEN_MODS)
1297 AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules/]),
1298 [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules/"])
1300 AC_SUBST(modlibexecdir)
1304 AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1305 [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1306 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1317 libpulse-mainloop-glib.pc
1319 doxygen/doxygen.conf
1328 # ==========================================================================
1330 if test "x$HAVE_X11" = "x1" ; then
1335 if test "x$HAVE_OSS" = "x1" ; then
1340 if test "x$HAVE_ALSA" = "x1" ; then
1345 if test "x$HAVE_SOLARIS" = "x1" ; then
1350 if test "x$HAVE_GTK20" = "x1" ; then
1355 if test "x$HAVE_GLIB20" = "x1" ; then
1360 if test "x$HAVE_GCONF" = "x1" ; then
1365 if test "x$HAVE_AVAHI" = "x1" ; then
1370 if test "x$HAVE_JACK" = "x1" ; then
1374 ENABLE_LIBASYNCNS=no
1375 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1376 ENABLE_LIBASYNCNS=yes
1380 if test "x$HAVE_LIRC" = "x1" ; then
1385 if test "x$HAVE_HAL" = "x1" ; then
1390 if test "x$HAVE_UDEV" = "x1" ; then
1395 if test "x${LIBWRAP_LIBS}" != x ; then
1399 ENABLE_LIBSAMPLERATE=no
1400 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1401 ENABLE_LIBSAMPLERATE=yes
1405 if test "x${HAVE_BLUEZ}" = "x1" ; then
1410 if test "x${HAVE_POLKIT}" = "x1" ; then
1415 if test "x${HAVE_OPENSSL}" = "x1" ; then
1420 if test "x${HAVE_IPV6}" = "x1" ; then
1424 ENABLE_PER_USER_ESOUND_SOCKET=no
1425 if test "x$per_user_esound_socket" = "x1" ; then
1426 ENABLE_PER_USER_ESOUND_SOCKET=yes
1430 ---{ $PACKAGE_NAME $VERSION }---
1433 sysconfdir: ${sysconfdir}
1434 localstatedir: ${localstatedir}
1435 System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH}
1436 System State Path: ${PA_SYSTEM_STATE_PATH}
1437 System Config Path: ${PA_SYSTEM_CONFIG_PATH}
1441 Have X11: ${ENABLE_X11}
1442 Enable OSS: ${ENABLE_OSS}
1443 Enable Alsa: ${ENABLE_ALSA}
1444 Enable Solaris: ${ENABLE_SOLARIS}
1445 Enable GLib 2.0: ${ENABLE_GLIB20}
1446 Enable Gtk+ 2.0: ${ENABLE_GTK20}
1447 Enable GConf: ${ENABLE_GCONF}
1448 Enable Avahi: ${ENABLE_AVAHI}
1449 Enable Jack: ${ENABLE_JACK}
1450 Enable Async DNS: ${ENABLE_LIBASYNCNS}
1451 Enable LIRC: ${ENABLE_LIRC}
1452 Enable HAL: ${ENABLE_HAL}
1453 Enable udev: ${ENABLE_UDEV}
1454 Enable BlueZ: ${ENABLE_BLUEZ}
1455 Enable TCP Wrappers: ${ENABLE_TCPWRAP}
1456 Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
1457 Enable PolicyKit: ${ENABLE_POLKIT}
1458 Enable IPv6: ${ENABLE_IPV6}
1459 Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1461 System User: ${PA_SYSTEM_USER}
1462 System Group: ${PA_SYSTEM_GROUP}
1463 Realtime Group: ${PA_REALTIME_GROUP}
1464 Access Group: ${PA_ACCESS_GROUP}
1465 Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1466 Force preopen: ${FORCE_PREOPEN}
1467 Preopened modules: ${PREOPEN_MODS}