2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [13.9.701], [http://issues.xbmc.org])
6 AC_CONFIG_HEADERS([xbmc/config.h])
8 m4_include([m4/ax_prog_cc_for_build.m4])
9 m4_include([m4/ax_prog_cxx_for_build.m4])
10 m4_include([m4/ax_python_devel.m4])
11 m4_include([m4/xbmc_arch.m4])
13 AC_CONFIG_AUX_DIR([build-aux])
14 AM_INIT_AUTOMAKE([foreign])
18 echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
21 # workaround for autotools that don't set this
22 abs_top_srcdir=${abs_top_srcdir=$(cd $srcdir; pwd)}
24 # check for enabling additional players
25 AC_DEFUN([XB_ADD_PLAYER],
27 AC_MSG_CHECKING([for $2])
31 AC_DEFINE([HAS_$1], 1, [using $2])
32 AC_MSG_RESULT([enabling $2])
35 AC_MSG_RESULT([$2 is not enabled])
39 # check for enabling additional codecs
40 AC_DEFUN([XB_ADD_CODEC],
42 AC_MSG_CHECKING([for $2])
47 AC_DEFINE([HAS_$1], 1, [using $2])
48 AC_MSG_RESULT([enabling $2])
51 AC_MSG_RESULT([$2 is not enabled])
55 # check for library basenames
56 AC_DEFUN([XB_FIND_SONAME],
58 if echo "$host" | grep -q freebsd ; then
59 AC_MSG_CHECKING([for lib$2 soname])
60 $1_SONAME=[`ldconfig -r | sed -n "s;.* \(/.*lib$2\.so.*\)$;\1;p" | head -n 1`]
61 if test x$$1_SONAME != x ; then
62 $1_SONAME=[`basename $$1_SONAME`]
64 elif [[ "$host_vendor" != "apple" ]]; then
65 AC_MSG_CHECKING([for lib$2 soname])
66 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
67 if [[ -z $$1_FILENAME ]]; then
68 #try gold linker syntax
69 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "lib$2")
71 if [[ ! -z $$1_FILENAME ]]; then
72 $1_SONAME=$($OBJDUMP -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}')
75 AC_MSG_CHECKING([for lib$2 dylib])
76 gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
77 env_lib_path=[`echo $LDFLAGS | sed 's/-L[ ]*//g'`]
78 if test "$cross_compiling" = yes; then
81 host_lib_path="/usr/lib /usr/local/lib"
83 for path in $gcc_lib_path $env_lib_path $host_lib_path; do
84 lib=[`ls -- $path/lib$2.dylib 2>/dev/null`]
85 if test x$lib != x; then
86 # we want the path/name that is embedded in the dylib
87 $1_SONAME=[`otool -L $lib | grep -v lib$2.dylib | grep lib$2 | awk '{V=1; print $V}'`]
88 $1_SONAME=[`basename $$1_SONAME`]
92 if [[ -z "$$1_SONAME" ]]; then
94 if test -z "$3" || test "x${$3}" = "xyes"; then
95 AC_MSG_ERROR([Unable to determine soname of lib$2 library])
97 AC_MSG_WARN([Unable to determine soname of lib$2 library])
99 AC_MSG_WARN([lib$2 support disabled])
102 AC_MSG_RESULT([$$1_SONAME])
107 # Function to push and pop libs and includes for a command
108 AC_DEFUN([XB_PUSH_FLAGS], [
110 SAVE_INCLUDES="$INCLUDES"
115 INCLUDES="$SAVE_INCLUDES"
118 # General message strings
119 configure_debug="ERROR: this is a configure debug statement"
120 missing_library="Could not find a required library. Please see the README for your platform."
121 missing_headers="Could not find some required headers. Please see the README for your platform."
122 missing_program="Could not find a required program. Please see the README for your platform."
123 xrandr_not_found="== Could not find libXRandR. SDL will be used for resolution support. =="
124 xrandr_disabled="== XRandR support disabled. SDL will be used for resolution support. =="
125 waveform_enabled="== WAVEFORM enabled =="
126 waveform_disabled="== WAVEFORM disabled =="
127 spectrum_enabled="== SPECTRUM enabled =="
128 spectrum_disabled="== SPECTRUM disabled =="
129 goom_enabled="== GOOM enabled. =="
130 goom_disabled="== GOOM disabled. =="
131 alsa_disabled="== ALSA support disabled. =="
132 rsxs_enabled="== RSXS enabled. =="
133 rsxs_disabled="== RSXS disabled. =="
134 fishbmc_enabled="== FishBMC enabled. =="
135 fishbmc_disabled="== FishBMC disabled. =="
136 projectm_enabled="== ProjectM enabled. =="
137 projectm_disabled="== ProjectM disabled. =="
138 wayland_enabled="== Wayland enabled. =="
139 wayland_disabled="== Wayland disabled. =="
140 x11_enabled="== X11 enabled. =="
141 x11_disabled="== X11 disabled. =="
142 pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
143 pulse_disabled="== PulseAudio support disabled. =="
144 dvdcss_enabled="== DVDCSS support enabled. =="
145 dvdcss_disabled="== DVDCSS support disabled. =="
146 hal_not_found="== Could not find hal. HAL support disabled. =="
147 halstorage_not_found="== Could not find hal-storage. HAL support disabled. =="
148 hal_disabled="== HAL support disabled. =="
149 avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
150 avahi_disabled="== Avahi support disabled. =="
151 mdnsembedded_not_found="== Could not find mDNSEmbedded. Might prevent zeroconf support. =="
152 mdnsembedded_disabled="== mDNSEmbedded support disabled. =="
153 vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
154 vdpau_disabled="== VDPAU support manually disabled. =="
155 vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
156 vaapi_disabled="== VAAPI support manually disabled. =="
157 crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
158 crystalhd_disabled="== CrystalHD support manually disabled. =="
159 vtbdecoder_enabled="== VTBDecoder support enabled. =="
160 vtbdecoder_disabled="== VTBDecoder support manually disabled. =="
161 openmax_disabled="== OpenMax support manually disabled. =="
162 openmax_not_found="== Could not find libnvomx. OpenMax support disabled. =="
163 ssh_not_found="== Could not find libssh. =="
164 ssh_disabled="== SSH SFTP disabled. =="
165 librtmp_not_found="== Could not find libRTMP. RTMP support disabled. =="
166 librtmp_disabled="== RTMP support disabled. =="
167 libnfs_not_found="== Could not find libnfs. NFS client support disabled. =="
168 libnfs_disabled="== NFS support disabled. =="
169 libafpclient_not_found="== Could not find libafpclient. AFP client support disabled. =="
170 libafpclient_disabled="== AFP support disabled. =="
171 libshairplay_not_found="== Could not find libshairplay. =="
172 samba_disabled="== SAMBA support disabled. =="
173 libplist_not_found="== Could not find libplist. AirPlay support disabled. =="
174 libplist_disabled="== AirPlay support disabled. =="
175 alsa_not_found="== Could not find ALSA. ALSA support disabled. =="
176 dbus_not_found="== Could not find DBUS. DBUS support disabled. =="
177 libcap_disabled="== Capabilities detection support disabled. =="
178 libcap_not_found="== Could not find libcap. Capabilities detection support disabled. =="
179 gtest_enabled="== Google Test Framework will be configured. =="
180 gtest_disabled="== Google Test Framework will not be configured. =="
182 libudev_not_found="== Could not find libudev. Will use polling to check for device changes. =="
183 libudev_disabled="== udev support disabled. Will use polling to check for device changes. =="
184 libusb_not_found="== Could not find libusb. Plug and play USB device support will not be available. =="
185 libusb_disabled="== libusb disabled. Plug and play USB device support will not be available. =="
186 libusb_disabled_udev_found="== libusb disabled. =="
187 libcec_enabled="== libcec enabled. =="
188 libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
190 dashes="------------------------"
191 final_message="\n XBMC Configuration:"
192 final_message="\n$dashes$final_message\n$dashes"
194 AC_ARG_WITH([ffmpeg],
195 [AS_HELP_STRING([--with-ffmpeg],
196 [ffmpeg options: auto (search pkg-config or auto build), force (always build ffmpeg), shared (link dynamically), path_to_ffmpeg [default=force]])],
197 [ffmpeg_dir=$with_ffmpeg],
200 AC_ARG_ENABLE([shared-lib],
201 [AS_HELP_STRING([--enable-shared-lib],
202 [build libxbmc. helpful for tests (default is no)])],
203 [build_shared_lib=$enableval],
204 [build_shared_lib=no])
206 AC_ARG_ENABLE([debug],
207 [AS_HELP_STRING([--enable-debug],
208 [enable debugging information (default is yes)])],
209 [use_debug=$enableval],
212 AC_ARG_WITH([platform],
213 [AS_HELP_STRING([--with-platform],
214 [use a pre-configured config for common arm boards])],
215 [use_platform=$withval],
218 AC_ARG_ENABLE([optimizations],
219 [AS_HELP_STRING([--enable-optimizations],
220 [enable optimization (default is yes)])],
221 [use_optimizations=$enableval],
222 [use_optimizations=yes])
225 [AS_HELP_STRING([--enable-gl],
226 [enable OpenGL rendering (default is yes)])],
230 AC_ARG_ENABLE([gles],
231 [AS_HELP_STRING([--enable-gles],
232 [enable OpenGLES rendering (default is no)])],
233 [use_gles=$enableval],
237 [AS_HELP_STRING([--enable-sdl],
238 [enable SDL (default is auto)])],
239 [use_sdl=$enableval],
242 AC_ARG_ENABLE([vdpau],
243 [AS_HELP_STRING([--enable-vdpau],
244 [enable VDPAU decoding (default is auto)])],
245 [use_vdpau=$enableval],
248 AC_ARG_ENABLE([vaapi],
249 [AS_HELP_STRING([--enable-vaapi],
250 [enable VAAPI decoding (default is auto)])],
251 [use_vaapi=$enableval],
254 AC_ARG_ENABLE([crystalhd],
255 [AS_HELP_STRING([--enable-crystalhd],
256 [enable CrystalHD decoding (default is auto)])],
257 [use_crystalhd=$enableval],
258 [use_crystalhd=auto])
260 AC_ARG_ENABLE([vtbdecoder],
261 [AS_HELP_STRING([--enable-vtbdecoder],
262 [enable VTBDecoder decoding (default is auto)])],
263 [use_vtbdecoder=$enableval],
264 [use_vtbdecoder=auto])
266 AC_ARG_ENABLE([openmax],
267 [AS_HELP_STRING([--enable-openmax],
268 [enable OpenMax decoding (default is auto, requires OpenGLES)])],
269 [use_openmax=$enableval],
272 AC_ARG_ENABLE([tegra],
273 [AS_HELP_STRING([--enable-tegra],
274 [enable Tegra2 arm (default is no)])],
275 [use_tegra=$enableval],
278 AC_ARG_ENABLE([profiling],
279 [AS_HELP_STRING([--enable-profiling],
280 [enable gprof profiling (default is no)])],
281 [use_profiling=$enableval],
284 AC_ARG_ENABLE([joystick],
285 [AS_HELP_STRING([--enable-joystick],
286 [enable SDL joystick support (default is yes)])],
287 [use_joystick=$enableval],
290 AC_ARG_ENABLE([xrandr],
291 [AS_HELP_STRING([--enable-xrandr],
292 [enable XRandR support (default is yes)])],
293 [use_xrandr=$enableval],
296 AC_ARG_ENABLE([waveform],
297 [AS_HELP_STRING([--enable-waveform],
298 [enable Waveform visualisation (default is yes)])],
299 [use_waveform=$enableval],
302 AC_ARG_ENABLE([spectrum],
303 [AS_HELP_STRING([--enable-spectrum],
304 [enable Spectrum visualisation (default is yes)])],
305 [use_spectrum=$enableval],
308 AC_ARG_ENABLE([goom],
309 [AS_HELP_STRING([--enable-goom],
310 [enable GOOM visualisation (default is no)])],
311 [use_goom=$enableval],
314 AC_ARG_ENABLE([rsxs],
315 [AS_HELP_STRING([--enable-rsxs],
316 [enable really slick X screensavers (default is yes)])],
317 [use_rsxs=$enableval],
320 AC_ARG_ENABLE([fishbmc],
321 [AS_HELP_STRING([--enable-fishbmc],
322 [enable FishBMC visualisation (default is yes)])],
323 [use_fishbmc=$enableval],
326 AC_ARG_ENABLE([projectm],
327 [AS_HELP_STRING([--enable-projectm],
328 [enable ProjectM visualisation (default is yes)])],
329 [use_projectm=$enableval],
332 AC_ARG_ENABLE([wayland],
333 [AS_HELP_STRING([--enable-wayland],
334 [enable wayland (default is no) 'Linux Only'])],
335 [use_wayland=$enableval],
339 [AS_HELP_STRING([--enable-x11],
340 [enable x11 (default is yes) 'Linux Only'])],
341 [use_x11=$enableval],
344 AC_ARG_ENABLE([ccache],
345 [AS_HELP_STRING([--enable-ccache],
346 [enable building with ccache feature (default is auto)])],
347 [use_ccache=$enableval],
350 AC_ARG_ENABLE([alsa],
351 [AS_HELP_STRING([--disable-alsa],
352 [disable ALSA support (only for linux/freebsd)])],
353 [use_alsa=$enableval],
356 AC_ARG_ENABLE([pulse],
357 [AS_HELP_STRING([--enable-pulse],
358 [enable PulseAudio support (default is auto)])],
359 [use_pulse=$enableval],
363 [AS_HELP_STRING([--disable-ssh],
364 [disable SSH SFTP support (default is enabled)])],
365 [use_ssh=$enableval],
368 AC_ARG_ENABLE([rtmp],
369 [AS_HELP_STRING([--enable-rtmp],
370 [enable RTMP support via librtmp (default is auto)])],
371 [use_librtmp=$enableval],
374 AC_ARG_ENABLE([samba],
375 [AS_HELP_STRING([--disable-samba],
376 [disable SAMBA support (default is enabled)])],
377 [use_samba=$enableval],
381 [AS_HELP_STRING([--enable-nfs],
382 [enable NFS support via libnfs (default is auto)])],
383 [use_libnfs=$enableval],
386 AC_ARG_ENABLE([afpclient],
387 [AS_HELP_STRING([--enable-afpclient],
388 [enable AFP support via libafpclient (default is auto)])],
389 [use_libafpclient=$enableval],
390 [use_libafpclient=auto])
392 AC_ARG_ENABLE([airplay],
393 [AS_HELP_STRING([--enable-airplay],
394 [enable AirPlay support(default is auto)])],
395 [use_airplay=$enableval],
398 AC_ARG_ENABLE([airtunes],
399 [AS_HELP_STRING([--enable-airtunes],
400 [enable AirTunes support(default is auto)])],
401 [use_airtunes=$enableval],
404 AC_ARG_ENABLE([upnp],
405 [AS_HELP_STRING([--disable-upnp],
406 [disable UPnP support (default is enabled)])],
407 [use_upnp=$enableval],
410 AC_ARG_ENABLE([dvdcss],
411 [AS_HELP_STRING([--enable-dvdcss],
412 [enable DVDCSS support (default is yes)])],
413 [use_dvdcss=$enableval],
417 [AS_HELP_STRING([--enable-mid],
418 [enable MID support (default is no)])],
419 [use_mid=$enableval],
423 [AS_HELP_STRING([--disable-hal],
424 [disable HAL support (default is enabled if hal and hal-storage is found)])],
425 [use_hal=$enableval],
428 AC_ARG_ENABLE([avahi],
429 [AS_HELP_STRING([--disable-avahi],
430 [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
431 [use_avahi=$enableval],
434 AC_ARG_ENABLE([mdnsembedded],
435 [AS_HELP_STRING([--disable-mdnsembedded],
436 [disable mDNSEmbedded support (default is auto)])],
437 [use_mdnsembedded=$enableval],
438 [use_mdnsembedded=auto])
440 AC_ARG_ENABLE([non-free],
441 [AS_HELP_STRING([--disable-non-free],
442 [disable componentents with non-compliant licenses])],
443 [use_nonfree=$enableval],
446 AC_ARG_ENABLE([asap-codec],
447 [AS_HELP_STRING([--enable-asap-codec],
448 [enable ASAP ADPCM support])],
449 [use_asap=$enableval],
452 AC_ARG_ENABLE([mysql],
453 [AS_HELP_STRING([--disable-mysql],
455 [use_mysql=$enableval],
458 AC_ARG_ENABLE([webserver],
459 [AS_HELP_STRING([--disable-webserver],
460 [disable webserver])],
461 [use_webserver=$enableval],
464 AC_ARG_ENABLE([optical-drive],
465 [AS_HELP_STRING([--disable-optical-drive],
466 [disable optical drive])],
467 [use_optical_drive=$enableval],
468 [use_optical_drive=yes])
470 AC_ARG_ENABLE([libbluray],
471 [AS_HELP_STRING([--enable-libbluray],
472 [enable libbluray support])],
473 [use_libbluray=$enableval],
474 [use_libbluray=auto])
476 AC_ARG_ENABLE([texturepacker],
477 [AS_HELP_STRING([--enable-texturepacker],
478 [enable texturepacker support (default is yes)])],
479 [use_texturepacker=$enableval],
480 [use_texturepacker=auto])
482 AC_ARG_WITH([lirc-device],
483 [AS_HELP_STRING([--with-lirc-device=file],
484 [specify the default LIRC device (default is /dev/lircd)])],
485 [lirc_device=$withval],
486 [lirc_device=/dev/lircd])
487 AC_DEFINE_UNQUOTED([LIRC_DEVICE], ["$lirc_device"], [Default LIRC device])
489 AC_ARG_ENABLE([udev],
490 [AS_HELP_STRING([--enable-udev],
491 [enable udev support (default is auto)])],
492 [use_libudev=$enableval],
495 AC_ARG_ENABLE([libusb],
496 [AS_HELP_STRING([--enable-libusb],
497 [enable libusb support (default is auto)])],
498 [use_libusb=$enableval],
501 AC_ARG_ENABLE([libcec],
502 [AS_HELP_STRING([--enable-libcec],
503 [enable libcec support (default is auto)])],
504 [use_libcec=$enableval],
507 AC_ARG_ENABLE([libmp3lame],
508 [AS_HELP_STRING([--enable-libmp3lame],
509 [enable lame mp3 encoder support (default is auto)])],
510 [use_libmp3lame=$enableval],
511 [use_libmp3lame=auto])
513 AC_ARG_ENABLE([libvorbisenc],
514 [AS_HELP_STRING([--enable-libvorbisenc],
515 [enable vorbis encoder support (default is auto)])],
516 [use_libvorbisenc=$enableval],
517 [use_libvorbisenc=auto])
519 AC_ARG_ENABLE([libcap],
520 [AS_HELP_STRING([--enable-libcap],
521 [enable libcap support (default is auto)])],
522 [use_libcap=$enableval],
525 AC_ARG_ENABLE([player],
526 [AS_HELP_STRING([--enable-player],
527 [enable additional players from a list of comma separated names, (default is none, choices are omxplayer)])],
528 [add_players=$enableval],
531 AC_ARG_ENABLE([gtest],
532 [AS_HELP_STRING([--enable-gtest],
533 [configure Google Test Framework (default is yes)])],
534 [configure_gtest=$enableval],
535 [configure_gtest=yes])
537 AC_ARG_ENABLE([codec],
538 [AS_HELP_STRING([--enable-codec],
539 [enable additional codecs from a list of comma separated names, (default is none, choices are amcodec, libstagefright)])],
540 [add_codecs=$enableval],
543 AC_ARG_ENABLE([libav-compat],
544 [AS_HELP_STRING([--enable-libav-compat],
545 [build a wrapper around libav to provide the functions needed by XBMC. This is
546 *not* supported by XBMC developers and is provided only for convenience. (default is no) 'Linux only'])],
547 [use_libav_hacks=$enableval],
548 [use_libav_hacks=no])
550 ### End of external library options
552 if test "x$host_vendor" != "xapple"; then
553 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
554 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
557 # Checks for programs.
558 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
561 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
562 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
564 AX_PROG_CXX_FOR_BUILD
565 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
572 OBJDUMP="${OBJDUMP:-objdump}"
574 # host detection and setup
576 i*86*-linux-android*)
577 target_platform=target_android
588 i*86*-linux-gnu*|i*86*-*-linux-uclibc*)
590 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
596 x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
598 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
609 ARCH="x86_64-freebsd"
625 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
626 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
627 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
628 PYTHON_NOVERSIONCHECK="no-check"
635 powerpc-apple-darwin*)
642 powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*)
645 powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*)
646 ARCH="powerpc64-linux"
648 arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
659 arm*-*linux-android*)
660 target_platform=target_android
674 AC_MSG_ERROR(unsupported host ($host))
678 check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
679 if test "x$check_sdl_arch" = "xi386" ; then
680 DARWIN_NATIVE_ARCH=-m32
681 elif test "x$check_sdl_arch" = "xx86_64" ; then
682 DARWIN_NATIVE_ARCH=-m64
684 AC_SUBST([DARWIN_NATIVE_ARCH])
686 if test "$target_platform" = "target_android" ; then
688 webserver_checkdepends=yes
689 CFLAGS="$CFLAGS -Wno-psabi"
690 DROID_DVDLIB_SEEK64="-D_FILE_OFFSET_BITS=64 -D_OFF_T_DEFINED_ -Doff_t=off64_t -Dlseek=lseek64"
691 CXXFLAGS="$CXXFLAGS -Wno-psabi"
692 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
695 case $use_platform in
697 target_platform=target_raspberry_pi
701 use_hardcoded_tables="yes"
704 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
705 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
711 XBMC_SETUP_ARCH_DEFINES()
714 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
715 if test "$GIT_REV" = ""; then
716 if test -f VERSION ; then
717 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
718 elif test "$HAVE_GIT" = "yes" -a -d ${abs_top_srcdir}/.git; then
719 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
724 final_message="$final_message\n git Rev.:\t${GIT_REV}"
726 if test "$host_vendor" = "apple"; then
727 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
729 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
732 if test "$build_shared_lib" = "yes"; then
733 final_message="$final_message\n Shared lib\tYes"
734 AC_SUBST(USE_LIBXBMC,1)
738 # platform debug flags
739 if test "$use_debug" = "yes"; then
740 final_message="$final_message\n Debugging:\tYes"
741 if test "$use_profiling" = "yes"; then
742 final_message="$final_message\n Profiling:\tYes"
743 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
745 final_message="$final_message\n Profiling:\tNo"
746 DEBUG_FLAGS="-g -D_DEBUG -Wall"
749 final_message="$final_message\n Debugging:\tNo"
750 if test "$use_profiling" = "yes"; then
751 final_message="$final_message\n Profiling:\tYes"
752 DEBUG_FLAGS="-pg -DNDEBUG=1"
754 final_message="$final_message\n Profiling:\tNo"
755 DEBUG_FLAGS="-DNDEBUG=1"
758 CFLAGS="$CFLAGS $DEBUG_FLAGS"
759 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
762 if test "$use_optimizations" = "yes"; then
763 final_message="$final_message\n Optimization:\tYes"
764 if test "$target_platform" = "target_raspberry_pi"; then
768 CXXFLAGS="-O2 $CXXFLAGS"
772 final_message="$final_message\n Optimization:\tNo"
776 # platform specific flags
777 if echo "$ARCH" | grep -q "freebsd" ; then
778 LOCALBASE="${LOCALBASE:-/usr/local}"
779 CFLAGS="$CFLAGS -I$LOCALBASE/include"
780 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
781 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
782 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
784 if test "$host_vendor" = "apple" ; then
785 # standard xbmc paths
786 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
787 if test "$use_arch" != "arm"; then
788 LIBS="$LIBS -framework ApplicationServices"
789 LIBS="$LIBS -framework AudioUnit"
790 LIBS="$LIBS -framework AudioToolbox"
791 LIBS="$LIBS -framework Cocoa"
792 LIBS="$LIBS -framework CoreAudio"
793 LIBS="$LIBS -framework CoreVideo"
794 LIBS="$LIBS -framework CoreServices"
795 LIBS="$LIBS -framework CoreFoundation"
796 LIBS="$LIBS -framework DiskArbitration"
797 LIBS="$LIBS -framework IOKit"
798 LIBS="$LIBS -framework IOSurface"
799 LIBS="$LIBS -framework QuartzCore"
800 LIBS="$LIBS -framework SystemConfiguration"
801 LIBS="$LIBS -framework VideoDecodeAcceleration"
803 elif test "$target_platform" = "target_raspberry_pi"; then
806 elif test "$use_arch" = "arm"; then
807 CFLAGS="$CFLAGS -mno-apcs-stack-check"
808 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
809 if test "$use_tegra" = "yes"; then
810 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
811 SAVE_CFLAGS="$CFLAGS"
812 CFLAGS="-mfpu=vfpv3-d16"
814 [AC_LANG_SOURCE([int foo;])],
815 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
816 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
818 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
819 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
822 if test "$use_neon" = "yes"; then
823 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
824 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
829 # Checks for library functions.
832 AC_FUNC_CLOSEDIR_VOID
833 AC_FUNC_ERROR_AT_LINE
835 AC_PROG_GCC_TRADITIONAL
837 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
841 # Boxee is apparently having compile problems
842 # if HAVE_REALLOC is defined. Sort this later.
844 AC_FUNC_SELECT_ARGTYPES
845 AC_FUNC_SETVBUF_REVERSED
853 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 posix_fadvise])
855 # Check for various sizes
856 AC_CHECK_SIZEOF([int])
857 AC_CHECK_SIZEOF([size_t])
859 # Check for intrinsics
860 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
861 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
862 [have_builtin_sync_add_and_fetch=yes],
863 [have_builtin_sync_add_and_fetch=no])
864 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
865 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
866 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
867 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
870 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
871 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
872 [have_builtin_sync_sub_and_fetch=yes],
873 [have_builtin_sync_sub_and_fetch=no])
874 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
875 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
876 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
877 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
880 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
881 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
882 [have_builtin_sync_val_compare_and_swap=yes],
883 [have_builtin_sync_val_compare_and_swap=no])
884 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
885 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
886 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
887 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
890 # Check for u16string/u32string declarations
892 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
893 AC_CHECK_TYPES([char16_t, char32_t])
894 AC_CHECK_SIZEOF([wchar_t])
897 # Add top source directory for all builds so we can use config.h
898 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
900 # Check inotify availability
901 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
903 # Checks for boost headers using CXX instead of CC
905 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
909 if test -z "$PYTHON_NOVERSIONCHECK"; then
910 AX_PYTHON_DEVEL([>= 2.4])
911 PYTHON_VERSION=$ac_python_version
914 if test -z "$PYTHON_VERSION"; then
915 AC_MSG_ERROR([Can't find a Python version.])
917 LIBS="$LIBS $PYTHON_LDFLAGS"
918 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
922 if test "$use_wayland" = "yes" && test "$host_vendor" != "apple"; then
923 AC_MSG_NOTICE($wayland_enabled)
924 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client],
925 [INCLUDES="$INCLUDES $WAYLAND_CLIENT_CFLAGS";
926 WAYLAND_CLIENT_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-client\`; echo ${LIBRARY:2}`;
927 XB_FIND_SONAME([WAYLAND_CLIENT_LIBRARY], ${WAYLAND_CLIENT_LIBRARY_LINE})],
928 AC_MSG_ERROR($missing_library))
929 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],
930 [INCLUDES="$INCLUDES $WAYLAND_EGL_CFLAGS";
931 WAYLAND_EGL_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-egl\`; echo ${LIBRARY:2:11}`
932 XB_FIND_SONAME([WAYLAND_EGL_LIBRARY], ${WAYLAND_EGL_LIBRARY_LINE})],
933 AC_MSG_ERROR($missing_library))
934 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
935 [INCLUDES="$INCLUDES $XKBCOMMON_CFLAGS";
936 XKBCOMMON_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l xkbcommon\`; echo ${LIBRARY:2}`;
937 XB_FIND_SONAME([XKBCOMMON_LIBRARY], $XKBCOMMON_LIBRARY_LINE)],
938 AC_MSG_ERROR($missing_library))
939 AC_DEFINE([HAVE_WAYLAND], [1], [Define to 1 if you have Wayland libs installed.])
940 AC_DEFINE([HAVE_XKBCOMMON], [1], [Define to 1 if you have libxkbcommon installed.])
942 # If we are also building with tests then we want to build
943 # wayland tests as well
944 if test "$configure_gtest" = "yes"; then
946 PKG_CHECK_MODULES([PIXMAN],
947 [pixman-1],have_pixman=yes,
948 [AC_MSG_WARN($missing_library); have_pixman=no])
949 PKG_CHECK_MODULES([WESTON],
950 [weston >= 1.1.90],[have_weston_sdk=yes],
951 [have_weston_sdk=no; AC_MSG_WARN($missing_library)])
953 AC_CHECK_PROG(WAYLAND_SCANNER, wayland-scanner, "wayland-scanner", "no")
954 if test "x$WAYLAND_SCANNER" == "xno"; then
955 AC_MSG_WARN($missing_program)
957 if test "x$have_weston_sdk" == "xyes" && test "x$have_pixman" = "xyes"; then
958 AC_SUBST(WAYLAND_TEST_INCLUDES,"$WAYLAND_CLIENT_CFLAGS $XKBCOMMON_CFLAGS $PIXMAN_CFLAGS $WESTON_CFLAGS")
959 AC_SUBST(WAYLAND_TEST_LIBS,"$WAYLAND_CLIENT_LIBS $XKBCOMMON_LIBS $PIXMAN_LIBS $WESTON_LIBS")
960 AC_DEFINE([HAVE_WESTON_SDK], [1], [Define to 1 if Weston SDK is installed.])
961 AC_SUBST(USE_WAYLAND_TEST_EXTENSION, 1)
963 AC_SUBST(WAYLAND_SCANNER)
964 AC_DEFINE([HAVE_WAYLAND_XBMC_PROTO],[1],["Define to 1 if the wayland test-protocol will be built"])
968 # Disable SDL and X11 builds
973 # Wayland requires the EGL "window system" which in turn only supports
974 # the OpenGL ES API, so enable gles support
977 AC_MSG_RESULT($wayland_disabled)
980 # Checks for platforms libraries.
981 if test "$use_gles" = "yes"; then
983 # GLES overwrites GL if both set to yes.
984 if test "$host_vendor" = "apple" ; then
985 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
986 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
987 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
989 if test "$target_platform" = "target_raspberry_pi"; then
990 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
991 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
992 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
993 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
995 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
996 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
1000 if test "$use_gl" = "yes"; then
1001 if test "$host_vendor" = "apple" ; then
1002 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
1003 LIBS="$LIBS -framework OpenGL"
1004 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
1005 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
1006 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
1007 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
1008 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1010 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
1011 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1012 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
1015 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
1016 AC_CHECK_LIB([SDL_gfx],[main])
1020 # platform common libraries
1021 if test "$use_mysql" = "yes"; then
1022 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
1023 if test "x$MYSQL_CONFIG" != "xno"; then
1024 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
1025 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
1026 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
1027 LIBS="$LIBS $MYSQL_LIBS"
1028 AC_SUBST(MYSQL_LIBS)
1030 AC_MSG_ERROR($missing_program)
1033 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1034 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1035 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1036 AC_INCLUDES_DEFAULT()
1037 [#include <mpeg2dec/mpeg2.h>])
1038 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1039 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1040 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1041 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1042 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1043 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1045 # we need to check for the header because if it exists we set the openssl
1046 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1047 # in MT manner correctly.
1048 AC_MSG_CHECKING([for CRYPTO_set_locking_callback(0)])
1049 AC_TRY_LINK([],[CRYPTO_set_locking_callback(0);],
1050 [have_curl_static=yes],
1051 [have_curl_static=no])
1052 AC_MSG_RESULT($have_curl_static)
1053 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1054 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1055 if test "$gcrypt_headers_available" = "yes"; then
1056 # if we have the headers then we must have the lib
1057 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1058 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1059 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1061 PKG_CHECK_MODULES([GNUTLS], [gnutls], [have_gnutls=yes];AC_DEFINE([HAVE_GNUTLS], [1], [Define if we have gnutls]), AC_MSG_WARN("gnutls not found"))
1063 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1064 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1065 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1066 if echo "$ARCH" | grep -q freebsd; then
1067 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1068 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1069 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1070 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1072 if test "$target_platform" != "target_android" ; then
1073 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1074 AC_CHECK_LIB([pthread], [pthread_setname_np],
1075 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1076 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1079 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1080 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1081 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1082 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1083 if test "$use_mysql" = "yes"; then
1084 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1086 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1087 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1088 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1089 if test "$target_platform" = "target_android" ; then
1090 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1091 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1092 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1094 PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
1095 [INCLUDES="$INCLUDES $LIBXML_CFLAGS"; LIBS="$LIBS $LIBXML_LIBS"],
1096 AC_MSG_ERROR($missing_library))
1097 PKG_CHECK_MODULES([LIBXSLT], [libxslt],
1098 [INCLUDES="$INCLUDES $LIBXSLT_CFLAGS"; LIBS="$LIBS $LIBXSLT_LIBS"],
1099 AC_MSG_ERROR($missing_library))
1100 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1101 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1102 AC_MSG_ERROR($missing_library))
1103 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1104 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1105 AC_MSG_ERROR($missing_library))
1106 PKG_CHECK_MODULES([PNG], [libpng],
1107 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1108 AC_MSG_ERROR($missing_library))
1109 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1110 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1111 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1112 AC_MSG_ERROR($missing_library))
1113 PKG_CHECK_MODULES([PCRE], [libpcre],
1114 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1115 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1116 AC_MSG_ERROR($missing_library))
1117 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1118 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1119 AC_MSG_ERROR($missing_library))
1120 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1121 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1122 AC_MSG_ERROR($missing_library))
1124 if test "$use_optical_drive" = "yes"; then
1125 PKG_CHECK_MODULES([CDIO], [libcdio],
1126 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1127 AC_MSG_ERROR($missing_library))
1130 if test "$target_platform" = "target_android" ; then
1131 PKG_CHECK_MODULES([ZIP], [libzip],
1132 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1133 AC_MSG_ERROR($missing_library))
1136 # check for libbluray
1137 AS_CASE([x$use_libbluray],
1139 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1142 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1145 AS_CASE([x$use_libbluray],
1147 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1148 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1149 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1150 AC_SUBST([HAVE_LIBBLURAY], 1)
1151 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1152 AC_CHECK_DECL([BD_EVENT_IDLE],
1153 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1154 [[#include <libbluray/bluray.h>]]))
1156 AC_SUBST([HAVE_LIBBLURAY], 0)
1160 #Check to see if libs are needed for functions that are often built-in to libc
1161 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1162 AC_SEARCH_LIBS([dlopen],dl)
1163 AC_SEARCH_LIBS([clock_gettime],rt)
1164 AC_SEARCH_LIBS([dn_expand], resolv)
1165 AC_SEARCH_LIBS([_dn_expand], resolv)
1166 AC_SEARCH_LIBS([__dn_expand],resolv)
1168 # platform dependent libraries
1169 if test "$host_vendor" = "apple" ; then
1170 if test "$use_arch" != "arm"; then
1171 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1172 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1175 if test "$target_platform" != "target_android" ; then
1176 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1178 if test "x$use_alsa" != "xno"; then
1179 PKG_CHECK_MODULES([ALSA], [alsa],
1180 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1181 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1183 PKG_CHECK_MODULES([DBUS], [dbus-1],
1184 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1185 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1186 AC_MSG_NOTICE($missing_library); use_dbus=no)
1187 if test "x$use_sdl" != "xno"; then
1188 PKG_CHECK_MODULES([SDL], [sdl],
1189 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1190 AC_MSG_ERROR($missing_library))
1191 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1192 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1196 XB_FIND_SONAME([OGG], [ogg])
1197 XB_FIND_SONAME([CURL], [curl])
1198 XB_FIND_SONAME([FLAC], [FLAC])
1199 XB_FIND_SONAME([VORBIS], [vorbis])
1200 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1201 XB_FIND_SONAME([MODPLUG], [modplug])
1202 XB_FIND_SONAME([ASS], [ass])
1203 XB_FIND_SONAME([MPEG2], [mpeg2])
1206 if test "x$use_libmp3lame" != "xno"; then
1207 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1208 if test "x$use_libmp3lame" != "xno"; then
1209 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1212 AS_CASE([x$use_libmp3lame],
1214 AC_SUBST([HAVE_LIBMP3LAME], 0)
1217 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1218 AC_SUBST([HAVE_LIBMP3LAME], 1)
1221 if test "x$use_libvorbisenc" != "xno"; then
1222 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1223 if test "x$use_libvorbisenc" != "xno"; then
1224 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1227 AS_CASE([x$use_libvorbisenc],
1229 AC_SUBST([HAVE_LIBVORBISENC], 0)
1231 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1232 AC_SUBST([HAVE_LIBVORBISENC], 1)
1237 if test "$use_webserver" = "yes"; then
1238 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1242 if test "$use_optical_drive" = "yes"; then
1243 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1247 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1248 PKG_CHECK_MODULES([ALSA], [alsa],
1249 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1250 AC_MSG_ERROR($missing_library))
1251 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1254 AC_MSG_RESULT($alsa_disabled)
1258 if test "x$use_pulse" != "xno"; then
1259 if test "$host_vendor" = "apple" ; then
1260 if test "x$use_pulse" = "xyes"; then
1261 AC_MSG_ERROR($pulse_disabled)
1264 AC_MSG_RESULT($pulse_disabled)
1268 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0],
1269 [INCLUDES="$INCLUDES $PULSE_CFLAGS"; LIBS="$LIBS $PULSE_LIBS"; USE_PULSE=1;
1270 HAVE_LIBPULSE=1; AC_DEFINE([HAVE_LIBPULSE],[1],[Pulse audio enabled])],
1271 [pulse_found="no"; USE_PULSE=0; HAVE_LIBPULSE=0])
1273 if test "$pulse_found" = "no"; then
1274 if test "x$use_pulse" = "xyes"; then
1275 AC_MSG_ERROR($pulse_not_found)
1277 AC_MSG_RESULT($pulse_disabled)
1282 AC_MSG_RESULT($pulse_disabled)
1287 if test "$host_vendor" = "apple" ; then
1289 AC_MSG_RESULT($hal_disabled)
1291 if test "$use_hal" = "yes"; then
1292 PKG_CHECK_MODULES([HAL], [hal],
1293 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1294 use_hal=no;AC_MSG_RESULT($hal_not_found))
1295 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1296 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1297 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1299 AC_MSG_RESULT($hal_disabled)
1301 if test "$use_hal" = "yes"; then
1302 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1307 if test "$host_vendor" = "apple" ; then
1309 AC_MSG_RESULT($avahi_disabled)
1311 if test "$use_avahi" = "yes"; then
1312 AC_CHECK_LIB([avahi-common], [main],,
1313 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1314 if test "$use_avahi" = "yes"; then
1315 #either both libs or none
1316 AC_CHECK_LIB([avahi-client], [main],,
1317 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1320 AC_MSG_RESULT($avahi_disabled)
1325 if test "$use_mdnsembedded" != "no"; then
1326 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1327 [if test "$use_mdnsembedded" = "yes"; then
1328 AC_MSG_ERROR($mdnsembedded_not_found)
1330 elif test "$use_mdnsembedded" != "no"; then
1331 AC_MSG_NOTICE($mdnsembedded_not_found)
1332 use_mdnsembedded="no"
1336 if test $use_mdnsembedded != "no"; then
1340 AC_MSG_RESULT($mdnsembedded_disabled)
1343 AC_SUBST(USE_MDNSEMBEDDED)
1346 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1347 AC_MSG_NOTICE($x11_enabled)
1348 PKG_CHECK_MODULES([X11], [x11],
1349 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1350 AC_MSG_ERROR($missing_library))
1351 PKG_CHECK_MODULES([XEXT], [xext],
1352 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1353 AC_MSG_ERROR($missing_library))
1354 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1356 AC_MSG_RESULT($x11_disabled)
1360 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1362 AC_MSG_RESULT($xrandr_disabled)
1364 if test "$use_xrandr" = "yes" ; then
1365 AC_CHECK_LIB([Xrandr], [main],,
1366 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1368 AC_MSG_RESULT($xrandr_disabled)
1373 if test "$use_waveform" = "yes"; then
1374 AC_MSG_NOTICE($waveform_enabled)
1377 AC_MSG_NOTICE($waveform_disabled)
1382 if test "$use_spectrum" = "yes"; then
1383 AC_MSG_NOTICE($spectrum_enabled)
1386 AC_MSG_NOTICE($spectrum_disabled)
1391 if test "$host_vendor" = "apple" ; then
1392 AC_MSG_NOTICE($goom_disabled)
1395 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1396 AC_MSG_NOTICE($goom_enabled)
1399 AC_MSG_NOTICE($goom_disabled)
1405 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1406 AC_MSG_NOTICE($rsxs_disabled)
1409 AC_MSG_NOTICE($rsxs_enabled)
1411 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1412 if test "$host_vendor" != "apple" ; then
1413 PKG_CHECK_MODULES([XT], [xt],
1414 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1415 AC_MSG_ERROR($missing_library))
1416 PKG_CHECK_MODULES([XMU], [xmu],
1417 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1418 AC_MSG_ERROR($missing_library))
1423 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1424 AC_MSG_NOTICE($fishbmc_disabled)
1428 AC_MSG_NOTICE($fishbmc_enabled)
1433 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1434 AC_MSG_NOTICE($projectm_disabled)
1438 AC_MSG_NOTICE($projectm_enabled)
1444 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1445 use_skin_touched=yes
1447 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1453 if test "x$use_ssh" = "xno"; then
1454 AC_MSG_NOTICE($ssh_disabled)
1457 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1458 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1462 if test "x$have_curl_static" = "xyes"; then
1463 AC_DEFINE([HAS_CURL_STATIC], [1], [Whether OpenSSL inside libcurl is static.])
1467 if test "$use_librtmp" != "no"; then
1468 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1469 [if test "$use_librtmp" = "yes"; then
1470 AC_MSG_ERROR($librtmp_not_found)
1471 elif test "$use_librtmp" != "no"; then
1472 AC_MSG_NOTICE($librtmp_not_found)
1476 if test "$use_librtmp" != "no"; then
1477 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1479 if test "$use_librtmp" != "no"; then
1480 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1483 AC_MSG_NOTICE($librtmp_disabled)
1487 if test "x$use_samba" != "xno"; then
1488 PKG_CHECK_MODULES([SAMBA], [smbclient],
1489 [INCLUDES="$INCLUDES $SAMBA_CFLAGS"; LIBS="$LIBS $SAMBA_LIBS"],
1490 [AC_CHECK_LIB([smbclient], [main],,
1491 use_samba=no;AC_MSG_ERROR($missing_library))
1495 AC_MSG_RESULT($samba_disabled)
1499 if test "x$use_samba" != "xno"; then
1500 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1505 if test "$use_libnfs" != "no"; then
1506 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1507 [if test "$use_libnfs" = "yes"; then
1508 AC_MSG_ERROR($libnfs_not_found)
1510 elif test "$use_libnfs" != "no"; then
1511 AC_MSG_NOTICE($libnfs_not_found)
1516 if test "$use_libnfs" != "no"; then
1517 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1519 if test "$use_libnfs" != "no"; then
1520 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1525 AC_MSG_NOTICE($libnfs_disabled)
1530 if test "x$use_libafpclient" != "xno"; then
1531 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1532 [if test "x$use_libafpclient" = "xyes"; then
1533 AC_MSG_ERROR($libafpclient_not_found)
1534 elif test "x$use_libafpclient" != "xno"; then
1535 AC_MSG_NOTICE($libafpclient_not_found)
1536 use_libafpclient="no"
1539 if test "x$use_libafpclient" != "xno"; then
1540 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1541 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1545 AC_MSG_NOTICE($libafpclient_disabled)
1548 # libplist for airplay feature
1550 if test "$use_airplay" != "no"; then
1551 AC_CHECK_HEADER([plist/plist.h],,
1552 [if test "$use_airplay" = "yes"; then
1553 AC_MSG_ERROR($libplist_not_found)
1554 elif test "$use_airplay" != "no"; then
1555 AC_MSG_NOTICE($libplist_not_found)
1560 if test "$use_airplay" != "no"; then
1561 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1563 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1567 # libshairplay for AirTunes
1569 if test "x$use_airtunes" != "xno"; then
1570 AC_CHECK_HEADERS([shairplay/raop.h],USE_AIRTUNES=1,
1571 [AC_MSG_NOTICE($libshairplay_not_found)
1574 if test "x$USE_AIRTUNES" != "x0"; then
1575 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [USE_AIRTUNES])
1576 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1577 [[#include <shairplay/raop.h>]])
1578 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1581 if test "x$USE_AIRTUNES" == "x0"; then
1582 if test "x$use_airtunes" == "xyes"; then
1583 AC_MSG_ERROR("No airtunes library could be found. (libshairplay)")
1591 if test "$host_vendor" = "apple" ; then
1593 AC_MSG_NOTICE($libudev_disabled)
1595 if test "$use_libudev" = "auto"; then
1596 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1597 elif test "$use_libudev" = "yes" ; then
1598 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1600 AC_MSG_NOTICE($libudev_disabled)
1603 if test "x$use_libudev" != "xno"; then
1604 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1605 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1612 # if libudev is available, we don't need libusb
1613 if test "x$use_libudev" != "xno"; then
1615 AC_MSG_NOTICE($libusb_disabled_udev_found)
1617 if test "$host_vendor" = "apple" ; then
1619 AC_MSG_NOTICE($libusb_disabled)
1621 if echo "$ARCH" | grep -q freebsd ; then
1622 AC_CHECK_LIB([usb],[main],
1623 [use_libusb="yes";USB_LIBS="-lusb"],
1624 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1625 elif test "$use_libusb" = "auto"; then
1626 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1627 elif test "$use_libusb" = "yes"; then
1628 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1630 AC_MSG_NOTICE($libusb_disabled)
1633 if test "x$use_libusb" != "xno"; then
1634 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1635 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1642 if test "x$use_libcec" != "xno"; then
1643 # libcec is dyloaded, so we need to check for its headers and link any depends.
1644 if test "x$use_libcec" != "xno"; then
1645 if test "x$use_libcec" != "xauto"; then
1646 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1648 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1651 if test "x$use_libcec" != "xno"; then
1652 INCLUDES="$INCLUDES $CEC_CFLAGS"
1653 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1654 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1655 AC_MSG_NOTICE($libcec_enabled)
1658 AC_MSG_NOTICE($libcec_disabled)
1663 AC_MSG_NOTICE($libcec_disabled)
1667 if test "$use_libcap" != "no"; then
1668 AC_CHECK_HEADERS([sys/capability.h],,
1669 [if test "$use_libcap" = "yes"; then
1670 AC_MSG_ERROR($libcap_not_found)
1671 elif test "$use_libcap" != "no"; then
1672 AC_MSG_NOTICE($libcap_not_found)
1676 if test "$use_libcap" != "no"; then
1677 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1679 if test "$use_libcap" != "no"; then
1680 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1683 AC_MSG_NOTICE($libcap_disabled)
1687 FFMPEG_LIBNAMES="libavcodec >= 55.39.101
1688 libavfilter >= 3.90.100
1689 libavformat >= 55.19.104
1690 libavutil >= 52.48.101
1691 libpostproc >= 52.3.100
1692 libswscale >= 2.5.101
1693 libswresample >= 0.17.104"
1695 ffmpeg_build="${abs_top_srcdir}/tools/depends/target/ffmpeg"
1696 FFMPEG_VER_SHA=$(grep "VERSION=" ${ffmpeg_build}/FFMPEG-VERSION | sed 's/VERSION=//g')
1697 AC_DEFINE_UNQUOTED([FFMPEG_VER_SHA], ["$FFMPEG_VER_SHA"], [FFmpeg version hash])
1699 if test "$with_ffmpeg" = "shared"; then
1700 # allow linking against shared ffmpeg libs
1701 # a proper version must be installed, we won't build ffmpeg
1703 AC_DEFINE([USE_STATIC_FFMPEG], [0], [FFmpeg linked dynamically])
1705 if test "${USE_STATIC_FFMPEG}" = "1"; then
1706 AC_DEFINE([USE_STATIC_FFMPEG], [1], [FFmpeg linked statically])
1707 ff_libs=$(${ECHO} ${FFMPEG_LIBNAMES} | ${AWK} '/lib/{print $1}' ORS=' ')
1708 if test -n "${PKG_CONFIG_SYSROOT_DIR}"; then
1709 # workaround for cross compiling with buildroot on different buildsystem
1710 # Rpi buildroots pkg-config returns static libs with
1711 # PKG_CONFIG_SYSROOT_DIR prefixed, OEs does not
1712 # so lets make sure we always prefix in case PKG_CONFIG_SYSROOT_DIR is defined
1713 pkg_cfg_prefix="${PKG_CONFIG_SYSROOT_DIR}"
1714 elif test "${target_platform}" = "target_raspberry_pi" && test "${USE_BUILDROOT}" = "1"; then
1715 pkg_cfg_prefix=${SYSROOT}
1718 if test "$cross_compiling" != "yes"; then
1719 if test "$use_debug" != "yes"; then
1722 if test "$use_optimizations" != "yes"; then
1723 FFMPEG_OPTS="${FFMPEG_OPTS} --disable-optimizations"
1726 if test "$with_ffmpeg" = "auto" || test "$with_ffmpeg" = "yes"; then
1727 SAVE_INCLUDES="$INCLUDES"
1729 # check for system installed ffmpeg. We require minimum versions.
1730 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1731 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1732 [FFMPEG_FOUND="false"])
1734 if test "${USE_STATIC_FFMPEG}" = "1" && test "$FFMPEG_FOUND" = "true"; then
1735 # we need to check if static libs are available
1736 FFMPEG_LIBDIR=$(${PKG_CONFIG} --static --variable=libdir libavcodec)
1737 for ff_lib in ${ff_libs}; do
1738 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1739 AC_MSG_NOTICE("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1740 FFMPEG_FOUND="false"
1741 # restore includes and libs, the ones we found are invalid
1742 INCLUDES="$SAVE_INCLUDES"
1744 unset FFMPEG_LIBS FFMPEG_CFLAGS FFMPEG_LIBDIR
1748 if test "$with_ffmpeg" = "yes" || test "$FFMPEG_FOUND" = "false"; then
1749 # ffmpeg not found with pkg-config, lets install it
1750 AC_MSG_NOTICE("Installing FFmpeg")
1751 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1752 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1755 elif test "$with_ffmpeg" = "force"; then
1756 # always build our ffmpeg
1757 AC_MSG_NOTICE("FFmpeg installation forced by user - installing our version")
1758 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1759 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1761 elif test "$with_ffmpeg" != "no"; then
1762 # user passed --with-ffmpeg=/some/path, lets use it
1763 AC_MSG_NOTICE("using ffmpeg: ${with_ffmpeg}")
1764 export PKG_CONFIG_PATH="${with_ffmpeg}/lib/pkgconfig:$PKG_CONFIG_PATH"
1769 if test "$FFMPEG_FOUND" != "true"; then
1770 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1771 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1772 [AC_MSG_ERROR("ffmpeg not found")])
1775 if test "${USE_STATIC_FFMPEG}" = "1"; then
1776 # get the libdir for static linking
1777 FFMPEG_LIBDIR=${pkg_cfg_prefix}$(PKG_CONFIG_SYSROOT_DIR="" ${PKG_CONFIG} --static --variable=libdir libavcodec)
1778 GNUTLS_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors gnutls)
1779 VORBISENC_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors vorbisenc)
1781 # check if static libs are available
1782 for ff_lib in ${ff_libs}; do
1783 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1784 AC_MSG_ERROR("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1786 # filter out libs we link statically
1787 filter=$(${ECHO} ${ff_lib} | ${SED} 's/lib/-l/g')
1788 LIBS=$(${ECHO} ${LIBS} | ${SED} "s/${filter}//g")
1790 LIBS=$(${ECHO} ${LIBS} | ${SED} ':a;N;$!ba;s/\n/ /g')
1793 echo "Checking for SWIG installation"
1794 AC_PATH_PROG(SWIG_EXE, swig, "none")
1795 if test "$SWIG_EXE" = "none"; then
1796 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1797 if test "$SWIG20_EXE" != "none" ; then
1798 SWIG_EXE=$SWIG20_EXE
1801 if test "$SWIG_EXE" = "none"; then
1802 AC_MSG_ERROR($missing_program)
1804 final_message="$final_message\n SWIG Available:\tYes"
1806 echo "Checking for a jre installation"
1807 AC_PATH_PROG(JAVA_EXE, java, "none")
1808 if test "$JAVA_EXE" = "none"; then
1809 AC_MSG_ERROR($missing_program)
1811 final_message="$final_message\n JRE Available:\tYes"
1813 echo "Checking for doxygen installation"
1814 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1815 if test "$DOXYGEN_EXE" = "none"; then
1816 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1817 final_message="$final_message\n Doxygen Available:\tNo"
1820 final_message="$final_message\n Doxygen Available:\tYes"
1825 if test "x$use_vdpau" != "xno"; then
1826 if test "$host_vendor" = "apple" ; then
1827 if test "x$use_vdpau" = "xyes"; then
1828 AC_MSG_ERROR([VDPAU not supported on this platform])
1831 AC_MSG_NOTICE($vdpau_disabled)
1836 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1837 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1838 [if test "x$use_vdpau" = "xyes"; then
1840 AC_MSG_ERROR([$vdpau_not_found])
1844 AC_MSG_RESULT($vdpau_not_found)
1849 AC_MSG_NOTICE($vdpau_disabled)
1853 if test "x$use_vaapi" != "xno"; then
1854 if test "$host_vendor" = "apple" ; then
1855 if test "x$use_vaapi" = "xyes"; then
1856 AC_MSG_ERROR([VAAPI not supported on this platform])
1859 AC_MSG_NOTICE($vaapi_disabled)
1863 initial_val=$use_vaapi
1864 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1865 if test "x$use_vaapi" != "xno"; then
1866 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1869 if test "x$use_vaapi" = "xno"; then
1870 if test "x$initial_val" = "xyes"; then
1871 AC_MSG_ERROR($vaapi_not_found)
1873 AC_MSG_RESULT($vaapi_not_found)
1877 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1882 AC_MSG_NOTICE($vaapi_disabled)
1887 if test "x$use_crystalhd" != "xno"; then
1888 SAVE_CFLAGS="$CFLAGS"
1889 CFLAGS="-D__LINUX_USER__"
1890 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1891 [ if test "x$use_crystalhd" = "xyes"; then
1892 AC_MSG_ERROR($crystalhd_not_found)
1895 AC_MSG_RESULT($crystalhd_not_found)
1899 CFLAGS="$SAVE_CFLAGS"
1900 if test "$host_vendor" != "apple"; then
1901 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1903 if test "x$use_crystalhd" != "xno"; then
1904 SAVE_CFLAGS="$CFLAGS"
1905 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1906 # check for new crystalhd lib
1908 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1909 #include <libcrystalhd/bc_dts_defs.h>
1910 PBC_INFO_CRYSTAL bCrystalInfo;])],
1911 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1912 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1913 CFLAGS="$SAVE_CFLAGS"
1917 AC_MSG_NOTICE($crystalhd_disabled)
1922 if test "x$use_vtbdecoder" != "xno"; then
1923 if test "$host_vendor" = "apple" ; then
1924 HAVE_VIDEOTOOLBOXDECODER=1
1925 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1926 AC_MSG_NOTICE($vtbdecoder_enabled)
1928 if test "x$use_vtbdecoder" = "xyes"; then
1929 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1932 AC_MSG_NOTICE($vtbdecoder_disabled)
1936 AC_MSG_NOTICE($vtbdecoder_disabled)
1940 if test "$host_vendor" = "apple" ; then
1943 AC_MSG_NOTICE($openmax_disabled)
1944 elif test "$target_platform" = "target_raspberry_pi"; then
1947 AC_MSG_NOTICE($openmax_disabled)
1949 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1950 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1951 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1952 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1953 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1954 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1955 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1956 AC_MSG_ERROR($openmax_not_found))
1958 AC_MSG_NOTICE($openmax_disabled)
1964 # yajl version check (yajl_version.h was added in yajl 2.0)
1965 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1966 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1969 # additional internal players
1970 case $add_players in
1972 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1976 # additional internal codecs
1977 # remember to convert commas to spaces
1978 for codecs in `echo $add_codecs | sed 's/,/ /g'`; do
1981 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
1982 XB_ADD_CODEC([LIBAMCODEC], [amcodec], [$codecs])
1985 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright], [$codecs])
1991 # platform specific bin utilities
1992 if test "$build_vendor" != "apple" ; then
1993 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1994 if test "$HAVE_GAWK" = "no" ; then
1995 AC_MSG_ERROR($missing_program)
1999 if test "$use_arch" != "arm" ; then
2000 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
2001 if test "$HAVE_CMAKE" = "no" ; then
2002 AC_MSG_ERROR($missing_program)
2006 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
2007 if test "$HAVE_GPERF" = "no" ; then
2008 AC_MSG_ERROR($missing_program)
2011 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
2012 if test "$HAVE_UNZIP" = "no" ; then
2013 AC_MSG_ERROR($missing_program)
2016 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
2017 if test "$HAVE_ZIP" = "no" ; then
2018 AC_MSG_ERROR($missing_program)
2021 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
2022 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
2023 if test "$HAVE_NASM" = "no" ; then
2024 AC_MSG_ERROR($missing_program)
2028 # Checks for header files.
2032 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
2033 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
2034 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
2035 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
2036 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
2038 # Checks for typedefs, structures, and compiler characteristics.
2054 AC_CHECK_MEMBERS([struct stat.st_rdev])
2063 if test "$cross_compiling" = "yes"; then
2064 final_message="$final_message\n Crosscomp.:\tYes"
2065 if [[ -d "$NATIVE_ROOT" ]]; then
2066 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2067 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2068 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
2069 if test "$host_vendor" != "apple" ; then
2070 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
2072 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
2075 final_message="$final_message\n Crosscomp.:\tNo"
2078 final_message="$final_message\n target ARCH:\t$use_arch"
2079 final_message="$final_message\n target CPU:\t$use_cpu"
2081 if test "$use_gles" = "yes"; then
2082 final_message="$final_message\n OpenGLES:\tYes"
2087 if test "$use_gl" = "yes"; then
2088 final_message="$final_message\n OpenGL:\tYes"
2091 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2092 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2097 if test "$use_alsa" = "yes"; then
2099 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2100 final_message="$final_message\n ALSA:\t\tYes"
2103 final_message="$final_message\n ALSA:\t\tNo"
2106 if test "$use_dbus" = "yes"; then
2107 final_message="$final_message\n DBUS:\t\tYes"
2109 final_message="$final_message\n DBUS:\t\tNo"
2112 if test "x$use_vdpau" != "xno"; then
2113 final_message="$final_message\n VDPAU:\tYes"
2115 final_message="$final_message\n VDPAU:\tNo"
2118 if test "x$use_vaapi" != "xno"; then
2119 final_message="$final_message\n VAAPI:\tYes"
2121 final_message="$final_message\n VAAPI:\tNo"
2124 if test "x$use_crystalhd" != "xno"; then
2125 final_message="$final_message\n CrystalHD:\tYes"
2127 final_message="$final_message\n CrystalHD:\tNo"
2130 if test "x$use_vtbdecoder" != "xno"; then
2131 final_message="$final_message\n VTBDecoder:\tYes"
2133 final_message="$final_message\n VTBDecoder:\tNo"
2136 if test "$use_openmax" != "no"; then
2137 final_message="$final_message\n OpenMax:\tYes"
2139 final_message="$final_message\n OpenMax:\tNo"
2142 if test "$use_joystick" = "yes"; then
2143 final_message="$final_message\n Joystick:\tYes"
2144 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2146 final_message="$final_message\n Joystick:\tNo"
2149 if test "$use_xrandr" = "yes"; then
2150 final_message="$final_message\n XRandR:\tYes"
2153 final_message="$final_message\n XRandR:\tNo"
2157 if test "$use_waveform" = "yes"; then
2158 final_message="$final_message\n Waveform:\tYes"
2160 final_message="$final_message\n Waveform:\tNo"
2163 if test "$use_spectrum" = "yes"; then
2164 final_message="$final_message\n Spectrum:\tYes"
2166 final_message="$final_message\n Spectrum:\tNo"
2169 if test "$use_goom" = "yes"; then
2170 final_message="$final_message\n GOOM:\t\tYes"
2172 final_message="$final_message\n GOOM:\t\tNo"
2175 if test "$use_rsxs" = "yes"; then
2176 final_message="$final_message\n RSXS:\t\tYes"
2178 final_message="$final_message\n RSXS:\t\tNo"
2181 if test "$use_fishbmc" = "yes"; then
2182 final_message="$final_message\n FishBMC:\tYes"
2184 final_message="$final_message\n FishBMC:\tNo"
2187 if test "$use_projectm" = "yes"; then
2188 final_message="$final_message\n ProjectM:\tYes"
2190 final_message="$final_message\n ProjectM:\tNo"
2193 if test "$use_skin_touched" = "yes"; then
2194 final_message="$final_message\n Skin Touched:\tYes"
2196 final_message="$final_message\n Skin Touched:\tNo"
2199 if test "$use_x11" = "yes"; then
2200 final_message="$final_message\n X11:\t\tYes"
2202 final_message="$final_message\n X11:\t\tNo"
2205 if test "$use_wayland" = "yes"; then
2206 final_message="$final_message\n Wayland:\tYes"
2210 final_message="$final_message\n Wayland:\tNo"
2213 if test "$use_libbluray" = "yes"; then
2214 final_message="$final_message\n Bluray:\tYes"
2216 final_message="$final_message\n Bluray:\tNo"
2219 if test "x$use_texturepacker" != "xno"; then
2220 final_message="$final_message\n TexturePacker:Yes"
2223 final_message="$final_message\n TexturePacker:No"
2227 if test "$use_mid" = "yes"; then
2228 final_message="$final_message\n MID Support:\tYes"
2229 SDL_DEFINES="$SDL_DEFINES -DMID"
2231 final_message="$final_message\n MID Support:\tNo"
2236 if test "x$use_ccache" != "xno"; then
2237 AC_PATH_PROG(CCACHE,ccache,none)
2238 if test "$ac_cv_path_CCACHE" = "none"; then
2239 if test "x$use_ccache" = "xyes"; then
2240 AC_MSG_ERROR([ccache not found.]);
2242 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2243 final_message="$final_message\n ccache:\tNo"
2246 CC="$ac_cv_path_CCACHE $CC"
2247 CXX="$ac_cv_path_CCACHE $CXX"
2248 AC_MSG_NOTICE(enabling ccache)
2249 final_message="$final_message\n ccache:\tYes"
2252 final_message="$final_message\n ccache:\tNo"
2255 if test "$use_alsa" = "yes"; then
2256 final_message="$final_message\n ALSA Support:\tYes"
2258 final_message="$final_message\n ALSA Support:\tNo"
2261 if test "x$use_pulse" != "xno"; then
2262 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2263 final_message="$final_message\n PulseAudio:\tYes"
2265 XBMC_STANDALONE_SH_PULSE=/dev/null
2266 final_message="$final_message\n PulseAudio:\tNo"
2269 if test "$use_hal" = "yes"; then
2270 final_message="$final_message\n HAL Support:\tYes"
2272 final_message="$final_message\n HAL Support:\tNo"
2276 if test "$use_dvdcss" = "yes"; then
2277 AC_MSG_NOTICE($dvdcss_enabled)
2278 final_message="$final_message\n DVDCSS:\tYes"
2280 SKIP_CONFIG_DVDCSS=0
2281 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2283 AC_MSG_NOTICE($dvdcss_disabled)
2284 final_message="$final_message\n DVDCSS:\tNo"
2286 SKIP_CONFIG_DVDCSS=1
2287 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2289 if test "$host_vendor" = "apple"; then
2290 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2293 # Google Test Framework
2294 if test "$configure_gtest" = "yes"; then
2295 AC_MSG_NOTICE($gtest_enabled)
2296 final_message="$final_message\n Google Test Framework Configured:\tYes"
2300 AC_MSG_NOTICE($gtest_disabled)
2301 final_message="$final_message\n Google Test Framework Configured:\tNo"
2306 if test "$use_avahi" = "yes"; then
2307 final_message="$final_message\n Avahi:\tYes"
2309 final_message="$final_message\n Avahi:\tNo"
2312 if test "$use_mdnsembedded" != "no"; then
2313 final_message="$final_message\n mDNSEmbedded:\tYes"
2315 final_message="$final_message\n mDNSEmbedded:\tNo"
2318 if test "$use_nonfree" = "yes"; then
2319 final_message="$final_message\n Non-free:\tYes"
2321 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2324 final_message="$final_message\n Non-free:\tNo"
2327 if test "$use_asap" = "yes"; then
2328 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2329 if test "$HAVE_GDC" = "no"; then
2330 AC_MSG_ERROR($missing_program);
2332 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2333 if test "$HAVE_FPC" = "no"; then
2334 AC_MSG_ERROR($missing_program);
2337 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2338 final_message="$final_message\n ASAP Codec:\tYes"
2341 final_message="$final_message\n ASAP Codec:\tNo"
2344 if test "$use_mysql" = "yes"; then
2345 final_message="$final_message\n MySQL:\tYes"
2348 final_message="$final_message\n MySQL:\tNo"
2351 if test "$use_webserver" = "yes"; then
2352 final_message="$final_message\n Webserver:\tYes"
2355 final_message="$final_message\n Webserver:\tNo"
2359 if test "$use_libssh" != "no"; then
2360 final_message="$final_message\n libssh support:\tYes"
2362 final_message="$final_message\n libssh support:\tNo"
2365 if test "$use_librtmp" != "no"; then
2366 final_message="$final_message\n libRTMP support:\tYes"
2368 final_message="$final_message\n libRTMP support:\tNo"
2371 if test "x$use_samba" != "xno"; then
2372 final_message="$final_message\n libsmbclient support:\tYes"
2374 final_message="$final_message\n libsmbclient support:\tNo"
2377 if test "$use_libnfs" != "no"; then
2378 final_message="$final_message\n libnfs client support:Yes"
2380 final_message="$final_message\n libnfs client support:No"
2383 if test "x$use_libafpclient" != "xno"; then
2384 final_message="$final_message\n libafpclient support:\tYes"
2386 final_message="$final_message\n libafpclient support:\tNo"
2389 if test "$use_airplay" != "no"; then
2390 final_message="$final_message\n AirPlay support:\tYes"
2392 final_message="$final_message\n AirPLay support:\tNo"
2395 if test "x$use_airtunes" != "xno"; then
2396 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2398 final_message="$final_message\n AirTunes support:\tNo"
2401 if test "x$use_upnp" != "xno"; then
2402 final_message="$final_message\n UPnP support:\t\tYes"
2404 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2407 final_message="$final_message\n UPnP support:\t\tNo"
2410 if test "$use_optical_drive" = "yes"; then
2411 final_message="$final_message\n Optical drive:\tYes"
2413 final_message="$final_message\n Optical drive:\tNo"
2416 if test "x$use_libudev" != "xno"; then
2417 final_message="$final_message\n libudev support:\tYes"
2419 final_message="$final_message\n libudev support:\tNo"
2422 if test "x$use_libusb" != "xno"; then
2423 final_message="$final_message\n libusb support:\tYes"
2425 final_message="$final_message\n libusb support:\tNo"
2428 if test "x$use_libcec" != "xno"; then
2429 final_message="$final_message\n libcec support:\tYes"
2431 final_message="$final_message\n libcec support:\tNo"
2434 if test "x$use_libmp3lame" != "xno"; then
2435 final_message="$final_message\n libmp3lame support:\tYes"
2437 final_message="$final_message\n libmp3lame support:\tNo"
2440 if test "x$use_libvorbisenc" != "xno"; then
2441 final_message="$final_message\n libvorbisenc support:\tYes"
2443 final_message="$final_message\n libvorbisenc support:\tNo"
2446 if test "x$use_libcap" != "xno"; then
2447 final_message="$final_message\n libcap support:\tYes"
2449 final_message="$final_message\n libcap support:\tNo"
2452 if test "x$add_players" != "xno"; then
2453 final_message="$final_message\n additional players:\tYes, $add_players"
2455 final_message="$final_message\n additional players:\tNo"
2458 if test "x$add_codecs" != "xno"; then
2459 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2461 final_message="$final_message\n additional codecs:\tNo"
2464 ### External libraries messages
2466 if test "$host_vendor" = "apple" ; then
2467 # built internal but referenced as external, we link directly to them.
2468 # this MUST be the last thing before OUTPUT_FILES as they do not
2469 # exist until after we build FFMpeg.
2470 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2471 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2472 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2473 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2474 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2475 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2476 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2480 DISABLE_PVR_ADDON_CONFIG=1
2481 if [[ -f "pvr-addons/Makefile.am" ]]; then
2482 final_message="$final_message\n PVR add-ons:\t\tYes"
2484 DISABLE_PVR_ADDON_CONFIG=0
2486 final_message="$final_message\n PVR add-ons:\t\tNo"
2489 OUTPUT_FILES="Makefile \
2491 addons/skin.confluence/media/Makefile \
2493 xbmc/cdrip/Makefile \
2494 xbmc/cores/Makefile \
2495 xbmc/cores/VideoRenderers/Makefile \
2496 xbmc/cores/dvdplayer/Makefile \
2497 lib/libdvd/Makefile \
2498 xbmc/cores/DllLoader/Makefile \
2499 xbmc/cores/DllLoader/exports/Makefile \
2500 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2501 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2502 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2503 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2504 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2505 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2506 xbmc/cores/AudioEngine/Makefile \
2507 xbmc/cores/paplayer/Makefile \
2508 xbmc/cores/omxplayer/Makefile \
2509 lib/timidity/Makefile \
2511 lib/nosefart/Makefile \
2512 lib/libsidplay2/Makefile \
2513 lib/vgmstream/Makefile \
2514 lib/snesapu/SNES/SNESAPU/Makefile \
2515 lib/stsound/StSoundLibrary/Makefile \
2516 xbmc/cores/playercorefactory/Makefile \
2517 xbmc/music/karaoke/Makefile \
2519 xbmc/guilib/Makefile \
2520 xbmc/input/linux/Makefile \
2521 xbmc/interfaces/Makefile \
2522 xbmc/network/Makefile \
2523 xbmc/network/upnp/Makefile \
2524 lib/libRTV/Makefile \
2525 lib/libexif/Makefile \
2526 lib/libXDAAP/Makefile \
2527 lib/cmyth/Makefile \
2528 lib/libhdhomerun/Makefile \
2529 lib/libsquish/Makefile \
2530 lib/cximage-6.0/Makefile \
2531 lib/libUPnP/Makefile \
2532 xbmc/DllPaths_generated.h \
2533 xbmc/DllPaths_generated_android.h \
2534 xbmc/freebsd/Makefile \
2535 xbmc/linux/Makefile \
2536 xbmc/filesystem/Makefile \
2537 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2538 xbmc/visualizations/XBMCProjectM/Makefile \
2539 xbmc/visualizations/Goom/Makefile \
2540 xbmc/visualizations/OpenGLSpectrum/Makefile \
2541 xbmc/visualizations/fishBMC/Makefile \
2542 xbmc/visualizations/WaveForm/Makefile \
2543 xbmc/windowing/Makefile \
2544 xbmc/windowing/egl/Makefile \
2545 lib/addons/library.xbmc.addon/Makefile \
2546 lib/addons/library.xbmc.codec/Makefile \
2547 lib/addons/library.xbmc.gui/Makefile \
2548 lib/addons/library.xbmc.pvr/Makefile \
2549 xbmc/visualizations/EGLHelpers/Makefile \
2550 tools/Linux/xbmc.sh \
2551 tools/Linux/xbmc-standalone.sh \
2552 tools/TexturePacker/Makefile \
2553 tools/EventClients/Clients/OSXRemote/Makefile \
2554 xbmc/peripherals/bus/Makefile \
2555 xbmc/peripherals/devices/Makefile \
2556 xbmc/android/activity/Makefile \
2557 xbmc/android/loader/Makefile \
2558 xbmc/android/jni/Makefile \
2559 xbmc/utils/Makefile \
2560 xbmc/main/Makefile \
2561 project/cmake/xbmc-config.cmake"
2563 if test "$use_wayland" = "yes"; then
2564 OUTPUT_FILES="$OUTPUT_FILES xbmc/windowing/tests/wayland/Makefile"
2567 if test "$use_skin_touched" = "yes"; then
2568 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2571 if test "$use_codec_libstagefright" = "yes"; then
2572 OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile"
2575 OUTPUT_FILES="$OUTPUT_FILES \
2576 xbmc/interfaces/python/Makefile \
2577 xbmc/interfaces/python/test/Makefile"
2579 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2580 # .dummy.am does nothing.
2581 AC_CONFIG_FILES([.dummy])
2583 AC_CONFIG_FILES([${OUTPUT_FILES}])
2584 OUTPUT_FILES="$OUTPUT_FILES \
2590 AC_SUBST(CXX_FOR_BUILD)
2591 AC_SUBST(CC_FOR_BUILD)
2592 AC_SUBST(CFLAGS_FOR_BUILD)
2593 AC_SUBST(CXXFLAGS_FOR_BUILD)
2594 AC_SUBST(LDFLAGS_FOR_BUILD)
2595 AC_SUBST(SDL_DEFINES)
2596 AC_SUBST(BUILD_DVDCSS)
2597 AC_SUBST(DISABLE_WAVEFORM)
2598 AC_SUBST(DISABLE_SPECTRUM)
2599 AC_SUBST(DISABLE_GOOM)
2600 AC_SUBST(DISABLE_RSXS)
2601 AC_SUBST(DISABLE_FISHBMC)
2602 AC_SUBST(DISABLE_PROJECTM)
2603 AC_SUBST(FFMPEG_LIBDIR)
2604 AC_SUBST(USE_STATIC_FFMPEG)
2605 AC_SUBST(GNUTLS_ALL_LIBS)
2606 AC_SUBST(VORBISENC_ALL_LIBS)
2607 AC_SUBST(USE_SKIN_TOUCHED)
2608 AC_SUBST(USE_LIBAV_HACKS)
2609 AC_SUBST(PYTHON_VERSION)
2610 AC_SUBST(OUTPUT_FILES)
2611 AC_SUBST(HAVE_XBMC_NONFREE)
2612 AC_SUBST(USE_ASAP_CODEC)
2613 AC_SUBST(LIBCURL_BASENAME)
2614 AC_SUBST(LIBFLAC_BASENAME)
2615 AC_SUBST(LIBVORBISFILE_BASENAME)
2616 AC_SUBST(LIBMODPLUG_BASENAME)
2617 AC_SUBST(LIBOGG_BASENAME)
2618 AC_SUBST(LIBVORBISENC_BASENAME)
2619 AC_SUBST(LIBVORBIS_BASENAME)
2620 AC_SUBST(LIBASS_BASENAME)
2621 AC_SUBST(LIBMEPG2_BASENAME)
2622 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2623 AC_SUBST(USE_OPENGL)
2624 AC_SUBST(USE_OPENGLES)
2627 AC_SUBST(USE_CRYSTALHD)
2628 AC_SUBST(USE_LIBSMBCLIENT)
2629 AC_SUBST(USE_LIBNFS)
2630 AC_SUBST(USE_LIBAFPCLIENT)
2631 AC_SUBST(USE_AIRPLAY)
2632 AC_SUBST(USE_OPENMAX)
2634 AC_SUBST(HAVE_LIBPULSE)
2635 AC_SUBST(USE_XRANDR)
2637 AC_SUBST(USE_TEXTUREPACKER)
2638 AC_SUBST(USE_AIRTUNES)
2639 AC_SUBST(USE_LIBUDEV)
2640 AC_SUBST(USE_LIBUSB)
2641 AC_SUBST(USE_LIBCEC)
2643 AC_SUBST(USE_WAYLAND)
2644 AC_SUBST(USE_WEB_SERVER)
2646 AC_SUBST(USE_XKBCOMMON)
2647 AC_SUBST(USE_OMXLIB)
2648 AC_SUBST(USE_ANDROID)
2649 AC_SUBST(GTEST_CONFIGURED)
2650 AC_SUBST(USE_DOXYGEN)
2651 AC_SUBST(USE_PVR_ADDONS)
2653 # pushd and popd are not available in other shells besides bash, so implement
2654 # our own pushd/popd functions
2659 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2661 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2664 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2669 if [[ -n "$XB_DIRSTACK" ]]; then
2670 XB_DIRSTACK="${XB_DIRSTACK#* }"
2671 cd "${XB_DIRSTACK%% *}"
2674 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2678 # Function to run the configure scripts in our submodules
2679 # Consists of three paramaters, the path to the submodule, the configure command
2680 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2681 # running the script, anything else if not.
2682 AC_DEFUN([XB_CONFIG_MODULE],[
2683 AC_CONFIG_COMMANDS_POST([
2684 if [[ $3 != "1" ]]; then
2685 if [[ -d $1 ]]; then
2688 if [[ $? -ne 0 ]]; then
2690 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2695 AC_MSG_ERROR([[Submodule $1 does not exist]])
2698 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2703 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2707 CFLAGS="$CFLAGS $DROID_DVDLIB_SEEK64" \
2708 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2709 --host=$host_alias \
2710 --build=$build_alias \
2711 --target=$target_alias \
2715 ], [$SKIP_CONFIG_DVDCSS])
2717 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2719 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src $DROID_DVDLIB_SEEK64" \
2720 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2721 --host=$host_alias \
2722 --build=$build_alias \
2723 --target=$target_alias \
2729 mkdir -p `pwd`/../includes/dvdread
2730 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2731 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2734 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2736 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes $DROID_DVDLIB_SEEK64" \
2737 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2738 --with-dvdread-config="`pwd`/../dvdread-config" \
2739 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2740 --host=$host_alias \
2741 --build=$build_alias \
2742 --target=$target_alias \
2748 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2750 rm -f CMakeCache.txt && \
2751 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2752 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2753 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2754 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2755 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2756 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2757 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2758 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2759 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2760 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2761 if test "$host_vendor" = "apple" ; then
2762 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2763 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2764 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2765 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2768 ], [$DISABLE_PROJECTM])
2770 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2773 CXXFLAGS="$CXXFLAGS" \
2774 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2775 --host=$host_alias \
2776 --build=$build_alias \
2777 --target=$target_alias \
2783 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2784 if test "$host_vendor" = "apple"; then
2785 # clang treats inlines different
2788 TEMPCFLAGS="$CFLAGS";;
2790 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";;
2793 TEMPCFLAGS="$CFLAGS";
2798 CFLAGS="$TEMPCFLAGS" \
2799 CXXFLAGS="$CXXFLAGS" \
2800 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2801 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2802 --host=$host_alias \
2803 --build=$build_alias \
2804 --target=$target_alias \
2805 --without-xscreensaver \
2808 --disable-fieldlines \
2812 --disable-hyperspace \
2815 if echo "$ARCH" | grep -q freebsd ; then
2816 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2820 XB_CONFIG_MODULE([lib/cpluff], [
2821 ./configure --disable-nls \
2822 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2823 --host=$host_alias \
2824 --build=$build_alias \
2825 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2826 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2829 XB_CONFIG_MODULE([lib/gtest], [
2834 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2835 --host=$host_alias \
2836 --build=$build_alias \
2837 --target=$target_alias \
2841 ], [$SKIP_CONFIG_GTEST])
2843 XB_CONFIG_MODULE([pvr-addons], [
2845 --prefix="${prefix}" \
2846 --host=$host_alias \
2847 --build=$build_alias \
2848 --target=$target_alias \
2852 CXXFLAGS="$CXXFLAGS"
2853 ], [$DISABLE_PVR_ADDON_CONFIG])
2857 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2858 echo -e "$final_message\n"