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([libcap],
508 [AS_HELP_STRING([--enable-libcap],
509 [enable libcap support (default is auto)])],
510 [use_libcap=$enableval],
513 AC_ARG_ENABLE([player],
514 [AS_HELP_STRING([--enable-player],
515 [enable additional players from a list of comma separated names, (default is none, choices are omxplayer)])],
516 [add_players=$enableval],
519 AC_ARG_ENABLE([gtest],
520 [AS_HELP_STRING([--enable-gtest],
521 [configure Google Test Framework (default is yes)])],
522 [configure_gtest=$enableval],
523 [configure_gtest=yes])
525 AC_ARG_ENABLE([codec],
526 [AS_HELP_STRING([--enable-codec],
527 [enable additional codecs from a list of comma separated names, (default is none, choices are amcodec, libstagefright)])],
528 [add_codecs=$enableval],
531 AC_ARG_ENABLE([libav-compat],
532 [AS_HELP_STRING([--enable-libav-compat],
533 [build a wrapper around libav to provide the functions needed by XBMC. This is
534 *not* supported by XBMC developers and is provided only for convenience. (default is no) 'Linux only'])],
535 [use_libav_hacks=$enableval],
536 [use_libav_hacks=no])
538 ### End of external library options
540 if test "x$host_vendor" != "xapple"; then
541 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
542 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
545 # Checks for programs.
546 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
549 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
550 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
552 AX_PROG_CXX_FOR_BUILD
553 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
560 OBJDUMP="${OBJDUMP:-objdump}"
562 # host detection and setup
564 i*86*-linux-android*)
565 target_platform=target_android
576 i*86*-linux-gnu*|i*86*-*-linux-uclibc*)
578 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
584 x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
586 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
597 ARCH="x86_64-freebsd"
613 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
614 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
615 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
616 PYTHON_NOVERSIONCHECK="no-check"
617 DEPENDS_ROOT_FOR_XCODE=$(echo ${prefix%/*})
618 AC_SUBST([DEPENDS_ROOT_FOR_XCODE])
624 DEPENDS_ROOT_FOR_XCODE=$(echo ${prefix%/*})
625 AC_SUBST([DEPENDS_ROOT_FOR_XCODE])
627 powerpc-apple-darwin*)
633 DEPENDS_ROOT_FOR_XCODE=$(echo ${prefix%/*})
634 AC_SUBST([DEPENDS_ROOT_FOR_XCODE])
636 powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*)
639 powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*)
640 ARCH="powerpc64-linux"
642 arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
653 arm*-*linux-android*)
654 target_platform=target_android
668 AC_MSG_ERROR(unsupported host ($host))
672 check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
673 if test "x$check_sdl_arch" = "xi386" ; then
674 DARWIN_NATIVE_ARCH=-m32
675 elif test "x$check_sdl_arch" = "xx86_64" ; then
676 DARWIN_NATIVE_ARCH=-m64
678 AC_SUBST([DARWIN_NATIVE_ARCH])
680 if test "$target_platform" = "target_android" ; then
682 webserver_checkdepends=yes
683 CFLAGS="$CFLAGS -Wno-psabi"
684 DROID_DVDLIB_SEEK64="-D_FILE_OFFSET_BITS=64 -D_OFF_T_DEFINED_ -Doff_t=off64_t -Dlseek=lseek64"
685 CXXFLAGS="$CXXFLAGS -Wno-psabi"
686 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
689 case $use_platform in
691 target_platform=target_raspberry_pi
695 use_hardcoded_tables="yes"
698 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
699 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
705 XBMC_SETUP_ARCH_DEFINES()
708 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
709 if test "$GIT_REV" = ""; then
710 if test -f VERSION ; then
711 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
712 elif test "$HAVE_GIT" = "yes" -a -d ${abs_top_srcdir}/.git; then
713 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
718 final_message="$final_message\n git Rev.:\t${GIT_REV}"
720 # detect Xbmc soname version
721 # version can be overridden by setting the following as ENV vars when running configure
722 APP_VERSION_MAJOR=${APP_VERSION_MAJOR-$(${AWK} '/VERSION_MAJOR/ {print $2}' version.txt)}
723 APP_VERSION_MINOR=${APP_VERSION_MINOR-$(${AWK} '/VERSION_MINOR/ {print $2}' version.txt)}
724 APP_VERSION_TAG=${APP_VERSION_TAG-$(${AWK} '/VERSION_TAG/ {print $2}' version.txt)}
725 APP_VERSION_TAG_LC=$(echo $APP_VERSION_TAG | ${AWK} '{print tolower($0)}')
726 APP_VERSION_CODE=${APP_VERSION_CODE-$(${AWK} '/VERSION_CODE/ {print $2}' version.txt)}
727 APP_ADDON_API=${APP_ADDON_API-$(${AWK} '/ADDON_API/ {print $2}' version.txt)}
728 if test "$APP_VERSION_MAJOR" != "" && test "$APP_VERSION_MINOR" != "" && test "$APP_VERSION_TAG" != "" \
729 && test "$APP_VERSION_CODE" != "" && test "$APP_ADDON_API" != ""; then
730 final_message="$final_message\n Xbmc Version:\t${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}-${APP_VERSION_TAG}"
731 AC_SUBST(APP_VERSION_MAJOR)
732 AC_SUBST(APP_VERSION_MINOR)
733 AC_SUBST(APP_VERSION_TAG)
734 AC_SUBST(APP_VERSION_TAG_LC)
735 AC_SUBST(APP_VERSION_CODE)
736 AC_SUBST(APP_ADDON_API)
738 AC_MSG_ERROR(could not detect XBMC Version, make sure version.txt is complete)
741 if test "$host_vendor" = "apple"; then
742 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
744 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
747 if test "$build_shared_lib" = "yes"; then
748 final_message="$final_message\n Shared lib\tYes"
749 AC_SUBST(USE_LIBXBMC,1)
753 # platform debug flags
754 if test "$use_debug" = "yes"; then
755 final_message="$final_message\n Debugging:\tYes"
756 if test "$use_profiling" = "yes"; then
757 final_message="$final_message\n Profiling:\tYes"
758 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
760 final_message="$final_message\n Profiling:\tNo"
761 DEBUG_FLAGS="-g -D_DEBUG -Wall"
764 final_message="$final_message\n Debugging:\tNo"
765 if test "$use_profiling" = "yes"; then
766 final_message="$final_message\n Profiling:\tYes"
767 DEBUG_FLAGS="-pg -DNDEBUG=1"
769 final_message="$final_message\n Profiling:\tNo"
770 DEBUG_FLAGS="-DNDEBUG=1"
773 CFLAGS="$CFLAGS $DEBUG_FLAGS"
774 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
777 if test "$use_optimizations" = "yes"; then
778 final_message="$final_message\n Optimization:\tYes"
779 if test "$target_platform" = "target_raspberry_pi"; then
783 CXXFLAGS="-O2 $CXXFLAGS"
787 final_message="$final_message\n Optimization:\tNo"
791 # platform specific flags
792 if echo "$ARCH" | grep -q "freebsd" ; then
793 LOCALBASE="${LOCALBASE:-/usr/local}"
794 CFLAGS="$CFLAGS -I$LOCALBASE/include"
795 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
796 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
797 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
799 if test "$host_vendor" = "apple" ; then
800 # standard xbmc paths
801 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
802 if test "$use_arch" != "arm"; then
803 LIBS="$LIBS -framework ApplicationServices"
804 LIBS="$LIBS -framework AudioUnit"
805 LIBS="$LIBS -framework AudioToolbox"
806 LIBS="$LIBS -framework Cocoa"
807 LIBS="$LIBS -framework CoreAudio"
808 LIBS="$LIBS -framework CoreVideo"
809 LIBS="$LIBS -framework CoreServices"
810 LIBS="$LIBS -framework CoreFoundation"
811 LIBS="$LIBS -framework DiskArbitration"
812 LIBS="$LIBS -framework IOKit"
813 LIBS="$LIBS -framework IOSurface"
814 LIBS="$LIBS -framework QuartzCore"
815 LIBS="$LIBS -framework SystemConfiguration"
816 LIBS="$LIBS -framework VideoDecodeAcceleration"
818 elif test "$target_platform" = "target_raspberry_pi"; then
821 elif test "$use_arch" = "arm"; then
822 CFLAGS="$CFLAGS -mno-apcs-stack-check"
823 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
824 if test "$use_tegra" = "yes"; then
825 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
826 SAVE_CFLAGS="$CFLAGS"
827 CFLAGS="-mfpu=vfpv3-d16"
829 [AC_LANG_SOURCE([int foo;])],
830 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
831 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
833 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
834 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
837 if test "$use_neon" = "yes"; then
838 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
839 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
844 # Checks for library functions.
847 AC_FUNC_CLOSEDIR_VOID
848 AC_FUNC_ERROR_AT_LINE
850 AC_PROG_GCC_TRADITIONAL
852 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
856 # Boxee is apparently having compile problems
857 # if HAVE_REALLOC is defined. Sort this later.
859 AC_FUNC_SELECT_ARGTYPES
860 AC_FUNC_SETVBUF_REVERSED
868 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])
870 # Check for various sizes
871 AC_CHECK_SIZEOF([int])
872 AC_CHECK_SIZEOF([size_t])
874 # Check for intrinsics
875 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
876 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
877 [have_builtin_sync_add_and_fetch=yes],
878 [have_builtin_sync_add_and_fetch=no])
879 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
880 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
881 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
882 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
885 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
886 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
887 [have_builtin_sync_sub_and_fetch=yes],
888 [have_builtin_sync_sub_and_fetch=no])
889 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
890 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
891 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
892 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
895 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
896 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
897 [have_builtin_sync_val_compare_and_swap=yes],
898 [have_builtin_sync_val_compare_and_swap=no])
899 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
900 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
901 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
902 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
905 # Check for u16string/u32string declarations
907 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
908 AC_CHECK_TYPES([char16_t, char32_t])
909 AC_CHECK_SIZEOF([wchar_t])
912 # Add top source directory for all builds so we can use config.h
913 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
915 # Check inotify availability
916 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
918 # Checks for boost headers using CXX instead of CC
920 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
924 if test -z "$PYTHON_NOVERSIONCHECK"; then
925 AX_PYTHON_DEVEL([>= 2.4])
926 PYTHON_VERSION=$ac_python_version
929 if test -z "$PYTHON_VERSION"; then
930 AC_MSG_ERROR([Can't find a Python version.])
932 LIBS="$LIBS $PYTHON_LDFLAGS"
933 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
937 if test "$use_wayland" = "yes" && test "$host_vendor" != "apple"; then
938 AC_MSG_NOTICE($wayland_enabled)
939 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client],
940 [INCLUDES="$INCLUDES $WAYLAND_CLIENT_CFLAGS";
941 WAYLAND_CLIENT_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-client\`; echo ${LIBRARY:2}`;
942 XB_FIND_SONAME([WAYLAND_CLIENT_LIBRARY], ${WAYLAND_CLIENT_LIBRARY_LINE})],
943 AC_MSG_ERROR($missing_library))
944 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],
945 [INCLUDES="$INCLUDES $WAYLAND_EGL_CFLAGS";
946 WAYLAND_EGL_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-egl\`; echo ${LIBRARY:2:11}`
947 XB_FIND_SONAME([WAYLAND_EGL_LIBRARY], ${WAYLAND_EGL_LIBRARY_LINE})],
948 AC_MSG_ERROR($missing_library))
949 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
950 [INCLUDES="$INCLUDES $XKBCOMMON_CFLAGS";
951 XKBCOMMON_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l xkbcommon\`; echo ${LIBRARY:2}`;
952 XB_FIND_SONAME([XKBCOMMON_LIBRARY], $XKBCOMMON_LIBRARY_LINE)],
953 AC_MSG_ERROR($missing_library))
954 AC_DEFINE([HAVE_WAYLAND], [1], [Define to 1 if you have Wayland libs installed.])
955 AC_DEFINE([HAVE_XKBCOMMON], [1], [Define to 1 if you have libxkbcommon installed.])
957 # If we are also building with tests then we want to build
958 # wayland tests as well
959 if test "$configure_gtest" = "yes"; then
961 PKG_CHECK_MODULES([PIXMAN],
962 [pixman-1],have_pixman=yes,
963 [AC_MSG_WARN($missing_library); have_pixman=no])
964 PKG_CHECK_MODULES([WESTON],
965 [weston >= 1.1.90],[have_weston_sdk=yes],
966 [have_weston_sdk=no; AC_MSG_WARN($missing_library)])
968 AC_CHECK_PROG(WAYLAND_SCANNER, wayland-scanner, "wayland-scanner", "no")
969 if test "x$WAYLAND_SCANNER" == "xno"; then
970 AC_MSG_WARN($missing_program)
972 if test "x$have_weston_sdk" == "xyes" && test "x$have_pixman" = "xyes"; then
973 AC_SUBST(WAYLAND_TEST_INCLUDES,"$WAYLAND_CLIENT_CFLAGS $XKBCOMMON_CFLAGS $PIXMAN_CFLAGS $WESTON_CFLAGS")
974 AC_SUBST(WAYLAND_TEST_LIBS,"$WAYLAND_CLIENT_LIBS $XKBCOMMON_LIBS $PIXMAN_LIBS $WESTON_LIBS")
975 AC_DEFINE([HAVE_WESTON_SDK], [1], [Define to 1 if Weston SDK is installed.])
976 AC_SUBST(USE_WAYLAND_TEST_EXTENSION, 1)
978 AC_SUBST(WAYLAND_SCANNER)
979 AC_DEFINE([HAVE_WAYLAND_XBMC_PROTO],[1],["Define to 1 if the wayland test-protocol will be built"])
983 # Disable SDL and X11 builds
988 # Wayland requires the EGL "window system" which in turn only supports
989 # the OpenGL ES API, so enable gles support
992 AC_MSG_RESULT($wayland_disabled)
995 # Checks for platforms libraries.
996 if test "$use_gles" = "yes"; then
998 # GLES overwrites GL if both set to yes.
999 if test "$host_vendor" = "apple" ; then
1000 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1001 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1002 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1004 if test "$target_platform" = "target_raspberry_pi"; then
1005 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1006 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1007 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1008 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
1010 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
1011 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
1015 if test "$use_gl" = "yes"; then
1016 if test "$host_vendor" = "apple" ; then
1017 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
1018 LIBS="$LIBS -framework OpenGL"
1019 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
1020 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
1021 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
1022 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
1023 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1025 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
1026 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1027 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
1030 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
1031 AC_CHECK_LIB([SDL_gfx],[main])
1035 # platform common libraries
1036 if test "$use_mysql" = "yes"; then
1037 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
1038 if test "x$MYSQL_CONFIG" != "xno"; then
1039 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
1040 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
1041 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
1042 LIBS="$LIBS $MYSQL_LIBS"
1043 AC_SUBST(MYSQL_LIBS)
1045 AC_MSG_ERROR($missing_program)
1048 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1049 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1050 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1051 AC_INCLUDES_DEFAULT()
1052 [#include <mpeg2dec/mpeg2.h>])
1053 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1054 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1055 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1056 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1057 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1058 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1060 # we need to check for the header because if it exists we set the openssl
1061 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1062 # in MT manner correctly.
1063 AC_MSG_CHECKING([for CRYPTO_set_locking_callback(0)])
1064 AC_TRY_LINK([],[CRYPTO_set_locking_callback(0);],
1065 [have_curl_static=yes],
1066 [have_curl_static=no])
1067 AC_MSG_RESULT($have_curl_static)
1068 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1069 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1070 if test "$gcrypt_headers_available" = "yes"; then
1071 # if we have the headers then we must have the lib
1072 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1073 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1074 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1076 PKG_CHECK_MODULES([GNUTLS], [gnutls], [have_gnutls=yes];AC_DEFINE([HAVE_GNUTLS], [1], [Define if we have gnutls]), AC_MSG_WARN("gnutls not found"))
1078 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1079 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1080 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1081 if echo "$ARCH" | grep -q freebsd; then
1082 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1083 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1084 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1085 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1087 if test "$target_platform" != "target_android" ; then
1088 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1089 AC_CHECK_LIB([pthread], [pthread_setname_np],
1090 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1091 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1094 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1095 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1096 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1097 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1098 if test "$use_mysql" = "yes"; then
1099 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1101 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1102 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1103 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1104 if test "$target_platform" = "target_android" ; then
1105 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1106 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1107 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1109 PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
1110 [INCLUDES="$INCLUDES $LIBXML_CFLAGS"; LIBS="$LIBS $LIBXML_LIBS"],
1111 AC_MSG_ERROR($missing_library))
1112 PKG_CHECK_MODULES([LIBXSLT], [libxslt],
1113 [INCLUDES="$INCLUDES $LIBXSLT_CFLAGS"; LIBS="$LIBS $LIBXSLT_LIBS"],
1114 AC_MSG_ERROR($missing_library))
1115 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1116 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1117 AC_MSG_ERROR($missing_library))
1118 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1119 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1120 AC_MSG_ERROR($missing_library))
1121 PKG_CHECK_MODULES([PNG], [libpng],
1122 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1123 AC_MSG_ERROR($missing_library))
1124 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1125 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1126 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1127 AC_MSG_ERROR($missing_library))
1128 PKG_CHECK_MODULES([PCRE], [libpcre],
1129 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1130 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1131 AC_MSG_ERROR($missing_library))
1132 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1133 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1134 AC_MSG_ERROR($missing_library))
1135 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1136 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1137 AC_MSG_ERROR($missing_library))
1139 if test "$use_optical_drive" = "yes"; then
1140 PKG_CHECK_MODULES([CDIO], [libcdio],
1141 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1142 AC_MSG_ERROR($missing_library))
1145 if test "$target_platform" = "target_android" ; then
1146 PKG_CHECK_MODULES([ZIP], [libzip],
1147 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1148 AC_MSG_ERROR($missing_library))
1151 # check for libbluray
1152 AS_CASE([x$use_libbluray],
1154 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1157 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1160 AS_CASE([x$use_libbluray],
1162 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1163 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1164 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1165 AC_SUBST([HAVE_LIBBLURAY], 1)
1166 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1167 AC_CHECK_DECL([BD_EVENT_IDLE],
1168 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1169 [[#include <libbluray/bluray.h>]]))
1171 AC_SUBST([HAVE_LIBBLURAY], 0)
1175 #Check to see if libs are needed for functions that are often built-in to libc
1176 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1177 AC_SEARCH_LIBS([dlopen],dl)
1178 AC_SEARCH_LIBS([clock_gettime],rt)
1179 AC_SEARCH_LIBS([dn_expand], resolv)
1180 AC_SEARCH_LIBS([_dn_expand], resolv)
1181 AC_SEARCH_LIBS([__dn_expand],resolv)
1183 # platform dependent libraries
1184 if test "$host_vendor" = "apple" ; then
1185 if test "$use_arch" != "arm"; then
1186 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1187 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1190 if test "$target_platform" != "target_android" ; then
1191 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1193 if test "x$use_alsa" != "xno"; then
1194 PKG_CHECK_MODULES([ALSA], [alsa],
1195 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1196 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1198 PKG_CHECK_MODULES([DBUS], [dbus-1],
1199 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1200 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1201 AC_MSG_NOTICE($missing_library); use_dbus=no)
1202 if test "x$use_sdl" != "xno"; then
1203 PKG_CHECK_MODULES([SDL], [sdl],
1204 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1205 AC_MSG_ERROR($missing_library))
1206 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1207 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1211 XB_FIND_SONAME([OGG], [ogg])
1212 XB_FIND_SONAME([CURL], [curl])
1213 XB_FIND_SONAME([FLAC], [FLAC])
1214 XB_FIND_SONAME([VORBIS], [vorbis])
1215 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1216 XB_FIND_SONAME([MODPLUG], [modplug])
1217 XB_FIND_SONAME([ASS], [ass])
1218 XB_FIND_SONAME([MPEG2], [mpeg2])
1221 if test "$use_webserver" = "yes"; then
1222 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1226 if test "$use_optical_drive" = "yes"; then
1227 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1231 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1232 PKG_CHECK_MODULES([ALSA], [alsa],
1233 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1234 AC_MSG_ERROR($missing_library))
1235 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1238 AC_MSG_RESULT($alsa_disabled)
1242 if test "x$use_pulse" != "xno"; then
1243 if test "$host_vendor" = "apple" ; then
1244 if test "x$use_pulse" = "xyes"; then
1245 AC_MSG_ERROR($pulse_disabled)
1248 AC_MSG_RESULT($pulse_disabled)
1252 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0],
1253 [INCLUDES="$INCLUDES $PULSE_CFLAGS"; LIBS="$LIBS $PULSE_LIBS"; USE_PULSE=1;
1254 HAVE_LIBPULSE=1; AC_DEFINE([HAVE_LIBPULSE],[1],[Pulse audio enabled])],
1255 [pulse_found="no"; USE_PULSE=0; HAVE_LIBPULSE=0])
1257 if test "$pulse_found" = "no"; then
1258 if test "x$use_pulse" = "xyes"; then
1259 AC_MSG_ERROR($pulse_not_found)
1261 AC_MSG_RESULT($pulse_disabled)
1266 AC_MSG_RESULT($pulse_disabled)
1271 if test "$host_vendor" = "apple" ; then
1273 AC_MSG_RESULT($hal_disabled)
1275 if test "$use_hal" = "yes"; then
1276 PKG_CHECK_MODULES([HAL], [hal],
1277 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1278 use_hal=no;AC_MSG_RESULT($hal_not_found))
1279 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1280 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1281 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1283 AC_MSG_RESULT($hal_disabled)
1285 if test "$use_hal" = "yes"; then
1286 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1291 if test "$host_vendor" = "apple" ; then
1293 AC_MSG_RESULT($avahi_disabled)
1295 if test "$use_avahi" = "yes"; then
1296 AC_CHECK_LIB([avahi-common], [main],,
1297 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1298 if test "$use_avahi" = "yes"; then
1299 #either both libs or none
1300 AC_CHECK_LIB([avahi-client], [main],,
1301 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1304 AC_MSG_RESULT($avahi_disabled)
1309 if test "$use_mdnsembedded" != "no"; then
1310 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1311 [if test "$use_mdnsembedded" = "yes"; then
1312 AC_MSG_ERROR($mdnsembedded_not_found)
1314 elif test "$use_mdnsembedded" != "no"; then
1315 AC_MSG_NOTICE($mdnsembedded_not_found)
1316 use_mdnsembedded="no"
1320 if test $use_mdnsembedded != "no"; then
1324 AC_MSG_RESULT($mdnsembedded_disabled)
1327 AC_SUBST(USE_MDNSEMBEDDED)
1330 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1331 AC_MSG_NOTICE($x11_enabled)
1332 PKG_CHECK_MODULES([X11], [x11],
1333 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1334 AC_MSG_ERROR($missing_library))
1335 PKG_CHECK_MODULES([XEXT], [xext],
1336 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1337 AC_MSG_ERROR($missing_library))
1338 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1340 AC_MSG_RESULT($x11_disabled)
1344 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1346 AC_MSG_RESULT($xrandr_disabled)
1348 if test "$use_xrandr" = "yes" ; then
1349 AC_CHECK_LIB([Xrandr], [main],,
1350 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1352 AC_MSG_RESULT($xrandr_disabled)
1357 if test "$use_waveform" = "yes"; then
1358 AC_MSG_NOTICE($waveform_enabled)
1361 AC_MSG_NOTICE($waveform_disabled)
1366 if test "$use_spectrum" = "yes"; then
1367 AC_MSG_NOTICE($spectrum_enabled)
1370 AC_MSG_NOTICE($spectrum_disabled)
1375 if test "$host_vendor" = "apple" ; then
1376 AC_MSG_NOTICE($goom_disabled)
1379 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1380 AC_MSG_NOTICE($goom_enabled)
1383 AC_MSG_NOTICE($goom_disabled)
1389 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1390 AC_MSG_NOTICE($rsxs_disabled)
1393 AC_MSG_NOTICE($rsxs_enabled)
1395 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1396 if test "$host_vendor" != "apple" ; then
1397 PKG_CHECK_MODULES([XT], [xt],
1398 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1399 AC_MSG_ERROR($missing_library))
1400 PKG_CHECK_MODULES([XMU], [xmu],
1401 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1402 AC_MSG_ERROR($missing_library))
1407 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1408 AC_MSG_NOTICE($fishbmc_disabled)
1412 AC_MSG_NOTICE($fishbmc_enabled)
1417 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1418 AC_MSG_NOTICE($projectm_disabled)
1422 AC_MSG_NOTICE($projectm_enabled)
1428 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1429 use_skin_touched=yes
1431 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1437 if test "x$use_ssh" = "xno"; then
1438 AC_MSG_NOTICE($ssh_disabled)
1441 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1442 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1446 if test "x$have_curl_static" = "xyes"; then
1447 AC_DEFINE([HAS_CURL_STATIC], [1], [Whether OpenSSL inside libcurl is static.])
1451 if test "$use_librtmp" != "no"; then
1452 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1453 [if test "$use_librtmp" = "yes"; then
1454 AC_MSG_ERROR($librtmp_not_found)
1455 elif test "$use_librtmp" != "no"; then
1456 AC_MSG_NOTICE($librtmp_not_found)
1460 if test "$use_librtmp" != "no"; then
1461 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1463 if test "$use_librtmp" != "no"; then
1464 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1467 AC_MSG_NOTICE($librtmp_disabled)
1471 if test "x$use_samba" != "xno"; then
1472 PKG_CHECK_MODULES([SAMBA], [smbclient],
1473 [INCLUDES="$INCLUDES $SAMBA_CFLAGS"; LIBS="$LIBS $SAMBA_LIBS"],
1474 [AC_CHECK_LIB([smbclient], [main],,
1475 use_samba=no;AC_MSG_ERROR($missing_library))
1479 AC_MSG_RESULT($samba_disabled)
1483 if test "x$use_samba" != "xno"; then
1484 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1489 if test "$use_libnfs" != "no"; then
1490 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1491 [if test "$use_libnfs" = "yes"; then
1492 AC_MSG_ERROR($libnfs_not_found)
1494 elif test "$use_libnfs" != "no"; then
1495 AC_MSG_NOTICE($libnfs_not_found)
1500 if test "$use_libnfs" != "no"; then
1501 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1503 if test "$use_libnfs" != "no"; then
1504 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1509 AC_MSG_NOTICE($libnfs_disabled)
1514 if test "x$use_libafpclient" != "xno"; then
1515 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1516 [if test "x$use_libafpclient" = "xyes"; then
1517 AC_MSG_ERROR($libafpclient_not_found)
1518 elif test "x$use_libafpclient" != "xno"; then
1519 AC_MSG_NOTICE($libafpclient_not_found)
1520 use_libafpclient="no"
1523 if test "x$use_libafpclient" != "xno"; then
1524 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1525 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1529 AC_MSG_NOTICE($libafpclient_disabled)
1532 # libplist for airplay feature
1534 if test "$use_airplay" != "no"; then
1535 AC_CHECK_HEADER([plist/plist.h],,
1536 [if test "$use_airplay" = "yes"; then
1537 AC_MSG_ERROR($libplist_not_found)
1538 elif test "$use_airplay" != "no"; then
1539 AC_MSG_NOTICE($libplist_not_found)
1544 if test "$use_airplay" != "no"; then
1545 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1547 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1551 # libshairplay for AirTunes
1553 if test "x$use_airtunes" != "xno"; then
1554 AC_CHECK_HEADERS([shairplay/raop.h],USE_AIRTUNES=1,
1555 [AC_MSG_NOTICE($libshairplay_not_found)
1558 if test "x$USE_AIRTUNES" != "x0"; then
1559 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [USE_AIRTUNES])
1560 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1561 [[#include <shairplay/raop.h>]])
1562 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1565 if test "x$USE_AIRTUNES" == "x0"; then
1566 if test "x$use_airtunes" == "xyes"; then
1567 AC_MSG_ERROR("No airtunes library could be found. (libshairplay)")
1575 if test "$host_vendor" = "apple" ; then
1577 AC_MSG_NOTICE($libudev_disabled)
1579 if test "$use_libudev" = "auto"; then
1580 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1581 elif test "$use_libudev" = "yes" ; then
1582 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1584 AC_MSG_NOTICE($libudev_disabled)
1587 if test "x$use_libudev" != "xno"; then
1588 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1589 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1596 # if libudev is available, we don't need libusb
1597 if test "x$use_libudev" != "xno"; then
1599 AC_MSG_NOTICE($libusb_disabled_udev_found)
1601 if test "$host_vendor" = "apple" ; then
1603 AC_MSG_NOTICE($libusb_disabled)
1605 if echo "$ARCH" | grep -q freebsd ; then
1606 AC_CHECK_LIB([usb],[main],
1607 [use_libusb="yes";USB_LIBS="-lusb"],
1608 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1609 elif test "$use_libusb" = "auto"; then
1610 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1611 elif test "$use_libusb" = "yes"; then
1612 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1614 AC_MSG_NOTICE($libusb_disabled)
1617 if test "x$use_libusb" != "xno"; then
1618 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1619 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1626 if test "x$use_libcec" != "xno"; then
1627 # libcec is dyloaded, so we need to check for its headers and link any depends.
1628 if test "x$use_libcec" != "xno"; then
1629 if test "x$use_libcec" != "xauto"; then
1630 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1632 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1635 if test "x$use_libcec" != "xno"; then
1636 INCLUDES="$INCLUDES $CEC_CFLAGS"
1637 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1638 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1639 AC_MSG_NOTICE($libcec_enabled)
1642 AC_MSG_NOTICE($libcec_disabled)
1647 AC_MSG_NOTICE($libcec_disabled)
1651 if test "$use_libcap" != "no"; then
1652 AC_CHECK_HEADERS([sys/capability.h],,
1653 [if test "$use_libcap" = "yes"; then
1654 AC_MSG_ERROR($libcap_not_found)
1655 elif test "$use_libcap" != "no"; then
1656 AC_MSG_NOTICE($libcap_not_found)
1660 if test "$use_libcap" != "no"; then
1661 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1663 if test "$use_libcap" != "no"; then
1664 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1667 AC_MSG_NOTICE($libcap_disabled)
1671 FFMPEG_LIBNAMES="libavcodec >= 55.39.101
1672 libavfilter >= 3.90.100
1673 libavformat >= 55.19.104
1674 libavutil >= 52.48.101
1675 libpostproc >= 52.3.100
1676 libswscale >= 2.5.101
1677 libswresample >= 0.17.104"
1679 ffmpeg_build="${abs_top_srcdir}/tools/depends/target/ffmpeg"
1680 FFMPEG_VER_SHA=$(grep "VERSION=" ${ffmpeg_build}/FFMPEG-VERSION | sed 's/VERSION=//g')
1681 AC_DEFINE_UNQUOTED([FFMPEG_VER_SHA], ["$FFMPEG_VER_SHA"], [FFmpeg version hash])
1683 if test "$with_ffmpeg" = "shared"; then
1684 # allow linking against shared ffmpeg libs
1685 # a proper version must be installed, we won't build ffmpeg
1687 AC_DEFINE([USE_STATIC_FFMPEG], [0], [FFmpeg linked dynamically])
1689 if test "${USE_STATIC_FFMPEG}" = "1"; then
1690 AC_DEFINE([USE_STATIC_FFMPEG], [1], [FFmpeg linked statically])
1691 ff_libs=$(${ECHO} ${FFMPEG_LIBNAMES} | ${AWK} '/lib/{print $1}' ORS=' ')
1692 if test -n "${PKG_CONFIG_SYSROOT_DIR}"; then
1693 # workaround for cross compiling with buildroot on different buildsystem
1694 # Rpi buildroots pkg-config returns static libs with
1695 # PKG_CONFIG_SYSROOT_DIR prefixed, OEs does not
1696 # so lets make sure we always prefix in case PKG_CONFIG_SYSROOT_DIR is defined
1697 pkg_cfg_prefix="${PKG_CONFIG_SYSROOT_DIR}"
1698 elif test "${target_platform}" = "target_raspberry_pi" && test "${USE_BUILDROOT}" = "1"; then
1699 pkg_cfg_prefix=${SYSROOT}
1702 if test "$cross_compiling" != "yes"; then
1703 if test "$use_debug" != "yes"; then
1706 if test "$use_optimizations" != "yes"; then
1707 FFMPEG_OPTS="${FFMPEG_OPTS} --disable-optimizations"
1710 if test "$with_ffmpeg" = "auto" || test "$with_ffmpeg" = "yes"; then
1711 SAVE_INCLUDES="$INCLUDES"
1713 # check for system installed ffmpeg. We require minimum versions.
1714 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1715 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1716 [FFMPEG_FOUND="false"])
1718 if test "${USE_STATIC_FFMPEG}" = "1" && test "$FFMPEG_FOUND" = "true"; then
1719 # we need to check if static libs are available
1720 FFMPEG_LIBDIR=$(${PKG_CONFIG} --static --variable=libdir libavcodec)
1721 for ff_lib in ${ff_libs}; do
1722 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1723 AC_MSG_NOTICE("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1724 FFMPEG_FOUND="false"
1725 # restore includes and libs, the ones we found are invalid
1726 INCLUDES="$SAVE_INCLUDES"
1728 unset FFMPEG_LIBS FFMPEG_CFLAGS FFMPEG_LIBDIR
1732 if test "$with_ffmpeg" = "yes" || test "$FFMPEG_FOUND" = "false"; then
1733 # ffmpeg not found with pkg-config, lets install it
1734 AC_MSG_NOTICE("Installing FFmpeg")
1735 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1736 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1739 elif test "$with_ffmpeg" = "force"; then
1740 # always build our ffmpeg
1741 AC_MSG_NOTICE("FFmpeg installation forced by user - installing our version")
1742 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1743 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1745 elif test "$with_ffmpeg" != "no"; then
1746 # user passed --with-ffmpeg=/some/path, lets use it
1747 AC_MSG_NOTICE("using ffmpeg: ${with_ffmpeg}")
1748 export PKG_CONFIG_PATH="${with_ffmpeg}/lib/pkgconfig:$PKG_CONFIG_PATH"
1753 if test "$FFMPEG_FOUND" != "true"; then
1754 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1755 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1756 [AC_MSG_ERROR("ffmpeg not found")])
1759 if test "${USE_STATIC_FFMPEG}" = "1"; then
1760 # get the libdir for static linking
1761 FFMPEG_LIBDIR=${pkg_cfg_prefix}$(PKG_CONFIG_SYSROOT_DIR="" ${PKG_CONFIG} --static --variable=libdir libavcodec)
1762 GNUTLS_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors gnutls)
1763 VORBISENC_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors vorbisenc)
1765 # check if static libs are available
1766 for ff_lib in ${ff_libs}; do
1767 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1768 AC_MSG_ERROR("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1770 # filter out libs we link statically
1771 filter=$(${ECHO} ${ff_lib} | ${SED} 's/lib/-l/g')
1772 LIBS=$(${ECHO} ${LIBS} | ${SED} "s/${filter}//g")
1774 LIBS=$(${ECHO} ${LIBS} | ${SED} ':a;N;$!ba;s/\n/ /g')
1777 echo "Checking for SWIG installation"
1778 AC_PATH_PROG(SWIG_EXE, swig, "none")
1779 if test "$SWIG_EXE" = "none"; then
1780 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1781 if test "$SWIG20_EXE" != "none" ; then
1782 SWIG_EXE=$SWIG20_EXE
1785 if test "$SWIG_EXE" = "none"; then
1786 AC_MSG_ERROR($missing_program)
1788 final_message="$final_message\n SWIG Available:\tYes"
1790 echo "Checking for a jre installation"
1791 AC_PATH_PROG(JAVA_EXE, java, "none")
1792 if test "$JAVA_EXE" = "none"; then
1793 AC_MSG_ERROR($missing_program)
1795 final_message="$final_message\n JRE Available:\tYes"
1797 echo "Checking for doxygen installation"
1798 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1799 if test "$DOXYGEN_EXE" = "none"; then
1800 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1801 final_message="$final_message\n Doxygen Available:\tNo"
1804 final_message="$final_message\n Doxygen Available:\tYes"
1809 if test "x$use_vdpau" != "xno"; then
1810 if test "$host_vendor" = "apple" ; then
1811 if test "x$use_vdpau" = "xyes"; then
1812 AC_MSG_ERROR([VDPAU not supported on this platform])
1815 AC_MSG_NOTICE($vdpau_disabled)
1820 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1821 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1822 [if test "x$use_vdpau" = "xyes"; then
1824 AC_MSG_ERROR([$vdpau_not_found])
1828 AC_MSG_RESULT($vdpau_not_found)
1833 AC_MSG_NOTICE($vdpau_disabled)
1837 if test "x$use_vaapi" != "xno"; then
1838 if test "$host_vendor" = "apple" ; then
1839 if test "x$use_vaapi" = "xyes"; then
1840 AC_MSG_ERROR([VAAPI not supported on this platform])
1843 AC_MSG_NOTICE($vaapi_disabled)
1847 initial_val=$use_vaapi
1848 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1849 if test "x$use_vaapi" != "xno"; then
1850 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1853 if test "x$use_vaapi" = "xno"; then
1854 if test "x$initial_val" = "xyes"; then
1855 AC_MSG_ERROR($vaapi_not_found)
1857 AC_MSG_RESULT($vaapi_not_found)
1861 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1866 AC_MSG_NOTICE($vaapi_disabled)
1871 if test "x$use_crystalhd" != "xno"; then
1872 SAVE_CFLAGS="$CFLAGS"
1873 CFLAGS="-D__LINUX_USER__"
1874 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1875 [ if test "x$use_crystalhd" = "xyes"; then
1876 AC_MSG_ERROR($crystalhd_not_found)
1879 AC_MSG_RESULT($crystalhd_not_found)
1883 CFLAGS="$SAVE_CFLAGS"
1884 if test "$host_vendor" != "apple"; then
1885 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1887 if test "x$use_crystalhd" != "xno"; then
1888 SAVE_CFLAGS="$CFLAGS"
1889 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1890 # check for new crystalhd lib
1892 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1893 #include <libcrystalhd/bc_dts_defs.h>
1894 PBC_INFO_CRYSTAL bCrystalInfo;])],
1895 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1896 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1897 CFLAGS="$SAVE_CFLAGS"
1901 AC_MSG_NOTICE($crystalhd_disabled)
1906 if test "x$use_vtbdecoder" != "xno"; then
1907 if test "$host_vendor" = "apple" ; then
1908 HAVE_VIDEOTOOLBOXDECODER=1
1909 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1910 AC_MSG_NOTICE($vtbdecoder_enabled)
1912 if test "x$use_vtbdecoder" = "xyes"; then
1913 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1916 AC_MSG_NOTICE($vtbdecoder_disabled)
1920 AC_MSG_NOTICE($vtbdecoder_disabled)
1924 if test "$host_vendor" = "apple" ; then
1927 AC_MSG_NOTICE($openmax_disabled)
1928 elif test "$target_platform" = "target_raspberry_pi"; then
1931 AC_MSG_NOTICE($openmax_disabled)
1933 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1934 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1935 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1936 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1937 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1938 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1939 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1940 AC_MSG_ERROR($openmax_not_found))
1942 AC_MSG_NOTICE($openmax_disabled)
1948 # yajl version check (yajl_version.h was added in yajl 2.0)
1949 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1950 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1953 # additional internal players
1954 case $add_players in
1956 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1960 # additional internal codecs
1961 # remember to convert commas to spaces
1962 for codecs in `echo $add_codecs | sed 's/,/ /g'`; do
1965 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
1966 XB_ADD_CODEC([LIBAMCODEC], [amcodec], [$codecs])
1969 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright], [$codecs])
1975 # platform specific bin utilities
1976 if test "$build_vendor" != "apple" ; then
1977 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1978 if test "$HAVE_GAWK" = "no" ; then
1979 AC_MSG_ERROR($missing_program)
1983 if test "$use_arch" != "arm" ; then
1984 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1985 if test "$HAVE_CMAKE" = "no" ; then
1986 AC_MSG_ERROR($missing_program)
1990 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1991 if test "$HAVE_GPERF" = "no" ; then
1992 AC_MSG_ERROR($missing_program)
1995 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1996 if test "$HAVE_UNZIP" = "no" ; then
1997 AC_MSG_ERROR($missing_program)
2000 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
2001 if test "$HAVE_ZIP" = "no" ; then
2002 AC_MSG_ERROR($missing_program)
2005 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
2006 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
2007 if test "$HAVE_NASM" = "no" ; then
2008 AC_MSG_ERROR($missing_program)
2012 # Checks for header files.
2016 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
2017 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
2018 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
2019 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
2020 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
2022 # Checks for typedefs, structures, and compiler characteristics.
2038 AC_CHECK_MEMBERS([struct stat.st_rdev])
2047 if test "$cross_compiling" = "yes"; then
2048 final_message="$final_message\n Crosscomp.:\tYes"
2049 if [[ -d "$NATIVE_ROOT" ]]; then
2050 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2051 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2052 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
2053 if test "$host_vendor" != "apple" ; then
2054 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
2056 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
2059 final_message="$final_message\n Crosscomp.:\tNo"
2062 final_message="$final_message\n target ARCH:\t$use_arch"
2063 final_message="$final_message\n target CPU:\t$use_cpu"
2065 if test "$use_gles" = "yes"; then
2066 final_message="$final_message\n OpenGLES:\tYes"
2071 if test "$use_gl" = "yes"; then
2072 final_message="$final_message\n OpenGL:\tYes"
2075 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2076 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2081 if test "$use_alsa" = "yes"; then
2083 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2084 final_message="$final_message\n ALSA:\t\tYes"
2087 final_message="$final_message\n ALSA:\t\tNo"
2090 if test "$use_dbus" = "yes"; then
2091 final_message="$final_message\n DBUS:\t\tYes"
2093 final_message="$final_message\n DBUS:\t\tNo"
2096 if test "x$use_vdpau" != "xno"; then
2097 final_message="$final_message\n VDPAU:\tYes"
2099 final_message="$final_message\n VDPAU:\tNo"
2102 if test "x$use_vaapi" != "xno"; then
2103 final_message="$final_message\n VAAPI:\tYes"
2105 final_message="$final_message\n VAAPI:\tNo"
2108 if test "x$use_crystalhd" != "xno"; then
2109 final_message="$final_message\n CrystalHD:\tYes"
2111 final_message="$final_message\n CrystalHD:\tNo"
2114 if test "x$use_vtbdecoder" != "xno"; then
2115 final_message="$final_message\n VTBDecoder:\tYes"
2117 final_message="$final_message\n VTBDecoder:\tNo"
2120 if test "$use_openmax" != "no"; then
2121 final_message="$final_message\n OpenMax:\tYes"
2123 final_message="$final_message\n OpenMax:\tNo"
2126 if test "$use_joystick" = "yes"; then
2127 final_message="$final_message\n Joystick:\tYes"
2128 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2130 final_message="$final_message\n Joystick:\tNo"
2133 if test "$use_xrandr" = "yes"; then
2134 final_message="$final_message\n XRandR:\tYes"
2137 final_message="$final_message\n XRandR:\tNo"
2141 if test "$use_waveform" = "yes"; then
2142 final_message="$final_message\n Waveform:\tYes"
2144 final_message="$final_message\n Waveform:\tNo"
2147 if test "$use_spectrum" = "yes"; then
2148 final_message="$final_message\n Spectrum:\tYes"
2150 final_message="$final_message\n Spectrum:\tNo"
2153 if test "$use_goom" = "yes"; then
2154 final_message="$final_message\n GOOM:\t\tYes"
2156 final_message="$final_message\n GOOM:\t\tNo"
2159 if test "$use_rsxs" = "yes"; then
2160 final_message="$final_message\n RSXS:\t\tYes"
2162 final_message="$final_message\n RSXS:\t\tNo"
2165 if test "$use_fishbmc" = "yes"; then
2166 final_message="$final_message\n FishBMC:\tYes"
2168 final_message="$final_message\n FishBMC:\tNo"
2171 if test "$use_projectm" = "yes"; then
2172 final_message="$final_message\n ProjectM:\tYes"
2174 final_message="$final_message\n ProjectM:\tNo"
2177 if test "$use_skin_touched" = "yes"; then
2178 final_message="$final_message\n Skin Touched:\tYes"
2180 final_message="$final_message\n Skin Touched:\tNo"
2183 if test "$use_x11" = "yes"; then
2184 final_message="$final_message\n X11:\t\tYes"
2186 final_message="$final_message\n X11:\t\tNo"
2189 if test "$use_wayland" = "yes"; then
2190 final_message="$final_message\n Wayland:\tYes"
2194 final_message="$final_message\n Wayland:\tNo"
2197 if test "$use_libbluray" = "yes"; then
2198 final_message="$final_message\n Bluray:\tYes"
2200 final_message="$final_message\n Bluray:\tNo"
2203 if test "x$use_texturepacker" != "xno"; then
2204 final_message="$final_message\n TexturePacker:Yes"
2207 final_message="$final_message\n TexturePacker:No"
2211 if test "$use_mid" = "yes"; then
2212 final_message="$final_message\n MID Support:\tYes"
2213 SDL_DEFINES="$SDL_DEFINES -DMID"
2215 final_message="$final_message\n MID Support:\tNo"
2220 if test "x$use_ccache" != "xno"; then
2221 AC_PATH_PROG(CCACHE,ccache,none)
2222 if test "$ac_cv_path_CCACHE" = "none"; then
2223 if test "x$use_ccache" = "xyes"; then
2224 AC_MSG_ERROR([ccache not found.]);
2226 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2227 final_message="$final_message\n ccache:\tNo"
2230 CC="$ac_cv_path_CCACHE $CC"
2231 CXX="$ac_cv_path_CCACHE $CXX"
2232 AC_MSG_NOTICE(enabling ccache)
2233 final_message="$final_message\n ccache:\tYes"
2236 final_message="$final_message\n ccache:\tNo"
2239 if test "$use_alsa" = "yes"; then
2240 final_message="$final_message\n ALSA Support:\tYes"
2242 final_message="$final_message\n ALSA Support:\tNo"
2245 if test "x$use_pulse" != "xno"; then
2246 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2247 final_message="$final_message\n PulseAudio:\tYes"
2249 XBMC_STANDALONE_SH_PULSE=/dev/null
2250 final_message="$final_message\n PulseAudio:\tNo"
2253 if test "$use_hal" = "yes"; then
2254 final_message="$final_message\n HAL Support:\tYes"
2256 final_message="$final_message\n HAL Support:\tNo"
2260 if test "$use_dvdcss" = "yes"; then
2261 AC_MSG_NOTICE($dvdcss_enabled)
2262 final_message="$final_message\n DVDCSS:\tYes"
2264 SKIP_CONFIG_DVDCSS=0
2265 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2267 AC_MSG_NOTICE($dvdcss_disabled)
2268 final_message="$final_message\n DVDCSS:\tNo"
2270 SKIP_CONFIG_DVDCSS=1
2271 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2273 if test "$host_vendor" = "apple"; then
2274 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2277 # Google Test Framework
2278 if test "$configure_gtest" = "yes"; then
2279 AC_MSG_NOTICE($gtest_enabled)
2280 final_message="$final_message\n Google Test Framework Configured:\tYes"
2284 AC_MSG_NOTICE($gtest_disabled)
2285 final_message="$final_message\n Google Test Framework Configured:\tNo"
2290 if test "$use_avahi" = "yes"; then
2291 final_message="$final_message\n Avahi:\tYes"
2293 final_message="$final_message\n Avahi:\tNo"
2296 if test "$use_mdnsembedded" != "no"; then
2297 final_message="$final_message\n mDNSEmbedded:\tYes"
2299 final_message="$final_message\n mDNSEmbedded:\tNo"
2302 if test "$use_nonfree" = "yes"; then
2303 final_message="$final_message\n Non-free:\tYes"
2305 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2308 final_message="$final_message\n Non-free:\tNo"
2311 if test "$use_asap" = "yes"; then
2312 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2313 if test "$HAVE_GDC" = "no"; then
2314 AC_MSG_ERROR($missing_program);
2316 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2317 if test "$HAVE_FPC" = "no"; then
2318 AC_MSG_ERROR($missing_program);
2321 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2322 final_message="$final_message\n ASAP Codec:\tYes"
2325 final_message="$final_message\n ASAP Codec:\tNo"
2328 if test "$use_mysql" = "yes"; then
2329 final_message="$final_message\n MySQL:\tYes"
2332 final_message="$final_message\n MySQL:\tNo"
2335 if test "$use_webserver" = "yes"; then
2336 final_message="$final_message\n Webserver:\tYes"
2339 final_message="$final_message\n Webserver:\tNo"
2343 if test "$use_libssh" != "no"; then
2344 final_message="$final_message\n libssh support:\tYes"
2346 final_message="$final_message\n libssh support:\tNo"
2349 if test "$use_librtmp" != "no"; then
2350 final_message="$final_message\n libRTMP support:\tYes"
2352 final_message="$final_message\n libRTMP support:\tNo"
2355 if test "x$use_samba" != "xno"; then
2356 final_message="$final_message\n libsmbclient support:\tYes"
2358 final_message="$final_message\n libsmbclient support:\tNo"
2361 if test "$use_libnfs" != "no"; then
2362 final_message="$final_message\n libnfs client support:Yes"
2364 final_message="$final_message\n libnfs client support:No"
2367 if test "x$use_libafpclient" != "xno"; then
2368 final_message="$final_message\n libafpclient support:\tYes"
2370 final_message="$final_message\n libafpclient support:\tNo"
2373 if test "$use_airplay" != "no"; then
2374 final_message="$final_message\n AirPlay support:\tYes"
2376 final_message="$final_message\n AirPLay support:\tNo"
2379 if test "x$use_airtunes" != "xno"; then
2380 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2382 final_message="$final_message\n AirTunes support:\tNo"
2385 if test "x$use_upnp" != "xno"; then
2386 final_message="$final_message\n UPnP support:\t\tYes"
2388 UPNP_DEFINES="-DNPT_CONFIG_ENABLE_LOGGING -DPLT_HTTP_DEFAULT_USER_AGENT="\"UPnP/1.0 DLNADOC/1.50 XBMC\"" -DPLT_HTTP_DEFAULT_SERVER="\"UPnP/1.0 DLNADOC/1.50 XBMC\"""
2389 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2392 final_message="$final_message\n UPnP support:\t\tNo"
2395 if test "$use_optical_drive" = "yes"; then
2396 final_message="$final_message\n Optical drive:\tYes"
2398 final_message="$final_message\n Optical drive:\tNo"
2401 if test "x$use_libudev" != "xno"; then
2402 final_message="$final_message\n libudev support:\tYes"
2404 final_message="$final_message\n libudev support:\tNo"
2407 if test "x$use_libusb" != "xno"; then
2408 final_message="$final_message\n libusb support:\tYes"
2410 final_message="$final_message\n libusb support:\tNo"
2413 if test "x$use_libcec" != "xno"; then
2414 final_message="$final_message\n libcec support:\tYes"
2416 final_message="$final_message\n libcec support:\tNo"
2419 if test "x$use_libcap" != "xno"; then
2420 final_message="$final_message\n libcap support:\tYes"
2422 final_message="$final_message\n libcap support:\tNo"
2425 if test "x$add_players" != "xno"; then
2426 final_message="$final_message\n additional players:\tYes, $add_players"
2428 final_message="$final_message\n additional players:\tNo"
2431 if test "x$add_codecs" != "xno"; then
2432 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2434 final_message="$final_message\n additional codecs:\tNo"
2437 ### External libraries messages
2439 if test "$host_vendor" = "apple" ; then
2440 # built internal but referenced as external, we link directly to them.
2441 # this MUST be the last thing before OUTPUT_FILES as they do not
2442 # exist until after we build FFMpeg.
2443 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2444 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2445 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2446 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2447 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2448 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2449 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2453 DISABLE_PVR_ADDON_CONFIG=1
2454 if [[ -f "pvr-addons/Makefile.am" ]]; then
2455 final_message="$final_message\n PVR add-ons:\t\tYes"
2457 DISABLE_PVR_ADDON_CONFIG=0
2459 final_message="$final_message\n PVR add-ons:\t\tNo"
2462 OUTPUT_FILES="Makefile \
2464 addons/skin.confluence/media/Makefile \
2466 xbmc/cdrip/Makefile \
2467 xbmc/cores/Makefile \
2468 xbmc/cores/VideoRenderers/Makefile \
2469 xbmc/cores/dvdplayer/Makefile \
2470 lib/libdvd/Makefile \
2471 xbmc/cores/DllLoader/Makefile \
2472 xbmc/cores/DllLoader/exports/Makefile \
2473 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2474 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2475 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2476 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2477 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2478 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2479 xbmc/cores/AudioEngine/Makefile \
2480 xbmc/cores/paplayer/Makefile \
2481 xbmc/cores/omxplayer/Makefile \
2482 lib/timidity/Makefile \
2484 lib/nosefart/Makefile \
2485 lib/libsidplay2/Makefile \
2486 lib/vgmstream/Makefile \
2487 lib/snesapu/SNES/SNESAPU/Makefile \
2488 lib/stsound/StSoundLibrary/Makefile \
2489 xbmc/cores/playercorefactory/Makefile \
2490 xbmc/music/karaoke/Makefile \
2492 xbmc/guilib/Makefile \
2493 xbmc/input/linux/Makefile \
2494 xbmc/interfaces/Makefile \
2495 xbmc/network/Makefile \
2496 xbmc/network/upnp/Makefile \
2497 lib/libRTV/Makefile \
2498 lib/libexif/Makefile \
2499 lib/libXDAAP/Makefile \
2500 lib/cmyth/Makefile \
2501 lib/libhdhomerun/Makefile \
2502 lib/libsquish/Makefile \
2503 lib/cximage-6.0/Makefile \
2504 lib/libUPnP/Makefile \
2505 xbmc/DllPaths_generated.h \
2506 xbmc/DllPaths_generated_android.h \
2507 xbmc/freebsd/Makefile \
2508 xbmc/linux/Makefile \
2509 xbmc/filesystem/Makefile \
2510 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2511 xbmc/visualizations/XBMCProjectM/Makefile \
2512 xbmc/visualizations/Goom/Makefile \
2513 xbmc/visualizations/OpenGLSpectrum/Makefile \
2514 xbmc/visualizations/fishBMC/Makefile \
2515 xbmc/visualizations/WaveForm/Makefile \
2516 xbmc/windowing/Makefile \
2517 xbmc/windowing/egl/Makefile \
2518 lib/addons/library.xbmc.addon/Makefile \
2519 lib/addons/library.xbmc.codec/Makefile \
2520 lib/addons/library.xbmc.gui/Makefile \
2521 lib/addons/library.xbmc.pvr/Makefile \
2522 xbmc/visualizations/EGLHelpers/Makefile \
2523 tools/Linux/xbmc.sh \
2524 tools/Linux/xbmc-standalone.sh \
2525 tools/TexturePacker/Makefile \
2526 tools/EventClients/Clients/OSXRemote/Makefile \
2527 xbmc/peripherals/bus/Makefile \
2528 xbmc/peripherals/devices/Makefile \
2529 xbmc/android/activity/Makefile \
2530 xbmc/android/loader/Makefile \
2531 xbmc/android/jni/Makefile \
2532 xbmc/utils/Makefile \
2533 xbmc/main/Makefile \
2534 tools/darwin/Configurations/App.xcconfig \
2535 tools/darwin/Configurations/Common.xcconfig \
2536 tools/darwin/packaging/xbmc-ios/mkdeb-xbmc-ios.sh \
2537 tools/darwin/packaging/xbmc-atv2/mkdeb-xbmc-atv2.sh \
2538 tools/darwin/packaging/xbmc-osx/mkdmg-xbmc-osx.sh \
2539 xbmc/osx/Info.plist \
2540 project/cmake/xbmc-config.cmake \
2541 tools/android/packaging/xbmc/AndroidManifest.xml \
2542 addons/xbmc.addon/addon.xml"
2544 if test "$use_wayland" = "yes"; then
2545 OUTPUT_FILES="$OUTPUT_FILES xbmc/windowing/tests/wayland/Makefile"
2548 if test "$use_skin_touched" = "yes"; then
2549 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2552 if test "$use_codec_libstagefright" = "yes"; then
2553 OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile"
2556 OUTPUT_FILES="$OUTPUT_FILES \
2557 xbmc/interfaces/python/Makefile \
2558 xbmc/interfaces/python/test/Makefile"
2560 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2561 # .dummy.am does nothing.
2562 AC_CONFIG_FILES([.dummy])
2564 AC_CONFIG_FILES([${OUTPUT_FILES}])
2565 OUTPUT_FILES="$OUTPUT_FILES \
2571 AC_SUBST(CXX_FOR_BUILD)
2572 AC_SUBST(CC_FOR_BUILD)
2573 AC_SUBST(CFLAGS_FOR_BUILD)
2574 AC_SUBST(CXXFLAGS_FOR_BUILD)
2575 AC_SUBST(LDFLAGS_FOR_BUILD)
2576 AC_SUBST(SDL_DEFINES)
2577 AC_SUBST(BUILD_DVDCSS)
2578 AC_SUBST(DISABLE_WAVEFORM)
2579 AC_SUBST(DISABLE_SPECTRUM)
2580 AC_SUBST(DISABLE_GOOM)
2581 AC_SUBST(DISABLE_RSXS)
2582 AC_SUBST(DISABLE_FISHBMC)
2583 AC_SUBST(DISABLE_PROJECTM)
2584 AC_SUBST(FFMPEG_LIBDIR)
2585 AC_SUBST(USE_STATIC_FFMPEG)
2586 AC_SUBST(GNUTLS_ALL_LIBS)
2587 AC_SUBST(VORBISENC_ALL_LIBS)
2588 AC_SUBST(USE_SKIN_TOUCHED)
2589 AC_SUBST(USE_LIBAV_HACKS)
2590 AC_SUBST(PYTHON_VERSION)
2591 AC_SUBST(OUTPUT_FILES)
2592 AC_SUBST(HAVE_XBMC_NONFREE)
2593 AC_SUBST(USE_ASAP_CODEC)
2594 AC_SUBST(LIBCURL_BASENAME)
2595 AC_SUBST(LIBFLAC_BASENAME)
2596 AC_SUBST(LIBVORBISFILE_BASENAME)
2597 AC_SUBST(LIBMODPLUG_BASENAME)
2598 AC_SUBST(LIBOGG_BASENAME)
2599 AC_SUBST(LIBVORBIS_BASENAME)
2600 AC_SUBST(LIBASS_BASENAME)
2601 AC_SUBST(LIBMEPG2_BASENAME)
2602 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2603 AC_SUBST(USE_OPENGL)
2604 AC_SUBST(USE_OPENGLES)
2607 AC_SUBST(USE_CRYSTALHD)
2608 AC_SUBST(USE_LIBSMBCLIENT)
2609 AC_SUBST(USE_LIBNFS)
2610 AC_SUBST(USE_LIBAFPCLIENT)
2611 AC_SUBST(USE_AIRPLAY)
2612 AC_SUBST(USE_OPENMAX)
2614 AC_SUBST(HAVE_LIBPULSE)
2615 AC_SUBST(USE_XRANDR)
2617 AC_SUBST(USE_TEXTUREPACKER)
2618 AC_SUBST(USE_AIRTUNES)
2619 AC_SUBST(USE_LIBUDEV)
2620 AC_SUBST(USE_LIBUSB)
2621 AC_SUBST(USE_LIBCEC)
2623 AC_SUBST(USE_WAYLAND)
2624 AC_SUBST(USE_WEB_SERVER)
2626 AC_SUBST(USE_XKBCOMMON)
2627 AC_SUBST(USE_OMXLIB)
2628 AC_SUBST(USE_ANDROID)
2629 AC_SUBST(GTEST_CONFIGURED)
2630 AC_SUBST(USE_DOXYGEN)
2631 AC_SUBST(USE_PVR_ADDONS)
2632 AC_SUBST(UPNP_DEFINES)
2634 # pushd and popd are not available in other shells besides bash, so implement
2635 # our own pushd/popd functions
2640 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2642 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2645 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2650 if [[ -n "$XB_DIRSTACK" ]]; then
2651 XB_DIRSTACK="${XB_DIRSTACK#* }"
2652 cd "${XB_DIRSTACK%% *}"
2655 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2659 # Function to run the configure scripts in our submodules
2660 # Consists of three paramaters, the path to the submodule, the configure command
2661 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2662 # running the script, anything else if not.
2663 AC_DEFUN([XB_CONFIG_MODULE],[
2664 AC_CONFIG_COMMANDS_POST([
2665 if [[ $3 != "1" ]]; then
2666 if [[ -d $1 ]]; then
2669 if [[ $? -ne 0 ]]; then
2671 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2676 AC_MSG_ERROR([[Submodule $1 does not exist]])
2679 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2684 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2688 CFLAGS="$CFLAGS $DROID_DVDLIB_SEEK64" \
2689 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2690 --host=$host_alias \
2691 --build=$build_alias \
2692 --target=$target_alias \
2696 ], [$SKIP_CONFIG_DVDCSS])
2698 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2700 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src $DROID_DVDLIB_SEEK64" \
2701 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2702 --host=$host_alias \
2703 --build=$build_alias \
2704 --target=$target_alias \
2710 mkdir -p `pwd`/../includes/dvdread
2711 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2712 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2715 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2717 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes $DROID_DVDLIB_SEEK64" \
2718 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2719 --with-dvdread-config="`pwd`/../dvdread-config" \
2720 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2721 --host=$host_alias \
2722 --build=$build_alias \
2723 --target=$target_alias \
2729 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2731 rm -f CMakeCache.txt && \
2732 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2733 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2734 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2735 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2736 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2737 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2738 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2739 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2740 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2741 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2742 if test "$host_vendor" = "apple" ; then
2743 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2744 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2745 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2746 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2749 ], [$DISABLE_PROJECTM])
2751 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2754 CXXFLAGS="$CXXFLAGS" \
2755 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2756 --host=$host_alias \
2757 --build=$build_alias \
2758 --target=$target_alias \
2764 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2765 if test "$host_vendor" = "apple"; then
2766 # clang treats inlines different
2769 TEMPCFLAGS="$CFLAGS";;
2771 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";;
2774 TEMPCFLAGS="$CFLAGS";
2779 CFLAGS="$TEMPCFLAGS" \
2780 CXXFLAGS="$CXXFLAGS" \
2781 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2782 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2783 --host=$host_alias \
2784 --build=$build_alias \
2785 --target=$target_alias \
2786 --without-xscreensaver \
2789 --disable-fieldlines \
2793 --disable-hyperspace \
2796 if echo "$ARCH" | grep -q freebsd ; then
2797 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2801 XB_CONFIG_MODULE([lib/cpluff], [
2802 ./configure --disable-nls \
2803 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2804 --host=$host_alias \
2805 --build=$build_alias \
2806 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2807 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2810 XB_CONFIG_MODULE([lib/gtest], [
2815 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2816 --host=$host_alias \
2817 --build=$build_alias \
2818 --target=$target_alias \
2822 ], [$SKIP_CONFIG_GTEST])
2824 XB_CONFIG_MODULE([pvr-addons], [
2826 --prefix="${prefix}" \
2827 --host=$host_alias \
2828 --build=$build_alias \
2829 --target=$target_alias \
2833 CXXFLAGS="$CXXFLAGS"
2834 ], [$DISABLE_PVR_ADDON_CONFIG])
2838 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2839 echo -e "$final_message\n"