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