Merge remote branch 'phish3/master'
[pulseaudio-mirror.git] / configure.ac
blobdfbd9bc0acc74ea68eb2d35742c31081a06d7ce9
1 # -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
4 # This file is part of PulseAudio.
6 # Copyright 2004-2008 Lennart Poettering
7 # Copyright 2006-2007 Pierre Ossman <ossman@cendio.se> for Cendio AB
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.
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.
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.
23 AC_PREREQ(2.63)
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])
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`)
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/])
42 AC_SUBST(PA_API_VERSION, 12)
43 AC_SUBST(PA_PROTOCOL_VERSION, 17)
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])
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])
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])
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])
61 AC_CANONICAL_HOST
62 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
64 AC_CHECK_PROG([STOW], [stow], [yes], [no])
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}"
71 AM_SILENT_RULES([yes])
73 #### Checks for programs. ####
75 # mkdir -p
77 AC_PROG_MKDIR_P
79 # CC
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
87 #### Platform hacks ####
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
100 # M4
102 AC_CHECK_PROGS([M4], gm4 m4, no)
103 if test "x$M4" = xno ; then
104    AC_MSG_ERROR([m4 missing])
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])
110 dnl Linker flags.
111 dnl Check whether the linker supports the -version-script option.
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"
117 CC_CHECK_LDFLAGS([${tmp_ldflag}],
118     [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
119 AC_SUBST([VERSIONING_LDFLAGS])
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])
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.
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])
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
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]))
145 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
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])
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         ],)
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         *)
176             AC_MSG_RESULT([unknown])
177             pulse_target_os=unknown
178         ;;
179 esac
181 # If everything else fails use libatomic_ops
182 need_libatomic_ops=yes
184 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
185   pulseaudio_cv_sync_bool_compare_and_swap,
186   [AC_LINK_IFELSE(
187      AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
188      [pulseaudio_cv_sync_bool_compare_and_swap=yes],
189      [pulseaudio_cv_sync_bool_compare_and_swap=no])
190   ])
192 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
193     AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
194     need_libatomic_ops=no
195 else
196     # HW specific atomic ops stuff
197     AC_MSG_CHECKING([architecture for native atomic operations])
198     case $host in
199         arm*)
200             AC_MSG_RESULT([arm])
201             AC_MSG_CHECKING([whether we can use Linux kernel helpers])
202             # The Linux kernel helper functions have been there since 2.6.16. However
203             # compile time checking for kernel version in cross compile environment
204             # (which is usually the case for arm cpu) is tricky (or impossible).
205             if test "x$pulse_target_os" = "xlinux" && test "x$atomic_arm_linux_helpers" != "xno"; then
206                 AC_MSG_RESULT([yes])
207                 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
208                 need_libatomic_ops=no
209             else
210                AC_MSG_RESULT([no])
211                AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
212                  pulseaudio_cv_support_arm_atomic_ops,
213                  [AC_COMPILE_IFELSE(
214                     AC_LANG_PROGRAM([],
215                       [[volatile int a=0;
216                         int o=0, n=1, r;
217                         asm volatile ("ldrex    %0, [%1]\n"
218                                          "subs  %0, %0, %2\n"
219                                          "strexeq %0, %3, [%1]\n"
220                                          : "=&r" (r)
221                                          : "r" (&a), "Ir" (o), "r" (n)
222                                          : "cc");
223                         return (a==1 ? 0 : -1);
224                       ]]),
225                     [pulseaudio_cv_support_arm_atomic_ops=yes],
226                     [pulseaudio_cv_support_arm_atomic_ops=no])
227                  ])
228                AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
229                    AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARMv6 instructions.])
230                    need_libatomic_ops=no
231                  ])
232            fi
233         ;;
234         *-netbsdelf5*)
235             AC_MSG_RESULT([yes])
236             need_libatomic_ops=no
237         ;;
238         *-freebsd*)
239             AC_MSG_RESULT([yes])
240             need_libatomic_ops=no
241         ;;
242         *)
243             AC_MSG_RESULT([unknown])
244         ;;
245     esac
248 CC_CHECK_TLS
250 AC_CACHE_CHECK([whether $CC knows _Bool],
251   pulseaudio_cv__Bool,
252   [AC_COMPILE_IFELSE(
253      AC_LANG_PROGRAM([], [[_Bool b;]]),
254      [pulseaudio_cv__Bool=yes],
255      [pulseaudio_cv__Bool=no])
256   ])
258 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [
259     AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.])
260   ])
262 #### libtool stuff ####
263 LT_PREREQ(2.2)
264 LT_INIT([dlopen win32-dll disable-static])
266 dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
267 dnl exactly which version of libltdl is present in the system, so we
268 dnl just assume that it's a working version as long as we have the
269 dnl library and the header files.
271 dnl As an extra safety device, check for lt_dladvise_init() which is
272 dnl only implemented in libtool 2.x, and refine as we go if we have
273 dnl refined requirements.
275 dnl Check the header files first since the system may have a
276 dnl libltdl.so for runtime, but no headers, and we want to bail out as
277 dnl soon as possible.
279 dnl We don't need any special variable for this though, since the user
280 dnl can give the proper place to find libltdl through the standard
281 dnl variables like LDFLAGS and CPPFLAGS.
283 AC_CHECK_HEADER([ltdl.h],
284     [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
285     [LIBLTDL=])
287 AS_IF([test "x$LIBLTDL" = "x"],
288     [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
289 AC_SUBST([LIBLTDL])
291 #### Determine build environment ####
293 os_is_win32=0
295 case "$host_os" in
296         mingw*)
297         AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
298         os_is_win32=1
299                 ;;
300         esac
302 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
304 ###################################
305 #   Basic environment checks      #
306 ###################################
308 #### Checks for header files. ####
310 # ISO
311 AC_HEADER_STDC
313 # POSIX
314 AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
315     netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
316     sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \
317     sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
318 AC_CHECK_HEADERS([netinet/ip.h], [], [],
319                  [#include <sys/types.h>
320                   #if HAVE_NETINET_IN_H
321                   # include <netinet/in.h>
322                   #endif
323                   #if HAVE_NETINET_IN_SYSTM_H
324                   # include <netinet/in_systm.h>
325                   #endif
326                  ])
327 AC_CHECK_HEADERS([regex.h], [HAVE_REGEX=1], [HAVE_REGEX=0])
328 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
330 AM_CONDITIONAL(HAVE_REGEX, test "x$HAVE_REGEX" = "x1")
331 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
333 # Linux
334 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
336 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
338 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
340 # Solaris
341 AC_CHECK_HEADERS_ONCE([sys/filio.h])
343 # Windows
344 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
346 # NetBSD
347 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
349 # Other
350 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
351 AC_CHECK_HEADERS_ONCE([byteswap.h])
352 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
353 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
354 AC_CHECK_HEADERS_ONCE([execinfo.h])
356 #### Typdefs, structures, etc. ####
358 AC_C_CONST
359 AC_C_BIGENDIAN
360 AC_TYPE_PID_T
361 AC_TYPE_SIZE_T
362 AC_CHECK_TYPES(ssize_t, , [AC_DEFINE([ssize_t], [signed long],
363     [Define ssize_t if it is not done by the standard libs.])])
364 AC_TYPE_OFF_T
366 AC_TYPE_UID_T
367 AC_CHECK_DECLS(environ)
369 AC_CHECK_DEFINE([SIGXCPU], [signal.h], [
370 HAVE_SIGXCPU=1
371 AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?])
372 ], [HAVE_SIGXCPU=0])
373 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
375 # Solaris lacks this
376 AC_CHECK_DEFINE([INADDR_NONE], [netinet/in.h], [],
377     [AC_CHECK_DEFINE([INADDR_NONE], [winsock2.h], [],
378         [AC_DEFINE([INADDR_NONE],  [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
380 #### POSIX threads ####
382 ACX_PTHREAD
384 #### Check for libs ####
386 # ISO
387 AC_SEARCH_LIBS([pow], [m])
389 # POSIX
390 AC_SEARCH_LIBS([sched_setscheduler], [rt])
391 AC_SEARCH_LIBS([dlopen], [dl])
392 AC_SEARCH_LIBS([shm_open], [rt])
393 AC_SEARCH_LIBS([inet_ntop], [nsl])
394 AC_SEARCH_LIBS([timer_create], [rt])
396 # BSD
397 AC_SEARCH_LIBS([connect], [socket])
398 AC_SEARCH_LIBS([backtrace], [execinfo])
400 # Non-standard
402 # This magic is needed so we do not needlessly add static libs to the win32
403 # build, disabling its ability to make dlls.
404 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
406 #### Check for functions ####
408 # ISO
409 AC_CHECK_FUNCS_ONCE([lrintf strtof])
411 # POSIX
412 AC_FUNC_FORK
413 AC_FUNC_GETGROUPS
414 AC_FUNC_SELECT_ARGTYPES
415 AC_CHECK_FUNCS_ONCE([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \
416     getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \
417     pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
418     sigaction sleep sysconf pthread_setaffinity_np])
419 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
421 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
423 # X/OPEN
424 AC_CHECK_FUNCS_ONCE([readlink])
426 # SUSv2
427 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
429 # SUSv3
430 AC_CHECK_FUNCS_ONCE([strerror_r])
432 # BSD
433 AC_CHECK_FUNCS_ONCE([lstat])
435 # Non-standard
437 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4])
439 AC_FUNC_ALLOCA
441 AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
442   pulseaudio_cv_PTHREAD_PRIO_INHERIT,
443   [save_CC=$CC; CC=$PTHREAD_CC
444    save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS
445    save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS
446    AC_LINK_IFELSE(
447      AC_LANG_PROGRAM(
448        [[
449          #include <pthread.h>
450        ]],
451        [[int i = PTHREAD_PRIO_INHERIT;]]),
452      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes],
453      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=no])
454    CC=$save_CC
455    CFLAGS=$save_CFLAGS
456    LIBS=$save_LIBS
457   ])
459 AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
460     AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
461   ])
463 AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation])
465 #### Large File-Support (LFS) ####
467 AC_SYS_LARGEFILE
469 # Check for open64 to know if the current system does have open64() and similar functions
470 AC_CHECK_FUNCS_ONCE([open64])
472 #### [lib]iconv ####
474 AM_ICONV
476 IT_PROG_INTLTOOL([0.35.0])
477 GETTEXT_PACKAGE=pulseaudio
478 AC_SUBST([GETTEXT_PACKAGE])
479 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
480 AM_GLIB_GNU_GETTEXT
482 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
483 AC_SUBST(pulselocaledir)
485 ###################################
486 #      External libraries         #
487 ###################################
489 #### pkg-config ####
491 PKG_PROG_PKG_CONFIG
493 #### X11 (optional) ####
495 AC_ARG_ENABLE([x11],
496     AS_HELP_STRING([--disable-x11],[Disable optional X11 support]),
497         [
498             case "${enableval}" in
499                 yes) x11=yes ;;
500                 no) x11=no ;;
501                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
502             esac
503         ],
504         [x11=auto])
506 if test "x${x11}" != xno ; then
507     PKG_CHECK_MODULES(X11, [ x11 ice sm xtst ],
508         HAVE_X11=1,
509         [
510             HAVE_X11=0
511             if test "x$x11" = xyes ; then
512                 AC_MSG_ERROR([*** X11 not found])
513             fi
514         ])
515 else
516     HAVE_X11=0
519 if test "x${HAVE_X11}" = x1 ; then
520    AC_DEFINE([HAVE_X11], 1, [Have X11?])
523 AC_SUBST(X11_CFLAGS)
524 AC_SUBST(X11_LIBS)
525 AC_SUBST(HAVE_X11)
526 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
528 #### Capabilities (optional) ####
530 CAP_LIBS=''
532 AC_ARG_WITH(
533         [caps],
534         AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
536 if test "x${with_caps}" != "xno"; then
537     AC_SEARCH_LIBS([cap_init], [cap], [], [
538                     if test "x${with_caps}" = "xyes" ; then
539                         AC_MSG_ERROR([*** POSIX caps libraries not found])
540                     fi])
541     AC_CHECK_HEADERS([sys/capability.h], [], [
542                     if test "x${with_caps}" = "xyes" ; then
543                         AC_MSG_ERROR([*** POSIX caps headers not found])
544                     fi])
547 #### Valgrind (optional) ####
549 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
551 #### Sound file ####
553 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
554 AC_SUBST(LIBSNDFILE_CFLAGS)
555 AC_SUBST(LIBSNDFILE_LIBS)
557 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
558 AC_SUBST(LIBSPEEX_CFLAGS)
559 AC_SUBST(LIBSPEEX_LIBS)
561 #### atomic-ops ###
563 AC_MSG_CHECKING([whether we need libatomic_ops])
564 if test "x$need_libatomic_ops" = "xyes"; then
565    AC_MSG_RESULT([yes])
566    AC_CHECK_HEADERS([atomic_ops.h], [], [
567    AC_MSG_ERROR([*** libatomic-ops headers not found])
568    ])
570    # Win32 does not need the lib and breaks horribly if we try to include it
571    if test "x$os_is_win32" != "x1" ; then
572        LIBS="$LIBS -latomic_ops"
573    fi
574 else
575    AC_MSG_RESULT([no])
578 #### Libsamplerate support (optional) ####
580 AC_ARG_ENABLE([samplerate],
581     AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]),
582         [
583             case "${enableval}" in
584                 yes) samplerate=yes ;;
585                 no) samplerate=no ;;
586                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-samplerate) ;;
587             esac
588         ],
589         [samplerate=auto])
591 if test "x${samplerate}" != xno ; then
592     PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ],
593         HAVE_LIBSAMPLERATE=1,
594         [
595             HAVE_LIBSAMPLERATE=0
596             if test "x$samplerate" = xyes ; then
597                 AC_MSG_ERROR([*** Libsamplerate not found])
598             fi
599         ])
600 else
601     HAVE_LIBSAMPLERATE=0
604 if test "x${HAVE_LIBSAMPLERATE}" = x1 ; then
605    AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])
608 AC_SUBST(LIBSAMPLERATE_CFLAGS)
609 AC_SUBST(LIBSAMPLERATE_LIBS)
610 AC_SUBST(HAVE_LIBSAMPLERATE)
611 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
613 #### Database support ####
615 HAVE_TDB=0
616 HAVE_GDBM=0
617 HAVE_SIMPLEDB=0
619 AC_ARG_WITH(
620         [database],
621         AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
623 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then
624     PKG_CHECK_MODULES(TDB, [ tdb ],
625         [
626             HAVE_TDB=1
627             with_database=tdb
628         ], [
629             if test "x${with_database}" = "xtdb" ; then
630                 AC_MSG_ERROR([*** tdb not found])
631             fi
632         ])
635 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then
636    have_gdbm=yes
638    AC_CHECK_LIB(gdbm, gdbm_open, [], [have_gdbm=no])
639    AC_CHECK_HEADERS(gdbm.h, [], [have_gdbm=no])
641    if test "x${have_gdbm}" = "xyes" ; then
642        HAVE_GDBM=1
643        GDBM_CFLAGS=
644        GDBM_LIBS=-lgdbm
645        with_database=gdbm
646    elif test "x${with_database}" = "xgdbm"; then
647        AC_MSG_ERROR([*** gdbm not found])
648    fi
651 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xsimple" ; then
652     HAVE_SIMPLEDB=1
653     with_database=simple
656 if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1 -a "x${HAVE_SIMPLEDB}" != x1; then
657    AC_MSG_ERROR([*** missing database backend])
660 if test "x${HAVE_TDB}" = x1 ; then
661    AC_DEFINE([HAVE_TDB], 1, [Have tdb?])
664 if test "x${HAVE_GDBM}" = x1 ; then
665    AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
668 if test "x${HAVE_SIMPLEDB}" = x1 ; then
669     AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?])
672 AC_SUBST(TDB_CFLAGS)
673 AC_SUBST(TDB_LIBS)
674 AC_SUBST(HAVE_TDB)
675 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
677 AC_SUBST(GDBM_CFLAGS)
678 AC_SUBST(GDBM_LIBS)
679 AC_SUBST(HAVE_GDBM)
680 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
682 AC_SUBST(HAVE_SIMPLEDB)
683 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
685 #### OSS support (optional) ####
687 AC_ARG_ENABLE([oss-output],
688     AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]),
689         [
690             case "${enableval}" in
691                 yes) oss_output=yes ;;
692                 no) oss_output=no ;;
693                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-output) ;;
694             esac
695         ],
696         [oss_output=auto])
698 AC_ARG_ENABLE([oss-wrapper],
699     AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]),
700         [
701             case "${enableval}" in
702                 yes) oss_wrapper=yes ;;
703                 no) oss_wrapper=no ;;
704                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-wrapper) ;;
705             esac
706         ],
707         [oss_wrapper=auto])
709 if test "x${oss_output}" != xno || test "x${oss_wrapper}" != "xno"; then
710     AC_CHECK_HEADERS([sys/soundcard.h],
711         [
712             if test "x${oss_output}" != "xno"; then
713                 AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?])
714             fi
715             if test "x${oss_wrapper}" != "xno"; then
716                 AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?])
717             fi
718             HAVE_OSS=1
719         ],
720         [
721             HAVE_OSS=0
722             if test "x$oss_output" = xyes || test "x$oss_wrapper" = "xyes"; then
723                 AC_MSG_ERROR([*** OSS support not found])
724             fi
725         ])
726 else
727     HAVE_OSS=0
730 AC_SUBST(HAVE_OSS)
731 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS" = x1 && test "x${oss_output}" != "xno"])
732 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS" = x1 && test "x${oss_wrapper}" != "xno"])
734 #### CoreAudio support (optional) ####
736 AC_ARG_ENABLE([coreaudio-output],
737     AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]),
738         [
739             case "${enableval}" in
740                 yes) coreaudio_enabled=yes ;;
741                 no) coreaudio_enabled=no ;;
742                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-coreaudio-output) ;;
743             esac
744         ],
745         [coreaudio_enabled=auto])
747 if test "x${coreaudio_enabled}" != xno ; then
748     AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1)
749 else
750     HAVE_COREAUDIO=0
753 AC_SUBST(HAVE_COREAUDIO)
754 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = x1 && test "x${coreaudio_enabled}" != "xno"])
756 #### ALSA support (optional) ####
758 AC_ARG_ENABLE([alsa],
759     AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
760         [
761             case "${enableval}" in
762                 yes) alsa=yes ;;
763                 no) alsa=no ;;
764                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
765             esac
766         ],
767         [alsa=auto])
769 if test "x${alsa}" != xno ; then
770     PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
771         [
772             HAVE_ALSA=1
773             AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
774         ],
775         [
776             HAVE_ALSA=0
777             if test "x$alsa" = xyes ; then
778                 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
779             fi
780         ])
781 else
782     HAVE_ALSA=0
785 AC_SUBST(ASOUNDLIB_CFLAGS)
786 AC_SUBST(ASOUNDLIB_LIBS)
787 AC_SUBST(HAVE_ALSA)
788 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
790 #### Solaris audio support (optional) ####
792 AC_ARG_ENABLE([solaris],
793     AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
794         [
795             case "${enableval}" in
796                 yes) solaris=yes ;;
797                 no) solaris=no ;;
798                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
799             esac
800         ],
801         [solaris=auto])
803 if test "x${solaris}" != xno ; then
804     AC_CHECK_HEADERS([sys/audio.h],
805         [
806             HAVE_SOLARIS=1
807             AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
808         ],
809         [
810             HAVE_SOLARIS=0
811             if test "x$solaris" = xyes ; then
812                 AC_MSG_ERROR([*** Solaris audio support not found])
813             fi
814         ])
815 else
816     HAVE_SOLARIS=0
819 AC_SUBST(HAVE_SOLARIS)
820 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
822 #### GLib 2 support (optional) ####
824 AC_ARG_ENABLE([glib2],
825     AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
826         [
827             case "${enableval}" in
828                 yes) glib2=yes ;;
829                 no) glib2=no ;;
830                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
831             esac
832         ],
833         [glib2=auto])
835 if test "x${glib2}" != xno ; then
836     PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
837         HAVE_GLIB20=1,
838         [
839             HAVE_GLIB20=0
840             if test "x$glib2" = xyes ; then
841                 AC_MSG_ERROR([*** GLib 2 support not found])
842             fi
843         ])
844 else
845     HAVE_GLIB20=0
848 AC_SUBST(GLIB20_CFLAGS)
849 AC_SUBST(GLIB20_LIBS)
850 AC_SUBST(HAVE_GLIB20)
851 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
853 if test "x$HAVE_GLIB20" = x1 ; then
854    AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
857 #### GTK2 support (optional) ####
859 AC_ARG_ENABLE([gtk2],
860     AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
861         [
862             case "${enableval}" in
863                 yes) gtk2=yes ;;
864                 no) gtk2=no ;;
865                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
866             esac
867         ],
868         [gtk2=auto])
870 if test "x${gtk2}" != xno ; then
871     PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
872         HAVE_GTK20=1,
873         [
874             HAVE_GTK20=0
875             if test "x$gtk2" = xyes ; then
876                 AC_MSG_ERROR([*** Gtk+ 2 support not found])
877             fi
878         ])
879 else
880     HAVE_GTK20=0
883 AC_SUBST(GTK20_CFLAGS)
884 AC_SUBST(GTK20_LIBS)
885 AC_SUBST(HAVE_GTK20)
886 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
888 if test "x$HAVE_GTK20" = x1 ; then
889    AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
892 #### GConf support (optional) ####
894 AC_ARG_ENABLE([gconf],
895     AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
896         [
897             case "${enableval}" in
898                 yes) gconf=yes ;;
899                 no) gconf=no ;;
900                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
901             esac
902         ],
903         [gconf=auto])
905 if test "x${gconf}" != xno ; then
906     PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 ],
907         HAVE_GCONF=1,
908         [
909             HAVE_GCONF=0
910             if test "x$gconf" = xyes ; then
911                 AC_MSG_ERROR([*** GConf support not found])
912             fi
913         ])
914 else
915     HAVE_GCONF=0
918 AC_SUBST(GCONF_CFLAGS)
919 AC_SUBST(GCONF_LIBS)
920 AC_SUBST(HAVE_GCONF)
921 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
923 #### Avahi support (optional) ####
925 AC_ARG_ENABLE([avahi],
926     AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
927         [
928             case "${enableval}" in
929                 yes) avahi=yes ;;
930                 no) avahi=no ;;
931                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
932             esac
933         ],
934         [avahi=auto])
936 if test "x${avahi}" != xno ; then
937     PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
938         HAVE_AVAHI=1,
939         [
940                 HAVE_AVAHI=0
941                 if test "x$avahi" = xyes ; then
942                         AC_MSG_ERROR([*** Avahi support not found])
943                 fi
944         ])
945 else
946     HAVE_AVAHI=0
949 AC_SUBST(AVAHI_CFLAGS)
950 AC_SUBST(AVAHI_LIBS)
951 AC_SUBST(HAVE_AVAHI)
952 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
954 ### JACK (optional) ####
956 AC_ARG_ENABLE([jack],
957     AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
958         [
959             case "${enableval}" in
960                 yes) jack=yes ;;
961                 no) jack=no ;;
962                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
963             esac
964         ],
965         [jack=auto])
967 if test "x${jack}" != xno ; then
968     PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
969         HAVE_JACK=1,
970         [
971             HAVE_JACK=0
972             if test "x$jack" = xyes ; then
973                 AC_MSG_ERROR([*** JACK support not found])
974             fi
975         ])
976 else
977     HAVE_JACK=0
980 AC_SUBST(JACK_CFLAGS)
981 AC_SUBST(JACK_LIBS)
982 AC_SUBST(HAVE_JACK)
983 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
985 #### Async DNS support (optional) ####
987 AC_ARG_ENABLE([asyncns],
988     AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
989         [
990             case "${enableval}" in
991                 yes) asyncns=yes ;;
992                 no) asyncns=no ;;
993                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
994             esac
995         ],
996         [asyncns=auto])
998 if test "x${asyncns}" != xno ; then
999     PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
1000         HAVE_LIBASYNCNS=1,
1001         [
1002             HAVE_LIBASYNCNS=0
1003             if test "x$asyncns" = xyes ; then
1004                 AC_MSG_ERROR([*** Async DNS support not found])
1005             fi
1006         ])
1007 else
1008     HAVE_LIBASYNCNS=0
1011 AC_SUBST(LIBASYNCNS_CFLAGS)
1012 AC_SUBST(LIBASYNCNS_LIBS)
1013 AC_SUBST(HAVE_LIBASYNCNS)
1014 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1016 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
1017    AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
1020 #### TCP wrappers (optional) ####
1022 AC_ARG_ENABLE([tcpwrap],
1023     AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
1024         [
1025             case "${enableval}" in
1026                 yes) tcpwrap=yes ;;
1027                 no) tcpwrap=no ;;
1028                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
1029             esac
1030         ],
1031         [tcpwrap=auto])
1033 if test "x${tcpwrap}" != xno ; then
1034     ACX_LIBWRAP
1035     if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
1036         AC_MSG_ERROR([*** TCP wrappers support not found])
1037     fi
1038 else
1039     LIBWRAP_LIBS=
1042 AC_SUBST(LIBWRAP_LIBS)
1044 #### LIRC support (optional) ####
1046 AC_ARG_ENABLE([lirc],
1047     AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
1048         [
1049             case "${enableval}" in
1050                 yes) lirc=yes ;;
1051                 no) lirc=no ;;
1052                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
1053             esac
1054         ],
1055         [lirc=auto])
1057 if test "x${lirc}" != xno ; then
1058     ACX_LIRC
1059     if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
1060         AC_MSG_ERROR([*** LIRC support not found])
1061     fi
1062 else
1063     HAVE_LIRC=0
1066 AC_SUBST(LIRC_CFLAGS)
1067 AC_SUBST(LIRC_LIBS)
1068 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1070 #### HAL support (optional) ####
1072 AC_ARG_ENABLE([hal],
1073     AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
1074         [
1075             case "${enableval}" in
1076                 yes) hal=yes ;;
1077                 no) hal=no ;;
1078                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
1079             esac
1080         ],
1081         [hal=auto])
1082 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1083     PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
1084         [
1085             HAVE_HAL=1
1086             AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
1087         ],
1088         [
1089             HAVE_HAL=0
1090             if test "x$hal" = xyes ; then
1091                 AC_MSG_ERROR([*** HAL support not found])
1092             fi
1093         ])
1094 else
1095     HAVE_HAL=0
1098 AC_SUBST(HAL_CFLAGS)
1099 AC_SUBST(HAL_LIBS)
1100 AC_SUBST(HAVE_HAL)
1101 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
1103 #### UDEV support (optional) ####
1105 AC_ARG_ENABLE([udev],
1106     AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
1107         [
1108             case "${enableval}" in
1109                 yes) udev=yes ;;
1110                 no) udev=no ;;
1111                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1112             esac
1113         ],
1114         [udev=auto])
1115 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1116     PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ],
1117         [
1118             HAVE_UDEV=1
1119             AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1120         ],
1121         [
1122             HAVE_UDEV=0
1123             if test "x$udev" = xyes ; then
1124                 AC_MSG_ERROR([*** UDEV support not found])
1125             fi
1126         ])
1127 else
1128     HAVE_UDEV=0
1131 AC_SUBST(UDEV_CFLAGS)
1132 AC_SUBST(UDEV_LIBS)
1133 AC_SUBST(HAVE_UDEV)
1134 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1136 #### HAL compat support (optional) ####
1138 AC_ARG_ENABLE([hal-compat],
1139     AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]),
1140         [
1141             case "${enableval}" in
1142                 yes) halcompat=yes ;;
1143                 no) halcompat=no ;;
1144                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal-compat) ;;
1145             esac
1146         ],
1147         [halcompat=auto])
1148 if test "x${halcompat}" != xno -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1" ; then
1149     HAVE_HAL_COMPAT=1
1150     AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
1151 else
1152     HAVE_HAL_COMPAT=0
1155 AC_SUBST(HAVE_HAL_COMPAT)
1156 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1158 #### BlueZ support (optional) ####
1160 AC_ARG_ENABLE([bluez],
1161     AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1162         [
1163             case "${enableval}" in
1164                 yes) bluez=yes ;;
1165                 no) bluez=no ;;
1166                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1167             esac
1168         ],
1169         [bluez=auto])
1170 if test "x${bluez}" != xno ; then
1171     PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1172         HAVE_BLUEZ=1,
1173         [
1174             HAVE_BLUEZ=0
1175             if test "x$bluez" = xyes ; then
1176                 AC_MSG_ERROR([*** BLUEZ support not found])
1177             fi
1178         ])
1179 else
1180     HAVE_BLUEZ=0
1183 AC_SUBST(BLUEZ_CFLAGS)
1184 AC_SUBST(BLUEZ_LIBS)
1185 AC_SUBST(HAVE_BLUEZ)
1186 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1188 #### D-Bus support (optional) ####
1190 AC_ARG_ENABLE([dbus],
1191     AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1192         [
1193             case "${enableval}" in
1194                 yes) dbus=yes ;;
1195                 no) dbus=no ;;
1196                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1197             esac
1198         ],
1199         [dbus=auto])
1201 if test "x$HAVE_HAL" = x1 ; then
1202    dbus=yes
1205 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1207     PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1208         [
1209             HAVE_DBUS=1
1210             saved_LIBS="$LIBS"
1211             LIBS="$LIBS $DBUS_LIBS"
1212             CFLAGS="$CFLAGS $DBUS_CFLAGS"
1213             AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1214             LIBS="$saved_LIBS"
1215             AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1216         ],
1217         [
1218             HAVE_DBUS=0
1219             if test "x$dbus" = xyes ; then
1220                 AC_MSG_ERROR([*** D-Bus support not found])
1221             fi
1222         ])
1223 else
1224     HAVE_DBUS=0
1227 AC_SUBST(DBUS_CFLAGS)
1228 AC_SUBST(DBUS_LIBS)
1229 AC_SUBST(HAVE_DBUS)
1230 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1232 ### IPv6 connection support (optional) ###
1234 AC_ARG_ENABLE([ipv6],
1235     AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1236         [
1237             case "${enableval}" in
1238                 yes) ipv6=yes ;;
1239                 no) ipv6=no ;;
1240                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1241             esac
1242         ],
1243         [ipv6=auto])
1245 if test "x${ipv6}" != xno ; then
1246     AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1247     HAVE_IPV6=1
1248 else
1249     HAVE_IPV6=0
1252 #### OpenSSL support (optional) ####
1254 AC_ARG_ENABLE([openssl],
1255     AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1256         [
1257             case "${enableval}" in
1258                 yes) openssl=yes ;;
1259                 no) openssl=no ;;
1260                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1261             esac
1262         ],
1263         [openssl=auto])
1265 if test "x${openssl}" != xno ; then
1267     PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1268         [
1269             HAVE_OPENSSL=1
1270             AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1271         ],
1272         [
1273             HAVE_OPENSSL=0
1274             if test "x$openssl" = xyes ; then
1275                 AC_MSG_ERROR([*** OpenSSL support not found])
1276             fi
1277         ])
1278 else
1279     HAVE_OPENSSL=0
1282 AC_SUBST(OPENSSL_CFLAGS)
1283 AC_SUBST(OPENSSL_LIBS)
1284 AC_SUBST(HAVE_OPENSSL)
1285 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1287 #### FFTW (optional) ####
1288 AC_ARG_WITH(
1289         [fftw],
1290         AS_HELP_STRING([--without-fftw], [Omit FFTW-using modules (equalizer)]))
1292 if test "x${with_fftw}" != "xno"; then
1293     PKG_CHECK_MODULES([FFTW], [fftw3f], [HAVE_FFTW=1], [HAVE_FFTW=0])
1295 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1297 ### Build and Install man pages ###
1298 AC_ARG_ENABLE(manpages,
1299         AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1300 [case "${enableval}" in
1301   yes) manpages=yes ;;
1302   no)  manpages=no ;;
1303   *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1304 esac],[manpages=yes])
1306 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1308 #### PulseAudio system group & user  #####
1310 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1311 if test -z "$with_system_user" ; then
1312     PA_SYSTEM_USER=pulse
1313 else
1314     PA_SYSTEM_USER=$with_system_user
1316 AC_SUBST(PA_SYSTEM_USER)
1317 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1319 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1320 if test -z "$with_system_group" ; then
1321     PA_SYSTEM_GROUP=pulse
1322 else
1323     PA_SYSTEM_GROUP=$with_system_group
1325 AC_SUBST(PA_SYSTEM_GROUP)
1326 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1328 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)]))
1329 if test -z "$with_access_group" ; then
1330     PA_ACCESS_GROUP=pulse-access
1331 else
1332     PA_ACCESS_GROUP=$with_access_group
1334 AC_SUBST(PA_ACCESS_GROUP)
1335 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1337 AC_ARG_ENABLE(
1338         per_user_esound_socket,
1339         AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1340         [
1341             case "${enableval}" in
1342                 yes) per_user_esound_socket=1 ;;
1343                 no) per_user_esound_socket=0 ;;
1344                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1345             esac
1346         ],
1347         [per_user_esound_socket=1])
1349 if test "x$per_user_esound_socket" = "x1"; then
1350    AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1353 #### PulseAudio system runtime dir ####
1354 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1355 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1356 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1357 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1358 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1359 AC_SUBST(PA_SYSTEM_STATE_PATH)
1361 ###################################
1362 #            Output               #
1363 ###################################
1365 AC_ARG_ENABLE([legacy-runtime-dir],
1366         AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1367 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1368         AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1371 AC_ARG_ENABLE(
1372         [static-bins],
1373         AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1374         [STATIC_BINS=1], [STATIC_BINS=0])
1375 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1377 AC_ARG_WITH(
1378         [preopen-mods],
1379         AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1380         [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1381 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1382 if test "x$PREOPEN_MODS" != "xall" ; then
1383     tmpLIBS=""
1384     for mod in $PREOPEN_MODS; do
1385         tmpLIBS="$tmpLIBS module-$mod.la"
1386     done
1387     PREOPEN_MODS="$tmpLIBS"
1388     AC_SUBST(PREOPEN_MODS)
1391 AC_ARG_WITH(
1392         [module-dir],
1393         AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules]),
1394         [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules"])
1396 AC_SUBST(modlibexecdir)
1398 AC_ARG_ENABLE(
1399         [force-preopen],
1400         AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1401         [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1402 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1404 AC_CONFIG_FILES([
1405 Makefile
1406 src/Makefile
1407 man/Makefile
1408 libpulse.pc
1409 libpulse-simple.pc
1410 libpulse-browse.pc
1411 libpulse-mainloop-glib.pc
1412 doxygen/Makefile
1413 doxygen/doxygen.conf
1414 src/pulse/version.h
1415 po/Makefile.in
1418 AC_OUTPUT
1420 # ==========================================================================
1421 ENABLE_X11=no
1422 if test "x$HAVE_X11" = "x1" ; then
1423    ENABLE_X11=yes
1426 ENABLE_OSS_OUTPUT=no
1427 ENABLE_OSS_WRAPPER=no
1428 if test "x$HAVE_OSS" = "x1" ; then
1429    if test "x$enable_oss_output" != "xno"; then
1430       ENABLE_OSS_OUTPUT=yes
1431    fi
1432    if test "x$enable_oss_wrapper" != "xno"; then
1433       ENABLE_OSS_WRAPPER=yes
1434    fi
1437 ENABLE_COREAUDIO=no
1438 if test "x$HAVE_COREAUDIO" = "x1" ; then
1439    ENABLE_COREAUDIO=yes
1442 ENABLE_ALSA=no
1443 if test "x$HAVE_ALSA" = "x1" ; then
1444    ENABLE_ALSA=yes
1447 ENABLE_SOLARIS=no
1448 if test "x$HAVE_SOLARIS" = "x1" ; then
1449    ENABLE_SOLARIS=yes
1452 ENABLE_GTK20=no
1453 if test "x$HAVE_GTK20" = "x1" ; then
1454    ENABLE_GTK20=yes
1457 ENABLE_GLIB20=no
1458 if test "x$HAVE_GLIB20" = "x1" ; then
1459    ENABLE_GLIB20=yes
1462 ENABLE_GCONF=no
1463 if test "x$HAVE_GCONF" = "x1" ; then
1464    ENABLE_GCONF=yes
1467 ENABLE_AVAHI=no
1468 if test "x$HAVE_AVAHI" = "x1" ; then
1469    ENABLE_AVAHI=yes
1472 ENABLE_JACK=no
1473 if test "x$HAVE_JACK" = "x1" ; then
1474    ENABLE_JACK=yes
1477 ENABLE_LIBASYNCNS=no
1478 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1479    ENABLE_LIBASYNCNS=yes
1482 ENABLE_LIRC=no
1483 if test "x$HAVE_LIRC" = "x1" ; then
1484    ENABLE_LIRC=yes
1487 ENABLE_HAL=no
1488 if test "x$HAVE_HAL" = "x1" ; then
1489    ENABLE_HAL=yes
1492 ENABLE_UDEV=no
1493 if test "x$HAVE_UDEV" = "x1" ; then
1494    ENABLE_UDEV=yes
1497 ENABLE_HAL_COMPAT=no
1498 if test "x$HAVE_HAL_COMPAT" = "x1" ; then
1499    ENABLE_HAL_COMPAT=yes
1502 ENABLE_TCPWRAP=no
1503 if test "x${LIBWRAP_LIBS}" != x ; then
1504    ENABLE_TCPWRAP=yes
1507 ENABLE_LIBSAMPLERATE=no
1508 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1509    ENABLE_LIBSAMPLERATE=yes
1512 ENABLE_BLUEZ=no
1513 if test "x${HAVE_BLUEZ}" = "x1" ; then
1514    ENABLE_BLUEZ=yes
1517 ENABLE_GDBM=no
1518 if test "x${HAVE_GDBM}" = "x1" ; then
1519    ENABLE_GDBM=yes
1522 ENABLE_TDB=no
1523 if test "x${HAVE_TDB}" = "x1" ; then
1524    ENABLE_TDB=yes
1527 ENABLE_SIMPLEDB=no
1528 if test "x${HAVE_SIMPLEDB}" = "x1" ; then
1529     ENABLE_SIMPLEDB=yes
1532 ENABLE_FFTW=no
1533 if test "x${HAVE_FFTW}" = "x1" ; then
1534    ENABLE_FFTW=yes
1537 ENABLE_OPENSSL=no
1538 if test "x${HAVE_OPENSSL}" = "x1" ; then
1539    ENABLE_OPENSSL=yes
1542 ENABLE_IPV6=no
1543 if test "x${HAVE_IPV6}" = "x1" ; then
1544    ENABLE_IPV6=yes
1547 ENABLE_PER_USER_ESOUND_SOCKET=no
1548 if test "x$per_user_esound_socket" = "x1" ; then
1549    ENABLE_PER_USER_ESOUND_SOCKET=yes
1552 echo "
1553  ---{ $PACKAGE_NAME $VERSION }---
1555     prefix:                        ${prefix}
1556     sysconfdir:                    ${sysconfdir}
1557     localstatedir:                 ${localstatedir}
1558     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1559     System State Path:             ${PA_SYSTEM_STATE_PATH}
1560     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1561     Compiler:                      ${CC}
1562     CFLAGS:                        ${CFLAGS}
1564     Have X11:                      ${ENABLE_X11}
1565     Enable OSS Output:             ${ENABLE_OSS_OUTPUT}
1566     Enable OSS Wrapper:            ${ENABLE_OSS_WRAPPER}
1567     Enable CoreAudio:              ${ENABLE_COREAUDIO}
1568     Enable Alsa:                   ${ENABLE_ALSA}
1569     Enable Solaris:                ${ENABLE_SOLARIS}
1570     Enable GLib 2.0:               ${ENABLE_GLIB20}
1571     Enable Gtk+ 2.0:               ${ENABLE_GTK20}
1572     Enable GConf:                  ${ENABLE_GCONF}
1573     Enable Avahi:                  ${ENABLE_AVAHI}
1574     Enable Jack:                   ${ENABLE_JACK}
1575     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1576     Enable LIRC:                   ${ENABLE_LIRC}
1577     Enable HAL:                    ${ENABLE_HAL}
1578     Enable udev:                   ${ENABLE_UDEV}
1579     Enable HAL->udev compat:       ${ENABLE_HAL_COMPAT}
1580     Enable BlueZ:                  ${ENABLE_BLUEZ}
1581     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1582     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1583     Enable IPv6:                   ${ENABLE_IPV6}
1584     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1585     Enable tdb:                    ${ENABLE_TDB}
1586     Enable gdbm:                   ${ENABLE_GDBM}
1587     Enable simple database:        ${ENABLE_SIMPLEDB}
1588     Enable fftw:                   ${ENABLE_FFTW}
1590     System User:                   ${PA_SYSTEM_USER}
1591     System Group:                  ${PA_SYSTEM_GROUP}
1592     Access Group:                  ${PA_ACCESS_GROUP}
1593     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1594     Force preopen:                 ${FORCE_PREOPEN}
1595     Preopened modules:             ${PREOPEN_MODS}