]> code.delx.au - pulseaudio/blob - configure.ac
Merge remote branch 'phish3/master'
[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 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 AM_SILENT_RULES([yes])
70
71 #### Checks for programs. ####
72
73 # mkdir -p
74
75 AC_PROG_MKDIR_P
76
77 # CC
78
79 AC_PROG_CC
80 AC_PROG_CC_C99
81 AM_PROG_CC_C_O
82 AC_PROG_GCC_TRADITIONAL
83 AC_USE_SYSTEM_EXTENSIONS
84
85 #### Platform hacks ####
86
87 case $host in
88 *-*-solaris* )
89 AC_DEFINE(_XOPEN_SOURCE, 600, Needed to get declarations for msg_control and msg_controllen on Solaris)
90 AC_DEFINE(__EXTENSIONS__, 1, Needed to get declarations for msg_control and msg_controllen on Solaris)
91 ;;
92 *-*-darwin* )
93 AC_DEFINE([_POSIX_C_SOURCE], [200112L], [Needed to get clock_gettime on Mac OS X])
94 AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
95 ;;
96 esac
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 pipe2 accept4])
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 #### CoreAudio support (optional) ####
746
747 AC_ARG_ENABLE([coreaudio-output],
748 AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]),
749 [
750 case "${enableval}" in
751 yes) coreaudio_enabled=yes ;;
752 no) coreaudio_enabled=no ;;
753 *) AC_MSG_ERROR(bad value ${enableval} for --disable-coreaudio-output) ;;
754 esac
755 ],
756 [coreaudio_enabled=auto])
757
758 if test "x${coreaudio_enabled}" != xno ; then
759 AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1)
760 else
761 HAVE_COREAUDIO=0
762 fi
763
764 AC_SUBST(HAVE_COREAUDIO)
765 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = x1 && test "x${coreaudio_enabled}" != "xno"])
766
767 #### ALSA support (optional) ####
768
769 AC_ARG_ENABLE([alsa],
770 AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
771 [
772 case "${enableval}" in
773 yes) alsa=yes ;;
774 no) alsa=no ;;
775 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
776 esac
777 ],
778 [alsa=auto])
779
780 if test "x${alsa}" != xno ; then
781 PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
782 [
783 HAVE_ALSA=1
784 AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
785 ],
786 [
787 HAVE_ALSA=0
788 if test "x$alsa" = xyes ; then
789 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
790 fi
791 ])
792 else
793 HAVE_ALSA=0
794 fi
795
796 AC_SUBST(ASOUNDLIB_CFLAGS)
797 AC_SUBST(ASOUNDLIB_LIBS)
798 AC_SUBST(HAVE_ALSA)
799 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
800
801 #### Solaris audio support (optional) ####
802
803 AC_ARG_ENABLE([solaris],
804 AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
805 [
806 case "${enableval}" in
807 yes) solaris=yes ;;
808 no) solaris=no ;;
809 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
810 esac
811 ],
812 [solaris=auto])
813
814 if test "x${solaris}" != xno ; then
815 AC_CHECK_HEADERS([sys/audio.h],
816 [
817 HAVE_SOLARIS=1
818 AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
819 ],
820 [
821 HAVE_SOLARIS=0
822 if test "x$solaris" = xyes ; then
823 AC_MSG_ERROR([*** Solaris audio support not found])
824 fi
825 ])
826 else
827 HAVE_SOLARIS=0
828 fi
829
830 AC_SUBST(HAVE_SOLARIS)
831 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
832
833 #### GLib 2 support (optional) ####
834
835 AC_ARG_ENABLE([glib2],
836 AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
837 [
838 case "${enableval}" in
839 yes) glib2=yes ;;
840 no) glib2=no ;;
841 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
842 esac
843 ],
844 [glib2=auto])
845
846 if test "x${glib2}" != xno ; then
847 PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
848 HAVE_GLIB20=1,
849 [
850 HAVE_GLIB20=0
851 if test "x$glib2" = xyes ; then
852 AC_MSG_ERROR([*** GLib 2 support not found])
853 fi
854 ])
855 else
856 HAVE_GLIB20=0
857 fi
858
859 AC_SUBST(GLIB20_CFLAGS)
860 AC_SUBST(GLIB20_LIBS)
861 AC_SUBST(HAVE_GLIB20)
862 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
863
864 if test "x$HAVE_GLIB20" = x1 ; then
865 AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
866 fi
867
868 #### GTK2 support (optional) ####
869
870 AC_ARG_ENABLE([gtk2],
871 AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
872 [
873 case "${enableval}" in
874 yes) gtk2=yes ;;
875 no) gtk2=no ;;
876 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
877 esac
878 ],
879 [gtk2=auto])
880
881 if test "x${gtk2}" != xno ; then
882 PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
883 HAVE_GTK20=1,
884 [
885 HAVE_GTK20=0
886 if test "x$gtk2" = xyes ; then
887 AC_MSG_ERROR([*** Gtk+ 2 support not found])
888 fi
889 ])
890 else
891 HAVE_GTK20=0
892 fi
893
894 AC_SUBST(GTK20_CFLAGS)
895 AC_SUBST(GTK20_LIBS)
896 AC_SUBST(HAVE_GTK20)
897 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
898
899 if test "x$HAVE_GTK20" = x1 ; then
900 AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
901 fi
902
903 #### GConf support (optional) ####
904
905 AC_ARG_ENABLE([gconf],
906 AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
907 [
908 case "${enableval}" in
909 yes) gconf=yes ;;
910 no) gconf=no ;;
911 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
912 esac
913 ],
914 [gconf=auto])
915
916 if test "x${gconf}" != xno ; then
917 PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 ],
918 HAVE_GCONF=1,
919 [
920 HAVE_GCONF=0
921 if test "x$gconf" = xyes ; then
922 AC_MSG_ERROR([*** GConf support not found])
923 fi
924 ])
925 else
926 HAVE_GCONF=0
927 fi
928
929 AC_SUBST(GCONF_CFLAGS)
930 AC_SUBST(GCONF_LIBS)
931 AC_SUBST(HAVE_GCONF)
932 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
933
934 #### Avahi support (optional) ####
935
936 AC_ARG_ENABLE([avahi],
937 AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
938 [
939 case "${enableval}" in
940 yes) avahi=yes ;;
941 no) avahi=no ;;
942 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
943 esac
944 ],
945 [avahi=auto])
946
947 if test "x${avahi}" != xno ; then
948 PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
949 HAVE_AVAHI=1,
950 [
951 HAVE_AVAHI=0
952 if test "x$avahi" = xyes ; then
953 AC_MSG_ERROR([*** Avahi support not found])
954 fi
955 ])
956 else
957 HAVE_AVAHI=0
958 fi
959
960 AC_SUBST(AVAHI_CFLAGS)
961 AC_SUBST(AVAHI_LIBS)
962 AC_SUBST(HAVE_AVAHI)
963 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
964
965 ### JACK (optional) ####
966
967 AC_ARG_ENABLE([jack],
968 AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
969 [
970 case "${enableval}" in
971 yes) jack=yes ;;
972 no) jack=no ;;
973 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
974 esac
975 ],
976 [jack=auto])
977
978 if test "x${jack}" != xno ; then
979 PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
980 HAVE_JACK=1,
981 [
982 HAVE_JACK=0
983 if test "x$jack" = xyes ; then
984 AC_MSG_ERROR([*** JACK support not found])
985 fi
986 ])
987 else
988 HAVE_JACK=0
989 fi
990
991 AC_SUBST(JACK_CFLAGS)
992 AC_SUBST(JACK_LIBS)
993 AC_SUBST(HAVE_JACK)
994 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
995
996 #### Async DNS support (optional) ####
997
998 AC_ARG_ENABLE([asyncns],
999 AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
1000 [
1001 case "${enableval}" in
1002 yes) asyncns=yes ;;
1003 no) asyncns=no ;;
1004 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
1005 esac
1006 ],
1007 [asyncns=auto])
1008
1009 if test "x${asyncns}" != xno ; then
1010 PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
1011 HAVE_LIBASYNCNS=1,
1012 [
1013 HAVE_LIBASYNCNS=0
1014 if test "x$asyncns" = xyes ; then
1015 AC_MSG_ERROR([*** Async DNS support not found])
1016 fi
1017 ])
1018 else
1019 HAVE_LIBASYNCNS=0
1020 fi
1021
1022 AC_SUBST(LIBASYNCNS_CFLAGS)
1023 AC_SUBST(LIBASYNCNS_LIBS)
1024 AC_SUBST(HAVE_LIBASYNCNS)
1025 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1026
1027 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
1028 AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
1029 fi
1030
1031 #### TCP wrappers (optional) ####
1032
1033 AC_ARG_ENABLE([tcpwrap],
1034 AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
1035 [
1036 case "${enableval}" in
1037 yes) tcpwrap=yes ;;
1038 no) tcpwrap=no ;;
1039 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
1040 esac
1041 ],
1042 [tcpwrap=auto])
1043
1044 if test "x${tcpwrap}" != xno ; then
1045 ACX_LIBWRAP
1046 if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
1047 AC_MSG_ERROR([*** TCP wrappers support not found])
1048 fi
1049 else
1050 LIBWRAP_LIBS=
1051 fi
1052
1053 AC_SUBST(LIBWRAP_LIBS)
1054
1055 #### LIRC support (optional) ####
1056
1057 AC_ARG_ENABLE([lirc],
1058 AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
1059 [
1060 case "${enableval}" in
1061 yes) lirc=yes ;;
1062 no) lirc=no ;;
1063 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
1064 esac
1065 ],
1066 [lirc=auto])
1067
1068 if test "x${lirc}" != xno ; then
1069 ACX_LIRC
1070 if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
1071 AC_MSG_ERROR([*** LIRC support not found])
1072 fi
1073 else
1074 HAVE_LIRC=0
1075 fi
1076
1077 AC_SUBST(LIRC_CFLAGS)
1078 AC_SUBST(LIRC_LIBS)
1079 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1080
1081 #### HAL support (optional) ####
1082
1083 AC_ARG_ENABLE([hal],
1084 AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
1085 [
1086 case "${enableval}" in
1087 yes) hal=yes ;;
1088 no) hal=no ;;
1089 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
1090 esac
1091 ],
1092 [hal=auto])
1093 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1094 PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
1095 [
1096 HAVE_HAL=1
1097 AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
1098 ],
1099 [
1100 HAVE_HAL=0
1101 if test "x$hal" = xyes ; then
1102 AC_MSG_ERROR([*** HAL support not found])
1103 fi
1104 ])
1105 else
1106 HAVE_HAL=0
1107 fi
1108
1109 AC_SUBST(HAL_CFLAGS)
1110 AC_SUBST(HAL_LIBS)
1111 AC_SUBST(HAVE_HAL)
1112 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
1113
1114 #### UDEV support (optional) ####
1115
1116 AC_ARG_ENABLE([udev],
1117 AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
1118 [
1119 case "${enableval}" in
1120 yes) udev=yes ;;
1121 no) udev=no ;;
1122 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1123 esac
1124 ],
1125 [udev=auto])
1126 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1127 PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ],
1128 [
1129 HAVE_UDEV=1
1130 AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1131 ],
1132 [
1133 HAVE_UDEV=0
1134 if test "x$udev" = xyes ; then
1135 AC_MSG_ERROR([*** UDEV support not found])
1136 fi
1137 ])
1138 else
1139 HAVE_UDEV=0
1140 fi
1141
1142 AC_SUBST(UDEV_CFLAGS)
1143 AC_SUBST(UDEV_LIBS)
1144 AC_SUBST(HAVE_UDEV)
1145 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1146
1147 #### HAL compat support (optional) ####
1148
1149 AC_ARG_ENABLE([hal-compat],
1150 AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]),
1151 [
1152 case "${enableval}" in
1153 yes) halcompat=yes ;;
1154 no) halcompat=no ;;
1155 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal-compat) ;;
1156 esac
1157 ],
1158 [halcompat=auto])
1159 if test "x${halcompat}" != xno -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1" ; then
1160 HAVE_HAL_COMPAT=1
1161 AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
1162 else
1163 HAVE_HAL_COMPAT=0
1164 fi
1165
1166 AC_SUBST(HAVE_HAL_COMPAT)
1167 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1168
1169 #### BlueZ support (optional) ####
1170
1171 AC_ARG_ENABLE([bluez],
1172 AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1173 [
1174 case "${enableval}" in
1175 yes) bluez=yes ;;
1176 no) bluez=no ;;
1177 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1178 esac
1179 ],
1180 [bluez=auto])
1181 if test "x${bluez}" != xno ; then
1182 PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1183 HAVE_BLUEZ=1,
1184 [
1185 HAVE_BLUEZ=0
1186 if test "x$bluez" = xyes ; then
1187 AC_MSG_ERROR([*** BLUEZ support not found])
1188 fi
1189 ])
1190 else
1191 HAVE_BLUEZ=0
1192 fi
1193
1194 AC_SUBST(BLUEZ_CFLAGS)
1195 AC_SUBST(BLUEZ_LIBS)
1196 AC_SUBST(HAVE_BLUEZ)
1197 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1198
1199 #### D-Bus support (optional) ####
1200
1201 AC_ARG_ENABLE([dbus],
1202 AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1203 [
1204 case "${enableval}" in
1205 yes) dbus=yes ;;
1206 no) dbus=no ;;
1207 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1208 esac
1209 ],
1210 [dbus=auto])
1211
1212 if test "x$HAVE_HAL" = x1 ; then
1213 dbus=yes
1214 fi
1215
1216 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1217
1218 PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1219 [
1220 HAVE_DBUS=1
1221 saved_LIBS="$LIBS"
1222 LIBS="$LIBS $DBUS_LIBS"
1223 CFLAGS="$CFLAGS $DBUS_CFLAGS"
1224 AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1225 LIBS="$saved_LIBS"
1226 AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1227 ],
1228 [
1229 HAVE_DBUS=0
1230 if test "x$dbus" = xyes ; then
1231 AC_MSG_ERROR([*** D-Bus support not found])
1232 fi
1233 ])
1234 else
1235 HAVE_DBUS=0
1236 fi
1237
1238 AC_SUBST(DBUS_CFLAGS)
1239 AC_SUBST(DBUS_LIBS)
1240 AC_SUBST(HAVE_DBUS)
1241 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1242
1243 ### IPv6 connection support (optional) ###
1244
1245 AC_ARG_ENABLE([ipv6],
1246 AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1247 [
1248 case "${enableval}" in
1249 yes) ipv6=yes ;;
1250 no) ipv6=no ;;
1251 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1252 esac
1253 ],
1254 [ipv6=auto])
1255
1256 if test "x${ipv6}" != xno ; then
1257 AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1258 HAVE_IPV6=1
1259 else
1260 HAVE_IPV6=0
1261 fi
1262
1263 #### OpenSSL support (optional) ####
1264
1265 AC_ARG_ENABLE([openssl],
1266 AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1267 [
1268 case "${enableval}" in
1269 yes) openssl=yes ;;
1270 no) openssl=no ;;
1271 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1272 esac
1273 ],
1274 [openssl=auto])
1275
1276 if test "x${openssl}" != xno ; then
1277
1278 PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1279 [
1280 HAVE_OPENSSL=1
1281 AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1282 ],
1283 [
1284 HAVE_OPENSSL=0
1285 if test "x$openssl" = xyes ; then
1286 AC_MSG_ERROR([*** OpenSSL support not found])
1287 fi
1288 ])
1289 else
1290 HAVE_OPENSSL=0
1291 fi
1292
1293 AC_SUBST(OPENSSL_CFLAGS)
1294 AC_SUBST(OPENSSL_LIBS)
1295 AC_SUBST(HAVE_OPENSSL)
1296 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1297
1298 #### FFTW (optional) ####
1299 AC_ARG_WITH(
1300 [fftw],
1301 AS_HELP_STRING([--without-fftw], [Omit FFTW-using modules (equalizer)]))
1302
1303 if test "x${with_fftw}" != "xno"; then
1304 PKG_CHECK_MODULES([FFTW], [fftw3f], [HAVE_FFTW=1], [HAVE_FFTW=0])
1305 fi
1306 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1307
1308 ### Build and Install man pages ###
1309 AC_ARG_ENABLE(manpages,
1310 AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1311 [case "${enableval}" in
1312 yes) manpages=yes ;;
1313 no) manpages=no ;;
1314 *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1315 esac],[manpages=yes])
1316
1317 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1318
1319 #### PulseAudio system group & user #####
1320
1321 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1322 if test -z "$with_system_user" ; then
1323 PA_SYSTEM_USER=pulse
1324 else
1325 PA_SYSTEM_USER=$with_system_user
1326 fi
1327 AC_SUBST(PA_SYSTEM_USER)
1328 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1329
1330 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1331 if test -z "$with_system_group" ; then
1332 PA_SYSTEM_GROUP=pulse
1333 else
1334 PA_SYSTEM_GROUP=$with_system_group
1335 fi
1336 AC_SUBST(PA_SYSTEM_GROUP)
1337 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1338
1339 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)]))
1340 if test -z "$with_access_group" ; then
1341 PA_ACCESS_GROUP=pulse-access
1342 else
1343 PA_ACCESS_GROUP=$with_access_group
1344 fi
1345 AC_SUBST(PA_ACCESS_GROUP)
1346 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1347
1348 AC_ARG_ENABLE(
1349 per_user_esound_socket,
1350 AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1351 [
1352 case "${enableval}" in
1353 yes) per_user_esound_socket=1 ;;
1354 no) per_user_esound_socket=0 ;;
1355 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1356 esac
1357 ],
1358 [per_user_esound_socket=1])
1359
1360 if test "x$per_user_esound_socket" = "x1"; then
1361 AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1362 fi
1363
1364 #### PulseAudio system runtime dir ####
1365 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1366 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1367 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1368 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1369 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1370 AC_SUBST(PA_SYSTEM_STATE_PATH)
1371
1372 ###################################
1373 # Output #
1374 ###################################
1375
1376 AC_ARG_ENABLE([legacy-runtime-dir],
1377 AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1378 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1379 AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1380 fi
1381
1382 AC_ARG_ENABLE(
1383 [static-bins],
1384 AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1385 [STATIC_BINS=1], [STATIC_BINS=0])
1386 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1387
1388 AC_ARG_WITH(
1389 [preopen-mods],
1390 AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1391 [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1392 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1393 if test "x$PREOPEN_MODS" != "xall" ; then
1394 tmpLIBS=""
1395 for mod in $PREOPEN_MODS; do
1396 tmpLIBS="$tmpLIBS module-$mod.la"
1397 done
1398 PREOPEN_MODS="$tmpLIBS"
1399 AC_SUBST(PREOPEN_MODS)
1400 fi
1401
1402 AC_ARG_WITH(
1403 [module-dir],
1404 AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules]),
1405 [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules"])
1406
1407 AC_SUBST(modlibexecdir)
1408
1409 AC_ARG_ENABLE(
1410 [force-preopen],
1411 AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1412 [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1413 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1414
1415 AC_CONFIG_FILES([
1416 Makefile
1417 src/Makefile
1418 man/Makefile
1419 libpulse.pc
1420 libpulse-simple.pc
1421 libpulse-browse.pc
1422 libpulse-mainloop-glib.pc
1423 doxygen/Makefile
1424 doxygen/doxygen.conf
1425 src/pulse/version.h
1426 po/Makefile.in
1427 ])
1428
1429 AC_OUTPUT
1430
1431 # ==========================================================================
1432 ENABLE_X11=no
1433 if test "x$HAVE_X11" = "x1" ; then
1434 ENABLE_X11=yes
1435 fi
1436
1437 ENABLE_OSS_OUTPUT=no
1438 ENABLE_OSS_WRAPPER=no
1439 if test "x$HAVE_OSS" = "x1" ; then
1440 if test "x$enable_oss_output" != "xno"; then
1441 ENABLE_OSS_OUTPUT=yes
1442 fi
1443 if test "x$enable_oss_wrapper" != "xno"; then
1444 ENABLE_OSS_WRAPPER=yes
1445 fi
1446 fi
1447
1448 ENABLE_COREAUDIO=no
1449 if test "x$HAVE_COREAUDIO" = "x1" ; then
1450 ENABLE_COREAUDIO=yes
1451 fi
1452
1453 ENABLE_ALSA=no
1454 if test "x$HAVE_ALSA" = "x1" ; then
1455 ENABLE_ALSA=yes
1456 fi
1457
1458 ENABLE_SOLARIS=no
1459 if test "x$HAVE_SOLARIS" = "x1" ; then
1460 ENABLE_SOLARIS=yes
1461 fi
1462
1463 ENABLE_GTK20=no
1464 if test "x$HAVE_GTK20" = "x1" ; then
1465 ENABLE_GTK20=yes
1466 fi
1467
1468 ENABLE_GLIB20=no
1469 if test "x$HAVE_GLIB20" = "x1" ; then
1470 ENABLE_GLIB20=yes
1471 fi
1472
1473 ENABLE_GCONF=no
1474 if test "x$HAVE_GCONF" = "x1" ; then
1475 ENABLE_GCONF=yes
1476 fi
1477
1478 ENABLE_AVAHI=no
1479 if test "x$HAVE_AVAHI" = "x1" ; then
1480 ENABLE_AVAHI=yes
1481 fi
1482
1483 ENABLE_JACK=no
1484 if test "x$HAVE_JACK" = "x1" ; then
1485 ENABLE_JACK=yes
1486 fi
1487
1488 ENABLE_LIBASYNCNS=no
1489 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1490 ENABLE_LIBASYNCNS=yes
1491 fi
1492
1493 ENABLE_LIRC=no
1494 if test "x$HAVE_LIRC" = "x1" ; then
1495 ENABLE_LIRC=yes
1496 fi
1497
1498 ENABLE_HAL=no
1499 if test "x$HAVE_HAL" = "x1" ; then
1500 ENABLE_HAL=yes
1501 fi
1502
1503 ENABLE_UDEV=no
1504 if test "x$HAVE_UDEV" = "x1" ; then
1505 ENABLE_UDEV=yes
1506 fi
1507
1508 ENABLE_HAL_COMPAT=no
1509 if test "x$HAVE_HAL_COMPAT" = "x1" ; then
1510 ENABLE_HAL_COMPAT=yes
1511 fi
1512
1513 ENABLE_TCPWRAP=no
1514 if test "x${LIBWRAP_LIBS}" != x ; then
1515 ENABLE_TCPWRAP=yes
1516 fi
1517
1518 ENABLE_LIBSAMPLERATE=no
1519 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1520 ENABLE_LIBSAMPLERATE=yes
1521 fi
1522
1523 ENABLE_BLUEZ=no
1524 if test "x${HAVE_BLUEZ}" = "x1" ; then
1525 ENABLE_BLUEZ=yes
1526 fi
1527
1528 ENABLE_GDBM=no
1529 if test "x${HAVE_GDBM}" = "x1" ; then
1530 ENABLE_GDBM=yes
1531 fi
1532
1533 ENABLE_TDB=no
1534 if test "x${HAVE_TDB}" = "x1" ; then
1535 ENABLE_TDB=yes
1536 fi
1537
1538 ENABLE_SIMPLEDB=no
1539 if test "x${HAVE_SIMPLEDB}" = "x1" ; then
1540 ENABLE_SIMPLEDB=yes
1541 fi
1542
1543 ENABLE_FFTW=no
1544 if test "x${HAVE_FFTW}" = "x1" ; then
1545 ENABLE_FFTW=yes
1546 fi
1547
1548 ENABLE_OPENSSL=no
1549 if test "x${HAVE_OPENSSL}" = "x1" ; then
1550 ENABLE_OPENSSL=yes
1551 fi
1552
1553 ENABLE_IPV6=no
1554 if test "x${HAVE_IPV6}" = "x1" ; then
1555 ENABLE_IPV6=yes
1556 fi
1557
1558 ENABLE_PER_USER_ESOUND_SOCKET=no
1559 if test "x$per_user_esound_socket" = "x1" ; then
1560 ENABLE_PER_USER_ESOUND_SOCKET=yes
1561 fi
1562
1563 echo "
1564 ---{ $PACKAGE_NAME $VERSION }---
1565
1566 prefix: ${prefix}
1567 sysconfdir: ${sysconfdir}
1568 localstatedir: ${localstatedir}
1569 System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH}
1570 System State Path: ${PA_SYSTEM_STATE_PATH}
1571 System Config Path: ${PA_SYSTEM_CONFIG_PATH}
1572 Compiler: ${CC}
1573 CFLAGS: ${CFLAGS}
1574
1575 Have X11: ${ENABLE_X11}
1576 Enable OSS Output: ${ENABLE_OSS_OUTPUT}
1577 Enable OSS Wrapper: ${ENABLE_OSS_WRAPPER}
1578 Enable CoreAudio: ${ENABLE_COREAUDIO}
1579 Enable Alsa: ${ENABLE_ALSA}
1580 Enable Solaris: ${ENABLE_SOLARIS}
1581 Enable GLib 2.0: ${ENABLE_GLIB20}
1582 Enable Gtk+ 2.0: ${ENABLE_GTK20}
1583 Enable GConf: ${ENABLE_GCONF}
1584 Enable Avahi: ${ENABLE_AVAHI}
1585 Enable Jack: ${ENABLE_JACK}
1586 Enable Async DNS: ${ENABLE_LIBASYNCNS}
1587 Enable LIRC: ${ENABLE_LIRC}
1588 Enable HAL: ${ENABLE_HAL}
1589 Enable udev: ${ENABLE_UDEV}
1590 Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
1591 Enable BlueZ: ${ENABLE_BLUEZ}
1592 Enable TCP Wrappers: ${ENABLE_TCPWRAP}
1593 Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
1594 Enable IPv6: ${ENABLE_IPV6}
1595 Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1596 Enable tdb: ${ENABLE_TDB}
1597 Enable gdbm: ${ENABLE_GDBM}
1598 Enable simple database: ${ENABLE_SIMPLEDB}
1599 Enable fftw: ${ENABLE_FFTW}
1600
1601 System User: ${PA_SYSTEM_USER}
1602 System Group: ${PA_SYSTEM_GROUP}
1603 Access Group: ${PA_ACCESS_GROUP}
1604 Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1605 Force preopen: ${FORCE_PREOPEN}
1606 Preopened modules: ${PREOPEN_MODS}
1607 "