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