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