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 libshairport_not_found="== Could not find libshairport. =="
172 libshairplay_not_found="== Could not find libshairplay. =="
173 samba_disabled="== SAMBA support disabled. =="
174 libplist_not_found="== Could not find libplist. AirPlay support disabled. =="
175 libplist_disabled="== AirPlay support disabled. =="
176 alsa_not_found="== Could not find ALSA. ALSA support disabled. =="
177 dbus_not_found="== Could not find DBUS. DBUS support disabled. =="
178 libcap_disabled="== Capabilities detection support disabled. =="
179 libcap_not_found="== Could not find libcap. Capabilities detection support disabled. =="
180 gtest_enabled="== Google Test Framework will be configured. =="
181 gtest_disabled="== Google Test Framework will not be configured. =="
183 libudev_not_found="== Could not find libudev. Will use polling to check for device changes. =="
184 libudev_disabled="== udev support disabled. Will use polling to check for device changes. =="
185 libusb_not_found="== Could not find libusb. Plug and play USB device support will not be available. =="
186 libusb_disabled="== libusb disabled. Plug and play USB device support will not be available. =="
187 libusb_disabled_udev_found="== libusb disabled. =="
188 libcec_enabled="== libcec enabled. =="
189 libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
191 dashes="------------------------"
192 final_message="\n XBMC Configuration:"
193 final_message="\n$dashes$final_message\n$dashes"
195 AC_ARG_WITH([ffmpeg],
196 [AS_HELP_STRING([--with-ffmpeg],
197 [ffmpeg options: auto (search pkg-config or auto build), force (always build ffmpeg), shared (link dynamically), path_to_ffmpeg [default=force]])],
198 [ffmpeg_dir=$with_ffmpeg],
201 AC_ARG_ENABLE([shared-lib],
202 [AS_HELP_STRING([--enable-shared-lib],
203 [build libxbmc. helpful for tests (default is no)])],
204 [build_shared_lib=$enableval],
205 [build_shared_lib=no])
207 AC_ARG_ENABLE([debug],
208 [AS_HELP_STRING([--enable-debug],
209 [enable debugging information (default is yes)])],
210 [use_debug=$enableval],
213 AC_ARG_WITH([platform],
214 [AS_HELP_STRING([--with-platform],
215 [use a pre-configured config for common arm boards])],
216 [use_platform=$withval],
219 AC_ARG_ENABLE([optimizations],
220 [AS_HELP_STRING([--enable-optimizations],
221 [enable optimization (default is yes)])],
222 [use_optimizations=$enableval],
223 [use_optimizations=yes])
226 [AS_HELP_STRING([--enable-gl],
227 [enable OpenGL rendering (default is yes)])],
231 AC_ARG_ENABLE([gles],
232 [AS_HELP_STRING([--enable-gles],
233 [enable OpenGLES rendering (default is no)])],
234 [use_gles=$enableval],
238 [AS_HELP_STRING([--enable-sdl],
239 [enable SDL (default is auto)])],
240 [use_sdl=$enableval],
243 AC_ARG_ENABLE([vdpau],
244 [AS_HELP_STRING([--enable-vdpau],
245 [enable VDPAU decoding (default is auto)])],
246 [use_vdpau=$enableval],
249 AC_ARG_ENABLE([vaapi],
250 [AS_HELP_STRING([--enable-vaapi],
251 [enable VAAPI decoding (default is auto)])],
252 [use_vaapi=$enableval],
255 AC_ARG_ENABLE([crystalhd],
256 [AS_HELP_STRING([--enable-crystalhd],
257 [enable CrystalHD decoding (default is auto)])],
258 [use_crystalhd=$enableval],
259 [use_crystalhd=auto])
261 AC_ARG_ENABLE([vtbdecoder],
262 [AS_HELP_STRING([--enable-vtbdecoder],
263 [enable VTBDecoder decoding (default is auto)])],
264 [use_vtbdecoder=$enableval],
265 [use_vtbdecoder=auto])
267 AC_ARG_ENABLE([openmax],
268 [AS_HELP_STRING([--enable-openmax],
269 [enable OpenMax decoding (default is auto, requires OpenGLES)])],
270 [use_openmax=$enableval],
273 AC_ARG_ENABLE([tegra],
274 [AS_HELP_STRING([--enable-tegra],
275 [enable Tegra2 arm (default is no)])],
276 [use_tegra=$enableval],
279 AC_ARG_ENABLE([profiling],
280 [AS_HELP_STRING([--enable-profiling],
281 [enable gprof profiling (default is no)])],
282 [use_profiling=$enableval],
285 AC_ARG_ENABLE([joystick],
286 [AS_HELP_STRING([--enable-joystick],
287 [enable SDL joystick support (default is yes)])],
288 [use_joystick=$enableval],
291 AC_ARG_ENABLE([xrandr],
292 [AS_HELP_STRING([--enable-xrandr],
293 [enable XRandR support (default is yes)])],
294 [use_xrandr=$enableval],
297 AC_ARG_ENABLE([waveform],
298 [AS_HELP_STRING([--enable-waveform],
299 [enable Waveform visualisation (default is yes)])],
300 [use_waveform=$enableval],
303 AC_ARG_ENABLE([spectrum],
304 [AS_HELP_STRING([--enable-spectrum],
305 [enable Spectrum visualisation (default is yes)])],
306 [use_spectrum=$enableval],
309 AC_ARG_ENABLE([goom],
310 [AS_HELP_STRING([--enable-goom],
311 [enable GOOM visualisation (default is no)])],
312 [use_goom=$enableval],
315 AC_ARG_ENABLE([rsxs],
316 [AS_HELP_STRING([--enable-rsxs],
317 [enable really slick X screensavers (default is yes)])],
318 [use_rsxs=$enableval],
321 AC_ARG_ENABLE([fishbmc],
322 [AS_HELP_STRING([--enable-fishbmc],
323 [enable FishBMC visualisation (default is yes)])],
324 [use_fishbmc=$enableval],
327 AC_ARG_ENABLE([projectm],
328 [AS_HELP_STRING([--enable-projectm],
329 [enable ProjectM visualisation (default is yes)])],
330 [use_projectm=$enableval],
333 AC_ARG_ENABLE([wayland],
334 [AS_HELP_STRING([--enable-wayland],
335 [enable wayland (default is no) 'Linux Only'])],
336 [use_wayland=$enableval],
340 [AS_HELP_STRING([--enable-x11],
341 [enable x11 (default is yes) 'Linux Only'])],
342 [use_x11=$enableval],
345 AC_ARG_ENABLE([ccache],
346 [AS_HELP_STRING([--enable-ccache],
347 [enable building with ccache feature (default is auto)])],
348 [use_ccache=$enableval],
351 AC_ARG_ENABLE([alsa],
352 [AS_HELP_STRING([--disable-alsa],
353 [disable ALSA support (only for linux/freebsd)])],
354 [use_alsa=$enableval],
357 AC_ARG_ENABLE([pulse],
358 [AS_HELP_STRING([--enable-pulse],
359 [enable PulseAudio support (default is auto)])],
360 [use_pulse=$enableval],
364 [AS_HELP_STRING([--disable-ssh],
365 [disable SSH SFTP support (default is enabled)])],
366 [use_ssh=$enableval],
369 AC_ARG_ENABLE([rtmp],
370 [AS_HELP_STRING([--enable-rtmp],
371 [enable RTMP support via librtmp (default is auto)])],
372 [use_librtmp=$enableval],
375 AC_ARG_ENABLE([samba],
376 [AS_HELP_STRING([--disable-samba],
377 [disable SAMBA support (default is enabled)])],
378 [use_samba=$enableval],
382 [AS_HELP_STRING([--enable-nfs],
383 [enable NFS support via libnfs (default is auto)])],
384 [use_libnfs=$enableval],
387 AC_ARG_ENABLE([afpclient],
388 [AS_HELP_STRING([--enable-afpclient],
389 [enable AFP support via libafpclient (default is auto)])],
390 [use_libafpclient=$enableval],
391 [use_libafpclient=auto])
393 AC_ARG_ENABLE([airplay],
394 [AS_HELP_STRING([--enable-airplay],
395 [enable AirPlay support(default is auto)])],
396 [use_airplay=$enableval],
399 AC_ARG_ENABLE([airtunes],
400 [AS_HELP_STRING([--enable-airtunes],
401 [enable AirTunes support(default is auto)])],
402 [use_airtunes=$enableval],
405 AC_ARG_ENABLE([upnp],
406 [AS_HELP_STRING([--disable-upnp],
407 [disable UPnP support (default is enabled)])],
408 [use_upnp=$enableval],
411 AC_ARG_ENABLE([dvdcss],
412 [AS_HELP_STRING([--enable-dvdcss],
413 [enable DVDCSS support (default is yes)])],
414 [use_dvdcss=$enableval],
418 [AS_HELP_STRING([--enable-mid],
419 [enable MID support (default is no)])],
420 [use_mid=$enableval],
424 [AS_HELP_STRING([--disable-hal],
425 [disable HAL support (default is enabled if hal and hal-storage is found)])],
426 [use_hal=$enableval],
429 AC_ARG_ENABLE([avahi],
430 [AS_HELP_STRING([--disable-avahi],
431 [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
432 [use_avahi=$enableval],
435 AC_ARG_ENABLE([mdnsembedded],
436 [AS_HELP_STRING([--disable-mdnsembedded],
437 [disable mDNSEmbedded support (default is auto)])],
438 [use_mdnsembedded=$enableval],
439 [use_mdnsembedded=auto])
441 AC_ARG_ENABLE([non-free],
442 [AS_HELP_STRING([--disable-non-free],
443 [disable componentents with non-compliant licenses])],
444 [use_nonfree=$enableval],
447 AC_ARG_ENABLE([asap-codec],
448 [AS_HELP_STRING([--enable-asap-codec],
449 [enable ASAP ADPCM support])],
450 [use_asap=$enableval],
453 AC_ARG_ENABLE([mysql],
454 [AS_HELP_STRING([--disable-mysql],
456 [use_mysql=$enableval],
459 AC_ARG_ENABLE([webserver],
460 [AS_HELP_STRING([--disable-webserver],
461 [disable webserver])],
462 [use_webserver=$enableval],
465 AC_ARG_ENABLE([optical-drive],
466 [AS_HELP_STRING([--disable-optical-drive],
467 [disable optical drive])],
468 [use_optical_drive=$enableval],
469 [use_optical_drive=yes])
471 AC_ARG_ENABLE([libbluray],
472 [AS_HELP_STRING([--enable-libbluray],
473 [enable libbluray support])],
474 [use_libbluray=$enableval],
475 [use_libbluray=auto])
477 AC_ARG_ENABLE([texturepacker],
478 [AS_HELP_STRING([--enable-texturepacker],
479 [enable texturepacker support (default is yes)])],
480 [use_texturepacker=$enableval],
481 [use_texturepacker=auto])
483 AC_ARG_WITH([lirc-device],
484 [AS_HELP_STRING([--with-lirc-device=file],
485 [specify the default LIRC device (default is /dev/lircd)])],
486 [lirc_device=$withval],
487 [lirc_device=/dev/lircd])
488 AC_DEFINE_UNQUOTED([LIRC_DEVICE], ["$lirc_device"], [Default LIRC device])
490 AC_ARG_ENABLE([udev],
491 [AS_HELP_STRING([--enable-udev],
492 [enable udev support (default is auto)])],
493 [use_libudev=$enableval],
496 AC_ARG_ENABLE([libusb],
497 [AS_HELP_STRING([--enable-libusb],
498 [enable libusb support (default is auto)])],
499 [use_libusb=$enableval],
502 AC_ARG_ENABLE([libcec],
503 [AS_HELP_STRING([--enable-libcec],
504 [enable libcec support (default is auto)])],
505 [use_libcec=$enableval],
508 AC_ARG_ENABLE([libmp3lame],
509 [AS_HELP_STRING([--enable-libmp3lame],
510 [enable lame mp3 encoder support (default is auto)])],
511 [use_libmp3lame=$enableval],
512 [use_libmp3lame=auto])
514 AC_ARG_ENABLE([libvorbisenc],
515 [AS_HELP_STRING([--enable-libvorbisenc],
516 [enable vorbis encoder support (default is auto)])],
517 [use_libvorbisenc=$enableval],
518 [use_libvorbisenc=auto])
520 AC_ARG_ENABLE([libcap],
521 [AS_HELP_STRING([--enable-libcap],
522 [enable libcap support (default is auto)])],
523 [use_libcap=$enableval],
526 AC_ARG_ENABLE([player],
527 [AS_HELP_STRING([--enable-player],
528 [enable additional players from a list of comma separated names, (default is none, choices are omxplayer)])],
529 [add_players=$enableval],
532 AC_ARG_ENABLE([gtest],
533 [AS_HELP_STRING([--enable-gtest],
534 [configure Google Test Framework (default is yes)])],
535 [configure_gtest=$enableval],
536 [configure_gtest=yes])
538 AC_ARG_ENABLE([codec],
539 [AS_HELP_STRING([--enable-codec],
540 [enable additional codecs from a list of comma separated names, (default is none, choices are amcodec, libstagefright)])],
541 [add_codecs=$enableval],
544 AC_ARG_ENABLE([libav-compat],
545 [AS_HELP_STRING([--enable-libav-compat],
546 [build a wrapper around libav to provide the functions needed by XBMC. This is
547 *not* supported by XBMC developers and is provided only for convenience. (default is no) 'Linux only'])],
548 [use_libav_hacks=$enableval],
549 [use_libav_hacks=no])
551 ### End of external library options
553 if test "x$host_vendor" != "xapple"; then
554 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
555 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
558 # Checks for programs.
559 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
562 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
563 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
565 AX_PROG_CXX_FOR_BUILD
566 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
573 OBJDUMP="${OBJDUMP:-objdump}"
575 # host detection and setup
577 i*86*-linux-android*)
578 target_platform=target_android
589 i*86*-linux-gnu*|i*86*-*-linux-uclibc*)
591 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
597 x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
599 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
610 ARCH="x86_64-freebsd"
626 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
627 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
628 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
629 PYTHON_NOVERSIONCHECK="no-check"
636 powerpc-apple-darwin*)
643 powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*)
646 powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*)
647 ARCH="powerpc64-linux"
649 arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
660 arm*-*linux-android*)
661 target_platform=target_android
675 AC_MSG_ERROR(unsupported host ($host))
679 check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
680 if test "x$check_sdl_arch" = "xi386" ; then
681 DARWIN_NATIVE_ARCH=-m32
682 elif test "x$check_sdl_arch" = "xx86_64" ; then
683 DARWIN_NATIVE_ARCH=-m64
685 AC_SUBST([DARWIN_NATIVE_ARCH])
687 if test "$target_platform" = "target_android" ; then
689 webserver_checkdepends=yes
690 CFLAGS="$CFLAGS -Wno-psabi"
691 DROID_DVDLIB_SEEK64="-D_FILE_OFFSET_BITS=64 -D_OFF_T_DEFINED_ -Doff_t=off64_t -Dlseek=lseek64"
692 CXXFLAGS="$CXXFLAGS -Wno-psabi"
693 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
696 case $use_platform in
698 target_platform=target_raspberry_pi
702 use_hardcoded_tables="yes"
705 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
706 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
712 XBMC_SETUP_ARCH_DEFINES()
715 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
716 if test "$GIT_REV" = ""; then
717 if test -f VERSION ; then
718 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
719 elif test "$HAVE_GIT" = "yes" -a -d ${abs_top_srcdir}/.git; then
720 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
725 final_message="$final_message\n git Rev.:\t${GIT_REV}"
727 if test "$host_vendor" = "apple"; then
728 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
730 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
733 if test "$build_shared_lib" = "yes"; then
734 final_message="$final_message\n Shared lib\tYes"
735 AC_SUBST(USE_LIBXBMC,1)
739 # platform debug flags
740 if test "$use_debug" = "yes"; then
741 final_message="$final_message\n Debugging:\tYes"
742 if test "$use_profiling" = "yes"; then
743 final_message="$final_message\n Profiling:\tYes"
744 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
746 final_message="$final_message\n Profiling:\tNo"
747 DEBUG_FLAGS="-g -D_DEBUG -Wall"
750 final_message="$final_message\n Debugging:\tNo"
751 if test "$use_profiling" = "yes"; then
752 final_message="$final_message\n Profiling:\tYes"
753 DEBUG_FLAGS="-pg -DNDEBUG=1"
755 final_message="$final_message\n Profiling:\tNo"
756 DEBUG_FLAGS="-DNDEBUG=1"
759 CFLAGS="$CFLAGS $DEBUG_FLAGS"
760 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
763 if test "$use_optimizations" = "yes"; then
764 final_message="$final_message\n Optimization:\tYes"
765 if test "$target_platform" = "target_raspberry_pi"; then
769 CXXFLAGS="-O2 $CXXFLAGS"
773 final_message="$final_message\n Optimization:\tNo"
777 # platform specific flags
778 if echo "$ARCH" | grep -q "freebsd" ; then
779 LOCALBASE="${LOCALBASE:-/usr/local}"
780 CFLAGS="$CFLAGS -I$LOCALBASE/include"
781 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
782 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
783 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
785 if test "$host_vendor" = "apple" ; then
786 # standard xbmc paths
787 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
788 if test "$use_arch" != "arm"; then
789 LIBS="$LIBS -framework ApplicationServices"
790 LIBS="$LIBS -framework AudioUnit"
791 LIBS="$LIBS -framework AudioToolbox"
792 LIBS="$LIBS -framework Cocoa"
793 LIBS="$LIBS -framework CoreAudio"
794 LIBS="$LIBS -framework CoreVideo"
795 LIBS="$LIBS -framework CoreServices"
796 LIBS="$LIBS -framework CoreFoundation"
797 LIBS="$LIBS -framework DiskArbitration"
798 LIBS="$LIBS -framework IOKit"
799 LIBS="$LIBS -framework IOSurface"
800 LIBS="$LIBS -framework QuartzCore"
801 LIBS="$LIBS -framework SystemConfiguration"
802 LIBS="$LIBS -framework VideoDecodeAcceleration"
804 elif test "$target_platform" = "target_raspberry_pi"; then
807 elif test "$use_arch" = "arm"; then
808 CFLAGS="$CFLAGS -mno-apcs-stack-check"
809 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
810 if test "$use_tegra" = "yes"; then
811 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
812 SAVE_CFLAGS="$CFLAGS"
813 CFLAGS="-mfpu=vfpv3-d16"
815 [AC_LANG_SOURCE([int foo;])],
816 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
817 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
819 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
820 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
823 if test "$use_neon" = "yes"; then
824 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
825 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
830 # Checks for library functions.
833 AC_FUNC_CLOSEDIR_VOID
834 AC_FUNC_ERROR_AT_LINE
836 AC_PROG_GCC_TRADITIONAL
838 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
842 # Boxee is apparently having compile problems
843 # if HAVE_REALLOC is defined. Sort this later.
845 AC_FUNC_SELECT_ARGTYPES
846 AC_FUNC_SETVBUF_REVERSED
854 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])
856 # Check for various sizes
857 AC_CHECK_SIZEOF([int])
858 AC_CHECK_SIZEOF([size_t])
860 # Check for intrinsics
861 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
862 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
863 [have_builtin_sync_add_and_fetch=yes],
864 [have_builtin_sync_add_and_fetch=no])
865 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
866 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
867 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
868 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
871 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
872 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
873 [have_builtin_sync_sub_and_fetch=yes],
874 [have_builtin_sync_sub_and_fetch=no])
875 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
876 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
877 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
878 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
881 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
882 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
883 [have_builtin_sync_val_compare_and_swap=yes],
884 [have_builtin_sync_val_compare_and_swap=no])
885 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
886 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
887 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
888 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
891 # Check for u16string/u32string declarations
893 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
894 AC_CHECK_TYPES([char16_t, char32_t])
895 AC_CHECK_SIZEOF([wchar_t])
898 # Add top source directory for all builds so we can use config.h
899 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
901 # Check inotify availability
902 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
904 # Checks for boost headers using CXX instead of CC
906 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
910 if test -z "$PYTHON_NOVERSIONCHECK"; then
911 AX_PYTHON_DEVEL([>= 2.4])
912 PYTHON_VERSION=$ac_python_version
915 if test -z "$PYTHON_VERSION"; then
916 AC_MSG_ERROR([Can't find a Python version.])
918 LIBS="$LIBS $PYTHON_LDFLAGS"
919 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
923 if test "$use_wayland" = "yes" && test "$host_vendor" != "apple"; then
924 AC_MSG_NOTICE($wayland_enabled)
925 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client],
926 [INCLUDES="$INCLUDES $WAYLAND_CLIENT_CFLAGS";
927 WAYLAND_CLIENT_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-client\`; echo ${LIBRARY:2}`;
928 XB_FIND_SONAME([WAYLAND_CLIENT_LIBRARY], ${WAYLAND_CLIENT_LIBRARY_LINE})],
929 AC_MSG_ERROR($missing_library))
930 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],
931 [INCLUDES="$INCLUDES $WAYLAND_EGL_CFLAGS";
932 WAYLAND_EGL_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-egl\`; echo ${LIBRARY:2:11}`
933 XB_FIND_SONAME([WAYLAND_EGL_LIBRARY], ${WAYLAND_EGL_LIBRARY_LINE})],
934 AC_MSG_ERROR($missing_library))
935 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
936 [INCLUDES="$INCLUDES $XKBCOMMON_CFLAGS";
937 XKBCOMMON_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l xkbcommon\`; echo ${LIBRARY:2}`;
938 XB_FIND_SONAME([XKBCOMMON_LIBRARY], $XKBCOMMON_LIBRARY_LINE)],
939 AC_MSG_ERROR($missing_library))
940 AC_DEFINE([HAVE_WAYLAND], [1], [Define to 1 if you have Wayland libs installed.])
941 AC_DEFINE([HAVE_XKBCOMMON], [1], [Define to 1 if you have libxkbcommon installed.])
943 # If we are also building with tests then we want to build
944 # wayland tests as well
945 if test "$configure_gtest" = "yes"; then
947 PKG_CHECK_MODULES([PIXMAN],
948 [pixman-1],have_pixman=yes,
949 [AC_MSG_WARN($missing_library); have_pixman=no])
950 PKG_CHECK_MODULES([WESTON],
951 [weston >= 1.1.90],[have_weston_sdk=yes],
952 [have_weston_sdk=no; AC_MSG_WARN($missing_library)])
954 AC_CHECK_PROG(WAYLAND_SCANNER, wayland-scanner, "wayland-scanner", "no")
955 if test "x$WAYLAND_SCANNER" == "xno"; then
956 AC_MSG_WARN($missing_program)
958 if test "x$have_weston_sdk" == "xyes" && test "x$have_pixman" = "xyes"; then
959 AC_SUBST(WAYLAND_TEST_INCLUDES,"$WAYLAND_CLIENT_CFLAGS $XKBCOMMON_CFLAGS $PIXMAN_CFLAGS $WESTON_CFLAGS")
960 AC_SUBST(WAYLAND_TEST_LIBS,"$WAYLAND_CLIENT_LIBS $XKBCOMMON_LIBS $PIXMAN_LIBS $WESTON_LIBS")
961 AC_DEFINE([HAVE_WESTON_SDK], [1], [Define to 1 if Weston SDK is installed.])
962 AC_SUBST(USE_WAYLAND_TEST_EXTENSION, 1)
964 AC_SUBST(WAYLAND_SCANNER)
965 AC_DEFINE([HAVE_WAYLAND_XBMC_PROTO],[1],["Define to 1 if the wayland test-protocol will be built"])
969 # Disable SDL and X11 builds
974 # Wayland requires the EGL "window system" which in turn only supports
975 # the OpenGL ES API, so enable gles support
978 AC_MSG_RESULT($wayland_disabled)
981 # Checks for platforms libraries.
982 if test "$use_gles" = "yes"; then
984 # GLES overwrites GL if both set to yes.
985 if test "$host_vendor" = "apple" ; then
986 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
987 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
988 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
990 if test "$target_platform" = "target_raspberry_pi"; 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.)
994 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
996 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
997 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
1001 if test "$use_gl" = "yes"; then
1002 if test "$host_vendor" = "apple" ; then
1003 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
1004 LIBS="$LIBS -framework OpenGL"
1005 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
1006 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
1007 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
1008 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
1009 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1011 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
1012 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1013 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
1016 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
1017 AC_CHECK_LIB([SDL_gfx],[main])
1021 # platform common libraries
1022 if test "$use_mysql" = "yes"; then
1023 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
1024 if test "x$MYSQL_CONFIG" != "xno"; then
1025 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
1026 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
1027 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
1028 LIBS="$LIBS $MYSQL_LIBS"
1029 AC_SUBST(MYSQL_LIBS)
1031 AC_MSG_ERROR($missing_program)
1034 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1035 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1036 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1037 AC_INCLUDES_DEFAULT()
1038 [#include <mpeg2dec/mpeg2.h>])
1039 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1040 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1041 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1042 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1043 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1044 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1046 # we need to check for the header because if it exists we set the openssl
1047 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1048 # in MT manner correctly.
1049 AC_MSG_CHECKING([for CRYPTO_set_locking_callback(0)])
1050 AC_TRY_LINK([],[CRYPTO_set_locking_callback(0);],
1051 [have_curl_static=yes],
1052 [have_curl_static=no])
1053 AC_MSG_RESULT($have_curl_static)
1054 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1055 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1056 if test "$gcrypt_headers_available" = "yes"; then
1057 # if we have the headers then we must have the lib
1058 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1059 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1060 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1062 PKG_CHECK_MODULES([GNUTLS], [gnutls], [have_gnutls=yes];AC_DEFINE([HAVE_GNUTLS], [1], [Define if we have gnutls]), AC_MSG_WARN("gnutls not found"))
1064 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1065 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1066 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1067 if echo "$ARCH" | grep -q freebsd; then
1068 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1069 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1070 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1071 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1073 if test "$target_platform" != "target_android" ; then
1074 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1075 AC_CHECK_LIB([pthread], [pthread_setname_np],
1076 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1077 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1080 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1081 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1082 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1083 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1084 if test "$use_mysql" = "yes"; then
1085 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1087 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1088 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1089 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1090 if test "$target_platform" = "target_android" ; then
1091 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1092 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1093 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1095 PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
1096 [INCLUDES="$INCLUDES $LIBXML_CFLAGS"; LIBS="$LIBS $LIBXML_LIBS"],
1097 AC_MSG_ERROR($missing_library))
1098 PKG_CHECK_MODULES([LIBXSLT], [libxslt],
1099 [INCLUDES="$INCLUDES $LIBXSLT_CFLAGS"; LIBS="$LIBS $LIBXSLT_LIBS"],
1100 AC_MSG_ERROR($missing_library))
1101 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1102 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1103 AC_MSG_ERROR($missing_library))
1104 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1105 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1106 AC_MSG_ERROR($missing_library))
1107 PKG_CHECK_MODULES([PNG], [libpng],
1108 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1109 AC_MSG_ERROR($missing_library))
1110 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1111 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1112 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1113 AC_MSG_ERROR($missing_library))
1114 PKG_CHECK_MODULES([PCRE], [libpcre],
1115 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1116 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1117 AC_MSG_ERROR($missing_library))
1118 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1119 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1120 AC_MSG_ERROR($missing_library))
1121 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1122 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1123 AC_MSG_ERROR($missing_library))
1125 if test "$use_optical_drive" = "yes"; then
1126 PKG_CHECK_MODULES([CDIO], [libcdio],
1127 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1128 AC_MSG_ERROR($missing_library))
1131 if test "$target_platform" = "target_android" ; then
1132 PKG_CHECK_MODULES([ZIP], [libzip],
1133 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1134 AC_MSG_ERROR($missing_library))
1137 # check for libbluray
1138 AS_CASE([x$use_libbluray],
1140 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1143 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1146 AS_CASE([x$use_libbluray],
1148 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1149 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1150 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1151 AC_SUBST([HAVE_LIBBLURAY], 1)
1152 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1153 AC_CHECK_DECL([BD_EVENT_IDLE],
1154 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1155 [[#include <libbluray/bluray.h>]]))
1157 AC_SUBST([HAVE_LIBBLURAY], 0)
1161 #Check to see if libs are needed for functions that are often built-in to libc
1162 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1163 AC_SEARCH_LIBS([dlopen],dl)
1164 AC_SEARCH_LIBS([clock_gettime],rt)
1165 AC_SEARCH_LIBS([dn_expand], resolv)
1166 AC_SEARCH_LIBS([_dn_expand], resolv)
1167 AC_SEARCH_LIBS([__dn_expand],resolv)
1169 # platform dependent libraries
1170 if test "$host_vendor" = "apple" ; then
1171 if test "$use_arch" != "arm"; then
1172 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1173 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1176 if test "$target_platform" != "target_android" ; then
1177 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1179 if test "x$use_alsa" != "xno"; then
1180 PKG_CHECK_MODULES([ALSA], [alsa],
1181 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1182 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1184 PKG_CHECK_MODULES([DBUS], [dbus-1],
1185 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1186 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1187 AC_MSG_NOTICE($missing_library); use_dbus=no)
1188 if test "x$use_sdl" != "xno"; then
1189 PKG_CHECK_MODULES([SDL], [sdl],
1190 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1191 AC_MSG_ERROR($missing_library))
1192 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1193 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1197 XB_FIND_SONAME([OGG], [ogg])
1198 XB_FIND_SONAME([CURL], [curl])
1199 XB_FIND_SONAME([FLAC], [FLAC])
1200 XB_FIND_SONAME([VORBIS], [vorbis])
1201 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1202 XB_FIND_SONAME([MODPLUG], [modplug])
1203 XB_FIND_SONAME([ASS], [ass])
1204 XB_FIND_SONAME([MPEG2], [mpeg2])
1207 if test "x$use_libmp3lame" != "xno"; then
1208 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1209 if test "x$use_libmp3lame" != "xno"; then
1210 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1213 AS_CASE([x$use_libmp3lame],
1215 AC_SUBST([HAVE_LIBMP3LAME], 0)
1218 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1219 AC_SUBST([HAVE_LIBMP3LAME], 1)
1222 if test "x$use_libvorbisenc" != "xno"; then
1223 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1224 if test "x$use_libvorbisenc" != "xno"; then
1225 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1228 AS_CASE([x$use_libvorbisenc],
1230 AC_SUBST([HAVE_LIBVORBISENC], 0)
1232 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1233 AC_SUBST([HAVE_LIBVORBISENC], 1)
1238 if test "$use_webserver" = "yes"; then
1239 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1243 if test "$use_optical_drive" = "yes"; then
1244 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1248 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1249 PKG_CHECK_MODULES([ALSA], [alsa],
1250 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1251 AC_MSG_ERROR($missing_library))
1252 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1255 AC_MSG_RESULT($alsa_disabled)
1259 if test "x$use_pulse" != "xno"; then
1260 if test "$host_vendor" = "apple" ; then
1261 if test "x$use_pulse" = "xyes"; then
1262 AC_MSG_ERROR($pulse_disabled)
1265 AC_MSG_RESULT($pulse_disabled)
1269 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0],
1270 [INCLUDES="$INCLUDES $PULSE_CFLAGS"; LIBS="$LIBS $PULSE_LIBS"; USE_PULSE=1;
1271 HAVE_LIBPULSE=1; AC_DEFINE([HAVE_LIBPULSE],[1],[Pulse audio enabled])],
1272 [pulse_found="no"; USE_PULSE=0; HAVE_LIBPULSE=0])
1274 if test "$pulse_found" = "no"; then
1275 if test "x$use_pulse" = "xyes"; then
1276 AC_MSG_ERROR($pulse_not_found)
1278 AC_MSG_RESULT($pulse_disabled)
1283 AC_MSG_RESULT($pulse_disabled)
1288 if test "$host_vendor" = "apple" ; then
1290 AC_MSG_RESULT($hal_disabled)
1292 if test "$use_hal" = "yes"; then
1293 PKG_CHECK_MODULES([HAL], [hal],
1294 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1295 use_hal=no;AC_MSG_RESULT($hal_not_found))
1296 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1297 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1298 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1300 AC_MSG_RESULT($hal_disabled)
1302 if test "$use_hal" = "yes"; then
1303 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1308 if test "$host_vendor" = "apple" ; then
1310 AC_MSG_RESULT($avahi_disabled)
1312 if test "$use_avahi" = "yes"; then
1313 AC_CHECK_LIB([avahi-common], [main],,
1314 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1315 if test "$use_avahi" = "yes"; then
1316 #either both libs or none
1317 AC_CHECK_LIB([avahi-client], [main],,
1318 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1321 AC_MSG_RESULT($avahi_disabled)
1326 if test "$use_mdnsembedded" != "no"; then
1327 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1328 [if test "$use_mdnsembedded" = "yes"; then
1329 AC_MSG_ERROR($mdnsembedded_not_found)
1331 elif test "$use_mdnsembedded" != "no"; then
1332 AC_MSG_NOTICE($mdnsembedded_not_found)
1333 use_mdnsembedded="no"
1337 if test $use_mdnsembedded != "no"; then
1341 AC_MSG_RESULT($mdnsembedded_disabled)
1344 AC_SUBST(USE_MDNSEMBEDDED)
1347 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1348 AC_MSG_NOTICE($x11_enabled)
1349 PKG_CHECK_MODULES([X11], [x11],
1350 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1351 AC_MSG_ERROR($missing_library))
1352 PKG_CHECK_MODULES([XEXT], [xext],
1353 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1354 AC_MSG_ERROR($missing_library))
1355 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1357 AC_MSG_RESULT($x11_disabled)
1361 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1363 AC_MSG_RESULT($xrandr_disabled)
1365 if test "$use_xrandr" = "yes" ; then
1366 AC_CHECK_LIB([Xrandr], [main],,
1367 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1369 AC_MSG_RESULT($xrandr_disabled)
1374 if test "$use_waveform" = "yes"; then
1375 AC_MSG_NOTICE($waveform_enabled)
1378 AC_MSG_NOTICE($waveform_disabled)
1383 if test "$use_spectrum" = "yes"; then
1384 AC_MSG_NOTICE($spectrum_enabled)
1387 AC_MSG_NOTICE($spectrum_disabled)
1392 if test "$host_vendor" = "apple" ; then
1393 AC_MSG_NOTICE($goom_disabled)
1396 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1397 AC_MSG_NOTICE($goom_enabled)
1400 AC_MSG_NOTICE($goom_disabled)
1406 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1407 AC_MSG_NOTICE($rsxs_disabled)
1410 AC_MSG_NOTICE($rsxs_enabled)
1412 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1413 if test "$host_vendor" != "apple" ; then
1414 PKG_CHECK_MODULES([XT], [xt],
1415 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1416 AC_MSG_ERROR($missing_library))
1417 PKG_CHECK_MODULES([XMU], [xmu],
1418 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1419 AC_MSG_ERROR($missing_library))
1424 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1425 AC_MSG_NOTICE($fishbmc_disabled)
1429 AC_MSG_NOTICE($fishbmc_enabled)
1434 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1435 AC_MSG_NOTICE($projectm_disabled)
1439 AC_MSG_NOTICE($projectm_enabled)
1445 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1446 use_skin_touched=yes
1448 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1454 if test "x$use_ssh" = "xno"; then
1455 AC_MSG_NOTICE($ssh_disabled)
1458 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1459 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1463 if test "x$have_curl_static" = "xyes"; then
1464 AC_DEFINE([HAS_CURL_STATIC], [1], [Whether OpenSSL inside libcurl is static.])
1468 if test "$use_librtmp" != "no"; then
1469 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1470 [if test "$use_librtmp" = "yes"; then
1471 AC_MSG_ERROR($librtmp_not_found)
1472 elif test "$use_librtmp" != "no"; then
1473 AC_MSG_NOTICE($librtmp_not_found)
1477 if test "$use_librtmp" != "no"; then
1478 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1480 if test "$use_librtmp" != "no"; then
1481 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1484 AC_MSG_NOTICE($librtmp_disabled)
1488 if test "x$use_samba" != "xno"; then
1489 PKG_CHECK_MODULES([SAMBA], [smbclient],
1490 [INCLUDES="$INCLUDES $SAMBA_CFLAGS"; LIBS="$LIBS $SAMBA_LIBS"],
1491 [AC_CHECK_LIB([smbclient], [main],,
1492 use_samba=no;AC_MSG_ERROR($missing_library))
1496 AC_MSG_RESULT($samba_disabled)
1500 if test "x$use_samba" != "xno"; then
1501 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1506 if test "$use_libnfs" != "no"; then
1507 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1508 [if test "$use_libnfs" = "yes"; then
1509 AC_MSG_ERROR($libnfs_not_found)
1511 elif test "$use_libnfs" != "no"; then
1512 AC_MSG_NOTICE($libnfs_not_found)
1517 if test "$use_libnfs" != "no"; then
1518 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1520 if test "$use_libnfs" != "no"; then
1521 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1526 AC_MSG_NOTICE($libnfs_disabled)
1531 if test "x$use_libafpclient" != "xno"; then
1532 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1533 [if test "x$use_libafpclient" = "xyes"; then
1534 AC_MSG_ERROR($libafpclient_not_found)
1535 elif test "x$use_libafpclient" != "xno"; then
1536 AC_MSG_NOTICE($libafpclient_not_found)
1537 use_libafpclient="no"
1540 if test "x$use_libafpclient" != "xno"; then
1541 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1542 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1546 AC_MSG_NOTICE($libafpclient_disabled)
1549 # libplist for airplay feature
1551 if test "$use_airplay" != "no"; then
1552 AC_CHECK_HEADER([plist/plist.h],,
1553 [if test "$use_airplay" = "yes"; then
1554 AC_MSG_ERROR($libplist_not_found)
1555 elif test "$use_airplay" != "no"; then
1556 AC_MSG_NOTICE($libplist_not_found)
1561 if test "$use_airplay" != "no"; then
1562 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1564 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1568 # libshairplay for AirTunes (prefered lib)
1570 if test "x$use_airtunes" != "xno"; then
1571 AC_CHECK_HEADERS([shairplay/raop.h],USE_AIRTUNES=1,
1572 [AC_MSG_NOTICE($libshairplay_not_found)
1575 if test "x$USE_AIRTUNES" != "x0"; then
1576 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [USE_AIRTUNES])
1578 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1579 [[#include <shairplay/raop.h>]])
1580 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1583 #libshairport - as a fallback for AirTunes
1584 if test "x$USE_AIRTUNES" == "x0"; then
1585 AC_CHECK_HEADERS([shairport/shairport.h],USE_AIRTUNES=1,
1586 [AC_MSG_NOTICE($libshairport_not_found)
1589 if test "x$USE_AIRTUNES" != "x0"; then
1590 XB_FIND_SONAME([SHAIRPORT], [shairport], [USE_AIRTUNES])
1591 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1592 [[#include <shairport/shairport.h>]])
1593 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1597 if test "x$USE_AIRTUNES" == "x0"; then
1598 if test "x$use_airtunes" == "xyes"; then
1599 AC_MSG_ERROR("No airtunes library could be found. (libshairport/libshairplay)")
1607 if test "$host_vendor" = "apple" ; then
1609 AC_MSG_NOTICE($libudev_disabled)
1611 if test "$use_libudev" = "auto"; then
1612 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1613 elif test "$use_libudev" = "yes" ; then
1614 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1616 AC_MSG_NOTICE($libudev_disabled)
1619 if test "x$use_libudev" != "xno"; then
1620 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1621 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1628 # if libudev is available, we don't need libusb
1629 if test "x$use_libudev" != "xno"; then
1631 AC_MSG_NOTICE($libusb_disabled_udev_found)
1633 if test "$host_vendor" = "apple" ; then
1635 AC_MSG_NOTICE($libusb_disabled)
1637 if echo "$ARCH" | grep -q freebsd ; then
1638 AC_CHECK_LIB([usb],[main],
1639 [use_libusb="yes";USB_LIBS="-lusb"],
1640 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1641 elif test "$use_libusb" = "auto"; then
1642 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1643 elif test "$use_libusb" = "yes"; then
1644 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1646 AC_MSG_NOTICE($libusb_disabled)
1649 if test "x$use_libusb" != "xno"; then
1650 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1651 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1658 if test "x$use_libcec" != "xno"; then
1659 # libcec is dyloaded, so we need to check for its headers and link any depends.
1660 if test "x$use_libcec" != "xno"; then
1661 if test "x$use_libcec" != "xauto"; then
1662 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1664 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1667 if test "x$use_libcec" != "xno"; then
1668 INCLUDES="$INCLUDES $CEC_CFLAGS"
1669 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1670 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1671 AC_MSG_NOTICE($libcec_enabled)
1674 AC_MSG_NOTICE($libcec_disabled)
1679 AC_MSG_NOTICE($libcec_disabled)
1683 if test "$use_libcap" != "no"; then
1684 AC_CHECK_HEADERS([sys/capability.h],,
1685 [if test "$use_libcap" = "yes"; then
1686 AC_MSG_ERROR($libcap_not_found)
1687 elif test "$use_libcap" != "no"; then
1688 AC_MSG_NOTICE($libcap_not_found)
1692 if test "$use_libcap" != "no"; then
1693 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1695 if test "$use_libcap" != "no"; then
1696 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1699 AC_MSG_NOTICE($libcap_disabled)
1703 FFMPEG_LIBNAMES="libavcodec >= 55.39.101
1704 libavfilter >= 3.90.100
1705 libavformat >= 55.19.104
1706 libavutil >= 52.48.101
1707 libpostproc >= 52.3.100
1708 libswscale >= 2.5.101
1709 libswresample >= 0.17.104"
1711 ffmpeg_build="${abs_top_srcdir}/tools/depends/target/ffmpeg"
1712 FFMPEG_VER_SHA=$(grep "VERSION=" ${ffmpeg_build}/FFMPEG-VERSION | sed 's/VERSION=//g')
1713 AC_DEFINE_UNQUOTED([FFMPEG_VER_SHA], ["$FFMPEG_VER_SHA"], [FFmpeg version hash])
1715 if test "$with_ffmpeg" = "shared"; then
1716 # allow linking against shared ffmpeg libs
1717 # a proper version must be installed, we won't build ffmpeg
1719 AC_DEFINE([USE_STATIC_FFMPEG], [0], [FFmpeg linked dynamically])
1721 if test "${USE_STATIC_FFMPEG}" = "1"; then
1722 AC_DEFINE([USE_STATIC_FFMPEG], [1], [FFmpeg linked statically])
1723 ff_libs=$(${ECHO} ${FFMPEG_LIBNAMES} | ${AWK} '/lib/{print $1}' ORS=' ')
1724 if test -n "${PKG_CONFIG_SYSROOT_DIR}"; then
1725 # workaround for cross compiling with buildroot on different buildsystem
1726 # Rpi buildroots pkg-config returns static libs with
1727 # PKG_CONFIG_SYSROOT_DIR prefixed, OEs does not
1728 # so lets make sure we always prefix in case PKG_CONFIG_SYSROOT_DIR is defined
1729 pkg_cfg_prefix="${PKG_CONFIG_SYSROOT_DIR}"
1730 elif test "${target_platform}" = "target_raspberry_pi" && test "${USE_BUILDROOT}" = "1"; then
1731 pkg_cfg_prefix=${SYSROOT}
1734 if test "$cross_compiling" != "yes"; then
1735 if test "$use_debug" != "yes"; then
1738 if test "$use_optimizations" != "yes"; then
1739 FFMPEG_OPTS="${FFMPEG_OPTS} --disable-optimizations"
1742 if test "$with_ffmpeg" = "auto" || test "$with_ffmpeg" = "yes"; then
1743 SAVE_INCLUDES="$INCLUDES"
1745 # check for system installed ffmpeg. We require minimum versions.
1746 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1747 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1748 [FFMPEG_FOUND="false"])
1750 if test "${USE_STATIC_FFMPEG}" = "1" && test "$FFMPEG_FOUND" = "true"; then
1751 # we need to check if static libs are available
1752 FFMPEG_LIBDIR=$(${PKG_CONFIG} --static --variable=libdir libavcodec)
1753 for ff_lib in ${ff_libs}; do
1754 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1755 AC_MSG_NOTICE("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1756 FFMPEG_FOUND="false"
1757 # restore includes and libs, the ones we found are invalid
1758 INCLUDES="$SAVE_INCLUDES"
1760 unset FFMPEG_LIBS FFMPEG_CFLAGS FFMPEG_LIBDIR
1764 if test "$with_ffmpeg" = "yes" || test "$FFMPEG_FOUND" = "false"; then
1765 # ffmpeg not found with pkg-config, lets install it
1766 AC_MSG_NOTICE("Installing FFmpeg")
1767 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1768 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1771 elif test "$with_ffmpeg" = "force"; then
1772 # always build our ffmpeg
1773 AC_MSG_NOTICE("FFmpeg installation forced by user - installing our version")
1774 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1775 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1777 elif test "$with_ffmpeg" != "no"; then
1778 # user passed --with-ffmpeg=/some/path, lets use it
1779 AC_MSG_NOTICE("using ffmpeg: ${with_ffmpeg}")
1780 export PKG_CONFIG_PATH="${with_ffmpeg}/lib/pkgconfig:$PKG_CONFIG_PATH"
1785 if test "$FFMPEG_FOUND" != "true"; then
1786 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1787 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1788 [AC_MSG_ERROR("ffmpeg not found")])
1791 if test "${USE_STATIC_FFMPEG}" = "1"; then
1792 # get the libdir for static linking
1793 FFMPEG_LIBDIR=${pkg_cfg_prefix}$(PKG_CONFIG_SYSROOT_DIR="" ${PKG_CONFIG} --static --variable=libdir libavcodec)
1794 GNUTLS_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors gnutls)
1795 VORBISENC_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors vorbisenc)
1797 # check if static libs are available
1798 for ff_lib in ${ff_libs}; do
1799 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1800 AC_MSG_ERROR("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1802 # filter out libs we link statically
1803 filter=$(${ECHO} ${ff_lib} | ${SED} 's/lib/-l/g')
1804 LIBS=$(${ECHO} ${LIBS} | ${SED} "s/${filter}//g")
1806 LIBS=$(${ECHO} ${LIBS} | ${SED} ':a;N;$!ba;s/\n/ /g')
1809 echo "Checking for SWIG installation"
1810 AC_PATH_PROG(SWIG_EXE, swig, "none")
1811 if test "$SWIG_EXE" = "none"; then
1812 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1813 if test "$SWIG20_EXE" != "none" ; then
1814 SWIG_EXE=$SWIG20_EXE
1817 if test "$SWIG_EXE" = "none"; then
1818 AC_MSG_ERROR($missing_program)
1820 final_message="$final_message\n SWIG Available:\tYes"
1822 echo "Checking for a jre installation"
1823 AC_PATH_PROG(JAVA_EXE, java, "none")
1824 if test "$JAVA_EXE" = "none"; then
1825 AC_MSG_ERROR($missing_program)
1827 final_message="$final_message\n JRE Available:\tYes"
1829 echo "Checking for doxygen installation"
1830 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1831 if test "$DOXYGEN_EXE" = "none"; then
1832 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1833 final_message="$final_message\n Doxygen Available:\tNo"
1836 final_message="$final_message\n Doxygen Available:\tYes"
1841 if test "x$use_vdpau" != "xno"; then
1842 if test "$host_vendor" = "apple" ; then
1843 if test "x$use_vdpau" = "xyes"; then
1844 AC_MSG_ERROR([VDPAU not supported on this platform])
1847 AC_MSG_NOTICE($vdpau_disabled)
1852 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1853 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1854 [if test "x$use_vdpau" = "xyes"; then
1856 AC_MSG_ERROR([$vdpau_not_found])
1860 AC_MSG_RESULT($vdpau_not_found)
1865 AC_MSG_NOTICE($vdpau_disabled)
1869 if test "x$use_vaapi" != "xno"; then
1870 if test "$host_vendor" = "apple" ; then
1871 if test "x$use_vaapi" = "xyes"; then
1872 AC_MSG_ERROR([VAAPI not supported on this platform])
1875 AC_MSG_NOTICE($vaapi_disabled)
1879 initial_val=$use_vaapi
1880 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1881 if test "x$use_vaapi" != "xno"; then
1882 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1885 if test "x$use_vaapi" = "xno"; then
1886 if test "x$initial_val" = "xyes"; then
1887 AC_MSG_ERROR($vaapi_not_found)
1889 AC_MSG_RESULT($vaapi_not_found)
1893 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1898 AC_MSG_NOTICE($vaapi_disabled)
1903 if test "x$use_crystalhd" != "xno"; then
1904 SAVE_CFLAGS="$CFLAGS"
1905 CFLAGS="-D__LINUX_USER__"
1906 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1907 [ if test "x$use_crystalhd" = "xyes"; then
1908 AC_MSG_ERROR($crystalhd_not_found)
1911 AC_MSG_RESULT($crystalhd_not_found)
1915 CFLAGS="$SAVE_CFLAGS"
1916 if test "$host_vendor" != "apple"; then
1917 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1919 if test "x$use_crystalhd" != "xno"; then
1920 SAVE_CFLAGS="$CFLAGS"
1921 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1922 # check for new crystalhd lib
1924 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1925 #include <libcrystalhd/bc_dts_defs.h>
1926 PBC_INFO_CRYSTAL bCrystalInfo;])],
1927 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1928 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1929 CFLAGS="$SAVE_CFLAGS"
1933 AC_MSG_NOTICE($crystalhd_disabled)
1938 if test "x$use_vtbdecoder" != "xno"; then
1939 if test "$host_vendor" = "apple" ; then
1940 HAVE_VIDEOTOOLBOXDECODER=1
1941 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1942 AC_MSG_NOTICE($vtbdecoder_enabled)
1944 if test "x$use_vtbdecoder" = "xyes"; then
1945 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1948 AC_MSG_NOTICE($vtbdecoder_disabled)
1952 AC_MSG_NOTICE($vtbdecoder_disabled)
1956 if test "$host_vendor" = "apple" ; then
1959 AC_MSG_NOTICE($openmax_disabled)
1960 elif test "$target_platform" = "target_raspberry_pi"; then
1963 AC_MSG_NOTICE($openmax_disabled)
1965 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1966 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1967 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1968 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1969 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1970 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1971 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1972 AC_MSG_ERROR($openmax_not_found))
1974 AC_MSG_NOTICE($openmax_disabled)
1980 # yajl version check (yajl_version.h was added in yajl 2.0)
1981 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1982 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1985 # additional internal players
1986 case $add_players in
1988 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1992 # additional internal codecs
1993 # remember to convert commas to spaces
1994 for codecs in `echo $add_codecs | sed 's/,/ /g'`; do
1997 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
1998 XB_ADD_CODEC([LIBAMCODEC], [amcodec], [$codecs])
2001 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright], [$codecs])
2007 # platform specific bin utilities
2008 if test "$build_vendor" != "apple" ; then
2009 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
2010 if test "$HAVE_GAWK" = "no" ; then
2011 AC_MSG_ERROR($missing_program)
2015 if test "$use_arch" != "arm" ; then
2016 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
2017 if test "$HAVE_CMAKE" = "no" ; then
2018 AC_MSG_ERROR($missing_program)
2022 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
2023 if test "$HAVE_GPERF" = "no" ; then
2024 AC_MSG_ERROR($missing_program)
2027 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
2028 if test "$HAVE_UNZIP" = "no" ; then
2029 AC_MSG_ERROR($missing_program)
2032 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
2033 if test "$HAVE_ZIP" = "no" ; then
2034 AC_MSG_ERROR($missing_program)
2037 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
2038 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
2039 if test "$HAVE_NASM" = "no" ; then
2040 AC_MSG_ERROR($missing_program)
2044 # Checks for header files.
2048 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
2049 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
2050 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
2051 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
2052 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
2054 # Checks for typedefs, structures, and compiler characteristics.
2070 AC_CHECK_MEMBERS([struct stat.st_rdev])
2079 if test "$cross_compiling" = "yes"; then
2080 final_message="$final_message\n Crosscomp.:\tYes"
2081 if [[ -d "$NATIVE_ROOT" ]]; then
2082 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2083 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2084 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
2085 if test "$host_vendor" != "apple" ; then
2086 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
2088 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
2091 final_message="$final_message\n Crosscomp.:\tNo"
2094 final_message="$final_message\n target ARCH:\t$use_arch"
2095 final_message="$final_message\n target CPU:\t$use_cpu"
2097 if test "$use_gles" = "yes"; then
2098 final_message="$final_message\n OpenGLES:\tYes"
2103 if test "$use_gl" = "yes"; then
2104 final_message="$final_message\n OpenGL:\tYes"
2107 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2108 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2113 if test "$use_alsa" = "yes"; then
2115 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2116 final_message="$final_message\n ALSA:\t\tYes"
2119 final_message="$final_message\n ALSA:\t\tNo"
2122 if test "$use_dbus" = "yes"; then
2123 final_message="$final_message\n DBUS:\t\tYes"
2125 final_message="$final_message\n DBUS:\t\tNo"
2128 if test "x$use_vdpau" != "xno"; then
2129 final_message="$final_message\n VDPAU:\tYes"
2131 final_message="$final_message\n VDPAU:\tNo"
2134 if test "x$use_vaapi" != "xno"; then
2135 final_message="$final_message\n VAAPI:\tYes"
2137 final_message="$final_message\n VAAPI:\tNo"
2140 if test "x$use_crystalhd" != "xno"; then
2141 final_message="$final_message\n CrystalHD:\tYes"
2143 final_message="$final_message\n CrystalHD:\tNo"
2146 if test "x$use_vtbdecoder" != "xno"; then
2147 final_message="$final_message\n VTBDecoder:\tYes"
2149 final_message="$final_message\n VTBDecoder:\tNo"
2152 if test "$use_openmax" != "no"; then
2153 final_message="$final_message\n OpenMax:\tYes"
2155 final_message="$final_message\n OpenMax:\tNo"
2158 if test "$use_joystick" = "yes"; then
2159 final_message="$final_message\n Joystick:\tYes"
2160 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2162 final_message="$final_message\n Joystick:\tNo"
2165 if test "$use_xrandr" = "yes"; then
2166 final_message="$final_message\n XRandR:\tYes"
2169 final_message="$final_message\n XRandR:\tNo"
2173 if test "$use_waveform" = "yes"; then
2174 final_message="$final_message\n Waveform:\tYes"
2176 final_message="$final_message\n Waveform:\tNo"
2179 if test "$use_spectrum" = "yes"; then
2180 final_message="$final_message\n Spectrum:\tYes"
2182 final_message="$final_message\n Spectrum:\tNo"
2185 if test "$use_goom" = "yes"; then
2186 final_message="$final_message\n GOOM:\t\tYes"
2188 final_message="$final_message\n GOOM:\t\tNo"
2191 if test "$use_rsxs" = "yes"; then
2192 final_message="$final_message\n RSXS:\t\tYes"
2194 final_message="$final_message\n RSXS:\t\tNo"
2197 if test "$use_fishbmc" = "yes"; then
2198 final_message="$final_message\n FishBMC:\tYes"
2200 final_message="$final_message\n FishBMC:\tNo"
2203 if test "$use_projectm" = "yes"; then
2204 final_message="$final_message\n ProjectM:\tYes"
2206 final_message="$final_message\n ProjectM:\tNo"
2209 if test "$use_skin_touched" = "yes"; then
2210 final_message="$final_message\n Skin Touched:\tYes"
2212 final_message="$final_message\n Skin Touched:\tNo"
2215 if test "$use_x11" = "yes"; then
2216 final_message="$final_message\n X11:\t\tYes"
2218 final_message="$final_message\n X11:\t\tNo"
2221 if test "$use_wayland" = "yes"; then
2222 final_message="$final_message\n Wayland:\tYes"
2226 final_message="$final_message\n Wayland:\tNo"
2229 if test "$use_libbluray" = "yes"; then
2230 final_message="$final_message\n Bluray:\tYes"
2232 final_message="$final_message\n Bluray:\tNo"
2235 if test "x$use_texturepacker" != "xno"; then
2236 final_message="$final_message\n TexturePacker:Yes"
2239 final_message="$final_message\n TexturePacker:No"
2243 if test "$use_mid" = "yes"; then
2244 final_message="$final_message\n MID Support:\tYes"
2245 SDL_DEFINES="$SDL_DEFINES -DMID"
2247 final_message="$final_message\n MID Support:\tNo"
2252 if test "x$use_ccache" != "xno"; then
2253 AC_PATH_PROG(CCACHE,ccache,none)
2254 if test "$ac_cv_path_CCACHE" = "none"; then
2255 if test "x$use_ccache" = "xyes"; then
2256 AC_MSG_ERROR([ccache not found.]);
2258 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2259 final_message="$final_message\n ccache:\tNo"
2262 CC="$ac_cv_path_CCACHE $CC"
2263 CXX="$ac_cv_path_CCACHE $CXX"
2264 AC_MSG_NOTICE(enabling ccache)
2265 final_message="$final_message\n ccache:\tYes"
2268 final_message="$final_message\n ccache:\tNo"
2271 if test "$use_alsa" = "yes"; then
2272 final_message="$final_message\n ALSA Support:\tYes"
2274 final_message="$final_message\n ALSA Support:\tNo"
2277 if test "x$use_pulse" != "xno"; then
2278 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2279 final_message="$final_message\n PulseAudio:\tYes"
2281 XBMC_STANDALONE_SH_PULSE=/dev/null
2282 final_message="$final_message\n PulseAudio:\tNo"
2285 if test "$use_hal" = "yes"; then
2286 final_message="$final_message\n HAL Support:\tYes"
2288 final_message="$final_message\n HAL Support:\tNo"
2292 if test "$use_dvdcss" = "yes"; then
2293 AC_MSG_NOTICE($dvdcss_enabled)
2294 final_message="$final_message\n DVDCSS:\tYes"
2296 SKIP_CONFIG_DVDCSS=0
2297 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2299 AC_MSG_NOTICE($dvdcss_disabled)
2300 final_message="$final_message\n DVDCSS:\tNo"
2302 SKIP_CONFIG_DVDCSS=1
2303 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2305 if test "$host_vendor" = "apple"; then
2306 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2309 # Google Test Framework
2310 if test "$configure_gtest" = "yes"; then
2311 AC_MSG_NOTICE($gtest_enabled)
2312 final_message="$final_message\n Google Test Framework Configured:\tYes"
2316 AC_MSG_NOTICE($gtest_disabled)
2317 final_message="$final_message\n Google Test Framework Configured:\tNo"
2322 if test "$use_avahi" = "yes"; then
2323 final_message="$final_message\n Avahi:\tYes"
2325 final_message="$final_message\n Avahi:\tNo"
2328 if test "$use_mdnsembedded" != "no"; then
2329 final_message="$final_message\n mDNSEmbedded:\tYes"
2331 final_message="$final_message\n mDNSEmbedded:\tNo"
2334 if test "$use_nonfree" = "yes"; then
2335 final_message="$final_message\n Non-free:\tYes"
2337 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2340 final_message="$final_message\n Non-free:\tNo"
2343 if test "$use_asap" = "yes"; then
2344 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2345 if test "$HAVE_GDC" = "no"; then
2346 AC_MSG_ERROR($missing_program);
2348 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2349 if test "$HAVE_FPC" = "no"; then
2350 AC_MSG_ERROR($missing_program);
2353 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2354 final_message="$final_message\n ASAP Codec:\tYes"
2357 final_message="$final_message\n ASAP Codec:\tNo"
2360 if test "$use_mysql" = "yes"; then
2361 final_message="$final_message\n MySQL:\tYes"
2364 final_message="$final_message\n MySQL:\tNo"
2367 if test "$use_webserver" = "yes"; then
2368 final_message="$final_message\n Webserver:\tYes"
2371 final_message="$final_message\n Webserver:\tNo"
2375 if test "$use_libssh" != "no"; then
2376 final_message="$final_message\n libssh support:\tYes"
2378 final_message="$final_message\n libssh support:\tNo"
2381 if test "$use_librtmp" != "no"; then
2382 final_message="$final_message\n libRTMP support:\tYes"
2384 final_message="$final_message\n libRTMP support:\tNo"
2387 if test "x$use_samba" != "xno"; then
2388 final_message="$final_message\n libsmbclient support:\tYes"
2390 final_message="$final_message\n libsmbclient support:\tNo"
2393 if test "$use_libnfs" != "no"; then
2394 final_message="$final_message\n libnfs client support:Yes"
2396 final_message="$final_message\n libnfs client support:No"
2399 if test "x$use_libafpclient" != "xno"; then
2400 final_message="$final_message\n libafpclient support:\tYes"
2402 final_message="$final_message\n libafpclient support:\tNo"
2405 if test "$use_airplay" != "no"; then
2406 final_message="$final_message\n AirPlay support:\tYes"
2408 final_message="$final_message\n AirPLay support:\tNo"
2411 if test "x$use_airtunes" != "xno"; then
2412 if test "x$USE_LIBSHAIRPLAY" == "x1"; then
2413 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2415 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2418 final_message="$final_message\n AirTunes support:\tNo"
2421 if test "x$use_upnp" != "xno"; then
2422 final_message="$final_message\n UPnP support:\t\tYes"
2424 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2427 final_message="$final_message\n UPnP support:\t\tNo"
2430 if test "$use_optical_drive" = "yes"; then
2431 final_message="$final_message\n Optical drive:\tYes"
2433 final_message="$final_message\n Optical drive:\tNo"
2436 if test "x$use_libudev" != "xno"; then
2437 final_message="$final_message\n libudev support:\tYes"
2439 final_message="$final_message\n libudev support:\tNo"
2442 if test "x$use_libusb" != "xno"; then
2443 final_message="$final_message\n libusb support:\tYes"
2445 final_message="$final_message\n libusb support:\tNo"
2448 if test "x$use_libcec" != "xno"; then
2449 final_message="$final_message\n libcec support:\tYes"
2451 final_message="$final_message\n libcec support:\tNo"
2454 if test "x$use_libmp3lame" != "xno"; then
2455 final_message="$final_message\n libmp3lame support:\tYes"
2457 final_message="$final_message\n libmp3lame support:\tNo"
2460 if test "x$use_libvorbisenc" != "xno"; then
2461 final_message="$final_message\n libvorbisenc support:\tYes"
2463 final_message="$final_message\n libvorbisenc support:\tNo"
2466 if test "x$use_libcap" != "xno"; then
2467 final_message="$final_message\n libcap support:\tYes"
2469 final_message="$final_message\n libcap support:\tNo"
2472 if test "x$add_players" != "xno"; then
2473 final_message="$final_message\n additional players:\tYes, $add_players"
2475 final_message="$final_message\n additional players:\tNo"
2478 if test "x$add_codecs" != "xno"; then
2479 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2481 final_message="$final_message\n additional codecs:\tNo"
2484 ### External libraries messages
2486 if test "$host_vendor" = "apple" ; then
2487 # built internal but referenced as external, we link directly to them.
2488 # this MUST be the last thing before OUTPUT_FILES as they do not
2489 # exist until after we build FFMpeg.
2490 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2491 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2492 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2493 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2494 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2495 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2496 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2500 DISABLE_PVR_ADDON_CONFIG=1
2501 if [[ -f "pvr-addons/Makefile.am" ]]; then
2502 final_message="$final_message\n PVR add-ons:\t\tYes"
2504 DISABLE_PVR_ADDON_CONFIG=0
2506 final_message="$final_message\n PVR add-ons:\t\tNo"
2509 OUTPUT_FILES="Makefile \
2511 addons/skin.confluence/media/Makefile \
2513 xbmc/cdrip/Makefile \
2514 xbmc/cores/Makefile \
2515 xbmc/cores/VideoRenderers/Makefile \
2516 xbmc/cores/dvdplayer/Makefile \
2517 lib/libdvd/Makefile \
2518 xbmc/cores/DllLoader/Makefile \
2519 xbmc/cores/DllLoader/exports/Makefile \
2520 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2521 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2522 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2523 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2524 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2525 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2526 xbmc/cores/AudioEngine/Makefile \
2527 xbmc/cores/paplayer/Makefile \
2528 xbmc/cores/omxplayer/Makefile \
2529 lib/timidity/Makefile \
2531 lib/nosefart/Makefile \
2532 lib/libsidplay2/Makefile \
2533 lib/vgmstream/Makefile \
2534 lib/snesapu/SNES/SNESAPU/Makefile \
2535 lib/stsound/StSoundLibrary/Makefile \
2536 xbmc/cores/playercorefactory/Makefile \
2537 xbmc/music/karaoke/Makefile \
2539 xbmc/guilib/Makefile \
2540 xbmc/input/linux/Makefile \
2541 xbmc/interfaces/Makefile \
2542 xbmc/network/Makefile \
2543 xbmc/network/upnp/Makefile \
2544 lib/libRTV/Makefile \
2545 lib/libexif/Makefile \
2546 lib/libXDAAP/Makefile \
2547 lib/cmyth/Makefile \
2548 lib/libhdhomerun/Makefile \
2549 lib/libsquish/Makefile \
2550 lib/cximage-6.0/Makefile \
2551 lib/libUPnP/Makefile \
2552 xbmc/DllPaths_generated.h \
2553 xbmc/DllPaths_generated_android.h \
2554 xbmc/freebsd/Makefile \
2555 xbmc/linux/Makefile \
2556 xbmc/filesystem/Makefile \
2557 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2558 xbmc/visualizations/XBMCProjectM/Makefile \
2559 xbmc/visualizations/Goom/Makefile \
2560 xbmc/visualizations/OpenGLSpectrum/Makefile \
2561 xbmc/visualizations/fishBMC/Makefile \
2562 xbmc/visualizations/WaveForm/Makefile \
2563 xbmc/windowing/Makefile \
2564 xbmc/windowing/egl/Makefile \
2565 lib/addons/library.xbmc.addon/Makefile \
2566 lib/addons/library.xbmc.codec/Makefile \
2567 lib/addons/library.xbmc.gui/Makefile \
2568 lib/addons/library.xbmc.pvr/Makefile \
2569 xbmc/visualizations/EGLHelpers/Makefile \
2570 tools/Linux/xbmc.sh \
2571 tools/Linux/xbmc-standalone.sh \
2572 tools/TexturePacker/Makefile \
2573 tools/EventClients/Clients/OSXRemote/Makefile \
2574 xbmc/peripherals/bus/Makefile \
2575 xbmc/peripherals/devices/Makefile \
2576 xbmc/android/activity/Makefile \
2577 xbmc/android/loader/Makefile \
2578 xbmc/android/jni/Makefile \
2579 xbmc/utils/Makefile \
2580 xbmc/main/Makefile \
2581 project/cmake/xbmc-config.cmake"
2583 if test "$use_wayland" = "yes"; then
2584 OUTPUT_FILES="$OUTPUT_FILES xbmc/windowing/tests/wayland/Makefile"
2587 if test "$use_skin_touched" = "yes"; then
2588 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2591 if test "$use_codec_libstagefright" = "yes"; then
2592 OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile"
2595 OUTPUT_FILES="$OUTPUT_FILES \
2596 xbmc/interfaces/python/Makefile \
2597 xbmc/interfaces/python/test/Makefile"
2599 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2600 # .dummy.am does nothing.
2601 AC_CONFIG_FILES([.dummy])
2603 AC_CONFIG_FILES([${OUTPUT_FILES}])
2604 OUTPUT_FILES="$OUTPUT_FILES \
2610 AC_SUBST(CXX_FOR_BUILD)
2611 AC_SUBST(CC_FOR_BUILD)
2612 AC_SUBST(CFLAGS_FOR_BUILD)
2613 AC_SUBST(CXXFLAGS_FOR_BUILD)
2614 AC_SUBST(LDFLAGS_FOR_BUILD)
2615 AC_SUBST(SDL_DEFINES)
2616 AC_SUBST(BUILD_DVDCSS)
2617 AC_SUBST(DISABLE_WAVEFORM)
2618 AC_SUBST(DISABLE_SPECTRUM)
2619 AC_SUBST(DISABLE_GOOM)
2620 AC_SUBST(DISABLE_RSXS)
2621 AC_SUBST(DISABLE_FISHBMC)
2622 AC_SUBST(DISABLE_PROJECTM)
2623 AC_SUBST(FFMPEG_LIBDIR)
2624 AC_SUBST(USE_STATIC_FFMPEG)
2625 AC_SUBST(GNUTLS_ALL_LIBS)
2626 AC_SUBST(VORBISENC_ALL_LIBS)
2627 AC_SUBST(USE_SKIN_TOUCHED)
2628 AC_SUBST(USE_LIBAV_HACKS)
2629 AC_SUBST(PYTHON_VERSION)
2630 AC_SUBST(OUTPUT_FILES)
2631 AC_SUBST(HAVE_XBMC_NONFREE)
2632 AC_SUBST(USE_ASAP_CODEC)
2633 AC_SUBST(LIBCURL_BASENAME)
2634 AC_SUBST(LIBFLAC_BASENAME)
2635 AC_SUBST(LIBVORBISFILE_BASENAME)
2636 AC_SUBST(LIBMODPLUG_BASENAME)
2637 AC_SUBST(LIBOGG_BASENAME)
2638 AC_SUBST(LIBVORBISENC_BASENAME)
2639 AC_SUBST(LIBVORBIS_BASENAME)
2640 AC_SUBST(LIBASS_BASENAME)
2641 AC_SUBST(LIBMEPG2_BASENAME)
2642 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2643 AC_SUBST(USE_OPENGL)
2644 AC_SUBST(USE_OPENGLES)
2647 AC_SUBST(USE_CRYSTALHD)
2648 AC_SUBST(USE_LIBSMBCLIENT)
2649 AC_SUBST(USE_LIBNFS)
2650 AC_SUBST(USE_LIBAFPCLIENT)
2651 AC_SUBST(USE_AIRPLAY)
2652 AC_SUBST(USE_OPENMAX)
2654 AC_SUBST(HAVE_LIBPULSE)
2655 AC_SUBST(USE_XRANDR)
2657 AC_SUBST(USE_TEXTUREPACKER)
2658 AC_SUBST(USE_AIRTUNES)
2659 AC_SUBST(USE_LIBUDEV)
2660 AC_SUBST(USE_LIBUSB)
2661 AC_SUBST(USE_LIBCEC)
2663 AC_SUBST(USE_WAYLAND)
2664 AC_SUBST(USE_WEB_SERVER)
2666 AC_SUBST(USE_XKBCOMMON)
2667 AC_SUBST(USE_OMXLIB)
2668 AC_SUBST(USE_ANDROID)
2669 AC_SUBST(GTEST_CONFIGURED)
2670 AC_SUBST(USE_DOXYGEN)
2671 AC_SUBST(USE_PVR_ADDONS)
2673 # pushd and popd are not available in other shells besides bash, so implement
2674 # our own pushd/popd functions
2679 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2681 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2684 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2689 if [[ -n "$XB_DIRSTACK" ]]; then
2690 XB_DIRSTACK="${XB_DIRSTACK#* }"
2691 cd "${XB_DIRSTACK%% *}"
2694 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2698 # Function to run the configure scripts in our submodules
2699 # Consists of three paramaters, the path to the submodule, the configure command
2700 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2701 # running the script, anything else if not.
2702 AC_DEFUN([XB_CONFIG_MODULE],[
2703 AC_CONFIG_COMMANDS_POST([
2704 if [[ $3 != "1" ]]; then
2705 if [[ -d $1 ]]; then
2708 if [[ $? -ne 0 ]]; then
2710 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2715 AC_MSG_ERROR([[Submodule $1 does not exist]])
2718 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2723 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2727 CFLAGS="$CFLAGS $DROID_DVDLIB_SEEK64" \
2728 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2729 --host=$host_alias \
2730 --build=$build_alias \
2731 --target=$target_alias \
2735 ], [$SKIP_CONFIG_DVDCSS])
2737 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2739 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src $DROID_DVDLIB_SEEK64" \
2740 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2741 --host=$host_alias \
2742 --build=$build_alias \
2743 --target=$target_alias \
2749 mkdir -p `pwd`/../includes/dvdread
2750 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2751 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2754 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2756 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes $DROID_DVDLIB_SEEK64" \
2757 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2758 --with-dvdread-config="`pwd`/../dvdread-config" \
2759 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2760 --host=$host_alias \
2761 --build=$build_alias \
2762 --target=$target_alias \
2768 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2770 rm -f CMakeCache.txt && \
2771 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2772 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2773 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2774 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2775 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2776 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2777 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2778 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2779 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2780 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2781 if test "$host_vendor" = "apple" ; then
2782 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2783 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2784 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2785 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2788 ], [$DISABLE_PROJECTM])
2790 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2793 CXXFLAGS="$CXXFLAGS" \
2794 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2795 --host=$host_alias \
2796 --build=$build_alias \
2797 --target=$target_alias \
2803 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2804 if test "$host_vendor" = "apple"; then
2805 # clang treats inlines different
2808 TEMPCFLAGS="$CFLAGS";;
2810 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";;
2813 TEMPCFLAGS="$CFLAGS";
2818 CFLAGS="$TEMPCFLAGS" \
2819 CXXFLAGS="$CXXFLAGS" \
2820 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2821 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2822 --host=$host_alias \
2823 --build=$build_alias \
2824 --target=$target_alias \
2825 --without-xscreensaver \
2828 --disable-fieldlines \
2832 --disable-hyperspace \
2835 if echo "$ARCH" | grep -q freebsd ; then
2836 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2840 XB_CONFIG_MODULE([lib/cpluff], [
2841 ./configure --disable-nls \
2842 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2843 --host=$host_alias \
2844 --build=$build_alias \
2845 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2846 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2849 XB_CONFIG_MODULE([lib/gtest], [
2854 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2855 --host=$host_alias \
2856 --build=$build_alias \
2857 --target=$target_alias \
2861 ], [$SKIP_CONFIG_GTEST])
2863 XB_CONFIG_MODULE([pvr-addons], [
2865 --prefix="${prefix}" \
2866 --host=$host_alias \
2867 --build=$build_alias \
2868 --target=$target_alias \
2872 CXXFLAGS="$CXXFLAGS"
2873 ], [$DISABLE_PVR_ADDON_CONFIG])
2877 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2878 echo -e "$final_message\n"