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