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