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_ONCE([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_ONCE([sys/prctl.h])
331 AC_CHECK_HEADERS_ONCE([sys/filio.h])
334 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
337 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
340 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
341 AC_CHECK_HEADERS_ONCE([byteswap.h])
342 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
343 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
344 AC_CHECK_HEADERS_ONCE([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 #### Check for functions ####
398 AC_CHECK_FUNCS_ONCE([lrintf strtof])
403 AC_FUNC_SELECT_ARGTYPES
404 AC_CHECK_FUNCS_ONCE([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \
405 getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \
406 pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
407 sigaction sleep sysconf pthread_setaffinity_np])
408 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
410 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
413 AC_CHECK_FUNCS_ONCE([readlink])
416 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
419 AC_CHECK_FUNCS_ONCE([strerror_r])
422 AC_CHECK_FUNCS_ONCE([lstat])
426 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l])
430 AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
431 pulseaudio_cv_PTHREAD_PRIO_INHERIT,
432 [save_CC=$CC; CC=$PTHREAD_CC
433 save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS
434 save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS
440 [[int i = PTHREAD_PRIO_INHERIT;]]),
441 [pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes],
442 [pulseaudio_cv_PTHREAD_PRIO_INHERIT=no])
448 AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
449 AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
452 AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation])
454 #### Large File-Support (LFS) ####
458 # Check for open64 to know if the current system does have open64() and similar functions
459 AC_CHECK_FUNCS_ONCE([open64])
465 IT_PROG_INTLTOOL([0.35.0])
466 GETTEXT_PACKAGE=pulseaudio
467 AC_SUBST([GETTEXT_PACKAGE])
468 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
471 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
472 AC_SUBST(pulselocaledir)
474 ###################################
475 # External libraries #
476 ###################################
482 #### X11 (optional) ####
485 AS_HELP_STRING([--disable-x11],[Disable optional X11 support]),
487 case "${enableval}" in
490 *) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
495 if test "x${x11}" != xno ; then
496 PKG_CHECK_MODULES(X11, [ x11 ice sm xtst ],
500 if test "x$x11" = xyes ; then
501 AC_MSG_ERROR([*** X11 not found])
508 if test "x${HAVE_X11}" = x1 ; then
509 AC_DEFINE([HAVE_X11], 1, [Have X11?])
515 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
517 #### Capabilities (optional) ####
523 AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
525 if test "x${with_caps}" != "xno"; then
526 AC_SEARCH_LIBS([cap_init], [cap], [], [
527 if test "x${with_caps}" = "xyes" ; then
528 AC_MSG_ERROR([*** POSIX caps libraries not found])
530 AC_CHECK_HEADERS([sys/capability.h], [], [
531 if test "x${with_caps}" = "xyes" ; then
532 AC_MSG_ERROR([*** POSIX caps headers not found])
536 #### Valgrind (optional) ####
538 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
542 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.10 ])
543 AC_SUBST(LIBSNDFILE_CFLAGS)
544 AC_SUBST(LIBSNDFILE_LIBS)
546 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
547 AC_SUBST(LIBSPEEX_CFLAGS)
548 AC_SUBST(LIBSPEEX_LIBS)
552 AC_MSG_CHECKING([whether we need libatomic_ops])
553 if test "x$need_libatomic_ops" = "xyes"; then
555 AC_CHECK_HEADERS([atomic_ops.h], [], [
556 AC_MSG_ERROR([*** libatomic-ops headers not found])
559 # Win32 does not need the lib and breaks horribly if we try to include it
560 if test "x$os_is_win32" != "x1" ; then
561 LIBS="$LIBS -latomic_ops"
567 #### Libsamplerate support (optional) ####
569 AC_ARG_ENABLE([samplerate],
570 AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]),
572 case "${enableval}" in
573 yes) samplerate=yes ;;
575 *) AC_MSG_ERROR(bad value ${enableval} for --disable-samplerate) ;;
580 if test "x${samplerate}" != xno ; then
581 PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ],
582 HAVE_LIBSAMPLERATE=1,
585 if test "x$samplerate" = xyes ; then
586 AC_MSG_ERROR([*** Libsamplerate not found])
593 if test "x${HAVE_LIBSAMPLERATE}" = x1 ; then
594 AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])
597 AC_SUBST(LIBSAMPLERATE_CFLAGS)
598 AC_SUBST(LIBSAMPLERATE_LIBS)
599 AC_SUBST(HAVE_LIBSAMPLERATE)
600 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
602 #### Database support ####
609 AS_HELP_STRING([--with-database=auto|tdb|gdbm],[Choose database backend.]),[],[with_database=auto])
611 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then
612 PKG_CHECK_MODULES(TDB, [ tdb ],
617 if test "x${with_database}" = "xtdb" ; then
618 AC_MSG_ERROR([*** tdb not found])
623 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then
626 AC_CHECK_LIB(gdbm, gdbm_open, [], [have_gdbm=no])
627 AC_CHECK_HEADERS(gdbm.h, [], [have_gdbm=no])
629 if test "x${have_gdbm}" = "xyes" ; then
634 elif test "x${with_database}" = "xgdbm"; then
635 AC_MSG_ERROR([*** gdbm not found])
639 if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1; then
640 AC_MSG_ERROR([*** missing database backend])
643 if test "x${HAVE_TDB}" = x1 ; then
644 AC_DEFINE([HAVE_TDB], 1, [Have tdb?])
647 if test "x${HAVE_GDBM}" = x1 ; then
648 AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
654 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
656 AC_SUBST(GDBM_CFLAGS)
659 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
661 #### OSS support (optional) ####
664 AS_HELP_STRING([--disable-oss],[Disable optional OSS support]),
666 case "${enableval}" in
669 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss) ;;
674 if test "x${oss}" != xno ; then
675 AC_CHECK_HEADERS([sys/soundcard.h],
678 AC_DEFINE([HAVE_OSS], 1, [Have OSS?])
682 if test "x$oss" = xyes ; then
683 AC_MSG_ERROR([*** OSS support not found])
691 AM_CONDITIONAL([HAVE_OSS], [test "x$HAVE_OSS" = x1])
694 #### ALSA support (optional) ####
696 AC_ARG_ENABLE([alsa],
697 AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
699 case "${enableval}" in
702 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
707 if test "x${alsa}" != xno ; then
708 PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
711 AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
715 if test "x$alsa" = xyes ; then
716 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
723 AC_SUBST(ASOUNDLIB_CFLAGS)
724 AC_SUBST(ASOUNDLIB_LIBS)
726 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
728 #### Solaris audio support (optional) ####
730 AC_ARG_ENABLE([solaris],
731 AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
733 case "${enableval}" in
736 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
741 if test "x${solaris}" != xno ; then
742 AC_CHECK_HEADERS([sys/audio.h],
745 AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
749 if test "x$solaris" = xyes ; then
750 AC_MSG_ERROR([*** Solaris audio support not found])
757 AC_SUBST(HAVE_SOLARIS)
758 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
760 #### GLib 2 support (optional) ####
762 AC_ARG_ENABLE([glib2],
763 AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
765 case "${enableval}" in
768 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
773 if test "x${glib2}" != xno ; then
774 PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
778 if test "x$glib2" = xyes ; then
779 AC_MSG_ERROR([*** GLib 2 support not found])
786 AC_SUBST(GLIB20_CFLAGS)
787 AC_SUBST(GLIB20_LIBS)
788 AC_SUBST(HAVE_GLIB20)
789 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
791 if test "x$HAVE_GLIB20" = x1 ; then
792 AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
795 #### GTK2 support (optional) ####
797 AC_ARG_ENABLE([gtk2],
798 AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
800 case "${enableval}" in
803 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
808 if test "x${gtk2}" != xno ; then
809 PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
813 if test "x$gtk2" = xyes ; then
814 AC_MSG_ERROR([*** Gtk+ 2 support not found])
821 AC_SUBST(GTK20_CFLAGS)
824 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
826 if test "x$HAVE_GTK20" = x1 ; then
827 AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
830 #### GConf support (optional) ####
832 AC_ARG_ENABLE([gconf],
833 AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
835 case "${enableval}" in
838 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
843 if test "x${gconf}" != xno ; then
844 PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 ],
848 if test "x$gconf" = xyes ; then
849 AC_MSG_ERROR([*** GConf support not found])
856 AC_SUBST(GCONF_CFLAGS)
859 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
861 #### Avahi support (optional) ####
863 AC_ARG_ENABLE([avahi],
864 AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
866 case "${enableval}" in
869 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
874 if test "x${avahi}" != xno ; then
875 PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
879 if test "x$avahi" = xyes ; then
880 AC_MSG_ERROR([*** Avahi support not found])
887 AC_SUBST(AVAHI_CFLAGS)
890 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
894 PKG_CHECK_MODULES(LIBOIL, [ liboil-0.3 >= 0.3.0 ])
895 AC_SUBST(LIBOIL_CFLAGS)
896 AC_SUBST(LIBOIL_LIBS)
898 ### JACK (optional) ####
900 AC_ARG_ENABLE([jack],
901 AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
903 case "${enableval}" in
906 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
911 if test "x${jack}" != xno ; then
912 PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
916 if test "x$jack" = xyes ; then
917 AC_MSG_ERROR([*** JACK support not found])
924 AC_SUBST(JACK_CFLAGS)
927 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
929 #### Async DNS support (optional) ####
931 AC_ARG_ENABLE([asyncns],
932 AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
934 case "${enableval}" in
937 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
942 if test "x${asyncns}" != xno ; then
943 PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
947 if test "x$asyncns" = xyes ; then
948 AC_MSG_ERROR([*** Async DNS support not found])
955 AC_SUBST(LIBASYNCNS_CFLAGS)
956 AC_SUBST(LIBASYNCNS_LIBS)
957 AC_SUBST(HAVE_LIBASYNCNS)
958 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
960 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
961 AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
964 #### TCP wrappers (optional) ####
966 AC_ARG_ENABLE([tcpwrap],
967 AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
969 case "${enableval}" in
972 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
977 if test "x${tcpwrap}" != xno ; then
979 if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
980 AC_MSG_ERROR([*** TCP wrappers support not found])
986 AC_SUBST(LIBWRAP_LIBS)
988 #### LIRC support (optional) ####
990 AC_ARG_ENABLE([lirc],
991 AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
993 case "${enableval}" in
996 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
1001 if test "x${lirc}" != xno ; then
1003 if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
1004 AC_MSG_ERROR([*** LIRC support not found])
1010 AC_SUBST(LIRC_CFLAGS)
1012 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1014 #### HAL support (optional) ####
1016 AC_ARG_ENABLE([hal],
1017 AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
1019 case "${enableval}" in
1022 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
1026 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1027 PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
1030 AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
1034 if test "x$hal" = xyes ; then
1035 AC_MSG_ERROR([*** HAL support not found])
1042 AC_SUBST(HAL_CFLAGS)
1045 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
1047 #### UDEV support (optional) ####
1049 AC_ARG_ENABLE([udev],
1050 AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
1052 case "${enableval}" in
1055 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1059 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1060 PKG_CHECK_MODULES(UDEV, [ libudev >= 137 ],
1063 AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1067 if test "x$udev" = xyes ; then
1068 AC_MSG_ERROR([*** UDEV support not found])
1075 AC_SUBST(UDEV_CFLAGS)
1078 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1080 AC_DEFINE([LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE], 1, [I know the API is subject to change.])
1082 #### BlueZ support (optional) ####
1084 AC_ARG_ENABLE([bluez],
1085 AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1087 case "${enableval}" in
1090 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1094 if test "x${bluez}" != xno ; then
1095 PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1099 if test "x$bluez" = xyes ; then
1100 AC_MSG_ERROR([*** BLUEZ support not found])
1107 AC_SUBST(BLUEZ_CFLAGS)
1108 AC_SUBST(BLUEZ_LIBS)
1109 AC_SUBST(HAVE_BLUEZ)
1110 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1112 #### D-Bus support (optional) ####
1114 AC_ARG_ENABLE([dbus],
1115 AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1117 case "${enableval}" in
1120 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1125 if test "x$HAVE_HAL" = x1 ; then
1129 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1131 PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1135 LIBS="$LIBS $DBUS_LIBS"
1136 AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1138 AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1142 if test "x$dbus" = xyes ; then
1143 AC_MSG_ERROR([*** D-Bus support not found])
1150 AC_SUBST(DBUS_CFLAGS)
1153 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1155 #### PolicyKit support (optional) ####
1157 AC_ARG_ENABLE([polkit],
1158 AS_HELP_STRING([--disable-polkit],[Disable optional PolicyKit support]),
1160 case "${enableval}" in
1163 *) AC_MSG_ERROR(bad value ${enableval} for --disable-polkit) ;;
1168 if test "x${polkit}" != xno ; then
1170 PKG_CHECK_MODULES(POLKIT, [ polkit-dbus >= 0.7 ],
1173 AC_DEFINE([HAVE_POLKIT], 1, [Have PolicyKit])
1174 policydir=`pkg-config polkit-dbus --variable prefix`/share/PolicyKit/policy/
1179 if test "x$polkit" = xyes ; then
1180 AC_MSG_ERROR([*** PolicyKit support not found])
1187 AC_SUBST(POLKIT_CFLAGS)
1188 AC_SUBST(POLKIT_LIBS)
1189 AC_SUBST(HAVE_POLKIT)
1190 AM_CONDITIONAL([HAVE_POLKIT], [test "x$HAVE_POLKIT" = x1])
1193 ### IPv6 connection support (optional) ###
1195 AC_ARG_ENABLE([ipv6],
1196 AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1198 case "${enableval}" in
1201 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1206 if test "x${ipv6}" != xno ; then
1207 AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1213 #### OpenSSL support (optional) ####
1215 AC_ARG_ENABLE([openssl],
1216 AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1218 case "${enableval}" in
1221 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1226 if test "x${openssl}" != xno ; then
1228 PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1231 AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1235 if test "x$openssl" = xyes ; then
1236 AC_MSG_ERROR([*** OpenSSL support not found])
1243 AC_SUBST(OPENSSL_CFLAGS)
1244 AC_SUBST(OPENSSL_LIBS)
1245 AC_SUBST(HAVE_OPENSSL)
1246 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1248 ### Build and Install man pages ###
1249 AC_ARG_ENABLE(manpages,
1250 AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1251 [case "${enableval}" in
1252 yes) manpages=yes ;;
1254 *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1255 esac],[manpages=yes])
1257 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1259 #### PulseAudio system group & user #####
1261 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1262 if test -z "$with_system_user" ; then
1263 PA_SYSTEM_USER=pulse
1265 PA_SYSTEM_USER=$with_system_user
1267 AC_SUBST(PA_SYSTEM_USER)
1268 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1270 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1271 if test -z "$with_system_group" ; then
1272 PA_SYSTEM_GROUP=pulse
1274 PA_SYSTEM_GROUP=$with_system_group
1276 AC_SUBST(PA_SYSTEM_GROUP)
1277 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1279 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)]))
1280 if test -z "$with_realtime_group" ; then
1281 PA_REALTIME_GROUP=pulse-rt
1283 PA_REALTIME_GROUP=$with_realtime_group
1285 AC_SUBST(PA_REALTIME_GROUP)
1286 AC_DEFINE_UNQUOTED(PA_REALTIME_GROUP,"$PA_REALTIME_GROUP", [Realtime group])
1288 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)]))
1289 if test -z "$with_access_group" ; then
1290 PA_ACCESS_GROUP=pulse-access
1292 PA_ACCESS_GROUP=$with_access_group
1294 AC_SUBST(PA_ACCESS_GROUP)
1295 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1298 per_user_esound_socket,
1299 AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1301 case "${enableval}" in
1302 yes) per_user_esound_socket=1 ;;
1303 no) per_user_esound_socket=0 ;;
1304 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1307 [per_user_esound_socket=1])
1309 if test "x$per_user_esound_socket" = "x1"; then
1310 AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1313 #### PulseAudio system runtime dir ####
1314 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1315 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1316 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1317 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1318 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1319 AC_SUBST(PA_SYSTEM_STATE_PATH)
1321 ###################################
1323 ###################################
1325 AC_ARG_ENABLE([legacy-runtime-dir],
1326 AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1327 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1328 AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1333 AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1334 [STATIC_BINS=1], [STATIC_BINS=0])
1335 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1339 AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1340 [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1341 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1342 if test "x$PREOPEN_MODS" != "xall" ; then
1344 for mod in $PREOPEN_MODS; do
1345 tmpLIBS="$tmpLIBS module-$mod.la"
1347 PREOPEN_MODS="$tmpLIBS"
1348 AC_SUBST(PREOPEN_MODS)
1353 AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules/]),
1354 [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules/"])
1356 AC_SUBST(modlibexecdir)
1360 AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1361 [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1362 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1373 libpulse-mainloop-glib.pc
1375 doxygen/doxygen.conf
1383 # ==========================================================================
1385 if test "x$HAVE_X11" = "x1" ; then
1390 if test "x$HAVE_OSS" = "x1" ; then
1395 if test "x$HAVE_ALSA" = "x1" ; then
1400 if test "x$HAVE_SOLARIS" = "x1" ; then
1405 if test "x$HAVE_GTK20" = "x1" ; then
1410 if test "x$HAVE_GLIB20" = "x1" ; then
1415 if test "x$HAVE_GCONF" = "x1" ; then
1420 if test "x$HAVE_AVAHI" = "x1" ; then
1425 if test "x$HAVE_JACK" = "x1" ; then
1429 ENABLE_LIBASYNCNS=no
1430 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1431 ENABLE_LIBASYNCNS=yes
1435 if test "x$HAVE_LIRC" = "x1" ; then
1440 if test "x$HAVE_HAL" = "x1" ; then
1445 if test "x$HAVE_UDEV" = "x1" ; then
1450 if test "x${LIBWRAP_LIBS}" != x ; then
1454 ENABLE_LIBSAMPLERATE=no
1455 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1456 ENABLE_LIBSAMPLERATE=yes
1460 if test "x${HAVE_BLUEZ}" = "x1" ; then
1465 if test "x${HAVE_POLKIT}" = "x1" ; then
1470 if test "x${HAVE_GDBM}" = "x1" ; then
1475 if test "x${HAVE_TDB}" = "x1" ; then
1480 if test "x${HAVE_OPENSSL}" = "x1" ; then
1485 if test "x${HAVE_IPV6}" = "x1" ; then
1489 ENABLE_PER_USER_ESOUND_SOCKET=no
1490 if test "x$per_user_esound_socket" = "x1" ; then
1491 ENABLE_PER_USER_ESOUND_SOCKET=yes
1495 ---{ $PACKAGE_NAME $VERSION }---
1498 sysconfdir: ${sysconfdir}
1499 localstatedir: ${localstatedir}
1500 System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH}
1501 System State Path: ${PA_SYSTEM_STATE_PATH}
1502 System Config Path: ${PA_SYSTEM_CONFIG_PATH}
1506 Have X11: ${ENABLE_X11}
1507 Enable OSS: ${ENABLE_OSS}
1508 Enable Alsa: ${ENABLE_ALSA}
1509 Enable Solaris: ${ENABLE_SOLARIS}
1510 Enable GLib 2.0: ${ENABLE_GLIB20}
1511 Enable Gtk+ 2.0: ${ENABLE_GTK20}
1512 Enable GConf: ${ENABLE_GCONF}
1513 Enable Avahi: ${ENABLE_AVAHI}
1514 Enable Jack: ${ENABLE_JACK}
1515 Enable Async DNS: ${ENABLE_LIBASYNCNS}
1516 Enable LIRC: ${ENABLE_LIRC}
1517 Enable HAL: ${ENABLE_HAL}
1518 Enable udev: ${ENABLE_UDEV}
1519 Enable BlueZ: ${ENABLE_BLUEZ}
1520 Enable TCP Wrappers: ${ENABLE_TCPWRAP}
1521 Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
1522 Enable PolicyKit: ${ENABLE_POLKIT}
1523 Enable IPv6: ${ENABLE_IPV6}
1524 Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1525 Enable tdb: ${ENABLE_TDB}
1526 Enable gdbm: ${ENABLE_GDBM}
1528 System User: ${PA_SYSTEM_USER}
1529 System Group: ${PA_SYSTEM_GROUP}
1530 Realtime Group: ${PA_REALTIME_GROUP}
1531 Access Group: ${PA_ACCESS_GROUP}
1532 Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1533 Force preopen: ${FORCE_PREOPEN}
1534 Preopened modules: ${PREOPEN_MODS}