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