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