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 if test "$host_vendor" = "apple"; then
733 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
735 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
738 if test "$build_shared_lib" = "yes"; then
739 final_message="$final_message\n Shared lib\tYes"
740 AC_SUBST(USE_LIBXBMC,1)
744 # platform debug flags
745 if test "$use_debug" = "yes"; then
746 final_message="$final_message\n Debugging:\tYes"
747 if test "$use_profiling" = "yes"; then
748 final_message="$final_message\n Profiling:\tYes"
749 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
751 final_message="$final_message\n Profiling:\tNo"
752 DEBUG_FLAGS="-g -D_DEBUG -Wall"
755 final_message="$final_message\n Debugging:\tNo"
756 if test "$use_profiling" = "yes"; then
757 final_message="$final_message\n Profiling:\tYes"
758 DEBUG_FLAGS="-pg -DNDEBUG=1"
760 final_message="$final_message\n Profiling:\tNo"
761 DEBUG_FLAGS="-DNDEBUG=1"
764 CFLAGS="$CFLAGS $DEBUG_FLAGS"
765 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
768 if test "$use_optimizations" = "yes"; then
769 final_message="$final_message\n Optimization:\tYes"
770 if test "$target_platform" = "target_raspberry_pi"; then
774 CXXFLAGS="-O2 $CXXFLAGS"
778 final_message="$final_message\n Optimization:\tNo"
782 # platform specific flags
783 if echo "$ARCH" | grep -q "freebsd" ; then
784 LOCALBASE="${LOCALBASE:-/usr/local}"
785 CFLAGS="$CFLAGS -I$LOCALBASE/include"
786 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
787 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
788 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
790 if test "$host_vendor" = "apple" ; then
791 # standard xbmc paths
792 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
793 if test "$use_arch" != "arm"; then
794 LIBS="$LIBS -framework ApplicationServices"
795 LIBS="$LIBS -framework AudioUnit"
796 LIBS="$LIBS -framework AudioToolbox"
797 LIBS="$LIBS -framework Cocoa"
798 LIBS="$LIBS -framework CoreAudio"
799 LIBS="$LIBS -framework CoreVideo"
800 LIBS="$LIBS -framework CoreServices"
801 LIBS="$LIBS -framework CoreFoundation"
802 LIBS="$LIBS -framework DiskArbitration"
803 LIBS="$LIBS -framework IOKit"
804 LIBS="$LIBS -framework IOSurface"
805 LIBS="$LIBS -framework QuartzCore"
806 LIBS="$LIBS -framework SystemConfiguration"
807 LIBS="$LIBS -framework VideoDecodeAcceleration"
809 elif test "$target_platform" = "target_raspberry_pi"; then
812 elif test "$use_arch" = "arm"; then
813 CFLAGS="$CFLAGS -mno-apcs-stack-check"
814 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
815 if test "$use_tegra" = "yes"; then
816 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
817 SAVE_CFLAGS="$CFLAGS"
818 CFLAGS="-mfpu=vfpv3-d16"
820 [AC_LANG_SOURCE([int foo;])],
821 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
822 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
824 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
825 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
828 if test "$use_neon" = "yes"; then
829 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
830 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
835 # Checks for library functions.
838 AC_FUNC_CLOSEDIR_VOID
839 AC_FUNC_ERROR_AT_LINE
841 AC_PROG_GCC_TRADITIONAL
843 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
847 # Boxee is apparently having compile problems
848 # if HAVE_REALLOC is defined. Sort this later.
850 AC_FUNC_SELECT_ARGTYPES
851 AC_FUNC_SETVBUF_REVERSED
859 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])
861 # Check for various sizes
862 AC_CHECK_SIZEOF([int])
863 AC_CHECK_SIZEOF([size_t])
865 # Check for intrinsics
866 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
867 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
868 [have_builtin_sync_add_and_fetch=yes],
869 [have_builtin_sync_add_and_fetch=no])
870 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
871 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
872 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
873 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
876 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
877 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
878 [have_builtin_sync_sub_and_fetch=yes],
879 [have_builtin_sync_sub_and_fetch=no])
880 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
881 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
882 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
883 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
886 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
887 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
888 [have_builtin_sync_val_compare_and_swap=yes],
889 [have_builtin_sync_val_compare_and_swap=no])
890 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
891 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
892 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
893 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
896 # Check for u16string/u32string declarations
898 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
899 AC_CHECK_TYPES([char16_t, char32_t])
900 AC_CHECK_SIZEOF([wchar_t])
903 # Add top source directory for all builds so we can use config.h
904 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
906 # Check inotify availability
907 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
909 # Checks for boost headers using CXX instead of CC
911 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
915 if test -z "$PYTHON_NOVERSIONCHECK"; then
916 AX_PYTHON_DEVEL([>= 2.4])
917 PYTHON_VERSION=$ac_python_version
920 if test -z "$PYTHON_VERSION"; then
921 AC_MSG_ERROR([Can't find a Python version.])
923 LIBS="$LIBS $PYTHON_LDFLAGS"
924 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
928 if test "$use_wayland" = "yes" && test "$host_vendor" != "apple"; then
929 AC_MSG_NOTICE($wayland_enabled)
930 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client],
931 [INCLUDES="$INCLUDES $WAYLAND_CLIENT_CFLAGS";
932 WAYLAND_CLIENT_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-client\`; echo ${LIBRARY:2}`;
933 XB_FIND_SONAME([WAYLAND_CLIENT_LIBRARY], ${WAYLAND_CLIENT_LIBRARY_LINE})],
934 AC_MSG_ERROR($missing_library))
935 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],
936 [INCLUDES="$INCLUDES $WAYLAND_EGL_CFLAGS";
937 WAYLAND_EGL_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-egl\`; echo ${LIBRARY:2:11}`
938 XB_FIND_SONAME([WAYLAND_EGL_LIBRARY], ${WAYLAND_EGL_LIBRARY_LINE})],
939 AC_MSG_ERROR($missing_library))
940 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
941 [INCLUDES="$INCLUDES $XKBCOMMON_CFLAGS";
942 XKBCOMMON_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l xkbcommon\`; echo ${LIBRARY:2}`;
943 XB_FIND_SONAME([XKBCOMMON_LIBRARY], $XKBCOMMON_LIBRARY_LINE)],
944 AC_MSG_ERROR($missing_library))
945 AC_DEFINE([HAVE_WAYLAND], [1], [Define to 1 if you have Wayland libs installed.])
946 AC_DEFINE([HAVE_XKBCOMMON], [1], [Define to 1 if you have libxkbcommon installed.])
948 # If we are also building with tests then we want to build
949 # wayland tests as well
950 if test "$configure_gtest" = "yes"; then
952 PKG_CHECK_MODULES([PIXMAN],
953 [pixman-1],have_pixman=yes,
954 [AC_MSG_WARN($missing_library); have_pixman=no])
955 PKG_CHECK_MODULES([WESTON],
956 [weston >= 1.1.90],[have_weston_sdk=yes],
957 [have_weston_sdk=no; AC_MSG_WARN($missing_library)])
959 AC_CHECK_PROG(WAYLAND_SCANNER, wayland-scanner, "wayland-scanner", "no")
960 if test "x$WAYLAND_SCANNER" == "xno"; then
961 AC_MSG_WARN($missing_program)
963 if test "x$have_weston_sdk" == "xyes" && test "x$have_pixman" = "xyes"; then
964 AC_SUBST(WAYLAND_TEST_INCLUDES,"$WAYLAND_CLIENT_CFLAGS $XKBCOMMON_CFLAGS $PIXMAN_CFLAGS $WESTON_CFLAGS")
965 AC_SUBST(WAYLAND_TEST_LIBS,"$WAYLAND_CLIENT_LIBS $XKBCOMMON_LIBS $PIXMAN_LIBS $WESTON_LIBS")
966 AC_DEFINE([HAVE_WESTON_SDK], [1], [Define to 1 if Weston SDK is installed.])
967 AC_SUBST(USE_WAYLAND_TEST_EXTENSION, 1)
969 AC_SUBST(WAYLAND_SCANNER)
970 AC_DEFINE([HAVE_WAYLAND_XBMC_PROTO],[1],["Define to 1 if the wayland test-protocol will be built"])
974 # Disable SDL and X11 builds
979 # Wayland requires the EGL "window system" which in turn only supports
980 # the OpenGL ES API, so enable gles support
983 AC_MSG_RESULT($wayland_disabled)
986 # Checks for platforms libraries.
987 if test "$use_gles" = "yes"; then
989 # GLES overwrites GL if both set to yes.
990 if test "$host_vendor" = "apple" ; then
991 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
992 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
993 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
995 if test "$target_platform" = "target_raspberry_pi"; then
996 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
997 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
998 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
999 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
1001 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
1002 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
1006 if test "$use_gl" = "yes"; then
1007 if test "$host_vendor" = "apple" ; then
1008 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
1009 LIBS="$LIBS -framework OpenGL"
1010 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
1011 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
1012 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
1013 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
1014 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1016 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
1017 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1018 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
1021 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
1022 AC_CHECK_LIB([SDL_gfx],[main])
1026 # platform common libraries
1027 if test "$use_mysql" = "yes"; then
1028 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
1029 if test "x$MYSQL_CONFIG" != "xno"; then
1030 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
1031 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
1032 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
1033 LIBS="$LIBS $MYSQL_LIBS"
1034 AC_SUBST(MYSQL_LIBS)
1036 AC_MSG_ERROR($missing_program)
1039 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1040 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1041 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1042 AC_INCLUDES_DEFAULT()
1043 [#include <mpeg2dec/mpeg2.h>])
1044 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1045 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1046 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1047 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1048 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1049 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1051 # we need to check for the header because if it exists we set the openssl
1052 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1053 # in MT manner correctly.
1054 AC_MSG_CHECKING([for CRYPTO_set_locking_callback(0)])
1055 AC_TRY_LINK([],[CRYPTO_set_locking_callback(0);],
1056 [have_curl_static=yes],
1057 [have_curl_static=no])
1058 AC_MSG_RESULT($have_curl_static)
1059 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1060 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1061 if test "$gcrypt_headers_available" = "yes"; then
1062 # if we have the headers then we must have the lib
1063 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1064 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1065 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1067 PKG_CHECK_MODULES([GNUTLS], [gnutls], [have_gnutls=yes];AC_DEFINE([HAVE_GNUTLS], [1], [Define if we have gnutls]), AC_MSG_WARN("gnutls not found"))
1069 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1070 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1071 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1072 if echo "$ARCH" | grep -q freebsd; then
1073 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1074 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1075 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1076 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1078 if test "$target_platform" != "target_android" ; then
1079 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1080 AC_CHECK_LIB([pthread], [pthread_setname_np],
1081 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1082 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1085 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1086 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1087 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1088 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1089 if test "$use_mysql" = "yes"; then
1090 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1092 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1093 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1094 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1095 if test "$target_platform" = "target_android" ; then
1096 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1097 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1098 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1100 PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
1101 [INCLUDES="$INCLUDES $LIBXML_CFLAGS"; LIBS="$LIBS $LIBXML_LIBS"],
1102 AC_MSG_ERROR($missing_library))
1103 PKG_CHECK_MODULES([LIBXSLT], [libxslt],
1104 [INCLUDES="$INCLUDES $LIBXSLT_CFLAGS"; LIBS="$LIBS $LIBXSLT_LIBS"],
1105 AC_MSG_ERROR($missing_library))
1106 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1107 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1108 AC_MSG_ERROR($missing_library))
1109 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1110 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1111 AC_MSG_ERROR($missing_library))
1112 PKG_CHECK_MODULES([PNG], [libpng],
1113 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1114 AC_MSG_ERROR($missing_library))
1115 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1116 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1117 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1118 AC_MSG_ERROR($missing_library))
1119 PKG_CHECK_MODULES([PCRE], [libpcre],
1120 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1121 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1122 AC_MSG_ERROR($missing_library))
1123 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1124 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1125 AC_MSG_ERROR($missing_library))
1126 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1127 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1128 AC_MSG_ERROR($missing_library))
1130 if test "$use_optical_drive" = "yes"; then
1131 PKG_CHECK_MODULES([CDIO], [libcdio],
1132 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1133 AC_MSG_ERROR($missing_library))
1136 if test "$target_platform" = "target_android" ; then
1137 PKG_CHECK_MODULES([ZIP], [libzip],
1138 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1139 AC_MSG_ERROR($missing_library))
1142 # check for libbluray
1143 AS_CASE([x$use_libbluray],
1145 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1148 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1151 AS_CASE([x$use_libbluray],
1153 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1154 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1155 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1156 AC_SUBST([HAVE_LIBBLURAY], 1)
1157 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1158 AC_CHECK_DECL([BD_EVENT_IDLE],
1159 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1160 [[#include <libbluray/bluray.h>]]))
1162 AC_SUBST([HAVE_LIBBLURAY], 0)
1166 #Check to see if libs are needed for functions that are often built-in to libc
1167 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1168 AC_SEARCH_LIBS([dlopen],dl)
1169 AC_SEARCH_LIBS([clock_gettime],rt)
1170 AC_SEARCH_LIBS([dn_expand], resolv)
1171 AC_SEARCH_LIBS([_dn_expand], resolv)
1172 AC_SEARCH_LIBS([__dn_expand],resolv)
1174 # platform dependent libraries
1175 if test "$host_vendor" = "apple" ; then
1176 if test "$use_arch" != "arm"; then
1177 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1178 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1181 if test "$target_platform" != "target_android" ; then
1182 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1184 if test "x$use_alsa" != "xno"; then
1185 PKG_CHECK_MODULES([ALSA], [alsa],
1186 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1187 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1189 PKG_CHECK_MODULES([DBUS], [dbus-1],
1190 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1191 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1192 AC_MSG_NOTICE($missing_library); use_dbus=no)
1193 if test "x$use_sdl" != "xno"; then
1194 PKG_CHECK_MODULES([SDL], [sdl],
1195 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1196 AC_MSG_ERROR($missing_library))
1197 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1198 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1202 XB_FIND_SONAME([OGG], [ogg])
1203 XB_FIND_SONAME([CURL], [curl])
1204 XB_FIND_SONAME([FLAC], [FLAC])
1205 XB_FIND_SONAME([VORBIS], [vorbis])
1206 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1207 XB_FIND_SONAME([MODPLUG], [modplug])
1208 XB_FIND_SONAME([ASS], [ass])
1209 XB_FIND_SONAME([MPEG2], [mpeg2])
1212 if test "x$use_libmp3lame" != "xno"; then
1213 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1214 if test "x$use_libmp3lame" != "xno"; then
1215 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1218 AS_CASE([x$use_libmp3lame],
1220 AC_SUBST([HAVE_LIBMP3LAME], 0)
1223 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1224 AC_SUBST([HAVE_LIBMP3LAME], 1)
1227 if test "x$use_libvorbisenc" != "xno"; then
1228 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1229 if test "x$use_libvorbisenc" != "xno"; then
1230 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1233 AS_CASE([x$use_libvorbisenc],
1235 AC_SUBST([HAVE_LIBVORBISENC], 0)
1237 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1238 AC_SUBST([HAVE_LIBVORBISENC], 1)
1243 if test "$use_webserver" = "yes"; then
1244 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1248 if test "$use_optical_drive" = "yes"; then
1249 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1253 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1254 PKG_CHECK_MODULES([ALSA], [alsa],
1255 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1256 AC_MSG_ERROR($missing_library))
1257 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1260 AC_MSG_RESULT($alsa_disabled)
1264 if test "x$use_pulse" != "xno"; then
1265 if test "$host_vendor" = "apple" ; then
1266 if test "x$use_pulse" = "xyes"; then
1267 AC_MSG_ERROR($pulse_disabled)
1270 AC_MSG_RESULT($pulse_disabled)
1274 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0],
1275 [INCLUDES="$INCLUDES $PULSE_CFLAGS"; LIBS="$LIBS $PULSE_LIBS"; USE_PULSE=1;
1276 HAVE_LIBPULSE=1; AC_DEFINE([HAVE_LIBPULSE],[1],[Pulse audio enabled])],
1277 [pulse_found="no"; USE_PULSE=0; HAVE_LIBPULSE=0])
1279 if test "$pulse_found" = "no"; then
1280 if test "x$use_pulse" = "xyes"; then
1281 AC_MSG_ERROR($pulse_not_found)
1283 AC_MSG_RESULT($pulse_disabled)
1288 AC_MSG_RESULT($pulse_disabled)
1293 if test "$host_vendor" = "apple" ; then
1295 AC_MSG_RESULT($hal_disabled)
1297 if test "$use_hal" = "yes"; then
1298 PKG_CHECK_MODULES([HAL], [hal],
1299 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1300 use_hal=no;AC_MSG_RESULT($hal_not_found))
1301 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1302 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1303 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1305 AC_MSG_RESULT($hal_disabled)
1307 if test "$use_hal" = "yes"; then
1308 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1313 if test "$host_vendor" = "apple" ; then
1315 AC_MSG_RESULT($avahi_disabled)
1317 if test "$use_avahi" = "yes"; then
1318 AC_CHECK_LIB([avahi-common], [main],,
1319 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1320 if test "$use_avahi" = "yes"; then
1321 #either both libs or none
1322 AC_CHECK_LIB([avahi-client], [main],,
1323 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1326 AC_MSG_RESULT($avahi_disabled)
1331 if test "$use_mdnsembedded" != "no"; then
1332 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1333 [if test "$use_mdnsembedded" = "yes"; then
1334 AC_MSG_ERROR($mdnsembedded_not_found)
1336 elif test "$use_mdnsembedded" != "no"; then
1337 AC_MSG_NOTICE($mdnsembedded_not_found)
1338 use_mdnsembedded="no"
1342 if test $use_mdnsembedded != "no"; then
1346 AC_MSG_RESULT($mdnsembedded_disabled)
1349 AC_SUBST(USE_MDNSEMBEDDED)
1352 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1353 AC_MSG_NOTICE($x11_enabled)
1354 PKG_CHECK_MODULES([X11], [x11],
1355 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1356 AC_MSG_ERROR($missing_library))
1357 PKG_CHECK_MODULES([XEXT], [xext],
1358 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1359 AC_MSG_ERROR($missing_library))
1360 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1362 AC_MSG_RESULT($x11_disabled)
1366 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1368 AC_MSG_RESULT($xrandr_disabled)
1370 if test "$use_xrandr" = "yes" ; then
1371 AC_CHECK_LIB([Xrandr], [main],,
1372 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1374 AC_MSG_RESULT($xrandr_disabled)
1379 if test "$use_waveform" = "yes"; then
1380 AC_MSG_NOTICE($waveform_enabled)
1383 AC_MSG_NOTICE($waveform_disabled)
1388 if test "$use_spectrum" = "yes"; then
1389 AC_MSG_NOTICE($spectrum_enabled)
1392 AC_MSG_NOTICE($spectrum_disabled)
1397 if test "$host_vendor" = "apple" ; then
1398 AC_MSG_NOTICE($goom_disabled)
1401 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1402 AC_MSG_NOTICE($goom_enabled)
1405 AC_MSG_NOTICE($goom_disabled)
1411 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1412 AC_MSG_NOTICE($rsxs_disabled)
1415 AC_MSG_NOTICE($rsxs_enabled)
1417 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1418 if test "$host_vendor" != "apple" ; then
1419 PKG_CHECK_MODULES([XT], [xt],
1420 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1421 AC_MSG_ERROR($missing_library))
1422 PKG_CHECK_MODULES([XMU], [xmu],
1423 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1424 AC_MSG_ERROR($missing_library))
1429 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1430 AC_MSG_NOTICE($fishbmc_disabled)
1434 AC_MSG_NOTICE($fishbmc_enabled)
1439 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1440 AC_MSG_NOTICE($projectm_disabled)
1444 AC_MSG_NOTICE($projectm_enabled)
1450 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1451 use_skin_touched=yes
1453 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1459 if test "x$use_ssh" = "xno"; then
1460 AC_MSG_NOTICE($ssh_disabled)
1463 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1464 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1468 if test "x$have_curl_static" = "xyes"; then
1469 AC_DEFINE([HAS_CURL_STATIC], [1], [Whether OpenSSL inside libcurl is static.])
1473 if test "$use_librtmp" != "no"; then
1474 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1475 [if test "$use_librtmp" = "yes"; then
1476 AC_MSG_ERROR($librtmp_not_found)
1477 elif test "$use_librtmp" != "no"; then
1478 AC_MSG_NOTICE($librtmp_not_found)
1482 if test "$use_librtmp" != "no"; then
1483 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1485 if test "$use_librtmp" != "no"; then
1486 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1489 AC_MSG_NOTICE($librtmp_disabled)
1493 if test "x$use_samba" != "xno"; then
1494 PKG_CHECK_MODULES([SAMBA], [smbclient],
1495 [INCLUDES="$INCLUDES $SAMBA_CFLAGS"; LIBS="$LIBS $SAMBA_LIBS"],
1496 [AC_CHECK_LIB([smbclient], [main],,
1497 use_samba=no;AC_MSG_ERROR($missing_library))
1501 AC_MSG_RESULT($samba_disabled)
1505 if test "x$use_samba" != "xno"; then
1506 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1511 if test "$use_libnfs" != "no"; then
1512 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1513 [if test "$use_libnfs" = "yes"; then
1514 AC_MSG_ERROR($libnfs_not_found)
1516 elif test "$use_libnfs" != "no"; then
1517 AC_MSG_NOTICE($libnfs_not_found)
1522 if test "$use_libnfs" != "no"; then
1523 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1525 if test "$use_libnfs" != "no"; then
1526 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1531 AC_MSG_NOTICE($libnfs_disabled)
1536 if test "x$use_libafpclient" != "xno"; then
1537 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1538 [if test "x$use_libafpclient" = "xyes"; then
1539 AC_MSG_ERROR($libafpclient_not_found)
1540 elif test "x$use_libafpclient" != "xno"; then
1541 AC_MSG_NOTICE($libafpclient_not_found)
1542 use_libafpclient="no"
1545 if test "x$use_libafpclient" != "xno"; then
1546 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1547 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1551 AC_MSG_NOTICE($libafpclient_disabled)
1554 # libplist for airplay feature
1556 if test "$use_airplay" != "no"; then
1557 AC_CHECK_HEADER([plist/plist.h],,
1558 [if test "$use_airplay" = "yes"; then
1559 AC_MSG_ERROR($libplist_not_found)
1560 elif test "$use_airplay" != "no"; then
1561 AC_MSG_NOTICE($libplist_not_found)
1566 if test "$use_airplay" != "no"; then
1567 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1569 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1573 # libshairplay for AirTunes
1575 if test "x$use_airtunes" != "xno"; then
1576 AC_CHECK_HEADERS([shairplay/raop.h],USE_AIRTUNES=1,
1577 [AC_MSG_NOTICE($libshairplay_not_found)
1580 if test "x$USE_AIRTUNES" != "x0"; then
1581 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [USE_AIRTUNES])
1582 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1583 [[#include <shairplay/raop.h>]])
1584 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1587 if test "x$USE_AIRTUNES" == "x0"; then
1588 if test "x$use_airtunes" == "xyes"; then
1589 AC_MSG_ERROR("No airtunes library could be found. (libshairplay)")
1597 if test "$host_vendor" = "apple" ; then
1599 AC_MSG_NOTICE($libudev_disabled)
1601 if test "$use_libudev" = "auto"; then
1602 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1603 elif test "$use_libudev" = "yes" ; then
1604 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1606 AC_MSG_NOTICE($libudev_disabled)
1609 if test "x$use_libudev" != "xno"; then
1610 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1611 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1618 # if libudev is available, we don't need libusb
1619 if test "x$use_libudev" != "xno"; then
1621 AC_MSG_NOTICE($libusb_disabled_udev_found)
1623 if test "$host_vendor" = "apple" ; then
1625 AC_MSG_NOTICE($libusb_disabled)
1627 if echo "$ARCH" | grep -q freebsd ; then
1628 AC_CHECK_LIB([usb],[main],
1629 [use_libusb="yes";USB_LIBS="-lusb"],
1630 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1631 elif test "$use_libusb" = "auto"; then
1632 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1633 elif test "$use_libusb" = "yes"; then
1634 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1636 AC_MSG_NOTICE($libusb_disabled)
1639 if test "x$use_libusb" != "xno"; then
1640 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1641 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1648 if test "x$use_libcec" != "xno"; then
1649 # libcec is dyloaded, so we need to check for its headers and link any depends.
1650 if test "x$use_libcec" != "xno"; then
1651 if test "x$use_libcec" != "xauto"; then
1652 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1654 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1657 if test "x$use_libcec" != "xno"; then
1658 INCLUDES="$INCLUDES $CEC_CFLAGS"
1659 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1660 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1661 AC_MSG_NOTICE($libcec_enabled)
1664 AC_MSG_NOTICE($libcec_disabled)
1669 AC_MSG_NOTICE($libcec_disabled)
1673 if test "$use_libcap" != "no"; then
1674 AC_CHECK_HEADERS([sys/capability.h],,
1675 [if test "$use_libcap" = "yes"; then
1676 AC_MSG_ERROR($libcap_not_found)
1677 elif test "$use_libcap" != "no"; then
1678 AC_MSG_NOTICE($libcap_not_found)
1682 if test "$use_libcap" != "no"; then
1683 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1685 if test "$use_libcap" != "no"; then
1686 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1689 AC_MSG_NOTICE($libcap_disabled)
1693 FFMPEG_LIBNAMES="libavcodec >= 55.39.101
1694 libavfilter >= 3.90.100
1695 libavformat >= 55.19.104
1696 libavutil >= 52.48.101
1697 libpostproc >= 52.3.100
1698 libswscale >= 2.5.101
1699 libswresample >= 0.17.104"
1701 ffmpeg_build="${abs_top_srcdir}/tools/depends/target/ffmpeg"
1702 FFMPEG_VER_SHA=$(grep "VERSION=" ${ffmpeg_build}/FFMPEG-VERSION | sed 's/VERSION=//g')
1703 AC_DEFINE_UNQUOTED([FFMPEG_VER_SHA], ["$FFMPEG_VER_SHA"], [FFmpeg version hash])
1705 if test "$with_ffmpeg" = "shared"; then
1706 # allow linking against shared ffmpeg libs
1707 # a proper version must be installed, we won't build ffmpeg
1709 AC_DEFINE([USE_STATIC_FFMPEG], [0], [FFmpeg linked dynamically])
1711 if test "${USE_STATIC_FFMPEG}" = "1"; then
1712 AC_DEFINE([USE_STATIC_FFMPEG], [1], [FFmpeg linked statically])
1713 ff_libs=$(${ECHO} ${FFMPEG_LIBNAMES} | ${AWK} '/lib/{print $1}' ORS=' ')
1714 if test -n "${PKG_CONFIG_SYSROOT_DIR}"; then
1715 # workaround for cross compiling with buildroot on different buildsystem
1716 # Rpi buildroots pkg-config returns static libs with
1717 # PKG_CONFIG_SYSROOT_DIR prefixed, OEs does not
1718 # so lets make sure we always prefix in case PKG_CONFIG_SYSROOT_DIR is defined
1719 pkg_cfg_prefix="${PKG_CONFIG_SYSROOT_DIR}"
1720 elif test "${target_platform}" = "target_raspberry_pi" && test "${USE_BUILDROOT}" = "1"; then
1721 pkg_cfg_prefix=${SYSROOT}
1724 if test "$cross_compiling" != "yes"; then
1725 if test "$use_debug" != "yes"; then
1728 if test "$use_optimizations" != "yes"; then
1729 FFMPEG_OPTS="${FFMPEG_OPTS} --disable-optimizations"
1732 if test "$with_ffmpeg" = "auto" || test "$with_ffmpeg" = "yes"; then
1733 SAVE_INCLUDES="$INCLUDES"
1735 # check for system installed ffmpeg. We require minimum versions.
1736 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1737 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1738 [FFMPEG_FOUND="false"])
1740 if test "${USE_STATIC_FFMPEG}" = "1" && test "$FFMPEG_FOUND" = "true"; then
1741 # we need to check if static libs are available
1742 FFMPEG_LIBDIR=$(${PKG_CONFIG} --static --variable=libdir libavcodec)
1743 for ff_lib in ${ff_libs}; do
1744 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1745 AC_MSG_NOTICE("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1746 FFMPEG_FOUND="false"
1747 # restore includes and libs, the ones we found are invalid
1748 INCLUDES="$SAVE_INCLUDES"
1750 unset FFMPEG_LIBS FFMPEG_CFLAGS FFMPEG_LIBDIR
1754 if test "$with_ffmpeg" = "yes" || test "$FFMPEG_FOUND" = "false"; then
1755 # ffmpeg not found with pkg-config, lets install it
1756 AC_MSG_NOTICE("Installing FFmpeg")
1757 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1758 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1761 elif test "$with_ffmpeg" = "force"; then
1762 # always build our ffmpeg
1763 AC_MSG_NOTICE("FFmpeg installation forced by user - installing our version")
1764 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1765 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1767 elif test "$with_ffmpeg" != "no"; then
1768 # user passed --with-ffmpeg=/some/path, lets use it
1769 AC_MSG_NOTICE("using ffmpeg: ${with_ffmpeg}")
1770 export PKG_CONFIG_PATH="${with_ffmpeg}/lib/pkgconfig:$PKG_CONFIG_PATH"
1775 if test "$FFMPEG_FOUND" != "true"; then
1776 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1777 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1778 [AC_MSG_ERROR("ffmpeg not found")])
1781 if test "${USE_STATIC_FFMPEG}" = "1"; then
1782 # get the libdir for static linking
1783 FFMPEG_LIBDIR=${pkg_cfg_prefix}$(PKG_CONFIG_SYSROOT_DIR="" ${PKG_CONFIG} --static --variable=libdir libavcodec)
1784 GNUTLS_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors gnutls)
1785 VORBISENC_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors vorbisenc)
1787 # check if static libs are available
1788 for ff_lib in ${ff_libs}; do
1789 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1790 AC_MSG_ERROR("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1792 # filter out libs we link statically
1793 filter=$(${ECHO} ${ff_lib} | ${SED} 's/lib/-l/g')
1794 LIBS=$(${ECHO} ${LIBS} | ${SED} "s/${filter}//g")
1796 LIBS=$(${ECHO} ${LIBS} | ${SED} ':a;N;$!ba;s/\n/ /g')
1799 echo "Checking for SWIG installation"
1800 AC_PATH_PROG(SWIG_EXE, swig, "none")
1801 if test "$SWIG_EXE" = "none"; then
1802 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1803 if test "$SWIG20_EXE" != "none" ; then
1804 SWIG_EXE=$SWIG20_EXE
1807 if test "$SWIG_EXE" = "none"; then
1808 AC_MSG_ERROR($missing_program)
1810 final_message="$final_message\n SWIG Available:\tYes"
1812 echo "Checking for a jre installation"
1813 AC_PATH_PROG(JAVA_EXE, java, "none")
1814 if test "$JAVA_EXE" = "none"; then
1815 AC_MSG_ERROR($missing_program)
1817 final_message="$final_message\n JRE Available:\tYes"
1819 echo "Checking for doxygen installation"
1820 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1821 if test "$DOXYGEN_EXE" = "none"; then
1822 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1823 final_message="$final_message\n Doxygen Available:\tNo"
1826 final_message="$final_message\n Doxygen Available:\tYes"
1831 if test "x$use_vdpau" != "xno"; then
1832 if test "$host_vendor" = "apple" ; then
1833 if test "x$use_vdpau" = "xyes"; then
1834 AC_MSG_ERROR([VDPAU not supported on this platform])
1837 AC_MSG_NOTICE($vdpau_disabled)
1842 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1843 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1844 [if test "x$use_vdpau" = "xyes"; then
1846 AC_MSG_ERROR([$vdpau_not_found])
1850 AC_MSG_RESULT($vdpau_not_found)
1855 AC_MSG_NOTICE($vdpau_disabled)
1859 if test "x$use_vaapi" != "xno"; then
1860 if test "$host_vendor" = "apple" ; then
1861 if test "x$use_vaapi" = "xyes"; then
1862 AC_MSG_ERROR([VAAPI not supported on this platform])
1865 AC_MSG_NOTICE($vaapi_disabled)
1869 initial_val=$use_vaapi
1870 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1871 if test "x$use_vaapi" != "xno"; then
1872 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1875 if test "x$use_vaapi" = "xno"; then
1876 if test "x$initial_val" = "xyes"; then
1877 AC_MSG_ERROR($vaapi_not_found)
1879 AC_MSG_RESULT($vaapi_not_found)
1883 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1888 AC_MSG_NOTICE($vaapi_disabled)
1893 if test "x$use_crystalhd" != "xno"; then
1894 SAVE_CFLAGS="$CFLAGS"
1895 CFLAGS="-D__LINUX_USER__"
1896 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1897 [ if test "x$use_crystalhd" = "xyes"; then
1898 AC_MSG_ERROR($crystalhd_not_found)
1901 AC_MSG_RESULT($crystalhd_not_found)
1905 CFLAGS="$SAVE_CFLAGS"
1906 if test "$host_vendor" != "apple"; then
1907 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1909 if test "x$use_crystalhd" != "xno"; then
1910 SAVE_CFLAGS="$CFLAGS"
1911 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1912 # check for new crystalhd lib
1914 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1915 #include <libcrystalhd/bc_dts_defs.h>
1916 PBC_INFO_CRYSTAL bCrystalInfo;])],
1917 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1918 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1919 CFLAGS="$SAVE_CFLAGS"
1923 AC_MSG_NOTICE($crystalhd_disabled)
1928 if test "x$use_vtbdecoder" != "xno"; then
1929 if test "$host_vendor" = "apple" ; then
1930 HAVE_VIDEOTOOLBOXDECODER=1
1931 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1932 AC_MSG_NOTICE($vtbdecoder_enabled)
1934 if test "x$use_vtbdecoder" = "xyes"; then
1935 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1938 AC_MSG_NOTICE($vtbdecoder_disabled)
1942 AC_MSG_NOTICE($vtbdecoder_disabled)
1946 if test "$host_vendor" = "apple" ; then
1949 AC_MSG_NOTICE($openmax_disabled)
1950 elif test "$target_platform" = "target_raspberry_pi"; then
1953 AC_MSG_NOTICE($openmax_disabled)
1955 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1956 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1957 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1958 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1959 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1960 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1961 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1962 AC_MSG_ERROR($openmax_not_found))
1964 AC_MSG_NOTICE($openmax_disabled)
1970 # yajl version check (yajl_version.h was added in yajl 2.0)
1971 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1972 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1975 # additional internal players
1976 case $add_players in
1978 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1982 # additional internal codecs
1983 # remember to convert commas to spaces
1984 for codecs in `echo $add_codecs | sed 's/,/ /g'`; do
1987 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
1988 XB_ADD_CODEC([LIBAMCODEC], [amcodec], [$codecs])
1991 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright], [$codecs])
1997 # platform specific bin utilities
1998 if test "$build_vendor" != "apple" ; then
1999 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
2000 if test "$HAVE_GAWK" = "no" ; then
2001 AC_MSG_ERROR($missing_program)
2005 if test "$use_arch" != "arm" ; then
2006 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
2007 if test "$HAVE_CMAKE" = "no" ; then
2008 AC_MSG_ERROR($missing_program)
2012 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
2013 if test "$HAVE_GPERF" = "no" ; then
2014 AC_MSG_ERROR($missing_program)
2017 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
2018 if test "$HAVE_UNZIP" = "no" ; then
2019 AC_MSG_ERROR($missing_program)
2022 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
2023 if test "$HAVE_ZIP" = "no" ; then
2024 AC_MSG_ERROR($missing_program)
2027 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
2028 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
2029 if test "$HAVE_NASM" = "no" ; then
2030 AC_MSG_ERROR($missing_program)
2034 # Checks for header files.
2038 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
2039 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
2040 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
2041 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
2042 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
2044 # Checks for typedefs, structures, and compiler characteristics.
2060 AC_CHECK_MEMBERS([struct stat.st_rdev])
2069 if test "$cross_compiling" = "yes"; then
2070 final_message="$final_message\n Crosscomp.:\tYes"
2071 if [[ -d "$NATIVE_ROOT" ]]; then
2072 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2073 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2074 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
2075 if test "$host_vendor" != "apple" ; then
2076 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
2078 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
2081 final_message="$final_message\n Crosscomp.:\tNo"
2084 final_message="$final_message\n target ARCH:\t$use_arch"
2085 final_message="$final_message\n target CPU:\t$use_cpu"
2087 if test "$use_gles" = "yes"; then
2088 final_message="$final_message\n OpenGLES:\tYes"
2093 if test "$use_gl" = "yes"; then
2094 final_message="$final_message\n OpenGL:\tYes"
2097 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2098 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2103 if test "$use_alsa" = "yes"; then
2105 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2106 final_message="$final_message\n ALSA:\t\tYes"
2109 final_message="$final_message\n ALSA:\t\tNo"
2112 if test "$use_dbus" = "yes"; then
2113 final_message="$final_message\n DBUS:\t\tYes"
2115 final_message="$final_message\n DBUS:\t\tNo"
2118 if test "x$use_vdpau" != "xno"; then
2119 final_message="$final_message\n VDPAU:\tYes"
2121 final_message="$final_message\n VDPAU:\tNo"
2124 if test "x$use_vaapi" != "xno"; then
2125 final_message="$final_message\n VAAPI:\tYes"
2127 final_message="$final_message\n VAAPI:\tNo"
2130 if test "x$use_crystalhd" != "xno"; then
2131 final_message="$final_message\n CrystalHD:\tYes"
2133 final_message="$final_message\n CrystalHD:\tNo"
2136 if test "x$use_vtbdecoder" != "xno"; then
2137 final_message="$final_message\n VTBDecoder:\tYes"
2139 final_message="$final_message\n VTBDecoder:\tNo"
2142 if test "$use_openmax" != "no"; then
2143 final_message="$final_message\n OpenMax:\tYes"
2145 final_message="$final_message\n OpenMax:\tNo"
2148 if test "$use_joystick" = "yes"; then
2149 final_message="$final_message\n Joystick:\tYes"
2150 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2152 final_message="$final_message\n Joystick:\tNo"
2155 if test "$use_xrandr" = "yes"; then
2156 final_message="$final_message\n XRandR:\tYes"
2159 final_message="$final_message\n XRandR:\tNo"
2163 if test "$use_waveform" = "yes"; then
2164 final_message="$final_message\n Waveform:\tYes"
2166 final_message="$final_message\n Waveform:\tNo"
2169 if test "$use_spectrum" = "yes"; then
2170 final_message="$final_message\n Spectrum:\tYes"
2172 final_message="$final_message\n Spectrum:\tNo"
2175 if test "$use_goom" = "yes"; then
2176 final_message="$final_message\n GOOM:\t\tYes"
2178 final_message="$final_message\n GOOM:\t\tNo"
2181 if test "$use_rsxs" = "yes"; then
2182 final_message="$final_message\n RSXS:\t\tYes"
2184 final_message="$final_message\n RSXS:\t\tNo"
2187 if test "$use_fishbmc" = "yes"; then
2188 final_message="$final_message\n FishBMC:\tYes"
2190 final_message="$final_message\n FishBMC:\tNo"
2193 if test "$use_projectm" = "yes"; then
2194 final_message="$final_message\n ProjectM:\tYes"
2196 final_message="$final_message\n ProjectM:\tNo"
2199 if test "$use_skin_touched" = "yes"; then
2200 final_message="$final_message\n Skin Touched:\tYes"
2202 final_message="$final_message\n Skin Touched:\tNo"
2205 if test "$use_x11" = "yes"; then
2206 final_message="$final_message\n X11:\t\tYes"
2208 final_message="$final_message\n X11:\t\tNo"
2211 if test "$use_wayland" = "yes"; then
2212 final_message="$final_message\n Wayland:\tYes"
2216 final_message="$final_message\n Wayland:\tNo"
2219 if test "$use_libbluray" = "yes"; then
2220 final_message="$final_message\n Bluray:\tYes"
2222 final_message="$final_message\n Bluray:\tNo"
2225 if test "x$use_texturepacker" != "xno"; then
2226 final_message="$final_message\n TexturePacker:Yes"
2229 final_message="$final_message\n TexturePacker:No"
2233 if test "$use_mid" = "yes"; then
2234 final_message="$final_message\n MID Support:\tYes"
2235 SDL_DEFINES="$SDL_DEFINES -DMID"
2237 final_message="$final_message\n MID Support:\tNo"
2242 if test "x$use_ccache" != "xno"; then
2243 AC_PATH_PROG(CCACHE,ccache,none)
2244 if test "$ac_cv_path_CCACHE" = "none"; then
2245 if test "x$use_ccache" = "xyes"; then
2246 AC_MSG_ERROR([ccache not found.]);
2248 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2249 final_message="$final_message\n ccache:\tNo"
2252 CC="$ac_cv_path_CCACHE $CC"
2253 CXX="$ac_cv_path_CCACHE $CXX"
2254 AC_MSG_NOTICE(enabling ccache)
2255 final_message="$final_message\n ccache:\tYes"
2258 final_message="$final_message\n ccache:\tNo"
2261 if test "$use_alsa" = "yes"; then
2262 final_message="$final_message\n ALSA Support:\tYes"
2264 final_message="$final_message\n ALSA Support:\tNo"
2267 if test "x$use_pulse" != "xno"; then
2268 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2269 final_message="$final_message\n PulseAudio:\tYes"
2271 XBMC_STANDALONE_SH_PULSE=/dev/null
2272 final_message="$final_message\n PulseAudio:\tNo"
2275 if test "$use_hal" = "yes"; then
2276 final_message="$final_message\n HAL Support:\tYes"
2278 final_message="$final_message\n HAL Support:\tNo"
2282 if test "$use_dvdcss" = "yes"; then
2283 AC_MSG_NOTICE($dvdcss_enabled)
2284 final_message="$final_message\n DVDCSS:\tYes"
2286 SKIP_CONFIG_DVDCSS=0
2287 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2289 AC_MSG_NOTICE($dvdcss_disabled)
2290 final_message="$final_message\n DVDCSS:\tNo"
2292 SKIP_CONFIG_DVDCSS=1
2293 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2295 if test "$host_vendor" = "apple"; then
2296 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2299 # Google Test Framework
2300 if test "$configure_gtest" = "yes"; then
2301 AC_MSG_NOTICE($gtest_enabled)
2302 final_message="$final_message\n Google Test Framework Configured:\tYes"
2306 AC_MSG_NOTICE($gtest_disabled)
2307 final_message="$final_message\n Google Test Framework Configured:\tNo"
2312 if test "$use_avahi" = "yes"; then
2313 final_message="$final_message\n Avahi:\tYes"
2315 final_message="$final_message\n Avahi:\tNo"
2318 if test "$use_mdnsembedded" != "no"; then
2319 final_message="$final_message\n mDNSEmbedded:\tYes"
2321 final_message="$final_message\n mDNSEmbedded:\tNo"
2324 if test "$use_nonfree" = "yes"; then
2325 final_message="$final_message\n Non-free:\tYes"
2327 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2330 final_message="$final_message\n Non-free:\tNo"
2333 if test "$use_asap" = "yes"; then
2334 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2335 if test "$HAVE_GDC" = "no"; then
2336 AC_MSG_ERROR($missing_program);
2338 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2339 if test "$HAVE_FPC" = "no"; then
2340 AC_MSG_ERROR($missing_program);
2343 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2344 final_message="$final_message\n ASAP Codec:\tYes"
2347 final_message="$final_message\n ASAP Codec:\tNo"
2350 if test "$use_mysql" = "yes"; then
2351 final_message="$final_message\n MySQL:\tYes"
2354 final_message="$final_message\n MySQL:\tNo"
2357 if test "$use_webserver" = "yes"; then
2358 final_message="$final_message\n Webserver:\tYes"
2361 final_message="$final_message\n Webserver:\tNo"
2365 if test "$use_libssh" != "no"; then
2366 final_message="$final_message\n libssh support:\tYes"
2368 final_message="$final_message\n libssh support:\tNo"
2371 if test "$use_librtmp" != "no"; then
2372 final_message="$final_message\n libRTMP support:\tYes"
2374 final_message="$final_message\n libRTMP support:\tNo"
2377 if test "x$use_samba" != "xno"; then
2378 final_message="$final_message\n libsmbclient support:\tYes"
2380 final_message="$final_message\n libsmbclient support:\tNo"
2383 if test "$use_libnfs" != "no"; then
2384 final_message="$final_message\n libnfs client support:Yes"
2386 final_message="$final_message\n libnfs client support:No"
2389 if test "x$use_libafpclient" != "xno"; then
2390 final_message="$final_message\n libafpclient support:\tYes"
2392 final_message="$final_message\n libafpclient support:\tNo"
2395 if test "$use_airplay" != "no"; then
2396 final_message="$final_message\n AirPlay support:\tYes"
2398 final_message="$final_message\n AirPLay support:\tNo"
2401 if test "x$use_airtunes" != "xno"; then
2402 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2404 final_message="$final_message\n AirTunes support:\tNo"
2407 if test "x$use_upnp" != "xno"; then
2408 final_message="$final_message\n UPnP support:\t\tYes"
2410 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\"""
2411 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2414 final_message="$final_message\n UPnP support:\t\tNo"
2417 if test "$use_optical_drive" = "yes"; then
2418 final_message="$final_message\n Optical drive:\tYes"
2420 final_message="$final_message\n Optical drive:\tNo"
2423 if test "x$use_libudev" != "xno"; then
2424 final_message="$final_message\n libudev support:\tYes"
2426 final_message="$final_message\n libudev support:\tNo"
2429 if test "x$use_libusb" != "xno"; then
2430 final_message="$final_message\n libusb support:\tYes"
2432 final_message="$final_message\n libusb support:\tNo"
2435 if test "x$use_libcec" != "xno"; then
2436 final_message="$final_message\n libcec support:\tYes"
2438 final_message="$final_message\n libcec support:\tNo"
2441 if test "x$use_libmp3lame" != "xno"; then
2442 final_message="$final_message\n libmp3lame support:\tYes"
2444 final_message="$final_message\n libmp3lame support:\tNo"
2447 if test "x$use_libvorbisenc" != "xno"; then
2448 final_message="$final_message\n libvorbisenc support:\tYes"
2450 final_message="$final_message\n libvorbisenc support:\tNo"
2453 if test "x$use_libcap" != "xno"; then
2454 final_message="$final_message\n libcap support:\tYes"
2456 final_message="$final_message\n libcap support:\tNo"
2459 if test "x$add_players" != "xno"; then
2460 final_message="$final_message\n additional players:\tYes, $add_players"
2462 final_message="$final_message\n additional players:\tNo"
2465 if test "x$add_codecs" != "xno"; then
2466 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2468 final_message="$final_message\n additional codecs:\tNo"
2471 ### External libraries messages
2473 if test "$host_vendor" = "apple" ; then
2474 # built internal but referenced as external, we link directly to them.
2475 # this MUST be the last thing before OUTPUT_FILES as they do not
2476 # exist until after we build FFMpeg.
2477 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2478 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2479 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2480 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2481 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2482 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2483 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2487 DISABLE_PVR_ADDON_CONFIG=1
2488 if [[ -f "pvr-addons/Makefile.am" ]]; then
2489 final_message="$final_message\n PVR add-ons:\t\tYes"
2491 DISABLE_PVR_ADDON_CONFIG=0
2493 final_message="$final_message\n PVR add-ons:\t\tNo"
2496 OUTPUT_FILES="Makefile \
2498 addons/skin.confluence/media/Makefile \
2500 xbmc/cdrip/Makefile \
2501 xbmc/cores/Makefile \
2502 xbmc/cores/VideoRenderers/Makefile \
2503 xbmc/cores/dvdplayer/Makefile \
2504 lib/libdvd/Makefile \
2505 xbmc/cores/DllLoader/Makefile \
2506 xbmc/cores/DllLoader/exports/Makefile \
2507 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2508 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2509 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2510 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2511 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2512 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2513 xbmc/cores/AudioEngine/Makefile \
2514 xbmc/cores/paplayer/Makefile \
2515 xbmc/cores/omxplayer/Makefile \
2516 lib/timidity/Makefile \
2518 lib/nosefart/Makefile \
2519 lib/libsidplay2/Makefile \
2520 lib/vgmstream/Makefile \
2521 lib/snesapu/SNES/SNESAPU/Makefile \
2522 lib/stsound/StSoundLibrary/Makefile \
2523 xbmc/cores/playercorefactory/Makefile \
2524 xbmc/music/karaoke/Makefile \
2526 xbmc/guilib/Makefile \
2527 xbmc/input/linux/Makefile \
2528 xbmc/interfaces/Makefile \
2529 xbmc/network/Makefile \
2530 xbmc/network/upnp/Makefile \
2531 lib/libRTV/Makefile \
2532 lib/libexif/Makefile \
2533 lib/libXDAAP/Makefile \
2534 lib/cmyth/Makefile \
2535 lib/libhdhomerun/Makefile \
2536 lib/libsquish/Makefile \
2537 lib/cximage-6.0/Makefile \
2538 lib/libUPnP/Makefile \
2539 xbmc/DllPaths_generated.h \
2540 xbmc/DllPaths_generated_android.h \
2541 xbmc/freebsd/Makefile \
2542 xbmc/linux/Makefile \
2543 xbmc/filesystem/Makefile \
2544 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2545 xbmc/visualizations/XBMCProjectM/Makefile \
2546 xbmc/visualizations/Goom/Makefile \
2547 xbmc/visualizations/OpenGLSpectrum/Makefile \
2548 xbmc/visualizations/fishBMC/Makefile \
2549 xbmc/visualizations/WaveForm/Makefile \
2550 xbmc/windowing/Makefile \
2551 xbmc/windowing/egl/Makefile \
2552 lib/addons/library.xbmc.addon/Makefile \
2553 lib/addons/library.xbmc.codec/Makefile \
2554 lib/addons/library.xbmc.gui/Makefile \
2555 lib/addons/library.xbmc.pvr/Makefile \
2556 xbmc/visualizations/EGLHelpers/Makefile \
2557 tools/Linux/xbmc.sh \
2558 tools/Linux/xbmc-standalone.sh \
2559 tools/TexturePacker/Makefile \
2560 tools/EventClients/Clients/OSXRemote/Makefile \
2561 xbmc/peripherals/bus/Makefile \
2562 xbmc/peripherals/devices/Makefile \
2563 xbmc/android/activity/Makefile \
2564 xbmc/android/loader/Makefile \
2565 xbmc/android/jni/Makefile \
2566 xbmc/utils/Makefile \
2567 xbmc/main/Makefile \
2568 tools/darwin/Configurations/App.xcconfig \
2569 tools/darwin/Configurations/Common.xcconfig \
2570 tools/darwin/packaging/xbmc-ios/mkdeb-xbmc-ios.sh \
2571 tools/darwin/packaging/xbmc-atv2/mkdeb-xbmc-atv2.sh \
2572 project/cmake/xbmc-config.cmake"
2574 if test "$use_wayland" = "yes"; then
2575 OUTPUT_FILES="$OUTPUT_FILES xbmc/windowing/tests/wayland/Makefile"
2578 if test "$use_skin_touched" = "yes"; then
2579 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2582 if test "$use_codec_libstagefright" = "yes"; then
2583 OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile"
2586 OUTPUT_FILES="$OUTPUT_FILES \
2587 xbmc/interfaces/python/Makefile \
2588 xbmc/interfaces/python/test/Makefile"
2590 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2591 # .dummy.am does nothing.
2592 AC_CONFIG_FILES([.dummy])
2594 AC_CONFIG_FILES([${OUTPUT_FILES}])
2595 OUTPUT_FILES="$OUTPUT_FILES \
2601 AC_SUBST(CXX_FOR_BUILD)
2602 AC_SUBST(CC_FOR_BUILD)
2603 AC_SUBST(CFLAGS_FOR_BUILD)
2604 AC_SUBST(CXXFLAGS_FOR_BUILD)
2605 AC_SUBST(LDFLAGS_FOR_BUILD)
2606 AC_SUBST(SDL_DEFINES)
2607 AC_SUBST(BUILD_DVDCSS)
2608 AC_SUBST(DISABLE_WAVEFORM)
2609 AC_SUBST(DISABLE_SPECTRUM)
2610 AC_SUBST(DISABLE_GOOM)
2611 AC_SUBST(DISABLE_RSXS)
2612 AC_SUBST(DISABLE_FISHBMC)
2613 AC_SUBST(DISABLE_PROJECTM)
2614 AC_SUBST(FFMPEG_LIBDIR)
2615 AC_SUBST(USE_STATIC_FFMPEG)
2616 AC_SUBST(GNUTLS_ALL_LIBS)
2617 AC_SUBST(VORBISENC_ALL_LIBS)
2618 AC_SUBST(USE_SKIN_TOUCHED)
2619 AC_SUBST(USE_LIBAV_HACKS)
2620 AC_SUBST(PYTHON_VERSION)
2621 AC_SUBST(OUTPUT_FILES)
2622 AC_SUBST(HAVE_XBMC_NONFREE)
2623 AC_SUBST(USE_ASAP_CODEC)
2624 AC_SUBST(LIBCURL_BASENAME)
2625 AC_SUBST(LIBFLAC_BASENAME)
2626 AC_SUBST(LIBVORBISFILE_BASENAME)
2627 AC_SUBST(LIBMODPLUG_BASENAME)
2628 AC_SUBST(LIBOGG_BASENAME)
2629 AC_SUBST(LIBVORBISENC_BASENAME)
2630 AC_SUBST(LIBVORBIS_BASENAME)
2631 AC_SUBST(LIBASS_BASENAME)
2632 AC_SUBST(LIBMEPG2_BASENAME)
2633 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2634 AC_SUBST(USE_OPENGL)
2635 AC_SUBST(USE_OPENGLES)
2638 AC_SUBST(USE_CRYSTALHD)
2639 AC_SUBST(USE_LIBSMBCLIENT)
2640 AC_SUBST(USE_LIBNFS)
2641 AC_SUBST(USE_LIBAFPCLIENT)
2642 AC_SUBST(USE_AIRPLAY)
2643 AC_SUBST(USE_OPENMAX)
2645 AC_SUBST(HAVE_LIBPULSE)
2646 AC_SUBST(USE_XRANDR)
2648 AC_SUBST(USE_TEXTUREPACKER)
2649 AC_SUBST(USE_AIRTUNES)
2650 AC_SUBST(USE_LIBUDEV)
2651 AC_SUBST(USE_LIBUSB)
2652 AC_SUBST(USE_LIBCEC)
2654 AC_SUBST(USE_WAYLAND)
2655 AC_SUBST(USE_WEB_SERVER)
2657 AC_SUBST(USE_XKBCOMMON)
2658 AC_SUBST(USE_OMXLIB)
2659 AC_SUBST(USE_ANDROID)
2660 AC_SUBST(GTEST_CONFIGURED)
2661 AC_SUBST(USE_DOXYGEN)
2662 AC_SUBST(USE_PVR_ADDONS)
2663 AC_SUBST(UPNP_DEFINES)
2665 # pushd and popd are not available in other shells besides bash, so implement
2666 # our own pushd/popd functions
2671 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2673 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2676 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2681 if [[ -n "$XB_DIRSTACK" ]]; then
2682 XB_DIRSTACK="${XB_DIRSTACK#* }"
2683 cd "${XB_DIRSTACK%% *}"
2686 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2690 # Function to run the configure scripts in our submodules
2691 # Consists of three paramaters, the path to the submodule, the configure command
2692 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2693 # running the script, anything else if not.
2694 AC_DEFUN([XB_CONFIG_MODULE],[
2695 AC_CONFIG_COMMANDS_POST([
2696 if [[ $3 != "1" ]]; then
2697 if [[ -d $1 ]]; then
2700 if [[ $? -ne 0 ]]; then
2702 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2707 AC_MSG_ERROR([[Submodule $1 does not exist]])
2710 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2715 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2719 CFLAGS="$CFLAGS $DROID_DVDLIB_SEEK64" \
2720 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2721 --host=$host_alias \
2722 --build=$build_alias \
2723 --target=$target_alias \
2727 ], [$SKIP_CONFIG_DVDCSS])
2729 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2731 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src $DROID_DVDLIB_SEEK64" \
2732 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2733 --host=$host_alias \
2734 --build=$build_alias \
2735 --target=$target_alias \
2741 mkdir -p `pwd`/../includes/dvdread
2742 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2743 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2746 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2748 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes $DROID_DVDLIB_SEEK64" \
2749 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2750 --with-dvdread-config="`pwd`/../dvdread-config" \
2751 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2752 --host=$host_alias \
2753 --build=$build_alias \
2754 --target=$target_alias \
2760 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2762 rm -f CMakeCache.txt && \
2763 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2764 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2765 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2766 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2767 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2768 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2769 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2770 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2771 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2772 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2773 if test "$host_vendor" = "apple" ; then
2774 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2775 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2776 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2777 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2780 ], [$DISABLE_PROJECTM])
2782 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2785 CXXFLAGS="$CXXFLAGS" \
2786 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2787 --host=$host_alias \
2788 --build=$build_alias \
2789 --target=$target_alias \
2795 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2796 if test "$host_vendor" = "apple"; then
2797 # clang treats inlines different
2800 TEMPCFLAGS="$CFLAGS";;
2802 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";;
2805 TEMPCFLAGS="$CFLAGS";
2810 CFLAGS="$TEMPCFLAGS" \
2811 CXXFLAGS="$CXXFLAGS" \
2812 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2813 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2814 --host=$host_alias \
2815 --build=$build_alias \
2816 --target=$target_alias \
2817 --without-xscreensaver \
2820 --disable-fieldlines \
2824 --disable-hyperspace \
2827 if echo "$ARCH" | grep -q freebsd ; then
2828 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2832 XB_CONFIG_MODULE([lib/cpluff], [
2833 ./configure --disable-nls \
2834 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2835 --host=$host_alias \
2836 --build=$build_alias \
2837 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2838 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2841 XB_CONFIG_MODULE([lib/gtest], [
2846 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2847 --host=$host_alias \
2848 --build=$build_alias \
2849 --target=$target_alias \
2853 ], [$SKIP_CONFIG_GTEST])
2855 XB_CONFIG_MODULE([pvr-addons], [
2857 --prefix="${prefix}" \
2858 --host=$host_alias \
2859 --build=$build_alias \
2860 --target=$target_alias \
2864 CXXFLAGS="$CXXFLAGS"
2865 ], [$DISABLE_PVR_ADDON_CONFIG])
2869 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2870 echo -e "$final_message\n"