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. =="
144 libshairplay_not_found="== Could not find libshairplay. =="
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 # libshairplay for AirTunes (prefered lib)
1441 if test "x$use_airtunes" != "xno"; then
1442 AC_CHECK_HEADERS([shairplay/raop.h],,
1443 [if test "x$use_airtunes" = "xyes"; then
1444 AC_MSG_ERROR($libshairplay_not_found)
1445 elif test "x$use_airtunes" != "xno"; then
1446 AC_MSG_NOTICE($libshairplay_not_found)
1451 if test "x$use_airtunes" != "xno"; then
1452 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [use_airtunes])
1455 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1456 [[#include <shairplay/raop.h>]])
1457 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1460 #libshairport - as a fallback for AirTunes
1461 if test "x$USE_AIRTUNES" == "x0"; then
1462 AC_CHECK_HEADERS([shairport/shairport.h],,
1463 [if test "x$use_airtunes" = "xyes"; then
1464 AC_MSG_ERROR($libshairport_not_found)
1465 elif test "x$use_airtunes" != "xno"; then
1466 AC_MSG_NOTICE($libshairport_not_found)
1471 if test "x$use_airtunes" != "xno"; then
1472 XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
1474 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1475 [[#include <shairport/shairport.h>]])
1476 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1483 if test "$host_vendor" = "apple" ; then
1485 AC_MSG_NOTICE($libudev_disabled)
1487 if test "$use_libudev" = "auto"; then
1488 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1489 elif test "$use_libudev" = "yes" ; then
1490 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1492 AC_MSG_NOTICE($libudev_disabled)
1495 if test "x$use_libudev" != "xno"; then
1496 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1497 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1504 # if libudev is available, we don't need libusb
1505 if test "x$use_libudev" != "xno"; then
1507 AC_MSG_NOTICE($libusb_disabled_udev_found)
1509 if test "$host_vendor" = "apple" ; then
1511 AC_MSG_NOTICE($libusb_disabled)
1513 if echo "$ARCH" | grep -q freebsd ; then
1514 AC_CHECK_LIB([usb],[main],
1515 [use_libusb="yes";USB_LIBS="-lusb"],
1516 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1517 elif test "$use_libusb" = "auto"; then
1518 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1519 elif test "$use_libusb" = "yes"; then
1520 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1522 AC_MSG_NOTICE($libusb_disabled)
1525 if test "x$use_libusb" != "xno"; then
1526 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1527 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1534 if test "x$use_libcec" != "xno"; then
1535 # libcec is dyloaded, so we need to check for its headers and link any depends.
1536 if test "x$use_libcec" != "xno"; then
1537 if test "x$use_libcec" != "xauto"; then
1538 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1540 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1543 if test "x$use_libcec" != "xno"; then
1544 INCLUDES="$INCLUDES $CEC_CFLAGS"
1545 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1546 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1547 AC_MSG_NOTICE($libcec_enabled)
1550 AC_MSG_NOTICE($libcec_disabled)
1555 AC_MSG_NOTICE($libcec_disabled)
1559 if test "$use_libcap" != "no"; then
1560 AC_CHECK_HEADERS([sys/capability.h],,
1561 [if test "$use_libcap" = "yes"; then
1562 AC_MSG_ERROR($libcap_not_found)
1563 elif test "$use_libcap" != "no"; then
1564 AC_MSG_NOTICE($libcap_not_found)
1568 if test "$use_libcap" != "no"; then
1569 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1571 if test "$use_libcap" != "no"; then
1572 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1575 AC_MSG_NOTICE($libcap_disabled)
1578 ### External libraries checks
1581 if test "$use_external_ffmpeg" = "yes"; then
1582 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale"
1584 # libavcore is optional
1585 PKG_CHECK_EXISTS([libavcore], FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libavcore")
1587 # one of libswresample or libavresample is needed
1588 PKG_CHECK_EXISTS([libswresample], FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libswresample",
1589 [PKG_CHECK_EXISTS([libavresample],
1590 FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libavresample",
1591 AC_MSG_ERROR([You need either libswresample
1592 or libavresample.]))])
1594 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1595 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1596 AC_MSG_ERROR($missing_library))
1598 # Determine whether AVPacket and relevant functions are defined in libavformat
1600 AC_CHECK_LIB([avcodec], [av_free_packet],
1601 [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavcodec. ==)],
1602 [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavformat. ==)
1603 AC_DEFINE([AVPACKET_IN_AVFORMAT], [1], [Whether AVPacket is in libavformat.])])
1605 # in case the headers are in a custom directory
1606 SAVE_CPPFLAGS="$CPPFLAGS"
1607 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1609 # Possible places the ffmpeg headers may be
1610 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1611 [AC_CHECK_HEADERS([ffmpeg/avcodec.h ffmpeg/avfilter.h ffmpeg/avformat.h ffmpeg/avutil.h postproc/postprocess.h ffmpeg/swscale.h],,
1612 [AC_MSG_ERROR($missing_headers)])])
1615 AC_CHECK_HEADERS([libavcore/avcore.h libavcore/samplefmt.h libavutil/mem.h libavutil/samplefmt.h])
1617 # old FFmpeg have this in libavcodec/opt.h instead:
1618 AC_CHECK_HEADERS([libavutil/opt.h])
1620 # new FFmpeg have math headers
1621 AC_CHECK_HEADERS([libavutil/mathematics.h],,)
1623 # We'll support the use of rgb2rgb.h if it exists.
1624 AC_CHECK_HEADERS([libswscale/rgb2rgb.h],,)
1625 AC_CHECK_HEADERS([ffmpeg/rgb2rgb.h],,)
1627 # Check for libswresample or libavresample headers.
1628 AC_CHECK_HEADERS([libswresample/swresample.h libavresample/avresample.h])
1630 # Check if AVFilterBufferRefVideoProps AVRational member is named
1631 # 'pixel_aspect' or 'sample_aspect_ratio'.
1632 AC_CHECK_MEMBER([AVFilterBufferRefVideoProps.sample_aspect_ratio],
1633 [AC_DEFINE([HAVE_AVFILTERBUFFERREFVIDEOPROPS_SAMPLE_ASPECT_RATIO],
1635 [Define to 1 if AVFilterBufferRefVideoProps has member sample_aspect_ratio.])],
1636 [AC_CHECK_MEMBER([AVFilterBufferRefVideoProps.sample_aspect_ratio],
1637 [AC_DEFINE([HAVE_AVFILTERBUFFERREFVIDEOPROPS_SAMPLE_ASPECT_RATIO],
1639 [Define to 1 if AVFilterBufferRefVideoProps has member sample_aspect_ratio.])],
1641 [[#include <ffmpeg/avfilter.h>]])],
1642 [[#include <libavfilter/avfilter.h>]])
1644 AC_MSG_NOTICE($external_ffmpeg_enabled)
1645 USE_EXTERNAL_FFMPEG=1
1646 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1648 # Disable vdpau support if external libavcodec doesn't have it
1649 AC_CHECK_LIB([avcodec], [ff_vdpau_vc1_decode_picture],,
1650 [if test "x$use_vdpau" = "xyes"; then
1651 AC_MSG_ERROR($ffmpeg_vdpau_not_supported)
1654 AC_MSG_RESULT($ffmpeg_vdpau_not_supported)
1657 # Check for 'PIX_FMT_VDPAU_MPEG4' from libavutil
1658 if test "x$use_vdpau" != "xno"; then
1661 [AC_LANG_SOURCE([ #include <libavutil/pixfmt.h>
1662 int main() { PixelFormat format = PIX_FMT_VDPAU_MPEG4; }])],
1663 [AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1],
1664 [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])],)
1667 CPPFLAGS="$SAVE_CPPFLAGS"
1669 AC_MSG_NOTICE($external_ffmpeg_disabled)
1670 USE_EXTERNAL_FFMPEG=0
1671 AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1], [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])
1674 echo "Checking for SWIG installation"
1675 AC_PATH_PROG(SWIG_EXE, swig, "none")
1676 if test "$SWIG_EXE" = "none"; then
1677 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1678 if test "$SWIG20_EXE" != "none" ; then
1679 SWIG_EXE=$SWIG20_EXE
1682 if test "$SWIG_EXE" = "none"; then
1683 AC_MSG_ERROR($missing_program)
1685 final_message="$final_message\n SWIG Available:\tYes"
1687 echo "Checking for a jre installation"
1688 AC_PATH_PROG(JAVA_EXE, java, "none")
1689 if test "$JAVA_EXE" = "none"; then
1690 AC_MSG_ERROR($missing_program)
1692 final_message="$final_message\n JRE Available:\tYes"
1694 echo "Checking for doxygen installation"
1695 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1696 if test "$DOXYGEN_EXE" = "none"; then
1697 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1698 final_message="$final_message\n Doxygen Available:\tNo"
1701 final_message="$final_message\n Doxygen Available:\tYes"
1706 if test "x$use_vdpau" != "xno"; then
1707 if test "$host_vendor" = "apple" ; then
1708 if test "x$use_vdpau" = "xyes"; then
1709 AC_MSG_ERROR([VDPAU not supported on this platform])
1712 AC_MSG_NOTICE($vdpau_disabled)
1717 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1718 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1719 [if test "x$use_vdpau" = "xyes"; then
1721 AC_MSG_ERROR([$vdpau_not_found])
1725 AC_MSG_RESULT($vdpau_not_found)
1730 AC_MSG_NOTICE($vdpau_disabled)
1734 if test "x$use_vaapi" != "xno"; then
1735 if test "$host_vendor" = "apple" ; then
1736 if test "x$use_vaapi" = "xyes"; then
1737 AC_MSG_ERROR([VAAPI not supported on this platform])
1740 AC_MSG_NOTICE($vaapi_disabled)
1744 initial_val=$use_vaapi
1745 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1746 if test "x$use_vaapi" != "xno"; then
1747 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1750 if test "x$use_vaapi" = "xno"; then
1751 if test "x$initial_val" = "xyes"; then
1752 AC_MSG_ERROR($vaapi_not_found)
1754 AC_MSG_RESULT($vaapi_not_found)
1758 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1763 AC_MSG_NOTICE($vaapi_disabled)
1768 if test "x$use_crystalhd" != "xno"; then
1769 SAVE_CFLAGS="$CFLAGS"
1770 CFLAGS="-D__LINUX_USER__"
1771 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1772 [ if test "x$use_crystalhd" = "xyes"; then
1773 AC_MSG_ERROR($crystalhd_not_found)
1776 AC_MSG_RESULT($crystalhd_not_found)
1780 CFLAGS="$SAVE_CFLAGS"
1781 if test "$host_vendor" != "apple"; then
1782 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1784 if test "x$use_crystalhd" != "xno"; then
1785 SAVE_CFLAGS="$CFLAGS"
1786 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1787 # check for new crystalhd lib
1789 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1790 #include <libcrystalhd/bc_dts_defs.h>
1791 PBC_INFO_CRYSTAL bCrystalInfo;])],
1792 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1793 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1794 CFLAGS="$SAVE_CFLAGS"
1798 AC_MSG_NOTICE($crystalhd_disabled)
1803 if test "x$use_vdadecoder" != "xno"; then
1804 if test "$host_vendor" = "apple" ; then
1805 HAVE_LIBVDADECODER=1
1806 AC_DEFINE([HAVE_LIBVDADECODER], [1], [Define to 1 if you have the 'VDADecoder' library.])
1807 AC_MSG_NOTICE($vdadecoder_enabled)
1810 if test "x$use_vdadecoder" = "xyes"; then
1811 AC_MSG_ERROR([VDA Decoder not supported on this platform])
1814 AC_MSG_NOTICE($vdadecoder_disabled)
1819 AC_MSG_NOTICE($vdadecoder_disabled)
1823 if test "x$use_vtbdecoder" != "xno"; then
1824 if test "$host_vendor" = "apple" ; then
1825 HAVE_VIDEOTOOLBOXDECODER=1
1826 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1827 AC_MSG_NOTICE($vtbdecoder_enabled)
1829 if test "x$use_vtbdecoder" = "xyes"; then
1830 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1833 AC_MSG_NOTICE($vtbdecoder_disabled)
1837 AC_MSG_NOTICE($vtbdecoder_disabled)
1841 if test "$host_vendor" = "apple" ; then
1844 AC_MSG_NOTICE($openmax_disabled)
1845 elif test "$target_platform" = "target_raspberry_pi"; then
1848 AC_MSG_NOTICE($openmax_disabled)
1850 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1851 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1852 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1853 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1854 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1855 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1856 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1857 AC_MSG_ERROR($openmax_not_found))
1859 AC_MSG_NOTICE($openmax_disabled)
1865 # yajl version check (yajl_version.h was added in yajl 2.0)
1866 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1867 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1870 # additional internal players
1871 case $add_players in
1873 AC_CHECK_HEADER([amlplayer/amports/amstream.h],, AC_MSG_ERROR($missing_headers))
1874 XB_ADD_PLAYER([AMLPLAYER], [amlplayer])
1877 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1881 # platform specific bin utilities
1882 if test "$build_vendor" != "apple" ; then
1883 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1884 if test "$HAVE_GAWK" = "no" ; then
1885 AC_MSG_ERROR($missing_program)
1889 if test "$use_arch" != "arm" ; then
1890 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1891 if test "$HAVE_CMAKE" = "no" ; then
1892 AC_MSG_ERROR($missing_program)
1896 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1897 if test "$HAVE_GPERF" = "no" ; then
1898 AC_MSG_ERROR($missing_program)
1901 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1902 if test "$HAVE_UNZIP" = "no" ; then
1903 AC_MSG_ERROR($missing_program)
1906 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
1907 if test "$HAVE_ZIP" = "no" ; then
1908 AC_MSG_ERROR($missing_program)
1911 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
1912 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
1913 if test "$HAVE_NASM" = "no" ; then
1914 AC_MSG_ERROR($missing_program)
1918 # Checks for header files.
1922 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
1923 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
1924 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
1925 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
1926 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
1928 # Checks for typedefs, structures, and compiler characteristics.
1944 AC_CHECK_MEMBERS([struct stat.st_rdev])
1953 if test "$cross_compiling" = "yes"; then
1954 final_message="$final_message\n Crosscomp.:\tYes"
1956 final_message="$final_message\n Crosscomp.:\tNo"
1959 final_message="$final_message\n target ARCH:\t$use_arch"
1960 final_message="$final_message\n target CPU:\t$use_cpu"
1962 if test "$use_gles" = "yes"; then
1963 final_message="$final_message\n OpenGLES:\tYes"
1968 if test "$use_gl" = "yes"; then
1969 final_message="$final_message\n OpenGL:\tYes"
1972 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
1973 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
1978 if test "$use_alsa" = "yes"; then
1980 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
1981 final_message="$final_message\n ALSA:\t\tYes"
1984 final_message="$final_message\n ALSA:\t\tNo"
1987 if test "$use_dbus" = "yes"; then
1988 final_message="$final_message\n DBUS:\t\tYes"
1990 final_message="$final_message\n DBUS:\t\tNo"
1993 if test "x$use_vdpau" != "xno"; then
1994 final_message="$final_message\n VDPAU:\tYes"
1996 final_message="$final_message\n VDPAU:\tNo"
1999 if test "x$use_vaapi" != "xno"; then
2000 final_message="$final_message\n VAAPI:\tYes"
2002 final_message="$final_message\n VAAPI:\tNo"
2005 if test "x$use_crystalhd" != "xno"; then
2006 final_message="$final_message\n CrystalHD:\tYes"
2008 final_message="$final_message\n CrystalHD:\tNo"
2011 if test "x$use_vdadecoder" != "xno"; then
2012 final_message="$final_message\n VDADecoder:\tYes"
2014 final_message="$final_message\n VDADecoder:\tNo"
2017 if test "x$use_vtbdecoder" != "xno"; then
2018 final_message="$final_message\n VTBDecoder:\tYes"
2020 final_message="$final_message\n VTBDecoder:\tNo"
2023 if test "$use_openmax" != "no"; then
2024 final_message="$final_message\n OpenMax:\tYes"
2026 final_message="$final_message\n OpenMax:\tNo"
2029 if test "$use_joystick" = "yes"; then
2030 final_message="$final_message\n Joystick:\tYes"
2031 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2033 final_message="$final_message\n Joystick:\tNo"
2036 if test "$use_xrandr" = "yes"; then
2037 final_message="$final_message\n XRandR:\tYes"
2040 final_message="$final_message\n XRandR:\tNo"
2044 if test "$use_goom" = "yes"; then
2045 final_message="$final_message\n GOOM:\t\tYes"
2047 final_message="$final_message\n GOOM:\t\tNo"
2050 if test "$use_rsxs" = "yes"; then
2051 final_message="$final_message\n RSXS:\t\tYes"
2053 final_message="$final_message\n RSXS:\t\tNo"
2056 if test "$use_fishbmc" = "yes"; then
2057 final_message="$final_message\n FishBMC:\tYes"
2059 final_message="$final_message\n FishBMC:\tNo"
2062 if test "$use_projectm" = "yes"; then
2063 final_message="$final_message\n ProjectM:\tYes"
2065 final_message="$final_message\n ProjectM:\tNo"
2068 if test "$use_skin_touched" = "yes"; then
2069 final_message="$final_message\n Skin Touched:\tYes"
2071 final_message="$final_message\n Skin Touched:\tNo"
2074 if test "$use_x11" = "yes"; then
2075 final_message="$final_message\n X11:\t\tYes"
2077 final_message="$final_message\n X11:\t\tNo"
2080 if test "$use_libbluray" = "yes"; then
2081 final_message="$final_message\n Bluray:\tYes"
2083 final_message="$final_message\n Bluray:\tNo"
2086 USE_TEXTUREPACKER_NATIVE=0
2087 if test "x$use_texturepacker" != "xno"; then
2088 final_message="$final_message\n TexturePacker:Yes"
2090 if test "x$use_texturepacker_native" = "xyes"; then
2091 USE_TEXTUREPACKER_NATIVE=1
2092 if [[ ! -d "$USE_TEXTUREPACKER_NATIVE_ROOT" ]]; then
2093 USE_TEXTUREPACKER_NATIVE_ROOT=
2097 final_message="$final_message\n TexturePacker:No"
2101 if test "$use_mid" = "yes"; then
2102 final_message="$final_message\n MID Support:\tYes"
2103 SDL_DEFINES="$SDL_DEFINES -DMID"
2105 final_message="$final_message\n MID Support:\tNo"
2110 if test "x$use_ccache" != "xno"; then
2111 AC_PATH_PROG(CCACHE,ccache,none)
2112 if test "$ac_cv_path_CCACHE" = "none"; then
2113 if test "x$use_ccache" = "xyes"; then
2114 AC_MSG_ERROR([ccache not found.]);
2116 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2117 final_message="$final_message\n ccache:\tNo"
2120 CC="$ac_cv_path_CCACHE $CC"
2121 CXX="$ac_cv_path_CCACHE $CXX"
2122 AC_MSG_NOTICE(enabling ccache)
2123 final_message="$final_message\n ccache:\tYes"
2126 final_message="$final_message\n ccache:\tNo"
2129 if test "$use_alsa" = "yes"; then
2130 final_message="$final_message\n ALSA Support:\tYes"
2132 final_message="$final_message\n ALSA Support:\tNo"
2135 if test "x$use_pulse" != "xno"; then
2136 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2137 final_message="$final_message\n PulseAudio:\tYes"
2139 XBMC_STANDALONE_SH_PULSE=/dev/null
2140 final_message="$final_message\n PulseAudio:\tNo"
2143 if test "$use_hal" = "yes"; then
2144 final_message="$final_message\n HAL Support:\tYes"
2146 final_message="$final_message\n HAL Support:\tNo"
2150 if test "$use_dvdcss" = "yes"; then
2151 AC_MSG_NOTICE($dvdcss_enabled)
2152 final_message="$final_message\n DVDCSS:\tYes"
2154 SKIP_CONFIG_DVDCSS=0
2155 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2157 AC_MSG_NOTICE($dvdcss_disabled)
2158 final_message="$final_message\n DVDCSS:\tNo"
2160 SKIP_CONFIG_DVDCSS=1
2161 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2163 if test "$host_vendor" = "apple"; then
2164 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2167 # Google Test Framework
2168 if test "$configure_gtest" = "yes"; then
2169 AC_MSG_NOTICE($gtest_enabled)
2170 final_message="$final_message\n Google Test Framework Configured:\tYes"
2174 AC_MSG_NOTICE($gtest_disabled)
2175 final_message="$final_message\n Google Test Framework Configured:\tNo"
2180 if test "$use_avahi" = "yes"; then
2181 final_message="$final_message\n Avahi:\tYes"
2183 final_message="$final_message\n Avahi:\tNo"
2186 if test "$use_nonfree" = "yes"; then
2187 final_message="$final_message\n Non-free:\tYes"
2189 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2192 final_message="$final_message\n Non-free:\tNo"
2195 if test "$use_asap" = "yes"; then
2196 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2197 if test "$HAVE_GDC" = "no"; then
2198 AC_MSG_ERROR($missing_program);
2200 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2201 if test "$HAVE_FPC" = "no"; then
2202 AC_MSG_ERROR($missing_program);
2205 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2206 final_message="$final_message\n ASAP Codec:\tYes"
2209 final_message="$final_message\n ASAP Codec:\tNo"
2212 if test "$use_mysql" = "yes"; then
2213 final_message="$final_message\n MySQL:\tYes"
2216 final_message="$final_message\n MySQL:\tNo"
2219 if test "$use_webserver" = "yes"; then
2220 final_message="$final_message\n Webserver:\tYes"
2223 final_message="$final_message\n Webserver:\tNo"
2227 if test "$use_libssh" != "no"; then
2228 final_message="$final_message\n libssh support:\tYes"
2230 final_message="$final_message\n libssh support:\tNo"
2233 if test "$use_librtmp" != "no"; then
2234 final_message="$final_message\n libRTMP support:\tYes"
2236 final_message="$final_message\n libRTMP support:\tNo"
2239 if test "x$use_samba" != "xno"; then
2240 final_message="$final_message\n libsmbclient support:\tYes"
2242 final_message="$final_message\n libsmbclient support:\tNo"
2245 if test "$use_libnfs" != "no"; then
2246 final_message="$final_message\n libnfs client support:Yes"
2248 final_message="$final_message\n libnfs client support:No"
2251 if test "x$use_libafpclient" != "xno"; then
2252 final_message="$final_message\n libafpclient support:\tYes"
2254 final_message="$final_message\n libafpclient support:\tNo"
2257 if test "$use_airplay" != "no"; then
2258 final_message="$final_message\n AirPlay support:\tYes"
2260 final_message="$final_message\n AirPLay support:\tNo"
2263 if test "x$use_airtunes" != "xno"; then
2264 if test "x$USE_LIBSHAIRPORT" == "x1"; then
2265 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2267 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2270 final_message="$final_message\n AirTunes support:\tNo"
2273 if test "x$use_upnp" != "xno"; then
2274 final_message="$final_message\n UPnP support:\t\tYes"
2276 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2279 final_message="$final_message\n UPnP support:\t\tNo"
2282 if test "$use_optical_drive" = "yes"; then
2283 final_message="$final_message\n Optical drive:\tYes"
2285 final_message="$final_message\n Optical drive:\tNo"
2288 if test "x$use_libudev" != "xno"; then
2289 final_message="$final_message\n libudev support:\tYes"
2291 final_message="$final_message\n libudev support:\tNo"
2294 if test "x$use_libusb" != "xno"; then
2295 final_message="$final_message\n libusb support:\tYes"
2297 final_message="$final_message\n libusb support:\tNo"
2300 if test "x$use_libcec" != "xno"; then
2301 final_message="$final_message\n libcec support:\tYes"
2303 final_message="$final_message\n libcec support:\tNo"
2306 if test "x$use_libmp3lame" != "xno"; then
2307 final_message="$final_message\n libmp3lame support:\tYes"
2309 final_message="$final_message\n libmp3lame support:\tNo"
2312 if test "x$use_libvorbisenc" != "xno"; then
2313 final_message="$final_message\n libvorbisenc support:\tYes"
2315 final_message="$final_message\n libvorbisenc support:\tNo"
2318 if test "x$use_libcap" != "xno"; then
2319 final_message="$final_message\n libcap support:\tYes"
2321 final_message="$final_message\n libcap support:\tNo"
2324 if test "x$add_players" != "xno"; then
2325 final_message="$final_message\n additional players:\tYes"
2327 final_message="$final_message\n additional players:\tNo"
2330 ### External libraries messages
2332 if test "$use_external_ffmpeg" = "yes"; then
2333 final_message="$final_message\n External FFmpeg:\tYes"
2335 final_message="$final_message\n External FFmpeg:\tNo"
2338 if test "$host_vendor" = "apple" ; then
2339 # built internal but referenced as external, we link directly to them.
2340 # this MUST be the last thing before OUTPUT_FILES as they do not
2341 # exist until after we build FFMpeg.
2342 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2343 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2344 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2345 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2346 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2347 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2348 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2352 DISABLE_PVR_ADDON_CONFIG=1
2353 if [[ -f "pvr-addons/Makefile.am" ]]; then
2354 final_message="$final_message\n PVR add-ons:\t\tYes"
2356 DISABLE_PVR_ADDON_CONFIG=0
2358 final_message="$final_message\n PVR add-ons:\t\tNo"
2361 OUTPUT_FILES="Makefile \
2363 addons/skin.confluence/media/Makefile \
2365 xbmc/cdrip/Makefile \
2366 xbmc/cores/Makefile \
2367 xbmc/cores/VideoRenderers/Makefile \
2368 xbmc/cores/dvdplayer/Makefile \
2370 lib/libdvd/Makefile \
2371 xbmc/cores/DllLoader/Makefile \
2372 xbmc/cores/DllLoader/exports/Makefile \
2373 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2374 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2375 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2376 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2377 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2378 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2379 xbmc/cores/AudioEngine/Makefile \
2380 xbmc/cores/paplayer/Makefile \
2381 xbmc/cores/amlplayer/Makefile \
2382 xbmc/cores/omxplayer/Makefile \
2383 lib/timidity/Makefile \
2384 lib/xbadpcm/Makefile \
2386 lib/nosefart/Makefile \
2387 lib/libsidplay2/Makefile \
2388 lib/vgmstream/Makefile \
2389 lib/snesapu/SNES/SNESAPU/Makefile \
2390 lib/stsound/StSoundLibrary/Makefile \
2391 xbmc/cores/playercorefactory/Makefile \
2392 xbmc/music/karaoke/Makefile \
2394 xbmc/guilib/Makefile \
2395 xbmc/interfaces/Makefile \
2396 xbmc/network/Makefile \
2397 xbmc/network/upnp/Makefile \
2398 lib/libRTV/Makefile \
2399 lib/libexif/Makefile \
2400 lib/libXDAAP/Makefile \
2401 lib/cmyth/Makefile \
2402 lib/libhdhomerun/Makefile \
2403 lib/libsquish/Makefile \
2404 lib/cximage-6.0/Makefile \
2405 lib/libUPnP/Makefile \
2406 xbmc/DllPaths_generated.h \
2407 xbmc/DllPaths_generated_android.h \
2408 xbmc/freebsd/Makefile \
2409 xbmc/linux/Makefile \
2410 xbmc/filesystem/Makefile \
2411 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2412 xbmc/visualizations/XBMCProjectM/Makefile \
2413 xbmc/visualizations/Goom/Makefile \
2414 xbmc/visualizations/OpenGLSpectrum/Makefile \
2415 xbmc/visualizations/fishBMC/Makefile \
2416 xbmc/visualizations/WaveForm/Makefile \
2417 lib/addons/library.xbmc.addon/Makefile \
2418 lib/addons/library.xbmc.gui/Makefile \
2419 lib/addons/library.xbmc.pvr/Makefile \
2420 xbmc/visualizations/EGLHelpers/Makefile \
2421 tools/Linux/xbmc.sh \
2422 tools/Linux/xbmc-standalone.sh \
2423 tools/TexturePacker/Makefile \
2424 tools/EventClients/Clients/OSXRemote/Makefile \
2425 xbmc/peripherals/bus/Makefile \
2426 xbmc/peripherals/devices/Makefile \
2427 xbmc/android/activity/Makefile \
2428 xbmc/android/loader/Makefile \
2431 if test "$use_skin_touched" = "yes"; then
2432 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2435 OUTPUT_FILES="$OUTPUT_FILES \
2436 xbmc/interfaces/python/Makefile \
2437 xbmc/interfaces/python/test/Makefile"
2439 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2440 # .dummy.am does nothing.
2441 AC_CONFIG_FILES([.dummy])
2443 AC_CONFIG_FILES([${OUTPUT_FILES}])
2444 OUTPUT_FILES="$OUTPUT_FILES \
2450 AC_SUBST(SDL_DEFINES)
2451 AC_SUBST(BUILD_DVDCSS)
2452 AC_SUBST(DISABLE_GOOM)
2453 AC_SUBST(DISABLE_RSXS)
2454 AC_SUBST(DISABLE_FISHBMC)
2455 AC_SUBST(DISABLE_PROJECTM)
2456 AC_SUBST(USE_SKIN_TOUCHED)
2457 AC_SUBST(USE_EXTERNAL_FFMPEG)
2458 AC_SUBST(PYTHON_VERSION)
2459 AC_SUBST(OUTPUT_FILES)
2460 AC_SUBST(HAVE_XBMC_NONFREE)
2461 AC_SUBST(USE_ASAP_CODEC)
2462 AC_SUBST(LIBCURL_BASENAME)
2463 AC_SUBST(LIBFLAC_BASENAME)
2464 AC_SUBST(LIBVORBISFILE_BASENAME)
2465 AC_SUBST(LIBMODPLUG_BASENAME)
2466 AC_SUBST(LIBMAD_BASENAME)
2467 AC_SUBST(LIBOGG_BASENAME)
2468 AC_SUBST(LIBVORBISENC_BASENAME)
2469 AC_SUBST(LIBVORBIS_BASENAME)
2470 AC_SUBST(LIBASS_BASENAME)
2471 AC_SUBST(LIBMEPG2_BASENAME)
2472 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2473 AC_SUBST(USE_OPENGL)
2474 AC_SUBST(USE_OPENGLES)
2477 AC_SUBST(USE_CRYSTALHD)
2478 AC_SUBST(USE_LIBSMBCLIENT)
2479 AC_SUBST(USE_LIBNFS)
2480 AC_SUBST(USE_LIBAFPCLIENT)
2481 AC_SUBST(USE_AIRPLAY)
2483 AC_SUBST(USE_OPENMAX)
2485 AC_SUBST(USE_XRANDR)
2487 AC_SUBST(USE_TEXTUREPACKER)
2488 AC_SUBST(USE_TEXTUREPACKER_NATIVE)
2489 AC_SUBST(USE_TEXTUREPACKER_NATIVE_ROOT)
2490 AC_SUBST(USE_AIRTUNES)
2491 AC_SUBST(USE_LIBUDEV)
2492 AC_SUBST(USE_LIBUSB)
2493 AC_SUBST(USE_LIBCEC)
2495 AC_SUBST(USE_WEB_SERVER)
2497 AC_SUBST(USE_OMXLIB)
2498 AC_SUBST(USE_ANDROID)
2499 AC_SUBST(GTEST_CONFIGURED)
2500 AC_SUBST(USE_DOXYGEN)
2501 AC_SUBST(USE_PVR_ADDONS)
2503 # pushd and popd are not available in other shells besides bash, so implement
2504 # our own pushd/popd functions
2509 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2511 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2514 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2519 if [[ -n "$XB_DIRSTACK" ]]; then
2520 XB_DIRSTACK="${XB_DIRSTACK#* }"
2521 cd "${XB_DIRSTACK%% *}"
2524 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2528 # Function to run the configure scripts in our submodules
2529 # Consists of three paramaters, the path to the submodule, the configure command
2530 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2531 # running the script, anything else if not.
2532 AC_DEFUN([XB_CONFIG_MODULE],[
2533 AC_CONFIG_COMMANDS_POST([
2534 if [[ $3 != "1" ]]; then
2535 if [[ -d $1 ]]; then
2538 if [[ $? -ne 0 ]]; then
2540 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2545 AC_MSG_ERROR([[Submodule $1 does not exist]])
2548 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2553 XB_CONFIG_MODULE([lib/ffmpeg], [
2554 if test "$host_vendor" = "apple" ; then
2555 ffmpg_config="--target-os=$ffmpeg_target_os"
2556 # handle disables first, we do individual enables later
2557 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2558 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2559 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2560 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2561 ffmpg_config="$ffmpg_config --disable-vda --disable-crystalhd"
2562 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2564 # handle conditional enables/disables
2565 if test "$use_debug" = "no"; then
2566 ffmpg_config="$ffmpg_config --disable-debug"
2568 if test "$use_cpu" != "no"; then
2569 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2571 if test "$use_arch" != "no"; then
2572 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2574 if test "$use_arch" = "arm"; then
2575 ffmpg_config="$ffmpg_config --enable-pic"
2576 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2577 if test "$use_neon" = "yes"; then
2578 ffmpg_config="$ffmpg_config --enable-neon"
2580 ffmpg_config="$ffmpg_config --disable-neon"
2583 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2585 if test "$use_ffmpeg_libvorbis" = "yes"; then
2586 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2588 ffmpg_config="$ffmpg_config --disable-libvorbis"
2591 # handle individual enables
2592 ffmpg_config="$ffmpg_config --enable-gpl"
2593 ffmpg_config="$ffmpg_config --enable-postproc"
2594 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2595 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts"
2596 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac"
2597 ffmpg_config="$ffmpg_config --enable-protocol=http"
2598 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2600 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2603 ffmpg_config="$ffmpg_config --cc=clang" ;;
2605 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2608 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2609 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2611 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2613 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2614 # dependency files in the right place, replace it with something that works
2617 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2620 # ffmpeg will use yasm found at ${prefix}/bin during configure
2621 # but then hardcodes 'yasm' in config.mak, fix it.
2622 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2623 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2624 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2629 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2631 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2633 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2634 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2635 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2636 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2637 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2638 --target-os=$ffmpeg_target_os \
2640 --enable-muxer=spdif \
2641 --enable-muxer=adts \
2642 --disable-encoders \
2643 --enable-encoder=ac3 \
2644 --enable-encoder=aac \
2645 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2646 --disable-decoder=mpeg_xvmc \
2650 --disable-ffserver \
2652 --disable-crystalhd \
2657 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2658 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2659 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2660 --enable-protocol=http \
2662 --enable-runtime-cpudetect \
2663 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2664 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2665 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2666 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2667 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2669 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2670 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2672 ], [$USE_EXTERNAL_FFMPEG])
2674 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2679 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2680 --host=$host_alias \
2681 --build=$build_alias \
2682 --target=$target_alias \
2686 ], [$SKIP_CONFIG_DVDCSS])
2688 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2690 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src" \
2691 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2692 --host=$host_alias \
2693 --build=$build_alias \
2694 --target=$target_alias \
2700 $MAKE dvdread-config &&
2701 mkdir -p `pwd`/../includes/dvdread
2702 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2703 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2706 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2708 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
2709 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2710 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2711 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2712 --host=$host_alias \
2713 --build=$build_alias \
2714 --target=$target_alias \
2720 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2722 rm -f CMakeCache.txt && \
2723 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2724 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2725 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2726 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2727 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2728 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2729 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2730 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2731 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2732 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2733 if test "$host_vendor" = "apple" ; then
2734 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2735 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2736 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2737 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2740 ], [$DISABLE_PROJECTM])
2742 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2745 CXXFLAGS="$CXXFLAGS" \
2746 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2747 --host=$host_alias \
2748 --build=$build_alias \
2749 --target=$target_alias \
2755 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2756 if test "$host_vendor" = "apple"; then
2757 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";
2759 TEMPCFLAGS="$CFLAGS";
2764 CFLAGS="$TEMPCFLAGS" \
2765 CXXFLAGS="$CXXFLAGS" \
2766 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2767 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2768 --host=$host_alias \
2769 --build=$build_alias \
2770 --target=$target_alias \
2771 --without-xscreensaver \
2774 --disable-fieldlines \
2778 --disable-hyperspace \
2781 if echo "$ARCH" | grep -q freebsd ; then
2782 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2786 XB_CONFIG_MODULE([lib/cpluff], [
2787 ./configure --disable-nls \
2788 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2789 --host=$host_alias \
2790 --build=$build_alias \
2791 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2792 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2795 XB_CONFIG_MODULE([lib/gtest], [
2800 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2801 --host=$host_alias \
2802 --build=$build_alias \
2803 --target=$target_alias \
2807 ], [$SKIP_CONFIG_GTEST])
2809 XB_CONFIG_MODULE([pvr-addons], [
2810 if test "$USE_EXTERNAL_FFMPEG" = 1; then
2811 PVR_EXT_FFMPEG="--enable-external-ffmpeg"
2814 --prefix="${prefix}" \
2815 --host=$host_alias \
2816 --build=$build_alias \
2817 --target=$target_alias \
2822 CXXFLAGS="$CXXFLAGS"
2823 ], [$DISABLE_PVR_ADDON_CONFIG])
2827 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2828 echo -e "$final_message\n"