2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [12.0b1], [http://trac.xbmc.org])
6 AC_CONFIG_HEADERS([xbmc/config.h])
8 m4_include([m4/ax_python_devel.m4])
10 AC_CONFIG_AUX_DIR([build-aux])
11 AM_INIT_AUTOMAKE([foreign])
15 echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
18 # check for enabling additional players
19 AC_DEFUN([XB_ADD_PLAYER],
21 AC_MSG_CHECKING([for $2])
25 AC_DEFINE([HAS_$1], 1, [using $2])
26 AC_MSG_RESULT([enabling $2])
29 AC_MSG_RESULT([$2 is not enabled])
33 # check for library basenames
34 AC_DEFUN([XB_FIND_SONAME],
36 if echo "$host" | grep -q freebsd ; then
37 AC_MSG_CHECKING([for lib$2 soname])
38 $1_SONAME=[`ldconfig -r | sed -n "s;.* \(/.*lib$2\.so.*\)$;\1;p" | head -n 1`]
39 if test x$$1_SONAME != x ; then
40 $1_SONAME=[`basename $$1_SONAME`]
42 elif [[ "$host_vendor" != "apple" ]]; then
43 AC_MSG_CHECKING([for lib$2 soname])
44 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
45 if [[ -z $$1_FILENAME ]]; then
46 #try gold linker syntax
47 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "$2")
49 if [[ ! -z $$1_FILENAME ]]; then
50 $1_SONAME=$($OBJDUMP -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}')
53 AC_MSG_CHECKING([for lib$2 dylib])
54 gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
55 env_lib_path=[`echo $LDFLAGS | sed 's/-L[ ]*//g'`]
56 if test "$cross_compiling" = yes; then
59 host_lib_path="/usr/lib /usr/local/lib"
61 for path in $gcc_lib_path $env_lib_path $host_lib_path; do
62 lib=[`ls -- $path/lib$2.dylib 2>/dev/null`]
63 if test x$lib != x; then
64 # we want the path/name that is embedded in the dylib
65 $1_SONAME=[`otool -L $lib | grep -v lib$2.dylib | grep lib$2 | awk '{V=1; print $V}'`]
66 $1_SONAME=[`basename $$1_SONAME`]
70 if [[ -z "$$1_SONAME" ]]; then
72 if test -z "$3" || test "x${$3}" = "xyes"; then
73 AC_MSG_ERROR([Unable to determine soname of lib$2 library])
75 AC_MSG_WARN([Unable to determine soname of lib$2 library])
77 AC_MSG_WARN([lib$2 support disabled])
80 AC_MSG_RESULT([$$1_SONAME])
85 # Function to push and pop libs and includes for a command
86 AC_DEFUN([XB_PUSH_FLAGS], [
88 SAVE_INCLUDES="$INCLUDES"
93 INCLUDES="$SAVE_INCLUDES"
96 # General message strings
97 configure_debug="ERROR: this is a configure debug statement"
98 missing_library="Could not find a required library. Please see the README for your platform."
99 missing_headers="Could not find some required headers. Please see the README for your platform."
100 missing_program="Could not find a required program. Please see the README for your platform."
101 xrandr_not_found="== Could not find libXRandR. SDL will be used for resolution support. =="
102 xrandr_disabled="== XRandR support disabled. SDL will be used for resolution support. =="
103 goom_enabled="== GOOM enabled. =="
104 goom_disabled="== GOOM disabled. =="
105 alsa_disabled="== ALSA support disabled. =="
106 rsxs_enabled="== RSXS enabled. =="
107 rsxs_disabled="== RSXS disabled. =="
108 projectm_enabled="== ProjectM enabled. =="
109 projectm_disabled="== ProjectM disabled. =="
110 x11_enabled="== X11 enabled. =="
111 x11_disabled="== X11 disabled. =="
112 pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
113 pulse_disabled="== PulseAudio support manually disabled. =="
114 dvdcss_enabled="== DVDCSS support enabled. =="
115 dvdcss_disabled="== DVDCSS support disabled. =="
116 hal_not_found="== Could not find hal. HAL support disabled. =="
117 halstorage_not_found="== Could not find hal-storage. HAL support disabled. =="
118 hal_disabled="== HAL support disabled. =="
119 avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
120 avahi_disabled="== Avahi support disabled. =="
121 vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
122 vdpau_disabled="== VDPAU support manually disabled. =="
123 vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
124 vaapi_disabled="== VAAPI support manually disabled. =="
125 crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
126 crystalhd_disabled="== CrystalHD support manually disabled. =="
127 vdadecoder_enabled="== VDADecoder support enabled. =="
128 vdadecoder_disabled="== VDADecoder support manually disabled. =="
129 vtbdecoder_enabled="== VTBDecoder support enabled. =="
130 vtbdecoder_disabled="== VTBDecoder support manually disabled. =="
131 openmax_disabled="== OpenMax support manually disabled. =="
132 openmax_not_found="== Could not find libnvomx. OpenMax support disabled. =="
133 ssh_not_found="== Could not find libssh. =="
134 ssh_disabled="== SSH SFTP disabled. =="
135 librtmp_not_found="== Could not find libRTMP. RTMP support disabled. =="
136 librtmp_disabled="== RTMP support disabled. =="
137 libnfs_not_found="== Could not find libnfs. NFS client support disabled. =="
138 libnfs_disabled="== NFS support disabled. =="
139 libafpclient_not_found="== Could not find libafpclient. AFP client support disabled. =="
140 libafpclient_disabled="== AFP support disabled. =="
141 libshairport_not_found="== Could not find libshairport. AirTunes support disabled. =="
142 libshairport_disabled="== AirTunes support disabled. =="
143 samba_disabled="== SAMBA support disabled. =="
144 libplist_not_found="== Could not find libplist. AirPlay support disabled. =="
145 libplist_disabled="== AirPlay support disabled. =="
146 alsa_not_found="== Could not find ALSA. ALSA support disabled. =="
147 dbus_not_found="== Could not find DBUS. DBUS support disabled. =="
148 libcap_disabled="== Capabilities detection support disabled. =="
149 libcap_not_found="== Could not find libcap. Capabilities detection support disabled. =="
150 gtest_enabled="== Google Test Framework will be configured. =="
151 gtest_disabled="== Google Test Framework will not be configured. =="
153 libudev_not_found="== Could not find libudev. Will use polling to check for device changes. =="
154 libudev_disabled="== udev support disabled. Will use polling to check for device changes. =="
155 libusb_not_found="== Could not find libusb. Plug and play USB device support will not be available. =="
156 libusb_disabled="== libusb disabled. Plug and play USB device support will not be available. =="
157 libusb_disabled_udev_found="== libusb disabled. =="
158 libcec_enabled="== libcec enabled. =="
159 libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
160 libcec_disabled_missing_libs="== libcec disabled because it either needs libudev, or libusb a compatible version of the RPi API. CEC adapter support will not be available. =="
161 cec_rpi_api_missing="== no compatible RPi API found =="
163 # External library message strings
164 external_libraries_enabled="== Use of all supported external libraries enabled. =="
165 external_libraries_disabled="== Use of all supported external libraries disabled. =="
166 external_ffmpeg_enabled="== Use of external ffmpeg enabled. =="
167 external_ffmpeg_disabled="== Use of external ffmpeg disabled. =="
168 ffmpeg_vdpau_not_supported="== External ffmpeg doesn't support VDPAU. VDPAU support disabled. =="
169 dashes="------------------------"
170 final_message="\n XBMC Configuration:"
171 final_message="\n$dashes$final_message\n$dashes"
173 AC_ARG_ENABLE([shared-lib],
174 [AS_HELP_STRING([--enable-shared-lib],
175 [build libxbmc. helpful for tests (default is no)])],
176 [build_shared_lib=$enableval],
177 [build_shared_lib=no])
179 AC_ARG_ENABLE([debug],
180 [AS_HELP_STRING([--enable-debug],
181 [enable debugging information (default is yes)])],
182 [use_debug=$enableval],
186 [AS_HELP_STRING([--with-arch],
187 [build with given arch passing to internal ffmpeg (default is no, needed for crosscompiling)])],
191 AC_ARG_WITH([platform],
192 [AS_HELP_STRING([--with-platform],
193 [use a pre-configured config for common arm boards])],
194 [use_platform=$withval],
198 [AS_HELP_STRING([--with-cpu],
199 [build with given cpu passing to ffmpeg (default is no)])],
203 AC_ARG_ENABLE([neon],
204 [AS_HELP_STRING([--enable-neon],
205 [enable neon passing to ffmpeg (default is no)])],
206 [use_neon=$enableval],
209 AC_ARG_ENABLE([optimizations],
210 [AS_HELP_STRING([--enable-optimizations],
211 [enable optimization (default is yes)])],
212 [use_optimizations=$enableval],
213 [use_optimizations=yes])
216 [AS_HELP_STRING([--enable-gl],
217 [enable OpenGL rendering (default is yes)])],
221 AC_ARG_ENABLE([gles],
222 [AS_HELP_STRING([--enable-gles],
223 [enable OpenGLES rendering (default is no)])],
224 [use_gles=$enableval],
228 [AS_HELP_STRING([--enable-sdl],
229 [enable SDL (default is auto)])],
230 [use_sdl=$enableval],
233 AC_ARG_ENABLE([vdpau],
234 [AS_HELP_STRING([--enable-vdpau],
235 [enable VDPAU decoding (default is auto)])],
236 [use_vdpau=$enableval],
239 AC_ARG_ENABLE([vaapi],
240 [AS_HELP_STRING([--enable-vaapi],
241 [enable VAAPI decoding (default is auto)])],
242 [use_vaapi=$enableval],
245 AC_ARG_ENABLE([crystalhd],
246 [AS_HELP_STRING([--enable-crystalhd],
247 [enable CrystalHD decoding (default is auto)])],
248 [use_crystalhd=$enableval],
249 [use_crystalhd=auto])
251 AC_ARG_ENABLE([vdadecoder],
252 [AS_HELP_STRING([--enable-vdadecoder],
253 [enable VDADecoder decoding (default is auto)])],
254 [use_vdadecoder=$enableval],
255 [use_vdadecoder=auto])
257 AC_ARG_ENABLE([vtbdecoder],
258 [AS_HELP_STRING([--enable-vtbdecoder],
259 [enable VTBDecoder decoding (default is auto)])],
260 [use_vtbdecoder=$enableval],
261 [use_vtbdecoder=auto])
263 AC_ARG_ENABLE([openmax],
264 [AS_HELP_STRING([--enable-openmax],
265 [enable OpenMax decoding (default is auto, requires OpenGLES)])],
266 [use_openmax=$enableval],
269 AC_ARG_ENABLE([tegra],
270 [AS_HELP_STRING([--enable-tegra],
271 [enable Tegra2 arm (default is no)])],
272 [use_tegra=$enableval],
275 AC_ARG_ENABLE([profiling],
276 [AS_HELP_STRING([--enable-profiling],
277 [enable gprof profiling (default is no)])],
278 [use_profiling=$enableval],
281 AC_ARG_ENABLE([joystick],
282 [AS_HELP_STRING([--enable-joystick],
283 [enable SDL joystick support (default is yes)])],
284 [use_joystick=$enableval],
287 AC_ARG_ENABLE([xrandr],
288 [AS_HELP_STRING([--enable-xrandr],
289 [enable XRandR support (default is yes)])],
290 [use_xrandr=$enableval],
293 AC_ARG_ENABLE([goom],
294 [AS_HELP_STRING([--enable-goom],
295 [enable GOOM visualisation (default is no)])],
296 [use_goom=$enableval],
299 AC_ARG_ENABLE([rsxs],
300 [AS_HELP_STRING([--enable-rsxs],
301 [enable really slick X screensavers (default is yes)])],
302 [use_rsxs=$enableval],
305 AC_ARG_ENABLE([projectm],
306 [AS_HELP_STRING([--enable-projectm],
307 [enable ProjectM visualisation (default is yes)])],
308 [use_projectm=$enableval],
312 [AS_HELP_STRING([--enable-x11],
313 [enable x11 (default is yes) 'Linux Only'])],
314 [use_x11=$enableval],
317 AC_ARG_ENABLE([ccache],
318 [AS_HELP_STRING([--enable-ccache],
319 [enable building with ccache feature (default is auto)])],
320 [use_ccache=$enableval],
323 AC_ARG_ENABLE([alsa],
324 [AS_HELP_STRING([--disable-alsa],
325 [disable ALSA support (only for linux/freebsd)])],
326 [use_alsa=$enableval],
329 AC_ARG_ENABLE([pulse],
330 [AS_HELP_STRING([--enable-pulse],
331 [enable PulseAudio support (default is no)])],
332 [use_pulse=$enableval],
336 [AS_HELP_STRING([--disable-ssh],
337 [disable SSH SFTP support (default is enabled)])],
338 [use_ssh=$enableval],
341 AC_ARG_ENABLE([rtmp],
342 [AS_HELP_STRING([--enable-rtmp],
343 [enable RTMP support via librtmp (default is auto)])],
344 [use_librtmp=$enableval],
347 AC_ARG_ENABLE([samba],
348 [AS_HELP_STRING([--disable-samba],
349 [disable SAMBA support (default is enabled)])],
350 [use_samba=$enableval],
354 [AS_HELP_STRING([--enable-nfs],
355 [enable NFS support via libnfs (default is auto)])],
356 [use_libnfs=$enableval],
359 AC_ARG_ENABLE([afpclient],
360 [AS_HELP_STRING([--enable-afpclient],
361 [enable AFP support via libafpclient (default is auto)])],
362 [use_libafpclient=$enableval],
363 [use_libafpclient=auto])
365 AC_ARG_ENABLE([airplay],
366 [AS_HELP_STRING([--enable-airplay],
367 [enable AirPlay support(default is auto)])],
368 [use_airplay=$enableval],
371 AC_ARG_ENABLE([airtunes],
372 [AS_HELP_STRING([--enable-airtunes],
373 [enable AirTunes support(default is auto)])],
374 [use_airtunes=$enableval],
377 AC_ARG_ENABLE([upnp],
378 [AS_HELP_STRING([--disable-upnp],
379 [disable UPnP support (default is enabled)])],
380 [use_upnp=$enableval],
383 AC_ARG_ENABLE([ffmpeg_libvorbis],
384 [AS_HELP_STRING([--enable-ffmpeg-libvorbis],
385 [enable FFmpeg vorbis encoding (default is no)])],
386 [use_ffmpeg_libvorbis=$enableval],
387 [use_ffmpeg_libvorbis=no])
389 AC_ARG_ENABLE([dvdcss],
390 [AS_HELP_STRING([--enable-dvdcss],
391 [enable DVDCSS support (default is yes)])],
392 [use_dvdcss=$enableval],
396 [AS_HELP_STRING([--enable-mid],
397 [enable MID support (default is no)])],
398 [use_mid=$enableval],
402 [AS_HELP_STRING([--disable-hal],
403 [disable HAL support (default is enabled if hal and hal-storage is found)])],
404 [use_hal=$enableval],
407 AC_ARG_ENABLE([avahi],
408 [AS_HELP_STRING([--disable-avahi],
409 [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
410 [use_avahi=$enableval],
413 AC_ARG_ENABLE([non-free],
414 [AS_HELP_STRING([--disable-non-free],
415 [disable componentents with non-compliant licenses])],
416 [use_nonfree=$enableval],
419 AC_ARG_ENABLE([asap-codec],
420 [AS_HELP_STRING([--enable-asap-codec],
421 [enable ASAP ADPCM support])],
422 [use_asap=$enableval],
425 AC_ARG_ENABLE([mysql],
426 [AS_HELP_STRING([--disable-mysql],
428 [use_mysql=$enableval],
431 AC_ARG_ENABLE([webserver],
432 [AS_HELP_STRING([--disable-webserver],
433 [disable webserver])],
434 [use_webserver=$enableval],
437 AC_ARG_ENABLE([optical-drive],
438 [AS_HELP_STRING([--disable-optical-drive],
439 [disable optical drive])],
440 [use_optical_drive=$enableval],
441 [use_optical_drive=yes])
443 AC_ARG_ENABLE([libbluray],
444 [AS_HELP_STRING([--enable-libbluray],
445 [enable libbluray support])],
446 [use_libbluray=$enableval],
447 [use_libbluray=auto])
449 AC_ARG_ENABLE([texturepacker],
450 [AS_HELP_STRING([--enable-texturepacker],
451 [enable texturepacker support (default is yes)])],
452 [use_texturepacker=$enableval],
453 [use_texturepacker=auto])
455 AC_ARG_WITH([lirc-device],
456 [AS_HELP_STRING([--with-lirc-device=file],
457 [specify the default LIRC device (default is /dev/lircd)])],
458 [lirc_device=$withval],
459 [lirc_device=/dev/lircd])
460 AC_DEFINE_UNQUOTED([LIRC_DEVICE], ["$lirc_device"], [Default LIRC device])
462 AC_ARG_ENABLE([udev],
463 [AS_HELP_STRING([--enable-udev],
464 [enable udev support (default is auto)])],
465 [use_libudev=$enableval],
468 AC_ARG_ENABLE([libusb],
469 [AS_HELP_STRING([--enable-libusb],
470 [enable libusb support (default is auto)])],
471 [use_libusb=$enableval],
474 AC_ARG_ENABLE([libcec],
475 [AS_HELP_STRING([--enable-libcec],
476 [enable libcec support (default is auto)])],
477 [use_libcec=$enableval],
480 AC_ARG_ENABLE([libmp3lame],
481 [AS_HELP_STRING([--enable-libmp3lame],
482 [enable lame mp3 encoder support (default is auto)])],
483 [use_libmp3lame=$enableval],
484 [use_libmp3lame=auto])
486 AC_ARG_ENABLE([vorbisenc],
487 [AS_HELP_STRING([--enable-libvorbisenc],
488 [enable vorbis encoder support (default is auto)])],
489 [use_libvorbisenc=$enableval],
490 [use_libvorbisenc=auto])
492 AC_ARG_ENABLE([libcap],
493 [AS_HELP_STRING([--enable-libcap],
494 [enable libcap support (default is auto)])],
495 [use_libcap=$enableval],
498 AC_ARG_ENABLE([player],
499 [AS_HELP_STRING([--enable-player],
500 [enable additional players from a list of comma separated names, (default is none, choices are amlplayer, omxplayer)])],
501 [add_players=$enableval],
504 AC_ARG_ENABLE([gtest],
505 [AS_HELP_STRING([--enable-gtest],
506 [configure Google Test Framework (default is no)])],
507 [configure_gtest=$enableval],
508 [configure_gtest=no])
510 ### External libraries options
511 AC_ARG_ENABLE([external-libraries],
512 [AS_HELP_STRING([--enable-external-libraries],
513 [enable use of all supported external libraries (default is no) 'Linux only'])],
514 [use_external_libraries=$enableval],
515 [use_external_libraries=no])
517 AC_ARG_ENABLE([external-ffmpeg],
518 [AS_HELP_STRING([--enable-external-ffmpeg],
519 [enable use of external ffmpeg libraries (default is no) 'Linux only'])],
520 [use_external_ffmpeg=$enableval],
521 [use_external_ffmpeg=$use_external_libraries])
523 ### End of external library options
525 if test "x$host_vendor" != "xapple"; then
526 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
527 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
530 # Checks for programs.
531 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
533 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
534 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
537 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
542 OBJDUMP="${OBJDUMP:-objdump}"
544 # ffmpeg needs the output of uname -s (e.x. linux, darwin) for the target_os
545 # there is no autoconf variable which will give
546 # the correct output format when doing cross compilation
547 # so we have to use our own var here
548 # defaults to the build side target_os
549 # and should be overridden for cross below (see android)
550 ffmpeg_target_os=$(tolower $(uname -s))
552 # host detection and setup
554 i*86*-android-linux-gnu*)
555 target_platform=target_android
559 ffmpeg_target_os=linux
563 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
567 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
572 use_external_ffmpeg="yes"
573 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
576 ARCH="x86_64-freebsd"
578 use_external_ffmpeg="yes"
579 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
592 use_texturepacker_native=yes
596 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
597 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
598 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
599 PYTHON_NOVERSIONCHECK="no-check"
600 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_IOS -D_LINUX")
605 use_texturepacker_native=yes
607 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
609 powerpc-apple-darwin*)
616 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
618 powerpc-*-linux-gnu*)
620 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC")
622 powerpc64-*-linux-gnu*)
623 ARCH="powerpc64-linux"
624 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC64")
630 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
632 arm*-*linux-android*)
633 target_platform=target_android
637 ffmpeg_target_os=linux
640 AC_MSG_ERROR(unsupported host ($host))
645 check_sdl_arch=[`file $USE_TEXTUREPACKER_NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
646 if test "x$check_sdl_arch" = "xi386" ; then
647 DARWIN_NATIVE_ARCH=-m32
648 elif test "x$check_sdl_arch" = "xx86_64" ; then
649 DARWIN_NATIVE_ARCH=-m64
651 AC_SUBST([DARWIN_NATIVE_ARCH])
653 if test "$target_platform" = "target_android" ; then
655 use_texturepacker_native=yes
656 webserver_checkdepends=yes
657 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_ANDROID")
658 CFLAGS="$CFLAGS -Wno-psabi"
659 CXXFLAGS="$CXXFLAGS -Wno-psabi"
660 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
663 case $use_platform in
665 target_platform=target_raspberry_pi
667 use_texturepacker=yes
668 use_texturepacker_native=yes
671 use_hardcoded_tables="yes"
673 USE_TEXTUREPACKER_NATIVE_ROOT="$TEXTUREPACKER_NATIVE_ROOT"
675 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI")
676 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
677 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
680 ffmpeg_target_os=linux
684 if test "$build_shared_lib" = "yes"; then
685 final_message="$final_message\n Shared lib\tYes"
686 AC_SUBST(USE_LIBXBMC,1)
690 # platform debug flags
691 if test "$use_debug" = "yes"; then
692 final_message="$final_message\n Debugging:\tYes"
693 if test "$use_profiling" = "yes"; then
694 final_message="$final_message\n Profiling:\tYes"
695 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
697 final_message="$final_message\n Profiling:\tNo"
698 DEBUG_FLAGS="-g -D_DEBUG -Wall"
701 final_message="$final_message\n Debugging:\tNo"
702 if test "$use_profiling" = "yes"; then
703 final_message="$final_message\n Profiling:\tYes"
704 DEBUG_FLAGS="-pg -DNDEBUG=1"
706 final_message="$final_message\n Profiling:\tNo"
707 DEBUG_FLAGS="-DNDEBUG=1"
710 CFLAGS="$CFLAGS $DEBUG_FLAGS"
711 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
714 if test "$use_optimizations" = "yes"; then
715 final_message="$final_message\n Optimization:\tYes"
716 if test "$target_platform" = "target_raspberry_pi"; then
720 CXXFLAGS="-O2 $CXXFLAGS"
724 final_message="$final_message\n Optimization:\tNo"
728 # platform specific flags
729 if echo "$ARCH" | grep -q "freebsd" ; then
730 LOCALBASE="${LOCALBASE:-/usr/local}"
731 CFLAGS="$CFLAGS -I$LOCALBASE/include"
732 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
733 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
734 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
736 if test "$host_vendor" = "apple" ; then
737 # standard xbmc paths
738 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
739 if test "$use_arch" != "arm"; then
740 LIBS="$LIBS -framework ApplicationServices"
741 LIBS="$LIBS -framework AudioUnit"
742 LIBS="$LIBS -framework AudioToolbox"
743 LIBS="$LIBS -framework Cocoa"
744 LIBS="$LIBS -framework CoreAudio"
745 LIBS="$LIBS -framework CoreVideo"
746 LIBS="$LIBS -framework CoreServices"
747 LIBS="$LIBS -framework CoreFoundation"
748 LIBS="$LIBS -framework DiskArbitration"
749 LIBS="$LIBS -framework IOKit"
750 LIBS="$LIBS -framework IOSurface"
751 LIBS="$LIBS -framework QuartzCore"
752 LIBS="$LIBS -framework SystemConfiguration"
754 USE_EXTERNAL_FFMPEG=1
755 elif test "$target_platform" = "target_raspberry_pi"; then
758 elif test "$use_arch" = "arm"; then
759 CFLAGS="$CFLAGS -mno-apcs-stack-check"
760 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
761 FFMPEG_EXTRACFLAGS=""
762 if test "$use_tegra" = "yes"; then
763 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
764 SAVE_CFLAGS="$CFLAGS"
765 CFLAGS="-mfpu=vfpv3-d16"
767 [AC_LANG_SOURCE([int foo;])],
768 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
769 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
770 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
772 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
773 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
776 if test "$use_neon" = "yes"; then
777 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
778 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
779 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
784 # Checks for library functions.
787 AC_FUNC_CLOSEDIR_VOID
788 AC_FUNC_ERROR_AT_LINE
790 AC_PROG_GCC_TRADITIONAL
792 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
796 # Boxee is apparently having compile problems
797 # if HAVE_REALLOC is defined. Sort this later.
799 AC_FUNC_SELECT_ARGTYPES
800 AC_FUNC_SETVBUF_REVERSED
808 AC_CHECK_FUNCS([atexit dup2 fdatasync floor fs_stat_dev ftime ftruncate getcwd gethostbyaddr gethostbyname gethostname getpagesize getpass gettimeofday inet_ntoa lchown localeconv memchr memmove memset mkdir modf munmap pow rmdir select setenv setlocale socket sqrt strcasecmp strchr strcspn strdup strerror strncasecmp strpbrk strrchr strspn strstr strtol strtoul sysinfo tzset utime])
810 # Check for various sizes
811 AC_CHECK_SIZEOF([int])
812 AC_CHECK_SIZEOF([size_t])
814 # Check for intrinsics
815 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
816 AC_TRY_COMPILE([],[long* temp=0; __sync_add_and_fetch(temp, 1);],
817 [have_builtin_sync_add_and_fetch=yes],
818 [have_builtin_sync_add_and_fetch=no])
819 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
820 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
821 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
822 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
825 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
826 AC_TRY_COMPILE([],[long* temp=0; __sync_sub_and_fetch(temp, 1);],
827 [have_builtin_sync_sub_and_fetch=yes],
828 [have_builtin_sync_sub_and_fetch=no])
829 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
830 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
831 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
832 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
835 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
836 AC_TRY_COMPILE([],[long *temp = 0; __sync_val_compare_and_swap(temp, 1, 1);],
837 [have_builtin_sync_val_compare_and_swap=yes],
838 [have_builtin_sync_val_compare_and_swap=no])
839 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
840 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
841 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
842 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
845 # Add top source directory for all builds so we can use config.h
846 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
848 # Check inotify availability
849 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
851 # Checks for boost headers using CXX instead of CC
853 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
857 if test -z "$PYTHON_NOVERSIONCHECK"; then
858 AX_PYTHON_DEVEL([>= 2.4])
859 PYTHON_VERSION=$ac_python_version
862 if test -z "$PYTHON_VERSION"; then
863 AC_MSG_ERROR([Can't find a Python version.])
865 LIBS="$LIBS $PYTHON_LDFLAGS"
866 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
869 # Checks for platforms libraries.
870 if test "$use_gles" = "yes"; then
872 # GLES overwrites GL if both set to yes.
873 if test "$host_vendor" = "apple" ; then
874 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
875 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
876 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
878 if test "$target_platform" = "target_raspberry_pi"; then
879 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
880 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
881 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
882 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
884 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
885 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
889 if test "$use_gl" = "yes"; then
890 if test "$host_vendor" = "apple" ; then
891 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
892 LIBS="$LIBS -framework OpenGL"
893 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
894 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
895 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
896 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
897 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
899 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
900 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
901 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
904 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
905 AC_CHECK_LIB([SDL_gfx],[main])
909 # platform common libraries
910 if test "$use_mysql" = "yes"; then
911 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
912 if test "x$MYSQL_CONFIG" != "xno"; then
913 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
914 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
915 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
916 LIBS="$LIBS $MYSQL_LIBS"
919 AC_MSG_ERROR($missing_program)
922 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
923 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
924 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
925 AC_INCLUDES_DEFAULT()
926 [#include <mpeg2dec/mpeg2.h>])
927 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
928 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
929 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
930 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
931 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
932 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
933 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
934 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
936 # we need to check for the header because if it exists we set the openssl
937 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
938 # in MT manner correctly.
939 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
940 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
941 if test "$gcrypt_headers_available" = "yes"; then
942 # if we have the headers then we must have the lib
943 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
944 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
945 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
948 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
949 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
950 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
951 if echo "$ARCH" | grep -q freebsd; then
952 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
954 if test "$target_platform" != "target_android" ; then
955 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
958 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
959 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
960 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
961 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
962 if test "$use_mysql" = "yes"; then
963 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
965 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
966 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
967 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
968 if test "$target_platform" = "target_android" ; then
969 #android hack for static python. Required to maintain correct linking order.
970 AC_CHECK_LIB([python$PYTHON_VERSION], [main],, AC_MSG_ERROR($missing_library))
971 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
973 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
974 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
975 AC_MSG_ERROR($missing_library))
976 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
977 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
978 AC_MSG_ERROR($missing_library))
979 PKG_CHECK_MODULES([PNG], [libpng],
980 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
981 AC_MSG_ERROR($missing_library))
982 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
983 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
984 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
985 AC_MSG_ERROR($missing_library))
986 PKG_CHECK_MODULES([PCRE], [libpcre],
987 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
988 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
989 AC_MSG_ERROR($missing_library))
990 PKG_CHECK_MODULES([CDIO], [libcdio],
991 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
992 AC_MSG_ERROR($missing_library))
993 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
994 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
995 AC_MSG_ERROR($missing_library))
996 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
997 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
998 AC_MSG_ERROR($missing_library))
999 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1000 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1001 AC_MSG_ERROR($missing_library))
1003 if test "$target_platform" = "target_android" ; then
1004 PKG_CHECK_MODULES([ZIP], [libzip],
1005 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1006 AC_MSG_ERROR($missing_library))
1009 # check for libbluray
1010 AS_CASE([x$use_libbluray],
1012 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1015 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1018 AS_CASE([x$use_libbluray],
1020 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1021 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1022 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1023 AC_SUBST([HAVE_LIBBLURAY], 1)
1025 AC_SUBST([HAVE_LIBBLURAY], 0)
1029 # platform dependent libraries
1030 if test "$host_vendor" = "apple" ; then
1031 AC_CHECK_LIB([iconv], [main],, AC_MSG_ERROR($missing_library))
1032 if test "$use_arch" != "arm"; then
1033 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1034 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1038 linux*) AC_CHECK_LIB([dl], [main],, AC_MSG_ERROR($missing_library)) ;;
1039 freebsd*) AC_CHECK_LIB([iconv], [main],, AC_MSG_ERROR($missing_library)) ;;
1044 if test "$target_platform" != "target_android" ; then
1045 AC_CHECK_LIB([resolv], [main],, AC_MSG_ERROR($missing_library))
1049 if test "$target_platform" != "target_android" ; then
1050 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1051 AC_CHECK_LIB([rt], [clock_gettime],, AC_MSG_ERROR($missing_library))
1053 if test "x$use_alsa" != "xno"; then
1054 PKG_CHECK_MODULES([ALSA], [alsa],
1055 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1056 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1058 PKG_CHECK_MODULES([DBUS], [dbus-1],
1059 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1060 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1061 AC_MSG_NOTICE($missing_library); use_dbus=no)
1062 if test "x$use_sdl" != "xno"; then
1063 PKG_CHECK_MODULES([SDL], [sdl],
1064 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1065 AC_MSG_ERROR($missing_library))
1066 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1067 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1071 XB_FIND_SONAME([MAD], [mad])
1072 XB_FIND_SONAME([OGG], [ogg])
1073 XB_FIND_SONAME([CURL], [curl])
1074 XB_FIND_SONAME([FLAC], [FLAC])
1075 XB_FIND_SONAME([VORBIS], [vorbis])
1076 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1077 XB_FIND_SONAME([MODPLUG], [modplug])
1078 XB_FIND_SONAME([ASS], [ass])
1079 XB_FIND_SONAME([MPEG2], [mpeg2])
1082 if test "x$use_libmp3lame" != "xno"; then
1083 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1084 if test "x$use_libmp3lame" != "xno"; then
1085 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1088 AS_CASE([x$use_libmp3lame],
1090 AC_SUBST([HAVE_LIBMP3LAME], 0)
1093 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1094 AC_SUBST([HAVE_LIBMP3LAME], 1)
1097 if test "x$use_libvorbisenc" != "xno"; then
1098 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1099 if test "x$use_libvorbisenc" != "xno"; then
1100 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1103 AS_CASE([x$use_libvorbisenc],
1105 AC_SUBST([HAVE_LIBVORBISENC], 0)
1107 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1108 AC_SUBST([HAVE_LIBVORBISENC], 1)
1113 if test "$use_webserver" = "yes"; then
1114 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1118 if test "$use_optical_drive" = "yes"; then
1119 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1123 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1124 PKG_CHECK_MODULES([ALSA], [alsa],
1125 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1126 AC_MSG_ERROR($missing_library))
1127 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1130 AC_MSG_RESULT($alsa_disabled)
1134 if test "x$use_pulse" != "xno"; then
1135 if test "$host_vendor" = "apple" ; then
1136 if test "x$use_pulse" = "xyes"; then
1137 AC_MSG_ERROR($pulse_disabled)
1140 AC_MSG_RESULT($pulse_disabled)
1144 AC_CHECK_LIB([pulse],[main],,pulse_found="no")
1145 AC_CHECK_LIB([pulse-simple],[main],,pulse_found="no")
1147 if test "x$pulse_found" != "xno"; then
1149 elif test "x$use_pulse" = "xyes"; then
1150 AC_MSG_ERROR($pulse_not_found)
1154 AC_MSG_RESULT($pulse_not_found)
1158 AC_MSG_RESULT($pulse_disabled)
1163 if test "$host_vendor" = "apple" ; then
1165 AC_MSG_RESULT($hal_disabled)
1167 if test "$use_hal" = "yes"; then
1168 PKG_CHECK_MODULES([HAL], [hal],
1169 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1170 use_hal=no;AC_MSG_RESULT($hal_not_found))
1171 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1172 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1173 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1175 AC_MSG_RESULT($hal_disabled)
1177 if test "$use_hal" = "yes"; then
1178 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1183 if test "$host_vendor" = "apple" ; then
1185 AC_MSG_RESULT($avahi_disabled)
1187 if test "$use_avahi" = "yes"; then
1188 AC_CHECK_LIB([avahi-common], [main],,
1189 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1190 if test "$use_avahi" = "yes"; then
1191 #either both libs or none
1192 AC_CHECK_LIB([avahi-client], [main],,
1193 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1196 AC_MSG_RESULT($avahi_disabled)
1201 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1202 AC_MSG_NOTICE($x11_enabled)
1203 PKG_CHECK_MODULES([X11], [x11],
1204 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1205 AC_MSG_ERROR($missing_library))
1206 PKG_CHECK_MODULES([XEXT], [xext],
1207 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1208 AC_MSG_ERROR($missing_library))
1209 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1211 AC_MSG_RESULT($x11_disabled)
1215 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1217 AC_MSG_RESULT($xrandr_disabled)
1219 if test "$use_xrandr" = "yes" ; then
1220 AC_CHECK_LIB([Xrandr], [main],,
1221 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1223 AC_MSG_RESULT($xrandr_disabled)
1228 if test "$host_vendor" = "apple" ; then
1229 AC_MSG_NOTICE($goom_disabled)
1232 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1233 AC_MSG_NOTICE($goom_enabled)
1236 AC_MSG_NOTICE($goom_disabled)
1242 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1243 AC_MSG_NOTICE($rsxs_disabled)
1246 AC_MSG_NOTICE($rsxs_enabled)
1248 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1249 if test "$host_vendor" != "apple" ; then
1250 PKG_CHECK_MODULES([XT], [xt],
1251 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1252 AC_MSG_ERROR($missing_library))
1253 PKG_CHECK_MODULES([XMU], [xmu],
1254 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1255 AC_MSG_ERROR($missing_library))
1260 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1261 AC_MSG_NOTICE($projectm_disabled)
1264 AC_MSG_NOTICE($projectm_enabled)
1270 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1271 use_skin_touched=yes
1273 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1279 if test "x$use_ssh" = "xno"; then
1280 AC_MSG_NOTICE($ssh_disabled)
1283 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1284 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1288 if test "$use_librtmp" != "no"; then
1289 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1290 [if test "$use_librtmp" = "yes"; then
1291 AC_MSG_ERROR($librtmp_not_found)
1292 elif test "$use_librtmp" != "no"; then
1293 AC_MSG_NOTICE($librtmp_not_found)
1297 if test "$use_librtmp" != "no"; then
1298 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1300 if test "$use_librtmp" != "no"; then
1301 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1304 AC_MSG_NOTICE($librtmp_disabled)
1308 if test "x$use_samba" != "xno"; then
1309 AC_CHECK_LIB([smbclient], [main],,
1310 use_samba=no;AC_MSG_ERROR($missing_library))
1313 AC_MSG_RESULT($samba_disabled)
1317 if test "x$use_samba" != "xno"; then
1318 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1323 if test "$use_libnfs" != "no"; then
1324 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1325 [if test "$use_libnfs" = "yes"; then
1326 AC_MSG_ERROR($libnfs_not_found)
1328 elif test "$use_libnfs" != "no"; then
1329 AC_MSG_NOTICE($libnfs_not_found)
1334 if test "$use_libnfs" != "no"; then
1335 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1337 if test "$use_libnfs" != "no"; then
1338 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1343 AC_MSG_NOTICE($libnfs_disabled)
1348 if test "x$use_libafpclient" != "xno"; then
1349 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1350 [if test "x$use_libafpclient" = "xyes"; then
1351 AC_MSG_ERROR($libafpclient_not_found)
1352 elif test "x$use_libafpclient" != "xno"; then
1353 AC_MSG_NOTICE($libafpclient_not_found)
1354 use_libafpclient="no"
1357 if test "x$use_libafpclient" != "xno"; then
1358 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1359 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1363 AC_MSG_NOTICE($libafpclient_disabled)
1366 # libplist for airplay feature
1368 if test "$use_airplay" != "no"; then
1369 AC_CHECK_HEADER([plist/plist.h],,
1370 [if test "$use_airplay" = "yes"; then
1371 AC_MSG_ERROR($libplist_not_found)
1372 elif test "$use_airplay" != "no"; then
1373 AC_MSG_NOTICE($libplist_not_found)
1378 if test "$use_airplay" != "no"; then
1379 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1381 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1385 # libshairport for AirTunes
1387 if test "x$use_airtunes" != "xno"; then
1388 AC_CHECK_HEADERS([shairport/shairport.h],,
1389 [if test "x$use_airtunes" = "xyes"; then
1390 AC_MSG_ERROR($libshairport_not_found)
1391 elif test "x$use_airtunes" != "xno"; then
1392 AC_MSG_NOTICE($libshairport_not_found)
1397 if test "x$use_airtunes" != "xno"; then
1398 XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
1400 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1401 [[#include <shairport/shairport.h>]])
1402 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1408 if test "$host_vendor" = "apple" ; then
1410 AC_MSG_NOTICE($libudev_disabled)
1412 if test "$use_libudev" = "auto"; then
1413 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1414 elif test "$use_libudev" = "yes" ; then
1415 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1417 AC_MSG_NOTICE($libudev_disabled)
1420 if test "x$use_libudev" != "xno"; then
1421 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1422 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1429 # if libudev is available, we don't need libusb
1430 if test "x$use_libudev" != "xno"; then
1432 AC_MSG_NOTICE($libusb_disabled_udev_found)
1434 if test "$host_vendor" = "apple" ; then
1436 AC_MSG_NOTICE($libusb_disabled)
1438 if echo "$ARCH" | grep -q freebsd ; then
1439 AC_CHECK_LIB([usb],[main],
1440 [use_libusb="yes";USB_LIBS="-lusb"],
1441 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1442 elif test "$use_libusb" = "auto"; then
1443 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1444 elif test "$use_libusb" = "yes"; then
1445 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1447 AC_MSG_NOTICE($libusb_disabled)
1450 if test "x$use_libusb" != "xno"; then
1451 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1452 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1460 use_rpi_cec_api="auto"
1461 if test "x$use_libcec" != "xno"; then
1462 case "${host_cpu}" in
1464 echo "will check for RPi support"
1465 AC_CHECK_HEADER(interface/vmcs_host/vc_cec.h,,use_rpi_cec_api="no")
1468 echo "will not check for RPi support (unsupported cpu: ${host_cpu})"
1469 use_rpi_cec_api="no"
1473 # libcec needs libudev, libusb or the RPi API under linux, or the device will never be detected.
1474 if test "$host_vendor" != "apple" && test "$use_libusb" = "no" && test "$use_libudev" = "no" && test "$use_rpi_cec_api" = "no"; then
1475 if test "x$use_libcec" != "xauto"; then
1476 AC_MSG_ERROR($libcec_disabled_missing_libs)
1479 AC_MSG_NOTICE($libcec_disabled_missing_libs)
1483 # libcec is dyloaded, so we need to check for its headers and link any depends.
1484 if test "x$use_libcec" != "xno"; then
1485 if test "x$use_libcec" != "xauto"; then
1486 PKG_CHECK_MODULES([CEC],[libcec >= 2.0.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1488 PKG_CHECK_MODULES([CEC],[libcec >= 2.0.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1491 if test "x$use_libcec" != "xno"; then
1492 INCLUDES="$INCLUDES $CEC_CFLAGS"
1493 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1494 if test "x$use_rpi_cec_api" != "xno"; then
1495 LIBS+=" -lvcos -lvchiq_arm"
1496 AC_DEFINE([HAVE_CEC_RPI_API],[1],["Define to 1 if the CEC RPi API is installed"])
1499 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1500 AC_MSG_NOTICE($libcec_enabled)
1503 AC_MSG_NOTICE($libcec_disabled)
1508 AC_MSG_NOTICE($libcec_disabled)
1512 if test "$use_libcap" != "no"; then
1513 AC_CHECK_HEADERS([sys/capability.h],,
1514 [if test "$use_libcap" = "yes"; then
1515 AC_MSG_ERROR($libcap_not_found)
1516 elif test "$use_libcap" != "no"; then
1517 AC_MSG_NOTICE($libcap_not_found)
1521 if test "$use_libcap" != "no"; then
1522 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1524 if test "$use_libcap" != "no"; then
1525 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1528 AC_MSG_NOTICE($libcap_disabled)
1531 ### External libraries checks
1534 if test "$use_external_ffmpeg" = "yes"; then
1535 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale"
1537 # libavcore is optional
1538 PKG_CHECK_EXISTS([libavcore], FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libavcore")
1540 # one of libswresample or libavresample is needed
1541 PKG_CHECK_EXISTS([libswresample], FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libswresample",
1542 [PKG_CHECK_EXISTS([libavresample],
1543 FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libavresample",
1544 AC_MSG_ERROR([You need either libswresample
1545 or libavresample.]))])
1547 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1548 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1549 AC_MSG_ERROR($missing_library))
1551 # Determine whether AVPacket and relevant functions are defined in libavformat
1553 AC_CHECK_LIB([avcodec], [av_free_packet],
1554 [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavcodec. ==)],
1555 [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavformat. ==)
1556 AC_DEFINE([AVPACKET_IN_AVFORMAT], [1], [Whether AVPacket is in libavformat.])])
1558 # in case the headers are in a custom directory
1559 SAVE_CPPFLAGS="$CPPFLAGS"
1560 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1562 # Possible places the ffmpeg headers may be
1563 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1564 [AC_CHECK_HEADERS([ffmpeg/avcodec.h ffmpeg/avfilter.h ffmpeg/avformat.h ffmpeg/avutil.h postproc/postprocess.h ffmpeg/swscale.h],,
1565 [AC_MSG_ERROR($missing_headers)])])
1568 AC_CHECK_HEADERS([libavcore/avcore.h libavcore/samplefmt.h libavutil/mem.h libavutil/samplefmt.h])
1570 # old FFmpeg have this in libavcodec/opt.h instead:
1571 AC_CHECK_HEADERS([libavutil/opt.h])
1573 # new FFmpeg have math headers
1574 AC_CHECK_HEADERS([libavutil/mathematics.h],,)
1576 # We'll support the use of rgb2rgb.h if it exists.
1577 AC_CHECK_HEADERS([libswscale/rgb2rgb.h],,)
1578 AC_CHECK_HEADERS([ffmpeg/rgb2rgb.h],,)
1580 # Check for libswresample or libavresample headers.
1581 AC_CHECK_HEADERS([libswresample/swresample.h libavresample/avresample.h])
1583 # Check if AVFilterBufferRefVideoProps AVRational member is named
1584 # 'pixel_aspect' or 'sample_aspect_ratio'.
1585 AC_CHECK_MEMBER([AVFilterBufferRefVideoProps.sample_aspect_ratio],
1586 [AC_DEFINE([HAVE_AVFILTERBUFFERREFVIDEOPROPS_SAMPLE_ASPECT_RATIO],
1588 [Define to 1 if AVFilterBufferRefVideoProps has member sample_aspect_ratio.])],
1589 [AC_CHECK_MEMBER([AVFilterBufferRefVideoProps.sample_aspect_ratio],
1590 [AC_DEFINE([HAVE_AVFILTERBUFFERREFVIDEOPROPS_SAMPLE_ASPECT_RATIO],
1592 [Define to 1 if AVFilterBufferRefVideoProps has member sample_aspect_ratio.])],
1594 [[#include <ffmpeg/avfilter.h>]])],
1595 [[#include <libavfilter/avfilter.h>]])
1597 AC_MSG_NOTICE($external_ffmpeg_enabled)
1598 USE_EXTERNAL_FFMPEG=1
1599 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1601 # Disable vdpau support if external libavcodec doesn't have it
1602 AC_CHECK_LIB([avcodec], [ff_vdpau_vc1_decode_picture],,
1603 [if test "x$use_vdpau" = "xyes"; then
1604 AC_MSG_ERROR($ffmpeg_vdpau_not_supported)
1607 AC_MSG_RESULT($ffmpeg_vdpau_not_supported)
1610 # Check for 'PIX_FMT_VDPAU_MPEG4' from libavutil
1611 if test "x$use_vdpau" != "xno"; then
1614 [AC_LANG_SOURCE([ #include <libavutil/pixfmt.h>
1615 int main() { PixelFormat format = PIX_FMT_VDPAU_MPEG4; }])],
1616 [AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1],
1617 [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])],)
1620 CPPFLAGS="$SAVE_CPPFLAGS"
1622 AC_MSG_NOTICE($external_ffmpeg_disabled)
1623 USE_EXTERNAL_FFMPEG=0
1624 AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1], [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])
1627 echo "Checking for SWIG installation"
1628 AC_PATH_PROG(SWIG_EXE, swig, "none")
1629 if test "$SWIG_EXE" = "none"; then
1630 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1631 if test "$SWIG20_EXE" != "none" ; then
1632 SWIG_EXE=$SWIG20_EXE
1635 if test "$SWIG_EXE" = "none"; then
1636 AC_MSG_ERROR($missing_program)
1638 final_message="$final_message\n SWIG Available:\tYes"
1640 echo "Checking for a jre installation"
1641 AC_PATH_PROG(JAVA_EXE, java, "none")
1642 if test "$JAVA_EXE" = "none"; then
1643 AC_MSG_ERROR($missing_program)
1645 final_message="$final_message\n JRE Available:\tYes"
1647 echo "Checking for doxygen installation"
1648 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1649 if test "$DOXYGEN_EXE" = "none"; then
1650 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1651 final_message="$final_message\n Doxygen Available:\tNo"
1654 final_message="$final_message\n Doxygen Available:\tYes"
1659 if test "x$use_vdpau" != "xno"; then
1660 if test "$host_vendor" = "apple" ; then
1661 if test "x$use_vdpau" = "xyes"; then
1662 AC_MSG_ERROR([VDPAU not supported on this platform])
1665 AC_MSG_NOTICE($vdpau_disabled)
1670 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1671 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1672 [if test "x$use_vdpau" = "xyes"; then
1674 AC_MSG_ERROR([$vdpau_not_found])
1678 AC_MSG_RESULT($vdpau_not_found)
1683 AC_MSG_NOTICE($vdpau_disabled)
1687 if test "x$use_vaapi" != "xno"; then
1688 if test "$host_vendor" = "apple" ; then
1689 if test "x$use_vaapi" = "xyes"; then
1690 AC_MSG_ERROR([VAAPI not supported on this platform])
1693 AC_MSG_NOTICE($vaapi_disabled)
1697 initial_val=$use_vaapi
1698 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1699 if test "x$use_vaapi" != "xno"; then
1700 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1703 if test "x$use_vaapi" = "xno"; then
1704 if test "x$initial_val" = "xyes"; then
1705 AC_MSG_ERROR($vaapi_not_found)
1707 AC_MSG_RESULT($vaapi_not_found)
1711 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1716 AC_MSG_NOTICE($vaapi_disabled)
1721 if test "x$use_crystalhd" != "xno"; then
1722 SAVE_CFLAGS="$CFLAGS"
1723 CFLAGS="-D__LINUX_USER__"
1724 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1725 [ if test "x$use_crystalhd" = "xyes"; then
1726 AC_MSG_ERROR($crystalhd_not_found)
1729 AC_MSG_RESULT($crystalhd_not_found)
1733 CFLAGS="$SAVE_CFLAGS"
1734 if test "$host_vendor" != "apple"; then
1735 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1737 if test "x$use_crystalhd" != "xno"; then
1738 SAVE_CFLAGS="$CFLAGS"
1739 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1740 # check for new crystalhd lib
1742 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1743 #include <libcrystalhd/bc_dts_defs.h>
1744 PBC_INFO_CRYSTAL bCrystalInfo;])],
1745 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1746 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1747 CFLAGS="$SAVE_CFLAGS"
1751 AC_MSG_NOTICE($crystalhd_disabled)
1756 if test "x$use_vdadecoder" != "xno"; then
1757 if test "$host_vendor" = "apple" ; then
1758 HAVE_LIBVDADECODER=1
1759 AC_DEFINE([HAVE_LIBVDADECODER], [1], [Define to 1 if you have the 'VDADecoder' library.])
1760 AC_MSG_NOTICE($vdadecoder_enabled)
1763 if test "x$use_vdadecoder" = "xyes"; then
1764 AC_MSG_ERROR([VDA Decoder not supported on this platform])
1767 AC_MSG_NOTICE($vdadecoder_disabled)
1772 AC_MSG_NOTICE($vdadecoder_disabled)
1776 if test "x$use_vtbdecoder" != "xno"; then
1777 if test "$host_vendor" = "apple" ; then
1778 HAVE_VIDEOTOOLBOXDECODER=1
1779 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1780 AC_MSG_NOTICE($vtbdecoder_enabled)
1782 if test "x$use_vtbdecoder" = "xyes"; then
1783 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1786 AC_MSG_NOTICE($vtbdecoder_disabled)
1790 AC_MSG_NOTICE($vtbdecoder_disabled)
1794 if test "$host_vendor" = "apple" ; then
1797 AC_MSG_NOTICE($openmax_disabled)
1798 elif test "$target_platform" = "target_raspberry_pi"; then
1801 AC_MSG_NOTICE($openmax_disabled)
1803 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1804 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1805 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1806 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1807 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1808 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1809 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1810 AC_MSG_ERROR($openmax_not_found))
1812 AC_MSG_NOTICE($openmax_disabled)
1818 # yajl version check (yajl_version.h was added in yajl 2.0)
1819 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1820 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1823 # additional internal players
1824 case $add_players in
1826 AC_CHECK_HEADER([amlplayer/amports/amstream.h],, AC_MSG_ERROR($missing_headers))
1827 XB_ADD_PLAYER([AMLPLAYER], [amlplayer])
1830 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1834 # platform specific bin utilities
1835 if test "$host_vendor" != "apple" ; then
1836 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1837 if test "$HAVE_GAWK" = "no" ; then
1838 AC_MSG_ERROR($missing_program)
1842 if test "$use_arch" != "arm" ; then
1843 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1844 if test "$HAVE_CMAKE" = "no" ; then
1845 AC_MSG_ERROR($missing_program)
1849 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1850 if test "$HAVE_GPERF" = "no" ; then
1851 AC_MSG_ERROR($missing_program)
1854 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1855 if test "$HAVE_UNZIP" = "no" ; then
1856 AC_MSG_ERROR($missing_program)
1859 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
1860 if test "$HAVE_ZIP" = "no" ; then
1861 AC_MSG_ERROR($missing_program)
1864 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
1865 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
1866 if test "$HAVE_NASM" = "no" ; then
1867 AC_MSG_ERROR($missing_program)
1871 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
1873 # Checks for header files.
1877 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
1878 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
1879 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
1880 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
1881 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
1883 # Checks for typedefs, structures, and compiler characteristics.
1899 AC_CHECK_MEMBERS([struct stat.st_rdev])
1908 if test "$cross_compiling" = "yes"; then
1909 final_message="$final_message\n Crosscomp.:\tYes"
1911 final_message="$final_message\n Crosscomp.:\tNo"
1914 final_message="$final_message\n target ARCH:\t$use_arch"
1915 final_message="$final_message\n target CPU:\t$use_cpu"
1917 if test "$use_gles" = "yes"; then
1918 final_message="$final_message\n OpenGLES:\tYes"
1923 if test "$use_gl" = "yes"; then
1924 final_message="$final_message\n OpenGL:\tYes"
1927 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
1928 SDL_DEFINES="-DHAS_SDL_2D"
1933 if test "$use_alsa" = "yes"; then
1935 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
1936 final_message="$final_message\n ALSA:\t\tYes"
1939 final_message="$final_message\n ALSA:\t\tNo"
1942 if test "$use_dbus" = "yes"; then
1943 final_message="$final_message\n DBUS:\t\tYes"
1945 final_message="$final_message\n DBUS:\t\tNo"
1948 if test "x$use_vdpau" != "xno"; then
1949 final_message="$final_message\n VDPAU:\tYes"
1951 final_message="$final_message\n VDPAU:\tNo"
1954 if test "x$use_vaapi" != "xno"; then
1955 final_message="$final_message\n VAAPI:\tYes"
1957 final_message="$final_message\n VAAPI:\tNo"
1960 if test "x$use_crystalhd" != "xno"; then
1961 final_message="$final_message\n CrystalHD:\tYes"
1963 final_message="$final_message\n CrystalHD:\tNo"
1966 if test "x$use_vdadecoder" != "xno"; then
1967 final_message="$final_message\n VDADecoder:\tYes"
1969 final_message="$final_message\n VDADecoder:\tNo"
1972 if test "x$use_vtbdecoder" != "xno"; then
1973 final_message="$final_message\n VTBDecoder:\tYes"
1975 final_message="$final_message\n VTBDecoder:\tNo"
1978 if test "$use_openmax" != "no"; then
1979 final_message="$final_message\n OpenMax:\tYes"
1981 final_message="$final_message\n OpenMax:\tNo"
1984 if test "$use_joystick" = "yes"; then
1985 final_message="$final_message\n Joystick:\tYes"
1986 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
1988 final_message="$final_message\n Joystick:\tNo"
1991 if test "$use_xrandr" = "yes"; then
1992 final_message="$final_message\n XRandR:\tYes"
1995 final_message="$final_message\n XRandR:\tNo"
1999 if test "$use_goom" = "yes"; then
2000 final_message="$final_message\n GOOM:\t\tYes"
2002 final_message="$final_message\n GOOM:\t\tNo"
2005 if test "$use_rsxs" = "yes"; then
2006 final_message="$final_message\n RSXS:\t\tYes"
2008 final_message="$final_message\n RSXS:\t\tNo"
2011 if test "$use_projectm" = "yes"; then
2012 final_message="$final_message\n ProjectM:\tYes"
2014 final_message="$final_message\n ProjectM:\tNo"
2017 if test "$use_skin_touched" = "yes"; then
2018 final_message="$final_message\n Skin Touched:\tYes"
2020 final_message="$final_message\n Skin Touched:\tNo"
2023 if test "$use_x11" = "yes"; then
2024 final_message="$final_message\n X11:\t\tYes"
2026 final_message="$final_message\n X11:\t\tNo"
2029 if test "$use_libbluray" = "yes"; then
2030 final_message="$final_message\n Bluray:\tYes"
2032 final_message="$final_message\n Bluray:\tNo"
2035 USE_TEXTUREPACKER_NATIVE=0
2036 if test "x$use_texturepacker" != "xno"; then
2037 final_message="$final_message\n TexturePacker:Yes"
2039 if test "x$use_texturepacker_native" = "xyes"; then
2040 USE_TEXTUREPACKER_NATIVE=1
2041 if [[ ! -d "$USE_TEXTUREPACKER_NATIVE_ROOT" ]]; then
2042 USE_TEXTUREPACKER_NATIVE_ROOT=
2046 final_message="$final_message\n TexturePacker:No"
2050 if test "$use_mid" = "yes"; then
2051 final_message="$final_message\n MID Support:\tYes"
2052 SDL_DEFINES="$SDL_DEFINES -DMID"
2054 final_message="$final_message\n MID Support:\tNo"
2059 if test "x$use_ccache" != "xno"; then
2060 AC_PATH_PROG(CCACHE,ccache,none)
2061 if test "$ac_cv_path_CCACHE" = "none"; then
2062 if test "x$use_ccache" = "xyes"; then
2063 AC_MSG_ERROR([ccache not found.]);
2065 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2066 final_message="$final_message\n ccache:\tNo"
2069 CC="$ac_cv_path_CCACHE $CC"
2070 CXX="$ac_cv_path_CCACHE $CXX"
2071 AC_MSG_NOTICE(enabling ccache)
2072 final_message="$final_message\n ccache:\tYes"
2075 final_message="$final_message\n ccache:\tNo"
2078 if test "$use_alsa" = "yes"; then
2079 final_message="$final_message\n ALSA Support:\tYes"
2081 final_message="$final_message\n ALSA Support:\tNo"
2084 if test "x$use_pulse" != "xno"; then
2085 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2086 final_message="$final_message\n PulseAudio:\tYes"
2088 XBMC_STANDALONE_SH_PULSE=/dev/null
2089 final_message="$final_message\n PulseAudio:\tNo"
2092 if test "$use_hal" = "yes"; then
2093 final_message="$final_message\n HAL Support:\tYes"
2095 final_message="$final_message\n HAL Support:\tNo"
2099 if test "$use_dvdcss" = "yes"; then
2100 AC_MSG_NOTICE($dvdcss_enabled)
2101 final_message="$final_message\n DVDCSS:\tYes"
2103 SKIP_CONFIG_DVDCSS=0
2104 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2106 AC_MSG_NOTICE($dvdcss_disabled)
2107 final_message="$final_message\n DVDCSS:\tNo"
2109 SKIP_CONFIG_DVDCSS=1
2110 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2112 if test "$host_vendor" = "apple"; then
2113 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2116 # Google Test Framework
2117 if test "$configure_gtest" = "yes"; then
2118 AC_MSG_NOTICE($gtest_enabled)
2119 final_message="$final_message\n Google Test Framework Configured:\tYes"
2123 AC_MSG_NOTICE($gtest_disabled)
2124 final_message="$final_message\n Google Test Framework Configured:\tNo"
2129 if test "$use_avahi" = "yes"; then
2130 final_message="$final_message\n Avahi:\tYes"
2132 final_message="$final_message\n Avahi:\tNo"
2135 if test "$HAVE_GIT" = "yes"; then
2136 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
2138 if test "$GIT_REV" = ""; then
2141 if test "$host_vendor" = "apple"; then
2142 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
2144 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
2147 if test "$use_nonfree" = "yes"; then
2148 final_message="$final_message\n Non-free:\tYes"
2150 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2153 final_message="$final_message\n Non-free:\tNo"
2156 if test "$use_asap" = "yes"; then
2157 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2158 if test "$HAVE_GDC" = "no"; then
2159 AC_MSG_ERROR($missing_program);
2161 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2162 if test "$HAVE_FPC" = "no"; then
2163 AC_MSG_ERROR($missing_program);
2166 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2167 final_message="$final_message\n ASAP Codec:\tYes"
2170 final_message="$final_message\n ASAP Codec:\tNo"
2173 if test "$use_mysql" = "yes"; then
2174 final_message="$final_message\n MySQL:\tYes"
2177 final_message="$final_message\n MySQL:\tNo"
2180 if test "$use_webserver" = "yes"; then
2181 final_message="$final_message\n Webserver:\tYes"
2184 final_message="$final_message\n Webserver:\tNo"
2188 if test "$use_libssh" != "no"; then
2189 final_message="$final_message\n libssh support:\tYes"
2191 final_message="$final_message\n libssh support:\tNo"
2194 if test "$use_librtmp" != "no"; then
2195 final_message="$final_message\n libRTMP support:\tYes"
2197 final_message="$final_message\n libRTMP support:\tNo"
2200 if test "x$use_samba" != "xno"; then
2201 final_message="$final_message\n libsmbclient support:\tYes"
2203 final_message="$final_message\n libsmbclient support:\tNo"
2206 if test "$use_libnfs" != "no"; then
2207 final_message="$final_message\n libnfs client support:Yes"
2209 final_message="$final_message\n libnfs client support:No"
2212 if test "x$use_libafpclient" != "xno"; then
2213 final_message="$final_message\n libafpclient support:\tYes"
2215 final_message="$final_message\n libafpclient support:\tNo"
2218 if test "$use_airplay" != "no"; then
2219 final_message="$final_message\n AirPlay support:\tYes"
2221 final_message="$final_message\n AirPLay support:\tNo"
2224 if test "x$use_airtunes" != "xno"; then
2225 final_message="$final_message\n AirTunes support:\tYes"
2227 final_message="$final_message\n AirTunes support:\tNo"
2230 if test "x$use_upnp" != "xno"; then
2231 final_message="$final_message\n UPnP support:\t\tYes"
2233 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2236 final_message="$final_message\n UPnP support:\t\tNo"
2239 if test "$use_optical_drive" = "yes"; then
2240 final_message="$final_message\n Optical drive:\tYes"
2242 final_message="$final_message\n Optical drive:\tNo"
2245 if test "x$use_libudev" != "xno"; then
2246 final_message="$final_message\n libudev support:\tYes"
2248 final_message="$final_message\n libudev support:\tNo"
2251 if test "x$use_libusb" != "xno"; then
2252 final_message="$final_message\n libusb support:\tYes"
2254 final_message="$final_message\n libusb support:\tNo"
2257 if test "x$use_libcec" != "xno"; then
2258 final_message="$final_message\n libcec support:\tYes"
2259 if test "x$use_rpi_cec_api" != "xno"; then
2260 final_message="$final_message\n libcec RPi support:\tYes"
2262 final_message="$final_message\n libcec RPi support:\tNo"
2265 final_message="$final_message\n libcec support:\tNo"
2268 if test "x$use_libmp3lame" != "xno"; then
2269 final_message="$final_message\n libmp3lame support:\tYes"
2271 final_message="$final_message\n libmp3lame support:\tNo"
2274 if test "x$use_libvorbisenc" != "xno"; then
2275 final_message="$final_message\n libvorbisenc support:\tYes"
2277 final_message="$final_message\n libvorbisenc support:\tNo"
2280 if test "x$use_libcap" != "xno"; then
2281 final_message="$final_message\n libcap support:\tYes"
2283 final_message="$final_message\n libcap support:\tNo"
2286 if test "x$add_players" != "xno"; then
2287 final_message="$final_message\n additional players:\tYes"
2289 final_message="$final_message\n additional players:\tNo"
2292 ### External libraries messages
2294 if test "$use_external_ffmpeg" = "yes"; then
2295 final_message="$final_message\n External FFmpeg:\tYes"
2297 final_message="$final_message\n External FFmpeg:\tNo"
2300 if test "$host_vendor" = "apple" ; then
2301 # built internal but referenced as external, we link directly to them.
2302 # this MUST be the last thing before OUTPUT_FILES as they do not
2303 # exist until after we build FFMpeg.
2304 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2305 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2306 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2307 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2308 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2309 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2310 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2314 DISABLE_PVR_ADDON_CONFIG=1
2315 if [[ -f "pvr-addons/Makefile.am" ]]; then
2316 final_message="$final_message\n PVR add-ons:\t\tYes"
2318 DISABLE_PVR_ADDON_CONFIG=0
2320 final_message="$final_message\n PVR add-ons:\t\tNo"
2323 OUTPUT_FILES="Makefile \
2325 addons/skin.confluence/media/Makefile \
2327 xbmc/cdrip/Makefile \
2328 xbmc/cores/Makefile \
2329 xbmc/cores/VideoRenderers/Makefile \
2330 xbmc/cores/dvdplayer/Makefile \
2332 lib/libdvd/Makefile \
2333 xbmc/cores/DllLoader/Makefile \
2334 xbmc/cores/DllLoader/exports/Makefile \
2335 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2336 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2337 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2338 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2339 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2340 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2341 xbmc/cores/AudioEngine/Makefile \
2342 xbmc/cores/paplayer/Makefile \
2343 xbmc/cores/amlplayer/Makefile \
2344 xbmc/cores/omxplayer/Makefile \
2345 lib/timidity/Makefile \
2346 lib/xbadpcm/Makefile \
2348 lib/nosefart/Makefile \
2349 lib/libsidplay2/Makefile \
2350 lib/vgmstream/Makefile \
2351 lib/snesapu/SNES/SNESAPU/Makefile \
2352 lib/stsound/StSoundLibrary/Makefile \
2353 xbmc/cores/playercorefactory/Makefile \
2354 xbmc/music/karaoke/Makefile \
2356 xbmc/guilib/Makefile \
2357 xbmc/interfaces/Makefile \
2358 xbmc/network/Makefile \
2359 xbmc/network/upnp/Makefile \
2360 lib/libRTV/Makefile \
2361 lib/libexif/Makefile \
2362 lib/libXDAAP/Makefile \
2363 lib/cmyth/Makefile \
2364 lib/libhdhomerun/Makefile \
2365 lib/libsquish/Makefile \
2366 lib/cximage-6.0/Makefile \
2367 lib/addons/script.module.pil/Makefile \
2368 lib/libUPnP/Makefile \
2369 xbmc/DllPaths_generated.h \
2370 xbmc/DllPaths_generated_android.h \
2371 xbmc/freebsd/Makefile \
2372 xbmc/linux/Makefile \
2373 xbmc/filesystem/Makefile \
2374 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2375 xbmc/visualizations/XBMCProjectM/Makefile \
2376 xbmc/visualizations/Goom/Makefile \
2377 xbmc/visualizations/OpenGLSpectrum/Makefile \
2378 xbmc/visualizations/WaveForm/Makefile \
2379 lib/addons/library.xbmc.addon/Makefile \
2380 lib/addons/library.xbmc.gui/Makefile \
2381 lib/addons/library.xbmc.pvr/Makefile \
2382 xbmc/visualizations/EGLHelpers/Makefile \
2383 tools/Linux/xbmc.sh \
2384 tools/Linux/xbmc-standalone.sh \
2385 tools/TexturePacker/Makefile \
2386 tools/EventClients/Clients/OSXRemote/Makefile \
2387 xbmc/peripherals/bus/Makefile \
2388 xbmc/peripherals/devices/Makefile \
2389 xbmc/android/activity/Makefile \
2390 xbmc/android/loader/Makefile \
2393 if test "$use_skin_touched" = "yes"; then
2394 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2397 OUTPUT_FILES="$OUTPUT_FILES \
2398 xbmc/interfaces/python/Makefile \
2399 xbmc/interfaces/python/test/Makefile"
2401 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2402 # .dummy.am does nothing.
2403 AC_CONFIG_FILES([.dummy])
2405 AC_CONFIG_FILES([${OUTPUT_FILES}])
2406 OUTPUT_FILES="$OUTPUT_FILES \
2412 AC_SUBST(SDL_DEFINES)
2413 AC_SUBST(BUILD_DVDCSS)
2414 AC_SUBST(DISABLE_GOOM)
2415 AC_SUBST(DISABLE_RSXS)
2416 AC_SUBST(DISABLE_PROJECTM)
2417 AC_SUBST(USE_SKIN_TOUCHED)
2418 AC_SUBST(USE_EXTERNAL_FFMPEG)
2419 AC_SUBST(PYTHON_VERSION)
2420 AC_SUBST(OUTPUT_FILES)
2421 AC_SUBST(HAVE_XBMC_NONFREE)
2422 AC_SUBST(USE_ASAP_CODEC)
2423 AC_SUBST(LIBCURL_BASENAME)
2424 AC_SUBST(LIBFLAC_BASENAME)
2425 AC_SUBST(LIBVORBISFILE_BASENAME)
2426 AC_SUBST(LIBMODPLUG_BASENAME)
2427 AC_SUBST(LIBMAD_BASENAME)
2428 AC_SUBST(LIBOGG_BASENAME)
2429 AC_SUBST(LIBVORBISENC_BASENAME)
2430 AC_SUBST(LIBVORBIS_BASENAME)
2431 AC_SUBST(LIBASS_BASENAME)
2432 AC_SUBST(LIBMEPG2_BASENAME)
2433 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2434 AC_SUBST(USE_OPENGL)
2435 AC_SUBST(USE_OPENGLES)
2438 AC_SUBST(USE_CRYSTALHD)
2439 AC_SUBST(USE_LIBSMBCLIENT)
2440 AC_SUBST(USE_LIBNFS)
2441 AC_SUBST(USE_LIBAFPCLIENT)
2442 AC_SUBST(USE_AIRPLAY)
2444 AC_SUBST(USE_OPENMAX)
2446 AC_SUBST(USE_XRANDR)
2448 AC_SUBST(USE_TEXTUREPACKER)
2449 AC_SUBST(USE_TEXTUREPACKER_NATIVE)
2450 AC_SUBST(USE_TEXTUREPACKER_NATIVE_ROOT)
2451 AC_SUBST(USE_AIRTUNES)
2452 AC_SUBST(USE_LIBUDEV)
2453 AC_SUBST(USE_LIBUSB)
2454 AC_SUBST(USE_LIBCEC)
2455 AC_SUBST(USE_CEC_RPI_API)
2457 AC_SUBST(USE_WEB_SERVER)
2459 AC_SUBST(USE_OMXLIB)
2460 AC_SUBST(USE_ANDROID)
2461 AC_SUBST(GTEST_CONFIGURED)
2462 AC_SUBST(USE_DOXYGEN)
2463 AC_SUBST(USE_PVR_ADDONS)
2465 # pushd and popd are not available in other shells besides bash, so implement
2466 # our own pushd/popd functions
2471 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2473 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2476 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2481 if [[ -n "$XB_DIRSTACK" ]]; then
2482 XB_DIRSTACK="${XB_DIRSTACK#* }"
2483 cd "${XB_DIRSTACK%% *}"
2486 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2490 # Function to run the configure scripts in our submodules
2491 # Consists of three paramaters, the path to the submodule, the configure command
2492 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2493 # running the script, anything else if not.
2494 AC_DEFUN([XB_CONFIG_MODULE],[
2495 AC_CONFIG_COMMANDS_POST([
2496 if [[ $3 != "1" ]]; then
2497 if [[ -d $1 ]]; then
2500 if [[ $? -ne 0 ]]; then
2502 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2507 AC_MSG_ERROR([[Submodule $1 does not exist]])
2510 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2515 XB_CONFIG_MODULE([lib/ffmpeg], [
2516 if test "$host_vendor" = "apple" ; then
2517 ffmpg_config="--target-os=$ffmpeg_target_os"
2518 # handle disables first, we do individual enables later
2519 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2520 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2521 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2522 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2523 ffmpg_config="$ffmpg_config --disable-vda --disable-crystalhd"
2524 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2526 # handle conditional enables/disables
2527 if test "$use_debug" = "no"; then
2528 ffmpg_config="$ffmpg_config --disable-debug"
2530 if test "$use_cpu" != "no"; then
2531 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2533 if test "$use_arch" != "no"; then
2534 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2536 if test "$use_arch" = "arm"; then
2537 ffmpg_config="$ffmpg_config --enable-pic"
2538 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2539 if test "$use_neon" = "yes"; then
2540 ffmpg_config="$ffmpg_config --enable-neon"
2542 ffmpg_config="$ffmpg_config --disable-neon"
2545 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2547 if test "$use_ffmpeg_libvorbis" = "yes"; then
2548 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2550 ffmpg_config="$ffmpg_config --disable-libvorbis"
2553 # handle individual enables
2554 ffmpg_config="$ffmpg_config --enable-gpl"
2555 ffmpg_config="$ffmpg_config --enable-postproc"
2556 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2557 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts"
2558 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac"
2559 ffmpg_config="$ffmpg_config --enable-protocol=http"
2560 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2562 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2565 ffmpg_config="$ffmpg_config --cc=clang" ;;
2567 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2570 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2571 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2573 ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2575 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2576 # dependency files in the right place, replace it with something that works
2579 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2582 # ffmpeg will use yasm found at ${prefix}/bin during configure
2583 # but then hardcodes 'yasm' in config.mak, fix it.
2584 sed -ie "s#YASM=yasm#YASM=${prefix}/bin/yasm#" config.mak
2585 sed -ie "s#YASMDEP=yasm#YASMDEP=${prefix}/bin/yasm#" config.mak
2586 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2591 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2593 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2595 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2596 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2597 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2598 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2599 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2600 --target-os=$ffmpeg_target_os \
2602 --enable-muxer=spdif \
2603 --enable-muxer=adts \
2604 --disable-encoders \
2605 --enable-encoder=ac3 \
2606 --enable-encoder=aac \
2607 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2608 --disable-decoder=mpeg_xvmc \
2612 --disable-ffserver \
2614 --disable-crystalhd \
2619 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2620 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2621 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2622 --enable-protocol=http \
2624 --enable-runtime-cpudetect \
2625 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2626 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2627 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2628 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2629 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2631 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2632 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2634 ], [$USE_EXTERNAL_FFMPEG])
2636 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2641 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2642 --host=$host_alias \
2643 --build=$build_alias \
2644 --target=$target_alias \
2648 ], [$SKIP_CONFIG_DVDCSS])
2650 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2652 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src" \
2653 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2654 --host=$host_alias \
2655 --build=$build_alias \
2656 --target=$target_alias \
2662 $MAKE dvdread-config &&
2663 mkdir -p `pwd`/../includes/dvdread
2664 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2667 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2669 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
2670 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2671 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2672 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2673 --host=$host_alias \
2674 --build=$build_alias \
2675 --target=$target_alias \
2681 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2683 rm -f CMakeCache.txt && \
2684 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2685 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2686 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2687 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2688 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2689 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2690 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2691 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2692 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2693 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2694 if test "$host_vendor" = "apple" ; then
2695 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2696 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2697 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2698 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2701 ], [$DISABLE_PROJECTM])
2703 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2706 CXXFLAGS="$CXXFLAGS" \
2707 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2708 --host=$host_alias \
2709 --build=$build_alias \
2710 --target=$target_alias \
2716 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2721 CXXFLAGS="$CXXFLAGS" \
2722 `if test "$host_vendor" = "apple"; then echo --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2723 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2724 --host=$host_alias \
2725 --build=$build_alias \
2726 --target=$target_alias \
2727 --without-xscreensaver \
2730 --disable-fieldlines \
2734 --disable-hyperspace \
2737 if echo "$ARCH" | grep -q freebsd ; then
2738 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2742 XB_CONFIG_MODULE([lib/cpluff], [
2743 ./configure --disable-nls \
2744 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2745 --host=$host_alias \
2746 --build=$build_alias \
2747 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2748 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2751 XB_CONFIG_MODULE([lib/gtest], [
2756 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2757 --host=$host_alias \
2758 --build=$build_alias \
2759 --target=$target_alias \
2763 ], [$SKIP_CONFIG_GTEST])
2765 XB_CONFIG_MODULE([pvr-addons], [
2766 if test "$USE_EXTERNAL_FFMPEG" = 1; then
2767 PVR_EXT_FFMPEG="--enable-external-ffmpeg"
2770 --prefix="${prefix}" \
2771 --host=$host_alias \
2772 --build=$build_alias \
2773 --target=$target_alias \
2778 CXXFLAGS="$CXXFLAGS"
2779 ], [$DISABLE_PVR_ADDON_CONFIG])
2783 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2784 echo -e "$final_message\n"