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