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