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