2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [11.9.7], [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="$INCLUDES -I\$(abs_top_srcdir)"
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],,
1145 [if test "x$use_pulse" = "xyes"; then
1146 AC_MSG_ERROR($pulse_not_found)
1150 AC_MSG_RESULT($pulse_not_found)
1155 AC_MSG_RESULT($pulse_disabled)
1160 if test "$host_vendor" = "apple" ; then
1162 AC_MSG_RESULT($hal_disabled)
1164 if test "$use_hal" = "yes"; then
1165 PKG_CHECK_MODULES([HAL], [hal],
1166 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1167 use_hal=no;AC_MSG_RESULT($hal_not_found))
1168 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1169 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1170 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1172 AC_MSG_RESULT($hal_disabled)
1174 if test "$use_hal" = "yes"; then
1175 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1180 if test "$host_vendor" = "apple" ; then
1182 AC_MSG_RESULT($avahi_disabled)
1184 if test "$use_avahi" = "yes"; then
1185 AC_CHECK_LIB([avahi-common], [main],,
1186 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1187 if test "$use_avahi" = "yes"; then
1188 #either both libs or none
1189 AC_CHECK_LIB([avahi-client], [main],,
1190 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1193 AC_MSG_RESULT($avahi_disabled)
1198 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1199 AC_MSG_NOTICE($x11_enabled)
1200 PKG_CHECK_MODULES([X11], [x11],
1201 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1202 AC_MSG_ERROR($missing_library))
1203 PKG_CHECK_MODULES([XEXT], [xext],
1204 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1205 AC_MSG_ERROR($missing_library))
1206 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1208 AC_MSG_RESULT($x11_disabled)
1212 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1214 AC_MSG_RESULT($xrandr_disabled)
1216 if test "$use_xrandr" = "yes" ; then
1217 AC_CHECK_LIB([Xrandr], [main],,
1218 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1220 AC_MSG_RESULT($xrandr_disabled)
1225 if test "$host_vendor" = "apple" ; then
1226 AC_MSG_NOTICE($goom_disabled)
1229 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1230 AC_MSG_NOTICE($goom_enabled)
1233 AC_MSG_NOTICE($goom_disabled)
1239 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1240 AC_MSG_NOTICE($rsxs_disabled)
1243 AC_MSG_NOTICE($rsxs_enabled)
1245 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1246 if test "$host_vendor" != "apple" ; then
1247 PKG_CHECK_MODULES([XT], [xt],
1248 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1249 AC_MSG_ERROR($missing_library))
1250 PKG_CHECK_MODULES([XMU], [xmu],
1251 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1252 AC_MSG_ERROR($missing_library))
1257 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1258 AC_MSG_NOTICE($projectm_disabled)
1261 AC_MSG_NOTICE($projectm_enabled)
1267 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1268 use_skin_touched=yes
1270 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1276 if test "x$use_ssh" = "xno"; then
1277 AC_MSG_NOTICE($ssh_disabled)
1280 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1281 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1285 if test "$use_librtmp" != "no"; then
1286 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1287 [if test "$use_librtmp" = "yes"; then
1288 AC_MSG_ERROR($librtmp_not_found)
1289 elif test "$use_librtmp" != "no"; then
1290 AC_MSG_NOTICE($librtmp_not_found)
1294 if test "$use_librtmp" != "no"; then
1295 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1297 if test "$use_librtmp" != "no"; then
1298 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1301 AC_MSG_NOTICE($librtmp_disabled)
1305 if test "x$use_samba" != "xno"; then
1306 AC_CHECK_LIB([smbclient], [main],,
1307 use_samba=no;AC_MSG_ERROR($missing_library))
1310 AC_MSG_RESULT($samba_disabled)
1314 if test "x$use_samba" != "xno"; then
1315 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1320 if test "$use_libnfs" != "no"; then
1321 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1322 [if test "$use_libnfs" = "yes"; then
1323 AC_MSG_ERROR($libnfs_not_found)
1325 elif test "$use_libnfs" != "no"; then
1326 AC_MSG_NOTICE($libnfs_not_found)
1331 if test "$use_libnfs" != "no"; then
1332 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1334 if test "$use_libnfs" != "no"; then
1335 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1340 AC_MSG_NOTICE($libnfs_disabled)
1345 if test "x$use_libafpclient" != "xno"; then
1346 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1347 [if test "x$use_libafpclient" = "xyes"; then
1348 AC_MSG_ERROR($libafpclient_not_found)
1349 elif test "x$use_libafpclient" != "xno"; then
1350 AC_MSG_NOTICE($libafpclient_not_found)
1351 use_libafpclient="no"
1354 if test "x$use_libafpclient" != "xno"; then
1355 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1356 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1360 AC_MSG_NOTICE($libafpclient_disabled)
1363 # libplist for airplay feature
1365 if test "$use_airplay" != "no"; then
1366 AC_CHECK_HEADER([plist/plist.h],,
1367 [if test "$use_airplay" = "yes"; then
1368 AC_MSG_ERROR($libplist_not_found)
1369 elif test "$use_airplay" != "no"; then
1370 AC_MSG_NOTICE($libplist_not_found)
1375 if test "$use_airplay" != "no"; then
1376 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1378 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1382 # libshairport for AirTunes
1384 if test "x$use_airtunes" != "xno"; then
1385 AC_CHECK_HEADERS([shairport/shairport.h shairport/ao.h],,
1386 [if test "x$use_airtunes" = "xyes"; then
1387 AC_MSG_ERROR($libshairport_not_found)
1388 elif test "x$use_airtunes" != "xno"; then
1389 AC_MSG_NOTICE($libshairport_not_found)
1394 if test "x$use_airtunes" != "xno"; then
1395 XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
1397 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1398 [[#include <shairport/shairport.h>]])
1399 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1405 if test "$host_vendor" = "apple" ; then
1407 AC_MSG_NOTICE($libudev_disabled)
1409 if test "$use_libudev" = "auto"; then
1410 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1411 elif test "$use_libudev" = "yes" ; then
1412 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1414 AC_MSG_NOTICE($libudev_disabled)
1417 if test "x$use_libudev" != "xno"; then
1418 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1419 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1426 # if libudev is available, we don't need libusb
1427 if test "x$use_libudev" != "xno"; then
1429 AC_MSG_NOTICE($libusb_disabled_udev_found)
1431 if test "$host_vendor" = "apple" ; then
1433 AC_MSG_NOTICE($libusb_disabled)
1435 if echo "$ARCH" | grep -q freebsd ; then
1436 AC_CHECK_LIB([usb],[main],
1437 [use_libusb="yes";USB_LIBS="-lusb"],
1438 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1439 elif test "$use_libusb" = "auto"; then
1440 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1441 elif test "$use_libusb" = "yes"; then
1442 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1444 AC_MSG_NOTICE($libusb_disabled)
1447 if test "x$use_libusb" != "xno"; then
1448 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1449 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1457 use_rpi_cec_api="auto"
1458 if test "x$use_libcec" != "xno"; then
1459 case "${host_cpu}" in
1461 echo "will check for RPi support"
1462 AC_CHECK_HEADER(interface/vmcs_host/vc_cec.h,,use_rpi_cec_api="no")
1465 echo "will not check for RPi support (unsupported cpu: ${host_cpu})"
1466 use_rpi_cec_api="no"
1470 # libcec needs libudev, libusb or the RPi API under linux, or the device will never be detected.
1471 if test "$host_vendor" != "apple" && test "$use_libusb" = "no" && test "$use_libudev" = "no" && test "$use_rpi_cec_api" = "no"; then
1472 if test "x$use_libcec" != "xauto"; then
1473 AC_MSG_ERROR($libcec_disabled_missing_libs)
1476 AC_MSG_NOTICE($libcec_disabled_missing_libs)
1480 # libcec is dyloaded, so we need to check for its headers and link any depends.
1481 if test "x$use_libcec" != "xno"; then
1482 if test "x$use_libcec" != "xauto"; then
1483 PKG_CHECK_MODULES([CEC],[libcec >= 2.0.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1485 PKG_CHECK_MODULES([CEC],[libcec >= 2.0.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1488 if test "x$use_libcec" != "xno"; then
1489 INCLUDES="$INCLUDES $CEC_CFLAGS"
1490 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1491 if test "x$use_rpi_cec_api" != "xno"; then
1492 LIBS+=" -lvcos -lvchiq_arm"
1493 AC_DEFINE([HAVE_CEC_RPI_API],[1],["Define to 1 if the CEC RPi API is installed"])
1496 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1497 AC_MSG_NOTICE($libcec_enabled)
1500 AC_MSG_NOTICE($libcec_disabled)
1505 AC_MSG_NOTICE($libcec_disabled)
1509 if test "$use_libcap" != "no"; then
1510 AC_CHECK_HEADERS([sys/capability.h],,
1511 [if test "$use_libcap" = "yes"; then
1512 AC_MSG_ERROR($libcap_not_found)
1513 elif test "$use_libcap" != "no"; then
1514 AC_MSG_NOTICE($libcap_not_found)
1518 if test "$use_libcap" != "no"; then
1519 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1521 if test "$use_libcap" != "no"; then
1522 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1525 AC_MSG_NOTICE($libcap_disabled)
1528 ### External libraries checks
1531 if test "$use_external_ffmpeg" = "yes"; then
1532 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale"
1534 # libavcore is optional
1535 PKG_CHECK_EXISTS([libavcore], FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libavcore")
1537 # one of libswresample or libavresample is needed
1538 PKG_CHECK_EXISTS([libswresample], FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libswresample",
1539 [PKG_CHECK_EXISTS([libavresample],
1540 FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libavresample",
1541 AC_MSG_ERROR([You need either libswresample
1542 or libavresample.]))])
1544 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1545 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1546 AC_MSG_ERROR($missing_library))
1548 # Determine whether AVPacket and relevant functions are defined in libavformat
1550 AC_CHECK_LIB([avcodec], [av_free_packet],
1551 [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavcodec. ==)],
1552 [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavformat. ==)
1553 AC_DEFINE([AVPACKET_IN_AVFORMAT], [1], [Whether AVPacket is in libavformat.])])
1555 # in case the headers are in a custom directory
1556 SAVE_CPPFLAGS="$CPPFLAGS"
1557 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1559 # Possible places the ffmpeg headers may be
1560 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1561 [AC_CHECK_HEADERS([ffmpeg/avcodec.h ffmpeg/avfilter.h ffmpeg/avformat.h ffmpeg/avutil.h postproc/postprocess.h ffmpeg/swscale.h],,
1562 [AC_MSG_ERROR($missing_headers)])])
1565 AC_CHECK_HEADERS([libavcore/avcore.h libavcore/samplefmt.h libavutil/mem.h libavutil/samplefmt.h])
1567 # old FFmpeg have this in libavcodec/opt.h instead:
1568 AC_CHECK_HEADERS([libavutil/opt.h])
1570 # new FFmpeg have math headers
1571 AC_CHECK_HEADERS([libavutil/mathematics.h],,)
1573 # We'll support the use of rgb2rgb.h if it exists.
1574 AC_CHECK_HEADERS([libswscale/rgb2rgb.h],,)
1575 AC_CHECK_HEADERS([ffmpeg/rgb2rgb.h],,)
1577 # Check for libswresample or libavresample headers.
1578 AC_CHECK_HEADERS([libswresample/swresample.h libavresample/avresample.h])
1580 # Check if AVFilterBufferRefVideoProps AVRational member is named
1581 # 'pixel_aspect' or 'sample_aspect_ratio'.
1582 AC_CHECK_MEMBER([AVFilterBufferRefVideoProps.sample_aspect_ratio],
1583 [AC_DEFINE([HAVE_AVFILTERBUFFERREFVIDEOPROPS_SAMPLE_ASPECT_RATIO],
1585 [Define to 1 if AVFilterBufferRefVideoProps has member sample_aspect_ratio.])],
1586 [AC_CHECK_MEMBER([AVFilterBufferRefVideoProps.sample_aspect_ratio],
1587 [AC_DEFINE([HAVE_AVFILTERBUFFERREFVIDEOPROPS_SAMPLE_ASPECT_RATIO],
1589 [Define to 1 if AVFilterBufferRefVideoProps has member sample_aspect_ratio.])],
1591 [[#include <ffmpeg/avfilter.h>]])],
1592 [[#include <libavfilter/avfilter.h>]])
1594 AC_MSG_NOTICE($external_ffmpeg_enabled)
1595 USE_EXTERNAL_FFMPEG=1
1596 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1598 # Disable vdpau support if external libavcodec doesn't have it
1599 AC_CHECK_LIB([avcodec], [ff_vdpau_vc1_decode_picture],,
1600 [if test "x$use_vdpau" = "xyes"; then
1601 AC_MSG_ERROR($ffmpeg_vdpau_not_supported)
1604 AC_MSG_RESULT($ffmpeg_vdpau_not_supported)
1607 # Check for 'PIX_FMT_VDPAU_MPEG4' from libavutil
1608 if test "x$use_vdpau" != "xno"; then
1611 [AC_LANG_SOURCE([ #include <libavutil/pixfmt.h>
1612 int main() { PixelFormat format = PIX_FMT_VDPAU_MPEG4; }])],
1613 [AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1],
1614 [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])],)
1617 CPPFLAGS="$SAVE_CPPFLAGS"
1619 AC_MSG_NOTICE($external_ffmpeg_disabled)
1620 USE_EXTERNAL_FFMPEG=0
1621 AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1], [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])
1624 echo "Checking for SWIG installation"
1625 AC_PATH_PROG(SWIG_EXE, swig, "none")
1626 if test "$SWIG_EXE" = "none"; then
1627 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1628 if test "$SWIG20_EXE" != "none" ; then
1629 SWIG_EXE=$SWIG20_EXE
1632 if test "$SWIG_EXE" = "none"; then
1633 AC_MSG_ERROR($missing_program)
1635 final_message="$final_message\n SWIG Available:\tYes"
1637 echo "Checking for a jre installation"
1638 AC_PATH_PROG(JAVA_EXE, java, "none")
1639 if test "$JAVA_EXE" = "none"; then
1640 AC_MSG_ERROR($missing_program)
1642 final_message="$final_message\n JRE Available:\tYes"
1644 echo "Checking for doxygen installation"
1645 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1646 if test "$DOXYGEN_EXE" = "none"; then
1647 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1648 final_message="$final_message\n Doxygen Available:\tNo"
1651 final_message="$final_message\n Doxygen Available:\tYes"
1656 if test "x$use_vdpau" != "xno"; then
1657 if test "$host_vendor" = "apple" ; then
1658 if test "x$use_vdpau" = "xyes"; then
1659 AC_MSG_ERROR([VDPAU not supported on this platform])
1662 AC_MSG_NOTICE($vdpau_disabled)
1667 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1668 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1669 [if test "x$use_vdpau" = "xyes"; then
1671 AC_MSG_ERROR([$vdpau_not_found])
1675 AC_MSG_RESULT($vdpau_not_found)
1680 AC_MSG_NOTICE($vdpau_disabled)
1684 if test "x$use_vaapi" != "xno"; then
1685 if test "$host_vendor" = "apple" ; then
1686 if test "x$use_vaapi" = "xyes"; then
1687 AC_MSG_ERROR([VAAPI not supported on this platform])
1690 AC_MSG_NOTICE($vaapi_disabled)
1694 initial_val=$use_vaapi
1695 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1696 if test "x$use_vaapi" != "xno"; then
1697 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1700 if test "x$use_vaapi" = "xno"; then
1701 if test "x$initial_val" = "xyes"; then
1702 AC_MSG_ERROR($vaapi_not_found)
1704 AC_MSG_RESULT($vaapi_not_found)
1708 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1713 AC_MSG_NOTICE($vaapi_disabled)
1718 if test "x$use_crystalhd" != "xno"; then
1719 SAVE_CFLAGS="$CFLAGS"
1720 CFLAGS="-D__LINUX_USER__"
1721 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1722 [ if test "x$use_crystalhd" = "xyes"; then
1723 AC_MSG_ERROR($crystalhd_not_found)
1726 AC_MSG_RESULT($crystalhd_not_found)
1730 CFLAGS="$SAVE_CFLAGS"
1731 if test "$host_vendor" != "apple"; then
1732 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1734 if test "x$use_crystalhd" != "xno"; then
1735 SAVE_CFLAGS="$CFLAGS"
1736 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1737 # check for new crystalhd lib
1739 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1740 #include <libcrystalhd/bc_dts_defs.h>
1741 PBC_INFO_CRYSTAL bCrystalInfo;])],
1742 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1743 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1744 CFLAGS="$SAVE_CFLAGS"
1748 AC_MSG_NOTICE($crystalhd_disabled)
1753 if test "x$use_vdadecoder" != "xno"; then
1754 if test "$host_vendor" = "apple" ; then
1755 HAVE_LIBVDADECODER=1
1756 AC_DEFINE([HAVE_LIBVDADECODER], [1], [Define to 1 if you have the 'VDADecoder' library.])
1757 AC_MSG_NOTICE($vdadecoder_enabled)
1760 if test "x$use_vdadecoder" = "xyes"; then
1761 AC_MSG_ERROR([VDA Decoder not supported on this platform])
1764 AC_MSG_NOTICE($vdadecoder_disabled)
1769 AC_MSG_NOTICE($vdadecoder_disabled)
1773 if test "x$use_vtbdecoder" != "xno"; then
1774 if test "$host_vendor" = "apple" ; then
1775 HAVE_VIDEOTOOLBOXDECODER=1
1776 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1777 AC_MSG_NOTICE($vtbdecoder_enabled)
1779 if test "x$use_vtbdecoder" = "xyes"; then
1780 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1783 AC_MSG_NOTICE($vtbdecoder_disabled)
1787 AC_MSG_NOTICE($vtbdecoder_disabled)
1791 if test "$host_vendor" = "apple" ; then
1794 AC_MSG_NOTICE($openmax_disabled)
1795 elif test "$target_platform" = "target_raspberry_pi"; then
1798 AC_MSG_NOTICE($openmax_disabled)
1800 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1801 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1802 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1803 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1804 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1805 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1806 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1807 AC_MSG_ERROR($openmax_not_found))
1809 AC_MSG_NOTICE($openmax_disabled)
1815 # yajl version check (yajl_version.h was added in yajl 2.0)
1816 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1817 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1820 # additional internal players
1821 case $add_players in
1823 AC_CHECK_HEADER([amlplayer/amports/amstream.h],, AC_MSG_ERROR($missing_headers))
1824 XB_ADD_PLAYER([AMLPLAYER], [amlplayer])
1827 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1831 # platform specific bin utilities
1832 if test "$host_vendor" != "apple" ; then
1833 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1834 if test "$HAVE_GAWK" = "no" ; then
1835 AC_MSG_ERROR($missing_program)
1839 if test "$use_arch" != "arm" ; then
1840 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1841 if test "$HAVE_CMAKE" = "no" ; then
1842 AC_MSG_ERROR($missing_program)
1846 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1847 if test "$HAVE_GPERF" = "no" ; then
1848 AC_MSG_ERROR($missing_program)
1851 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1852 if test "$HAVE_UNZIP" = "no" ; then
1853 AC_MSG_ERROR($missing_program)
1856 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
1857 if test "$HAVE_ZIP" = "no" ; then
1858 AC_MSG_ERROR($missing_program)
1861 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
1862 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
1863 if test "$HAVE_NASM" = "no" ; then
1864 AC_MSG_ERROR($missing_program)
1868 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
1870 # Checks for header files.
1874 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
1875 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
1876 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
1877 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
1878 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
1880 # Checks for typedefs, structures, and compiler characteristics.
1896 AC_CHECK_MEMBERS([struct stat.st_rdev])
1905 if test "$cross_compiling" = "yes"; then
1906 final_message="$final_message\n Crosscomp.:\tYes"
1908 final_message="$final_message\n Crosscomp.:\tNo"
1911 final_message="$final_message\n target ARCH:\t$use_arch"
1912 final_message="$final_message\n target CPU:\t$use_cpu"
1914 if test "$use_gles" = "yes"; then
1915 final_message="$final_message\n OpenGLES:\tYes"
1920 if test "$use_gl" = "yes"; then
1921 final_message="$final_message\n OpenGL:\tYes"
1924 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
1925 SDL_DEFINES="-DHAS_SDL_2D"
1930 if test "$use_alsa" = "yes"; then
1932 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
1933 final_message="$final_message\n ALSA:\t\tYes"
1936 final_message="$final_message\n ALSA:\t\tNo"
1939 if test "$use_dbus" = "yes"; then
1940 final_message="$final_message\n DBUS:\t\tYes"
1942 final_message="$final_message\n DBUS:\t\tNo"
1945 if test "x$use_vdpau" != "xno"; then
1946 final_message="$final_message\n VDPAU:\tYes"
1948 final_message="$final_message\n VDPAU:\tNo"
1951 if test "x$use_vaapi" != "xno"; then
1952 final_message="$final_message\n VAAPI:\tYes"
1954 final_message="$final_message\n VAAPI:\tNo"
1957 if test "x$use_crystalhd" != "xno"; then
1958 final_message="$final_message\n CrystalHD:\tYes"
1960 final_message="$final_message\n CrystalHD:\tNo"
1963 if test "x$use_vdadecoder" != "xno"; then
1964 final_message="$final_message\n VDADecoder:\tYes"
1966 final_message="$final_message\n VDADecoder:\tNo"
1969 if test "x$use_vtbdecoder" != "xno"; then
1970 final_message="$final_message\n VTBDecoder:\tYes"
1972 final_message="$final_message\n VTBDecoder:\tNo"
1975 if test "$use_openmax" != "no"; then
1976 final_message="$final_message\n OpenMax:\tYes"
1978 final_message="$final_message\n OpenMax:\tNo"
1981 if test "$use_joystick" = "yes"; then
1982 final_message="$final_message\n Joystick:\tYes"
1983 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
1985 final_message="$final_message\n Joystick:\tNo"
1988 if test "$use_xrandr" = "yes"; then
1989 final_message="$final_message\n XRandR:\tYes"
1992 final_message="$final_message\n XRandR:\tNo"
1996 if test "$use_goom" = "yes"; then
1997 final_message="$final_message\n GOOM:\t\tYes"
1999 final_message="$final_message\n GOOM:\t\tNo"
2002 if test "$use_rsxs" = "yes"; then
2003 final_message="$final_message\n RSXS:\t\tYes"
2005 final_message="$final_message\n RSXS:\t\tNo"
2008 if test "$use_projectm" = "yes"; then
2009 final_message="$final_message\n ProjectM:\tYes"
2011 final_message="$final_message\n ProjectM:\tNo"
2014 if test "$use_skin_touched" = "yes"; then
2015 final_message="$final_message\n Skin Touched:\tYes"
2017 final_message="$final_message\n Skin Touched:\tNo"
2020 if test "$use_x11" = "yes"; then
2021 final_message="$final_message\n X11:\t\tYes"
2023 final_message="$final_message\n X11:\t\tNo"
2026 if test "$use_libbluray" = "yes"; then
2027 final_message="$final_message\n Bluray:\tYes"
2029 final_message="$final_message\n Bluray:\tNo"
2032 USE_TEXTUREPACKER_NATIVE=0
2033 if test "x$use_texturepacker" != "xno"; then
2034 final_message="$final_message\n TexturePacker:Yes"
2036 if test "x$use_texturepacker_native" = "xyes"; then
2037 USE_TEXTUREPACKER_NATIVE=1
2038 if [[ ! -d "$USE_TEXTUREPACKER_NATIVE_ROOT" ]]; then
2039 USE_TEXTUREPACKER_NATIVE_ROOT=
2043 final_message="$final_message\n TexturePacker:No"
2047 if test "$use_mid" = "yes"; then
2048 final_message="$final_message\n MID Support:\tYes"
2049 SDL_DEFINES="$SDL_DEFINES -DMID"
2051 final_message="$final_message\n MID Support:\tNo"
2056 if test "x$use_ccache" != "xno"; then
2057 AC_PATH_PROG(CCACHE,ccache,none)
2058 if test "$ac_cv_path_CCACHE" = "none"; then
2059 if test "x$use_ccache" = "xyes"; then
2060 AC_MSG_ERROR([ccache not found.]);
2062 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2063 final_message="$final_message\n ccache:\tNo"
2066 CC="$ac_cv_path_CCACHE $CC"
2067 CXX="$ac_cv_path_CCACHE $CXX"
2068 AC_MSG_NOTICE(enabling ccache)
2069 final_message="$final_message\n ccache:\tYes"
2072 final_message="$final_message\n ccache:\tNo"
2075 if test "$use_alsa" = "yes"; then
2076 final_message="$final_message\n ALSA Support:\tYes"
2078 final_message="$final_message\n ALSA Support:\tNo"
2081 if test "x$use_pulse" != "xno"; then
2082 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2083 final_message="$final_message\n PulseAudio:\tYes"
2085 XBMC_STANDALONE_SH_PULSE=/dev/null
2086 final_message="$final_message\n PulseAudio:\tNo"
2089 if test "$use_hal" = "yes"; then
2090 final_message="$final_message\n HAL Support:\tYes"
2092 final_message="$final_message\n HAL Support:\tNo"
2096 if test "$use_dvdcss" = "yes"; then
2097 AC_MSG_NOTICE($dvdcss_enabled)
2098 final_message="$final_message\n DVDCSS:\tYes"
2100 SKIP_CONFIG_DVDCSS=0
2101 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2103 AC_MSG_NOTICE($dvdcss_disabled)
2104 final_message="$final_message\n DVDCSS:\tNo"
2106 SKIP_CONFIG_DVDCSS=1
2107 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2109 if test "$host_vendor" = "apple"; then
2110 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2113 # Google Test Framework
2114 if test "$configure_gtest" = "yes"; then
2115 AC_MSG_NOTICE($gtest_enabled)
2116 final_message="$final_message\n Google Test Framework Configured:\tYes"
2120 AC_MSG_NOTICE($gtest_disabled)
2121 final_message="$final_message\n Google Test Framework Configured:\tNo"
2126 if test "$use_avahi" = "yes"; then
2127 final_message="$final_message\n Avahi:\tYes"
2129 final_message="$final_message\n Avahi:\tNo"
2132 if test "$HAVE_GIT" = "yes"; then
2133 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
2135 if test "$GIT_REV" = ""; then
2138 if test "$host_vendor" = "apple"; then
2139 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
2141 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
2144 if test "$use_nonfree" = "yes"; then
2145 final_message="$final_message\n Non-free:\tYes"
2147 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2150 final_message="$final_message\n Non-free:\tNo"
2153 if test "$use_asap" = "yes"; then
2154 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2155 if test "$HAVE_GDC" = "no"; then
2156 AC_MSG_ERROR($missing_program);
2158 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2159 if test "$HAVE_FPC" = "no"; then
2160 AC_MSG_ERROR($missing_program);
2163 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2164 final_message="$final_message\n ASAP Codec:\tYes"
2167 final_message="$final_message\n ASAP Codec:\tNo"
2170 if test "$use_mysql" = "yes"; then
2171 final_message="$final_message\n MySQL:\tYes"
2174 final_message="$final_message\n MySQL:\tNo"
2177 if test "$use_webserver" = "yes"; then
2178 final_message="$final_message\n Webserver:\tYes"
2181 final_message="$final_message\n Webserver:\tNo"
2185 if test "$use_libssh" != "no"; then
2186 final_message="$final_message\n libssh support:\tYes"
2188 final_message="$final_message\n libssh support:\tNo"
2191 if test "$use_librtmp" != "no"; then
2192 final_message="$final_message\n libRTMP support:\tYes"
2194 final_message="$final_message\n libRTMP support:\tNo"
2197 if test "x$use_samba" != "xno"; then
2198 final_message="$final_message\n libsmbclient support:\tYes"
2200 final_message="$final_message\n libsmbclient support:\tNo"
2203 if test "$use_libnfs" != "no"; then
2204 final_message="$final_message\n libnfs client support:Yes"
2206 final_message="$final_message\n libnfs client support:No"
2209 if test "x$use_libafpclient" != "xno"; then
2210 final_message="$final_message\n libafpclient support:\tYes"
2212 final_message="$final_message\n libafpclient support:\tNo"
2215 if test "$use_airplay" != "no"; then
2216 final_message="$final_message\n AirPlay support:\tYes"
2218 final_message="$final_message\n AirPLay support:\tNo"
2221 if test "x$use_airtunes" != "xno"; then
2222 final_message="$final_message\n AirTunes support:\tYes"
2224 final_message="$final_message\n AirTunes support:\tNo"
2227 if test "x$use_upnp" != "xno"; then
2228 final_message="$final_message\n UPnP support:\t\tYes"
2230 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2233 final_message="$final_message\n UPnP support:\t\tNo"
2236 if test "$use_optical_drive" = "yes"; then
2237 final_message="$final_message\n Optical drive:\tYes"
2239 final_message="$final_message\n Optical drive:\tNo"
2242 if test "x$use_libudev" != "xno"; then
2243 final_message="$final_message\n libudev support:\tYes"
2245 final_message="$final_message\n libudev support:\tNo"
2248 if test "x$use_libusb" != "xno"; then
2249 final_message="$final_message\n libusb support:\tYes"
2251 final_message="$final_message\n libusb support:\tNo"
2254 if test "x$use_libcec" != "xno"; then
2255 final_message="$final_message\n libcec support:\tYes"
2256 if test "x$use_rpi_cec_api" != "xno"; then
2257 final_message="$final_message\n libcec RPi support:\tYes"
2259 final_message="$final_message\n libcec RPi support:\tNo"
2262 final_message="$final_message\n libcec support:\tNo"
2265 if test "x$use_libmp3lame" != "xno"; then
2266 final_message="$final_message\n libmp3lame support:\tYes"
2268 final_message="$final_message\n libmp3lame support:\tNo"
2271 if test "x$use_libvorbisenc" != "xno"; then
2272 final_message="$final_message\n libvorbisenc support:\tYes"
2274 final_message="$final_message\n libvorbisenc support:\tNo"
2277 if test "x$use_libcap" != "xno"; then
2278 final_message="$final_message\n libcap support:\tYes"
2280 final_message="$final_message\n libcap support:\tNo"
2283 if test "x$add_players" != "xno"; then
2284 final_message="$final_message\n additional players:\tYes"
2286 final_message="$final_message\n additional players:\tNo"
2289 ### External libraries messages
2291 if test "$use_external_ffmpeg" = "yes"; then
2292 final_message="$final_message\n External FFmpeg:\tYes"
2294 final_message="$final_message\n External FFmpeg:\tNo"
2297 if test "$host_vendor" = "apple" ; then
2298 # built internal but referenced as external, we link directly to them.
2299 # this MUST be the last thing before OUTPUT_FILES as they do not
2300 # exist until after we build FFMpeg.
2301 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2302 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2303 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2304 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2305 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2306 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2307 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2311 DISABLE_PVR_ADDON_CONFIG=1
2312 if [[ -f "pvr-addons/Makefile.am" ]]; then
2313 final_message="$final_message\n PVR add-ons:\t\tYes"
2315 DISABLE_PVR_ADDON_CONFIG=0
2317 final_message="$final_message\n PVR add-ons:\t\tNo"
2320 OUTPUT_FILES="Makefile \
2322 addons/skin.confluence/media/Makefile \
2324 xbmc/cdrip/Makefile \
2325 xbmc/cores/Makefile \
2326 xbmc/cores/VideoRenderers/Makefile \
2327 xbmc/cores/dvdplayer/Makefile \
2329 lib/libdvd/Makefile \
2330 xbmc/cores/DllLoader/Makefile \
2331 xbmc/cores/DllLoader/exports/Makefile \
2332 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2333 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2334 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2335 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2336 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2337 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2338 xbmc/cores/AudioEngine/Makefile \
2339 xbmc/cores/paplayer/Makefile \
2340 xbmc/cores/amlplayer/Makefile \
2341 xbmc/cores/omxplayer/Makefile \
2342 lib/timidity/Makefile \
2343 lib/xbadpcm/Makefile \
2345 lib/nosefart/Makefile \
2346 lib/libsidplay2/Makefile \
2347 lib/vgmstream/Makefile \
2348 lib/snesapu/SNES/SNESAPU/Makefile \
2349 lib/stsound/StSoundLibrary/Makefile \
2350 xbmc/cores/playercorefactory/Makefile \
2351 xbmc/music/karaoke/Makefile \
2353 xbmc/guilib/Makefile \
2354 xbmc/interfaces/Makefile \
2355 xbmc/network/Makefile \
2356 xbmc/network/upnp/Makefile \
2357 lib/libRTV/Makefile \
2358 lib/libexif/Makefile \
2359 lib/libXDAAP/Makefile \
2360 lib/cmyth/Makefile \
2361 lib/libhdhomerun/Makefile \
2362 lib/libsquish/Makefile \
2363 lib/cximage-6.0/Makefile \
2364 lib/addons/script.module.pil/Makefile \
2365 lib/libUPnP/Makefile \
2366 xbmc/DllPaths_generated.h \
2367 xbmc/DllPaths_generated_android.h \
2368 xbmc/freebsd/Makefile \
2369 xbmc/linux/Makefile \
2370 xbmc/filesystem/Makefile \
2371 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2372 xbmc/visualizations/XBMCProjectM/Makefile \
2373 xbmc/visualizations/Goom/Makefile \
2374 xbmc/visualizations/OpenGLSpectrum/Makefile \
2375 xbmc/visualizations/WaveForm/Makefile \
2376 xbmc/visualizations/iTunes/Makefile \
2377 lib/addons/library.xbmc.addon/Makefile \
2378 lib/addons/library.xbmc.gui/Makefile \
2379 lib/addons/library.xbmc.pvr/Makefile \
2380 xbmc/visualizations/EGLHelpers/Makefile \
2381 tools/Linux/xbmc.sh \
2382 tools/Linux/xbmc-standalone.sh \
2383 tools/TexturePacker/Makefile \
2384 tools/EventClients/Clients/OSXRemote/Makefile \
2385 xbmc/peripherals/bus/Makefile \
2386 xbmc/peripherals/devices/Makefile \
2387 xbmc/android/activity/Makefile \
2388 xbmc/android/loader/Makefile \
2391 if test "$use_skin_touched" = "yes"; then
2392 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2395 OUTPUT_FILES="$OUTPUT_FILES \
2396 xbmc/interfaces/python/Makefile \
2397 xbmc/interfaces/python/test/Makefile"
2399 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2400 # .dummy.am does nothing.
2401 AC_CONFIG_FILES([.dummy])
2403 AC_CONFIG_FILES([${OUTPUT_FILES}])
2404 OUTPUT_FILES="$OUTPUT_FILES \
2410 AC_SUBST(SDL_DEFINES)
2411 AC_SUBST(BUILD_DVDCSS)
2412 AC_SUBST(DISABLE_GOOM)
2413 AC_SUBST(DISABLE_RSXS)
2414 AC_SUBST(DISABLE_PROJECTM)
2415 AC_SUBST(USE_SKIN_TOUCHED)
2416 AC_SUBST(USE_EXTERNAL_FFMPEG)
2417 AC_SUBST(PYTHON_VERSION)
2418 AC_SUBST(OUTPUT_FILES)
2419 AC_SUBST(HAVE_XBMC_NONFREE)
2420 AC_SUBST(USE_ASAP_CODEC)
2421 AC_SUBST(LIBCURL_BASENAME)
2422 AC_SUBST(LIBFLAC_BASENAME)
2423 AC_SUBST(LIBVORBISFILE_BASENAME)
2424 AC_SUBST(LIBMODPLUG_BASENAME)
2425 AC_SUBST(LIBMAD_BASENAME)
2426 AC_SUBST(LIBOGG_BASENAME)
2427 AC_SUBST(LIBVORBISENC_BASENAME)
2428 AC_SUBST(LIBVORBIS_BASENAME)
2429 AC_SUBST(LIBASS_BASENAME)
2430 AC_SUBST(LIBMEPG2_BASENAME)
2431 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2432 AC_SUBST(USE_OPENGL)
2433 AC_SUBST(USE_OPENGLES)
2436 AC_SUBST(USE_CRYSTALHD)
2437 AC_SUBST(USE_LIBSMBCLIENT)
2438 AC_SUBST(USE_LIBNFS)
2439 AC_SUBST(USE_LIBAFPCLIENT)
2440 AC_SUBST(USE_AIRPLAY)
2442 AC_SUBST(USE_OPENMAX)
2444 AC_SUBST(USE_XRANDR)
2446 AC_SUBST(USE_TEXTUREPACKER)
2447 AC_SUBST(USE_TEXTUREPACKER_NATIVE)
2448 AC_SUBST(USE_TEXTUREPACKER_NATIVE_ROOT)
2449 AC_SUBST(USE_AIRTUNES)
2450 AC_SUBST(USE_LIBUDEV)
2451 AC_SUBST(USE_LIBUSB)
2452 AC_SUBST(USE_LIBCEC)
2453 AC_SUBST(USE_CEC_RPI_API)
2455 AC_SUBST(USE_WEB_SERVER)
2457 AC_SUBST(USE_OMXLIB)
2458 AC_SUBST(USE_ANDROID)
2459 AC_SUBST(GTEST_CONFIGURED)
2460 AC_SUBST(USE_DOXYGEN)
2461 AC_SUBST(USE_PVR_ADDONS)
2463 # pushd and popd are not available in other shells besides bash, so implement
2464 # our own pushd/popd functions
2469 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2471 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2474 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2479 if [[ -n "$XB_DIRSTACK" ]]; then
2480 XB_DIRSTACK="${XB_DIRSTACK#* }"
2481 cd "${XB_DIRSTACK%% *}"
2484 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2488 # Function to run the configure scripts in our submodules
2489 # Consists of three paramaters, the path to the submodule, the configure command
2490 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2491 # running the script, anything else if not.
2492 AC_DEFUN([XB_CONFIG_MODULE],[
2493 AC_CONFIG_COMMANDS_POST([
2494 if [[ $3 != "1" ]]; then
2495 if [[ -d $1 ]]; then
2498 if [[ $? -ne 0 ]]; then
2500 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2505 AC_MSG_ERROR([[Submodule $1 does not exist]])
2508 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2513 XB_CONFIG_MODULE([lib/ffmpeg], [
2514 if test "$host_vendor" = "apple" ; then
2515 ffmpg_config="--target-os=$ffmpeg_target_os"
2516 # handle disables first, we do individual enables later
2517 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2518 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2519 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2520 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2521 ffmpg_config="$ffmpg_config --disable-vda --disable-crystalhd"
2522 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2524 # handle conditional enables/disables
2525 if test "$use_debug" = "no"; then
2526 ffmpg_config="$ffmpg_config --disable-debug"
2528 if test "$use_cpu" != "no"; then
2529 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2531 if test "$use_arch" != "no"; then
2532 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2534 if test "$use_arch" = "arm"; then
2535 ffmpg_config="$ffmpg_config --enable-pic"
2536 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2537 if test "$use_neon" = "yes"; then
2538 ffmpg_config="$ffmpg_config --enable-neon"
2540 ffmpg_config="$ffmpg_config --disable-neon"
2543 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2545 if test "$use_ffmpeg_libvorbis" = "yes"; then
2546 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2548 ffmpg_config="$ffmpg_config --disable-libvorbis"
2551 # handle individual enables
2552 ffmpg_config="$ffmpg_config --enable-gpl"
2553 ffmpg_config="$ffmpg_config --enable-postproc"
2554 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2555 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts"
2556 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac"
2557 ffmpg_config="$ffmpg_config --enable-protocol=http"
2558 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2560 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2563 ffmpg_config="$ffmpg_config --cc=clang" ;;
2565 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2568 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2569 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2571 ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2573 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2574 # dependency files in the right place, replace it with something that works
2577 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2580 # ffmpeg will use yasm found at ${prefix}/bin during configure
2581 # but then hardcodes 'yasm' in config.mak, fix it.
2582 sed -ie "s#YASM=yasm#YASM=${prefix}/bin/yasm#" config.mak
2583 sed -ie "s#YASMDEP=yasm#YASMDEP=${prefix}/bin/yasm#" config.mak
2584 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2589 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2591 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2593 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2594 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2595 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2596 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2597 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2598 --target-os=$ffmpeg_target_os \
2600 --enable-muxer=spdif \
2601 --enable-muxer=adts \
2602 --disable-encoders \
2603 --enable-encoder=ac3 \
2604 --enable-encoder=aac \
2605 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2606 --disable-decoder=mpeg_xvmc \
2610 --disable-ffserver \
2612 --disable-crystalhd \
2617 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2618 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2619 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2620 --enable-protocol=http \
2622 --enable-runtime-cpudetect \
2623 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2624 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2625 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2626 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2627 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2629 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2630 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2632 ], [$USE_EXTERNAL_FFMPEG])
2634 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2639 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2640 --host=$host_alias \
2641 --build=$build_alias \
2642 --target=$target_alias \
2646 ], [$SKIP_CONFIG_DVDCSS])
2648 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2650 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src" \
2651 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2652 --host=$host_alias \
2653 --build=$build_alias \
2654 --target=$target_alias \
2660 $MAKE dvdread-config &&
2661 mkdir -p `pwd`/../includes/dvdread
2662 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2665 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2667 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
2668 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2669 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2670 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2671 --host=$host_alias \
2672 --build=$build_alias \
2673 --target=$target_alias \
2679 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2681 rm -f CMakeCache.txt && \
2682 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2683 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2684 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2685 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2686 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2687 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2688 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2689 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2690 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2691 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2692 if test "$host_vendor" = "apple" ; then
2693 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2694 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2695 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2696 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2699 ], [$DISABLE_PROJECTM])
2701 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2704 CXXFLAGS="$CXXFLAGS" \
2705 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2706 --host=$host_alias \
2707 --build=$build_alias \
2708 --target=$target_alias \
2714 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2719 CXXFLAGS="$CXXFLAGS" \
2720 `if test "$host_vendor" = "apple"; then echo --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2721 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2722 --host=$host_alias \
2723 --build=$build_alias \
2724 --target=$target_alias \
2725 --without-xscreensaver \
2728 --disable-fieldlines \
2732 --disable-hyperspace \
2735 if echo "$ARCH" | grep -q freebsd ; then
2736 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2740 XB_CONFIG_MODULE([lib/cpluff], [
2741 ./configure --disable-nls \
2742 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2743 --host=$host_alias \
2744 --build=$build_alias \
2745 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2746 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2749 XB_CONFIG_MODULE([lib/gtest], [
2754 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2755 --host=$host_alias \
2756 --build=$build_alias \
2757 --target=$target_alias \
2761 ], [$SKIP_CONFIG_GTEST])
2763 XB_CONFIG_MODULE([pvr-addons], [
2764 if test "$USE_EXTERNAL_FFMPEG" = 1; then
2765 PVR_EXT_FFMPEG="--enable-external-ffmpeg"
2768 --prefix="${prefix}" \
2769 --host=$host_alias \
2770 --build=$build_alias \
2771 --target=$target_alias \
2776 CXXFLAGS="$CXXFLAGS"
2777 ], [$DISABLE_PVR_ADDON_CONFIG])
2781 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2782 echo -e "$final_message\n"