2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [13.9.701], [http://issues.xbmc.org])
6 AC_CONFIG_HEADERS([xbmc/config.h])
8 m4_include([m4/ax_prog_cc_for_build.m4])
9 m4_include([m4/ax_prog_cxx_for_build.m4])
10 m4_include([m4/ax_python_devel.m4])
11 m4_include([m4/xbmc_arch.m4])
13 AC_CONFIG_AUX_DIR([build-aux])
14 AM_INIT_AUTOMAKE([foreign])
18 echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
21 # workaround for autotools that don't set this
22 abs_top_srcdir=${abs_top_srcdir=$(cd $srcdir; pwd)}
24 # check for enabling additional players
25 AC_DEFUN([XB_ADD_PLAYER],
27 AC_MSG_CHECKING([for $2])
31 AC_DEFINE([HAS_$1], 1, [using $2])
32 AC_MSG_RESULT([enabling $2])
35 AC_MSG_RESULT([$2 is not enabled])
39 # check for enabling additional codecs
40 AC_DEFUN([XB_ADD_CODEC],
42 AC_MSG_CHECKING([for $2])
47 AC_DEFINE([HAS_$1], 1, [using $2])
48 AC_MSG_RESULT([enabling $2])
51 AC_MSG_RESULT([$2 is not enabled])
55 # check for library basenames
56 AC_DEFUN([XB_FIND_SONAME],
58 if echo "$host" | grep -q freebsd ; then
59 AC_MSG_CHECKING([for lib$2 soname])
60 $1_SONAME=[`ldconfig -r | sed -n "s;.* \(/.*lib$2\.so.*\)$;\1;p" | head -n 1`]
61 if test x$$1_SONAME != x ; then
62 $1_SONAME=[`basename $$1_SONAME`]
64 elif [[ "$host_vendor" != "apple" ]]; then
65 AC_MSG_CHECKING([for lib$2 soname])
66 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
67 if [[ -z $$1_FILENAME ]]; then
68 #try gold linker syntax
69 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "lib$2")
71 if [[ ! -z $$1_FILENAME ]]; then
72 $1_SONAME=$($OBJDUMP -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}')
75 AC_MSG_CHECKING([for lib$2 dylib])
76 gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
77 env_lib_path=[`echo $LDFLAGS | sed 's/-L[ ]*//g'`]
78 if test "$cross_compiling" = yes; then
81 host_lib_path="/usr/lib /usr/local/lib"
83 for path in $gcc_lib_path $env_lib_path $host_lib_path; do
84 lib=[`ls -- $path/lib$2.dylib 2>/dev/null`]
85 if test x$lib != x; then
86 # we want the path/name that is embedded in the dylib
87 $1_SONAME=[`otool -L $lib | grep -v lib$2.dylib | grep lib$2 | awk '{V=1; print $V}'`]
88 $1_SONAME=[`basename $$1_SONAME`]
92 if [[ -z "$$1_SONAME" ]]; then
94 if test -z "$3" || test "x${$3}" = "xyes"; then
95 AC_MSG_ERROR([Unable to determine soname of lib$2 library])
97 AC_MSG_WARN([Unable to determine soname of lib$2 library])
99 AC_MSG_WARN([lib$2 support disabled])
102 AC_MSG_RESULT([$$1_SONAME])
107 # Function to push and pop libs and includes for a command
108 AC_DEFUN([XB_PUSH_FLAGS], [
110 SAVE_INCLUDES="$INCLUDES"
115 INCLUDES="$SAVE_INCLUDES"
118 # General message strings
119 configure_debug="ERROR: this is a configure debug statement"
120 missing_library="Could not find a required library. Please see the README for your platform."
121 missing_headers="Could not find some required headers. Please see the README for your platform."
122 missing_program="Could not find a required program. Please see the README for your platform."
123 xrandr_not_found="== Could not find libXRandR. SDL will be used for resolution support. =="
124 xrandr_disabled="== XRandR support disabled. SDL will be used for resolution support. =="
125 waveform_enabled="== WAVEFORM enabled =="
126 waveform_disabled="== WAVEFORM disabled =="
127 spectrum_enabled="== SPECTRUM enabled =="
128 spectrum_disabled="== SPECTRUM disabled =="
129 goom_enabled="== GOOM enabled. =="
130 goom_disabled="== GOOM disabled. =="
131 alsa_disabled="== ALSA support disabled. =="
132 rsxs_enabled="== RSXS enabled. =="
133 rsxs_disabled="== RSXS disabled. =="
134 fishbmc_enabled="== FishBMC enabled. =="
135 fishbmc_disabled="== FishBMC disabled. =="
136 projectm_enabled="== ProjectM enabled. =="
137 projectm_disabled="== ProjectM disabled. =="
138 wayland_enabled="== Wayland enabled. =="
139 wayland_disabled="== Wayland disabled. =="
140 x11_enabled="== X11 enabled. =="
141 x11_disabled="== X11 disabled. =="
142 pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
143 pulse_disabled="== PulseAudio support disabled. =="
144 dvdcss_enabled="== DVDCSS support enabled. =="
145 dvdcss_disabled="== DVDCSS support disabled. =="
146 hal_not_found="== Could not find hal. HAL support disabled. =="
147 halstorage_not_found="== Could not find hal-storage. HAL support disabled. =="
148 hal_disabled="== HAL support disabled. =="
149 avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
150 avahi_disabled="== Avahi support disabled. =="
151 mdnsembedded_not_found="== Could not find mDNSEmbedded. Might prevent zeroconf support. =="
152 mdnsembedded_disabled="== mDNSEmbedded support disabled. =="
153 vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
154 vdpau_disabled="== VDPAU support manually disabled. =="
155 vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
156 vaapi_disabled="== VAAPI support manually disabled. =="
157 crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
158 crystalhd_disabled="== CrystalHD support manually disabled. =="
159 vtbdecoder_enabled="== VTBDecoder support enabled. =="
160 vtbdecoder_disabled="== VTBDecoder support manually disabled. =="
161 openmax_disabled="== OpenMax support manually disabled. =="
162 openmax_not_found="== Could not find libnvomx. OpenMax support disabled. =="
163 ssh_not_found="== Could not find libssh. =="
164 ssh_disabled="== SSH SFTP disabled. =="
165 librtmp_not_found="== Could not find libRTMP. RTMP support disabled. =="
166 librtmp_disabled="== RTMP support disabled. =="
167 libnfs_not_found="== Could not find libnfs. NFS client support disabled. =="
168 libnfs_disabled="== NFS support disabled. =="
169 libafpclient_not_found="== Could not find libafpclient. AFP client support disabled. =="
170 libafpclient_disabled="== AFP support disabled. =="
171 libshairplay_not_found="== Could not find libshairplay. =="
172 samba_disabled="== SAMBA support disabled. =="
173 libplist_not_found="== Could not find libplist. AirPlay support disabled. =="
174 libplist_disabled="== AirPlay support disabled. =="
175 alsa_not_found="== Could not find ALSA. ALSA support disabled. =="
176 dbus_not_found="== Could not find DBUS. DBUS support disabled. =="
177 libcap_disabled="== Capabilities detection support disabled. =="
178 libcap_not_found="== Could not find libcap. Capabilities detection support disabled. =="
179 gtest_enabled="== Google Test Framework will be configured. =="
180 gtest_disabled="== Google Test Framework will not be configured. =="
182 libudev_not_found="== Could not find libudev. Will use polling to check for device changes. =="
183 libudev_disabled="== udev support disabled. Will use polling to check for device changes. =="
184 libusb_not_found="== Could not find libusb. Plug and play USB device support will not be available. =="
185 libusb_disabled="== libusb disabled. Plug and play USB device support will not be available. =="
186 libusb_disabled_udev_found="== libusb disabled. =="
187 libcec_enabled="== libcec enabled. =="
188 libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
190 dashes="------------------------"
191 final_message="\n XBMC Configuration:"
192 final_message="\n$dashes$final_message\n$dashes"
194 AC_ARG_WITH([ffmpeg],
195 [AS_HELP_STRING([--with-ffmpeg],
196 [ffmpeg options: auto (search pkg-config or auto build), force (always build ffmpeg), shared (link dynamically), path_to_ffmpeg [default=force]])],
197 [ffmpeg_dir=$with_ffmpeg],
200 AC_ARG_ENABLE([shared-lib],
201 [AS_HELP_STRING([--enable-shared-lib],
202 [build libxbmc. helpful for tests (default is no)])],
203 [build_shared_lib=$enableval],
204 [build_shared_lib=no])
206 AC_ARG_ENABLE([debug],
207 [AS_HELP_STRING([--enable-debug],
208 [enable debugging information (default is yes)])],
209 [use_debug=$enableval],
212 AC_ARG_WITH([platform],
213 [AS_HELP_STRING([--with-platform],
214 [use a pre-configured config for common arm boards])],
215 [use_platform=$withval],
218 AC_ARG_ENABLE([optimizations],
219 [AS_HELP_STRING([--enable-optimizations],
220 [enable optimization (default is yes)])],
221 [use_optimizations=$enableval],
222 [use_optimizations=yes])
225 [AS_HELP_STRING([--enable-gl],
226 [enable OpenGL rendering (default is yes)])],
230 AC_ARG_ENABLE([gles],
231 [AS_HELP_STRING([--enable-gles],
232 [enable OpenGLES rendering (default is no)])],
233 [use_gles=$enableval],
237 [AS_HELP_STRING([--enable-sdl],
238 [enable SDL (default is auto)])],
239 [use_sdl=$enableval],
242 AC_ARG_ENABLE([vdpau],
243 [AS_HELP_STRING([--enable-vdpau],
244 [enable VDPAU decoding (default is auto)])],
245 [use_vdpau=$enableval],
248 AC_ARG_ENABLE([vaapi],
249 [AS_HELP_STRING([--enable-vaapi],
250 [enable VAAPI decoding (default is auto)])],
251 [use_vaapi=$enableval],
254 AC_ARG_ENABLE([crystalhd],
255 [AS_HELP_STRING([--enable-crystalhd],
256 [enable CrystalHD decoding (default is auto)])],
257 [use_crystalhd=$enableval],
258 [use_crystalhd=auto])
260 AC_ARG_ENABLE([vtbdecoder],
261 [AS_HELP_STRING([--enable-vtbdecoder],
262 [enable VTBDecoder decoding (default is auto)])],
263 [use_vtbdecoder=$enableval],
264 [use_vtbdecoder=auto])
266 AC_ARG_ENABLE([openmax],
267 [AS_HELP_STRING([--enable-openmax],
268 [enable OpenMax decoding (default is auto, requires OpenGLES)])],
269 [use_openmax=$enableval],
272 AC_ARG_ENABLE([tegra],
273 [AS_HELP_STRING([--enable-tegra],
274 [enable Tegra2 arm (default is no)])],
275 [use_tegra=$enableval],
278 AC_ARG_ENABLE([profiling],
279 [AS_HELP_STRING([--enable-profiling],
280 [enable gprof profiling (default is no)])],
281 [use_profiling=$enableval],
284 AC_ARG_ENABLE([joystick],
285 [AS_HELP_STRING([--enable-joystick],
286 [enable SDL joystick support (default is yes)])],
287 [use_joystick=$enableval],
290 AC_ARG_ENABLE([xrandr],
291 [AS_HELP_STRING([--enable-xrandr],
292 [enable XRandR support (default is yes)])],
293 [use_xrandr=$enableval],
296 AC_ARG_ENABLE([waveform],
297 [AS_HELP_STRING([--enable-waveform],
298 [enable Waveform visualisation (default is yes)])],
299 [use_waveform=$enableval],
302 AC_ARG_ENABLE([spectrum],
303 [AS_HELP_STRING([--enable-spectrum],
304 [enable Spectrum visualisation (default is yes)])],
305 [use_spectrum=$enableval],
308 AC_ARG_ENABLE([goom],
309 [AS_HELP_STRING([--enable-goom],
310 [enable GOOM visualisation (default is no)])],
311 [use_goom=$enableval],
314 AC_ARG_ENABLE([rsxs],
315 [AS_HELP_STRING([--enable-rsxs],
316 [enable really slick X screensavers (default is yes)])],
317 [use_rsxs=$enableval],
320 AC_ARG_ENABLE([fishbmc],
321 [AS_HELP_STRING([--enable-fishbmc],
322 [enable FishBMC visualisation (default is yes)])],
323 [use_fishbmc=$enableval],
326 AC_ARG_ENABLE([projectm],
327 [AS_HELP_STRING([--enable-projectm],
328 [enable ProjectM visualisation (default is yes)])],
329 [use_projectm=$enableval],
332 AC_ARG_ENABLE([wayland],
333 [AS_HELP_STRING([--enable-wayland],
334 [enable wayland (default is no) 'Linux Only'])],
335 [use_wayland=$enableval],
339 [AS_HELP_STRING([--enable-x11],
340 [enable x11 (default is yes) 'Linux Only'])],
341 [use_x11=$enableval],
344 AC_ARG_ENABLE([ccache],
345 [AS_HELP_STRING([--enable-ccache],
346 [enable building with ccache feature (default is auto)])],
347 [use_ccache=$enableval],
350 AC_ARG_ENABLE([alsa],
351 [AS_HELP_STRING([--disable-alsa],
352 [disable ALSA support (only for linux/freebsd)])],
353 [use_alsa=$enableval],
356 AC_ARG_ENABLE([pulse],
357 [AS_HELP_STRING([--enable-pulse],
358 [enable PulseAudio support (default is auto)])],
359 [use_pulse=$enableval],
363 [AS_HELP_STRING([--disable-ssh],
364 [disable SSH SFTP support (default is enabled)])],
365 [use_ssh=$enableval],
368 AC_ARG_ENABLE([rtmp],
369 [AS_HELP_STRING([--enable-rtmp],
370 [enable RTMP support via librtmp (default is auto)])],
371 [use_librtmp=$enableval],
374 AC_ARG_ENABLE([samba],
375 [AS_HELP_STRING([--disable-samba],
376 [disable SAMBA support (default is enabled)])],
377 [use_samba=$enableval],
381 [AS_HELP_STRING([--enable-nfs],
382 [enable NFS support via libnfs (default is auto)])],
383 [use_libnfs=$enableval],
386 AC_ARG_ENABLE([afpclient],
387 [AS_HELP_STRING([--enable-afpclient],
388 [enable AFP support via libafpclient (default is auto)])],
389 [use_libafpclient=$enableval],
390 [use_libafpclient=auto])
392 AC_ARG_ENABLE([airplay],
393 [AS_HELP_STRING([--enable-airplay],
394 [enable AirPlay support(default is auto)])],
395 [use_airplay=$enableval],
398 AC_ARG_ENABLE([airtunes],
399 [AS_HELP_STRING([--enable-airtunes],
400 [enable AirTunes support(default is auto)])],
401 [use_airtunes=$enableval],
404 AC_ARG_ENABLE([upnp],
405 [AS_HELP_STRING([--disable-upnp],
406 [disable UPnP support (default is enabled)])],
407 [use_upnp=$enableval],
410 AC_ARG_ENABLE([dvdcss],
411 [AS_HELP_STRING([--enable-dvdcss],
412 [enable DVDCSS support (default is yes)])],
413 [use_dvdcss=$enableval],
417 [AS_HELP_STRING([--enable-mid],
418 [enable MID support (default is no)])],
419 [use_mid=$enableval],
423 [AS_HELP_STRING([--disable-hal],
424 [disable HAL support (default is enabled if hal and hal-storage is found)])],
425 [use_hal=$enableval],
428 AC_ARG_ENABLE([avahi],
429 [AS_HELP_STRING([--disable-avahi],
430 [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
431 [use_avahi=$enableval],
434 AC_ARG_ENABLE([mdnsembedded],
435 [AS_HELP_STRING([--disable-mdnsembedded],
436 [disable mDNSEmbedded support (default is auto)])],
437 [use_mdnsembedded=$enableval],
438 [use_mdnsembedded=auto])
440 AC_ARG_ENABLE([non-free],
441 [AS_HELP_STRING([--disable-non-free],
442 [disable componentents with non-compliant licenses])],
443 [use_nonfree=$enableval],
446 AC_ARG_ENABLE([asap-codec],
447 [AS_HELP_STRING([--enable-asap-codec],
448 [enable ASAP ADPCM support])],
449 [use_asap=$enableval],
452 AC_ARG_ENABLE([mysql],
453 [AS_HELP_STRING([--disable-mysql],
455 [use_mysql=$enableval],
458 AC_ARG_ENABLE([webserver],
459 [AS_HELP_STRING([--disable-webserver],
460 [disable webserver])],
461 [use_webserver=$enableval],
464 AC_ARG_ENABLE([optical-drive],
465 [AS_HELP_STRING([--disable-optical-drive],
466 [disable optical drive])],
467 [use_optical_drive=$enableval],
468 [use_optical_drive=yes])
470 AC_ARG_ENABLE([libbluray],
471 [AS_HELP_STRING([--enable-libbluray],
472 [enable libbluray support])],
473 [use_libbluray=$enableval],
474 [use_libbluray=auto])
476 AC_ARG_ENABLE([texturepacker],
477 [AS_HELP_STRING([--enable-texturepacker],
478 [enable texturepacker support (default is yes)])],
479 [use_texturepacker=$enableval],
480 [use_texturepacker=auto])
482 AC_ARG_WITH([lirc-device],
483 [AS_HELP_STRING([--with-lirc-device=file],
484 [specify the default LIRC device (default is /dev/lircd)])],
485 [lirc_device=$withval],
486 [lirc_device=/dev/lircd])
487 AC_DEFINE_UNQUOTED([LIRC_DEVICE], ["$lirc_device"], [Default LIRC device])
489 AC_ARG_ENABLE([udev],
490 [AS_HELP_STRING([--enable-udev],
491 [enable udev support (default is auto)])],
492 [use_libudev=$enableval],
495 AC_ARG_ENABLE([libusb],
496 [AS_HELP_STRING([--enable-libusb],
497 [enable libusb support (default is auto)])],
498 [use_libusb=$enableval],
501 AC_ARG_ENABLE([libcec],
502 [AS_HELP_STRING([--enable-libcec],
503 [enable libcec support (default is auto)])],
504 [use_libcec=$enableval],
507 AC_ARG_ENABLE([libmp3lame],
508 [AS_HELP_STRING([--enable-libmp3lame],
509 [enable lame mp3 encoder support (default is auto)])],
510 [use_libmp3lame=$enableval],
511 [use_libmp3lame=auto])
513 AC_ARG_ENABLE([libvorbisenc],
514 [AS_HELP_STRING([--enable-libvorbisenc],
515 [enable vorbis encoder support (default is auto)])],
516 [use_libvorbisenc=$enableval],
517 [use_libvorbisenc=auto])
519 AC_ARG_ENABLE([libcap],
520 [AS_HELP_STRING([--enable-libcap],
521 [enable libcap support (default is auto)])],
522 [use_libcap=$enableval],
525 AC_ARG_ENABLE([player],
526 [AS_HELP_STRING([--enable-player],
527 [enable additional players from a list of comma separated names, (default is none, choices are omxplayer)])],
528 [add_players=$enableval],
531 AC_ARG_ENABLE([gtest],
532 [AS_HELP_STRING([--enable-gtest],
533 [configure Google Test Framework (default is yes)])],
534 [configure_gtest=$enableval],
535 [configure_gtest=yes])
537 AC_ARG_ENABLE([codec],
538 [AS_HELP_STRING([--enable-codec],
539 [enable additional codecs from a list of comma separated names, (default is none, choices are amcodec, libstagefright)])],
540 [add_codecs=$enableval],
543 AC_ARG_ENABLE([libav-compat],
544 [AS_HELP_STRING([--enable-libav-compat],
545 [build a wrapper around libav to provide the functions needed by XBMC. This is
546 *not* supported by XBMC developers and is provided only for convenience. (default is no) 'Linux only'])],
547 [use_libav_hacks=$enableval],
548 [use_libav_hacks=no])
550 ### End of external library options
552 if test "x$host_vendor" != "xapple"; then
553 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
554 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
557 # Checks for programs.
558 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
561 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
562 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
564 AX_PROG_CXX_FOR_BUILD
565 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
572 OBJDUMP="${OBJDUMP:-objdump}"
574 # host detection and setup
576 i*86*-linux-android*)
577 target_platform=target_android
588 i*86*-linux-gnu*|i*86*-*-linux-uclibc*)
590 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
596 x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
598 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
609 ARCH="x86_64-freebsd"
625 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
626 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
627 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
628 PYTHON_NOVERSIONCHECK="no-check"
629 DEPENDS_ROOT_FOR_XCODE=$(echo ${prefix%/*})
630 AC_SUBST([DEPENDS_ROOT_FOR_XCODE])
636 DEPENDS_ROOT_FOR_XCODE=$(echo ${prefix%/*})
637 AC_SUBST([DEPENDS_ROOT_FOR_XCODE])
639 powerpc-apple-darwin*)
645 DEPENDS_ROOT_FOR_XCODE=$(echo ${prefix%/*})
646 AC_SUBST([DEPENDS_ROOT_FOR_XCODE])
648 powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*)
651 powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*)
652 ARCH="powerpc64-linux"
654 arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
665 arm*-*linux-android*)
666 target_platform=target_android
680 AC_MSG_ERROR(unsupported host ($host))
684 check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
685 if test "x$check_sdl_arch" = "xi386" ; then
686 DARWIN_NATIVE_ARCH=-m32
687 elif test "x$check_sdl_arch" = "xx86_64" ; then
688 DARWIN_NATIVE_ARCH=-m64
690 AC_SUBST([DARWIN_NATIVE_ARCH])
692 if test "$target_platform" = "target_android" ; then
694 webserver_checkdepends=yes
695 CFLAGS="$CFLAGS -Wno-psabi"
696 DROID_DVDLIB_SEEK64="-D_FILE_OFFSET_BITS=64 -D_OFF_T_DEFINED_ -Doff_t=off64_t -Dlseek=lseek64"
697 CXXFLAGS="$CXXFLAGS -Wno-psabi"
698 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
701 case $use_platform in
703 target_platform=target_raspberry_pi
707 use_hardcoded_tables="yes"
710 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
711 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
717 XBMC_SETUP_ARCH_DEFINES()
720 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
721 if test "$GIT_REV" = ""; then
722 if test -f VERSION ; then
723 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
724 elif test "$HAVE_GIT" = "yes" -a -d ${abs_top_srcdir}/.git; then
725 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
730 final_message="$final_message\n git Rev.:\t${GIT_REV}"
732 # detect Xbmc soname version
733 # version can be overridden by setting the following as ENV vars when running configure
734 APP_VERSION_MAJOR=${APP_VERSION_MAJOR-$(${AWK} '/VERSION_MAJOR/ {print $2}' version.txt)}
735 APP_VERSION_MINOR=${APP_VERSION_MINOR-$(${AWK} '/VERSION_MINOR/ {print $2}' version.txt)}
736 APP_VERSION_TAG=${APP_VERSION_TAG-$(${AWK} '/VERSION_TAG/ {print $2}' version.txt)}
737 APP_VERSION_TAG_LC=$(echo $APP_VERSION_TAG | ${AWK} '{print tolower($0)}')
738 APP_VERSION_CODE=${APP_VERSION_CODE-$(${AWK} '/VERSION_CODE/ {print $2}' version.txt)}
739 APP_ADDON_API=${APP_ADDON_API-$(${AWK} '/ADDON_API/ {print $2}' version.txt)}
740 if test "$APP_VERSION_MAJOR" != "" && test "$APP_VERSION_MINOR" != "" && test "$APP_VERSION_TAG" != "" \
741 && test "$APP_VERSION_CODE" != "" && test "$APP_ADDON_API" != ""; then
742 final_message="$final_message\n Xbmc Version:\t${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}-${APP_VERSION_TAG}"
743 AC_SUBST(APP_VERSION_MAJOR)
744 AC_SUBST(APP_VERSION_MINOR)
745 AC_SUBST(APP_VERSION_TAG)
746 AC_SUBST(APP_VERSION_TAG_LC)
747 AC_SUBST(APP_VERSION_CODE)
748 AC_SUBST(APP_ADDON_API)
750 AC_MSG_ERROR(could not detect XBMC Version, make sure version.txt is complete)
753 if test "$host_vendor" = "apple"; then
754 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
756 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
759 if test "$build_shared_lib" = "yes"; then
760 final_message="$final_message\n Shared lib\tYes"
761 AC_SUBST(USE_LIBXBMC,1)
765 # platform debug flags
766 if test "$use_debug" = "yes"; then
767 final_message="$final_message\n Debugging:\tYes"
768 if test "$use_profiling" = "yes"; then
769 final_message="$final_message\n Profiling:\tYes"
770 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
772 final_message="$final_message\n Profiling:\tNo"
773 DEBUG_FLAGS="-g -D_DEBUG -Wall"
776 final_message="$final_message\n Debugging:\tNo"
777 if test "$use_profiling" = "yes"; then
778 final_message="$final_message\n Profiling:\tYes"
779 DEBUG_FLAGS="-pg -DNDEBUG=1"
781 final_message="$final_message\n Profiling:\tNo"
782 DEBUG_FLAGS="-DNDEBUG=1"
785 CFLAGS="$CFLAGS $DEBUG_FLAGS"
786 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
789 if test "$use_optimizations" = "yes"; then
790 final_message="$final_message\n Optimization:\tYes"
791 if test "$target_platform" = "target_raspberry_pi"; then
795 CXXFLAGS="-O2 $CXXFLAGS"
799 final_message="$final_message\n Optimization:\tNo"
803 # platform specific flags
804 if echo "$ARCH" | grep -q "freebsd" ; then
805 LOCALBASE="${LOCALBASE:-/usr/local}"
806 CFLAGS="$CFLAGS -I$LOCALBASE/include"
807 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
808 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
809 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
811 if test "$host_vendor" = "apple" ; then
812 # standard xbmc paths
813 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
814 if test "$use_arch" != "arm"; then
815 LIBS="$LIBS -framework ApplicationServices"
816 LIBS="$LIBS -framework AudioUnit"
817 LIBS="$LIBS -framework AudioToolbox"
818 LIBS="$LIBS -framework Cocoa"
819 LIBS="$LIBS -framework CoreAudio"
820 LIBS="$LIBS -framework CoreVideo"
821 LIBS="$LIBS -framework CoreServices"
822 LIBS="$LIBS -framework CoreFoundation"
823 LIBS="$LIBS -framework DiskArbitration"
824 LIBS="$LIBS -framework IOKit"
825 LIBS="$LIBS -framework IOSurface"
826 LIBS="$LIBS -framework QuartzCore"
827 LIBS="$LIBS -framework SystemConfiguration"
828 LIBS="$LIBS -framework VideoDecodeAcceleration"
830 elif test "$target_platform" = "target_raspberry_pi"; then
833 elif test "$use_arch" = "arm"; then
834 CFLAGS="$CFLAGS -mno-apcs-stack-check"
835 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
836 if test "$use_tegra" = "yes"; then
837 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
838 SAVE_CFLAGS="$CFLAGS"
839 CFLAGS="-mfpu=vfpv3-d16"
841 [AC_LANG_SOURCE([int foo;])],
842 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
843 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
845 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
846 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
849 if test "$use_neon" = "yes"; then
850 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
851 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
856 # Checks for library functions.
859 AC_FUNC_CLOSEDIR_VOID
860 AC_FUNC_ERROR_AT_LINE
862 AC_PROG_GCC_TRADITIONAL
864 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
868 # Boxee is apparently having compile problems
869 # if HAVE_REALLOC is defined. Sort this later.
871 AC_FUNC_SELECT_ARGTYPES
872 AC_FUNC_SETVBUF_REVERSED
880 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])
882 # Check for various sizes
883 AC_CHECK_SIZEOF([int])
884 AC_CHECK_SIZEOF([size_t])
886 # Check for intrinsics
887 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
888 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
889 [have_builtin_sync_add_and_fetch=yes],
890 [have_builtin_sync_add_and_fetch=no])
891 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
892 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
893 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
894 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
897 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
898 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
899 [have_builtin_sync_sub_and_fetch=yes],
900 [have_builtin_sync_sub_and_fetch=no])
901 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
902 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
903 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
904 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
907 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
908 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
909 [have_builtin_sync_val_compare_and_swap=yes],
910 [have_builtin_sync_val_compare_and_swap=no])
911 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
912 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
913 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
914 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
917 # Check for u16string/u32string declarations
919 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
920 AC_CHECK_TYPES([char16_t, char32_t])
921 AC_CHECK_SIZEOF([wchar_t])
924 # Add top source directory for all builds so we can use config.h
925 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
927 # Check inotify availability
928 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
930 # Checks for boost headers using CXX instead of CC
932 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
936 if test -z "$PYTHON_NOVERSIONCHECK"; then
937 AX_PYTHON_DEVEL([>= 2.4])
938 PYTHON_VERSION=$ac_python_version
941 if test -z "$PYTHON_VERSION"; then
942 AC_MSG_ERROR([Can't find a Python version.])
944 LIBS="$LIBS $PYTHON_LDFLAGS"
945 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
949 if test "$use_wayland" = "yes" && test "$host_vendor" != "apple"; then
950 AC_MSG_NOTICE($wayland_enabled)
951 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client],
952 [INCLUDES="$INCLUDES $WAYLAND_CLIENT_CFLAGS";
953 WAYLAND_CLIENT_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-client\`; echo ${LIBRARY:2}`;
954 XB_FIND_SONAME([WAYLAND_CLIENT_LIBRARY], ${WAYLAND_CLIENT_LIBRARY_LINE})],
955 AC_MSG_ERROR($missing_library))
956 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],
957 [INCLUDES="$INCLUDES $WAYLAND_EGL_CFLAGS";
958 WAYLAND_EGL_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-egl\`; echo ${LIBRARY:2:11}`
959 XB_FIND_SONAME([WAYLAND_EGL_LIBRARY], ${WAYLAND_EGL_LIBRARY_LINE})],
960 AC_MSG_ERROR($missing_library))
961 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
962 [INCLUDES="$INCLUDES $XKBCOMMON_CFLAGS";
963 XKBCOMMON_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l xkbcommon\`; echo ${LIBRARY:2}`;
964 XB_FIND_SONAME([XKBCOMMON_LIBRARY], $XKBCOMMON_LIBRARY_LINE)],
965 AC_MSG_ERROR($missing_library))
966 AC_DEFINE([HAVE_WAYLAND], [1], [Define to 1 if you have Wayland libs installed.])
967 AC_DEFINE([HAVE_XKBCOMMON], [1], [Define to 1 if you have libxkbcommon installed.])
969 # If we are also building with tests then we want to build
970 # wayland tests as well
971 if test "$configure_gtest" = "yes"; then
973 PKG_CHECK_MODULES([PIXMAN],
974 [pixman-1],have_pixman=yes,
975 [AC_MSG_WARN($missing_library); have_pixman=no])
976 PKG_CHECK_MODULES([WESTON],
977 [weston >= 1.1.90],[have_weston_sdk=yes],
978 [have_weston_sdk=no; AC_MSG_WARN($missing_library)])
980 AC_CHECK_PROG(WAYLAND_SCANNER, wayland-scanner, "wayland-scanner", "no")
981 if test "x$WAYLAND_SCANNER" == "xno"; then
982 AC_MSG_WARN($missing_program)
984 if test "x$have_weston_sdk" == "xyes" && test "x$have_pixman" = "xyes"; then
985 AC_SUBST(WAYLAND_TEST_INCLUDES,"$WAYLAND_CLIENT_CFLAGS $XKBCOMMON_CFLAGS $PIXMAN_CFLAGS $WESTON_CFLAGS")
986 AC_SUBST(WAYLAND_TEST_LIBS,"$WAYLAND_CLIENT_LIBS $XKBCOMMON_LIBS $PIXMAN_LIBS $WESTON_LIBS")
987 AC_DEFINE([HAVE_WESTON_SDK], [1], [Define to 1 if Weston SDK is installed.])
988 AC_SUBST(USE_WAYLAND_TEST_EXTENSION, 1)
990 AC_SUBST(WAYLAND_SCANNER)
991 AC_DEFINE([HAVE_WAYLAND_XBMC_PROTO],[1],["Define to 1 if the wayland test-protocol will be built"])
995 # Disable SDL and X11 builds
1000 # Wayland requires the EGL "window system" which in turn only supports
1001 # the OpenGL ES API, so enable gles support
1004 AC_MSG_RESULT($wayland_disabled)
1007 # Checks for platforms libraries.
1008 if test "$use_gles" = "yes"; then
1010 # GLES overwrites GL if both set to yes.
1011 if test "$host_vendor" = "apple" ; then
1012 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1013 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1014 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1016 if test "$target_platform" = "target_raspberry_pi"; then
1017 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1018 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1019 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1020 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
1022 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
1023 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
1027 if test "$use_gl" = "yes"; then
1028 if test "$host_vendor" = "apple" ; then
1029 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
1030 LIBS="$LIBS -framework OpenGL"
1031 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
1032 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
1033 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
1034 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
1035 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1037 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
1038 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1039 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
1042 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
1043 AC_CHECK_LIB([SDL_gfx],[main])
1047 # platform common libraries
1048 if test "$use_mysql" = "yes"; then
1049 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
1050 if test "x$MYSQL_CONFIG" != "xno"; then
1051 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
1052 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
1053 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
1054 LIBS="$LIBS $MYSQL_LIBS"
1055 AC_SUBST(MYSQL_LIBS)
1057 AC_MSG_ERROR($missing_program)
1060 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1061 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1062 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1063 AC_INCLUDES_DEFAULT()
1064 [#include <mpeg2dec/mpeg2.h>])
1065 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1066 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1067 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1068 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1069 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1070 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1072 # we need to check for the header because if it exists we set the openssl
1073 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1074 # in MT manner correctly.
1075 AC_MSG_CHECKING([for CRYPTO_set_locking_callback(0)])
1076 AC_TRY_LINK([],[CRYPTO_set_locking_callback(0);],
1077 [have_curl_static=yes],
1078 [have_curl_static=no])
1079 AC_MSG_RESULT($have_curl_static)
1080 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1081 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1082 if test "$gcrypt_headers_available" = "yes"; then
1083 # if we have the headers then we must have the lib
1084 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1085 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1086 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1088 PKG_CHECK_MODULES([GNUTLS], [gnutls], [have_gnutls=yes];AC_DEFINE([HAVE_GNUTLS], [1], [Define if we have gnutls]), AC_MSG_WARN("gnutls not found"))
1090 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1091 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1092 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1093 if echo "$ARCH" | grep -q freebsd; then
1094 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1095 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1096 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1097 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1099 if test "$target_platform" != "target_android" ; then
1100 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1101 AC_CHECK_LIB([pthread], [pthread_setname_np],
1102 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1103 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1106 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1107 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1108 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1109 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1110 if test "$use_mysql" = "yes"; then
1111 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1113 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1114 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1115 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1116 if test "$target_platform" = "target_android" ; then
1117 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1118 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1119 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1121 PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
1122 [INCLUDES="$INCLUDES $LIBXML_CFLAGS"; LIBS="$LIBS $LIBXML_LIBS"],
1123 AC_MSG_ERROR($missing_library))
1124 PKG_CHECK_MODULES([LIBXSLT], [libxslt],
1125 [INCLUDES="$INCLUDES $LIBXSLT_CFLAGS"; LIBS="$LIBS $LIBXSLT_LIBS"],
1126 AC_MSG_ERROR($missing_library))
1127 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1128 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1129 AC_MSG_ERROR($missing_library))
1130 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1131 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1132 AC_MSG_ERROR($missing_library))
1133 PKG_CHECK_MODULES([PNG], [libpng],
1134 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1135 AC_MSG_ERROR($missing_library))
1136 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1137 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1138 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1139 AC_MSG_ERROR($missing_library))
1140 PKG_CHECK_MODULES([PCRE], [libpcre],
1141 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1142 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1143 AC_MSG_ERROR($missing_library))
1144 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1145 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1146 AC_MSG_ERROR($missing_library))
1147 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1148 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1149 AC_MSG_ERROR($missing_library))
1151 if test "$use_optical_drive" = "yes"; then
1152 PKG_CHECK_MODULES([CDIO], [libcdio],
1153 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1154 AC_MSG_ERROR($missing_library))
1157 if test "$target_platform" = "target_android" ; then
1158 PKG_CHECK_MODULES([ZIP], [libzip],
1159 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1160 AC_MSG_ERROR($missing_library))
1163 # check for libbluray
1164 AS_CASE([x$use_libbluray],
1166 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1169 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1172 AS_CASE([x$use_libbluray],
1174 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1175 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1176 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1177 AC_SUBST([HAVE_LIBBLURAY], 1)
1178 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1179 AC_CHECK_DECL([BD_EVENT_IDLE],
1180 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1181 [[#include <libbluray/bluray.h>]]))
1183 AC_SUBST([HAVE_LIBBLURAY], 0)
1187 #Check to see if libs are needed for functions that are often built-in to libc
1188 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1189 AC_SEARCH_LIBS([dlopen],dl)
1190 AC_SEARCH_LIBS([clock_gettime],rt)
1191 AC_SEARCH_LIBS([dn_expand], resolv)
1192 AC_SEARCH_LIBS([_dn_expand], resolv)
1193 AC_SEARCH_LIBS([__dn_expand],resolv)
1195 # platform dependent libraries
1196 if test "$host_vendor" = "apple" ; then
1197 if test "$use_arch" != "arm"; then
1198 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1199 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1202 if test "$target_platform" != "target_android" ; then
1203 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1205 if test "x$use_alsa" != "xno"; then
1206 PKG_CHECK_MODULES([ALSA], [alsa],
1207 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1208 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1210 PKG_CHECK_MODULES([DBUS], [dbus-1],
1211 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1212 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1213 AC_MSG_NOTICE($missing_library); use_dbus=no)
1214 if test "x$use_sdl" != "xno"; then
1215 PKG_CHECK_MODULES([SDL], [sdl],
1216 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1217 AC_MSG_ERROR($missing_library))
1218 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1219 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1223 XB_FIND_SONAME([OGG], [ogg])
1224 XB_FIND_SONAME([CURL], [curl])
1225 XB_FIND_SONAME([FLAC], [FLAC])
1226 XB_FIND_SONAME([VORBIS], [vorbis])
1227 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1228 XB_FIND_SONAME([MODPLUG], [modplug])
1229 XB_FIND_SONAME([ASS], [ass])
1230 XB_FIND_SONAME([MPEG2], [mpeg2])
1233 if test "x$use_libmp3lame" != "xno"; then
1234 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1235 if test "x$use_libmp3lame" != "xno"; then
1236 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1239 AS_CASE([x$use_libmp3lame],
1241 AC_SUBST([HAVE_LIBMP3LAME], 0)
1244 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1245 AC_SUBST([HAVE_LIBMP3LAME], 1)
1248 if test "x$use_libvorbisenc" != "xno"; then
1249 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1250 if test "x$use_libvorbisenc" != "xno"; then
1251 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1254 AS_CASE([x$use_libvorbisenc],
1256 AC_SUBST([HAVE_LIBVORBISENC], 0)
1258 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1259 AC_SUBST([HAVE_LIBVORBISENC], 1)
1264 if test "$use_webserver" = "yes"; then
1265 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1269 if test "$use_optical_drive" = "yes"; then
1270 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1274 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1275 PKG_CHECK_MODULES([ALSA], [alsa],
1276 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1277 AC_MSG_ERROR($missing_library))
1278 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1281 AC_MSG_RESULT($alsa_disabled)
1285 if test "x$use_pulse" != "xno"; then
1286 if test "$host_vendor" = "apple" ; then
1287 if test "x$use_pulse" = "xyes"; then
1288 AC_MSG_ERROR($pulse_disabled)
1291 AC_MSG_RESULT($pulse_disabled)
1295 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0],
1296 [INCLUDES="$INCLUDES $PULSE_CFLAGS"; LIBS="$LIBS $PULSE_LIBS"; USE_PULSE=1;
1297 HAVE_LIBPULSE=1; AC_DEFINE([HAVE_LIBPULSE],[1],[Pulse audio enabled])],
1298 [pulse_found="no"; USE_PULSE=0; HAVE_LIBPULSE=0])
1300 if test "$pulse_found" = "no"; then
1301 if test "x$use_pulse" = "xyes"; then
1302 AC_MSG_ERROR($pulse_not_found)
1304 AC_MSG_RESULT($pulse_disabled)
1309 AC_MSG_RESULT($pulse_disabled)
1314 if test "$host_vendor" = "apple" ; then
1316 AC_MSG_RESULT($hal_disabled)
1318 if test "$use_hal" = "yes"; then
1319 PKG_CHECK_MODULES([HAL], [hal],
1320 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1321 use_hal=no;AC_MSG_RESULT($hal_not_found))
1322 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1323 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1324 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1326 AC_MSG_RESULT($hal_disabled)
1328 if test "$use_hal" = "yes"; then
1329 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1334 if test "$host_vendor" = "apple" ; then
1336 AC_MSG_RESULT($avahi_disabled)
1338 if test "$use_avahi" = "yes"; then
1339 AC_CHECK_LIB([avahi-common], [main],,
1340 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1341 if test "$use_avahi" = "yes"; then
1342 #either both libs or none
1343 AC_CHECK_LIB([avahi-client], [main],,
1344 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1347 AC_MSG_RESULT($avahi_disabled)
1352 if test "$use_mdnsembedded" != "no"; then
1353 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1354 [if test "$use_mdnsembedded" = "yes"; then
1355 AC_MSG_ERROR($mdnsembedded_not_found)
1357 elif test "$use_mdnsembedded" != "no"; then
1358 AC_MSG_NOTICE($mdnsembedded_not_found)
1359 use_mdnsembedded="no"
1363 if test $use_mdnsembedded != "no"; then
1367 AC_MSG_RESULT($mdnsembedded_disabled)
1370 AC_SUBST(USE_MDNSEMBEDDED)
1373 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1374 AC_MSG_NOTICE($x11_enabled)
1375 PKG_CHECK_MODULES([X11], [x11],
1376 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1377 AC_MSG_ERROR($missing_library))
1378 PKG_CHECK_MODULES([XEXT], [xext],
1379 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1380 AC_MSG_ERROR($missing_library))
1381 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1383 AC_MSG_RESULT($x11_disabled)
1387 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1389 AC_MSG_RESULT($xrandr_disabled)
1391 if test "$use_xrandr" = "yes" ; then
1392 AC_CHECK_LIB([Xrandr], [main],,
1393 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1395 AC_MSG_RESULT($xrandr_disabled)
1400 if test "$use_waveform" = "yes"; then
1401 AC_MSG_NOTICE($waveform_enabled)
1404 AC_MSG_NOTICE($waveform_disabled)
1409 if test "$use_spectrum" = "yes"; then
1410 AC_MSG_NOTICE($spectrum_enabled)
1413 AC_MSG_NOTICE($spectrum_disabled)
1418 if test "$host_vendor" = "apple" ; then
1419 AC_MSG_NOTICE($goom_disabled)
1422 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1423 AC_MSG_NOTICE($goom_enabled)
1426 AC_MSG_NOTICE($goom_disabled)
1432 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1433 AC_MSG_NOTICE($rsxs_disabled)
1436 AC_MSG_NOTICE($rsxs_enabled)
1438 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1439 if test "$host_vendor" != "apple" ; then
1440 PKG_CHECK_MODULES([XT], [xt],
1441 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1442 AC_MSG_ERROR($missing_library))
1443 PKG_CHECK_MODULES([XMU], [xmu],
1444 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1445 AC_MSG_ERROR($missing_library))
1450 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1451 AC_MSG_NOTICE($fishbmc_disabled)
1455 AC_MSG_NOTICE($fishbmc_enabled)
1460 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1461 AC_MSG_NOTICE($projectm_disabled)
1465 AC_MSG_NOTICE($projectm_enabled)
1471 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1472 use_skin_touched=yes
1474 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1480 if test "x$use_ssh" = "xno"; then
1481 AC_MSG_NOTICE($ssh_disabled)
1484 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1485 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1489 if test "x$have_curl_static" = "xyes"; then
1490 AC_DEFINE([HAS_CURL_STATIC], [1], [Whether OpenSSL inside libcurl is static.])
1494 if test "$use_librtmp" != "no"; then
1495 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1496 [if test "$use_librtmp" = "yes"; then
1497 AC_MSG_ERROR($librtmp_not_found)
1498 elif test "$use_librtmp" != "no"; then
1499 AC_MSG_NOTICE($librtmp_not_found)
1503 if test "$use_librtmp" != "no"; then
1504 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1506 if test "$use_librtmp" != "no"; then
1507 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1510 AC_MSG_NOTICE($librtmp_disabled)
1514 if test "x$use_samba" != "xno"; then
1515 PKG_CHECK_MODULES([SAMBA], [smbclient],
1516 [INCLUDES="$INCLUDES $SAMBA_CFLAGS"; LIBS="$LIBS $SAMBA_LIBS"],
1517 [AC_CHECK_LIB([smbclient], [main],,
1518 use_samba=no;AC_MSG_ERROR($missing_library))
1522 AC_MSG_RESULT($samba_disabled)
1526 if test "x$use_samba" != "xno"; then
1527 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1532 if test "$use_libnfs" != "no"; then
1533 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1534 [if test "$use_libnfs" = "yes"; then
1535 AC_MSG_ERROR($libnfs_not_found)
1537 elif test "$use_libnfs" != "no"; then
1538 AC_MSG_NOTICE($libnfs_not_found)
1543 if test "$use_libnfs" != "no"; then
1544 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1546 if test "$use_libnfs" != "no"; then
1547 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1552 AC_MSG_NOTICE($libnfs_disabled)
1557 if test "x$use_libafpclient" != "xno"; then
1558 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1559 [if test "x$use_libafpclient" = "xyes"; then
1560 AC_MSG_ERROR($libafpclient_not_found)
1561 elif test "x$use_libafpclient" != "xno"; then
1562 AC_MSG_NOTICE($libafpclient_not_found)
1563 use_libafpclient="no"
1566 if test "x$use_libafpclient" != "xno"; then
1567 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1568 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1572 AC_MSG_NOTICE($libafpclient_disabled)
1575 # libplist for airplay feature
1577 if test "$use_airplay" != "no"; then
1578 AC_CHECK_HEADER([plist/plist.h],,
1579 [if test "$use_airplay" = "yes"; then
1580 AC_MSG_ERROR($libplist_not_found)
1581 elif test "$use_airplay" != "no"; then
1582 AC_MSG_NOTICE($libplist_not_found)
1587 if test "$use_airplay" != "no"; then
1588 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1590 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1594 # libshairplay for AirTunes
1596 if test "x$use_airtunes" != "xno"; then
1597 AC_CHECK_HEADERS([shairplay/raop.h],USE_AIRTUNES=1,
1598 [AC_MSG_NOTICE($libshairplay_not_found)
1601 if test "x$USE_AIRTUNES" != "x0"; then
1602 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [USE_AIRTUNES])
1603 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1604 [[#include <shairplay/raop.h>]])
1605 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1608 if test "x$USE_AIRTUNES" == "x0"; then
1609 if test "x$use_airtunes" == "xyes"; then
1610 AC_MSG_ERROR("No airtunes library could be found. (libshairplay)")
1618 if test "$host_vendor" = "apple" ; then
1620 AC_MSG_NOTICE($libudev_disabled)
1622 if test "$use_libudev" = "auto"; then
1623 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1624 elif test "$use_libudev" = "yes" ; then
1625 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1627 AC_MSG_NOTICE($libudev_disabled)
1630 if test "x$use_libudev" != "xno"; then
1631 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1632 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1639 # if libudev is available, we don't need libusb
1640 if test "x$use_libudev" != "xno"; then
1642 AC_MSG_NOTICE($libusb_disabled_udev_found)
1644 if test "$host_vendor" = "apple" ; then
1646 AC_MSG_NOTICE($libusb_disabled)
1648 if echo "$ARCH" | grep -q freebsd ; then
1649 AC_CHECK_LIB([usb],[main],
1650 [use_libusb="yes";USB_LIBS="-lusb"],
1651 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1652 elif test "$use_libusb" = "auto"; then
1653 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1654 elif test "$use_libusb" = "yes"; then
1655 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1657 AC_MSG_NOTICE($libusb_disabled)
1660 if test "x$use_libusb" != "xno"; then
1661 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1662 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1669 if test "x$use_libcec" != "xno"; then
1670 # libcec is dyloaded, so we need to check for its headers and link any depends.
1671 if test "x$use_libcec" != "xno"; then
1672 if test "x$use_libcec" != "xauto"; then
1673 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1675 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1678 if test "x$use_libcec" != "xno"; then
1679 INCLUDES="$INCLUDES $CEC_CFLAGS"
1680 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1681 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1682 AC_MSG_NOTICE($libcec_enabled)
1685 AC_MSG_NOTICE($libcec_disabled)
1690 AC_MSG_NOTICE($libcec_disabled)
1694 if test "$use_libcap" != "no"; then
1695 AC_CHECK_HEADERS([sys/capability.h],,
1696 [if test "$use_libcap" = "yes"; then
1697 AC_MSG_ERROR($libcap_not_found)
1698 elif test "$use_libcap" != "no"; then
1699 AC_MSG_NOTICE($libcap_not_found)
1703 if test "$use_libcap" != "no"; then
1704 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1706 if test "$use_libcap" != "no"; then
1707 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1710 AC_MSG_NOTICE($libcap_disabled)
1714 FFMPEG_LIBNAMES="libavcodec >= 55.39.101
1715 libavfilter >= 3.90.100
1716 libavformat >= 55.19.104
1717 libavutil >= 52.48.101
1718 libpostproc >= 52.3.100
1719 libswscale >= 2.5.101
1720 libswresample >= 0.17.104"
1722 ffmpeg_build="${abs_top_srcdir}/tools/depends/target/ffmpeg"
1723 FFMPEG_VER_SHA=$(grep "VERSION=" ${ffmpeg_build}/FFMPEG-VERSION | sed 's/VERSION=//g')
1724 AC_DEFINE_UNQUOTED([FFMPEG_VER_SHA], ["$FFMPEG_VER_SHA"], [FFmpeg version hash])
1726 if test "$with_ffmpeg" = "shared"; then
1727 # allow linking against shared ffmpeg libs
1728 # a proper version must be installed, we won't build ffmpeg
1730 AC_DEFINE([USE_STATIC_FFMPEG], [0], [FFmpeg linked dynamically])
1732 if test "${USE_STATIC_FFMPEG}" = "1"; then
1733 AC_DEFINE([USE_STATIC_FFMPEG], [1], [FFmpeg linked statically])
1734 ff_libs=$(${ECHO} ${FFMPEG_LIBNAMES} | ${AWK} '/lib/{print $1}' ORS=' ')
1735 if test -n "${PKG_CONFIG_SYSROOT_DIR}"; then
1736 # workaround for cross compiling with buildroot on different buildsystem
1737 # Rpi buildroots pkg-config returns static libs with
1738 # PKG_CONFIG_SYSROOT_DIR prefixed, OEs does not
1739 # so lets make sure we always prefix in case PKG_CONFIG_SYSROOT_DIR is defined
1740 pkg_cfg_prefix="${PKG_CONFIG_SYSROOT_DIR}"
1741 elif test "${target_platform}" = "target_raspberry_pi" && test "${USE_BUILDROOT}" = "1"; then
1742 pkg_cfg_prefix=${SYSROOT}
1745 if test "$cross_compiling" != "yes"; then
1746 if test "$use_debug" != "yes"; then
1749 if test "$use_optimizations" != "yes"; then
1750 FFMPEG_OPTS="${FFMPEG_OPTS} --disable-optimizations"
1753 if test "$with_ffmpeg" = "auto" || test "$with_ffmpeg" = "yes"; then
1754 SAVE_INCLUDES="$INCLUDES"
1756 # check for system installed ffmpeg. We require minimum versions.
1757 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1758 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1759 [FFMPEG_FOUND="false"])
1761 if test "${USE_STATIC_FFMPEG}" = "1" && test "$FFMPEG_FOUND" = "true"; then
1762 # we need to check if static libs are available
1763 FFMPEG_LIBDIR=$(${PKG_CONFIG} --static --variable=libdir libavcodec)
1764 for ff_lib in ${ff_libs}; do
1765 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1766 AC_MSG_NOTICE("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1767 FFMPEG_FOUND="false"
1768 # restore includes and libs, the ones we found are invalid
1769 INCLUDES="$SAVE_INCLUDES"
1771 unset FFMPEG_LIBS FFMPEG_CFLAGS FFMPEG_LIBDIR
1775 if test "$with_ffmpeg" = "yes" || test "$FFMPEG_FOUND" = "false"; then
1776 # ffmpeg not found with pkg-config, lets install it
1777 AC_MSG_NOTICE("Installing FFmpeg")
1778 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1779 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1782 elif test "$with_ffmpeg" = "force"; then
1783 # always build our ffmpeg
1784 AC_MSG_NOTICE("FFmpeg installation forced by user - installing our version")
1785 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1786 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1788 elif test "$with_ffmpeg" != "no"; then
1789 # user passed --with-ffmpeg=/some/path, lets use it
1790 AC_MSG_NOTICE("using ffmpeg: ${with_ffmpeg}")
1791 export PKG_CONFIG_PATH="${with_ffmpeg}/lib/pkgconfig:$PKG_CONFIG_PATH"
1796 if test "$FFMPEG_FOUND" != "true"; then
1797 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1798 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1799 [AC_MSG_ERROR("ffmpeg not found")])
1802 if test "${USE_STATIC_FFMPEG}" = "1"; then
1803 # get the libdir for static linking
1804 FFMPEG_LIBDIR=${pkg_cfg_prefix}$(PKG_CONFIG_SYSROOT_DIR="" ${PKG_CONFIG} --static --variable=libdir libavcodec)
1805 GNUTLS_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors gnutls)
1806 VORBISENC_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors vorbisenc)
1808 # check if static libs are available
1809 for ff_lib in ${ff_libs}; do
1810 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1811 AC_MSG_ERROR("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1813 # filter out libs we link statically
1814 filter=$(${ECHO} ${ff_lib} | ${SED} 's/lib/-l/g')
1815 LIBS=$(${ECHO} ${LIBS} | ${SED} "s/${filter}//g")
1817 LIBS=$(${ECHO} ${LIBS} | ${SED} ':a;N;$!ba;s/\n/ /g')
1820 echo "Checking for SWIG installation"
1821 AC_PATH_PROG(SWIG_EXE, swig, "none")
1822 if test "$SWIG_EXE" = "none"; then
1823 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1824 if test "$SWIG20_EXE" != "none" ; then
1825 SWIG_EXE=$SWIG20_EXE
1828 if test "$SWIG_EXE" = "none"; then
1829 AC_MSG_ERROR($missing_program)
1831 final_message="$final_message\n SWIG Available:\tYes"
1833 echo "Checking for a jre installation"
1834 AC_PATH_PROG(JAVA_EXE, java, "none")
1835 if test "$JAVA_EXE" = "none"; then
1836 AC_MSG_ERROR($missing_program)
1838 final_message="$final_message\n JRE Available:\tYes"
1840 echo "Checking for doxygen installation"
1841 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1842 if test "$DOXYGEN_EXE" = "none"; then
1843 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1844 final_message="$final_message\n Doxygen Available:\tNo"
1847 final_message="$final_message\n Doxygen Available:\tYes"
1852 if test "x$use_vdpau" != "xno"; then
1853 if test "$host_vendor" = "apple" ; then
1854 if test "x$use_vdpau" = "xyes"; then
1855 AC_MSG_ERROR([VDPAU not supported on this platform])
1858 AC_MSG_NOTICE($vdpau_disabled)
1863 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1864 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1865 [if test "x$use_vdpau" = "xyes"; then
1867 AC_MSG_ERROR([$vdpau_not_found])
1871 AC_MSG_RESULT($vdpau_not_found)
1876 AC_MSG_NOTICE($vdpau_disabled)
1880 if test "x$use_vaapi" != "xno"; then
1881 if test "$host_vendor" = "apple" ; then
1882 if test "x$use_vaapi" = "xyes"; then
1883 AC_MSG_ERROR([VAAPI not supported on this platform])
1886 AC_MSG_NOTICE($vaapi_disabled)
1890 initial_val=$use_vaapi
1891 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1892 if test "x$use_vaapi" != "xno"; then
1893 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1896 if test "x$use_vaapi" = "xno"; then
1897 if test "x$initial_val" = "xyes"; then
1898 AC_MSG_ERROR($vaapi_not_found)
1900 AC_MSG_RESULT($vaapi_not_found)
1904 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1909 AC_MSG_NOTICE($vaapi_disabled)
1914 if test "x$use_crystalhd" != "xno"; then
1915 SAVE_CFLAGS="$CFLAGS"
1916 CFLAGS="-D__LINUX_USER__"
1917 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1918 [ if test "x$use_crystalhd" = "xyes"; then
1919 AC_MSG_ERROR($crystalhd_not_found)
1922 AC_MSG_RESULT($crystalhd_not_found)
1926 CFLAGS="$SAVE_CFLAGS"
1927 if test "$host_vendor" != "apple"; then
1928 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1930 if test "x$use_crystalhd" != "xno"; then
1931 SAVE_CFLAGS="$CFLAGS"
1932 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1933 # check for new crystalhd lib
1935 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1936 #include <libcrystalhd/bc_dts_defs.h>
1937 PBC_INFO_CRYSTAL bCrystalInfo;])],
1938 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1939 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1940 CFLAGS="$SAVE_CFLAGS"
1944 AC_MSG_NOTICE($crystalhd_disabled)
1949 if test "x$use_vtbdecoder" != "xno"; then
1950 if test "$host_vendor" = "apple" ; then
1951 HAVE_VIDEOTOOLBOXDECODER=1
1952 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1953 AC_MSG_NOTICE($vtbdecoder_enabled)
1955 if test "x$use_vtbdecoder" = "xyes"; then
1956 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1959 AC_MSG_NOTICE($vtbdecoder_disabled)
1963 AC_MSG_NOTICE($vtbdecoder_disabled)
1967 if test "$host_vendor" = "apple" ; then
1970 AC_MSG_NOTICE($openmax_disabled)
1971 elif test "$target_platform" = "target_raspberry_pi"; then
1974 AC_MSG_NOTICE($openmax_disabled)
1976 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1977 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1978 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1979 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1980 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1981 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1982 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1983 AC_MSG_ERROR($openmax_not_found))
1985 AC_MSG_NOTICE($openmax_disabled)
1991 # yajl version check (yajl_version.h was added in yajl 2.0)
1992 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1993 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1996 # additional internal players
1997 case $add_players in
1999 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
2003 # additional internal codecs
2004 # remember to convert commas to spaces
2005 for codecs in `echo $add_codecs | sed 's/,/ /g'`; do
2008 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
2009 XB_ADD_CODEC([LIBAMCODEC], [amcodec], [$codecs])
2012 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright], [$codecs])
2018 # platform specific bin utilities
2019 if test "$build_vendor" != "apple" ; then
2020 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
2021 if test "$HAVE_GAWK" = "no" ; then
2022 AC_MSG_ERROR($missing_program)
2026 if test "$use_arch" != "arm" ; then
2027 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
2028 if test "$HAVE_CMAKE" = "no" ; then
2029 AC_MSG_ERROR($missing_program)
2033 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
2034 if test "$HAVE_GPERF" = "no" ; then
2035 AC_MSG_ERROR($missing_program)
2038 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
2039 if test "$HAVE_UNZIP" = "no" ; then
2040 AC_MSG_ERROR($missing_program)
2043 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
2044 if test "$HAVE_ZIP" = "no" ; then
2045 AC_MSG_ERROR($missing_program)
2048 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
2049 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
2050 if test "$HAVE_NASM" = "no" ; then
2051 AC_MSG_ERROR($missing_program)
2055 # Checks for header files.
2059 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
2060 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
2061 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
2062 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
2063 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
2065 # Checks for typedefs, structures, and compiler characteristics.
2081 AC_CHECK_MEMBERS([struct stat.st_rdev])
2090 if test "$cross_compiling" = "yes"; then
2091 final_message="$final_message\n Crosscomp.:\tYes"
2092 if [[ -d "$NATIVE_ROOT" ]]; then
2093 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2094 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2095 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
2096 if test "$host_vendor" != "apple" ; then
2097 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
2099 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
2102 final_message="$final_message\n Crosscomp.:\tNo"
2105 final_message="$final_message\n target ARCH:\t$use_arch"
2106 final_message="$final_message\n target CPU:\t$use_cpu"
2108 if test "$use_gles" = "yes"; then
2109 final_message="$final_message\n OpenGLES:\tYes"
2114 if test "$use_gl" = "yes"; then
2115 final_message="$final_message\n OpenGL:\tYes"
2118 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2119 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2124 if test "$use_alsa" = "yes"; then
2126 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2127 final_message="$final_message\n ALSA:\t\tYes"
2130 final_message="$final_message\n ALSA:\t\tNo"
2133 if test "$use_dbus" = "yes"; then
2134 final_message="$final_message\n DBUS:\t\tYes"
2136 final_message="$final_message\n DBUS:\t\tNo"
2139 if test "x$use_vdpau" != "xno"; then
2140 final_message="$final_message\n VDPAU:\tYes"
2142 final_message="$final_message\n VDPAU:\tNo"
2145 if test "x$use_vaapi" != "xno"; then
2146 final_message="$final_message\n VAAPI:\tYes"
2148 final_message="$final_message\n VAAPI:\tNo"
2151 if test "x$use_crystalhd" != "xno"; then
2152 final_message="$final_message\n CrystalHD:\tYes"
2154 final_message="$final_message\n CrystalHD:\tNo"
2157 if test "x$use_vtbdecoder" != "xno"; then
2158 final_message="$final_message\n VTBDecoder:\tYes"
2160 final_message="$final_message\n VTBDecoder:\tNo"
2163 if test "$use_openmax" != "no"; then
2164 final_message="$final_message\n OpenMax:\tYes"
2166 final_message="$final_message\n OpenMax:\tNo"
2169 if test "$use_joystick" = "yes"; then
2170 final_message="$final_message\n Joystick:\tYes"
2171 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2173 final_message="$final_message\n Joystick:\tNo"
2176 if test "$use_xrandr" = "yes"; then
2177 final_message="$final_message\n XRandR:\tYes"
2180 final_message="$final_message\n XRandR:\tNo"
2184 if test "$use_waveform" = "yes"; then
2185 final_message="$final_message\n Waveform:\tYes"
2187 final_message="$final_message\n Waveform:\tNo"
2190 if test "$use_spectrum" = "yes"; then
2191 final_message="$final_message\n Spectrum:\tYes"
2193 final_message="$final_message\n Spectrum:\tNo"
2196 if test "$use_goom" = "yes"; then
2197 final_message="$final_message\n GOOM:\t\tYes"
2199 final_message="$final_message\n GOOM:\t\tNo"
2202 if test "$use_rsxs" = "yes"; then
2203 final_message="$final_message\n RSXS:\t\tYes"
2205 final_message="$final_message\n RSXS:\t\tNo"
2208 if test "$use_fishbmc" = "yes"; then
2209 final_message="$final_message\n FishBMC:\tYes"
2211 final_message="$final_message\n FishBMC:\tNo"
2214 if test "$use_projectm" = "yes"; then
2215 final_message="$final_message\n ProjectM:\tYes"
2217 final_message="$final_message\n ProjectM:\tNo"
2220 if test "$use_skin_touched" = "yes"; then
2221 final_message="$final_message\n Skin Touched:\tYes"
2223 final_message="$final_message\n Skin Touched:\tNo"
2226 if test "$use_x11" = "yes"; then
2227 final_message="$final_message\n X11:\t\tYes"
2229 final_message="$final_message\n X11:\t\tNo"
2232 if test "$use_wayland" = "yes"; then
2233 final_message="$final_message\n Wayland:\tYes"
2237 final_message="$final_message\n Wayland:\tNo"
2240 if test "$use_libbluray" = "yes"; then
2241 final_message="$final_message\n Bluray:\tYes"
2243 final_message="$final_message\n Bluray:\tNo"
2246 if test "x$use_texturepacker" != "xno"; then
2247 final_message="$final_message\n TexturePacker:Yes"
2250 final_message="$final_message\n TexturePacker:No"
2254 if test "$use_mid" = "yes"; then
2255 final_message="$final_message\n MID Support:\tYes"
2256 SDL_DEFINES="$SDL_DEFINES -DMID"
2258 final_message="$final_message\n MID Support:\tNo"
2263 if test "x$use_ccache" != "xno"; then
2264 AC_PATH_PROG(CCACHE,ccache,none)
2265 if test "$ac_cv_path_CCACHE" = "none"; then
2266 if test "x$use_ccache" = "xyes"; then
2267 AC_MSG_ERROR([ccache not found.]);
2269 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2270 final_message="$final_message\n ccache:\tNo"
2273 CC="$ac_cv_path_CCACHE $CC"
2274 CXX="$ac_cv_path_CCACHE $CXX"
2275 AC_MSG_NOTICE(enabling ccache)
2276 final_message="$final_message\n ccache:\tYes"
2279 final_message="$final_message\n ccache:\tNo"
2282 if test "$use_alsa" = "yes"; then
2283 final_message="$final_message\n ALSA Support:\tYes"
2285 final_message="$final_message\n ALSA Support:\tNo"
2288 if test "x$use_pulse" != "xno"; then
2289 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2290 final_message="$final_message\n PulseAudio:\tYes"
2292 XBMC_STANDALONE_SH_PULSE=/dev/null
2293 final_message="$final_message\n PulseAudio:\tNo"
2296 if test "$use_hal" = "yes"; then
2297 final_message="$final_message\n HAL Support:\tYes"
2299 final_message="$final_message\n HAL Support:\tNo"
2303 if test "$use_dvdcss" = "yes"; then
2304 AC_MSG_NOTICE($dvdcss_enabled)
2305 final_message="$final_message\n DVDCSS:\tYes"
2307 SKIP_CONFIG_DVDCSS=0
2308 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2310 AC_MSG_NOTICE($dvdcss_disabled)
2311 final_message="$final_message\n DVDCSS:\tNo"
2313 SKIP_CONFIG_DVDCSS=1
2314 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2316 if test "$host_vendor" = "apple"; then
2317 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2320 # Google Test Framework
2321 if test "$configure_gtest" = "yes"; then
2322 AC_MSG_NOTICE($gtest_enabled)
2323 final_message="$final_message\n Google Test Framework Configured:\tYes"
2327 AC_MSG_NOTICE($gtest_disabled)
2328 final_message="$final_message\n Google Test Framework Configured:\tNo"
2333 if test "$use_avahi" = "yes"; then
2334 final_message="$final_message\n Avahi:\tYes"
2336 final_message="$final_message\n Avahi:\tNo"
2339 if test "$use_mdnsembedded" != "no"; then
2340 final_message="$final_message\n mDNSEmbedded:\tYes"
2342 final_message="$final_message\n mDNSEmbedded:\tNo"
2345 if test "$use_nonfree" = "yes"; then
2346 final_message="$final_message\n Non-free:\tYes"
2348 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2351 final_message="$final_message\n Non-free:\tNo"
2354 if test "$use_asap" = "yes"; then
2355 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2356 if test "$HAVE_GDC" = "no"; then
2357 AC_MSG_ERROR($missing_program);
2359 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2360 if test "$HAVE_FPC" = "no"; then
2361 AC_MSG_ERROR($missing_program);
2364 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2365 final_message="$final_message\n ASAP Codec:\tYes"
2368 final_message="$final_message\n ASAP Codec:\tNo"
2371 if test "$use_mysql" = "yes"; then
2372 final_message="$final_message\n MySQL:\tYes"
2375 final_message="$final_message\n MySQL:\tNo"
2378 if test "$use_webserver" = "yes"; then
2379 final_message="$final_message\n Webserver:\tYes"
2382 final_message="$final_message\n Webserver:\tNo"
2386 if test "$use_libssh" != "no"; then
2387 final_message="$final_message\n libssh support:\tYes"
2389 final_message="$final_message\n libssh support:\tNo"
2392 if test "$use_librtmp" != "no"; then
2393 final_message="$final_message\n libRTMP support:\tYes"
2395 final_message="$final_message\n libRTMP support:\tNo"
2398 if test "x$use_samba" != "xno"; then
2399 final_message="$final_message\n libsmbclient support:\tYes"
2401 final_message="$final_message\n libsmbclient support:\tNo"
2404 if test "$use_libnfs" != "no"; then
2405 final_message="$final_message\n libnfs client support:Yes"
2407 final_message="$final_message\n libnfs client support:No"
2410 if test "x$use_libafpclient" != "xno"; then
2411 final_message="$final_message\n libafpclient support:\tYes"
2413 final_message="$final_message\n libafpclient support:\tNo"
2416 if test "$use_airplay" != "no"; then
2417 final_message="$final_message\n AirPlay support:\tYes"
2419 final_message="$final_message\n AirPLay support:\tNo"
2422 if test "x$use_airtunes" != "xno"; then
2423 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2425 final_message="$final_message\n AirTunes support:\tNo"
2428 if test "x$use_upnp" != "xno"; then
2429 final_message="$final_message\n UPnP support:\t\tYes"
2431 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\"""
2432 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2435 final_message="$final_message\n UPnP support:\t\tNo"
2438 if test "$use_optical_drive" = "yes"; then
2439 final_message="$final_message\n Optical drive:\tYes"
2441 final_message="$final_message\n Optical drive:\tNo"
2444 if test "x$use_libudev" != "xno"; then
2445 final_message="$final_message\n libudev support:\tYes"
2447 final_message="$final_message\n libudev support:\tNo"
2450 if test "x$use_libusb" != "xno"; then
2451 final_message="$final_message\n libusb support:\tYes"
2453 final_message="$final_message\n libusb support:\tNo"
2456 if test "x$use_libcec" != "xno"; then
2457 final_message="$final_message\n libcec support:\tYes"
2459 final_message="$final_message\n libcec support:\tNo"
2462 if test "x$use_libmp3lame" != "xno"; then
2463 final_message="$final_message\n libmp3lame support:\tYes"
2465 final_message="$final_message\n libmp3lame support:\tNo"
2468 if test "x$use_libvorbisenc" != "xno"; then
2469 final_message="$final_message\n libvorbisenc support:\tYes"
2471 final_message="$final_message\n libvorbisenc support:\tNo"
2474 if test "x$use_libcap" != "xno"; then
2475 final_message="$final_message\n libcap support:\tYes"
2477 final_message="$final_message\n libcap support:\tNo"
2480 if test "x$add_players" != "xno"; then
2481 final_message="$final_message\n additional players:\tYes, $add_players"
2483 final_message="$final_message\n additional players:\tNo"
2486 if test "x$add_codecs" != "xno"; then
2487 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2489 final_message="$final_message\n additional codecs:\tNo"
2492 ### External libraries messages
2494 if test "$host_vendor" = "apple" ; then
2495 # built internal but referenced as external, we link directly to them.
2496 # this MUST be the last thing before OUTPUT_FILES as they do not
2497 # exist until after we build FFMpeg.
2498 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2499 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2500 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2501 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2502 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2503 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2504 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2508 DISABLE_PVR_ADDON_CONFIG=1
2509 if [[ -f "pvr-addons/Makefile.am" ]]; then
2510 final_message="$final_message\n PVR add-ons:\t\tYes"
2512 DISABLE_PVR_ADDON_CONFIG=0
2514 final_message="$final_message\n PVR add-ons:\t\tNo"
2517 OUTPUT_FILES="Makefile \
2519 addons/skin.confluence/media/Makefile \
2521 xbmc/cdrip/Makefile \
2522 xbmc/cores/Makefile \
2523 xbmc/cores/VideoRenderers/Makefile \
2524 xbmc/cores/dvdplayer/Makefile \
2525 lib/libdvd/Makefile \
2526 xbmc/cores/DllLoader/Makefile \
2527 xbmc/cores/DllLoader/exports/Makefile \
2528 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2529 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2530 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2531 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2532 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2533 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2534 xbmc/cores/AudioEngine/Makefile \
2535 xbmc/cores/paplayer/Makefile \
2536 xbmc/cores/omxplayer/Makefile \
2537 lib/timidity/Makefile \
2539 lib/nosefart/Makefile \
2540 lib/libsidplay2/Makefile \
2541 lib/vgmstream/Makefile \
2542 lib/snesapu/SNES/SNESAPU/Makefile \
2543 lib/stsound/StSoundLibrary/Makefile \
2544 xbmc/cores/playercorefactory/Makefile \
2545 xbmc/music/karaoke/Makefile \
2547 xbmc/guilib/Makefile \
2548 xbmc/input/linux/Makefile \
2549 xbmc/interfaces/Makefile \
2550 xbmc/network/Makefile \
2551 xbmc/network/upnp/Makefile \
2552 lib/libRTV/Makefile \
2553 lib/libexif/Makefile \
2554 lib/libXDAAP/Makefile \
2555 lib/cmyth/Makefile \
2556 lib/libhdhomerun/Makefile \
2557 lib/libsquish/Makefile \
2558 lib/cximage-6.0/Makefile \
2559 lib/libUPnP/Makefile \
2560 xbmc/DllPaths_generated.h \
2561 xbmc/DllPaths_generated_android.h \
2562 xbmc/freebsd/Makefile \
2563 xbmc/linux/Makefile \
2564 xbmc/filesystem/Makefile \
2565 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2566 xbmc/visualizations/XBMCProjectM/Makefile \
2567 xbmc/visualizations/Goom/Makefile \
2568 xbmc/visualizations/OpenGLSpectrum/Makefile \
2569 xbmc/visualizations/fishBMC/Makefile \
2570 xbmc/visualizations/WaveForm/Makefile \
2571 xbmc/windowing/Makefile \
2572 xbmc/windowing/egl/Makefile \
2573 lib/addons/library.xbmc.addon/Makefile \
2574 lib/addons/library.xbmc.codec/Makefile \
2575 lib/addons/library.xbmc.gui/Makefile \
2576 lib/addons/library.xbmc.pvr/Makefile \
2577 xbmc/visualizations/EGLHelpers/Makefile \
2578 tools/Linux/xbmc.sh \
2579 tools/Linux/xbmc-standalone.sh \
2580 tools/TexturePacker/Makefile \
2581 tools/EventClients/Clients/OSXRemote/Makefile \
2582 xbmc/peripherals/bus/Makefile \
2583 xbmc/peripherals/devices/Makefile \
2584 xbmc/android/activity/Makefile \
2585 xbmc/android/loader/Makefile \
2586 xbmc/android/jni/Makefile \
2587 xbmc/utils/Makefile \
2588 xbmc/main/Makefile \
2589 tools/darwin/Configurations/App.xcconfig \
2590 tools/darwin/Configurations/Common.xcconfig \
2591 tools/darwin/packaging/xbmc-ios/mkdeb-xbmc-ios.sh \
2592 tools/darwin/packaging/xbmc-atv2/mkdeb-xbmc-atv2.sh \
2593 tools/darwin/packaging/xbmc-osx/mkdmg-xbmc-osx.sh \
2594 xbmc/osx/Info.plist \
2595 project/cmake/xbmc-config.cmake \
2596 tools/android/packaging/xbmc/AndroidManifest.xml \
2597 addons/xbmc.addon/addon.xml"
2599 if test "$use_wayland" = "yes"; then
2600 OUTPUT_FILES="$OUTPUT_FILES xbmc/windowing/tests/wayland/Makefile"
2603 if test "$use_skin_touched" = "yes"; then
2604 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2607 if test "$use_codec_libstagefright" = "yes"; then
2608 OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile"
2611 OUTPUT_FILES="$OUTPUT_FILES \
2612 xbmc/interfaces/python/Makefile \
2613 xbmc/interfaces/python/test/Makefile"
2615 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2616 # .dummy.am does nothing.
2617 AC_CONFIG_FILES([.dummy])
2619 AC_CONFIG_FILES([${OUTPUT_FILES}])
2620 OUTPUT_FILES="$OUTPUT_FILES \
2626 AC_SUBST(CXX_FOR_BUILD)
2627 AC_SUBST(CC_FOR_BUILD)
2628 AC_SUBST(CFLAGS_FOR_BUILD)
2629 AC_SUBST(CXXFLAGS_FOR_BUILD)
2630 AC_SUBST(LDFLAGS_FOR_BUILD)
2631 AC_SUBST(SDL_DEFINES)
2632 AC_SUBST(BUILD_DVDCSS)
2633 AC_SUBST(DISABLE_WAVEFORM)
2634 AC_SUBST(DISABLE_SPECTRUM)
2635 AC_SUBST(DISABLE_GOOM)
2636 AC_SUBST(DISABLE_RSXS)
2637 AC_SUBST(DISABLE_FISHBMC)
2638 AC_SUBST(DISABLE_PROJECTM)
2639 AC_SUBST(FFMPEG_LIBDIR)
2640 AC_SUBST(USE_STATIC_FFMPEG)
2641 AC_SUBST(GNUTLS_ALL_LIBS)
2642 AC_SUBST(VORBISENC_ALL_LIBS)
2643 AC_SUBST(USE_SKIN_TOUCHED)
2644 AC_SUBST(USE_LIBAV_HACKS)
2645 AC_SUBST(PYTHON_VERSION)
2646 AC_SUBST(OUTPUT_FILES)
2647 AC_SUBST(HAVE_XBMC_NONFREE)
2648 AC_SUBST(USE_ASAP_CODEC)
2649 AC_SUBST(LIBCURL_BASENAME)
2650 AC_SUBST(LIBFLAC_BASENAME)
2651 AC_SUBST(LIBVORBISFILE_BASENAME)
2652 AC_SUBST(LIBMODPLUG_BASENAME)
2653 AC_SUBST(LIBOGG_BASENAME)
2654 AC_SUBST(LIBVORBISENC_BASENAME)
2655 AC_SUBST(LIBVORBIS_BASENAME)
2656 AC_SUBST(LIBASS_BASENAME)
2657 AC_SUBST(LIBMEPG2_BASENAME)
2658 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2659 AC_SUBST(USE_OPENGL)
2660 AC_SUBST(USE_OPENGLES)
2663 AC_SUBST(USE_CRYSTALHD)
2664 AC_SUBST(USE_LIBSMBCLIENT)
2665 AC_SUBST(USE_LIBNFS)
2666 AC_SUBST(USE_LIBAFPCLIENT)
2667 AC_SUBST(USE_AIRPLAY)
2668 AC_SUBST(USE_OPENMAX)
2670 AC_SUBST(HAVE_LIBPULSE)
2671 AC_SUBST(USE_XRANDR)
2673 AC_SUBST(USE_TEXTUREPACKER)
2674 AC_SUBST(USE_AIRTUNES)
2675 AC_SUBST(USE_LIBUDEV)
2676 AC_SUBST(USE_LIBUSB)
2677 AC_SUBST(USE_LIBCEC)
2679 AC_SUBST(USE_WAYLAND)
2680 AC_SUBST(USE_WEB_SERVER)
2682 AC_SUBST(USE_XKBCOMMON)
2683 AC_SUBST(USE_OMXLIB)
2684 AC_SUBST(USE_ANDROID)
2685 AC_SUBST(GTEST_CONFIGURED)
2686 AC_SUBST(USE_DOXYGEN)
2687 AC_SUBST(USE_PVR_ADDONS)
2688 AC_SUBST(UPNP_DEFINES)
2690 # pushd and popd are not available in other shells besides bash, so implement
2691 # our own pushd/popd functions
2696 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2698 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2701 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2706 if [[ -n "$XB_DIRSTACK" ]]; then
2707 XB_DIRSTACK="${XB_DIRSTACK#* }"
2708 cd "${XB_DIRSTACK%% *}"
2711 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2715 # Function to run the configure scripts in our submodules
2716 # Consists of three paramaters, the path to the submodule, the configure command
2717 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2718 # running the script, anything else if not.
2719 AC_DEFUN([XB_CONFIG_MODULE],[
2720 AC_CONFIG_COMMANDS_POST([
2721 if [[ $3 != "1" ]]; then
2722 if [[ -d $1 ]]; then
2725 if [[ $? -ne 0 ]]; then
2727 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2732 AC_MSG_ERROR([[Submodule $1 does not exist]])
2735 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2740 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2744 CFLAGS="$CFLAGS $DROID_DVDLIB_SEEK64" \
2745 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2746 --host=$host_alias \
2747 --build=$build_alias \
2748 --target=$target_alias \
2752 ], [$SKIP_CONFIG_DVDCSS])
2754 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2756 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src $DROID_DVDLIB_SEEK64" \
2757 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2758 --host=$host_alias \
2759 --build=$build_alias \
2760 --target=$target_alias \
2766 mkdir -p `pwd`/../includes/dvdread
2767 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2768 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2771 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2773 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes $DROID_DVDLIB_SEEK64" \
2774 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2775 --with-dvdread-config="`pwd`/../dvdread-config" \
2776 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2777 --host=$host_alias \
2778 --build=$build_alias \
2779 --target=$target_alias \
2785 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2787 rm -f CMakeCache.txt && \
2788 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2789 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2790 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2791 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2792 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2793 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2794 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2795 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2796 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2797 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2798 if test "$host_vendor" = "apple" ; then
2799 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2800 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2801 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2802 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2805 ], [$DISABLE_PROJECTM])
2807 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2810 CXXFLAGS="$CXXFLAGS" \
2811 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2812 --host=$host_alias \
2813 --build=$build_alias \
2814 --target=$target_alias \
2820 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2821 if test "$host_vendor" = "apple"; then
2822 # clang treats inlines different
2825 TEMPCFLAGS="$CFLAGS";;
2827 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";;
2830 TEMPCFLAGS="$CFLAGS";
2835 CFLAGS="$TEMPCFLAGS" \
2836 CXXFLAGS="$CXXFLAGS" \
2837 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2838 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2839 --host=$host_alias \
2840 --build=$build_alias \
2841 --target=$target_alias \
2842 --without-xscreensaver \
2845 --disable-fieldlines \
2849 --disable-hyperspace \
2852 if echo "$ARCH" | grep -q freebsd ; then
2853 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2857 XB_CONFIG_MODULE([lib/cpluff], [
2858 ./configure --disable-nls \
2859 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2860 --host=$host_alias \
2861 --build=$build_alias \
2862 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2863 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2866 XB_CONFIG_MODULE([lib/gtest], [
2871 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2872 --host=$host_alias \
2873 --build=$build_alias \
2874 --target=$target_alias \
2878 ], [$SKIP_CONFIG_GTEST])
2880 XB_CONFIG_MODULE([pvr-addons], [
2882 --prefix="${prefix}" \
2883 --host=$host_alias \
2884 --build=$build_alias \
2885 --target=$target_alias \
2889 CXXFLAGS="$CXXFLAGS"
2890 ], [$DISABLE_PVR_ADDON_CONFIG])
2894 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2895 echo -e "$final_message\n"