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_FILENAME=[`otool -L $lib | grep -v lib$2.dylib | grep lib$2 | awk '{V=1; print $V}'`]
88 $1_SONAME=[`basename $$1_FILENAME`]
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}"
561 READELF="${READELF:-readelf}"
564 # host detection and setup
566 i*86*-linux-android*)
567 target_platform=target_android
578 i*86*-linux-gnu*|i*86*-*-linux-uclibc*)
580 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
586 x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
588 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
599 ARCH="x86_64-freebsd"
615 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
616 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
617 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
618 PYTHON_NOVERSIONCHECK="no-check"
619 DEPENDS_ROOT_FOR_XCODE=$(echo ${prefix%/*})
620 AC_SUBST([DEPENDS_ROOT_FOR_XCODE])
626 DEPENDS_ROOT_FOR_XCODE=$(echo ${prefix%/*})
627 AC_SUBST([DEPENDS_ROOT_FOR_XCODE])
629 powerpc-apple-darwin*)
635 DEPENDS_ROOT_FOR_XCODE=$(echo ${prefix%/*})
636 AC_SUBST([DEPENDS_ROOT_FOR_XCODE])
638 powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*)
641 powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*)
642 ARCH="powerpc64-linux"
644 arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
655 arm*-*linux-android*)
656 target_platform=target_android
670 AC_MSG_ERROR(unsupported host ($host))
674 check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
675 if test "x$check_sdl_arch" = "xi386" ; then
676 DARWIN_NATIVE_ARCH=-m32
677 elif test "x$check_sdl_arch" = "xx86_64" ; then
678 DARWIN_NATIVE_ARCH=-m64
680 AC_SUBST([DARWIN_NATIVE_ARCH])
682 if test "$target_platform" = "target_android" ; then
684 webserver_checkdepends=yes
685 CFLAGS="$CFLAGS -Wno-psabi"
686 DROID_DVDLIB_SEEK64="-D_FILE_OFFSET_BITS=64 -D_OFF_T_DEFINED_ -Doff_t=off64_t -Dlseek=lseek64"
687 CXXFLAGS="$CXXFLAGS -Wno-psabi"
688 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
691 case $use_platform in
693 target_platform=target_raspberry_pi
697 use_hardcoded_tables="yes"
700 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
701 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
707 XBMC_SETUP_ARCH_DEFINES()
710 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
711 if test "$GIT_REV" = ""; then
712 if test -f VERSION ; then
713 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
714 elif test "$HAVE_GIT" = "yes" -a -d ${abs_top_srcdir}/.git; then
715 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
720 final_message="$final_message\n git Rev.:\t${GIT_REV}"
722 # detect Xbmc soname version
723 # version can be overridden by setting the following as ENV vars when running configure
724 APP_VERSION_MAJOR=${APP_VERSION_MAJOR-$(${AWK} '/VERSION_MAJOR/ {print $2}' version.txt)}
725 APP_VERSION_MINOR=${APP_VERSION_MINOR-$(${AWK} '/VERSION_MINOR/ {print $2}' version.txt)}
726 APP_VERSION_TAG=${APP_VERSION_TAG-$(${AWK} '/VERSION_TAG/ {print $2}' version.txt)}
727 APP_VERSION_TAG_LC=$(echo $APP_VERSION_TAG | ${AWK} '{print tolower($0)}')
728 APP_VERSION_CODE=${APP_VERSION_CODE-$(${AWK} '/VERSION_CODE/ {print $2}' version.txt)}
729 APP_ADDON_API=${APP_ADDON_API-$(${AWK} '/ADDON_API/ {print $2}' version.txt)}
730 if test "$APP_VERSION_MAJOR" != "" && test "$APP_VERSION_MINOR" != "" && test "$APP_VERSION_TAG" != "" \
731 && test "$APP_VERSION_CODE" != "" && test "$APP_ADDON_API" != ""; then
732 final_message="$final_message\n Xbmc Version:\t${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}-${APP_VERSION_TAG}"
733 AC_SUBST(APP_VERSION_MAJOR)
734 AC_SUBST(APP_VERSION_MINOR)
735 AC_SUBST(APP_VERSION_TAG)
736 AC_SUBST(APP_VERSION_TAG_LC)
737 AC_SUBST(APP_VERSION_CODE)
738 AC_SUBST(APP_ADDON_API)
740 AC_MSG_ERROR(could not detect XBMC Version, make sure version.txt is complete)
743 if test "$host_vendor" = "apple"; then
744 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
746 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
749 if test "$build_shared_lib" = "yes"; then
750 final_message="$final_message\n Shared lib\tYes"
751 AC_SUBST(USE_LIBXBMC,1)
755 # platform debug flags
756 if test "$use_debug" = "yes"; then
757 final_message="$final_message\n Debugging:\tYes"
758 if test "$use_profiling" = "yes"; then
759 final_message="$final_message\n Profiling:\tYes"
760 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
762 final_message="$final_message\n Profiling:\tNo"
763 DEBUG_FLAGS="-g -D_DEBUG -Wall"
766 final_message="$final_message\n Debugging:\tNo"
767 if test "$use_profiling" = "yes"; then
768 final_message="$final_message\n Profiling:\tYes"
769 DEBUG_FLAGS="-pg -DNDEBUG=1"
771 final_message="$final_message\n Profiling:\tNo"
772 DEBUG_FLAGS="-DNDEBUG=1"
775 CFLAGS="$CFLAGS $DEBUG_FLAGS"
776 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
779 if test "$use_optimizations" = "yes"; then
780 final_message="$final_message\n Optimization:\tYes"
781 if test "$target_platform" = "target_raspberry_pi"; then
785 CXXFLAGS="-O2 $CXXFLAGS"
789 final_message="$final_message\n Optimization:\tNo"
793 # platform specific flags
794 if echo "$ARCH" | grep -q "freebsd" ; then
795 LOCALBASE="${LOCALBASE:-/usr/local}"
796 CFLAGS="$CFLAGS -I$LOCALBASE/include"
797 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
798 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
799 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
801 if test "$host_vendor" = "apple" ; then
802 # standard xbmc paths
803 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
804 if test "$use_arch" != "arm"; then
805 LIBS="$LIBS -framework ApplicationServices"
806 LIBS="$LIBS -framework AudioUnit"
807 LIBS="$LIBS -framework AudioToolbox"
808 LIBS="$LIBS -framework Cocoa"
809 LIBS="$LIBS -framework CoreAudio"
810 LIBS="$LIBS -framework CoreVideo"
811 LIBS="$LIBS -framework CoreServices"
812 LIBS="$LIBS -framework CoreFoundation"
813 LIBS="$LIBS -framework DiskArbitration"
814 LIBS="$LIBS -framework IOKit"
815 LIBS="$LIBS -framework IOSurface"
816 LIBS="$LIBS -framework QuartzCore"
817 LIBS="$LIBS -framework SystemConfiguration"
818 LIBS="$LIBS -framework VideoDecodeAcceleration"
820 elif test "$target_platform" = "target_raspberry_pi"; then
823 elif test "$use_arch" = "arm"; then
824 CFLAGS="$CFLAGS -mno-apcs-stack-check"
825 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
826 if test "$use_tegra" = "yes"; then
827 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
828 SAVE_CFLAGS="$CFLAGS"
829 CFLAGS="-mfpu=vfpv3-d16"
831 [AC_LANG_SOURCE([int foo;])],
832 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
833 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
835 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
836 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
839 if test "$use_neon" = "yes"; then
840 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
841 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
846 # Checks for library functions.
849 AC_FUNC_CLOSEDIR_VOID
850 AC_FUNC_ERROR_AT_LINE
852 AC_PROG_GCC_TRADITIONAL
854 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
858 # Boxee is apparently having compile problems
859 # if HAVE_REALLOC is defined. Sort this later.
861 AC_FUNC_SELECT_ARGTYPES
862 AC_FUNC_SETVBUF_REVERSED
870 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])
872 # Check for various sizes
873 AC_CHECK_SIZEOF([int])
874 AC_CHECK_SIZEOF([size_t])
876 # Check for intrinsics
877 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
878 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
879 [have_builtin_sync_add_and_fetch=yes],
880 [have_builtin_sync_add_and_fetch=no])
881 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
882 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
883 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
884 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
887 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
888 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
889 [have_builtin_sync_sub_and_fetch=yes],
890 [have_builtin_sync_sub_and_fetch=no])
891 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
892 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
893 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
894 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
897 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
898 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
899 [have_builtin_sync_val_compare_and_swap=yes],
900 [have_builtin_sync_val_compare_and_swap=no])
901 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
902 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
903 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
904 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
907 # Check for u16string/u32string declarations
909 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
910 AC_CHECK_TYPES([char16_t, char32_t])
911 AC_CHECK_SIZEOF([wchar_t])
914 # Add top source directory for all builds so we can use config.h
915 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
917 # Check inotify availability
918 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
920 # Checks for boost headers using CXX instead of CC
922 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
926 if test -z "$PYTHON_NOVERSIONCHECK"; then
927 AX_PYTHON_DEVEL([>= 2.4])
928 PYTHON_VERSION=$ac_python_version
931 if test -z "$PYTHON_VERSION"; then
932 AC_MSG_ERROR([Can't find a Python version.])
934 LIBS="$LIBS $PYTHON_LDFLAGS"
935 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
939 if test "$use_wayland" = "yes" && test "$host_vendor" != "apple"; then
940 AC_MSG_NOTICE($wayland_enabled)
941 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client],
942 [INCLUDES="$INCLUDES $WAYLAND_CLIENT_CFLAGS";
943 WAYLAND_CLIENT_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-client\`; echo ${LIBRARY:2}`;
944 XB_FIND_SONAME([WAYLAND_CLIENT_LIBRARY], ${WAYLAND_CLIENT_LIBRARY_LINE})],
945 AC_MSG_ERROR($missing_library))
946 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],
947 [INCLUDES="$INCLUDES $WAYLAND_EGL_CFLAGS";
948 WAYLAND_EGL_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-egl\`; echo ${LIBRARY:2:11}`
949 XB_FIND_SONAME([WAYLAND_EGL_LIBRARY], ${WAYLAND_EGL_LIBRARY_LINE})],
950 AC_MSG_ERROR($missing_library))
951 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
952 [INCLUDES="$INCLUDES $XKBCOMMON_CFLAGS";
953 XKBCOMMON_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l xkbcommon\`; echo ${LIBRARY:2}`;
954 XB_FIND_SONAME([XKBCOMMON_LIBRARY], $XKBCOMMON_LIBRARY_LINE)],
955 AC_MSG_ERROR($missing_library))
956 AC_DEFINE([HAVE_WAYLAND], [1], [Define to 1 if you have Wayland libs installed.])
957 AC_DEFINE([HAVE_XKBCOMMON], [1], [Define to 1 if you have libxkbcommon installed.])
959 # If we are also building with tests then we want to build
960 # wayland tests as well
961 if test "$configure_gtest" = "yes"; then
963 PKG_CHECK_MODULES([PIXMAN],
964 [pixman-1],have_pixman=yes,
965 [AC_MSG_WARN($missing_library); have_pixman=no])
966 PKG_CHECK_MODULES([WESTON],
967 [weston >= 1.1.90],[have_weston_sdk=yes],
968 [have_weston_sdk=no; AC_MSG_WARN($missing_library)])
970 AC_CHECK_PROG(WAYLAND_SCANNER, wayland-scanner, "wayland-scanner", "no")
971 if test "x$WAYLAND_SCANNER" == "xno"; then
972 AC_MSG_WARN($missing_program)
974 if test "x$have_weston_sdk" == "xyes" && test "x$have_pixman" = "xyes"; then
975 AC_SUBST(WAYLAND_TEST_INCLUDES,"$WAYLAND_CLIENT_CFLAGS $XKBCOMMON_CFLAGS $PIXMAN_CFLAGS $WESTON_CFLAGS")
976 AC_SUBST(WAYLAND_TEST_LIBS,"$WAYLAND_CLIENT_LIBS $XKBCOMMON_LIBS $PIXMAN_LIBS $WESTON_LIBS")
977 AC_DEFINE([HAVE_WESTON_SDK], [1], [Define to 1 if Weston SDK is installed.])
978 AC_SUBST(USE_WAYLAND_TEST_EXTENSION, 1)
980 AC_SUBST(WAYLAND_SCANNER)
981 AC_DEFINE([HAVE_WAYLAND_XBMC_PROTO],[1],["Define to 1 if the wayland test-protocol will be built"])
985 # Disable SDL and X11 builds
990 # Wayland requires the EGL "window system" which in turn only supports
991 # the OpenGL ES API, so enable gles support
994 AC_MSG_RESULT($wayland_disabled)
997 # Checks for platforms libraries.
998 if test "$use_gles" = "yes"; then
1000 # GLES overwrites GL if both set to yes.
1001 if test "$host_vendor" = "apple" ; then
1002 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1003 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1004 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1006 if test "$target_platform" = "target_raspberry_pi"; then
1007 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1008 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1009 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1010 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
1012 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
1013 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
1017 if test "$use_gl" = "yes"; then
1018 if test "$host_vendor" = "apple" ; then
1019 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
1020 LIBS="$LIBS -framework OpenGL"
1021 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
1022 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
1023 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
1024 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
1025 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1027 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
1028 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1029 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
1032 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
1033 AC_CHECK_LIB([SDL_gfx],[main])
1037 # platform common libraries
1038 if test "$use_mysql" = "yes"; then
1039 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
1040 if test "x$MYSQL_CONFIG" != "xno"; then
1041 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
1042 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
1043 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
1044 LIBS="$LIBS $MYSQL_LIBS"
1045 AC_SUBST(MYSQL_LIBS)
1047 AC_MSG_ERROR($missing_program)
1050 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1051 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1052 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1053 AC_INCLUDES_DEFAULT()
1054 [#include <mpeg2dec/mpeg2.h>])
1055 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1056 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1057 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1058 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1059 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1061 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1062 XB_FIND_SONAME([CURL], [curl])
1063 AC_MSG_CHECKING([for CRYPTO_set_locking_callback(0) in $CURL_SONAME])
1064 if test "$host_vendor" = "apple" ; then
1066 searchpattern="T [_]?CRYPTO_set_locking_call"
1068 libchecker="$READELF -s"
1069 searchpattern="CRYPTO_set_locking_call"
1071 if test $($libchecker $CURL_FILENAME | grep -Eq "${searchpattern}" ; echo $?) -eq 0 ; then
1073 AC_DEFINE([HAS_CURL_STATIC], [1], [Whether OpenSSL inside libcurl is static.])
1078 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1079 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1080 if test "$gcrypt_headers_available" = "yes"; then
1081 # if we have the headers then we must have the lib
1082 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1083 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1084 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1086 PKG_CHECK_MODULES([GNUTLS], [gnutls], [have_gnutls=yes];AC_DEFINE([HAVE_GNUTLS], [1], [Define if we have gnutls]), AC_MSG_WARN("gnutls not found"))
1088 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1089 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1090 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1091 if echo "$ARCH" | grep -q freebsd; then
1092 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1093 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1094 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1095 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1097 if test "$target_platform" != "target_android" ; then
1098 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1099 AC_CHECK_LIB([pthread], [pthread_setname_np],
1100 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1101 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1104 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1105 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1106 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1107 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1108 if test "$use_mysql" = "yes"; then
1109 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1111 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1112 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1113 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1114 if test "$target_platform" = "target_android" ; then
1115 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1116 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1117 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1119 PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
1120 [INCLUDES="$INCLUDES $LIBXML_CFLAGS"; LIBS="$LIBS $LIBXML_LIBS"],
1121 AC_MSG_ERROR($missing_library))
1122 PKG_CHECK_MODULES([LIBXSLT], [libxslt],
1123 [INCLUDES="$INCLUDES $LIBXSLT_CFLAGS"; LIBS="$LIBS $LIBXSLT_LIBS"],
1124 AC_MSG_ERROR($missing_library))
1125 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1126 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1127 AC_MSG_ERROR($missing_library))
1128 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1129 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1130 AC_MSG_ERROR($missing_library))
1131 PKG_CHECK_MODULES([PNG], [libpng],
1132 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1133 AC_MSG_ERROR($missing_library))
1134 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1135 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1136 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1137 AC_MSG_ERROR($missing_library))
1138 PKG_CHECK_MODULES([PCRE], [libpcre],
1139 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1140 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1141 AC_MSG_ERROR($missing_library))
1142 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1143 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1144 AC_MSG_ERROR($missing_library))
1145 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1146 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1147 AC_MSG_ERROR($missing_library))
1149 if test "$use_optical_drive" = "yes"; then
1150 PKG_CHECK_MODULES([CDIO], [libcdio],
1151 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1152 AC_MSG_ERROR($missing_library))
1155 if test "$target_platform" = "target_android" ; then
1156 PKG_CHECK_MODULES([ZIP], [libzip],
1157 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1158 AC_MSG_ERROR($missing_library))
1161 # check for libbluray
1162 AS_CASE([x$use_libbluray],
1164 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1167 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1170 AS_CASE([x$use_libbluray],
1172 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1173 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1174 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1175 AC_SUBST([HAVE_LIBBLURAY], 1)
1176 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1177 AC_CHECK_DECL([BD_EVENT_IDLE],
1178 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1179 [[#include <libbluray/bluray.h>]]))
1181 AC_SUBST([HAVE_LIBBLURAY], 0)
1185 #Check to see if libs are needed for functions that are often built-in to libc
1186 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1187 AC_SEARCH_LIBS([dlopen],dl)
1188 AC_SEARCH_LIBS([clock_gettime],rt)
1189 AC_SEARCH_LIBS([dn_expand], resolv)
1190 AC_SEARCH_LIBS([_dn_expand], resolv)
1191 AC_SEARCH_LIBS([__dn_expand],resolv)
1193 # platform dependent libraries
1194 if test "$host_vendor" = "apple" ; then
1195 if test "$use_arch" != "arm"; then
1196 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1197 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1200 if test "$target_platform" != "target_android" ; then
1201 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1203 if test "x$use_alsa" != "xno"; then
1204 PKG_CHECK_MODULES([ALSA], [alsa],
1205 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1206 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1208 PKG_CHECK_MODULES([DBUS], [dbus-1],
1209 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1210 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1211 AC_MSG_NOTICE($missing_library); use_dbus=no)
1212 if test "x$use_sdl" != "xno"; then
1213 PKG_CHECK_MODULES([SDL], [sdl],
1214 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1215 AC_MSG_ERROR($missing_library))
1216 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1217 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1221 XB_FIND_SONAME([OGG], [ogg])
1222 XB_FIND_SONAME([FLAC], [FLAC])
1223 XB_FIND_SONAME([VORBIS], [vorbis])
1224 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1225 XB_FIND_SONAME([MODPLUG], [modplug])
1226 XB_FIND_SONAME([ASS], [ass])
1227 XB_FIND_SONAME([MPEG2], [mpeg2])
1230 if test "$use_webserver" = "yes"; then
1231 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1235 if test "$use_optical_drive" = "yes"; then
1236 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1240 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1241 PKG_CHECK_MODULES([ALSA], [alsa],
1242 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1243 AC_MSG_ERROR($missing_library))
1244 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1247 AC_MSG_RESULT($alsa_disabled)
1251 if test "x$use_pulse" != "xno"; then
1252 if test "$host_vendor" = "apple" ; then
1253 if test "x$use_pulse" = "xyes"; then
1254 AC_MSG_ERROR($pulse_disabled)
1257 AC_MSG_RESULT($pulse_disabled)
1261 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0],
1262 [INCLUDES="$INCLUDES $PULSE_CFLAGS"; LIBS="$LIBS $PULSE_LIBS"; USE_PULSE=1;
1263 HAVE_LIBPULSE=1; AC_DEFINE([HAVE_LIBPULSE],[1],[Pulse audio enabled])],
1264 [pulse_found="no"; USE_PULSE=0; HAVE_LIBPULSE=0])
1266 if test "$pulse_found" = "no"; then
1267 if test "x$use_pulse" = "xyes"; then
1268 AC_MSG_ERROR($pulse_not_found)
1270 AC_MSG_RESULT($pulse_disabled)
1275 AC_MSG_RESULT($pulse_disabled)
1280 if test "$host_vendor" = "apple" ; then
1282 AC_MSG_RESULT($hal_disabled)
1284 if test "$use_hal" = "yes"; then
1285 PKG_CHECK_MODULES([HAL], [hal],
1286 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1287 use_hal=no;AC_MSG_RESULT($hal_not_found))
1288 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1289 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1290 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1292 AC_MSG_RESULT($hal_disabled)
1294 if test "$use_hal" = "yes"; then
1295 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1300 if test "$host_vendor" = "apple" ; then
1302 AC_MSG_RESULT($avahi_disabled)
1304 if test "$use_avahi" = "yes"; then
1305 AC_CHECK_LIB([avahi-common], [main],,
1306 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1307 if test "$use_avahi" = "yes"; then
1308 #either both libs or none
1309 AC_CHECK_LIB([avahi-client], [main],,
1310 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1313 AC_MSG_RESULT($avahi_disabled)
1318 if test "$use_mdnsembedded" != "no"; then
1319 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1320 [if test "$use_mdnsembedded" = "yes"; then
1321 AC_MSG_ERROR($mdnsembedded_not_found)
1323 elif test "$use_mdnsembedded" != "no"; then
1324 AC_MSG_NOTICE($mdnsembedded_not_found)
1325 use_mdnsembedded="no"
1329 if test $use_mdnsembedded != "no"; then
1333 AC_MSG_RESULT($mdnsembedded_disabled)
1336 AC_SUBST(USE_MDNSEMBEDDED)
1339 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1340 AC_MSG_NOTICE($x11_enabled)
1341 PKG_CHECK_MODULES([X11], [x11],
1342 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1343 AC_MSG_ERROR($missing_library))
1344 PKG_CHECK_MODULES([XEXT], [xext],
1345 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1346 AC_MSG_ERROR($missing_library))
1347 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1349 AC_MSG_RESULT($x11_disabled)
1353 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1355 AC_MSG_RESULT($xrandr_disabled)
1357 if test "$use_xrandr" = "yes" ; then
1358 AC_CHECK_LIB([Xrandr], [main],,
1359 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1361 AC_MSG_RESULT($xrandr_disabled)
1366 if test "$use_waveform" = "yes"; then
1367 AC_MSG_NOTICE($waveform_enabled)
1370 AC_MSG_NOTICE($waveform_disabled)
1375 if test "$use_spectrum" = "yes"; then
1376 AC_MSG_NOTICE($spectrum_enabled)
1379 AC_MSG_NOTICE($spectrum_disabled)
1384 if test "$host_vendor" = "apple" ; then
1385 AC_MSG_NOTICE($goom_disabled)
1388 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1389 AC_MSG_NOTICE($goom_enabled)
1392 AC_MSG_NOTICE($goom_disabled)
1398 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1399 AC_MSG_NOTICE($rsxs_disabled)
1402 AC_MSG_NOTICE($rsxs_enabled)
1404 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1405 if test "$host_vendor" != "apple" ; then
1406 PKG_CHECK_MODULES([XT], [xt],
1407 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1408 AC_MSG_ERROR($missing_library))
1409 PKG_CHECK_MODULES([XMU], [xmu],
1410 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1411 AC_MSG_ERROR($missing_library))
1416 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1417 AC_MSG_NOTICE($fishbmc_disabled)
1421 AC_MSG_NOTICE($fishbmc_enabled)
1426 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1427 AC_MSG_NOTICE($projectm_disabled)
1431 AC_MSG_NOTICE($projectm_enabled)
1437 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1438 use_skin_touched=yes
1440 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1446 if test "x$use_ssh" = "xno"; then
1447 AC_MSG_NOTICE($ssh_disabled)
1450 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1451 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1455 if test "$use_librtmp" != "no"; then
1456 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1457 [if test "$use_librtmp" = "yes"; then
1458 AC_MSG_ERROR($librtmp_not_found)
1459 elif test "$use_librtmp" != "no"; then
1460 AC_MSG_NOTICE($librtmp_not_found)
1464 if test "$use_librtmp" != "no"; then
1465 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1467 if test "$use_librtmp" != "no"; then
1468 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1471 AC_MSG_NOTICE($librtmp_disabled)
1475 if test "x$use_samba" != "xno"; then
1476 PKG_CHECK_MODULES([SAMBA], [smbclient],
1477 [INCLUDES="$INCLUDES $SAMBA_CFLAGS"; LIBS="$LIBS $SAMBA_LIBS"],
1478 [AC_CHECK_LIB([smbclient], [main],,
1479 use_samba=no;AC_MSG_ERROR($missing_library))
1483 AC_MSG_RESULT($samba_disabled)
1487 if test "x$use_samba" != "xno"; then
1488 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1493 if test "$use_libnfs" != "no"; then
1494 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1495 [if test "$use_libnfs" = "yes"; then
1496 AC_MSG_ERROR($libnfs_not_found)
1498 elif test "$use_libnfs" != "no"; then
1499 AC_MSG_NOTICE($libnfs_not_found)
1504 if test "$use_libnfs" != "no"; then
1505 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1507 if test "$use_libnfs" != "no"; then
1508 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1513 AC_MSG_NOTICE($libnfs_disabled)
1518 if test "x$use_libafpclient" != "xno"; then
1519 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1520 [if test "x$use_libafpclient" = "xyes"; then
1521 AC_MSG_ERROR($libafpclient_not_found)
1522 elif test "x$use_libafpclient" != "xno"; then
1523 AC_MSG_NOTICE($libafpclient_not_found)
1524 use_libafpclient="no"
1527 if test "x$use_libafpclient" != "xno"; then
1528 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1529 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1533 AC_MSG_NOTICE($libafpclient_disabled)
1536 # libplist for airplay feature
1538 if test "$use_airplay" != "no"; then
1539 AC_CHECK_HEADER([plist/plist.h],,
1540 [if test "$use_airplay" = "yes"; then
1541 AC_MSG_ERROR($libplist_not_found)
1542 elif test "$use_airplay" != "no"; then
1543 AC_MSG_NOTICE($libplist_not_found)
1548 if test "$use_airplay" != "no"; then
1549 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1551 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1555 # libshairplay for AirTunes
1557 if test "x$use_airtunes" != "xno"; then
1558 AC_CHECK_HEADERS([shairplay/raop.h],USE_AIRTUNES=1,
1559 [AC_MSG_NOTICE($libshairplay_not_found)
1562 if test "x$USE_AIRTUNES" != "x0"; then
1563 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [USE_AIRTUNES])
1564 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1565 [[#include <shairplay/raop.h>]])
1566 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1569 if test "x$USE_AIRTUNES" == "x0"; then
1570 if test "x$use_airtunes" == "xyes"; then
1571 AC_MSG_ERROR("No airtunes library could be found. (libshairplay)")
1579 if test "$host_vendor" = "apple" ; then
1581 AC_MSG_NOTICE($libudev_disabled)
1583 if test "$use_libudev" = "auto"; then
1584 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1585 elif test "$use_libudev" = "yes" ; then
1586 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1588 AC_MSG_NOTICE($libudev_disabled)
1591 if test "x$use_libudev" != "xno"; then
1592 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1593 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1600 # if libudev is available, we don't need libusb
1601 if test "x$use_libudev" != "xno"; then
1603 AC_MSG_NOTICE($libusb_disabled_udev_found)
1605 if test "$host_vendor" = "apple" ; then
1607 AC_MSG_NOTICE($libusb_disabled)
1609 if echo "$ARCH" | grep -q freebsd ; then
1610 AC_CHECK_LIB([usb],[main],
1611 [use_libusb="yes";USB_LIBS="-lusb"],
1612 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1613 elif test "$use_libusb" = "auto"; then
1614 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1615 elif test "$use_libusb" = "yes"; then
1616 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1618 AC_MSG_NOTICE($libusb_disabled)
1621 if test "x$use_libusb" != "xno"; then
1622 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1623 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1630 if test "x$use_libcec" != "xno"; then
1631 # libcec is dyloaded, so we need to check for its headers and link any depends.
1632 if test "x$use_libcec" != "xno"; then
1633 if test "x$use_libcec" != "xauto"; then
1634 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1636 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1639 if test "x$use_libcec" != "xno"; then
1640 INCLUDES="$INCLUDES $CEC_CFLAGS"
1641 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1642 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1643 AC_MSG_NOTICE($libcec_enabled)
1646 AC_MSG_NOTICE($libcec_disabled)
1651 AC_MSG_NOTICE($libcec_disabled)
1655 if test "$use_libcap" != "no"; then
1656 AC_CHECK_HEADERS([sys/capability.h],,
1657 [if test "$use_libcap" = "yes"; then
1658 AC_MSG_ERROR($libcap_not_found)
1659 elif test "$use_libcap" != "no"; then
1660 AC_MSG_NOTICE($libcap_not_found)
1664 if test "$use_libcap" != "no"; then
1665 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1667 if test "$use_libcap" != "no"; then
1668 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1671 AC_MSG_NOTICE($libcap_disabled)
1675 FFMPEG_LIBNAMES="libavcodec >= 55.39.101
1676 libavfilter >= 3.90.100
1677 libavformat >= 55.19.104
1678 libavutil >= 52.48.101
1679 libpostproc >= 52.3.100
1680 libswscale >= 2.5.101
1681 libswresample >= 0.17.104"
1683 ffmpeg_build="${abs_top_srcdir}/tools/depends/target/ffmpeg"
1684 FFMPEG_VER_SHA=$(grep "VERSION=" ${ffmpeg_build}/FFMPEG-VERSION | sed 's/VERSION=//g')
1685 AC_DEFINE_UNQUOTED([FFMPEG_VER_SHA], ["$FFMPEG_VER_SHA"], [FFmpeg version hash])
1687 if test "$with_ffmpeg" = "shared"; then
1688 # allow linking against shared ffmpeg libs
1689 # a proper version must be installed, we won't build ffmpeg
1691 AC_DEFINE([USE_STATIC_FFMPEG], [0], [FFmpeg linked dynamically])
1693 if test "${USE_STATIC_FFMPEG}" = "1"; then
1694 AC_DEFINE([USE_STATIC_FFMPEG], [1], [FFmpeg linked statically])
1695 ff_libs=$(${ECHO} ${FFMPEG_LIBNAMES} | ${AWK} '/lib/{print $1}' ORS=' ')
1696 if test -n "${PKG_CONFIG_SYSROOT_DIR}"; then
1697 # workaround for cross compiling with buildroot on different buildsystem
1698 # Rpi buildroots pkg-config returns static libs with
1699 # PKG_CONFIG_SYSROOT_DIR prefixed, OEs does not
1700 # so lets make sure we always prefix in case PKG_CONFIG_SYSROOT_DIR is defined
1701 pkg_cfg_prefix="${PKG_CONFIG_SYSROOT_DIR}"
1702 elif test "${target_platform}" = "target_raspberry_pi" && test "${USE_BUILDROOT}" = "1"; then
1703 pkg_cfg_prefix=${SYSROOT}
1706 if test "$cross_compiling" != "yes"; then
1707 if test "$use_debug" != "yes"; then
1710 if test "$use_optimizations" != "yes"; then
1711 FFMPEG_OPTS="${FFMPEG_OPTS} --disable-optimizations"
1714 if test "$with_ffmpeg" = "auto" || test "$with_ffmpeg" = "yes"; then
1715 SAVE_INCLUDES="$INCLUDES"
1717 # check for system installed ffmpeg. We require minimum versions.
1718 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1719 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1720 [FFMPEG_FOUND="false"])
1722 if test "${USE_STATIC_FFMPEG}" = "1" && test "$FFMPEG_FOUND" = "true"; then
1723 # we need to check if static libs are available
1724 FFMPEG_LIBDIR=$(${PKG_CONFIG} --static --variable=libdir libavcodec)
1725 for ff_lib in ${ff_libs}; do
1726 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1727 AC_MSG_NOTICE("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1728 FFMPEG_FOUND="false"
1729 # restore includes and libs, the ones we found are invalid
1730 INCLUDES="$SAVE_INCLUDES"
1732 unset FFMPEG_LIBS FFMPEG_CFLAGS FFMPEG_LIBDIR
1736 if test "$with_ffmpeg" = "yes" || test "$FFMPEG_FOUND" = "false"; then
1737 # ffmpeg not found with pkg-config, lets install it
1738 AC_MSG_NOTICE("Installing FFmpeg")
1739 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1740 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1743 elif test "$with_ffmpeg" = "force"; then
1744 # always build our ffmpeg
1745 AC_MSG_NOTICE("FFmpeg installation forced by user - installing our version")
1746 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1747 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1749 elif test "$with_ffmpeg" != "no"; then
1750 # user passed --with-ffmpeg=/some/path, lets use it
1751 AC_MSG_NOTICE("using ffmpeg: ${with_ffmpeg}")
1752 export PKG_CONFIG_PATH="${with_ffmpeg}/lib/pkgconfig:$PKG_CONFIG_PATH"
1757 if test "$FFMPEG_FOUND" != "true"; then
1758 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1759 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1760 [AC_MSG_ERROR("ffmpeg not found")])
1763 if test "${USE_STATIC_FFMPEG}" = "1"; then
1764 # get the libdir for static linking
1765 FFMPEG_LIBDIR=${pkg_cfg_prefix}$(PKG_CONFIG_SYSROOT_DIR="" ${PKG_CONFIG} --static --variable=libdir libavcodec)
1766 GNUTLS_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors gnutls)
1767 VORBISENC_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors vorbisenc)
1769 # check if static libs are available
1770 for ff_lib in ${ff_libs}; do
1771 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1772 AC_MSG_ERROR("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1774 # filter out libs we link statically
1775 filter=$(${ECHO} ${ff_lib} | ${SED} 's/lib/-l/g')
1776 LIBS=$(${ECHO} ${LIBS} | ${SED} "s/${filter}//g")
1778 LIBS=$(${ECHO} ${LIBS} | ${SED} ':a;N;$!ba;s/\n/ /g')
1781 echo "Checking for SWIG installation"
1782 AC_PATH_PROG(SWIG_EXE, swig, "none")
1783 if test "$SWIG_EXE" = "none"; then
1784 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1785 if test "$SWIG20_EXE" != "none" ; then
1786 SWIG_EXE=$SWIG20_EXE
1789 if test "$SWIG_EXE" = "none"; then
1790 AC_MSG_ERROR($missing_program)
1792 final_message="$final_message\n SWIG Available:\tYes"
1794 echo "Checking for a jre installation"
1795 AC_PATH_PROG(JAVA_EXE, java, "none")
1796 if test "$JAVA_EXE" = "none"; then
1797 AC_MSG_ERROR($missing_program)
1799 final_message="$final_message\n JRE Available:\tYes"
1801 echo "Checking for doxygen installation"
1802 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1803 if test "$DOXYGEN_EXE" = "none"; then
1804 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1805 final_message="$final_message\n Doxygen Available:\tNo"
1808 final_message="$final_message\n Doxygen Available:\tYes"
1813 if test "x$use_vdpau" != "xno"; then
1814 if test "$host_vendor" = "apple" ; then
1815 if test "x$use_vdpau" = "xyes"; then
1816 AC_MSG_ERROR([VDPAU not supported on this platform])
1819 AC_MSG_NOTICE($vdpau_disabled)
1824 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1825 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1826 [if test "x$use_vdpau" = "xyes"; then
1828 AC_MSG_ERROR([$vdpau_not_found])
1832 AC_MSG_RESULT($vdpau_not_found)
1837 AC_MSG_NOTICE($vdpau_disabled)
1841 if test "x$use_vaapi" != "xno"; then
1842 if test "$host_vendor" = "apple" ; then
1843 if test "x$use_vaapi" = "xyes"; then
1844 AC_MSG_ERROR([VAAPI not supported on this platform])
1847 AC_MSG_NOTICE($vaapi_disabled)
1851 initial_val=$use_vaapi
1852 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1853 if test "x$use_vaapi" != "xno"; then
1854 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1857 if test "x$use_vaapi" = "xno"; then
1858 if test "x$initial_val" = "xyes"; then
1859 AC_MSG_ERROR($vaapi_not_found)
1861 AC_MSG_RESULT($vaapi_not_found)
1865 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1870 AC_MSG_NOTICE($vaapi_disabled)
1875 if test "x$use_crystalhd" != "xno"; then
1876 SAVE_CFLAGS="$CFLAGS"
1877 CFLAGS="-D__LINUX_USER__"
1878 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1879 [ if test "x$use_crystalhd" = "xyes"; then
1880 AC_MSG_ERROR($crystalhd_not_found)
1883 AC_MSG_RESULT($crystalhd_not_found)
1887 CFLAGS="$SAVE_CFLAGS"
1888 if test "$host_vendor" != "apple"; then
1889 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1891 if test "x$use_crystalhd" != "xno"; then
1892 SAVE_CFLAGS="$CFLAGS"
1893 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1894 # check for new crystalhd lib
1896 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1897 #include <libcrystalhd/bc_dts_defs.h>
1898 PBC_INFO_CRYSTAL bCrystalInfo;])],
1899 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1900 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1901 CFLAGS="$SAVE_CFLAGS"
1905 AC_MSG_NOTICE($crystalhd_disabled)
1910 if test "x$use_vtbdecoder" != "xno"; then
1911 if test "$host_vendor" = "apple" ; then
1912 HAVE_VIDEOTOOLBOXDECODER=1
1913 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1914 AC_MSG_NOTICE($vtbdecoder_enabled)
1916 if test "x$use_vtbdecoder" = "xyes"; then
1917 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1920 AC_MSG_NOTICE($vtbdecoder_disabled)
1924 AC_MSG_NOTICE($vtbdecoder_disabled)
1928 if test "$host_vendor" = "apple" ; then
1931 AC_MSG_NOTICE($openmax_disabled)
1932 elif test "$target_platform" = "target_raspberry_pi"; then
1935 AC_MSG_NOTICE($openmax_disabled)
1937 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1938 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1939 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1940 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1941 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1942 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1943 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1944 AC_MSG_ERROR($openmax_not_found))
1946 AC_MSG_NOTICE($openmax_disabled)
1952 # yajl version check (yajl_version.h was added in yajl 2.0)
1953 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1954 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1957 # additional internal players
1958 case $add_players in
1960 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1964 # additional internal codecs
1965 # remember to convert commas to spaces
1966 for codecs in `echo $add_codecs | sed 's/,/ /g'`; do
1969 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
1970 XB_ADD_CODEC([LIBAMCODEC], [amcodec], [$codecs])
1973 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright], [$codecs])
1979 # platform specific bin utilities
1980 if test "$build_vendor" != "apple" ; then
1981 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1982 if test "$HAVE_GAWK" = "no" ; then
1983 AC_MSG_ERROR($missing_program)
1987 if test "$use_arch" != "arm" ; then
1988 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1989 if test "$HAVE_CMAKE" = "no" ; then
1990 AC_MSG_ERROR($missing_program)
1994 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1995 if test "$HAVE_GPERF" = "no" ; then
1996 AC_MSG_ERROR($missing_program)
1999 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
2000 if test "$HAVE_UNZIP" = "no" ; then
2001 AC_MSG_ERROR($missing_program)
2004 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
2005 if test "$HAVE_ZIP" = "no" ; then
2006 AC_MSG_ERROR($missing_program)
2009 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
2010 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
2011 if test "$HAVE_NASM" = "no" ; then
2012 AC_MSG_ERROR($missing_program)
2016 # Checks for header files.
2020 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
2021 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
2022 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
2023 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
2024 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
2026 # Checks for typedefs, structures, and compiler characteristics.
2042 AC_CHECK_MEMBERS([struct stat.st_rdev])
2051 if test "$cross_compiling" = "yes"; then
2052 final_message="$final_message\n Crosscomp.:\tYes"
2053 if [[ -d "$NATIVE_ROOT" ]]; then
2054 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2055 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2056 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
2057 if test "$host_vendor" != "apple" ; then
2058 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
2060 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
2063 final_message="$final_message\n Crosscomp.:\tNo"
2066 final_message="$final_message\n target ARCH:\t$use_arch"
2067 final_message="$final_message\n target CPU:\t$use_cpu"
2069 if test "$use_gles" = "yes"; then
2070 final_message="$final_message\n OpenGLES:\tYes"
2075 if test "$use_gl" = "yes"; then
2076 final_message="$final_message\n OpenGL:\tYes"
2079 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2080 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2085 if test "$use_alsa" = "yes"; then
2087 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2088 final_message="$final_message\n ALSA:\t\tYes"
2091 final_message="$final_message\n ALSA:\t\tNo"
2094 if test "$use_dbus" = "yes"; then
2095 final_message="$final_message\n DBUS:\t\tYes"
2097 final_message="$final_message\n DBUS:\t\tNo"
2100 if test "x$use_vdpau" != "xno"; then
2101 final_message="$final_message\n VDPAU:\tYes"
2103 final_message="$final_message\n VDPAU:\tNo"
2106 if test "x$use_vaapi" != "xno"; then
2107 final_message="$final_message\n VAAPI:\tYes"
2109 final_message="$final_message\n VAAPI:\tNo"
2112 if test "x$use_crystalhd" != "xno"; then
2113 final_message="$final_message\n CrystalHD:\tYes"
2115 final_message="$final_message\n CrystalHD:\tNo"
2118 if test "x$use_vtbdecoder" != "xno"; then
2119 final_message="$final_message\n VTBDecoder:\tYes"
2121 final_message="$final_message\n VTBDecoder:\tNo"
2124 if test "$use_openmax" != "no"; then
2125 final_message="$final_message\n OpenMax:\tYes"
2127 final_message="$final_message\n OpenMax:\tNo"
2130 if test "$use_joystick" = "yes"; then
2131 final_message="$final_message\n Joystick:\tYes"
2132 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2134 final_message="$final_message\n Joystick:\tNo"
2137 if test "$use_xrandr" = "yes"; then
2138 final_message="$final_message\n XRandR:\tYes"
2141 final_message="$final_message\n XRandR:\tNo"
2145 if test "$use_waveform" = "yes"; then
2146 final_message="$final_message\n Waveform:\tYes"
2148 final_message="$final_message\n Waveform:\tNo"
2151 if test "$use_spectrum" = "yes"; then
2152 final_message="$final_message\n Spectrum:\tYes"
2154 final_message="$final_message\n Spectrum:\tNo"
2157 if test "$use_goom" = "yes"; then
2158 final_message="$final_message\n GOOM:\t\tYes"
2160 final_message="$final_message\n GOOM:\t\tNo"
2163 if test "$use_rsxs" = "yes"; then
2164 final_message="$final_message\n RSXS:\t\tYes"
2166 final_message="$final_message\n RSXS:\t\tNo"
2169 if test "$use_fishbmc" = "yes"; then
2170 final_message="$final_message\n FishBMC:\tYes"
2172 final_message="$final_message\n FishBMC:\tNo"
2175 if test "$use_projectm" = "yes"; then
2176 final_message="$final_message\n ProjectM:\tYes"
2178 final_message="$final_message\n ProjectM:\tNo"
2181 if test "$use_skin_touched" = "yes"; then
2182 final_message="$final_message\n Skin Touched:\tYes"
2184 final_message="$final_message\n Skin Touched:\tNo"
2187 if test "$use_x11" = "yes"; then
2188 final_message="$final_message\n X11:\t\tYes"
2190 final_message="$final_message\n X11:\t\tNo"
2193 if test "$use_wayland" = "yes"; then
2194 final_message="$final_message\n Wayland:\tYes"
2198 final_message="$final_message\n Wayland:\tNo"
2201 if test "$use_libbluray" = "yes"; then
2202 final_message="$final_message\n Bluray:\tYes"
2204 final_message="$final_message\n Bluray:\tNo"
2207 if test "x$use_texturepacker" != "xno"; then
2208 final_message="$final_message\n TexturePacker:Yes"
2211 final_message="$final_message\n TexturePacker:No"
2215 if test "$use_mid" = "yes"; then
2216 final_message="$final_message\n MID Support:\tYes"
2217 SDL_DEFINES="$SDL_DEFINES -DMID"
2219 final_message="$final_message\n MID Support:\tNo"
2224 if test "x$use_ccache" != "xno"; then
2225 AC_PATH_PROG(CCACHE,ccache,none)
2226 if test "$ac_cv_path_CCACHE" = "none"; then
2227 if test "x$use_ccache" = "xyes"; then
2228 AC_MSG_ERROR([ccache not found.]);
2230 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2231 final_message="$final_message\n ccache:\tNo"
2234 CC="$ac_cv_path_CCACHE $CC"
2235 CXX="$ac_cv_path_CCACHE $CXX"
2236 AC_MSG_NOTICE(enabling ccache)
2237 final_message="$final_message\n ccache:\tYes"
2240 final_message="$final_message\n ccache:\tNo"
2243 if test "$use_alsa" = "yes"; then
2244 final_message="$final_message\n ALSA Support:\tYes"
2246 final_message="$final_message\n ALSA Support:\tNo"
2249 if test "x$use_pulse" != "xno"; then
2250 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2251 final_message="$final_message\n PulseAudio:\tYes"
2253 XBMC_STANDALONE_SH_PULSE=/dev/null
2254 final_message="$final_message\n PulseAudio:\tNo"
2257 if test "$use_hal" = "yes"; then
2258 final_message="$final_message\n HAL Support:\tYes"
2260 final_message="$final_message\n HAL Support:\tNo"
2264 if test "$use_dvdcss" = "yes"; then
2265 AC_MSG_NOTICE($dvdcss_enabled)
2266 final_message="$final_message\n DVDCSS:\tYes"
2268 SKIP_CONFIG_DVDCSS=0
2269 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2271 AC_MSG_NOTICE($dvdcss_disabled)
2272 final_message="$final_message\n DVDCSS:\tNo"
2274 SKIP_CONFIG_DVDCSS=1
2275 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2277 if test "$host_vendor" = "apple"; then
2278 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2281 # Google Test Framework
2282 if test "$configure_gtest" = "yes"; then
2283 AC_MSG_NOTICE($gtest_enabled)
2284 final_message="$final_message\n Google Test Framework Configured:\tYes"
2288 AC_MSG_NOTICE($gtest_disabled)
2289 final_message="$final_message\n Google Test Framework Configured:\tNo"
2294 if test "$use_avahi" = "yes"; then
2295 final_message="$final_message\n Avahi:\tYes"
2297 final_message="$final_message\n Avahi:\tNo"
2300 if test "$use_mdnsembedded" != "no"; then
2301 final_message="$final_message\n mDNSEmbedded:\tYes"
2303 final_message="$final_message\n mDNSEmbedded:\tNo"
2306 if test "$use_nonfree" = "yes"; then
2307 final_message="$final_message\n Non-free:\tYes"
2309 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2312 final_message="$final_message\n Non-free:\tNo"
2315 if test "$use_asap" = "yes"; then
2316 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2317 if test "$HAVE_GDC" = "no"; then
2318 AC_MSG_ERROR($missing_program);
2320 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2321 if test "$HAVE_FPC" = "no"; then
2322 AC_MSG_ERROR($missing_program);
2325 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2326 final_message="$final_message\n ASAP Codec:\tYes"
2329 final_message="$final_message\n ASAP Codec:\tNo"
2332 if test "$use_mysql" = "yes"; then
2333 final_message="$final_message\n MySQL:\tYes"
2336 final_message="$final_message\n MySQL:\tNo"
2339 if test "$use_webserver" = "yes"; then
2340 final_message="$final_message\n Webserver:\tYes"
2343 final_message="$final_message\n Webserver:\tNo"
2347 if test "$use_libssh" != "no"; then
2348 final_message="$final_message\n libssh support:\tYes"
2350 final_message="$final_message\n libssh support:\tNo"
2353 if test "$use_librtmp" != "no"; then
2354 final_message="$final_message\n libRTMP support:\tYes"
2356 final_message="$final_message\n libRTMP support:\tNo"
2359 if test "x$use_samba" != "xno"; then
2360 final_message="$final_message\n libsmbclient support:\tYes"
2362 final_message="$final_message\n libsmbclient support:\tNo"
2365 if test "$use_libnfs" != "no"; then
2366 final_message="$final_message\n libnfs client support:Yes"
2368 final_message="$final_message\n libnfs client support:No"
2371 if test "x$use_libafpclient" != "xno"; then
2372 final_message="$final_message\n libafpclient support:\tYes"
2374 final_message="$final_message\n libafpclient support:\tNo"
2377 if test "$use_airplay" != "no"; then
2378 final_message="$final_message\n AirPlay support:\tYes"
2380 final_message="$final_message\n AirPLay support:\tNo"
2383 if test "x$use_airtunes" != "xno"; then
2384 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2386 final_message="$final_message\n AirTunes support:\tNo"
2389 if test "x$use_upnp" != "xno"; then
2390 final_message="$final_message\n UPnP support:\t\tYes"
2392 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\"""
2393 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2396 final_message="$final_message\n UPnP support:\t\tNo"
2399 if test "$use_optical_drive" = "yes"; then
2400 final_message="$final_message\n Optical drive:\tYes"
2402 final_message="$final_message\n Optical drive:\tNo"
2405 if test "x$use_libudev" != "xno"; then
2406 final_message="$final_message\n libudev support:\tYes"
2408 final_message="$final_message\n libudev support:\tNo"
2411 if test "x$use_libusb" != "xno"; then
2412 final_message="$final_message\n libusb support:\tYes"
2414 final_message="$final_message\n libusb support:\tNo"
2417 if test "x$use_libcec" != "xno"; then
2418 final_message="$final_message\n libcec support:\tYes"
2420 final_message="$final_message\n libcec support:\tNo"
2423 if test "x$use_libcap" != "xno"; then
2424 final_message="$final_message\n libcap support:\tYes"
2426 final_message="$final_message\n libcap support:\tNo"
2429 if test "x$add_players" != "xno"; then
2430 final_message="$final_message\n additional players:\tYes, $add_players"
2432 final_message="$final_message\n additional players:\tNo"
2435 if test "x$add_codecs" != "xno"; then
2436 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2438 final_message="$final_message\n additional codecs:\tNo"
2441 ### External libraries messages
2443 if test "$host_vendor" = "apple" ; then
2444 # built internal but referenced as external, we link directly to them.
2445 # this MUST be the last thing before OUTPUT_FILES as they do not
2446 # exist until after we build FFMpeg.
2447 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2448 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2449 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2450 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2451 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2452 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2453 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2457 DISABLE_PVR_ADDON_CONFIG=1
2458 if [[ -f "pvr-addons/Makefile.am" ]]; then
2459 final_message="$final_message\n PVR add-ons:\t\tYes"
2461 DISABLE_PVR_ADDON_CONFIG=0
2463 final_message="$final_message\n PVR add-ons:\t\tNo"
2466 OUTPUT_FILES="Makefile \
2468 addons/skin.confluence/media/Makefile \
2470 xbmc/cdrip/Makefile \
2471 xbmc/cores/Makefile \
2472 xbmc/cores/VideoRenderers/Makefile \
2473 xbmc/cores/dvdplayer/Makefile \
2474 lib/libdvd/Makefile \
2475 xbmc/cores/DllLoader/Makefile \
2476 xbmc/cores/DllLoader/exports/Makefile \
2477 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2478 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2479 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2480 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2481 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2482 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2483 xbmc/cores/AudioEngine/Makefile \
2484 xbmc/cores/paplayer/Makefile \
2485 xbmc/cores/omxplayer/Makefile \
2486 lib/timidity/Makefile \
2488 lib/nosefart/Makefile \
2489 lib/libsidplay2/Makefile \
2490 lib/vgmstream/Makefile \
2491 lib/snesapu/SNES/SNESAPU/Makefile \
2492 lib/stsound/StSoundLibrary/Makefile \
2493 xbmc/cores/playercorefactory/Makefile \
2494 xbmc/music/karaoke/Makefile \
2496 xbmc/guilib/Makefile \
2497 xbmc/input/linux/Makefile \
2498 xbmc/interfaces/Makefile \
2499 xbmc/network/Makefile \
2500 xbmc/network/upnp/Makefile \
2501 lib/libRTV/Makefile \
2502 lib/libexif/Makefile \
2503 lib/libXDAAP/Makefile \
2504 lib/cmyth/Makefile \
2505 lib/libhdhomerun/Makefile \
2506 lib/libsquish/Makefile \
2507 lib/cximage-6.0/Makefile \
2508 lib/libUPnP/Makefile \
2509 xbmc/DllPaths_generated.h \
2510 xbmc/DllPaths_generated_android.h \
2511 xbmc/freebsd/Makefile \
2512 xbmc/linux/Makefile \
2513 xbmc/filesystem/Makefile \
2514 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2515 xbmc/visualizations/XBMCProjectM/Makefile \
2516 xbmc/visualizations/Goom/Makefile \
2517 xbmc/visualizations/OpenGLSpectrum/Makefile \
2518 xbmc/visualizations/fishBMC/Makefile \
2519 xbmc/visualizations/WaveForm/Makefile \
2520 xbmc/windowing/Makefile \
2521 xbmc/windowing/egl/Makefile \
2522 lib/addons/library.xbmc.addon/Makefile \
2523 lib/addons/library.xbmc.codec/Makefile \
2524 lib/addons/library.xbmc.gui/Makefile \
2525 lib/addons/library.xbmc.pvr/Makefile \
2526 xbmc/visualizations/EGLHelpers/Makefile \
2527 tools/Linux/xbmc.sh \
2528 tools/Linux/xbmc-standalone.sh \
2529 tools/TexturePacker/Makefile \
2530 tools/EventClients/Clients/OSXRemote/Makefile \
2531 xbmc/peripherals/bus/Makefile \
2532 xbmc/peripherals/devices/Makefile \
2533 xbmc/android/activity/Makefile \
2534 xbmc/android/loader/Makefile \
2535 xbmc/android/jni/Makefile \
2536 xbmc/utils/Makefile \
2537 xbmc/main/Makefile \
2538 tools/darwin/Configurations/App.xcconfig \
2539 tools/darwin/Configurations/Common.xcconfig \
2540 tools/darwin/packaging/xbmc-ios/mkdeb-xbmc-ios.sh \
2541 tools/darwin/packaging/xbmc-atv2/mkdeb-xbmc-atv2.sh \
2542 tools/darwin/packaging/xbmc-osx/mkdmg-xbmc-osx.sh \
2543 xbmc/osx/Info.plist \
2544 project/cmake/xbmc-config.cmake \
2545 tools/android/packaging/xbmc/AndroidManifest.xml \
2546 addons/xbmc.addon/addon.xml"
2548 if test "$use_wayland" = "yes"; then
2549 OUTPUT_FILES="$OUTPUT_FILES xbmc/windowing/tests/wayland/Makefile"
2552 if test "$use_skin_touched" = "yes"; then
2553 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2556 if test "$use_codec_libstagefright" = "yes"; then
2557 OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile"
2560 OUTPUT_FILES="$OUTPUT_FILES \
2561 xbmc/interfaces/python/Makefile \
2562 xbmc/interfaces/python/test/Makefile"
2564 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2565 # .dummy.am does nothing.
2566 AC_CONFIG_FILES([.dummy])
2568 AC_CONFIG_FILES([${OUTPUT_FILES}])
2569 OUTPUT_FILES="$OUTPUT_FILES \
2575 AC_SUBST(CXX_FOR_BUILD)
2576 AC_SUBST(CC_FOR_BUILD)
2577 AC_SUBST(CFLAGS_FOR_BUILD)
2578 AC_SUBST(CXXFLAGS_FOR_BUILD)
2579 AC_SUBST(LDFLAGS_FOR_BUILD)
2580 AC_SUBST(SDL_DEFINES)
2581 AC_SUBST(BUILD_DVDCSS)
2582 AC_SUBST(DISABLE_WAVEFORM)
2583 AC_SUBST(DISABLE_SPECTRUM)
2584 AC_SUBST(DISABLE_GOOM)
2585 AC_SUBST(DISABLE_RSXS)
2586 AC_SUBST(DISABLE_FISHBMC)
2587 AC_SUBST(DISABLE_PROJECTM)
2588 AC_SUBST(FFMPEG_LIBDIR)
2589 AC_SUBST(USE_STATIC_FFMPEG)
2590 AC_SUBST(GNUTLS_ALL_LIBS)
2591 AC_SUBST(VORBISENC_ALL_LIBS)
2592 AC_SUBST(USE_SKIN_TOUCHED)
2593 AC_SUBST(USE_LIBAV_HACKS)
2594 AC_SUBST(PYTHON_VERSION)
2595 AC_SUBST(OUTPUT_FILES)
2596 AC_SUBST(HAVE_XBMC_NONFREE)
2597 AC_SUBST(USE_ASAP_CODEC)
2598 AC_SUBST(LIBCURL_BASENAME)
2599 AC_SUBST(LIBFLAC_BASENAME)
2600 AC_SUBST(LIBVORBISFILE_BASENAME)
2601 AC_SUBST(LIBMODPLUG_BASENAME)
2602 AC_SUBST(LIBOGG_BASENAME)
2603 AC_SUBST(LIBVORBIS_BASENAME)
2604 AC_SUBST(LIBASS_BASENAME)
2605 AC_SUBST(LIBMEPG2_BASENAME)
2606 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2607 AC_SUBST(USE_OPENGL)
2608 AC_SUBST(USE_OPENGLES)
2611 AC_SUBST(USE_CRYSTALHD)
2612 AC_SUBST(USE_LIBSMBCLIENT)
2613 AC_SUBST(USE_LIBNFS)
2614 AC_SUBST(USE_LIBAFPCLIENT)
2615 AC_SUBST(USE_AIRPLAY)
2616 AC_SUBST(USE_OPENMAX)
2618 AC_SUBST(HAVE_LIBPULSE)
2619 AC_SUBST(USE_XRANDR)
2621 AC_SUBST(USE_TEXTUREPACKER)
2622 AC_SUBST(USE_AIRTUNES)
2623 AC_SUBST(USE_LIBUDEV)
2624 AC_SUBST(USE_LIBUSB)
2625 AC_SUBST(USE_LIBCEC)
2627 AC_SUBST(USE_WAYLAND)
2628 AC_SUBST(USE_WEB_SERVER)
2630 AC_SUBST(USE_XKBCOMMON)
2631 AC_SUBST(USE_OMXLIB)
2632 AC_SUBST(USE_ANDROID)
2633 AC_SUBST(GTEST_CONFIGURED)
2634 AC_SUBST(USE_DOXYGEN)
2635 AC_SUBST(USE_PVR_ADDONS)
2636 AC_SUBST(UPNP_DEFINES)
2638 # pushd and popd are not available in other shells besides bash, so implement
2639 # our own pushd/popd functions
2644 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2646 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2649 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2654 if [[ -n "$XB_DIRSTACK" ]]; then
2655 XB_DIRSTACK="${XB_DIRSTACK#* }"
2656 cd "${XB_DIRSTACK%% *}"
2659 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2663 # Function to run the configure scripts in our submodules
2664 # Consists of three paramaters, the path to the submodule, the configure command
2665 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2666 # running the script, anything else if not.
2667 AC_DEFUN([XB_CONFIG_MODULE],[
2668 AC_CONFIG_COMMANDS_POST([
2669 if [[ $3 != "1" ]]; then
2670 if [[ -d $1 ]]; then
2673 if [[ $? -ne 0 ]]; then
2675 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2680 AC_MSG_ERROR([[Submodule $1 does not exist]])
2683 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2688 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2692 CFLAGS="$CFLAGS $DROID_DVDLIB_SEEK64" \
2693 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2694 --host=$host_alias \
2695 --build=$build_alias \
2696 --target=$target_alias \
2700 ], [$SKIP_CONFIG_DVDCSS])
2702 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2704 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src $DROID_DVDLIB_SEEK64" \
2705 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2706 --host=$host_alias \
2707 --build=$build_alias \
2708 --target=$target_alias \
2714 mkdir -p `pwd`/../includes/dvdread
2715 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2716 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2719 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2721 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes $DROID_DVDLIB_SEEK64" \
2722 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2723 --with-dvdread-config="`pwd`/../dvdread-config" \
2724 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2725 --host=$host_alias \
2726 --build=$build_alias \
2727 --target=$target_alias \
2733 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2735 rm -f CMakeCache.txt && \
2736 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2737 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2738 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2739 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2740 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2741 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2742 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2743 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2744 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2745 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2746 if test "$host_vendor" = "apple" ; then
2747 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2748 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2749 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2750 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2753 ], [$DISABLE_PROJECTM])
2755 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2758 CXXFLAGS="$CXXFLAGS" \
2759 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2760 --host=$host_alias \
2761 --build=$build_alias \
2762 --target=$target_alias \
2768 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2769 if test "$host_vendor" = "apple"; then
2770 # clang treats inlines different
2773 TEMPCFLAGS="$CFLAGS";;
2775 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";;
2778 TEMPCFLAGS="$CFLAGS";
2783 CFLAGS="$TEMPCFLAGS" \
2784 CXXFLAGS="$CXXFLAGS" \
2785 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2786 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2787 --host=$host_alias \
2788 --build=$build_alias \
2789 --target=$target_alias \
2790 --without-xscreensaver \
2793 --disable-fieldlines \
2797 --disable-hyperspace \
2800 if echo "$ARCH" | grep -q freebsd ; then
2801 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2805 XB_CONFIG_MODULE([lib/cpluff], [
2806 ./configure --disable-nls \
2807 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2808 --host=$host_alias \
2809 --build=$build_alias \
2810 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2811 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2814 XB_CONFIG_MODULE([lib/gtest], [
2819 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2820 --host=$host_alias \
2821 --build=$build_alias \
2822 --target=$target_alias \
2826 ], [$SKIP_CONFIG_GTEST])
2828 XB_CONFIG_MODULE([pvr-addons], [
2830 --prefix="${prefix}" \
2831 --host=$host_alias \
2832 --build=$build_alias \
2833 --target=$target_alias \
2837 CXXFLAGS="$CXXFLAGS"
2838 ], [$DISABLE_PVR_ADDON_CONFIG])
2842 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2843 echo -e "$final_message\n"