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