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.11 -Wall -Wno-portability silent-rules tar-pax])
32 m4_define(pa_major, `echo $VERSION | cut -d. -f1 | cut -d- -f1`)
33 m4_define(pa_minor, `echo $VERSION | cut -d. -f2 | cut -d- -f1`)
34 m4_define(pa_micro, `echo $VERSION | cut -d. -f3 | cut -d- -f1`)
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, 16)
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)
78 AC_DEFINE([_POSIX_C_SOURCE], [200112L], [Needed to get clock_gettime on Mac OS X])
82 AM_SILENT_RULES([yes])
84 #### Checks for programs. ####
95 AC_PROG_GCC_TRADITIONAL
96 AC_USE_SYSTEM_EXTENSIONS
100 AC_CHECK_PROGS([M4], gm4 m4, no)
101 if test "x$M4" = xno ; then
102 AC_MSG_ERROR([m4 missing])
106 CC_CHECK_CFLAGS_APPEND([-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])
109 dnl Check whether the linker supports the -version-script option.
111 dnl This variable is used to make sure ${srcdir} is expanded and not
112 dnl passed to the CC_CHECK_LDFLAGS macro as a name.
113 tmp_ldflag="-Wl,-version-script=${srcdir}/src/map-file"
115 CC_CHECK_LDFLAGS([${tmp_ldflag}],
116 [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
117 AC_SUBST([VERSIONING_LDFLAGS])
119 dnl Use immediate (now) bindings; avoids the funky re-call in itself
120 dnl the -z now syntax is lifted from Sun's linker and works with GNU's too
121 dnl other linkes might be added later
122 CC_CHECK_LDFLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS="-Wl,-z,now"])
123 AC_SUBST([IMMEDIATE_LDFLAGS])
125 dnl On ELF systems we don't want the libraries to be unloaded since we
126 dnl don't clean them up properly, so we request the nodelete flag to be
129 dnl On other systems, we don't really know how to do that, but it's
130 dnl welcome if somebody can tell.
131 CC_CHECK_LDFLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS="-Wl,-z,nodelete"])
132 AC_SUBST([NODELETE_LDFLAGS])
134 dnl Check for the proper way to build libraries that have no undefined
135 dnl symbols; on some hosts this needs to be avoided but the macro
136 dnl takes care of it.
139 dnl Check whether to build tests by default (as compile-test) or not
140 AC_ARG_ENABLE([default-build-tests],
141 AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
143 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
145 # Native atomic operation support
146 AC_ARG_ENABLE([atomic-arm-linux-helpers],
147 AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]),
149 case "${enableval}" in
150 yes) atomic_arm_linux_helpers=yes ;;
151 no) atomic_arm_linux_helpers=no ;;
152 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
155 [atomic_arm_linux_helpers=auto])
157 AC_ARG_ENABLE([atomic-arm-memory-barrier],
158 AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]),
160 case "${enableval}" in
161 yes) AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers]) ;;
163 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
167 AC_ARG_ENABLE([netbsd-atomic-ops],
168 AS_HELP_STRING([--enable-netbsd-atomic-ops],[Use the native NetBSD atomic_ops implementation]),
170 case "${enableval}" in
171 yes) atomic_netbsd_helpers=yes ;;
172 no) atomic_netbsd_helpers=no ;;
173 *) AC_MSG_ERROR(bad value ${enableval} for --enable-netbsd-atomic-ops) ;;
176 [atomic_netbsd_helpers=auto])
178 AC_MSG_CHECKING([target operating system])
181 AC_MSG_RESULT([linux])
182 pulse_target_os=linux
185 AC_MSG_RESULT([netbsd])
186 pulse_target_os=netbsd
189 AC_MSG_RESULT([unknown])
190 pulse_target_os=unknown
194 # If everything else fails use libatomic_ops
195 need_libatomic_ops=yes
197 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
198 pulseaudio_cv_sync_bool_compare_and_swap,
200 AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
201 [pulseaudio_cv_sync_bool_compare_and_swap=yes],
202 [pulseaudio_cv_sync_bool_compare_and_swap=no])
205 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
206 AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
207 need_libatomic_ops=no
209 # HW specific atomic ops stuff
210 AC_MSG_CHECKING([architecture for native atomic operations])
214 AC_MSG_CHECKING([whether we can use Linux kernel helpers])
215 # The Linux kernel helper functions have been there since 2.6.16. However
216 # compile time checking for kernel version in cross compile environment
217 # (which is usually the case for arm cpu) is tricky (or impossible).
218 if test "x$pulse_target_os" = "xlinux" && test "x$atomic_arm_linux_helpers" != "xno"; then
220 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
221 need_libatomic_ops=no
224 AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
225 pulseaudio_cv_support_arm_atomic_ops,
230 asm volatile ("ldrex %0, [%1]\n"
232 "strexeq %0, %3, [%1]\n"
234 : "r" (&a), "Ir" (o), "r" (n)
236 return (a==1 ? 0 : -1);
238 [pulseaudio_cv_support_arm_atomic_ops=yes],
239 [pulseaudio_cv_support_arm_atomic_ops=no])
241 AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
242 AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARMv6 instructions.])
243 need_libatomic_ops=no
248 if test "x$pulse_target_os" = "xnetbsd" && test "x$atomic_netbsd_helpers" = "xyes"; then
250 AC_DEFINE_UNQUOTED(NETBSD_ATOMIC_OPS, 1, [netbsd implementation])
251 need_libatomic_ops=no
253 AC_MSG_RESULT([unknown])
261 AC_CACHE_CHECK([whether $CC knows _Bool],
264 AC_LANG_PROGRAM([], [[_Bool b;]]),
265 [pulseaudio_cv__Bool=yes],
266 [pulseaudio_cv__Bool=no])
269 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [
270 AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.])
273 #### libtool stuff ####
275 LT_INIT([dlopen win32-dll disable-static])
277 dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
278 dnl exactly which version of libltdl is present in the system, so we
279 dnl just assume that it's a working version as long as we have the
280 dnl library and the header files.
282 dnl As an extra safety device, check for lt_dladvise_init() which is
283 dnl only implemented in libtool 2.x, and refine as we go if we have
284 dnl refined requirements.
286 dnl Check the header files first since the system may have a
287 dnl libltdl.so for runtime, but no headers, and we want to bail out as
288 dnl soon as possible.
290 dnl We don't need any special variable for this though, since the user
291 dnl can give the proper place to find libltdl through the standard
292 dnl variables like LDFLAGS and CPPFLAGS.
294 AC_CHECK_HEADER([ltdl.h],
295 [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
298 AS_IF([test "x$LIBLTDL" = "x"],
299 [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
302 #### Determine build environment ####
308 AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
313 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
315 ###################################
316 # Basic environment checks #
317 ###################################
319 #### Checks for header files. ####
325 AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
326 netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
327 sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \
328 sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
329 AC_CHECK_HEADERS([netinet/ip.h], [], [],
330 [#include <sys/types.h>
331 #if HAVE_NETINET_IN_H
332 # include <netinet/in.h>
334 #if HAVE_NETINET_IN_SYSTM_H
335 # include <netinet/in_systm.h>
338 AC_CHECK_HEADERS([regex.h], [HAVE_REGEX=1], [HAVE_REGEX=0])
339 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
341 AM_CONDITIONAL(HAVE_REGEX, test "x$HAVE_REGEX" = "x1")
342 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
345 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
347 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
349 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
352 AC_CHECK_HEADERS_ONCE([sys/filio.h])
355 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
358 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
361 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
362 AC_CHECK_HEADERS_ONCE([byteswap.h])
363 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
364 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
365 AC_CHECK_HEADERS_ONCE([execinfo.h])
367 #### Typdefs, structures, etc. ####
373 AC_CHECK_TYPES(ssize_t, , [AC_DEFINE([ssize_t], [signed long],
374 [Define ssize_t if it is not done by the standard libs.])])
378 AC_CHECK_DECLS(environ)
380 AC_CHECK_DEFINE([SIGXCPU], [signal.h], [
382 AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?])
384 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
387 AC_CHECK_DEFINE([INADDR_NONE], [netinet/in.h], [],
388 [AC_CHECK_DEFINE([INADDR_NONE], [winsock2.h], [],
389 [AC_DEFINE([INADDR_NONE], [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
391 #### POSIX threads ####
395 #### Check for libs ####
398 AC_SEARCH_LIBS([pow], [m])
401 AC_SEARCH_LIBS([sched_setscheduler], [rt])
402 AC_SEARCH_LIBS([dlopen], [dl])
403 AC_SEARCH_LIBS([shm_open], [rt])
404 AC_SEARCH_LIBS([inet_ntop], [nsl])
405 AC_SEARCH_LIBS([timer_create], [rt])
408 AC_SEARCH_LIBS([connect], [socket])
409 AC_SEARCH_LIBS([backtrace], [execinfo])
413 # This magic is needed so we do not needlessly add static libs to the win32
414 # build, disabling its ability to make dlls.
415 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
417 #### Check for functions ####
420 AC_CHECK_FUNCS_ONCE([lrintf strtof])
425 AC_FUNC_SELECT_ARGTYPES
426 AC_CHECK_FUNCS_ONCE([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \
427 getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \
428 pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
429 sigaction sleep sysconf pthread_setaffinity_np])
430 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
432 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
435 AC_CHECK_FUNCS_ONCE([readlink])
438 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
441 AC_CHECK_FUNCS_ONCE([strerror_r])
444 AC_CHECK_FUNCS_ONCE([lstat])
448 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l])
452 AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
453 pulseaudio_cv_PTHREAD_PRIO_INHERIT,
454 [save_CC=$CC; CC=$PTHREAD_CC
455 save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS
456 save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS
462 [[int i = PTHREAD_PRIO_INHERIT;]]),
463 [pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes],
464 [pulseaudio_cv_PTHREAD_PRIO_INHERIT=no])
470 AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
471 AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
474 AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation])
476 #### Large File-Support (LFS) ####
480 # Check for open64 to know if the current system does have open64() and similar functions
481 AC_CHECK_FUNCS_ONCE([open64])
487 IT_PROG_INTLTOOL([0.35.0])
488 GETTEXT_PACKAGE=pulseaudio
489 AC_SUBST([GETTEXT_PACKAGE])
490 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
493 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
494 AC_SUBST(pulselocaledir)
496 ###################################
497 # External libraries #
498 ###################################
504 #### X11 (optional) ####
507 AS_HELP_STRING([--disable-x11],[Disable optional X11 support]),
509 case "${enableval}" in
512 *) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
517 if test "x${x11}" != xno ; then
518 PKG_CHECK_MODULES(X11, [ x11 ice sm xtst ],
522 if test "x$x11" = xyes ; then
523 AC_MSG_ERROR([*** X11 not found])
530 if test "x${HAVE_X11}" = x1 ; then
531 AC_DEFINE([HAVE_X11], 1, [Have X11?])
537 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
539 #### Capabilities (optional) ####
545 AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
547 if test "x${with_caps}" != "xno"; then
548 AC_SEARCH_LIBS([cap_init], [cap], [], [
549 if test "x${with_caps}" = "xyes" ; then
550 AC_MSG_ERROR([*** POSIX caps libraries not found])
552 AC_CHECK_HEADERS([sys/capability.h], [], [
553 if test "x${with_caps}" = "xyes" ; then
554 AC_MSG_ERROR([*** POSIX caps headers not found])
558 #### Valgrind (optional) ####
560 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
564 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
565 AC_SUBST(LIBSNDFILE_CFLAGS)
566 AC_SUBST(LIBSNDFILE_LIBS)
568 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
569 AC_SUBST(LIBSPEEX_CFLAGS)
570 AC_SUBST(LIBSPEEX_LIBS)
574 AC_MSG_CHECKING([whether we need libatomic_ops])
575 if test "x$need_libatomic_ops" = "xyes"; then
577 AC_CHECK_HEADERS([atomic_ops.h], [], [
578 AC_MSG_ERROR([*** libatomic-ops headers not found])
581 # Win32 does not need the lib and breaks horribly if we try to include it
582 if test "x$os_is_win32" != "x1" ; then
583 LIBS="$LIBS -latomic_ops"
589 #### Libsamplerate support (optional) ####
591 AC_ARG_ENABLE([samplerate],
592 AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]),
594 case "${enableval}" in
595 yes) samplerate=yes ;;
597 *) AC_MSG_ERROR(bad value ${enableval} for --disable-samplerate) ;;
602 if test "x${samplerate}" != xno ; then
603 PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ],
604 HAVE_LIBSAMPLERATE=1,
607 if test "x$samplerate" = xyes ; then
608 AC_MSG_ERROR([*** Libsamplerate not found])
615 if test "x${HAVE_LIBSAMPLERATE}" = x1 ; then
616 AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])
619 AC_SUBST(LIBSAMPLERATE_CFLAGS)
620 AC_SUBST(LIBSAMPLERATE_LIBS)
621 AC_SUBST(HAVE_LIBSAMPLERATE)
622 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
624 #### Database support ####
631 AS_HELP_STRING([--with-database=auto|tdb|gdbm],[Choose database backend.]),[],[with_database=auto])
633 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then
634 PKG_CHECK_MODULES(TDB, [ tdb ],
639 if test "x${with_database}" = "xtdb" ; then
640 AC_MSG_ERROR([*** tdb not found])
645 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then
648 AC_CHECK_LIB(gdbm, gdbm_open, [], [have_gdbm=no])
649 AC_CHECK_HEADERS(gdbm.h, [], [have_gdbm=no])
651 if test "x${have_gdbm}" = "xyes" ; then
656 elif test "x${with_database}" = "xgdbm"; then
657 AC_MSG_ERROR([*** gdbm not found])
661 if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1; then
662 AC_MSG_ERROR([*** missing database backend])
665 if test "x${HAVE_TDB}" = x1 ; then
666 AC_DEFINE([HAVE_TDB], 1, [Have tdb?])
669 if test "x${HAVE_GDBM}" = x1 ; then
670 AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
676 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
678 AC_SUBST(GDBM_CFLAGS)
681 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
683 #### OSS support (optional) ####
686 AS_HELP_STRING([--disable-oss],[Disable optional OSS support]),
688 case "${enableval}" in
691 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss) ;;
696 if test "x${oss}" != xno ; then
697 AC_CHECK_HEADERS([sys/soundcard.h],
700 AC_DEFINE([HAVE_OSS], 1, [Have OSS?])
704 if test "x$oss" = xyes ; then
705 AC_MSG_ERROR([*** OSS support not found])
713 AM_CONDITIONAL([HAVE_OSS], [test "x$HAVE_OSS" = x1])
716 #### ALSA support (optional) ####
718 AC_ARG_ENABLE([alsa],
719 AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
721 case "${enableval}" in
724 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
729 if test "x${alsa}" != xno ; then
730 PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
733 AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
737 if test "x$alsa" = xyes ; then
738 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
745 AC_SUBST(ASOUNDLIB_CFLAGS)
746 AC_SUBST(ASOUNDLIB_LIBS)
748 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
750 #### Solaris audio support (optional) ####
752 AC_ARG_ENABLE([solaris],
753 AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
755 case "${enableval}" in
758 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
763 if test "x${solaris}" != xno ; then
764 AC_CHECK_HEADERS([sys/audio.h],
767 AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
771 if test "x$solaris" = xyes ; then
772 AC_MSG_ERROR([*** Solaris audio support not found])
779 AC_SUBST(HAVE_SOLARIS)
780 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
782 #### GLib 2 support (optional) ####
784 AC_ARG_ENABLE([glib2],
785 AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
787 case "${enableval}" in
790 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
795 if test "x${glib2}" != xno ; then
796 PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
800 if test "x$glib2" = xyes ; then
801 AC_MSG_ERROR([*** GLib 2 support not found])
808 AC_SUBST(GLIB20_CFLAGS)
809 AC_SUBST(GLIB20_LIBS)
810 AC_SUBST(HAVE_GLIB20)
811 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
813 if test "x$HAVE_GLIB20" = x1 ; then
814 AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
817 #### GTK2 support (optional) ####
819 AC_ARG_ENABLE([gtk2],
820 AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
822 case "${enableval}" in
825 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
830 if test "x${gtk2}" != xno ; then
831 PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
835 if test "x$gtk2" = xyes ; then
836 AC_MSG_ERROR([*** Gtk+ 2 support not found])
843 AC_SUBST(GTK20_CFLAGS)
846 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
848 if test "x$HAVE_GTK20" = x1 ; then
849 AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
852 #### GConf support (optional) ####
854 AC_ARG_ENABLE([gconf],
855 AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
857 case "${enableval}" in
860 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
865 if test "x${gconf}" != xno ; then
866 PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 ],
870 if test "x$gconf" = xyes ; then
871 AC_MSG_ERROR([*** GConf support not found])
878 AC_SUBST(GCONF_CFLAGS)
881 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
883 #### Avahi support (optional) ####
885 AC_ARG_ENABLE([avahi],
886 AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
888 case "${enableval}" in
891 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
896 if test "x${avahi}" != xno ; then
897 PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
901 if test "x$avahi" = xyes ; then
902 AC_MSG_ERROR([*** Avahi support not found])
909 AC_SUBST(AVAHI_CFLAGS)
912 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
916 PKG_CHECK_MODULES(LIBOIL, [ liboil-0.3 >= 0.3.0 ])
917 AC_SUBST(LIBOIL_CFLAGS)
918 AC_SUBST(LIBOIL_LIBS)
920 ### JACK (optional) ####
922 AC_ARG_ENABLE([jack],
923 AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
925 case "${enableval}" in
928 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
933 if test "x${jack}" != xno ; then
934 PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
938 if test "x$jack" = xyes ; then
939 AC_MSG_ERROR([*** JACK support not found])
946 AC_SUBST(JACK_CFLAGS)
949 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
951 #### Async DNS support (optional) ####
953 AC_ARG_ENABLE([asyncns],
954 AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
956 case "${enableval}" in
959 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
964 if test "x${asyncns}" != xno ; then
965 PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
969 if test "x$asyncns" = xyes ; then
970 AC_MSG_ERROR([*** Async DNS support not found])
977 AC_SUBST(LIBASYNCNS_CFLAGS)
978 AC_SUBST(LIBASYNCNS_LIBS)
979 AC_SUBST(HAVE_LIBASYNCNS)
980 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
982 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
983 AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
986 #### TCP wrappers (optional) ####
988 AC_ARG_ENABLE([tcpwrap],
989 AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
991 case "${enableval}" in
994 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
999 if test "x${tcpwrap}" != xno ; then
1001 if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
1002 AC_MSG_ERROR([*** TCP wrappers support not found])
1008 AC_SUBST(LIBWRAP_LIBS)
1010 #### LIRC support (optional) ####
1012 AC_ARG_ENABLE([lirc],
1013 AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
1015 case "${enableval}" in
1018 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
1023 if test "x${lirc}" != xno ; then
1025 if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
1026 AC_MSG_ERROR([*** LIRC support not found])
1032 AC_SUBST(LIRC_CFLAGS)
1034 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1036 #### HAL support (optional) ####
1038 AC_ARG_ENABLE([hal],
1039 AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
1041 case "${enableval}" in
1044 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
1048 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1049 PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
1052 AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
1056 if test "x$hal" = xyes ; then
1057 AC_MSG_ERROR([*** HAL support not found])
1064 AC_SUBST(HAL_CFLAGS)
1067 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
1069 #### UDEV support (optional) ####
1071 AC_ARG_ENABLE([udev],
1072 AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
1074 case "${enableval}" in
1077 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1081 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1082 PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ],
1085 AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1089 if test "x$udev" = xyes ; then
1090 AC_MSG_ERROR([*** UDEV support not found])
1097 AC_SUBST(UDEV_CFLAGS)
1100 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1102 AC_DEFINE([LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE], 1, [I know the API is subject to change.])
1104 #### BlueZ support (optional) ####
1106 AC_ARG_ENABLE([bluez],
1107 AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1109 case "${enableval}" in
1112 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1116 if test "x${bluez}" != xno ; then
1117 PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1121 if test "x$bluez" = xyes ; then
1122 AC_MSG_ERROR([*** BLUEZ support not found])
1129 AC_SUBST(BLUEZ_CFLAGS)
1130 AC_SUBST(BLUEZ_LIBS)
1131 AC_SUBST(HAVE_BLUEZ)
1132 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1134 #### D-Bus support (optional) ####
1136 AC_ARG_ENABLE([dbus],
1137 AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1139 case "${enableval}" in
1142 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1147 if test "x$HAVE_HAL" = x1 ; then
1151 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1153 PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1157 LIBS="$LIBS $DBUS_LIBS"
1158 AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1160 AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1164 if test "x$dbus" = xyes ; then
1165 AC_MSG_ERROR([*** D-Bus support not found])
1172 AC_SUBST(DBUS_CFLAGS)
1175 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1177 ### IPv6 connection support (optional) ###
1179 AC_ARG_ENABLE([ipv6],
1180 AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1182 case "${enableval}" in
1185 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1190 if test "x${ipv6}" != xno ; then
1191 AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1197 #### OpenSSL support (optional) ####
1199 AC_ARG_ENABLE([openssl],
1200 AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1202 case "${enableval}" in
1205 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1210 if test "x${openssl}" != xno ; then
1212 PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1215 AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1219 if test "x$openssl" = xyes ; then
1220 AC_MSG_ERROR([*** OpenSSL support not found])
1227 AC_SUBST(OPENSSL_CFLAGS)
1228 AC_SUBST(OPENSSL_LIBS)
1229 AC_SUBST(HAVE_OPENSSL)
1230 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1232 ### Build and Install man pages ###
1233 AC_ARG_ENABLE(manpages,
1234 AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1235 [case "${enableval}" in
1236 yes) manpages=yes ;;
1238 *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1239 esac],[manpages=yes])
1241 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1243 #### PulseAudio system group & user #####
1245 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1246 if test -z "$with_system_user" ; then
1247 PA_SYSTEM_USER=pulse
1249 PA_SYSTEM_USER=$with_system_user
1251 AC_SUBST(PA_SYSTEM_USER)
1252 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1254 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1255 if test -z "$with_system_group" ; then
1256 PA_SYSTEM_GROUP=pulse
1258 PA_SYSTEM_GROUP=$with_system_group
1260 AC_SUBST(PA_SYSTEM_GROUP)
1261 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1263 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)]))
1264 if test -z "$with_access_group" ; then
1265 PA_ACCESS_GROUP=pulse-access
1267 PA_ACCESS_GROUP=$with_access_group
1269 AC_SUBST(PA_ACCESS_GROUP)
1270 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1273 per_user_esound_socket,
1274 AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1276 case "${enableval}" in
1277 yes) per_user_esound_socket=1 ;;
1278 no) per_user_esound_socket=0 ;;
1279 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1282 [per_user_esound_socket=1])
1284 if test "x$per_user_esound_socket" = "x1"; then
1285 AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1288 #### PulseAudio system runtime dir ####
1289 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1290 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1291 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1292 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1293 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1294 AC_SUBST(PA_SYSTEM_STATE_PATH)
1296 ###################################
1298 ###################################
1300 AC_ARG_ENABLE([legacy-runtime-dir],
1301 AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1302 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1303 AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1308 AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1309 [STATIC_BINS=1], [STATIC_BINS=0])
1310 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1314 AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1315 [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1316 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1317 if test "x$PREOPEN_MODS" != "xall" ; then
1319 for mod in $PREOPEN_MODS; do
1320 tmpLIBS="$tmpLIBS module-$mod.la"
1322 PREOPEN_MODS="$tmpLIBS"
1323 AC_SUBST(PREOPEN_MODS)
1328 AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules]),
1329 [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules"])
1331 AC_SUBST(modlibexecdir)
1335 AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1336 [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1337 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1346 libpulse-mainloop-glib.pc
1348 doxygen/doxygen.conf
1355 # ==========================================================================
1357 if test "x$HAVE_X11" = "x1" ; then
1362 if test "x$HAVE_OSS" = "x1" ; then
1367 if test "x$HAVE_ALSA" = "x1" ; then
1372 if test "x$HAVE_SOLARIS" = "x1" ; then
1377 if test "x$HAVE_GTK20" = "x1" ; then
1382 if test "x$HAVE_GLIB20" = "x1" ; then
1387 if test "x$HAVE_GCONF" = "x1" ; then
1392 if test "x$HAVE_AVAHI" = "x1" ; then
1397 if test "x$HAVE_JACK" = "x1" ; then
1401 ENABLE_LIBASYNCNS=no
1402 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1403 ENABLE_LIBASYNCNS=yes
1407 if test "x$HAVE_LIRC" = "x1" ; then
1412 if test "x$HAVE_HAL" = "x1" ; then
1417 if test "x$HAVE_UDEV" = "x1" ; then
1422 if test "x${LIBWRAP_LIBS}" != x ; then
1426 ENABLE_LIBSAMPLERATE=no
1427 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1428 ENABLE_LIBSAMPLERATE=yes
1432 if test "x${HAVE_BLUEZ}" = "x1" ; then
1437 if test "x${HAVE_GDBM}" = "x1" ; then
1442 if test "x${HAVE_TDB}" = "x1" ; then
1447 if test "x${HAVE_OPENSSL}" = "x1" ; then
1452 if test "x${HAVE_IPV6}" = "x1" ; then
1456 ENABLE_PER_USER_ESOUND_SOCKET=no
1457 if test "x$per_user_esound_socket" = "x1" ; then
1458 ENABLE_PER_USER_ESOUND_SOCKET=yes
1462 ---{ $PACKAGE_NAME $VERSION }---
1465 sysconfdir: ${sysconfdir}
1466 localstatedir: ${localstatedir}
1467 System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH}
1468 System State Path: ${PA_SYSTEM_STATE_PATH}
1469 System Config Path: ${PA_SYSTEM_CONFIG_PATH}
1473 Have X11: ${ENABLE_X11}
1474 Enable OSS: ${ENABLE_OSS}
1475 Enable Alsa: ${ENABLE_ALSA}
1476 Enable Solaris: ${ENABLE_SOLARIS}
1477 Enable GLib 2.0: ${ENABLE_GLIB20}
1478 Enable Gtk+ 2.0: ${ENABLE_GTK20}
1479 Enable GConf: ${ENABLE_GCONF}
1480 Enable Avahi: ${ENABLE_AVAHI}
1481 Enable Jack: ${ENABLE_JACK}
1482 Enable Async DNS: ${ENABLE_LIBASYNCNS}
1483 Enable LIRC: ${ENABLE_LIRC}
1484 Enable HAL: ${ENABLE_HAL}
1485 Enable udev: ${ENABLE_UDEV}
1486 Enable BlueZ: ${ENABLE_BLUEZ}
1487 Enable TCP Wrappers: ${ENABLE_TCPWRAP}
1488 Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
1489 Enable IPv6: ${ENABLE_IPV6}
1490 Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1491 Enable tdb: ${ENABLE_TDB}
1492 Enable gdbm: ${ENABLE_GDBM}
1494 System User: ${PA_SYSTEM_USER}
1495 System Group: ${PA_SYSTEM_GROUP}
1496 Access Group: ${PA_ACCESS_GROUP}
1497 Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1498 Force preopen: ${FORCE_PREOPEN}
1499 Preopened modules: ${PREOPEN_MODS}