Merge remote branch 'tanuk2/fixes'
[pulseaudio-raopUDP/pulseaudio-raop-alac.git] / configure.ac
blobabb8daeb2f69d0c30c02b33cc02349039f0ea803
1 # -*- Autoconf -*-
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.
23 AC_PREREQ(2.63)
25 AC_INIT([pulseaudio],[m4_esyscmd(./git-version-gen .tarball-version)],[mzchyfrnhqvb (at) 0pointer (dot) net])
26 AC_CONFIG_SRCDIR([src/daemon/main.c])
27 AC_CONFIG_MACRO_DIR([m4])
28 AC_CONFIG_HEADERS([config.h])
29 AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax])
31 m4_define(pa_major, `echo $VERSION | cut -d. -f1 | cut -d- -f1`)
32 m4_define(pa_minor, `echo $VERSION | cut -d. -f2 | cut -d- -f1`)
33 m4_define(pa_micro, `echo $VERSION | cut -d. -f3 | cut -d- -f1`)
35 AC_SUBST(PA_MAJOR, pa_major)
36 AC_SUBST(PA_MINOR, pa_minor)
37 AC_SUBST(PA_MICRO, pa_micro)
38 AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)
39 AC_SUBST(PA_MAJORMINORMICRO, pa_major.pa_minor.pa_micro)
40 AC_SUBST(PACKAGE_URL, [http://pulseaudio.org/])
42 AC_SUBST(PA_API_VERSION, 12)
43 AC_SUBST(PA_PROTOCOL_VERSION, 17)
45 # The stable ABI for client applications, for the version info x:y:z
46 # always will hold y=z
47 AC_SUBST(LIBPULSE_VERSION_INFO, [12:2:12])
49 # A simplified, synchronous, ABI-stable interface for client
50 # applications, for the version info x:y:z always will hold y=z
51 AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:3:0])
53 # The ABI-stable network browsing interface for client applications,
54 # for the version info x:y:z always will hold y=z
55 AC_SUBST(LIBPULSE_BROWSE_VERSION_INFO, [1:1:1])
57 # The ABI-stable GLib adapter for client applications, for the version
58 # info x:y:z always will hold y=z
59 AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:4:0])
61 AC_CANONICAL_HOST
62 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
64 AC_CHECK_PROG([STOW], [stow], [yes], [no])
66 AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
67    AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
68    ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
71 AM_SILENT_RULES([yes])
73 #### Checks for programs. ####
75 # mkdir -p
77 AC_PROG_MKDIR_P
79 # CC
81 AC_PROG_CC
82 AC_PROG_CC_C99
83 AM_PROG_CC_C_O
84 AC_PROG_GCC_TRADITIONAL
85 AC_USE_SYSTEM_EXTENSIONS
87 #### Platform hacks ####
89 case $host in
90    *-*-solaris* )
91       AC_DEFINE(_XOPEN_SOURCE,        600, Needed to get declarations for msg_control and msg_controllen on Solaris)
92       AC_DEFINE(__EXTENSIONS__,         1, Needed to get declarations for msg_control and msg_controllen on Solaris)
93       ;;
94    *-*-darwin* )
95       AC_DEFINE([_POSIX_C_SOURCE], [200112L], [Needed to get clock_gettime on Mac OS X])
96       AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
97       ;;
98 esac
100 # M4
102 AC_CHECK_PROGS([M4], gm4 m4, no)
103 if test "x$M4" = xno ; then
104    AC_MSG_ERROR([m4 missing])
107 dnl Compiler flags
108 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])
110 dnl Linker flags.
111 dnl Check whether the linker supports the -version-script option.
113 dnl This variable is used to make sure ${srcdir} is expanded and not
114 dnl passed to the CC_CHECK_LDFLAGS macro as a name.
115 tmp_ldflag="-Wl,-version-script=${srcdir}/src/map-file"
117 CC_CHECK_LDFLAGS([${tmp_ldflag}],
118     [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
119 AC_SUBST([VERSIONING_LDFLAGS])
121 dnl Use immediate (now) bindings; avoids the funky re-call in itself
122 dnl  the -z now syntax is lifted from Sun's linker and works with GNU's too
123 dnl  other linkes might be added later
124 CC_CHECK_LDFLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS="-Wl,-z,now"])
125 AC_SUBST([IMMEDIATE_LDFLAGS])
127 dnl On ELF systems we don't want the libraries to be unloaded since we
128 dnl don't clean them up properly, so we request the nodelete flag to be
129 dnl enabled.
131 dnl On other systems, we don't really know how to do that, but it's
132 dnl welcome if somebody can tell.
133 CC_CHECK_LDFLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS="-Wl,-z,nodelete"])
134 AC_SUBST([NODELETE_LDFLAGS])
136 dnl Check for the proper way to build libraries that have no undefined
137 dnl symbols; on some hosts this needs to be avoided but the macro
138 dnl takes care of it.
139 CC_NOUNDEFINED
141 dnl Check whether to build tests by default (as compile-test) or not
142 AC_ARG_ENABLE([default-build-tests],
143     AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
145 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
147 # Native atomic operation support
148 AC_ARG_ENABLE([atomic-arm-linux-helpers],
149     AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]),
150         [
151             case "${enableval}" in
152                 yes) atomic_arm_linux_helpers=yes ;;
153                 no) atomic_arm_linux_helpers=no ;;
154                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
155             esac
156         ],
157         [atomic_arm_linux_helpers=auto])
159 AC_ARG_ENABLE([atomic-arm-memory-barrier],
160     AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]),
161         [
162             case "${enableval}" in
163                 yes) AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers]) ;;
164                 no) ;;
165                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
166             esac
167         ],)
169 AC_MSG_CHECKING([target operating system])
170 case $host in
171         *-*-linux*)
172             AC_MSG_RESULT([linux])
173             pulse_target_os=linux
174         ;;
175         *-*-darwin*)
176             AC_MSG_RESULT([darwin])
177             pulse_target_os=darwin
178         ;;
179         *)
180             AC_MSG_RESULT([unknown])
181             pulse_target_os=unknown
182         ;;
183 esac
185 # If everything else fails use libatomic_ops
186 need_libatomic_ops=yes
188 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
189   pulseaudio_cv_sync_bool_compare_and_swap,
190   [AC_LINK_IFELSE(
191      AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
192      [pulseaudio_cv_sync_bool_compare_and_swap=yes],
193      [pulseaudio_cv_sync_bool_compare_and_swap=no])
194   ])
196 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
197     AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
198     need_libatomic_ops=no
199 else
200     # HW specific atomic ops stuff
201     AC_MSG_CHECKING([architecture for native atomic operations])
202     case $host in
203         arm*)
204             AC_MSG_RESULT([arm])
205             AC_MSG_CHECKING([whether we can use Linux kernel helpers])
206             # The Linux kernel helper functions have been there since 2.6.16. However
207             # compile time checking for kernel version in cross compile environment
208             # (which is usually the case for arm cpu) is tricky (or impossible).
209             if test "x$pulse_target_os" = "xlinux" && test "x$atomic_arm_linux_helpers" != "xno"; then
210                 AC_MSG_RESULT([yes])
211                 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
212                 need_libatomic_ops=no
213             else
214                AC_MSG_RESULT([no])
215                AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
216                  pulseaudio_cv_support_arm_atomic_ops,
217                  [AC_COMPILE_IFELSE(
218                     AC_LANG_PROGRAM([],
219                       [[volatile int a=0;
220                         int o=0, n=1, r;
221                         asm volatile ("ldrex    %0, [%1]\n"
222                                          "subs  %0, %0, %2\n"
223                                          "strexeq %0, %3, [%1]\n"
224                                          : "=&r" (r)
225                                          : "r" (&a), "Ir" (o), "r" (n)
226                                          : "cc");
227                         return (a==1 ? 0 : -1);
228                       ]]),
229                     [pulseaudio_cv_support_arm_atomic_ops=yes],
230                     [pulseaudio_cv_support_arm_atomic_ops=no])
231                  ])
232                AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
233                    AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARMv6 instructions.])
234                    need_libatomic_ops=no
235                  ])
236            fi
237         ;;
238         *-netbsdelf5*)
239             AC_MSG_RESULT([yes])
240             need_libatomic_ops=no
241         ;;
242         *-freebsd*)
243             AC_MSG_RESULT([yes])
244             need_libatomic_ops=no
245         ;;
246         *)
247             AC_MSG_RESULT([unknown])
248         ;;
249     esac
252 CC_CHECK_TLS
254 AC_CACHE_CHECK([whether $CC knows _Bool],
255   pulseaudio_cv__Bool,
256   [AC_COMPILE_IFELSE(
257      AC_LANG_PROGRAM([], [[_Bool b;]]),
258      [pulseaudio_cv__Bool=yes],
259      [pulseaudio_cv__Bool=no])
260   ])
262 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [
263     AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.])
264   ])
266 #### libtool stuff ####
267 LT_PREREQ(2.2)
268 LT_INIT([dlopen win32-dll disable-static])
270 dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
271 dnl exactly which version of libltdl is present in the system, so we
272 dnl just assume that it's a working version as long as we have the
273 dnl library and the header files.
275 dnl As an extra safety device, check for lt_dladvise_init() which is
276 dnl only implemented in libtool 2.x, and refine as we go if we have
277 dnl refined requirements.
279 dnl Check the header files first since the system may have a
280 dnl libltdl.so for runtime, but no headers, and we want to bail out as
281 dnl soon as possible.
283 dnl We don't need any special variable for this though, since the user
284 dnl can give the proper place to find libltdl through the standard
285 dnl variables like LDFLAGS and CPPFLAGS.
287 AC_CHECK_HEADER([ltdl.h],
288     [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
289     [LIBLTDL=])
291 AS_IF([test "x$LIBLTDL" = "x"],
292     [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
293 AC_SUBST([LIBLTDL])
295 #### Determine build environment ####
297 os_is_win32=0
298 os_is_darwin=0
300 case "$host_os" in
301         mingw*)
302         AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
303         os_is_win32=1
304                 ;;
305         darwin*)
306         AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.])
307         os_is_darwin=1
308                 ;;
309         esac
311 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
312 AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
314 ###################################
315 #   Basic environment checks      #
316 ###################################
318 #### Checks for header files. ####
320 # ISO
321 AC_HEADER_STDC
323 # POSIX
324 AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
325     netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
326     sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \
327     sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
328 AC_CHECK_HEADERS([netinet/ip.h], [], [],
329                  [#include <sys/types.h>
330                   #if HAVE_NETINET_IN_H
331                   # include <netinet/in.h>
332                   #endif
333                   #if HAVE_NETINET_IN_SYSTM_H
334                   # include <netinet/in_systm.h>
335                   #endif
336                  ])
337 AC_CHECK_HEADERS([regex.h], [HAVE_REGEX=1], [HAVE_REGEX=0])
338 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
340 AM_CONDITIONAL(HAVE_REGEX, test "x$HAVE_REGEX" = "x1")
341 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
343 # Linux
344 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
346 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
348 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
350 # Solaris
351 AC_CHECK_HEADERS_ONCE([sys/filio.h])
353 # Windows
354 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
356 # NetBSD
357 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
359 # Other
360 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
361 AC_CHECK_HEADERS_ONCE([byteswap.h])
362 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
363 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
364 AC_CHECK_HEADERS_ONCE([execinfo.h])
366 #### Typdefs, structures, etc. ####
368 AC_C_CONST
369 AC_C_BIGENDIAN
370 AC_TYPE_PID_T
371 AC_TYPE_SIZE_T
372 AC_CHECK_TYPES(ssize_t, , [AC_DEFINE([ssize_t], [signed long],
373     [Define ssize_t if it is not done by the standard libs.])])
374 AC_TYPE_OFF_T
376 AC_TYPE_UID_T
377 AC_CHECK_DECLS(environ)
379 AC_CHECK_DEFINE([SIGXCPU], [signal.h], [
380 HAVE_SIGXCPU=1
381 AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?])
382 ], [HAVE_SIGXCPU=0])
383 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
385 # Solaris lacks this
386 AC_CHECK_DEFINE([INADDR_NONE], [netinet/in.h], [],
387     [AC_CHECK_DEFINE([INADDR_NONE], [winsock2.h], [],
388         [AC_DEFINE([INADDR_NONE],  [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
390 #### POSIX threads ####
392 ACX_PTHREAD
394 #### Check for libs ####
396 # ISO
397 AC_SEARCH_LIBS([pow], [m])
399 # POSIX
400 AC_SEARCH_LIBS([sched_setscheduler], [rt])
401 AC_SEARCH_LIBS([dlopen], [dl])
402 AC_SEARCH_LIBS([shm_open], [rt])
403 AC_SEARCH_LIBS([inet_ntop], [nsl])
404 AC_SEARCH_LIBS([timer_create], [rt])
405 AC_SEARCH_LIBS([pthread_setaffinity_np], [pthread])
407 # BSD
408 AC_SEARCH_LIBS([connect], [socket])
409 AC_SEARCH_LIBS([backtrace], [execinfo])
411 # Non-standard
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 # Darwin/OS X
418 if test "x$os_is_darwin" = "x1" ; then
419     AC_MSG_CHECKING([looking for Apple CoreService Framework])
420     # How do I check a framework "library" - AC_CHECK_LIB prob. won't work??, just assign LIBS & hope
421     AC_CHECK_HEADER([/Developer/Headers/FlatCarbon/CoreServices.h],
422     [LIBS="$LIBS -framework CoreServices"],
423     [AC_MSG_ERROR([CoreServices.h header file not found]) ])
425     AC_MSG_RESULT([ok])
426     AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
427     HAVE_BONJOUR=1
430 AC_SUBST(HAVE_BONJOUR)
431 AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
433 #### Check for functions ####
435 # ISO
436 AC_CHECK_FUNCS_ONCE([lrintf strtof])
438 # POSIX
439 AC_FUNC_FORK
440 AC_FUNC_GETGROUPS
441 AC_FUNC_SELECT_ARGTYPES
442 AC_CHECK_FUNCS_ONCE([chmod chown fstat fchown fchmod clock_gettime getaddrinfo getgrgid_r getgrnam_r \
443     getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \
444     pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
445     sigaction sleep sysconf pthread_setaffinity_np])
446 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
448 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
450 # X/OPEN
451 AC_CHECK_FUNCS_ONCE([readlink])
453 # SUSv2
454 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
456 # SUSv3
457 AC_CHECK_FUNCS_ONCE([strerror_r])
459 # BSD
460 AC_CHECK_FUNCS_ONCE([lstat])
462 # Non-standard
464 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4])
466 AC_FUNC_ALLOCA
468 AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
469   pulseaudio_cv_PTHREAD_PRIO_INHERIT,
470   [save_CC=$CC; CC=$PTHREAD_CC
471    save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS
472    save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS
473    AC_LINK_IFELSE(
474      AC_LANG_PROGRAM(
475        [[
476          #include <pthread.h>
477        ]],
478        [[int i = PTHREAD_PRIO_INHERIT;]]),
479      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes],
480      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=no])
481    CC=$save_CC
482    CFLAGS=$save_CFLAGS
483    LIBS=$save_LIBS
484   ])
486 AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
487     AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
488   ])
490 AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation])
492 #### Large File-Support (LFS) ####
494 AC_SYS_LARGEFILE
496 # Check for open64 to know if the current system does have open64() and similar functions
497 AC_CHECK_FUNCS_ONCE([open64])
499 #### [lib]iconv ####
501 AM_ICONV
503 IT_PROG_INTLTOOL([0.35.0])
504 GETTEXT_PACKAGE=pulseaudio
505 AC_SUBST([GETTEXT_PACKAGE])
506 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
507 AM_GLIB_GNU_GETTEXT
509 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
510 AC_SUBST(pulselocaledir)
512 ###################################
513 #      External libraries         #
514 ###################################
516 #### pkg-config ####
518 PKG_PROG_PKG_CONFIG
520 #### X11 (optional) ####
522 AC_ARG_ENABLE([x11],
523     AS_HELP_STRING([--disable-x11],[Disable optional X11 support]),
524         [
525             case "${enableval}" in
526                 yes) x11=yes ;;
527                 no) x11=no ;;
528                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
529             esac
530         ],
531         [x11=auto])
533 if test "x${x11}" != xno ; then
534     PKG_CHECK_MODULES(X11, [ x11 ice sm xtst ],
535         HAVE_X11=1,
536         [
537             HAVE_X11=0
538             if test "x$x11" = xyes ; then
539                 AC_MSG_ERROR([*** X11 not found])
540             fi
541         ])
542 else
543     HAVE_X11=0
546 if test "x${HAVE_X11}" = x1 ; then
547    AC_DEFINE([HAVE_X11], 1, [Have X11?])
550 AC_SUBST(X11_CFLAGS)
551 AC_SUBST(X11_LIBS)
552 AC_SUBST(HAVE_X11)
553 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
555 #### Capabilities (optional) ####
557 CAP_LIBS=''
559 AC_ARG_WITH(
560         [caps],
561         AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
563 if test "x${with_caps}" != "xno"; then
564     AC_SEARCH_LIBS([cap_init], [cap], [], [
565                     if test "x${with_caps}" = "xyes" ; then
566                         AC_MSG_ERROR([*** POSIX caps libraries not found])
567                     fi])
568     AC_CHECK_HEADERS([sys/capability.h], [], [
569                     if test "x${with_caps}" = "xyes" ; then
570                         AC_MSG_ERROR([*** POSIX caps headers not found])
571                     fi])
574 #### Valgrind (optional) ####
576 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
578 #### Sound file ####
580 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
581 AC_SUBST(LIBSNDFILE_CFLAGS)
582 AC_SUBST(LIBSNDFILE_LIBS)
584 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
585 AC_SUBST(LIBSPEEX_CFLAGS)
586 AC_SUBST(LIBSPEEX_LIBS)
588 #### atomic-ops ###
590 AC_MSG_CHECKING([whether we need libatomic_ops])
591 if test "x$need_libatomic_ops" = "xyes"; then
592    AC_MSG_RESULT([yes])
593    AC_CHECK_HEADERS([atomic_ops.h], [], [
594    AC_MSG_ERROR([*** libatomic-ops headers not found])
595    ])
597    # Win32 does not need the lib and breaks horribly if we try to include it
598    if test "x$os_is_win32" != "x1" ; then
599        LIBS="$LIBS -latomic_ops"
600    fi
601 else
602    AC_MSG_RESULT([no])
605 #### Libsamplerate support (optional) ####
607 AC_ARG_ENABLE([samplerate],
608     AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]),
609         [
610             case "${enableval}" in
611                 yes) samplerate=yes ;;
612                 no) samplerate=no ;;
613                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-samplerate) ;;
614             esac
615         ],
616         [samplerate=auto])
618 if test "x${samplerate}" != xno ; then
619     PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ],
620         HAVE_LIBSAMPLERATE=1,
621         [
622             HAVE_LIBSAMPLERATE=0
623             if test "x$samplerate" = xyes ; then
624                 AC_MSG_ERROR([*** Libsamplerate not found])
625             fi
626         ])
627 else
628     HAVE_LIBSAMPLERATE=0
631 if test "x${HAVE_LIBSAMPLERATE}" = x1 ; then
632    AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])
635 AC_SUBST(LIBSAMPLERATE_CFLAGS)
636 AC_SUBST(LIBSAMPLERATE_LIBS)
637 AC_SUBST(HAVE_LIBSAMPLERATE)
638 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
640 #### Database support ####
642 HAVE_TDB=0
643 HAVE_GDBM=0
644 HAVE_SIMPLEDB=0
646 AC_ARG_WITH(
647         [database],
648         AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
650 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then
651     PKG_CHECK_MODULES(TDB, [ tdb ],
652         [
653             HAVE_TDB=1
654             with_database=tdb
655         ], [
656             if test "x${with_database}" = "xtdb" ; then
657                 AC_MSG_ERROR([*** tdb not found])
658             fi
659         ])
662 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then
663    have_gdbm=yes
665    AC_CHECK_LIB(gdbm, gdbm_open, [], [have_gdbm=no])
666    AC_CHECK_HEADERS(gdbm.h, [], [have_gdbm=no])
668    if test "x${have_gdbm}" = "xyes" ; then
669        HAVE_GDBM=1
670        GDBM_CFLAGS=
671        GDBM_LIBS=-lgdbm
672        with_database=gdbm
673    elif test "x${with_database}" = "xgdbm"; then
674        AC_MSG_ERROR([*** gdbm not found])
675    fi
678 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xsimple" ; then
679     HAVE_SIMPLEDB=1
680     with_database=simple
683 if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1 -a "x${HAVE_SIMPLEDB}" != x1; then
684    AC_MSG_ERROR([*** missing database backend])
687 if test "x${HAVE_TDB}" = x1 ; then
688    AC_DEFINE([HAVE_TDB], 1, [Have tdb?])
691 if test "x${HAVE_GDBM}" = x1 ; then
692    AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
695 if test "x${HAVE_SIMPLEDB}" = x1 ; then
696     AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?])
699 AC_SUBST(TDB_CFLAGS)
700 AC_SUBST(TDB_LIBS)
701 AC_SUBST(HAVE_TDB)
702 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
704 AC_SUBST(GDBM_CFLAGS)
705 AC_SUBST(GDBM_LIBS)
706 AC_SUBST(HAVE_GDBM)
707 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
709 AC_SUBST(HAVE_SIMPLEDB)
710 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
712 #### OSS support (optional) ####
714 AC_ARG_ENABLE([oss-output],
715     AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]),
716         [
717             case "${enableval}" in
718                 yes) oss_output=yes ;;
719                 no) oss_output=no ;;
720                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-output) ;;
721             esac
722         ],
723         [oss_output=auto])
725 AC_ARG_ENABLE([oss-wrapper],
726     AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]),
727         [
728             case "${enableval}" in
729                 yes) oss_wrapper=yes ;;
730                 no) oss_wrapper=no ;;
731                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-wrapper) ;;
732             esac
733         ],
734         [oss_wrapper=auto])
736 if test "x${oss_output}" != xno || test "x${oss_wrapper}" != "xno"; then
737     AC_CHECK_HEADERS([sys/soundcard.h],
738         [
739             if test "x${oss_output}" != "xno"; then
740                 AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?])
741             fi
742             if test "x${oss_wrapper}" != "xno"; then
743                 AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?])
744             fi
745             HAVE_OSS=1
746         ],
747         [
748             HAVE_OSS=0
749             if test "x$oss_output" = xyes || test "x$oss_wrapper" = "xyes"; then
750                 AC_MSG_ERROR([*** OSS support not found])
751             fi
752         ])
753 else
754     HAVE_OSS=0
757 AC_SUBST(HAVE_OSS)
758 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS" = x1 && test "x${oss_output}" != "xno"])
759 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS" = x1 && test "x${oss_wrapper}" != "xno"])
761 #### CoreAudio support (optional) ####
763 AC_ARG_ENABLE([coreaudio-output],
764     AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]),
765         [
766             case "${enableval}" in
767                 yes) coreaudio_enabled=yes ;;
768                 no) coreaudio_enabled=no ;;
769                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-coreaudio-output) ;;
770             esac
771         ],
772         [coreaudio_enabled=auto])
774 if test "x${coreaudio_enabled}" != xno ; then
775     AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1)
776 else
777     HAVE_COREAUDIO=0
780 AC_SUBST(HAVE_COREAUDIO)
781 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = x1 && test "x${coreaudio_enabled}" != "xno"])
783 #### ALSA support (optional) ####
785 AC_ARG_ENABLE([alsa],
786     AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
787         [
788             case "${enableval}" in
789                 yes) alsa=yes ;;
790                 no) alsa=no ;;
791                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
792             esac
793         ],
794         [alsa=auto])
796 if test "x${alsa}" != xno ; then
797     PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
798         [
799             HAVE_ALSA=1
800             AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
801         ],
802         [
803             HAVE_ALSA=0
804             if test "x$alsa" = xyes ; then
805                 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
806             fi
807         ])
808 else
809     HAVE_ALSA=0
812 AC_SUBST(ASOUNDLIB_CFLAGS)
813 AC_SUBST(ASOUNDLIB_LIBS)
814 AC_SUBST(HAVE_ALSA)
815 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
817 #### Solaris audio support (optional) ####
819 AC_ARG_ENABLE([solaris],
820     AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
821         [
822             case "${enableval}" in
823                 yes) solaris=yes ;;
824                 no) solaris=no ;;
825                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
826             esac
827         ],
828         [solaris=auto])
830 if test "x${solaris}" != xno ; then
831     AC_CHECK_HEADERS([sys/audio.h],
832         [
833             HAVE_SOLARIS=1
834             AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
835         ],
836         [
837             HAVE_SOLARIS=0
838             if test "x$solaris" = xyes ; then
839                 AC_MSG_ERROR([*** Solaris audio support not found])
840             fi
841         ])
842 else
843     HAVE_SOLARIS=0
846 AC_SUBST(HAVE_SOLARIS)
847 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
849 #### GLib 2 support (optional) ####
851 AC_ARG_ENABLE([glib2],
852     AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
853         [
854             case "${enableval}" in
855                 yes) glib2=yes ;;
856                 no) glib2=no ;;
857                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
858             esac
859         ],
860         [glib2=auto])
862 if test "x${glib2}" != xno ; then
863     PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
864         HAVE_GLIB20=1,
865         [
866             HAVE_GLIB20=0
867             if test "x$glib2" = xyes ; then
868                 AC_MSG_ERROR([*** GLib 2 support not found])
869             fi
870         ])
871 else
872     HAVE_GLIB20=0
875 AC_SUBST(GLIB20_CFLAGS)
876 AC_SUBST(GLIB20_LIBS)
877 AC_SUBST(HAVE_GLIB20)
878 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
880 if test "x$HAVE_GLIB20" = x1 ; then
881    AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
884 #### GTK2 support (optional) ####
886 AC_ARG_ENABLE([gtk2],
887     AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
888         [
889             case "${enableval}" in
890                 yes) gtk2=yes ;;
891                 no) gtk2=no ;;
892                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
893             esac
894         ],
895         [gtk2=auto])
897 if test "x${gtk2}" != xno ; then
898     PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
899         HAVE_GTK20=1,
900         [
901             HAVE_GTK20=0
902             if test "x$gtk2" = xyes ; then
903                 AC_MSG_ERROR([*** Gtk+ 2 support not found])
904             fi
905         ])
906 else
907     HAVE_GTK20=0
910 AC_SUBST(GTK20_CFLAGS)
911 AC_SUBST(GTK20_LIBS)
912 AC_SUBST(HAVE_GTK20)
913 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
915 if test "x$HAVE_GTK20" = x1 ; then
916    AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
919 #### GConf support (optional) ####
921 AC_ARG_ENABLE([gconf],
922     AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
923         [
924             case "${enableval}" in
925                 yes) gconf=yes ;;
926                 no) gconf=no ;;
927                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
928             esac
929         ],
930         [gconf=auto])
932 if test "x${gconf}" != xno ; then
933     PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ],
934         HAVE_GCONF=1,
935         [
936             HAVE_GCONF=0
937             if test "x$gconf" = xyes ; then
938                 AC_MSG_ERROR([*** GConf support not found])
939             fi
940         ])
941 else
942     HAVE_GCONF=0
945 AC_SUBST(GCONF_CFLAGS)
946 AC_SUBST(GCONF_LIBS)
947 AC_SUBST(HAVE_GCONF)
948 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
950 #### Avahi support (optional) ####
952 AC_ARG_ENABLE([avahi],
953     AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
954         [
955             case "${enableval}" in
956                 yes) avahi=yes ;;
957                 no) avahi=no ;;
958                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
959             esac
960         ],
961         [avahi=auto])
963 if test "x${avahi}" != xno ; then
964     PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
965         HAVE_AVAHI=1,
966         [
967                 HAVE_AVAHI=0
968                 if test "x$avahi" = xyes ; then
969                         AC_MSG_ERROR([*** Avahi support not found])
970                 fi
971         ])
972 else
973     HAVE_AVAHI=0
976 AC_SUBST(AVAHI_CFLAGS)
977 AC_SUBST(AVAHI_LIBS)
978 AC_SUBST(HAVE_AVAHI)
979 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
981 ### JACK (optional) ####
983 AC_ARG_ENABLE([jack],
984     AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
985         [
986             case "${enableval}" in
987                 yes) jack=yes ;;
988                 no) jack=no ;;
989                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
990             esac
991         ],
992         [jack=auto])
994 if test "x${jack}" != xno ; then
995     PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
996         HAVE_JACK=1,
997         [
998             HAVE_JACK=0
999             if test "x$jack" = xyes ; then
1000                 AC_MSG_ERROR([*** JACK support not found])
1001             fi
1002         ])
1003 else
1004     HAVE_JACK=0
1007 AC_SUBST(JACK_CFLAGS)
1008 AC_SUBST(JACK_LIBS)
1009 AC_SUBST(HAVE_JACK)
1010 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
1012 #### Async DNS support (optional) ####
1014 AC_ARG_ENABLE([asyncns],
1015     AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
1016         [
1017             case "${enableval}" in
1018                 yes) asyncns=yes ;;
1019                 no) asyncns=no ;;
1020                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
1021             esac
1022         ],
1023         [asyncns=auto])
1025 if test "x${asyncns}" != xno ; then
1026     PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
1027         HAVE_LIBASYNCNS=1,
1028         [
1029             HAVE_LIBASYNCNS=0
1030             if test "x$asyncns" = xyes ; then
1031                 AC_MSG_ERROR([*** Async DNS support not found])
1032             fi
1033         ])
1034 else
1035     HAVE_LIBASYNCNS=0
1038 AC_SUBST(LIBASYNCNS_CFLAGS)
1039 AC_SUBST(LIBASYNCNS_LIBS)
1040 AC_SUBST(HAVE_LIBASYNCNS)
1041 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1043 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
1044    AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
1047 #### TCP wrappers (optional) ####
1049 AC_ARG_ENABLE([tcpwrap],
1050     AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
1051         [
1052             case "${enableval}" in
1053                 yes) tcpwrap=yes ;;
1054                 no) tcpwrap=no ;;
1055                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
1056             esac
1057         ],
1058         [tcpwrap=auto])
1060 if test "x${tcpwrap}" != xno ; then
1061     ACX_LIBWRAP
1062     if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
1063         AC_MSG_ERROR([*** TCP wrappers support not found])
1064     fi
1065 else
1066     LIBWRAP_LIBS=
1069 AC_SUBST(LIBWRAP_LIBS)
1071 #### LIRC support (optional) ####
1073 AC_ARG_ENABLE([lirc],
1074     AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
1075         [
1076             case "${enableval}" in
1077                 yes) lirc=yes ;;
1078                 no) lirc=no ;;
1079                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
1080             esac
1081         ],
1082         [lirc=auto])
1084 if test "x${lirc}" != xno ; then
1085     ACX_LIRC
1086     if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
1087         AC_MSG_ERROR([*** LIRC support not found])
1088     fi
1089 else
1090     HAVE_LIRC=0
1093 AC_SUBST(LIRC_CFLAGS)
1094 AC_SUBST(LIRC_LIBS)
1095 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1097 #### HAL support (optional) ####
1099 AC_ARG_ENABLE([hal],
1100     AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
1101         [
1102             case "${enableval}" in
1103                 yes) hal=yes ;;
1104                 no) hal=no ;;
1105                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
1106             esac
1107         ],
1108         [hal=auto])
1109 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1110     PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
1111         [
1112             HAVE_HAL=1
1113             AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
1114         ],
1115         [
1116             HAVE_HAL=0
1117             if test "x$hal" = xyes ; then
1118                 AC_MSG_ERROR([*** HAL support not found])
1119             fi
1120         ])
1121 else
1122     HAVE_HAL=0
1125 AC_SUBST(HAL_CFLAGS)
1126 AC_SUBST(HAL_LIBS)
1127 AC_SUBST(HAVE_HAL)
1128 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
1130 #### UDEV support (optional) ####
1132 AC_ARG_ENABLE([udev],
1133     AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
1134         [
1135             case "${enableval}" in
1136                 yes) udev=yes ;;
1137                 no) udev=no ;;
1138                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1139             esac
1140         ],
1141         [udev=auto])
1142 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1143     PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ],
1144         [
1145             HAVE_UDEV=1
1146             AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1147         ],
1148         [
1149             HAVE_UDEV=0
1150             if test "x$udev" = xyes ; then
1151                 AC_MSG_ERROR([*** UDEV support not found])
1152             fi
1153         ])
1154 else
1155     HAVE_UDEV=0
1158 AC_SUBST(UDEV_CFLAGS)
1159 AC_SUBST(UDEV_LIBS)
1160 AC_SUBST(HAVE_UDEV)
1161 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1163 #### HAL compat support (optional) ####
1165 AC_ARG_ENABLE([hal-compat],
1166     AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]),
1167         [
1168             case "${enableval}" in
1169                 yes) halcompat=yes ;;
1170                 no) halcompat=no ;;
1171                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal-compat) ;;
1172             esac
1173         ],
1174         [halcompat=auto])
1175 if test "x${halcompat}" != xno -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1" ; then
1176     HAVE_HAL_COMPAT=1
1177     AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
1178 else
1179     HAVE_HAL_COMPAT=0
1182 AC_SUBST(HAVE_HAL_COMPAT)
1183 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1185 #### BlueZ support (optional) ####
1187 AC_ARG_ENABLE([bluez],
1188     AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1189         [
1190             case "${enableval}" in
1191                 yes) bluez=yes ;;
1192                 no) bluez=no ;;
1193                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1194             esac
1195         ],
1196         [bluez=auto])
1197 if test "x${bluez}" != xno ; then
1198     PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1199         HAVE_BLUEZ=1,
1200         [
1201             HAVE_BLUEZ=0
1202             if test "x$bluez" = xyes ; then
1203                 AC_MSG_ERROR([*** BLUEZ support not found])
1204             fi
1205         ])
1206 else
1207     HAVE_BLUEZ=0
1210 AC_SUBST(BLUEZ_CFLAGS)
1211 AC_SUBST(BLUEZ_LIBS)
1212 AC_SUBST(HAVE_BLUEZ)
1213 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1215 #### D-Bus support (optional) ####
1217 AC_ARG_ENABLE([dbus],
1218     AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1219         [
1220             case "${enableval}" in
1221                 yes) dbus=yes ;;
1222                 no) dbus=no ;;
1223                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1224             esac
1225         ],
1226         [dbus=auto])
1228 if test "x$HAVE_HAL" = x1 ; then
1229    dbus=yes
1232 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1234     PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1235         [
1236             HAVE_DBUS=1
1237             saved_LIBS="$LIBS"
1238             LIBS="$LIBS $DBUS_LIBS"
1239             CFLAGS="$CFLAGS $DBUS_CFLAGS"
1240             AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1241             LIBS="$saved_LIBS"
1242             AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1243         ],
1244         [
1245             HAVE_DBUS=0
1246             if test "x$dbus" = xyes ; then
1247                 AC_MSG_ERROR([*** D-Bus support not found])
1248             fi
1249         ])
1250 else
1251     HAVE_DBUS=0
1254 AC_SUBST(DBUS_CFLAGS)
1255 AC_SUBST(DBUS_LIBS)
1256 AC_SUBST(HAVE_DBUS)
1257 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1259 ### IPv6 connection support (optional) ###
1261 AC_ARG_ENABLE([ipv6],
1262     AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1263         [
1264             case "${enableval}" in
1265                 yes) ipv6=yes ;;
1266                 no) ipv6=no ;;
1267                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1268             esac
1269         ],
1270         [ipv6=auto])
1272 if test "x${ipv6}" != xno ; then
1273     AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1274     HAVE_IPV6=1
1275 else
1276     HAVE_IPV6=0
1279 #### OpenSSL support (optional) ####
1281 AC_ARG_ENABLE([openssl],
1282     AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1283         [
1284             case "${enableval}" in
1285                 yes) openssl=yes ;;
1286                 no) openssl=no ;;
1287                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1288             esac
1289         ],
1290         [openssl=auto])
1292 if test "x${openssl}" != xno ; then
1294     PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1295         [
1296             HAVE_OPENSSL=1
1297             AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1298         ],
1299         [
1300             HAVE_OPENSSL=0
1301             if test "x$openssl" = xyes ; then
1302                 AC_MSG_ERROR([*** OpenSSL support not found])
1303             fi
1304         ])
1305 else
1306     HAVE_OPENSSL=0
1309 AC_SUBST(OPENSSL_CFLAGS)
1310 AC_SUBST(OPENSSL_LIBS)
1311 AC_SUBST(HAVE_OPENSSL)
1312 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1314 #### FFTW (optional) ####
1315 AC_ARG_WITH(
1316         [fftw],
1317         AS_HELP_STRING([--without-fftw], [Omit FFTW-using modules (equalizer)]))
1319 if test "x${with_fftw}" != "xno"; then
1320     PKG_CHECK_MODULES([FFTW], [fftw3f], [HAVE_FFTW=1], [HAVE_FFTW=0])
1322 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1324 ### Build and Install man pages ###
1325 AC_ARG_ENABLE(manpages,
1326         AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1327 [case "${enableval}" in
1328   yes) manpages=yes ;;
1329   no)  manpages=no ;;
1330   *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1331 esac],[manpages=yes])
1333 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1335 #### PulseAudio system group & user  #####
1337 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1338 if test -z "$with_system_user" ; then
1339     PA_SYSTEM_USER=pulse
1340 else
1341     PA_SYSTEM_USER=$with_system_user
1343 AC_SUBST(PA_SYSTEM_USER)
1344 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1346 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1347 if test -z "$with_system_group" ; then
1348     PA_SYSTEM_GROUP=pulse
1349 else
1350     PA_SYSTEM_GROUP=$with_system_group
1352 AC_SUBST(PA_SYSTEM_GROUP)
1353 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1355 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)]))
1356 if test -z "$with_access_group" ; then
1357     PA_ACCESS_GROUP=pulse-access
1358 else
1359     PA_ACCESS_GROUP=$with_access_group
1361 AC_SUBST(PA_ACCESS_GROUP)
1362 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1364 AC_ARG_ENABLE(
1365         per_user_esound_socket,
1366         AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1367         [
1368             case "${enableval}" in
1369                 yes) per_user_esound_socket=1 ;;
1370                 no) per_user_esound_socket=0 ;;
1371                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1372             esac
1373         ],
1374         [per_user_esound_socket=1])
1376 if test "x$per_user_esound_socket" = "x1"; then
1377    AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1380 #### PulseAudio system runtime dir ####
1381 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1382 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1383 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1384 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1385 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1386 AC_SUBST(PA_SYSTEM_STATE_PATH)
1388 ###################################
1389 #            Output               #
1390 ###################################
1392 AC_ARG_ENABLE([legacy-runtime-dir],
1393         AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1394 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1395         AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1398 AC_ARG_ENABLE(
1399         [static-bins],
1400         AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1401         [STATIC_BINS=1], [STATIC_BINS=0])
1402 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1404 AC_ARG_WITH(
1405         [preopen-mods],
1406         AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1407         [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1408 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1409 if test "x$PREOPEN_MODS" != "xall" ; then
1410     tmpLIBS=""
1411     for mod in $PREOPEN_MODS; do
1412         tmpLIBS="$tmpLIBS module-$mod.la"
1413     done
1414     PREOPEN_MODS="$tmpLIBS"
1415     AC_SUBST(PREOPEN_MODS)
1418 AC_ARG_WITH(
1419         [module-dir],
1420         AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules]),
1421         [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules"])
1423 AC_SUBST(modlibexecdir)
1425 AC_ARG_WITH(
1426         [udev-rules-dir],
1427         AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1428         [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1430 AC_SUBST(udevrulesdir)
1432 AC_ARG_ENABLE(
1433         [force-preopen],
1434         AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1435         [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1436 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1438 AC_CONFIG_FILES([
1439 Makefile
1440 src/Makefile
1441 man/Makefile
1442 libpulse.pc
1443 libpulse-simple.pc
1444 libpulse-browse.pc
1445 libpulse-mainloop-glib.pc
1446 doxygen/Makefile
1447 doxygen/doxygen.conf
1448 src/pulse/version.h
1449 po/Makefile.in
1452 AC_OUTPUT
1454 # ==========================================================================
1455 ENABLE_X11=no
1456 if test "x$HAVE_X11" = "x1" ; then
1457    ENABLE_X11=yes
1460 ENABLE_OSS_OUTPUT=no
1461 ENABLE_OSS_WRAPPER=no
1462 if test "x$HAVE_OSS" = "x1" ; then
1463    if test "x$enable_oss_output" != "xno"; then
1464       ENABLE_OSS_OUTPUT=yes
1465    fi
1466    if test "x$enable_oss_wrapper" != "xno"; then
1467       ENABLE_OSS_WRAPPER=yes
1468    fi
1471 ENABLE_COREAUDIO=no
1472 if test "x$HAVE_COREAUDIO" = "x1" ; then
1473    ENABLE_COREAUDIO=yes
1476 ENABLE_ALSA=no
1477 if test "x$HAVE_ALSA" = "x1" ; then
1478    ENABLE_ALSA=yes
1481 ENABLE_SOLARIS=no
1482 if test "x$HAVE_SOLARIS" = "x1" ; then
1483    ENABLE_SOLARIS=yes
1486 ENABLE_GTK20=no
1487 if test "x$HAVE_GTK20" = "x1" ; then
1488    ENABLE_GTK20=yes
1491 ENABLE_GLIB20=no
1492 if test "x$HAVE_GLIB20" = "x1" ; then
1493    ENABLE_GLIB20=yes
1496 ENABLE_GCONF=no
1497 if test "x$HAVE_GCONF" = "x1" ; then
1498    ENABLE_GCONF=yes
1501 ENABLE_AVAHI=no
1502 if test "x$HAVE_AVAHI" = "x1" ; then
1503    ENABLE_AVAHI=yes
1506 ENABLE_JACK=no
1507 if test "x$HAVE_JACK" = "x1" ; then
1508    ENABLE_JACK=yes
1511 ENABLE_LIBASYNCNS=no
1512 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1513    ENABLE_LIBASYNCNS=yes
1516 ENABLE_LIRC=no
1517 if test "x$HAVE_LIRC" = "x1" ; then
1518    ENABLE_LIRC=yes
1521 ENABLE_DBUS=no
1522 if test "x$HAVE_DBUS" = "x1" ; then
1523    ENABLE_DBUS=yes
1526 ENABLE_HAL=no
1527 if test "x$HAVE_HAL" = "x1" ; then
1528    ENABLE_HAL=yes
1531 ENABLE_UDEV=no
1532 if test "x$HAVE_UDEV" = "x1" ; then
1533    ENABLE_UDEV=yes
1536 ENABLE_HAL_COMPAT=no
1537 if test "x$HAVE_HAL_COMPAT" = "x1" ; then
1538    ENABLE_HAL_COMPAT=yes
1541 ENABLE_TCPWRAP=no
1542 if test "x${LIBWRAP_LIBS}" != x ; then
1543    ENABLE_TCPWRAP=yes
1546 ENABLE_LIBSAMPLERATE=no
1547 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1548    ENABLE_LIBSAMPLERATE=yes
1551 ENABLE_BLUEZ=no
1552 if test "x${HAVE_BLUEZ}" = "x1" ; then
1553    ENABLE_BLUEZ=yes
1556 ENABLE_GDBM=no
1557 if test "x${HAVE_GDBM}" = "x1" ; then
1558    ENABLE_GDBM=yes
1561 ENABLE_TDB=no
1562 if test "x${HAVE_TDB}" = "x1" ; then
1563    ENABLE_TDB=yes
1566 ENABLE_SIMPLEDB=no
1567 if test "x${HAVE_SIMPLEDB}" = "x1" ; then
1568     ENABLE_SIMPLEDB=yes
1571 ENABLE_FFTW=no
1572 if test "x${HAVE_FFTW}" = "x1" ; then
1573    ENABLE_FFTW=yes
1576 ENABLE_OPENSSL=no
1577 if test "x${HAVE_OPENSSL}" = "x1" ; then
1578    ENABLE_OPENSSL=yes
1581 ENABLE_IPV6=no
1582 if test "x${HAVE_IPV6}" = "x1" ; then
1583    ENABLE_IPV6=yes
1586 ENABLE_PER_USER_ESOUND_SOCKET=no
1587 if test "x$per_user_esound_socket" = "x1" ; then
1588    ENABLE_PER_USER_ESOUND_SOCKET=yes
1591 echo "
1592  ---{ $PACKAGE_NAME $VERSION }---
1594     prefix:                        ${prefix}
1595     sysconfdir:                    ${sysconfdir}
1596     localstatedir:                 ${localstatedir}
1597     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1598     System State Path:             ${PA_SYSTEM_STATE_PATH}
1599     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1600     Compiler:                      ${CC}
1601     CFLAGS:                        ${CFLAGS}
1603     Have X11:                      ${ENABLE_X11}
1604     Enable OSS Output:             ${ENABLE_OSS_OUTPUT}
1605     Enable OSS Wrapper:            ${ENABLE_OSS_WRAPPER}
1606     Enable CoreAudio:              ${ENABLE_COREAUDIO}
1607     Enable Alsa:                   ${ENABLE_ALSA}
1608     Enable Solaris:                ${ENABLE_SOLARIS}
1609     Enable GLib 2.0:               ${ENABLE_GLIB20}
1610     Enable Gtk+ 2.0:               ${ENABLE_GTK20}
1611     Enable GConf:                  ${ENABLE_GCONF}
1612     Enable Avahi:                  ${ENABLE_AVAHI}
1613     Enable Jack:                   ${ENABLE_JACK}
1614     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1615     Enable LIRC:                   ${ENABLE_LIRC}
1616     Enable DBUS:                   ${ENABLE_DBUS}
1617     Enable HAL:                    ${ENABLE_HAL}
1618     Enable udev:                   ${ENABLE_UDEV}
1619     Enable HAL->udev compat:       ${ENABLE_HAL_COMPAT}
1620     Enable BlueZ:                  ${ENABLE_BLUEZ}
1621     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1622     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1623     Enable IPv6:                   ${ENABLE_IPV6}
1624     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1625     Enable tdb:                    ${ENABLE_TDB}
1626     Enable gdbm:                   ${ENABLE_GDBM}
1627     Enable simple database:        ${ENABLE_SIMPLEDB}
1628     Enable fftw:                   ${ENABLE_FFTW}
1630     System User:                   ${PA_SYSTEM_USER}
1631     System Group:                  ${PA_SYSTEM_GROUP}
1632     Access Group:                  ${PA_ACCESS_GROUP}
1633     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1634     Force preopen:                 ${FORCE_PREOPEN}
1635     Preopened modules:             ${PREOPEN_MODS}