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