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