Merge branch 'master' of ssh://rootserver/home/lennart/git/public/pulseaudio
[profile/ivi/pulseaudio.git] / configure.ac
1 # -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
3
4 # This file is part of PulseAudio.
5 #
6 # Copyright 2004-2008 Lennart Poettering
7 # Copyright 2006-2007 Pierre Ossman <ossman@cendio.se> for Cendio AB
8 #
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.
13 #
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.
18 #
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.
22
23 AC_PREREQ(2.63)
24
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])
31
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`)
35
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/])
42
43 AC_SUBST(PA_API_VERSION, 12)
44 AC_SUBST(PA_PROTOCOL_VERSION, 16)
45
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])
49
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])
53
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])
57
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])
61
62 AC_CANONICAL_HOST
63 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
64
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}"
68 fi
69
70 #### Platform hacks ####
71
72 case $host in
73    *-*-solaris* )
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)
76       ;;
77 esac
78
79 AM_SILENT_RULES([yes])
80
81 #### Checks for programs. ####
82
83 # mkdir -p
84
85 AC_PROG_MKDIR_P
86
87 # CC
88
89 AC_PROG_CC
90 AC_PROG_CC_C99
91 AM_PROG_CC_C_O
92 AC_PROG_GCC_TRADITIONAL
93 AC_USE_SYSTEM_EXTENSIONS
94
95 # M4
96
97 AC_CHECK_PROGS([M4], gm4 m4, no)
98 if test "x$M4" = xno ; then
99    AC_MSG_ERROR([m4 missing])
100 fi
101
102 dnl Compiler flags
103 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])
104
105 dnl Linker flags.
106 dnl Check whether the linker supports the -version-script option.
107
108 dnl This variable is used to make sure ${srcdir} is expanded and not
109 dnl passed to the CC_CHECK_LDFLAGS macro as a name.
110 tmp_ldflag="-Wl,-version-script=${srcdir}/src/map-file"
111
112 CC_CHECK_LDFLAGS([${tmp_ldflag}],
113     [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
114 AC_SUBST([VERSIONING_LDFLAGS])
115
116 dnl Use immediate (now) bindings; avoids the funky re-call in itself
117 dnl  the -z now syntax is lifted from Sun's linker and works with GNU's too
118 dnl  other linkes might be added later
119 CC_CHECK_LDFLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS="-Wl,-z,now"])
120 AC_SUBST([IMMEDIATE_LDFLAGS])
121
122 dnl Check for the proper way to build libraries that have no undefined
123 dnl symbols; on some hosts this needs to be avoided but the macro
124 dnl takes care of it.
125 CC_NOUNDEFINED
126
127 dnl Check whether to build tests by default (as compile-test) or not
128 AC_ARG_ENABLE([default-build-tests],
129     AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
130
131 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
132
133 # Native atomic operation support
134 AC_ARG_ENABLE([atomic-arm-linux-helpers],
135     AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]),
136         [
137             case "${enableval}" in
138                 yes) atomic_arm_linux_helpers=yes ;;
139                 no) atomic_arm_linux_helpers=no ;;
140                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
141             esac
142         ],
143         [atomic_arm_linux_helpers=auto])
144
145 AC_ARG_ENABLE([atomic-arm-memory-barrier],
146     AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]),
147         [
148             case "${enableval}" in
149                 yes) AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers]) ;;
150                 no) ;;
151                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
152             esac
153         ],)
154
155 AC_ARG_ENABLE([netbsd-atomic-ops],
156     AS_HELP_STRING([--enable-netbsd-atomic-ops],[Use the native NetBSD atomic_ops implementation]),
157         [
158             case "${enableval}" in
159                 yes) atomic_netbsd_helpers=yes ;;
160                 no) atomic_netbsd_helpers=no ;;
161                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-netbsd-atomic-ops) ;;
162             esac
163         ],
164         [atomic_netbsd_helpers=auto])
165
166 AC_MSG_CHECKING([target operating system])
167 case $host in
168         *-*-linux*)
169             AC_MSG_RESULT([linux])
170             pulse_target_os=linux
171         ;;
172         *-*-netbsd*)
173             AC_MSG_RESULT([netbsd])
174             pulse_target_os=netbsd
175         ;;
176         *)
177             AC_MSG_RESULT([unknown])
178             pulse_target_os=unknown
179         ;;
180 esac
181
182 # If everything else fails use libatomic_ops
183 need_libatomic_ops=yes
184
185 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
186   pulseaudio_cv_sync_bool_compare_and_swap,
187   [AC_LINK_IFELSE(
188      AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
189      [pulseaudio_cv_sync_bool_compare_and_swap=yes],
190      [pulseaudio_cv_sync_bool_compare_and_swap=no])
191   ])
192
193 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
194     AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
195     need_libatomic_ops=no
196 else
197     # HW specific atomic ops stuff
198     AC_MSG_CHECKING([architecture for native atomic operations])
199     case $host_cpu in
200         arm*)
201             AC_MSG_RESULT([arm])
202             AC_MSG_CHECKING([whether we can use Linux kernel helpers])
203             # The Linux kernel helper functions have been there since 2.6.16. However
204             # compile time checking for kernel version in cross compile environment
205             # (which is usually the case for arm cpu) is tricky (or impossible).
206             if test "x$pulse_target_os" = "xlinux" && test "x$atomic_arm_linux_helpers" != "xno"; then
207                 AC_MSG_RESULT([yes])
208                 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
209                 need_libatomic_ops=no
210             else
211                AC_MSG_RESULT([no])
212                AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
213                  pulseaudio_cv_support_arm_atomic_ops,
214                  [AC_COMPILE_IFELSE(
215                     AC_LANG_PROGRAM([],
216                       [[volatile int a=0;
217                         int o=0, n=1, r;
218                         asm volatile ("ldrex    %0, [%1]\n"
219                                          "subs  %0, %0, %2\n"
220                                          "strexeq %0, %3, [%1]\n"
221                                          : "=&r" (r)
222                                          : "r" (&a), "Ir" (o), "r" (n)
223                                          : "cc");
224                         return (a==1 ? 0 : -1);
225                       ]]),
226                     [pulseaudio_cv_support_arm_atomic_ops=yes],
227                     [pulseaudio_cv_support_arm_atomic_ops=no])
228                  ])
229                AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
230                    AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARMv6 instructions.])
231                    need_libatomic_ops=no
232                  ])
233            fi
234         ;;
235         *)
236             if test "x$pulse_target_os" = "xnetbsd" && test "x$atomic_netbsd_helpers" = "xyes"; then
237                 AC_MSG_RESULT([yes])
238                 AC_DEFINE_UNQUOTED(NETBSD_ATOMIC_OPS, 1, [netbsd implementation])
239                 need_libatomic_ops=no
240             else
241                 AC_MSG_RESULT([unknown])
242             fi
243         ;;
244     esac
245 fi
246
247 CC_CHECK_TLS
248
249 AC_CACHE_CHECK([whether $CC knows _Bool],
250   pulseaudio_cv__Bool,
251   [AC_COMPILE_IFELSE(
252      AC_LANG_PROGRAM([], [[_Bool b;]]),
253      [pulseaudio_cv__Bool=yes],
254      [pulseaudio_cv__Bool=no])
255   ])
256
257 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [
258     AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.])
259   ])
260
261 #### libtool stuff ####
262 LT_PREREQ(2.2)
263 LT_INIT([dlopen win32-dll disable-static])
264
265 dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
266 dnl exactly which version of libltdl is present in the system, so we
267 dnl just assume that it's a working version as long as we have the
268 dnl library and the header files.
269 dnl
270 dnl As an extra safety device, check for lt_dladvise_init() which is
271 dnl only implemented in libtool 2.x, and refine as we go if we have
272 dnl refined requirements.
273 dnl
274 dnl Check the header files first since the system may have a
275 dnl libltdl.so for runtime, but no headers, and we want to bail out as
276 dnl soon as possible.
277 dnl
278 dnl We don't need any special variable for this though, since the user
279 dnl can give the proper place to find libltdl through the standard
280 dnl variables like LDFLAGS and CPPFLAGS.
281
282 AC_CHECK_HEADER([ltdl.h],
283     [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
284     [LIBLTDL=])
285
286 AS_IF([test "x$LIBLTDL" = "x"],
287     [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
288 AC_SUBST([LIBLTDL])
289
290 #### Determine build environment ####
291
292 os_is_win32=0
293
294 case "$host_os" in
295         mingw*)
296         AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
297         os_is_win32=1
298                 ;;
299         esac
300
301 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
302
303 ###################################
304 #   Basic environment checks      #
305 ###################################
306
307 #### Checks for header files. ####
308
309 # ISO
310 AC_HEADER_STDC
311
312 # POSIX
313 AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
314     netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
315     sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \
316     sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
317 AC_CHECK_HEADERS([netinet/ip.h], [], [],
318                  [#include <sys/types.h>
319                   #if HAVE_NETINET_IN_H
320                   # include <netinet/in.h>
321                   #endif
322                   #if HAVE_NETINET_IN_SYSTM_H
323                   # include <netinet/in_systm.h>
324                   #endif
325                  ])
326 AC_CHECK_HEADERS([regex.h], [HAVE_REGEX=1], [HAVE_REGEX=0])
327 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
328
329 AM_CONDITIONAL(HAVE_REGEX, test "x$HAVE_REGEX" = "x1")
330 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
331
332 # Linux
333 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
334
335 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
336
337 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
338
339 # Solaris
340 AC_CHECK_HEADERS_ONCE([sys/filio.h])
341
342 # Windows
343 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
344
345 # NetBSD
346 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
347
348 # Other
349 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
350 AC_CHECK_HEADERS_ONCE([byteswap.h])
351 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
352 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
353 AC_CHECK_HEADERS_ONCE([execinfo.h])
354
355 #### Typdefs, structures, etc. ####
356
357 AC_C_CONST
358 AC_C_BIGENDIAN
359 AC_TYPE_PID_T
360 AC_TYPE_SIZE_T
361 AC_CHECK_TYPES(ssize_t, , [AC_DEFINE([ssize_t], [signed long],
362     [Define ssize_t if it is not done by the standard libs.])])
363 AC_TYPE_OFF_T
364
365 AC_TYPE_UID_T
366 AC_CHECK_DECLS(environ)
367
368 AC_CHECK_DEFINE([SIGXCPU], [signal.h], [
369 HAVE_SIGXCPU=1
370 AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?])
371 ], [HAVE_SIGXCPU=0])
372 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
373
374 # Solaris lacks this
375 AC_CHECK_DEFINE([INADDR_NONE], [netinet/in.h], [],
376     [AC_CHECK_DEFINE([INADDR_NONE], [winsock2.h], [],
377         [AC_DEFINE([INADDR_NONE],  [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
378
379 #### POSIX threads ####
380
381 ACX_PTHREAD
382
383 #### Check for libs ####
384
385 # ISO
386 AC_SEARCH_LIBS([pow], [m])
387
388 # POSIX
389 AC_SEARCH_LIBS([sched_setscheduler], [rt])
390 AC_SEARCH_LIBS([dlopen], [dl])
391 AC_SEARCH_LIBS([shm_open], [rt])
392 AC_SEARCH_LIBS([inet_ntop], [nsl])
393 AC_SEARCH_LIBS([timer_create], [rt])
394
395 # BSD
396 AC_SEARCH_LIBS([connect], [socket])
397 AC_SEARCH_LIBS([backtrace], [execinfo])
398
399 # Non-standard
400
401 # This magic is needed so we do not needlessly add static libs to the win32
402 # build, disabling its ability to make dlls.
403 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
404
405 #### Check for functions ####
406
407 # ISO
408 AC_CHECK_FUNCS_ONCE([lrintf strtof])
409
410 # POSIX
411 AC_FUNC_FORK
412 AC_FUNC_GETGROUPS
413 AC_FUNC_SELECT_ARGTYPES
414 AC_CHECK_FUNCS_ONCE([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \
415     getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \
416     pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
417     sigaction sleep sysconf pthread_setaffinity_np])
418 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
419
420 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
421
422 # X/OPEN
423 AC_CHECK_FUNCS_ONCE([readlink])
424
425 # SUSv2
426 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
427
428 # SUSv3
429 AC_CHECK_FUNCS_ONCE([strerror_r])
430
431 # BSD
432 AC_CHECK_FUNCS_ONCE([lstat])
433
434 # Non-standard
435
436 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l])
437
438 AC_FUNC_ALLOCA
439
440 AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
441   pulseaudio_cv_PTHREAD_PRIO_INHERIT,
442   [save_CC=$CC; CC=$PTHREAD_CC
443    save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS
444    save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS
445    AC_LINK_IFELSE(
446      AC_LANG_PROGRAM(
447        [[
448          #include <pthread.h>
449        ]],
450        [[int i = PTHREAD_PRIO_INHERIT;]]),
451      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes],
452      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=no])
453    CC=$save_CC
454    CFLAGS=$save_CFLAGS
455    LIBS=$save_LIBS
456   ])
457
458 AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
459     AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
460   ])
461
462 AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation])
463
464 #### Large File-Support (LFS) ####
465
466 AC_SYS_LARGEFILE
467
468 # Check for open64 to know if the current system does have open64() and similar functions
469 AC_CHECK_FUNCS_ONCE([open64])
470
471 #### [lib]iconv ####
472
473 AM_ICONV
474
475 IT_PROG_INTLTOOL([0.35.0])
476 GETTEXT_PACKAGE=pulseaudio
477 AC_SUBST([GETTEXT_PACKAGE])
478 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
479 AM_GLIB_GNU_GETTEXT
480
481 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
482 AC_SUBST(pulselocaledir)
483
484 ###################################
485 #      External libraries         #
486 ###################################
487
488 #### pkg-config ####
489
490 PKG_PROG_PKG_CONFIG
491
492 #### X11 (optional) ####
493
494 AC_ARG_ENABLE([x11],
495     AS_HELP_STRING([--disable-x11],[Disable optional X11 support]),
496         [
497             case "${enableval}" in
498                 yes) x11=yes ;;
499                 no) x11=no ;;
500                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
501             esac
502         ],
503         [x11=auto])
504
505 if test "x${x11}" != xno ; then
506     PKG_CHECK_MODULES(X11, [ x11 ice sm xtst ],
507         HAVE_X11=1,
508         [
509             HAVE_X11=0
510             if test "x$x11" = xyes ; then
511                 AC_MSG_ERROR([*** X11 not found])
512             fi
513         ])
514 else
515     HAVE_X11=0
516 fi
517
518 if test "x${HAVE_X11}" = x1 ; then
519    AC_DEFINE([HAVE_X11], 1, [Have X11?])
520 fi
521
522 AC_SUBST(X11_CFLAGS)
523 AC_SUBST(X11_LIBS)
524 AC_SUBST(HAVE_X11)
525 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
526
527 #### Capabilities (optional) ####
528
529 CAP_LIBS=''
530
531 AC_ARG_WITH(
532         [caps],
533         AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
534
535 if test "x${with_caps}" != "xno"; then
536     AC_SEARCH_LIBS([cap_init], [cap], [], [
537                     if test "x${with_caps}" = "xyes" ; then
538                         AC_MSG_ERROR([*** POSIX caps libraries not found])
539                     fi])
540     AC_CHECK_HEADERS([sys/capability.h], [], [
541                     if test "x${with_caps}" = "xyes" ; then
542                         AC_MSG_ERROR([*** POSIX caps headers not found])
543                     fi])
544 fi
545
546 #### Valgrind (optional) ####
547
548 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
549
550 #### Sound file ####
551
552 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
553 AC_SUBST(LIBSNDFILE_CFLAGS)
554 AC_SUBST(LIBSNDFILE_LIBS)
555
556 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
557 AC_SUBST(LIBSPEEX_CFLAGS)
558 AC_SUBST(LIBSPEEX_LIBS)
559
560 #### atomic-ops ###
561
562 AC_MSG_CHECKING([whether we need libatomic_ops])
563 if test "x$need_libatomic_ops" = "xyes"; then
564    AC_MSG_RESULT([yes])
565    AC_CHECK_HEADERS([atomic_ops.h], [], [
566    AC_MSG_ERROR([*** libatomic-ops headers not found])
567    ])
568
569    # Win32 does not need the lib and breaks horribly if we try to include it
570    if test "x$os_is_win32" != "x1" ; then
571        LIBS="$LIBS -latomic_ops"
572    fi
573 else
574    AC_MSG_RESULT([no])
575 fi
576
577 #### Libsamplerate support (optional) ####
578
579 AC_ARG_ENABLE([samplerate],
580     AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]),
581         [
582             case "${enableval}" in
583                 yes) samplerate=yes ;;
584                 no) samplerate=no ;;
585                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-samplerate) ;;
586             esac
587         ],
588         [samplerate=auto])
589
590 if test "x${samplerate}" != xno ; then
591     PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ],
592         HAVE_LIBSAMPLERATE=1,
593         [
594             HAVE_LIBSAMPLERATE=0
595             if test "x$samplerate" = xyes ; then
596                 AC_MSG_ERROR([*** Libsamplerate not found])
597             fi
598         ])
599 else
600     HAVE_LIBSAMPLERATE=0
601 fi
602
603 if test "x${HAVE_LIBSAMPLERATE}" = x1 ; then
604    AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])
605 fi
606
607 AC_SUBST(LIBSAMPLERATE_CFLAGS)
608 AC_SUBST(LIBSAMPLERATE_LIBS)
609 AC_SUBST(HAVE_LIBSAMPLERATE)
610 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
611
612 #### Database support ####
613
614 HAVE_TDB=0
615 HAVE_GDBM=0
616
617 AC_ARG_WITH(
618         [database],
619         AS_HELP_STRING([--with-database=auto|tdb|gdbm],[Choose database backend.]),[],[with_database=auto])
620
621 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then
622     PKG_CHECK_MODULES(TDB, [ tdb ],
623         [
624             HAVE_TDB=1
625             with_database=tdb
626         ], [
627             if test "x${with_database}" = "xtdb" ; then
628                 AC_MSG_ERROR([*** tdb not found])
629             fi
630         ])
631 fi
632
633 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then
634    have_gdbm=yes
635
636    AC_CHECK_LIB(gdbm, gdbm_open, [], [have_gdbm=no])
637    AC_CHECK_HEADERS(gdbm.h, [], [have_gdbm=no])
638
639    if test "x${have_gdbm}" = "xyes" ; then
640        HAVE_GDBM=1
641        GDBM_CFLAGS=
642        GDBM_LIBS=-lgdbm
643        with_database=gdbm
644    elif test "x${with_database}" = "xgdbm"; then
645        AC_MSG_ERROR([*** gdbm not found])
646    fi
647 fi
648
649 if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1; then
650    AC_MSG_ERROR([*** missing database backend])
651 fi
652
653 if test "x${HAVE_TDB}" = x1 ; then
654    AC_DEFINE([HAVE_TDB], 1, [Have tdb?])
655 fi
656
657 if test "x${HAVE_GDBM}" = x1 ; then
658    AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
659 fi
660
661 AC_SUBST(TDB_CFLAGS)
662 AC_SUBST(TDB_LIBS)
663 AC_SUBST(HAVE_TDB)
664 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
665
666 AC_SUBST(GDBM_CFLAGS)
667 AC_SUBST(GDBM_LIBS)
668 AC_SUBST(HAVE_GDBM)
669 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
670
671 #### OSS support (optional) ####
672
673 AC_ARG_ENABLE([oss],
674     AS_HELP_STRING([--disable-oss],[Disable optional OSS support]),
675         [
676             case "${enableval}" in
677                 yes) oss=yes ;;
678                 no) oss=no ;;
679                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss) ;;
680             esac
681         ],
682         [oss=auto])
683
684 if test "x${oss}" != xno ; then
685     AC_CHECK_HEADERS([sys/soundcard.h],
686         [
687             HAVE_OSS=1
688             AC_DEFINE([HAVE_OSS], 1, [Have OSS?])
689         ],
690         [
691             HAVE_OSS=0
692             if test "x$oss" = xyes ; then
693                 AC_MSG_ERROR([*** OSS support not found])
694             fi
695         ])
696 else
697     HAVE_OSS=0
698 fi
699
700 AC_SUBST(HAVE_OSS)
701 AM_CONDITIONAL([HAVE_OSS], [test "x$HAVE_OSS" = x1])
702
703
704 #### ALSA support (optional) ####
705
706 AC_ARG_ENABLE([alsa],
707     AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
708         [
709             case "${enableval}" in
710                 yes) alsa=yes ;;
711                 no) alsa=no ;;
712                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
713             esac
714         ],
715         [alsa=auto])
716
717 if test "x${alsa}" != xno ; then
718     PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
719         [
720             HAVE_ALSA=1
721             AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
722         ],
723         [
724             HAVE_ALSA=0
725             if test "x$alsa" = xyes ; then
726                 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
727             fi
728         ])
729 else
730     HAVE_ALSA=0
731 fi
732
733 AC_SUBST(ASOUNDLIB_CFLAGS)
734 AC_SUBST(ASOUNDLIB_LIBS)
735 AC_SUBST(HAVE_ALSA)
736 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
737
738 #### Solaris audio support (optional) ####
739
740 AC_ARG_ENABLE([solaris],
741     AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
742         [
743             case "${enableval}" in
744                 yes) solaris=yes ;;
745                 no) solaris=no ;;
746                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
747             esac
748         ],
749         [solaris=auto])
750
751 if test "x${solaris}" != xno ; then
752     AC_CHECK_HEADERS([sys/audio.h],
753         [
754             HAVE_SOLARIS=1
755             AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
756         ],
757         [
758             HAVE_SOLARIS=0
759             if test "x$solaris" = xyes ; then
760                 AC_MSG_ERROR([*** Solaris audio support not found])
761             fi
762         ])
763 else
764     HAVE_SOLARIS=0
765 fi
766
767 AC_SUBST(HAVE_SOLARIS)
768 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
769
770 #### GLib 2 support (optional) ####
771
772 AC_ARG_ENABLE([glib2],
773     AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
774         [
775             case "${enableval}" in
776                 yes) glib2=yes ;;
777                 no) glib2=no ;;
778                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
779             esac
780         ],
781         [glib2=auto])
782
783 if test "x${glib2}" != xno ; then
784     PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
785         HAVE_GLIB20=1,
786         [
787             HAVE_GLIB20=0
788             if test "x$glib2" = xyes ; then
789                 AC_MSG_ERROR([*** GLib 2 support not found])
790             fi
791         ])
792 else
793     HAVE_GLIB20=0
794 fi
795
796 AC_SUBST(GLIB20_CFLAGS)
797 AC_SUBST(GLIB20_LIBS)
798 AC_SUBST(HAVE_GLIB20)
799 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
800
801 if test "x$HAVE_GLIB20" = x1 ; then
802    AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
803 fi
804
805 #### GTK2 support (optional) ####
806
807 AC_ARG_ENABLE([gtk2],
808     AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
809         [
810             case "${enableval}" in
811                 yes) gtk2=yes ;;
812                 no) gtk2=no ;;
813                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
814             esac
815         ],
816         [gtk2=auto])
817
818 if test "x${gtk2}" != xno ; then
819     PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
820         HAVE_GTK20=1,
821         [
822             HAVE_GTK20=0
823             if test "x$gtk2" = xyes ; then
824                 AC_MSG_ERROR([*** Gtk+ 2 support not found])
825             fi
826         ])
827 else
828     HAVE_GTK20=0
829 fi
830
831 AC_SUBST(GTK20_CFLAGS)
832 AC_SUBST(GTK20_LIBS)
833 AC_SUBST(HAVE_GTK20)
834 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
835
836 if test "x$HAVE_GTK20" = x1 ; then
837    AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
838 fi
839
840 #### GConf support (optional) ####
841
842 AC_ARG_ENABLE([gconf],
843     AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
844         [
845             case "${enableval}" in
846                 yes) gconf=yes ;;
847                 no) gconf=no ;;
848                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
849             esac
850         ],
851         [gconf=auto])
852
853 if test "x${gconf}" != xno ; then
854     PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 ],
855         HAVE_GCONF=1,
856         [
857             HAVE_GCONF=0
858             if test "x$gconf" = xyes ; then
859                 AC_MSG_ERROR([*** GConf support not found])
860             fi
861         ])
862 else
863     HAVE_GCONF=0
864 fi
865
866 AC_SUBST(GCONF_CFLAGS)
867 AC_SUBST(GCONF_LIBS)
868 AC_SUBST(HAVE_GCONF)
869 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
870
871 #### Avahi support (optional) ####
872
873 AC_ARG_ENABLE([avahi],
874     AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
875         [
876             case "${enableval}" in
877                 yes) avahi=yes ;;
878                 no) avahi=no ;;
879                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
880             esac
881         ],
882         [avahi=auto])
883
884 if test "x${avahi}" != xno ; then
885     PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
886         HAVE_AVAHI=1,
887         [
888                 HAVE_AVAHI=0
889                 if test "x$avahi" = xyes ; then
890                         AC_MSG_ERROR([*** Avahi support not found])
891                 fi
892         ])
893 else
894     HAVE_AVAHI=0
895 fi
896
897 AC_SUBST(AVAHI_CFLAGS)
898 AC_SUBST(AVAHI_LIBS)
899 AC_SUBST(HAVE_AVAHI)
900 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
901
902 ### LIBOIL ####
903
904 PKG_CHECK_MODULES(LIBOIL, [ liboil-0.3 >= 0.3.0 ])
905 AC_SUBST(LIBOIL_CFLAGS)
906 AC_SUBST(LIBOIL_LIBS)
907
908 ### JACK (optional) ####
909
910 AC_ARG_ENABLE([jack],
911     AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
912         [
913             case "${enableval}" in
914                 yes) jack=yes ;;
915                 no) jack=no ;;
916                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
917             esac
918         ],
919         [jack=auto])
920
921 if test "x${jack}" != xno ; then
922     PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
923         HAVE_JACK=1,
924         [
925             HAVE_JACK=0
926             if test "x$jack" = xyes ; then
927                 AC_MSG_ERROR([*** JACK support not found])
928             fi
929         ])
930 else
931     HAVE_JACK=0
932 fi
933
934 AC_SUBST(JACK_CFLAGS)
935 AC_SUBST(JACK_LIBS)
936 AC_SUBST(HAVE_JACK)
937 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
938
939 #### Async DNS support (optional) ####
940
941 AC_ARG_ENABLE([asyncns],
942     AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
943         [
944             case "${enableval}" in
945                 yes) asyncns=yes ;;
946                 no) asyncns=no ;;
947                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
948             esac
949         ],
950         [asyncns=auto])
951
952 if test "x${asyncns}" != xno ; then
953     PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
954         HAVE_LIBASYNCNS=1,
955         [
956             HAVE_LIBASYNCNS=0
957             if test "x$asyncns" = xyes ; then
958                 AC_MSG_ERROR([*** Async DNS support not found])
959             fi
960         ])
961 else
962     HAVE_LIBASYNCNS=0
963 fi
964
965 AC_SUBST(LIBASYNCNS_CFLAGS)
966 AC_SUBST(LIBASYNCNS_LIBS)
967 AC_SUBST(HAVE_LIBASYNCNS)
968 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
969
970 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
971    AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
972 fi
973
974 #### TCP wrappers (optional) ####
975
976 AC_ARG_ENABLE([tcpwrap],
977     AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
978         [
979             case "${enableval}" in
980                 yes) tcpwrap=yes ;;
981                 no) tcpwrap=no ;;
982                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
983             esac
984         ],
985         [tcpwrap=auto])
986
987 if test "x${tcpwrap}" != xno ; then
988     ACX_LIBWRAP
989     if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
990         AC_MSG_ERROR([*** TCP wrappers support not found])
991     fi
992 else
993     LIBWRAP_LIBS=
994 fi
995
996 AC_SUBST(LIBWRAP_LIBS)
997
998 #### LIRC support (optional) ####
999
1000 AC_ARG_ENABLE([lirc],
1001     AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
1002         [
1003             case "${enableval}" in
1004                 yes) lirc=yes ;;
1005                 no) lirc=no ;;
1006                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
1007             esac
1008         ],
1009         [lirc=auto])
1010
1011 if test "x${lirc}" != xno ; then
1012     ACX_LIRC
1013     if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
1014         AC_MSG_ERROR([*** LIRC support not found])
1015     fi
1016 else
1017     HAVE_LIRC=0
1018 fi
1019
1020 AC_SUBST(LIRC_CFLAGS)
1021 AC_SUBST(LIRC_LIBS)
1022 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1023
1024 #### HAL support (optional) ####
1025
1026 AC_ARG_ENABLE([hal],
1027     AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
1028         [
1029             case "${enableval}" in
1030                 yes) hal=yes ;;
1031                 no) hal=no ;;
1032                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
1033             esac
1034         ],
1035         [hal=auto])
1036 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1037     PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
1038         [
1039             HAVE_HAL=1
1040             AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
1041         ],
1042         [
1043             HAVE_HAL=0
1044             if test "x$hal" = xyes ; then
1045                 AC_MSG_ERROR([*** HAL support not found])
1046             fi
1047         ])
1048 else
1049     HAVE_HAL=0
1050 fi
1051
1052 AC_SUBST(HAL_CFLAGS)
1053 AC_SUBST(HAL_LIBS)
1054 AC_SUBST(HAVE_HAL)
1055 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
1056
1057 #### UDEV support (optional) ####
1058
1059 AC_ARG_ENABLE([udev],
1060     AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
1061         [
1062             case "${enableval}" in
1063                 yes) udev=yes ;;
1064                 no) udev=no ;;
1065                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1066             esac
1067         ],
1068         [udev=auto])
1069 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1070     PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ],
1071         [
1072             HAVE_UDEV=1
1073             AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1074         ],
1075         [
1076             HAVE_UDEV=0
1077             if test "x$udev" = xyes ; then
1078                 AC_MSG_ERROR([*** UDEV support not found])
1079             fi
1080         ])
1081 else
1082     HAVE_UDEV=0
1083 fi
1084
1085 AC_SUBST(UDEV_CFLAGS)
1086 AC_SUBST(UDEV_LIBS)
1087 AC_SUBST(HAVE_UDEV)
1088 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1089
1090 AC_DEFINE([LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE], 1, [I know the API is subject to change.])
1091
1092 #### BlueZ support (optional) ####
1093
1094 AC_ARG_ENABLE([bluez],
1095     AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1096         [
1097             case "${enableval}" in
1098                 yes) bluez=yes ;;
1099                 no) bluez=no ;;
1100                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1101             esac
1102         ],
1103         [bluez=auto])
1104 if test "x${bluez}" != xno ; then
1105     PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1106         HAVE_BLUEZ=1,
1107         [
1108             HAVE_BLUEZ=0
1109             if test "x$bluez" = xyes ; then
1110                 AC_MSG_ERROR([*** BLUEZ support not found])
1111             fi
1112         ])
1113 else
1114     HAVE_BLUEZ=0
1115 fi
1116
1117 AC_SUBST(BLUEZ_CFLAGS)
1118 AC_SUBST(BLUEZ_LIBS)
1119 AC_SUBST(HAVE_BLUEZ)
1120 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1121
1122 #### D-Bus support (optional) ####
1123
1124 AC_ARG_ENABLE([dbus],
1125     AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1126         [
1127             case "${enableval}" in
1128                 yes) dbus=yes ;;
1129                 no) dbus=no ;;
1130                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1131             esac
1132         ],
1133         [dbus=auto])
1134
1135 if test "x$HAVE_HAL" = x1 ; then
1136    dbus=yes
1137 fi
1138
1139 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1140
1141     PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1142         [
1143             HAVE_DBUS=1
1144             saved_LIBS="$LIBS"
1145             LIBS="$LIBS $DBUS_LIBS"
1146             AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1147             LIBS="$saved_LIBS"
1148             AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1149         ],
1150         [
1151             HAVE_DBUS=0
1152             if test "x$dbus" = xyes ; then
1153                 AC_MSG_ERROR([*** D-Bus support not found])
1154             fi
1155         ])
1156 else
1157     HAVE_DBUS=0
1158 fi
1159
1160 AC_SUBST(DBUS_CFLAGS)
1161 AC_SUBST(DBUS_LIBS)
1162 AC_SUBST(HAVE_DBUS)
1163 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1164
1165 ### IPv6 connection support (optional) ###
1166
1167 AC_ARG_ENABLE([ipv6],
1168     AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1169         [
1170             case "${enableval}" in
1171                 yes) ipv6=yes ;;
1172                 no) ipv6=no ;;
1173                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1174             esac
1175         ],
1176         [ipv6=auto])
1177
1178 if test "x${ipv6}" != xno ; then
1179     AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1180     HAVE_IPV6=1
1181 else
1182     HAVE_IPV6=0
1183 fi
1184
1185 #### OpenSSL support (optional) ####
1186
1187 AC_ARG_ENABLE([openssl],
1188     AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1189         [
1190             case "${enableval}" in
1191                 yes) openssl=yes ;;
1192                 no) openssl=no ;;
1193                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1194             esac
1195         ],
1196         [openssl=auto])
1197
1198 if test "x${openssl}" != xno ; then
1199
1200     PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1201         [
1202             HAVE_OPENSSL=1
1203             AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1204         ],
1205         [
1206             HAVE_OPENSSL=0
1207             if test "x$openssl" = xyes ; then
1208                 AC_MSG_ERROR([*** OpenSSL support not found])
1209             fi
1210         ])
1211 else
1212     HAVE_OPENSSL=0
1213 fi
1214
1215 AC_SUBST(OPENSSL_CFLAGS)
1216 AC_SUBST(OPENSSL_LIBS)
1217 AC_SUBST(HAVE_OPENSSL)
1218 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1219
1220 ### Build and Install man pages ###
1221 AC_ARG_ENABLE(manpages,
1222         AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1223 [case "${enableval}" in
1224   yes) manpages=yes ;;
1225   no)  manpages=no ;;
1226   *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1227 esac],[manpages=yes])
1228
1229 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1230
1231 #### PulseAudio system group & user  #####
1232
1233 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1234 if test -z "$with_system_user" ; then
1235     PA_SYSTEM_USER=pulse
1236 else
1237     PA_SYSTEM_USER=$with_system_user
1238 fi
1239 AC_SUBST(PA_SYSTEM_USER)
1240 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1241
1242 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1243 if test -z "$with_system_group" ; then
1244     PA_SYSTEM_GROUP=pulse
1245 else
1246     PA_SYSTEM_GROUP=$with_system_group
1247 fi
1248 AC_SUBST(PA_SYSTEM_GROUP)
1249 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1250
1251 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)]))
1252 if test -z "$with_access_group" ; then
1253     PA_ACCESS_GROUP=pulse-access
1254 else
1255     PA_ACCESS_GROUP=$with_access_group
1256 fi
1257 AC_SUBST(PA_ACCESS_GROUP)
1258 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1259
1260 AC_ARG_ENABLE(
1261         per_user_esound_socket,
1262         AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1263         [
1264             case "${enableval}" in
1265                 yes) per_user_esound_socket=1 ;;
1266                 no) per_user_esound_socket=0 ;;
1267                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1268             esac
1269         ],
1270         [per_user_esound_socket=1])
1271
1272 if test "x$per_user_esound_socket" = "x1"; then
1273    AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1274 fi
1275
1276 #### PulseAudio system runtime dir ####
1277 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1278 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1279 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1280 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1281 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1282 AC_SUBST(PA_SYSTEM_STATE_PATH)
1283
1284 ###################################
1285 #            Output               #
1286 ###################################
1287
1288 AC_ARG_ENABLE([legacy-runtime-dir],
1289         AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1290 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1291         AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1292 fi
1293
1294 AC_ARG_ENABLE(
1295         [static-bins],
1296         AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1297         [STATIC_BINS=1], [STATIC_BINS=0])
1298 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1299
1300 AC_ARG_WITH(
1301         [preopen-mods],
1302         AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1303         [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1304 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1305 if test "x$PREOPEN_MODS" != "xall" ; then
1306     tmpLIBS=""
1307     for mod in $PREOPEN_MODS; do
1308         tmpLIBS="$tmpLIBS module-$mod.la"
1309     done
1310     PREOPEN_MODS="$tmpLIBS"
1311     AC_SUBST(PREOPEN_MODS)
1312 fi
1313
1314 AC_ARG_WITH(
1315         [module-dir],
1316         AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules]),
1317         [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules"])
1318
1319 AC_SUBST(modlibexecdir)
1320
1321 AC_ARG_ENABLE(
1322         [force-preopen],
1323         AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1324         [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1325 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1326
1327 AC_CONFIG_FILES([
1328 Makefile
1329 src/Makefile
1330 man/Makefile
1331 libpulse.pc
1332 libpulse-simple.pc
1333 libpulse-browse.pc
1334 libpulse-mainloop-glib.pc
1335 doxygen/Makefile
1336 doxygen/doxygen.conf
1337 src/pulse/version.h
1338 po/Makefile.in
1339 ])
1340
1341 AC_OUTPUT
1342
1343 # ==========================================================================
1344 ENABLE_X11=no
1345 if test "x$HAVE_X11" = "x1" ; then
1346    ENABLE_X11=yes
1347 fi
1348
1349 ENABLE_OSS=no
1350 if test "x$HAVE_OSS" = "x1" ; then
1351    ENABLE_OSS=yes
1352 fi
1353
1354 ENABLE_ALSA=no
1355 if test "x$HAVE_ALSA" = "x1" ; then
1356    ENABLE_ALSA=yes
1357 fi
1358
1359 ENABLE_SOLARIS=no
1360 if test "x$HAVE_SOLARIS" = "x1" ; then
1361    ENABLE_SOLARIS=yes
1362 fi
1363
1364 ENABLE_GTK20=no
1365 if test "x$HAVE_GTK20" = "x1" ; then
1366    ENABLE_GTK20=yes
1367 fi
1368
1369 ENABLE_GLIB20=no
1370 if test "x$HAVE_GLIB20" = "x1" ; then
1371    ENABLE_GLIB20=yes
1372 fi
1373
1374 ENABLE_GCONF=no
1375 if test "x$HAVE_GCONF" = "x1" ; then
1376    ENABLE_GCONF=yes
1377 fi
1378
1379 ENABLE_AVAHI=no
1380 if test "x$HAVE_AVAHI" = "x1" ; then
1381    ENABLE_AVAHI=yes
1382 fi
1383
1384 ENABLE_JACK=no
1385 if test "x$HAVE_JACK" = "x1" ; then
1386    ENABLE_JACK=yes
1387 fi
1388
1389 ENABLE_LIBASYNCNS=no
1390 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1391    ENABLE_LIBASYNCNS=yes
1392 fi
1393
1394 ENABLE_LIRC=no
1395 if test "x$HAVE_LIRC" = "x1" ; then
1396    ENABLE_LIRC=yes
1397 fi
1398
1399 ENABLE_HAL=no
1400 if test "x$HAVE_HAL" = "x1" ; then
1401    ENABLE_HAL=yes
1402 fi
1403
1404 ENABLE_UDEV=no
1405 if test "x$HAVE_UDEV" = "x1" ; then
1406    ENABLE_UDEV=yes
1407 fi
1408
1409 ENABLE_TCPWRAP=no
1410 if test "x${LIBWRAP_LIBS}" != x ; then
1411    ENABLE_TCPWRAP=yes
1412 fi
1413
1414 ENABLE_LIBSAMPLERATE=no
1415 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1416    ENABLE_LIBSAMPLERATE=yes
1417 fi
1418
1419 ENABLE_BLUEZ=no
1420 if test "x${HAVE_BLUEZ}" = "x1" ; then
1421    ENABLE_BLUEZ=yes
1422 fi
1423
1424 ENABLE_GDBM=no
1425 if test "x${HAVE_GDBM}" = "x1" ; then
1426    ENABLE_GDBM=yes
1427 fi
1428
1429 ENABLE_TDB=no
1430 if test "x${HAVE_TDB}" = "x1" ; then
1431    ENABLE_TDB=yes
1432 fi
1433
1434 ENABLE_OPENSSL=no
1435 if test "x${HAVE_OPENSSL}" = "x1" ; then
1436    ENABLE_OPENSSL=yes
1437 fi
1438
1439 ENABLE_IPV6=no
1440 if test "x${HAVE_IPV6}" = "x1" ; then
1441    ENABLE_IPV6=yes
1442 fi
1443
1444 ENABLE_PER_USER_ESOUND_SOCKET=no
1445 if test "x$per_user_esound_socket" = "x1" ; then
1446    ENABLE_PER_USER_ESOUND_SOCKET=yes
1447 fi
1448
1449 echo "
1450  ---{ $PACKAGE_NAME $VERSION }---
1451
1452     prefix:                        ${prefix}
1453     sysconfdir:                    ${sysconfdir}
1454     localstatedir:                 ${localstatedir}
1455     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1456     System State Path:             ${PA_SYSTEM_STATE_PATH}
1457     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1458     Compiler:                      ${CC}
1459     CFLAGS:                        ${CFLAGS}
1460
1461     Have X11:                      ${ENABLE_X11}
1462     Enable OSS:                    ${ENABLE_OSS}
1463     Enable Alsa:                   ${ENABLE_ALSA}
1464     Enable Solaris:                ${ENABLE_SOLARIS}
1465     Enable GLib 2.0:               ${ENABLE_GLIB20}
1466     Enable Gtk+ 2.0:               ${ENABLE_GTK20}
1467     Enable GConf:                  ${ENABLE_GCONF}
1468     Enable Avahi:                  ${ENABLE_AVAHI}
1469     Enable Jack:                   ${ENABLE_JACK}
1470     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1471     Enable LIRC:                   ${ENABLE_LIRC}
1472     Enable HAL:                    ${ENABLE_HAL}
1473     Enable udev:                   ${ENABLE_UDEV}
1474     Enable BlueZ:                  ${ENABLE_BLUEZ}
1475     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1476     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1477     Enable IPv6:                   ${ENABLE_IPV6}
1478     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1479     Enable tdb:                    ${ENABLE_TDB}
1480     Enable gdbm:                   ${ENABLE_GDBM}
1481
1482     System User:                   ${PA_SYSTEM_USER}
1483     System Group:                  ${PA_SYSTEM_GROUP}
1484     Access Group:                  ${PA_ACCESS_GROUP}
1485     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1486     Force preopen:                 ${FORCE_PREOPEN}
1487     Preopened modules:             ${PREOPEN_MODS}
1488 "