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