2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [12.9.4], [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 fishbmc_enabled="== FishBMC enabled. =="
109 fishbmc_disabled="== FishBMC disabled. =="
110 projectm_enabled="== ProjectM enabled. =="
111 projectm_disabled="== ProjectM disabled. =="
112 x11_enabled="== X11 enabled. =="
113 x11_disabled="== X11 disabled. =="
114 pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
115 pulse_disabled="== PulseAudio support manually disabled. =="
116 dvdcss_enabled="== DVDCSS support enabled. =="
117 dvdcss_disabled="== DVDCSS support disabled. =="
118 hal_not_found="== Could not find hal. HAL support disabled. =="
119 halstorage_not_found="== Could not find hal-storage. HAL support disabled. =="
120 hal_disabled="== HAL support disabled. =="
121 avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
122 avahi_disabled="== Avahi support disabled. =="
123 vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
124 vdpau_disabled="== VDPAU support manually disabled. =="
125 vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
126 vaapi_disabled="== VAAPI support manually disabled. =="
127 crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
128 crystalhd_disabled="== CrystalHD support manually disabled. =="
129 vdadecoder_enabled="== VDADecoder support enabled. =="
130 vdadecoder_disabled="== VDADecoder support manually disabled. =="
131 vtbdecoder_enabled="== VTBDecoder support enabled. =="
132 vtbdecoder_disabled="== VTBDecoder support manually disabled. =="
133 openmax_disabled="== OpenMax support manually disabled. =="
134 openmax_not_found="== Could not find libnvomx. OpenMax support disabled. =="
135 ssh_not_found="== Could not find libssh. =="
136 ssh_disabled="== SSH SFTP disabled. =="
137 librtmp_not_found="== Could not find libRTMP. RTMP support disabled. =="
138 librtmp_disabled="== RTMP support disabled. =="
139 libnfs_not_found="== Could not find libnfs. NFS client support disabled. =="
140 libnfs_disabled="== NFS support disabled. =="
141 libafpclient_not_found="== Could not find libafpclient. AFP client support disabled. =="
142 libafpclient_disabled="== AFP support disabled. =="
143 libshairport_not_found="== Could not find libshairport. AirTunes support disabled. =="
144 libshairport_disabled="== AirTunes support disabled. =="
145 samba_disabled="== SAMBA support disabled. =="
146 libplist_not_found="== Could not find libplist. AirPlay support disabled. =="
147 libplist_disabled="== AirPlay support disabled. =="
148 alsa_not_found="== Could not find ALSA. ALSA support disabled. =="
149 dbus_not_found="== Could not find DBUS. DBUS support disabled. =="
150 libcap_disabled="== Capabilities detection support disabled. =="
151 libcap_not_found="== Could not find libcap. Capabilities detection support disabled. =="
152 gtest_enabled="== Google Test Framework will be configured. =="
153 gtest_disabled="== Google Test Framework will not be configured. =="
155 libudev_not_found="== Could not find libudev. Will use polling to check for device changes. =="
156 libudev_disabled="== udev support disabled. Will use polling to check for device changes. =="
157 libusb_not_found="== Could not find libusb. Plug and play USB device support will not be available. =="
158 libusb_disabled="== libusb disabled. Plug and play USB device support will not be available. =="
159 libusb_disabled_udev_found="== libusb disabled. =="
160 libcec_enabled="== libcec enabled. =="
161 libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
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([fishbmc],
306 [AS_HELP_STRING([--enable-fishbmc],
307 [enable FishBMC visualisation (default is yes)])],
308 [use_fishbmc=$enableval],
311 AC_ARG_ENABLE([projectm],
312 [AS_HELP_STRING([--enable-projectm],
313 [enable ProjectM visualisation (default is yes)])],
314 [use_projectm=$enableval],
318 [AS_HELP_STRING([--enable-x11],
319 [enable x11 (default is yes) 'Linux Only'])],
320 [use_x11=$enableval],
323 AC_ARG_ENABLE([ccache],
324 [AS_HELP_STRING([--enable-ccache],
325 [enable building with ccache feature (default is auto)])],
326 [use_ccache=$enableval],
329 AC_ARG_ENABLE([alsa],
330 [AS_HELP_STRING([--disable-alsa],
331 [disable ALSA support (only for linux/freebsd)])],
332 [use_alsa=$enableval],
335 AC_ARG_ENABLE([pulse],
336 [AS_HELP_STRING([--enable-pulse],
337 [enable PulseAudio support (default is no)])],
338 [use_pulse=$enableval],
342 [AS_HELP_STRING([--disable-ssh],
343 [disable SSH SFTP support (default is enabled)])],
344 [use_ssh=$enableval],
347 AC_ARG_ENABLE([rtmp],
348 [AS_HELP_STRING([--enable-rtmp],
349 [enable RTMP support via librtmp (default is auto)])],
350 [use_librtmp=$enableval],
353 AC_ARG_ENABLE([samba],
354 [AS_HELP_STRING([--disable-samba],
355 [disable SAMBA support (default is enabled)])],
356 [use_samba=$enableval],
360 [AS_HELP_STRING([--enable-nfs],
361 [enable NFS support via libnfs (default is auto)])],
362 [use_libnfs=$enableval],
365 AC_ARG_ENABLE([afpclient],
366 [AS_HELP_STRING([--enable-afpclient],
367 [enable AFP support via libafpclient (default is auto)])],
368 [use_libafpclient=$enableval],
369 [use_libafpclient=auto])
371 AC_ARG_ENABLE([airplay],
372 [AS_HELP_STRING([--enable-airplay],
373 [enable AirPlay support(default is auto)])],
374 [use_airplay=$enableval],
377 AC_ARG_ENABLE([airtunes],
378 [AS_HELP_STRING([--enable-airtunes],
379 [enable AirTunes support(default is auto)])],
380 [use_airtunes=$enableval],
383 AC_ARG_ENABLE([upnp],
384 [AS_HELP_STRING([--disable-upnp],
385 [disable UPnP support (default is enabled)])],
386 [use_upnp=$enableval],
389 AC_ARG_ENABLE([ffmpeg_libvorbis],
390 [AS_HELP_STRING([--enable-ffmpeg-libvorbis],
391 [enable FFmpeg vorbis encoding (default is no)])],
392 [use_ffmpeg_libvorbis=$enableval],
393 [use_ffmpeg_libvorbis=no])
395 AC_ARG_ENABLE([dvdcss],
396 [AS_HELP_STRING([--enable-dvdcss],
397 [enable DVDCSS support (default is yes)])],
398 [use_dvdcss=$enableval],
402 [AS_HELP_STRING([--enable-mid],
403 [enable MID support (default is no)])],
404 [use_mid=$enableval],
408 [AS_HELP_STRING([--disable-hal],
409 [disable HAL support (default is enabled if hal and hal-storage is found)])],
410 [use_hal=$enableval],
413 AC_ARG_ENABLE([avahi],
414 [AS_HELP_STRING([--disable-avahi],
415 [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
416 [use_avahi=$enableval],
419 AC_ARG_ENABLE([non-free],
420 [AS_HELP_STRING([--disable-non-free],
421 [disable componentents with non-compliant licenses])],
422 [use_nonfree=$enableval],
425 AC_ARG_ENABLE([asap-codec],
426 [AS_HELP_STRING([--enable-asap-codec],
427 [enable ASAP ADPCM support])],
428 [use_asap=$enableval],
431 AC_ARG_ENABLE([mysql],
432 [AS_HELP_STRING([--disable-mysql],
434 [use_mysql=$enableval],
437 AC_ARG_ENABLE([webserver],
438 [AS_HELP_STRING([--disable-webserver],
439 [disable webserver])],
440 [use_webserver=$enableval],
443 AC_ARG_ENABLE([optical-drive],
444 [AS_HELP_STRING([--disable-optical-drive],
445 [disable optical drive])],
446 [use_optical_drive=$enableval],
447 [use_optical_drive=yes])
449 AC_ARG_ENABLE([libbluray],
450 [AS_HELP_STRING([--enable-libbluray],
451 [enable libbluray support])],
452 [use_libbluray=$enableval],
453 [use_libbluray=auto])
455 AC_ARG_ENABLE([texturepacker],
456 [AS_HELP_STRING([--enable-texturepacker],
457 [enable texturepacker support (default is yes)])],
458 [use_texturepacker=$enableval],
459 [use_texturepacker=auto])
461 AC_ARG_WITH([lirc-device],
462 [AS_HELP_STRING([--with-lirc-device=file],
463 [specify the default LIRC device (default is /dev/lircd)])],
464 [lirc_device=$withval],
465 [lirc_device=/dev/lircd])
466 AC_DEFINE_UNQUOTED([LIRC_DEVICE], ["$lirc_device"], [Default LIRC device])
468 AC_ARG_ENABLE([udev],
469 [AS_HELP_STRING([--enable-udev],
470 [enable udev support (default is auto)])],
471 [use_libudev=$enableval],
474 AC_ARG_ENABLE([libusb],
475 [AS_HELP_STRING([--enable-libusb],
476 [enable libusb support (default is auto)])],
477 [use_libusb=$enableval],
480 AC_ARG_ENABLE([libcec],
481 [AS_HELP_STRING([--enable-libcec],
482 [enable libcec support (default is auto)])],
483 [use_libcec=$enableval],
486 AC_ARG_ENABLE([libmp3lame],
487 [AS_HELP_STRING([--enable-libmp3lame],
488 [enable lame mp3 encoder support (default is auto)])],
489 [use_libmp3lame=$enableval],
490 [use_libmp3lame=auto])
492 AC_ARG_ENABLE([libvorbisenc],
493 [AS_HELP_STRING([--enable-libvorbisenc],
494 [enable vorbis encoder support (default is auto)])],
495 [use_libvorbisenc=$enableval],
496 [use_libvorbisenc=auto])
498 AC_ARG_ENABLE([libcap],
499 [AS_HELP_STRING([--enable-libcap],
500 [enable libcap support (default is auto)])],
501 [use_libcap=$enableval],
504 AC_ARG_ENABLE([player],
505 [AS_HELP_STRING([--enable-player],
506 [enable additional players from a list of comma separated names, (default is none, choices are amlplayer, omxplayer)])],
507 [add_players=$enableval],
510 AC_ARG_ENABLE([gtest],
511 [AS_HELP_STRING([--enable-gtest],
512 [configure Google Test Framework (default is no)])],
513 [configure_gtest=$enableval],
514 [configure_gtest=no])
516 ### External libraries options
517 AC_ARG_ENABLE([external-libraries],
518 [AS_HELP_STRING([--enable-external-libraries],
519 [enable use of all supported external libraries (default is no) 'Linux only'])],
520 [use_external_libraries=$enableval],
521 [use_external_libraries=no])
523 AC_ARG_ENABLE([external-ffmpeg],
524 [AS_HELP_STRING([--enable-external-ffmpeg],
525 [enable use of external ffmpeg libraries (default is no) 'Linux only'])],
526 [use_external_ffmpeg=$enableval],
527 [use_external_ffmpeg=$use_external_libraries])
529 ### End of external library options
531 if test "x$host_vendor" != "xapple"; then
532 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
533 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
536 # Checks for programs.
537 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
539 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
540 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
543 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
548 OBJDUMP="${OBJDUMP:-objdump}"
550 # ffmpeg needs the output of uname -s (e.x. linux, darwin) for the target_os
551 # there is no autoconf variable which will give
552 # the correct output format when doing cross compilation
553 # so we have to use our own var here
554 # defaults to the build side target_os
555 # and should be overridden for cross below (see android)
556 ffmpeg_target_os=$(tolower $(uname -s))
558 # host detection and setup
560 i*86*-android-linux-gnu*)
561 target_platform=target_android
565 ffmpeg_target_os=linux
569 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
573 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
578 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
581 ARCH="x86_64-freebsd"
583 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
596 use_texturepacker_native=yes
600 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
601 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
602 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
603 PYTHON_NOVERSIONCHECK="no-check"
604 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_IOS -D_LINUX")
609 use_texturepacker_native=yes
611 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
613 powerpc-apple-darwin*)
620 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
622 powerpc-*-linux-gnu*)
624 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC")
626 powerpc64-*-linux-gnu*)
627 ARCH="powerpc64-linux"
628 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC64")
634 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
635 ffmpeg_target_os=linux
642 arm*-*linux-android*)
643 target_platform=target_android
647 ffmpeg_target_os=linux
657 AC_MSG_ERROR(unsupported host ($host))
662 check_sdl_arch=[`file $USE_TEXTUREPACKER_NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
663 if test "x$check_sdl_arch" = "xi386" ; then
664 DARWIN_NATIVE_ARCH=-m32
665 elif test "x$check_sdl_arch" = "xx86_64" ; then
666 DARWIN_NATIVE_ARCH=-m64
668 AC_SUBST([DARWIN_NATIVE_ARCH])
670 if test "$target_platform" = "target_android" ; then
672 use_texturepacker_native=yes
673 webserver_checkdepends=yes
674 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_ANDROID")
675 CFLAGS="$CFLAGS -Wno-psabi"
676 CXXFLAGS="$CXXFLAGS -Wno-psabi"
677 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
680 case $use_platform in
682 target_platform=target_raspberry_pi
684 use_texturepacker=yes
685 use_texturepacker_native=yes
688 use_hardcoded_tables="yes"
690 USE_TEXTUREPACKER_NATIVE_ROOT="$TEXTUREPACKER_NATIVE_ROOT"
692 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI")
693 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
694 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
697 ffmpeg_target_os=linux
702 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
703 if test "$GIT_REV" = ""; then
704 if test -f VERSION ; then
705 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
706 elif test "$HAVE_GIT" = "yes"; then
707 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
712 final_message="$final_message\n git Rev.:\t${GIT_REV}"
714 if test "$host_vendor" = "apple"; then
715 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
717 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
720 if test "$build_shared_lib" = "yes"; then
721 final_message="$final_message\n Shared lib\tYes"
722 AC_SUBST(USE_LIBXBMC,1)
726 # platform debug flags
727 if test "$use_debug" = "yes"; then
728 final_message="$final_message\n Debugging:\tYes"
729 if test "$use_profiling" = "yes"; then
730 final_message="$final_message\n Profiling:\tYes"
731 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
733 final_message="$final_message\n Profiling:\tNo"
734 DEBUG_FLAGS="-g -D_DEBUG -Wall"
737 final_message="$final_message\n Debugging:\tNo"
738 if test "$use_profiling" = "yes"; then
739 final_message="$final_message\n Profiling:\tYes"
740 DEBUG_FLAGS="-pg -DNDEBUG=1"
742 final_message="$final_message\n Profiling:\tNo"
743 DEBUG_FLAGS="-DNDEBUG=1"
746 CFLAGS="$CFLAGS $DEBUG_FLAGS"
747 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
750 if test "$use_optimizations" = "yes"; then
751 final_message="$final_message\n Optimization:\tYes"
752 if test "$target_platform" = "target_raspberry_pi"; then
756 CXXFLAGS="-O2 $CXXFLAGS"
760 final_message="$final_message\n Optimization:\tNo"
764 # platform specific flags
765 if echo "$ARCH" | grep -q "freebsd" ; then
766 LOCALBASE="${LOCALBASE:-/usr/local}"
767 CFLAGS="$CFLAGS -I$LOCALBASE/include"
768 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
769 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
770 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
771 FFMPEG_EXTRACFLAGS="-I$LOCALBASE/include"
773 if test "$host_vendor" = "apple" ; then
774 # standard xbmc paths
775 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
776 if test "$use_arch" != "arm"; then
777 LIBS="$LIBS -framework ApplicationServices"
778 LIBS="$LIBS -framework AudioUnit"
779 LIBS="$LIBS -framework AudioToolbox"
780 LIBS="$LIBS -framework Cocoa"
781 LIBS="$LIBS -framework CoreAudio"
782 LIBS="$LIBS -framework CoreVideo"
783 LIBS="$LIBS -framework CoreServices"
784 LIBS="$LIBS -framework CoreFoundation"
785 LIBS="$LIBS -framework DiskArbitration"
786 LIBS="$LIBS -framework IOKit"
787 LIBS="$LIBS -framework IOSurface"
788 LIBS="$LIBS -framework QuartzCore"
789 LIBS="$LIBS -framework SystemConfiguration"
791 USE_EXTERNAL_FFMPEG=1
792 elif test "$target_platform" = "target_raspberry_pi"; then
795 elif test "$use_arch" = "arm"; then
796 CFLAGS="$CFLAGS -mno-apcs-stack-check"
797 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
798 FFMPEG_EXTRACFLAGS=""
799 if test "$use_tegra" = "yes"; then
800 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
801 SAVE_CFLAGS="$CFLAGS"
802 CFLAGS="-mfpu=vfpv3-d16"
804 [AC_LANG_SOURCE([int foo;])],
805 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
806 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
807 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
809 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
810 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
813 if test "$use_neon" = "yes"; then
814 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
815 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
816 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
821 # Checks for library functions.
824 AC_FUNC_CLOSEDIR_VOID
825 AC_FUNC_ERROR_AT_LINE
827 AC_PROG_GCC_TRADITIONAL
829 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
833 # Boxee is apparently having compile problems
834 # if HAVE_REALLOC is defined. Sort this later.
836 AC_FUNC_SELECT_ARGTYPES
837 AC_FUNC_SETVBUF_REVERSED
845 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])
847 # Check for various sizes
848 AC_CHECK_SIZEOF([int])
849 AC_CHECK_SIZEOF([size_t])
851 # Check for intrinsics
852 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
853 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
854 [have_builtin_sync_add_and_fetch=yes],
855 [have_builtin_sync_add_and_fetch=no])
856 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
857 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
858 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
859 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
862 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
863 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
864 [have_builtin_sync_sub_and_fetch=yes],
865 [have_builtin_sync_sub_and_fetch=no])
866 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
867 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
868 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
869 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
872 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
873 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
874 [have_builtin_sync_val_compare_and_swap=yes],
875 [have_builtin_sync_val_compare_and_swap=no])
876 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
877 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
878 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
879 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
882 # Add top source directory for all builds so we can use config.h
883 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
885 # Check inotify availability
886 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
888 # Checks for boost headers using CXX instead of CC
890 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
894 if test -z "$PYTHON_NOVERSIONCHECK"; then
895 AX_PYTHON_DEVEL([>= 2.4])
896 PYTHON_VERSION=$ac_python_version
899 if test -z "$PYTHON_VERSION"; then
900 AC_MSG_ERROR([Can't find a Python version.])
902 LIBS="$LIBS $PYTHON_LDFLAGS"
903 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
906 # Checks for platforms libraries.
907 if test "$use_gles" = "yes"; then
909 # GLES overwrites GL if both set to yes.
910 if test "$host_vendor" = "apple" ; then
911 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
912 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
913 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
915 if test "$target_platform" = "target_raspberry_pi"; then
916 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
917 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
918 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
919 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
921 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
922 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
926 if test "$use_gl" = "yes"; then
927 if test "$host_vendor" = "apple" ; then
928 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
929 LIBS="$LIBS -framework OpenGL"
930 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
931 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
932 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
933 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
934 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
936 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
937 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
938 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
941 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
942 AC_CHECK_LIB([SDL_gfx],[main])
946 # platform common libraries
947 if test "$use_mysql" = "yes"; then
948 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
949 if test "x$MYSQL_CONFIG" != "xno"; then
950 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
951 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
952 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
953 LIBS="$LIBS $MYSQL_LIBS"
956 AC_MSG_ERROR($missing_program)
959 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
960 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
961 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
962 AC_INCLUDES_DEFAULT()
963 [#include <mpeg2dec/mpeg2.h>])
964 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
965 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
966 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
967 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
968 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
969 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
970 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
971 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
973 # we need to check for the header because if it exists we set the openssl
974 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
975 # in MT manner correctly.
976 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
977 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
978 if test "$gcrypt_headers_available" = "yes"; then
979 # if we have the headers then we must have the lib
980 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
981 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
982 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
985 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
986 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
987 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
988 if echo "$ARCH" | grep -q freebsd; then
989 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
990 AC_CHECK_LIB([pthread], [pthread_set_name_np],
991 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
992 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
994 if test "$target_platform" != "target_android" ; then
995 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
996 AC_CHECK_LIB([pthread], [pthread_setname_np],
997 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
998 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1001 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1002 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1003 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1004 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1005 if test "$use_mysql" = "yes"; then
1006 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1008 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1009 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1010 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1011 if test "$target_platform" = "target_android" ; then
1012 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1013 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1015 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1016 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1017 AC_MSG_ERROR($missing_library))
1018 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1019 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1020 AC_MSG_ERROR($missing_library))
1021 PKG_CHECK_MODULES([PNG], [libpng],
1022 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1023 AC_MSG_ERROR($missing_library))
1024 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1025 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1026 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1027 AC_MSG_ERROR($missing_library))
1028 PKG_CHECK_MODULES([PCRE], [libpcre],
1029 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1030 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1031 AC_MSG_ERROR($missing_library))
1032 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1033 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1034 AC_MSG_ERROR($missing_library))
1035 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1036 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1037 AC_MSG_ERROR($missing_library))
1038 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1039 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1040 AC_MSG_ERROR($missing_library))
1042 if test "$use_optical_drive" = "yes"; then
1043 PKG_CHECK_MODULES([CDIO], [libcdio],
1044 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1045 AC_MSG_ERROR($missing_library))
1048 if test "$target_platform" = "target_android" ; then
1049 PKG_CHECK_MODULES([ZIP], [libzip],
1050 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1051 AC_MSG_ERROR($missing_library))
1054 # check for libbluray
1055 AS_CASE([x$use_libbluray],
1057 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1060 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1063 AS_CASE([x$use_libbluray],
1065 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1066 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1067 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1068 AC_SUBST([HAVE_LIBBLURAY], 1)
1069 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1070 AC_CHECK_DECL([BD_EVENT_IDLE],
1071 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1072 [[#include <libbluray/bluray.h>]]))
1074 AC_SUBST([HAVE_LIBBLURAY], 0)
1078 #Check to see if libs are needed for functions that are often built-in to libc
1079 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1080 AC_SEARCH_LIBS([dlopen],dl)
1081 AC_SEARCH_LIBS([clock_gettime],rt)
1082 AC_SEARCH_LIBS([dn_expand], resolv)
1083 AC_SEARCH_LIBS([_dn_expand], resolv)
1084 AC_SEARCH_LIBS([__dn_expand],resolv)
1086 # platform dependent libraries
1087 if test "$host_vendor" = "apple" ; then
1088 if test "$use_arch" != "arm"; then
1089 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1090 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1093 if test "$target_platform" != "target_android" ; then
1094 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1096 if test "x$use_alsa" != "xno"; then
1097 PKG_CHECK_MODULES([ALSA], [alsa],
1098 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1099 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1101 PKG_CHECK_MODULES([DBUS], [dbus-1],
1102 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1103 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1104 AC_MSG_NOTICE($missing_library); use_dbus=no)
1105 if test "x$use_sdl" != "xno"; then
1106 PKG_CHECK_MODULES([SDL], [sdl],
1107 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1108 AC_MSG_ERROR($missing_library))
1109 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1110 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1114 XB_FIND_SONAME([MAD], [mad])
1115 XB_FIND_SONAME([OGG], [ogg])
1116 XB_FIND_SONAME([CURL], [curl])
1117 XB_FIND_SONAME([FLAC], [FLAC])
1118 XB_FIND_SONAME([VORBIS], [vorbis])
1119 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1120 XB_FIND_SONAME([MODPLUG], [modplug])
1121 XB_FIND_SONAME([ASS], [ass])
1122 XB_FIND_SONAME([MPEG2], [mpeg2])
1125 if test "x$use_libmp3lame" != "xno"; then
1126 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1127 if test "x$use_libmp3lame" != "xno"; then
1128 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1131 AS_CASE([x$use_libmp3lame],
1133 AC_SUBST([HAVE_LIBMP3LAME], 0)
1136 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1137 AC_SUBST([HAVE_LIBMP3LAME], 1)
1140 if test "x$use_libvorbisenc" != "xno"; then
1141 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1142 if test "x$use_libvorbisenc" != "xno"; then
1143 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1146 AS_CASE([x$use_libvorbisenc],
1148 AC_SUBST([HAVE_LIBVORBISENC], 0)
1150 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1151 AC_SUBST([HAVE_LIBVORBISENC], 1)
1156 if test "$use_webserver" = "yes"; then
1157 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1161 if test "$use_optical_drive" = "yes"; then
1162 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1166 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1167 PKG_CHECK_MODULES([ALSA], [alsa],
1168 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1169 AC_MSG_ERROR($missing_library))
1170 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1173 AC_MSG_RESULT($alsa_disabled)
1177 if test "x$use_pulse" != "xno"; then
1178 if test "$host_vendor" = "apple" ; then
1179 if test "x$use_pulse" = "xyes"; then
1180 AC_MSG_ERROR($pulse_disabled)
1183 AC_MSG_RESULT($pulse_disabled)
1187 AC_CHECK_LIB([pulse],[main],,pulse_found="no")
1188 AC_CHECK_LIB([pulse-simple],[main],,pulse_found="no")
1190 if test "x$pulse_found" != "xno"; then
1192 elif test "x$use_pulse" = "xyes"; then
1193 AC_MSG_ERROR($pulse_not_found)
1197 AC_MSG_RESULT($pulse_not_found)
1201 AC_MSG_RESULT($pulse_disabled)
1206 if test "$host_vendor" = "apple" ; then
1208 AC_MSG_RESULT($hal_disabled)
1210 if test "$use_hal" = "yes"; then
1211 PKG_CHECK_MODULES([HAL], [hal],
1212 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1213 use_hal=no;AC_MSG_RESULT($hal_not_found))
1214 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1215 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1216 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1218 AC_MSG_RESULT($hal_disabled)
1220 if test "$use_hal" = "yes"; then
1221 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1226 if test "$host_vendor" = "apple" ; then
1228 AC_MSG_RESULT($avahi_disabled)
1230 if test "$use_avahi" = "yes"; then
1231 AC_CHECK_LIB([avahi-common], [main],,
1232 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1233 if test "$use_avahi" = "yes"; then
1234 #either both libs or none
1235 AC_CHECK_LIB([avahi-client], [main],,
1236 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1239 AC_MSG_RESULT($avahi_disabled)
1244 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1245 AC_MSG_NOTICE($x11_enabled)
1246 PKG_CHECK_MODULES([X11], [x11],
1247 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1248 AC_MSG_ERROR($missing_library))
1249 PKG_CHECK_MODULES([XEXT], [xext],
1250 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1251 AC_MSG_ERROR($missing_library))
1252 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1254 AC_MSG_RESULT($x11_disabled)
1258 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1260 AC_MSG_RESULT($xrandr_disabled)
1262 if test "$use_xrandr" = "yes" ; then
1263 AC_CHECK_LIB([Xrandr], [main],,
1264 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1266 AC_MSG_RESULT($xrandr_disabled)
1271 if test "$host_vendor" = "apple" ; then
1272 AC_MSG_NOTICE($goom_disabled)
1275 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1276 AC_MSG_NOTICE($goom_enabled)
1279 AC_MSG_NOTICE($goom_disabled)
1285 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1286 AC_MSG_NOTICE($rsxs_disabled)
1289 AC_MSG_NOTICE($rsxs_enabled)
1291 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1292 if test "$host_vendor" != "apple" ; then
1293 PKG_CHECK_MODULES([XT], [xt],
1294 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1295 AC_MSG_ERROR($missing_library))
1296 PKG_CHECK_MODULES([XMU], [xmu],
1297 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1298 AC_MSG_ERROR($missing_library))
1303 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1304 AC_MSG_NOTICE($fishbmc_disabled)
1308 AC_MSG_NOTICE($fishbmc_enabled)
1313 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1314 AC_MSG_NOTICE($projectm_disabled)
1318 AC_MSG_NOTICE($projectm_enabled)
1324 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1325 use_skin_touched=yes
1327 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1333 if test "x$use_ssh" = "xno"; then
1334 AC_MSG_NOTICE($ssh_disabled)
1337 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1338 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1342 if test "$use_librtmp" != "no"; then
1343 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1344 [if test "$use_librtmp" = "yes"; then
1345 AC_MSG_ERROR($librtmp_not_found)
1346 elif test "$use_librtmp" != "no"; then
1347 AC_MSG_NOTICE($librtmp_not_found)
1351 if test "$use_librtmp" != "no"; then
1352 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1354 if test "$use_librtmp" != "no"; then
1355 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1358 AC_MSG_NOTICE($librtmp_disabled)
1362 if test "x$use_samba" != "xno"; then
1363 AC_CHECK_LIB([smbclient], [main],,
1364 use_samba=no;AC_MSG_ERROR($missing_library))
1367 AC_MSG_RESULT($samba_disabled)
1371 if test "x$use_samba" != "xno"; then
1372 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1377 if test "$use_libnfs" != "no"; then
1378 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1379 [if test "$use_libnfs" = "yes"; then
1380 AC_MSG_ERROR($libnfs_not_found)
1382 elif test "$use_libnfs" != "no"; then
1383 AC_MSG_NOTICE($libnfs_not_found)
1388 if test "$use_libnfs" != "no"; then
1389 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1391 if test "$use_libnfs" != "no"; then
1392 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1397 AC_MSG_NOTICE($libnfs_disabled)
1402 if test "x$use_libafpclient" != "xno"; then
1403 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1404 [if test "x$use_libafpclient" = "xyes"; then
1405 AC_MSG_ERROR($libafpclient_not_found)
1406 elif test "x$use_libafpclient" != "xno"; then
1407 AC_MSG_NOTICE($libafpclient_not_found)
1408 use_libafpclient="no"
1411 if test "x$use_libafpclient" != "xno"; then
1412 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1413 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1417 AC_MSG_NOTICE($libafpclient_disabled)
1420 # libplist for airplay feature
1422 if test "$use_airplay" != "no"; then
1423 AC_CHECK_HEADER([plist/plist.h],,
1424 [if test "$use_airplay" = "yes"; then
1425 AC_MSG_ERROR($libplist_not_found)
1426 elif test "$use_airplay" != "no"; then
1427 AC_MSG_NOTICE($libplist_not_found)
1432 if test "$use_airplay" != "no"; then
1433 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1435 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1439 # libshairport for AirTunes
1441 if test "x$use_airtunes" != "xno"; then
1442 AC_CHECK_HEADERS([shairport/shairport.h],,
1443 [if test "x$use_airtunes" = "xyes"; then
1444 AC_MSG_ERROR($libshairport_not_found)
1445 elif test "x$use_airtunes" != "xno"; then
1446 AC_MSG_NOTICE($libshairport_not_found)
1451 if test "x$use_airtunes" != "xno"; then
1452 XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
1454 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1455 [[#include <shairport/shairport.h>]])
1456 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1462 if test "$host_vendor" = "apple" ; then
1464 AC_MSG_NOTICE($libudev_disabled)
1466 if test "$use_libudev" = "auto"; then
1467 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1468 elif test "$use_libudev" = "yes" ; then
1469 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1471 AC_MSG_NOTICE($libudev_disabled)
1474 if test "x$use_libudev" != "xno"; then
1475 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1476 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1483 # if libudev is available, we don't need libusb
1484 if test "x$use_libudev" != "xno"; then
1486 AC_MSG_NOTICE($libusb_disabled_udev_found)
1488 if test "$host_vendor" = "apple" ; then
1490 AC_MSG_NOTICE($libusb_disabled)
1492 if echo "$ARCH" | grep -q freebsd ; then
1493 AC_CHECK_LIB([usb],[main],
1494 [use_libusb="yes";USB_LIBS="-lusb"],
1495 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1496 elif test "$use_libusb" = "auto"; then
1497 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1498 elif test "$use_libusb" = "yes"; then
1499 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1501 AC_MSG_NOTICE($libusb_disabled)
1504 if test "x$use_libusb" != "xno"; then
1505 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1506 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1513 if test "x$use_libcec" != "xno"; then
1514 # libcec is dyloaded, so we need to check for its headers and link any depends.
1515 if test "x$use_libcec" != "xno"; then
1516 if test "x$use_libcec" != "xauto"; then
1517 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1519 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1522 if test "x$use_libcec" != "xno"; then
1523 INCLUDES="$INCLUDES $CEC_CFLAGS"
1524 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1525 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1526 AC_MSG_NOTICE($libcec_enabled)
1529 AC_MSG_NOTICE($libcec_disabled)
1534 AC_MSG_NOTICE($libcec_disabled)
1538 if test "$use_libcap" != "no"; then
1539 AC_CHECK_HEADERS([sys/capability.h],,
1540 [if test "$use_libcap" = "yes"; then
1541 AC_MSG_ERROR($libcap_not_found)
1542 elif test "$use_libcap" != "no"; then
1543 AC_MSG_NOTICE($libcap_not_found)
1547 if test "$use_libcap" != "no"; then
1548 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1550 if test "$use_libcap" != "no"; then
1551 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1554 AC_MSG_NOTICE($libcap_disabled)
1557 ### External libraries checks
1560 if test "$use_external_ffmpeg" = "yes"; then
1561 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale"
1563 # libavcore is optional
1564 PKG_CHECK_EXISTS([libavcore], FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libavcore")
1566 # one of libswresample or libavresample is needed
1567 PKG_CHECK_EXISTS([libswresample], FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libswresample",
1568 [PKG_CHECK_EXISTS([libavresample],
1569 FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libavresample",
1570 AC_MSG_ERROR([You need either libswresample
1571 or libavresample.]))])
1573 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1574 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1575 AC_MSG_ERROR($missing_library))
1577 # Determine whether AVPacket and relevant functions are defined in libavformat
1579 AC_CHECK_LIB([avcodec], [av_free_packet],
1580 [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavcodec. ==)],
1581 [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavformat. ==)
1582 AC_DEFINE([AVPACKET_IN_AVFORMAT], [1], [Whether AVPacket is in libavformat.])])
1584 # in case the headers are in a custom directory
1585 SAVE_CPPFLAGS="$CPPFLAGS"
1586 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1588 # Possible places the ffmpeg headers may be
1589 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1590 [AC_CHECK_HEADERS([ffmpeg/avcodec.h ffmpeg/avfilter.h ffmpeg/avformat.h ffmpeg/avutil.h postproc/postprocess.h ffmpeg/swscale.h],,
1591 [AC_MSG_ERROR($missing_headers)])])
1594 AC_CHECK_HEADERS([libavcore/avcore.h libavcore/samplefmt.h libavutil/mem.h libavutil/samplefmt.h])
1596 # old FFmpeg have this in libavcodec/opt.h instead:
1597 AC_CHECK_HEADERS([libavutil/opt.h])
1599 # new FFmpeg have math headers
1600 AC_CHECK_HEADERS([libavutil/mathematics.h],,)
1602 # We'll support the use of rgb2rgb.h if it exists.
1603 AC_CHECK_HEADERS([libswscale/rgb2rgb.h],,)
1604 AC_CHECK_HEADERS([ffmpeg/rgb2rgb.h],,)
1606 # Check for libswresample or libavresample headers.
1607 AC_CHECK_HEADERS([libswresample/swresample.h libavresample/avresample.h])
1609 # Check if AVFilterBufferRefVideoProps AVRational member is named
1610 # 'pixel_aspect' or 'sample_aspect_ratio'.
1611 AC_CHECK_MEMBER([AVFilterBufferRefVideoProps.sample_aspect_ratio],
1612 [AC_DEFINE([HAVE_AVFILTERBUFFERREFVIDEOPROPS_SAMPLE_ASPECT_RATIO],
1614 [Define to 1 if AVFilterBufferRefVideoProps has member sample_aspect_ratio.])],
1615 [AC_CHECK_MEMBER([AVFilterBufferRefVideoProps.sample_aspect_ratio],
1616 [AC_DEFINE([HAVE_AVFILTERBUFFERREFVIDEOPROPS_SAMPLE_ASPECT_RATIO],
1618 [Define to 1 if AVFilterBufferRefVideoProps has member sample_aspect_ratio.])],
1620 [[#include <ffmpeg/avfilter.h>]])],
1621 [[#include <libavfilter/avfilter.h>]])
1623 AC_MSG_NOTICE($external_ffmpeg_enabled)
1624 USE_EXTERNAL_FFMPEG=1
1625 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1627 # Disable vdpau support if external libavcodec doesn't have it
1628 AC_CHECK_LIB([avcodec], [ff_vdpau_vc1_decode_picture],,
1629 [if test "x$use_vdpau" = "xyes"; then
1630 AC_MSG_ERROR($ffmpeg_vdpau_not_supported)
1633 AC_MSG_RESULT($ffmpeg_vdpau_not_supported)
1636 # Check for 'PIX_FMT_VDPAU_MPEG4' from libavutil
1637 if test "x$use_vdpau" != "xno"; then
1640 [AC_LANG_SOURCE([ #include <libavutil/pixfmt.h>
1641 int main() { PixelFormat format = PIX_FMT_VDPAU_MPEG4; }])],
1642 [AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1],
1643 [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])],)
1646 CPPFLAGS="$SAVE_CPPFLAGS"
1648 AC_MSG_NOTICE($external_ffmpeg_disabled)
1649 USE_EXTERNAL_FFMPEG=0
1650 AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1], [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])
1653 echo "Checking for SWIG installation"
1654 AC_PATH_PROG(SWIG_EXE, swig, "none")
1655 if test "$SWIG_EXE" = "none"; then
1656 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1657 if test "$SWIG20_EXE" != "none" ; then
1658 SWIG_EXE=$SWIG20_EXE
1661 if test "$SWIG_EXE" = "none"; then
1662 AC_MSG_ERROR($missing_program)
1664 final_message="$final_message\n SWIG Available:\tYes"
1666 echo "Checking for a jre installation"
1667 AC_PATH_PROG(JAVA_EXE, java, "none")
1668 if test "$JAVA_EXE" = "none"; then
1669 AC_MSG_ERROR($missing_program)
1671 final_message="$final_message\n JRE Available:\tYes"
1673 echo "Checking for doxygen installation"
1674 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1675 if test "$DOXYGEN_EXE" = "none"; then
1676 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1677 final_message="$final_message\n Doxygen Available:\tNo"
1680 final_message="$final_message\n Doxygen Available:\tYes"
1685 if test "x$use_vdpau" != "xno"; then
1686 if test "$host_vendor" = "apple" ; then
1687 if test "x$use_vdpau" = "xyes"; then
1688 AC_MSG_ERROR([VDPAU not supported on this platform])
1691 AC_MSG_NOTICE($vdpau_disabled)
1696 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1697 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1698 [if test "x$use_vdpau" = "xyes"; then
1700 AC_MSG_ERROR([$vdpau_not_found])
1704 AC_MSG_RESULT($vdpau_not_found)
1709 AC_MSG_NOTICE($vdpau_disabled)
1713 if test "x$use_vaapi" != "xno"; then
1714 if test "$host_vendor" = "apple" ; then
1715 if test "x$use_vaapi" = "xyes"; then
1716 AC_MSG_ERROR([VAAPI not supported on this platform])
1719 AC_MSG_NOTICE($vaapi_disabled)
1723 initial_val=$use_vaapi
1724 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1725 if test "x$use_vaapi" != "xno"; then
1726 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1729 if test "x$use_vaapi" = "xno"; then
1730 if test "x$initial_val" = "xyes"; then
1731 AC_MSG_ERROR($vaapi_not_found)
1733 AC_MSG_RESULT($vaapi_not_found)
1737 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1742 AC_MSG_NOTICE($vaapi_disabled)
1747 if test "x$use_crystalhd" != "xno"; then
1748 SAVE_CFLAGS="$CFLAGS"
1749 CFLAGS="-D__LINUX_USER__"
1750 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1751 [ if test "x$use_crystalhd" = "xyes"; then
1752 AC_MSG_ERROR($crystalhd_not_found)
1755 AC_MSG_RESULT($crystalhd_not_found)
1759 CFLAGS="$SAVE_CFLAGS"
1760 if test "$host_vendor" != "apple"; then
1761 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1763 if test "x$use_crystalhd" != "xno"; then
1764 SAVE_CFLAGS="$CFLAGS"
1765 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1766 # check for new crystalhd lib
1768 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1769 #include <libcrystalhd/bc_dts_defs.h>
1770 PBC_INFO_CRYSTAL bCrystalInfo;])],
1771 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1772 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1773 CFLAGS="$SAVE_CFLAGS"
1777 AC_MSG_NOTICE($crystalhd_disabled)
1782 if test "x$use_vdadecoder" != "xno"; then
1783 if test "$host_vendor" = "apple" ; then
1784 HAVE_LIBVDADECODER=1
1785 AC_DEFINE([HAVE_LIBVDADECODER], [1], [Define to 1 if you have the 'VDADecoder' library.])
1786 AC_MSG_NOTICE($vdadecoder_enabled)
1789 if test "x$use_vdadecoder" = "xyes"; then
1790 AC_MSG_ERROR([VDA Decoder not supported on this platform])
1793 AC_MSG_NOTICE($vdadecoder_disabled)
1798 AC_MSG_NOTICE($vdadecoder_disabled)
1802 if test "x$use_vtbdecoder" != "xno"; then
1803 if test "$host_vendor" = "apple" ; then
1804 HAVE_VIDEOTOOLBOXDECODER=1
1805 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1806 AC_MSG_NOTICE($vtbdecoder_enabled)
1808 if test "x$use_vtbdecoder" = "xyes"; then
1809 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1812 AC_MSG_NOTICE($vtbdecoder_disabled)
1816 AC_MSG_NOTICE($vtbdecoder_disabled)
1820 if test "$host_vendor" = "apple" ; then
1823 AC_MSG_NOTICE($openmax_disabled)
1824 elif test "$target_platform" = "target_raspberry_pi"; then
1827 AC_MSG_NOTICE($openmax_disabled)
1829 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1830 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1831 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1832 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1833 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1834 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1835 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1836 AC_MSG_ERROR($openmax_not_found))
1838 AC_MSG_NOTICE($openmax_disabled)
1844 # yajl version check (yajl_version.h was added in yajl 2.0)
1845 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1846 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1849 # additional internal players
1850 case $add_players in
1852 AC_CHECK_HEADER([amlplayer/amports/amstream.h],, AC_MSG_ERROR($missing_headers))
1853 XB_ADD_PLAYER([AMLPLAYER], [amlplayer])
1856 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1860 # platform specific bin utilities
1861 if test "$build_vendor" != "apple" ; then
1862 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1863 if test "$HAVE_GAWK" = "no" ; then
1864 AC_MSG_ERROR($missing_program)
1868 if test "$use_arch" != "arm" ; then
1869 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1870 if test "$HAVE_CMAKE" = "no" ; then
1871 AC_MSG_ERROR($missing_program)
1875 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1876 if test "$HAVE_GPERF" = "no" ; then
1877 AC_MSG_ERROR($missing_program)
1880 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1881 if test "$HAVE_UNZIP" = "no" ; then
1882 AC_MSG_ERROR($missing_program)
1885 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
1886 if test "$HAVE_ZIP" = "no" ; then
1887 AC_MSG_ERROR($missing_program)
1890 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
1891 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
1892 if test "$HAVE_NASM" = "no" ; then
1893 AC_MSG_ERROR($missing_program)
1897 # Checks for header files.
1901 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
1902 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
1903 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
1904 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
1905 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
1907 # Checks for typedefs, structures, and compiler characteristics.
1923 AC_CHECK_MEMBERS([struct stat.st_rdev])
1932 if test "$cross_compiling" = "yes"; then
1933 final_message="$final_message\n Crosscomp.:\tYes"
1935 final_message="$final_message\n Crosscomp.:\tNo"
1938 final_message="$final_message\n target ARCH:\t$use_arch"
1939 final_message="$final_message\n target CPU:\t$use_cpu"
1941 if test "$use_gles" = "yes"; then
1942 final_message="$final_message\n OpenGLES:\tYes"
1947 if test "$use_gl" = "yes"; then
1948 final_message="$final_message\n OpenGL:\tYes"
1951 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
1952 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
1957 if test "$use_alsa" = "yes"; then
1959 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
1960 final_message="$final_message\n ALSA:\t\tYes"
1963 final_message="$final_message\n ALSA:\t\tNo"
1966 if test "$use_dbus" = "yes"; then
1967 final_message="$final_message\n DBUS:\t\tYes"
1969 final_message="$final_message\n DBUS:\t\tNo"
1972 if test "x$use_vdpau" != "xno"; then
1973 final_message="$final_message\n VDPAU:\tYes"
1975 final_message="$final_message\n VDPAU:\tNo"
1978 if test "x$use_vaapi" != "xno"; then
1979 final_message="$final_message\n VAAPI:\tYes"
1981 final_message="$final_message\n VAAPI:\tNo"
1984 if test "x$use_crystalhd" != "xno"; then
1985 final_message="$final_message\n CrystalHD:\tYes"
1987 final_message="$final_message\n CrystalHD:\tNo"
1990 if test "x$use_vdadecoder" != "xno"; then
1991 final_message="$final_message\n VDADecoder:\tYes"
1993 final_message="$final_message\n VDADecoder:\tNo"
1996 if test "x$use_vtbdecoder" != "xno"; then
1997 final_message="$final_message\n VTBDecoder:\tYes"
1999 final_message="$final_message\n VTBDecoder:\tNo"
2002 if test "$use_openmax" != "no"; then
2003 final_message="$final_message\n OpenMax:\tYes"
2005 final_message="$final_message\n OpenMax:\tNo"
2008 if test "$use_joystick" = "yes"; then
2009 final_message="$final_message\n Joystick:\tYes"
2010 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2012 final_message="$final_message\n Joystick:\tNo"
2015 if test "$use_xrandr" = "yes"; then
2016 final_message="$final_message\n XRandR:\tYes"
2019 final_message="$final_message\n XRandR:\tNo"
2023 if test "$use_goom" = "yes"; then
2024 final_message="$final_message\n GOOM:\t\tYes"
2026 final_message="$final_message\n GOOM:\t\tNo"
2029 if test "$use_rsxs" = "yes"; then
2030 final_message="$final_message\n RSXS:\t\tYes"
2032 final_message="$final_message\n RSXS:\t\tNo"
2035 if test "$use_fishbmc" = "yes"; then
2036 final_message="$final_message\n FishBMC:\tYes"
2038 final_message="$final_message\n FishBMC:\tNo"
2041 if test "$use_projectm" = "yes"; then
2042 final_message="$final_message\n ProjectM:\tYes"
2044 final_message="$final_message\n ProjectM:\tNo"
2047 if test "$use_skin_touched" = "yes"; then
2048 final_message="$final_message\n Skin Touched:\tYes"
2050 final_message="$final_message\n Skin Touched:\tNo"
2053 if test "$use_x11" = "yes"; then
2054 final_message="$final_message\n X11:\t\tYes"
2056 final_message="$final_message\n X11:\t\tNo"
2059 if test "$use_libbluray" = "yes"; then
2060 final_message="$final_message\n Bluray:\tYes"
2062 final_message="$final_message\n Bluray:\tNo"
2065 USE_TEXTUREPACKER_NATIVE=0
2066 if test "x$use_texturepacker" != "xno"; then
2067 final_message="$final_message\n TexturePacker:Yes"
2069 if test "x$use_texturepacker_native" = "xyes"; then
2070 USE_TEXTUREPACKER_NATIVE=1
2071 if [[ ! -d "$USE_TEXTUREPACKER_NATIVE_ROOT" ]]; then
2072 USE_TEXTUREPACKER_NATIVE_ROOT=
2076 final_message="$final_message\n TexturePacker:No"
2080 if test "$use_mid" = "yes"; then
2081 final_message="$final_message\n MID Support:\tYes"
2082 SDL_DEFINES="$SDL_DEFINES -DMID"
2084 final_message="$final_message\n MID Support:\tNo"
2089 if test "x$use_ccache" != "xno"; then
2090 AC_PATH_PROG(CCACHE,ccache,none)
2091 if test "$ac_cv_path_CCACHE" = "none"; then
2092 if test "x$use_ccache" = "xyes"; then
2093 AC_MSG_ERROR([ccache not found.]);
2095 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2096 final_message="$final_message\n ccache:\tNo"
2099 CC="$ac_cv_path_CCACHE $CC"
2100 CXX="$ac_cv_path_CCACHE $CXX"
2101 AC_MSG_NOTICE(enabling ccache)
2102 final_message="$final_message\n ccache:\tYes"
2105 final_message="$final_message\n ccache:\tNo"
2108 if test "$use_alsa" = "yes"; then
2109 final_message="$final_message\n ALSA Support:\tYes"
2111 final_message="$final_message\n ALSA Support:\tNo"
2114 if test "x$use_pulse" != "xno"; then
2115 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2116 final_message="$final_message\n PulseAudio:\tYes"
2118 XBMC_STANDALONE_SH_PULSE=/dev/null
2119 final_message="$final_message\n PulseAudio:\tNo"
2122 if test "$use_hal" = "yes"; then
2123 final_message="$final_message\n HAL Support:\tYes"
2125 final_message="$final_message\n HAL Support:\tNo"
2129 if test "$use_dvdcss" = "yes"; then
2130 AC_MSG_NOTICE($dvdcss_enabled)
2131 final_message="$final_message\n DVDCSS:\tYes"
2133 SKIP_CONFIG_DVDCSS=0
2134 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2136 AC_MSG_NOTICE($dvdcss_disabled)
2137 final_message="$final_message\n DVDCSS:\tNo"
2139 SKIP_CONFIG_DVDCSS=1
2140 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2142 if test "$host_vendor" = "apple"; then
2143 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2146 # Google Test Framework
2147 if test "$configure_gtest" = "yes"; then
2148 AC_MSG_NOTICE($gtest_enabled)
2149 final_message="$final_message\n Google Test Framework Configured:\tYes"
2153 AC_MSG_NOTICE($gtest_disabled)
2154 final_message="$final_message\n Google Test Framework Configured:\tNo"
2159 if test "$use_avahi" = "yes"; then
2160 final_message="$final_message\n Avahi:\tYes"
2162 final_message="$final_message\n Avahi:\tNo"
2165 if test "$use_nonfree" = "yes"; then
2166 final_message="$final_message\n Non-free:\tYes"
2168 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2171 final_message="$final_message\n Non-free:\tNo"
2174 if test "$use_asap" = "yes"; then
2175 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2176 if test "$HAVE_GDC" = "no"; then
2177 AC_MSG_ERROR($missing_program);
2179 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2180 if test "$HAVE_FPC" = "no"; then
2181 AC_MSG_ERROR($missing_program);
2184 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2185 final_message="$final_message\n ASAP Codec:\tYes"
2188 final_message="$final_message\n ASAP Codec:\tNo"
2191 if test "$use_mysql" = "yes"; then
2192 final_message="$final_message\n MySQL:\tYes"
2195 final_message="$final_message\n MySQL:\tNo"
2198 if test "$use_webserver" = "yes"; then
2199 final_message="$final_message\n Webserver:\tYes"
2202 final_message="$final_message\n Webserver:\tNo"
2206 if test "$use_libssh" != "no"; then
2207 final_message="$final_message\n libssh support:\tYes"
2209 final_message="$final_message\n libssh support:\tNo"
2212 if test "$use_librtmp" != "no"; then
2213 final_message="$final_message\n libRTMP support:\tYes"
2215 final_message="$final_message\n libRTMP support:\tNo"
2218 if test "x$use_samba" != "xno"; then
2219 final_message="$final_message\n libsmbclient support:\tYes"
2221 final_message="$final_message\n libsmbclient support:\tNo"
2224 if test "$use_libnfs" != "no"; then
2225 final_message="$final_message\n libnfs client support:Yes"
2227 final_message="$final_message\n libnfs client support:No"
2230 if test "x$use_libafpclient" != "xno"; then
2231 final_message="$final_message\n libafpclient support:\tYes"
2233 final_message="$final_message\n libafpclient support:\tNo"
2236 if test "$use_airplay" != "no"; then
2237 final_message="$final_message\n AirPlay support:\tYes"
2239 final_message="$final_message\n AirPLay support:\tNo"
2242 if test "x$use_airtunes" != "xno"; then
2243 final_message="$final_message\n AirTunes support:\tYes"
2245 final_message="$final_message\n AirTunes support:\tNo"
2248 if test "x$use_upnp" != "xno"; then
2249 final_message="$final_message\n UPnP support:\t\tYes"
2251 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2254 final_message="$final_message\n UPnP support:\t\tNo"
2257 if test "$use_optical_drive" = "yes"; then
2258 final_message="$final_message\n Optical drive:\tYes"
2260 final_message="$final_message\n Optical drive:\tNo"
2263 if test "x$use_libudev" != "xno"; then
2264 final_message="$final_message\n libudev support:\tYes"
2266 final_message="$final_message\n libudev support:\tNo"
2269 if test "x$use_libusb" != "xno"; then
2270 final_message="$final_message\n libusb support:\tYes"
2272 final_message="$final_message\n libusb support:\tNo"
2275 if test "x$use_libcec" != "xno"; then
2276 final_message="$final_message\n libcec support:\tYes"
2278 final_message="$final_message\n libcec support:\tNo"
2281 if test "x$use_libmp3lame" != "xno"; then
2282 final_message="$final_message\n libmp3lame support:\tYes"
2284 final_message="$final_message\n libmp3lame support:\tNo"
2287 if test "x$use_libvorbisenc" != "xno"; then
2288 final_message="$final_message\n libvorbisenc support:\tYes"
2290 final_message="$final_message\n libvorbisenc support:\tNo"
2293 if test "x$use_libcap" != "xno"; then
2294 final_message="$final_message\n libcap support:\tYes"
2296 final_message="$final_message\n libcap support:\tNo"
2299 if test "x$add_players" != "xno"; then
2300 final_message="$final_message\n additional players:\tYes"
2302 final_message="$final_message\n additional players:\tNo"
2305 ### External libraries messages
2307 if test "$use_external_ffmpeg" = "yes"; then
2308 final_message="$final_message\n External FFmpeg:\tYes"
2310 final_message="$final_message\n External FFmpeg:\tNo"
2313 if test "$host_vendor" = "apple" ; then
2314 # built internal but referenced as external, we link directly to them.
2315 # this MUST be the last thing before OUTPUT_FILES as they do not
2316 # exist until after we build FFMpeg.
2317 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2318 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2319 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2320 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2321 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2322 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2323 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2327 DISABLE_PVR_ADDON_CONFIG=1
2328 if [[ -f "pvr-addons/Makefile.am" ]]; then
2329 final_message="$final_message\n PVR add-ons:\t\tYes"
2331 DISABLE_PVR_ADDON_CONFIG=0
2333 final_message="$final_message\n PVR add-ons:\t\tNo"
2336 OUTPUT_FILES="Makefile \
2338 addons/skin.confluence/media/Makefile \
2340 xbmc/cdrip/Makefile \
2341 xbmc/cores/Makefile \
2342 xbmc/cores/VideoRenderers/Makefile \
2343 xbmc/cores/dvdplayer/Makefile \
2345 lib/libdvd/Makefile \
2346 xbmc/cores/DllLoader/Makefile \
2347 xbmc/cores/DllLoader/exports/Makefile \
2348 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2349 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2350 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2351 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2352 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2353 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2354 xbmc/cores/AudioEngine/Makefile \
2355 xbmc/cores/paplayer/Makefile \
2356 xbmc/cores/amlplayer/Makefile \
2357 xbmc/cores/omxplayer/Makefile \
2358 lib/timidity/Makefile \
2359 lib/xbadpcm/Makefile \
2361 lib/nosefart/Makefile \
2362 lib/libsidplay2/Makefile \
2363 lib/vgmstream/Makefile \
2364 lib/snesapu/SNES/SNESAPU/Makefile \
2365 lib/stsound/StSoundLibrary/Makefile \
2366 xbmc/cores/playercorefactory/Makefile \
2367 xbmc/music/karaoke/Makefile \
2369 xbmc/guilib/Makefile \
2370 xbmc/interfaces/Makefile \
2371 xbmc/network/Makefile \
2372 xbmc/network/upnp/Makefile \
2373 lib/libRTV/Makefile \
2374 lib/libexif/Makefile \
2375 lib/libXDAAP/Makefile \
2376 lib/cmyth/Makefile \
2377 lib/libhdhomerun/Makefile \
2378 lib/libsquish/Makefile \
2379 lib/cximage-6.0/Makefile \
2380 lib/libUPnP/Makefile \
2381 xbmc/DllPaths_generated.h \
2382 xbmc/DllPaths_generated_android.h \
2383 xbmc/freebsd/Makefile \
2384 xbmc/linux/Makefile \
2385 xbmc/filesystem/Makefile \
2386 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2387 xbmc/visualizations/XBMCProjectM/Makefile \
2388 xbmc/visualizations/Goom/Makefile \
2389 xbmc/visualizations/OpenGLSpectrum/Makefile \
2390 xbmc/visualizations/fishBMC/Makefile \
2391 xbmc/visualizations/WaveForm/Makefile \
2392 lib/addons/library.xbmc.addon/Makefile \
2393 lib/addons/library.xbmc.gui/Makefile \
2394 lib/addons/library.xbmc.pvr/Makefile \
2395 xbmc/visualizations/EGLHelpers/Makefile \
2396 tools/Linux/xbmc.sh \
2397 tools/Linux/xbmc-standalone.sh \
2398 tools/TexturePacker/Makefile \
2399 tools/EventClients/Clients/OSXRemote/Makefile \
2400 xbmc/peripherals/bus/Makefile \
2401 xbmc/peripherals/devices/Makefile \
2402 xbmc/android/activity/Makefile \
2403 xbmc/android/loader/Makefile \
2406 if test "$use_skin_touched" = "yes"; then
2407 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2410 OUTPUT_FILES="$OUTPUT_FILES \
2411 xbmc/interfaces/python/Makefile \
2412 xbmc/interfaces/python/test/Makefile"
2414 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2415 # .dummy.am does nothing.
2416 AC_CONFIG_FILES([.dummy])
2418 AC_CONFIG_FILES([${OUTPUT_FILES}])
2419 OUTPUT_FILES="$OUTPUT_FILES \
2425 AC_SUBST(SDL_DEFINES)
2426 AC_SUBST(BUILD_DVDCSS)
2427 AC_SUBST(DISABLE_GOOM)
2428 AC_SUBST(DISABLE_RSXS)
2429 AC_SUBST(DISABLE_FISHBMC)
2430 AC_SUBST(DISABLE_PROJECTM)
2431 AC_SUBST(USE_SKIN_TOUCHED)
2432 AC_SUBST(USE_EXTERNAL_FFMPEG)
2433 AC_SUBST(PYTHON_VERSION)
2434 AC_SUBST(OUTPUT_FILES)
2435 AC_SUBST(HAVE_XBMC_NONFREE)
2436 AC_SUBST(USE_ASAP_CODEC)
2437 AC_SUBST(LIBCURL_BASENAME)
2438 AC_SUBST(LIBFLAC_BASENAME)
2439 AC_SUBST(LIBVORBISFILE_BASENAME)
2440 AC_SUBST(LIBMODPLUG_BASENAME)
2441 AC_SUBST(LIBMAD_BASENAME)
2442 AC_SUBST(LIBOGG_BASENAME)
2443 AC_SUBST(LIBVORBISENC_BASENAME)
2444 AC_SUBST(LIBVORBIS_BASENAME)
2445 AC_SUBST(LIBASS_BASENAME)
2446 AC_SUBST(LIBMEPG2_BASENAME)
2447 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2448 AC_SUBST(USE_OPENGL)
2449 AC_SUBST(USE_OPENGLES)
2452 AC_SUBST(USE_CRYSTALHD)
2453 AC_SUBST(USE_LIBSMBCLIENT)
2454 AC_SUBST(USE_LIBNFS)
2455 AC_SUBST(USE_LIBAFPCLIENT)
2456 AC_SUBST(USE_AIRPLAY)
2458 AC_SUBST(USE_OPENMAX)
2460 AC_SUBST(USE_XRANDR)
2462 AC_SUBST(USE_TEXTUREPACKER)
2463 AC_SUBST(USE_TEXTUREPACKER_NATIVE)
2464 AC_SUBST(USE_TEXTUREPACKER_NATIVE_ROOT)
2465 AC_SUBST(USE_AIRTUNES)
2466 AC_SUBST(USE_LIBUDEV)
2467 AC_SUBST(USE_LIBUSB)
2468 AC_SUBST(USE_LIBCEC)
2470 AC_SUBST(USE_WEB_SERVER)
2472 AC_SUBST(USE_OMXLIB)
2473 AC_SUBST(USE_ANDROID)
2474 AC_SUBST(GTEST_CONFIGURED)
2475 AC_SUBST(USE_DOXYGEN)
2476 AC_SUBST(USE_PVR_ADDONS)
2478 # pushd and popd are not available in other shells besides bash, so implement
2479 # our own pushd/popd functions
2484 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2486 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2489 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2494 if [[ -n "$XB_DIRSTACK" ]]; then
2495 XB_DIRSTACK="${XB_DIRSTACK#* }"
2496 cd "${XB_DIRSTACK%% *}"
2499 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2503 # Function to run the configure scripts in our submodules
2504 # Consists of three paramaters, the path to the submodule, the configure command
2505 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2506 # running the script, anything else if not.
2507 AC_DEFUN([XB_CONFIG_MODULE],[
2508 AC_CONFIG_COMMANDS_POST([
2509 if [[ $3 != "1" ]]; then
2510 if [[ -d $1 ]]; then
2513 if [[ $? -ne 0 ]]; then
2515 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2520 AC_MSG_ERROR([[Submodule $1 does not exist]])
2523 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2528 XB_CONFIG_MODULE([lib/ffmpeg], [
2529 if test "$host_vendor" = "apple" ; then
2530 ffmpg_config="--target-os=$ffmpeg_target_os"
2531 # handle disables first, we do individual enables later
2532 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2533 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2534 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2535 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2536 ffmpg_config="$ffmpg_config --disable-vda --disable-crystalhd"
2537 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2539 # handle conditional enables/disables
2540 if test "$use_debug" = "no"; then
2541 ffmpg_config="$ffmpg_config --disable-debug"
2543 if test "$use_cpu" != "no"; then
2544 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2546 if test "$use_arch" != "no"; then
2547 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2549 if test "$use_arch" = "arm"; then
2550 ffmpg_config="$ffmpg_config --enable-pic"
2551 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2552 if test "$use_neon" = "yes"; then
2553 ffmpg_config="$ffmpg_config --enable-neon"
2555 ffmpg_config="$ffmpg_config --disable-neon"
2558 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2560 if test "$use_ffmpeg_libvorbis" = "yes"; then
2561 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2563 ffmpg_config="$ffmpg_config --disable-libvorbis"
2566 # handle individual enables
2567 ffmpg_config="$ffmpg_config --enable-gpl"
2568 ffmpg_config="$ffmpg_config --enable-postproc"
2569 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2570 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts"
2571 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac"
2572 ffmpg_config="$ffmpg_config --enable-protocol=http"
2573 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2575 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2578 ffmpg_config="$ffmpg_config --cc=clang" ;;
2580 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2583 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2584 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2586 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2588 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2589 # dependency files in the right place, replace it with something that works
2592 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2595 # ffmpeg will use yasm found at ${prefix}/bin during configure
2596 # but then hardcodes 'yasm' in config.mak, fix it.
2597 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2598 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2599 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2604 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2606 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2608 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2609 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2610 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2611 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2612 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2613 --target-os=$ffmpeg_target_os \
2615 --enable-muxer=spdif \
2616 --enable-muxer=adts \
2617 --disable-encoders \
2618 --enable-encoder=ac3 \
2619 --enable-encoder=aac \
2620 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2621 --disable-decoder=mpeg_xvmc \
2625 --disable-ffserver \
2627 --disable-crystalhd \
2632 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2633 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2634 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2635 --enable-protocol=http \
2637 --enable-runtime-cpudetect \
2638 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2639 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2640 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2641 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2642 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2644 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2645 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2647 ], [$USE_EXTERNAL_FFMPEG])
2649 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2654 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2655 --host=$host_alias \
2656 --build=$build_alias \
2657 --target=$target_alias \
2661 ], [$SKIP_CONFIG_DVDCSS])
2663 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2665 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src" \
2666 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2667 --host=$host_alias \
2668 --build=$build_alias \
2669 --target=$target_alias \
2675 $MAKE dvdread-config &&
2676 mkdir -p `pwd`/../includes/dvdread
2677 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2678 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2681 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2683 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
2684 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2685 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2686 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2687 --host=$host_alias \
2688 --build=$build_alias \
2689 --target=$target_alias \
2695 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2697 rm -f CMakeCache.txt && \
2698 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2699 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2700 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2701 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2702 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2703 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2704 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2705 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2706 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2707 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2708 if test "$host_vendor" = "apple" ; then
2709 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2710 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2711 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2712 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2715 ], [$DISABLE_PROJECTM])
2717 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2720 CXXFLAGS="$CXXFLAGS" \
2721 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2722 --host=$host_alias \
2723 --build=$build_alias \
2724 --target=$target_alias \
2730 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2731 if test "$host_vendor" = "apple"; then
2732 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";
2734 TEMPCFLAGS="$CFLAGS";
2739 CFLAGS="$TEMPCFLAGS" \
2740 CXXFLAGS="$CXXFLAGS" \
2741 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2742 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2743 --host=$host_alias \
2744 --build=$build_alias \
2745 --target=$target_alias \
2746 --without-xscreensaver \
2749 --disable-fieldlines \
2753 --disable-hyperspace \
2756 if echo "$ARCH" | grep -q freebsd ; then
2757 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2761 XB_CONFIG_MODULE([lib/cpluff], [
2762 ./configure --disable-nls \
2763 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2764 --host=$host_alias \
2765 --build=$build_alias \
2766 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2767 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2770 XB_CONFIG_MODULE([lib/gtest], [
2775 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2776 --host=$host_alias \
2777 --build=$build_alias \
2778 --target=$target_alias \
2782 ], [$SKIP_CONFIG_GTEST])
2784 XB_CONFIG_MODULE([pvr-addons], [
2785 if test "$USE_EXTERNAL_FFMPEG" = 1; then
2786 PVR_EXT_FFMPEG="--enable-external-ffmpeg"
2789 --prefix="${prefix}" \
2790 --host=$host_alias \
2791 --build=$build_alias \
2792 --target=$target_alias \
2797 CXXFLAGS="$CXXFLAGS"
2798 ], [$DISABLE_PVR_ADDON_CONFIG])
2802 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2803 echo -e "$final_message\n"