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