2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [13.9.1], [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 no)])],
535 [configure_gtest=$enableval],
536 [configure_gtest=no])
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([mad.h],, AC_MSG_ERROR($missing_library))
1040 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1041 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
1042 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1043 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1044 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1045 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1046 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1048 # we need to check for the header because if it exists we set the openssl
1049 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1050 # in MT manner correctly.
1051 AC_MSG_CHECKING([for CRYPTO_set_locking_callback(0)])
1052 AC_TRY_LINK([],[CRYPTO_set_locking_callback(0);],
1053 [have_curl_static=yes],
1054 [have_curl_static=no])
1055 AC_MSG_RESULT($have_curl_static)
1056 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1057 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1058 if test "$gcrypt_headers_available" = "yes"; then
1059 # if we have the headers then we must have the lib
1060 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1061 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1062 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1064 PKG_CHECK_MODULES([GNUTLS], [gnutls], [have_gnutls=yes];AC_DEFINE([HAVE_GNUTLS], [1], [Define if we have gnutls]), AC_MSG_WARN("gnutls not found"))
1066 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1067 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1068 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1069 if echo "$ARCH" | grep -q freebsd; then
1070 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1071 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1072 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1073 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1075 if test "$target_platform" != "target_android" ; then
1076 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1077 AC_CHECK_LIB([pthread], [pthread_setname_np],
1078 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1079 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1082 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1083 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1084 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1085 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1086 if test "$use_mysql" = "yes"; then
1087 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1089 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1090 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1091 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1092 if test "$target_platform" = "target_android" ; then
1093 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1094 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1095 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1097 PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
1098 [INCLUDES="$INCLUDES $LIBXML_CFLAGS"; LIBS="$LIBS $LIBXML_LIBS"],
1099 AC_MSG_ERROR($missing_library))
1100 PKG_CHECK_MODULES([LIBXSLT], [libxslt],
1101 [INCLUDES="$INCLUDES $LIBXSLT_CFLAGS"; LIBS="$LIBS $LIBXSLT_LIBS"],
1102 AC_MSG_ERROR($missing_library))
1103 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1104 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1105 AC_MSG_ERROR($missing_library))
1106 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1107 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1108 AC_MSG_ERROR($missing_library))
1109 PKG_CHECK_MODULES([PNG], [libpng],
1110 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1111 AC_MSG_ERROR($missing_library))
1112 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1113 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1114 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1115 AC_MSG_ERROR($missing_library))
1116 PKG_CHECK_MODULES([PCRE], [libpcre],
1117 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1118 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1119 AC_MSG_ERROR($missing_library))
1120 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1121 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
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([MAD], [mad])
1203 XB_FIND_SONAME([OGG], [ogg])
1204 XB_FIND_SONAME([CURL], [curl])
1205 XB_FIND_SONAME([FLAC], [FLAC])
1206 XB_FIND_SONAME([VORBIS], [vorbis])
1207 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1208 XB_FIND_SONAME([MODPLUG], [modplug])
1209 XB_FIND_SONAME([ASS], [ass])
1210 XB_FIND_SONAME([MPEG2], [mpeg2])
1213 if test "x$use_libmp3lame" != "xno"; then
1214 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1215 if test "x$use_libmp3lame" != "xno"; then
1216 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1219 AS_CASE([x$use_libmp3lame],
1221 AC_SUBST([HAVE_LIBMP3LAME], 0)
1224 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1225 AC_SUBST([HAVE_LIBMP3LAME], 1)
1228 if test "x$use_libvorbisenc" != "xno"; then
1229 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1230 if test "x$use_libvorbisenc" != "xno"; then
1231 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1234 AS_CASE([x$use_libvorbisenc],
1236 AC_SUBST([HAVE_LIBVORBISENC], 0)
1238 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1239 AC_SUBST([HAVE_LIBVORBISENC], 1)
1244 if test "$use_webserver" = "yes"; then
1245 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1249 if test "$use_optical_drive" = "yes"; then
1250 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1254 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1255 PKG_CHECK_MODULES([ALSA], [alsa],
1256 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1257 AC_MSG_ERROR($missing_library))
1258 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1261 AC_MSG_RESULT($alsa_disabled)
1265 if test "x$use_pulse" != "xno"; then
1266 if test "$host_vendor" = "apple" ; then
1267 if test "x$use_pulse" = "xyes"; then
1268 AC_MSG_ERROR($pulse_disabled)
1271 AC_MSG_RESULT($pulse_disabled)
1275 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0],
1276 [INCLUDES="$INCLUDES $PULSE_CFLAGS"; LIBS="$LIBS $PULSE_LIBS"; USE_PULSE=1;
1277 HAVE_LIBPULSE=1; AC_DEFINE([HAVE_LIBPULSE],[1],[Pulse audio enabled])],
1278 [pulse_found="no"; USE_PULSE=0; HAVE_LIBPULSE=0])
1280 if test "$pulse_found" = "no"; then
1281 if test "x$use_pulse" = "xyes"; then
1282 AC_MSG_ERROR($pulse_not_found)
1284 AC_MSG_RESULT($pulse_disabled)
1289 AC_MSG_RESULT($pulse_disabled)
1294 if test "$host_vendor" = "apple" ; then
1296 AC_MSG_RESULT($hal_disabled)
1298 if test "$use_hal" = "yes"; then
1299 PKG_CHECK_MODULES([HAL], [hal],
1300 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1301 use_hal=no;AC_MSG_RESULT($hal_not_found))
1302 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1303 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1304 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1306 AC_MSG_RESULT($hal_disabled)
1308 if test "$use_hal" = "yes"; then
1309 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1314 if test "$host_vendor" = "apple" ; then
1316 AC_MSG_RESULT($avahi_disabled)
1318 if test "$use_avahi" = "yes"; then
1319 AC_CHECK_LIB([avahi-common], [main],,
1320 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1321 if test "$use_avahi" = "yes"; then
1322 #either both libs or none
1323 AC_CHECK_LIB([avahi-client], [main],,
1324 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1327 AC_MSG_RESULT($avahi_disabled)
1332 if test "$use_mdnsembedded" != "no"; then
1333 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1334 [if test "$use_mdnsembedded" = "yes"; then
1335 AC_MSG_ERROR($mdnsembedded_not_found)
1337 elif test "$use_mdnsembedded" != "no"; then
1338 AC_MSG_NOTICE($mdnsembedded_not_found)
1339 use_mdnsembedded="no"
1343 if test $use_mdnsembedded != "no"; then
1347 AC_MSG_RESULT($mdnsembedded_disabled)
1350 AC_SUBST(USE_MDNSEMBEDDED)
1353 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1354 AC_MSG_NOTICE($x11_enabled)
1355 PKG_CHECK_MODULES([X11], [x11],
1356 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1357 AC_MSG_ERROR($missing_library))
1358 PKG_CHECK_MODULES([XEXT], [xext],
1359 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1360 AC_MSG_ERROR($missing_library))
1361 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1363 AC_MSG_RESULT($x11_disabled)
1367 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1369 AC_MSG_RESULT($xrandr_disabled)
1371 if test "$use_xrandr" = "yes" ; then
1372 AC_CHECK_LIB([Xrandr], [main],,
1373 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1375 AC_MSG_RESULT($xrandr_disabled)
1380 if test "$use_waveform" = "yes"; then
1381 AC_MSG_NOTICE($waveform_enabled)
1384 AC_MSG_NOTICE($waveform_disabled)
1389 if test "$use_spectrum" = "yes"; then
1390 AC_MSG_NOTICE($spectrum_enabled)
1393 AC_MSG_NOTICE($spectrum_disabled)
1398 if test "$host_vendor" = "apple" ; then
1399 AC_MSG_NOTICE($goom_disabled)
1402 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1403 AC_MSG_NOTICE($goom_enabled)
1406 AC_MSG_NOTICE($goom_disabled)
1412 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1413 AC_MSG_NOTICE($rsxs_disabled)
1416 AC_MSG_NOTICE($rsxs_enabled)
1418 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1419 if test "$host_vendor" != "apple" ; then
1420 PKG_CHECK_MODULES([XT], [xt],
1421 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1422 AC_MSG_ERROR($missing_library))
1423 PKG_CHECK_MODULES([XMU], [xmu],
1424 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1425 AC_MSG_ERROR($missing_library))
1430 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1431 AC_MSG_NOTICE($fishbmc_disabled)
1435 AC_MSG_NOTICE($fishbmc_enabled)
1440 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1441 AC_MSG_NOTICE($projectm_disabled)
1445 AC_MSG_NOTICE($projectm_enabled)
1451 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1452 use_skin_touched=yes
1454 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1460 if test "x$use_ssh" = "xno"; then
1461 AC_MSG_NOTICE($ssh_disabled)
1464 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1465 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1469 if test "x$have_curl_static" = "xyes"; then
1470 AC_DEFINE([HAS_CURL_STATIC], [1], [Whether OpenSSL inside libcurl is static.])
1474 if test "$use_librtmp" != "no"; then
1475 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1476 [if test "$use_librtmp" = "yes"; then
1477 AC_MSG_ERROR($librtmp_not_found)
1478 elif test "$use_librtmp" != "no"; then
1479 AC_MSG_NOTICE($librtmp_not_found)
1483 if test "$use_librtmp" != "no"; then
1484 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1486 if test "$use_librtmp" != "no"; then
1487 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1490 AC_MSG_NOTICE($librtmp_disabled)
1494 if test "x$use_samba" != "xno"; then
1495 PKG_CHECK_MODULES([SAMBA], [smbclient],
1496 [INCLUDES="$INCLUDES $SAMBA_CFLAGS"; LIBS="$LIBS $SAMBA_LIBS"],
1497 [AC_CHECK_LIB([smbclient], [main],,
1498 use_samba=no;AC_MSG_ERROR($missing_library))
1502 AC_MSG_RESULT($samba_disabled)
1506 if test "x$use_samba" != "xno"; then
1507 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1512 if test "$use_libnfs" != "no"; then
1513 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1514 [if test "$use_libnfs" = "yes"; then
1515 AC_MSG_ERROR($libnfs_not_found)
1517 elif test "$use_libnfs" != "no"; then
1518 AC_MSG_NOTICE($libnfs_not_found)
1523 if test "$use_libnfs" != "no"; then
1524 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1526 if test "$use_libnfs" != "no"; then
1527 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1532 AC_MSG_NOTICE($libnfs_disabled)
1537 if test "x$use_libafpclient" != "xno"; then
1538 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1539 [if test "x$use_libafpclient" = "xyes"; then
1540 AC_MSG_ERROR($libafpclient_not_found)
1541 elif test "x$use_libafpclient" != "xno"; then
1542 AC_MSG_NOTICE($libafpclient_not_found)
1543 use_libafpclient="no"
1546 if test "x$use_libafpclient" != "xno"; then
1547 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1548 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1552 AC_MSG_NOTICE($libafpclient_disabled)
1555 # libplist for airplay feature
1557 if test "$use_airplay" != "no"; then
1558 AC_CHECK_HEADER([plist/plist.h],,
1559 [if test "$use_airplay" = "yes"; then
1560 AC_MSG_ERROR($libplist_not_found)
1561 elif test "$use_airplay" != "no"; then
1562 AC_MSG_NOTICE($libplist_not_found)
1567 if test "$use_airplay" != "no"; then
1568 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1570 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1574 # libshairplay for AirTunes (prefered lib)
1576 if test "x$use_airtunes" != "xno"; then
1577 AC_CHECK_HEADERS([shairplay/raop.h],USE_AIRTUNES=1,
1578 [AC_MSG_NOTICE($libshairplay_not_found)
1581 if test "x$USE_AIRTUNES" != "x0"; then
1582 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [USE_AIRTUNES])
1584 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1585 [[#include <shairplay/raop.h>]])
1586 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1589 #libshairport - as a fallback for AirTunes
1590 if test "x$USE_AIRTUNES" == "x0"; then
1591 AC_CHECK_HEADERS([shairport/shairport.h],USE_AIRTUNES=1,
1592 [AC_MSG_NOTICE($libshairport_not_found)
1595 if test "x$USE_AIRTUNES" != "x0"; then
1596 XB_FIND_SONAME([SHAIRPORT], [shairport], [USE_AIRTUNES])
1597 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1598 [[#include <shairport/shairport.h>]])
1599 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1603 if test "x$USE_AIRTUNES" == "x0"; then
1604 if test "x$use_airtunes" == "xyes"; then
1605 AC_MSG_ERROR("No airtunes library could be found. (libshairport/libshairplay)")
1613 if test "$host_vendor" = "apple" ; then
1615 AC_MSG_NOTICE($libudev_disabled)
1617 if test "$use_libudev" = "auto"; then
1618 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1619 elif test "$use_libudev" = "yes" ; then
1620 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1622 AC_MSG_NOTICE($libudev_disabled)
1625 if test "x$use_libudev" != "xno"; then
1626 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1627 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1634 # if libudev is available, we don't need libusb
1635 if test "x$use_libudev" != "xno"; then
1637 AC_MSG_NOTICE($libusb_disabled_udev_found)
1639 if test "$host_vendor" = "apple" ; then
1641 AC_MSG_NOTICE($libusb_disabled)
1643 if echo "$ARCH" | grep -q freebsd ; then
1644 AC_CHECK_LIB([usb],[main],
1645 [use_libusb="yes";USB_LIBS="-lusb"],
1646 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1647 elif test "$use_libusb" = "auto"; then
1648 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1649 elif test "$use_libusb" = "yes"; then
1650 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1652 AC_MSG_NOTICE($libusb_disabled)
1655 if test "x$use_libusb" != "xno"; then
1656 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1657 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1664 if test "x$use_libcec" != "xno"; then
1665 # libcec is dyloaded, so we need to check for its headers and link any depends.
1666 if test "x$use_libcec" != "xno"; then
1667 if test "x$use_libcec" != "xauto"; then
1668 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1670 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1673 if test "x$use_libcec" != "xno"; then
1674 INCLUDES="$INCLUDES $CEC_CFLAGS"
1675 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1676 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1677 AC_MSG_NOTICE($libcec_enabled)
1680 AC_MSG_NOTICE($libcec_disabled)
1685 AC_MSG_NOTICE($libcec_disabled)
1689 if test "$use_libcap" != "no"; then
1690 AC_CHECK_HEADERS([sys/capability.h],,
1691 [if test "$use_libcap" = "yes"; then
1692 AC_MSG_ERROR($libcap_not_found)
1693 elif test "$use_libcap" != "no"; then
1694 AC_MSG_NOTICE($libcap_not_found)
1698 if test "$use_libcap" != "no"; then
1699 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1701 if test "$use_libcap" != "no"; then
1702 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1705 AC_MSG_NOTICE($libcap_disabled)
1709 FFMPEG_LIBNAMES="libavcodec >= 55.39.101
1710 libavfilter >= 3.90.100
1711 libavformat >= 55.19.104
1712 libavutil >= 52.48.101
1713 libpostproc >= 52.3.100
1714 libswscale >= 2.5.101
1715 libswresample >= 0.17.104"
1717 ffmpeg_build="${abs_top_srcdir}/tools/depends/target/ffmpeg"
1718 FFMPEG_VER_SHA=$(grep "VERSION=" ${ffmpeg_build}/FFMPEG-VERSION | sed 's/VERSION=//g')
1719 AC_DEFINE_UNQUOTED([FFMPEG_VER_SHA], ["$FFMPEG_VER_SHA"], [FFmpeg version hash])
1721 if test "$with_ffmpeg" = "shared"; then
1722 # allow linking against shared ffmpeg libs
1723 # a proper version must be installed, we won't build ffmpeg
1725 AC_DEFINE([USE_STATIC_FFMPEG], [0], [FFmpeg linked dynamically])
1727 if test "${USE_STATIC_FFMPEG}" = "1"; then
1728 AC_DEFINE([USE_STATIC_FFMPEG], [1], [FFmpeg linked statically])
1729 ff_libs=$(${ECHO} ${FFMPEG_LIBNAMES} | ${AWK} '/lib/{print $1}' ORS=' ')
1730 if test -n "${PKG_CONFIG_SYSROOT_DIR}"; then
1731 # workaround for cross compiling with buildroot on different buildsystem
1732 # Rpi buildroots pkg-config returns static libs with
1733 # PKG_CONFIG_SYSROOT_DIR prefixed, OEs does not
1734 # so lets make sure we always prefix in case PKG_CONFIG_SYSROOT_DIR is defined
1735 pkg_cfg_prefix="${PKG_CONFIG_SYSROOT_DIR}"
1736 elif test "${target_platform}" = "target_raspberry_pi" && test "${USE_BUILDROOT}" = "1"; then
1737 pkg_cfg_prefix=${SYSROOT}
1740 if test "$cross_compiling" != "yes"; then
1741 if test "$use_debug" != "yes"; then
1744 if test "$use_optimizations" != "yes"; then
1745 FFMPEG_OPTS="${FFMPEG_OPTS} --disable-optimizations"
1748 if test "$with_ffmpeg" = "auto" || test "$with_ffmpeg" = "yes"; then
1749 SAVE_INCLUDES="$INCLUDES"
1751 # check for system installed ffmpeg. We require minimum versions.
1752 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1753 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1754 [FFMPEG_FOUND="false"])
1756 if test "${USE_STATIC_FFMPEG}" = "1" && test "$FFMPEG_FOUND" = "true"; then
1757 # we need to check if static libs are available
1758 FFMPEG_LIBDIR=$(${PKG_CONFIG} --static --variable=libdir libavcodec)
1759 for ff_lib in ${ff_libs}; do
1760 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1761 AC_MSG_NOTICE("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1762 FFMPEG_FOUND="false"
1763 # restore includes and libs, the ones we found are invalid
1764 INCLUDES="$SAVE_INCLUDES"
1766 unset FFMPEG_LIBS FFMPEG_CFLAGS FFMPEG_LIBDIR
1770 if test "$with_ffmpeg" = "yes" || test "$FFMPEG_FOUND" = "false"; then
1771 # ffmpeg not found with pkg-config, lets install it
1772 AC_MSG_NOTICE("Installing FFmpeg")
1773 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1774 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1777 elif test "$with_ffmpeg" = "force"; then
1778 # always build our ffmpeg
1779 AC_MSG_NOTICE("FFmpeg installation forced by user - installing our version")
1780 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1781 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1783 elif test "$with_ffmpeg" != "no"; then
1784 # user passed --with-ffmpeg=/some/path, lets use it
1785 AC_MSG_NOTICE("using ffmpeg: ${with_ffmpeg}")
1786 export PKG_CONFIG_PATH="${with_ffmpeg}/lib/pkgconfig:$PKG_CONFIG_PATH"
1791 if test "$FFMPEG_FOUND" != "true"; then
1792 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1793 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1794 [AC_MSG_ERROR("ffmpeg not found")])
1797 if test "${USE_STATIC_FFMPEG}" = "1"; then
1798 # get the libdir for static linking
1799 FFMPEG_LIBDIR=${pkg_cfg_prefix}$(PKG_CONFIG_SYSROOT_DIR="" ${PKG_CONFIG} --static --variable=libdir libavcodec)
1800 GNUTLS_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors gnutls)
1801 VORBISENC_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors vorbisenc)
1803 # check if static libs are available
1804 for ff_lib in ${ff_libs}; do
1805 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1806 AC_MSG_ERROR("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1808 # filter out libs we link statically
1809 filter=$(${ECHO} ${ff_lib} | ${SED} 's/lib/-l/g')
1810 LIBS=$(${ECHO} ${LIBS} | ${SED} "s/${filter}//g")
1812 LIBS=$(${ECHO} ${LIBS} | ${SED} ':a;N;$!ba;s/\n/ /g')
1815 echo "Checking for SWIG installation"
1816 AC_PATH_PROG(SWIG_EXE, swig, "none")
1817 if test "$SWIG_EXE" = "none"; then
1818 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1819 if test "$SWIG20_EXE" != "none" ; then
1820 SWIG_EXE=$SWIG20_EXE
1823 if test "$SWIG_EXE" = "none"; then
1824 AC_MSG_ERROR($missing_program)
1826 final_message="$final_message\n SWIG Available:\tYes"
1828 echo "Checking for a jre installation"
1829 AC_PATH_PROG(JAVA_EXE, java, "none")
1830 if test "$JAVA_EXE" = "none"; then
1831 AC_MSG_ERROR($missing_program)
1833 final_message="$final_message\n JRE Available:\tYes"
1835 echo "Checking for doxygen installation"
1836 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1837 if test "$DOXYGEN_EXE" = "none"; then
1838 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1839 final_message="$final_message\n Doxygen Available:\tNo"
1842 final_message="$final_message\n Doxygen Available:\tYes"
1847 if test "x$use_vdpau" != "xno"; then
1848 if test "$host_vendor" = "apple" ; then
1849 if test "x$use_vdpau" = "xyes"; then
1850 AC_MSG_ERROR([VDPAU not supported on this platform])
1853 AC_MSG_NOTICE($vdpau_disabled)
1858 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1859 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1860 [if test "x$use_vdpau" = "xyes"; then
1862 AC_MSG_ERROR([$vdpau_not_found])
1866 AC_MSG_RESULT($vdpau_not_found)
1871 AC_MSG_NOTICE($vdpau_disabled)
1875 if test "x$use_vaapi" != "xno"; then
1876 if test "$host_vendor" = "apple" ; then
1877 if test "x$use_vaapi" = "xyes"; then
1878 AC_MSG_ERROR([VAAPI not supported on this platform])
1881 AC_MSG_NOTICE($vaapi_disabled)
1885 initial_val=$use_vaapi
1886 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1887 if test "x$use_vaapi" != "xno"; then
1888 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1891 if test "x$use_vaapi" = "xno"; then
1892 if test "x$initial_val" = "xyes"; then
1893 AC_MSG_ERROR($vaapi_not_found)
1895 AC_MSG_RESULT($vaapi_not_found)
1899 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1904 AC_MSG_NOTICE($vaapi_disabled)
1909 if test "x$use_crystalhd" != "xno"; then
1910 SAVE_CFLAGS="$CFLAGS"
1911 CFLAGS="-D__LINUX_USER__"
1912 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1913 [ if test "x$use_crystalhd" = "xyes"; then
1914 AC_MSG_ERROR($crystalhd_not_found)
1917 AC_MSG_RESULT($crystalhd_not_found)
1921 CFLAGS="$SAVE_CFLAGS"
1922 if test "$host_vendor" != "apple"; then
1923 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1925 if test "x$use_crystalhd" != "xno"; then
1926 SAVE_CFLAGS="$CFLAGS"
1927 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1928 # check for new crystalhd lib
1930 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1931 #include <libcrystalhd/bc_dts_defs.h>
1932 PBC_INFO_CRYSTAL bCrystalInfo;])],
1933 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1934 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1935 CFLAGS="$SAVE_CFLAGS"
1939 AC_MSG_NOTICE($crystalhd_disabled)
1944 if test "x$use_vtbdecoder" != "xno"; then
1945 if test "$host_vendor" = "apple" ; then
1946 HAVE_VIDEOTOOLBOXDECODER=1
1947 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1948 AC_MSG_NOTICE($vtbdecoder_enabled)
1950 if test "x$use_vtbdecoder" = "xyes"; then
1951 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1954 AC_MSG_NOTICE($vtbdecoder_disabled)
1958 AC_MSG_NOTICE($vtbdecoder_disabled)
1962 if test "$host_vendor" = "apple" ; then
1965 AC_MSG_NOTICE($openmax_disabled)
1966 elif test "$target_platform" = "target_raspberry_pi"; then
1969 AC_MSG_NOTICE($openmax_disabled)
1971 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1972 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1973 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1974 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1975 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1976 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1977 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1978 AC_MSG_ERROR($openmax_not_found))
1980 AC_MSG_NOTICE($openmax_disabled)
1986 # yajl version check (yajl_version.h was added in yajl 2.0)
1987 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1988 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1991 # additional internal players
1992 case $add_players in
1994 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1998 # additional internal codecs
1999 # remember to convert commas to spaces
2000 for codecs in `echo $add_codecs | sed 's/,/ /g'`; do
2003 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
2004 XB_ADD_CODEC([LIBAMCODEC], [amcodec], [$codecs])
2007 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright], [$codecs])
2013 # platform specific bin utilities
2014 if test "$build_vendor" != "apple" ; then
2015 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
2016 if test "$HAVE_GAWK" = "no" ; then
2017 AC_MSG_ERROR($missing_program)
2021 if test "$use_arch" != "arm" ; then
2022 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
2023 if test "$HAVE_CMAKE" = "no" ; then
2024 AC_MSG_ERROR($missing_program)
2028 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
2029 if test "$HAVE_GPERF" = "no" ; then
2030 AC_MSG_ERROR($missing_program)
2033 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
2034 if test "$HAVE_UNZIP" = "no" ; then
2035 AC_MSG_ERROR($missing_program)
2038 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
2039 if test "$HAVE_ZIP" = "no" ; then
2040 AC_MSG_ERROR($missing_program)
2043 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
2044 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
2045 if test "$HAVE_NASM" = "no" ; then
2046 AC_MSG_ERROR($missing_program)
2050 # Checks for header files.
2054 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
2055 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
2056 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
2057 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
2058 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
2060 # Checks for typedefs, structures, and compiler characteristics.
2076 AC_CHECK_MEMBERS([struct stat.st_rdev])
2085 if test "$cross_compiling" = "yes"; then
2086 final_message="$final_message\n Crosscomp.:\tYes"
2087 if [[ -d "$NATIVE_ROOT" ]]; then
2088 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2089 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2090 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
2091 if test "$host_vendor" != "apple" ; then
2092 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
2094 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
2097 final_message="$final_message\n Crosscomp.:\tNo"
2100 final_message="$final_message\n target ARCH:\t$use_arch"
2101 final_message="$final_message\n target CPU:\t$use_cpu"
2103 if test "$use_gles" = "yes"; then
2104 final_message="$final_message\n OpenGLES:\tYes"
2109 if test "$use_gl" = "yes"; then
2110 final_message="$final_message\n OpenGL:\tYes"
2113 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2114 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2119 if test "$use_alsa" = "yes"; then
2121 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2122 final_message="$final_message\n ALSA:\t\tYes"
2125 final_message="$final_message\n ALSA:\t\tNo"
2128 if test "$use_dbus" = "yes"; then
2129 final_message="$final_message\n DBUS:\t\tYes"
2131 final_message="$final_message\n DBUS:\t\tNo"
2134 if test "x$use_vdpau" != "xno"; then
2135 final_message="$final_message\n VDPAU:\tYes"
2137 final_message="$final_message\n VDPAU:\tNo"
2140 if test "x$use_vaapi" != "xno"; then
2141 final_message="$final_message\n VAAPI:\tYes"
2143 final_message="$final_message\n VAAPI:\tNo"
2146 if test "x$use_crystalhd" != "xno"; then
2147 final_message="$final_message\n CrystalHD:\tYes"
2149 final_message="$final_message\n CrystalHD:\tNo"
2152 if test "x$use_vtbdecoder" != "xno"; then
2153 final_message="$final_message\n VTBDecoder:\tYes"
2155 final_message="$final_message\n VTBDecoder:\tNo"
2158 if test "$use_openmax" != "no"; then
2159 final_message="$final_message\n OpenMax:\tYes"
2161 final_message="$final_message\n OpenMax:\tNo"
2164 if test "$use_joystick" = "yes"; then
2165 final_message="$final_message\n Joystick:\tYes"
2166 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2168 final_message="$final_message\n Joystick:\tNo"
2171 if test "$use_xrandr" = "yes"; then
2172 final_message="$final_message\n XRandR:\tYes"
2175 final_message="$final_message\n XRandR:\tNo"
2179 if test "$use_waveform" = "yes"; then
2180 final_message="$final_message\n Waveform:\tYes"
2182 final_message="$final_message\n Waveform:\tNo"
2185 if test "$use_spectrum" = "yes"; then
2186 final_message="$final_message\n Spectrum:\tYes"
2188 final_message="$final_message\n Spectrum:\tNo"
2191 if test "$use_goom" = "yes"; then
2192 final_message="$final_message\n GOOM:\t\tYes"
2194 final_message="$final_message\n GOOM:\t\tNo"
2197 if test "$use_rsxs" = "yes"; then
2198 final_message="$final_message\n RSXS:\t\tYes"
2200 final_message="$final_message\n RSXS:\t\tNo"
2203 if test "$use_fishbmc" = "yes"; then
2204 final_message="$final_message\n FishBMC:\tYes"
2206 final_message="$final_message\n FishBMC:\tNo"
2209 if test "$use_projectm" = "yes"; then
2210 final_message="$final_message\n ProjectM:\tYes"
2212 final_message="$final_message\n ProjectM:\tNo"
2215 if test "$use_skin_touched" = "yes"; then
2216 final_message="$final_message\n Skin Touched:\tYes"
2218 final_message="$final_message\n Skin Touched:\tNo"
2221 if test "$use_x11" = "yes"; then
2222 final_message="$final_message\n X11:\t\tYes"
2224 final_message="$final_message\n X11:\t\tNo"
2227 if test "$use_wayland" = "yes"; then
2228 final_message="$final_message\n Wayland:\tYes"
2232 final_message="$final_message\n Wayland:\tNo"
2235 if test "$use_libbluray" = "yes"; then
2236 final_message="$final_message\n Bluray:\tYes"
2238 final_message="$final_message\n Bluray:\tNo"
2241 if test "x$use_texturepacker" != "xno"; then
2242 final_message="$final_message\n TexturePacker:Yes"
2245 final_message="$final_message\n TexturePacker:No"
2249 if test "$use_mid" = "yes"; then
2250 final_message="$final_message\n MID Support:\tYes"
2251 SDL_DEFINES="$SDL_DEFINES -DMID"
2253 final_message="$final_message\n MID Support:\tNo"
2258 if test "x$use_ccache" != "xno"; then
2259 AC_PATH_PROG(CCACHE,ccache,none)
2260 if test "$ac_cv_path_CCACHE" = "none"; then
2261 if test "x$use_ccache" = "xyes"; then
2262 AC_MSG_ERROR([ccache not found.]);
2264 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2265 final_message="$final_message\n ccache:\tNo"
2268 CC="$ac_cv_path_CCACHE $CC"
2269 CXX="$ac_cv_path_CCACHE $CXX"
2270 AC_MSG_NOTICE(enabling ccache)
2271 final_message="$final_message\n ccache:\tYes"
2274 final_message="$final_message\n ccache:\tNo"
2277 if test "$use_alsa" = "yes"; then
2278 final_message="$final_message\n ALSA Support:\tYes"
2280 final_message="$final_message\n ALSA Support:\tNo"
2283 if test "x$use_pulse" != "xno"; then
2284 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2285 final_message="$final_message\n PulseAudio:\tYes"
2287 XBMC_STANDALONE_SH_PULSE=/dev/null
2288 final_message="$final_message\n PulseAudio:\tNo"
2291 if test "$use_hal" = "yes"; then
2292 final_message="$final_message\n HAL Support:\tYes"
2294 final_message="$final_message\n HAL Support:\tNo"
2298 if test "$use_dvdcss" = "yes"; then
2299 AC_MSG_NOTICE($dvdcss_enabled)
2300 final_message="$final_message\n DVDCSS:\tYes"
2302 SKIP_CONFIG_DVDCSS=0
2303 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2305 AC_MSG_NOTICE($dvdcss_disabled)
2306 final_message="$final_message\n DVDCSS:\tNo"
2308 SKIP_CONFIG_DVDCSS=1
2309 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2311 if test "$host_vendor" = "apple"; then
2312 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2315 # Google Test Framework
2316 if test "$configure_gtest" = "yes"; then
2317 AC_MSG_NOTICE($gtest_enabled)
2318 final_message="$final_message\n Google Test Framework Configured:\tYes"
2322 AC_MSG_NOTICE($gtest_disabled)
2323 final_message="$final_message\n Google Test Framework Configured:\tNo"
2328 if test "$use_avahi" = "yes"; then
2329 final_message="$final_message\n Avahi:\tYes"
2331 final_message="$final_message\n Avahi:\tNo"
2334 if test "$use_mdnsembedded" != "no"; then
2335 final_message="$final_message\n mDNSEmbedded:\tYes"
2337 final_message="$final_message\n mDNSEmbedded:\tNo"
2340 if test "$use_nonfree" = "yes"; then
2341 final_message="$final_message\n Non-free:\tYes"
2343 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2346 final_message="$final_message\n Non-free:\tNo"
2349 if test "$use_asap" = "yes"; then
2350 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2351 if test "$HAVE_GDC" = "no"; then
2352 AC_MSG_ERROR($missing_program);
2354 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2355 if test "$HAVE_FPC" = "no"; then
2356 AC_MSG_ERROR($missing_program);
2359 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2360 final_message="$final_message\n ASAP Codec:\tYes"
2363 final_message="$final_message\n ASAP Codec:\tNo"
2366 if test "$use_mysql" = "yes"; then
2367 final_message="$final_message\n MySQL:\tYes"
2370 final_message="$final_message\n MySQL:\tNo"
2373 if test "$use_webserver" = "yes"; then
2374 final_message="$final_message\n Webserver:\tYes"
2377 final_message="$final_message\n Webserver:\tNo"
2381 if test "$use_libssh" != "no"; then
2382 final_message="$final_message\n libssh support:\tYes"
2384 final_message="$final_message\n libssh support:\tNo"
2387 if test "$use_librtmp" != "no"; then
2388 final_message="$final_message\n libRTMP support:\tYes"
2390 final_message="$final_message\n libRTMP support:\tNo"
2393 if test "x$use_samba" != "xno"; then
2394 final_message="$final_message\n libsmbclient support:\tYes"
2396 final_message="$final_message\n libsmbclient support:\tNo"
2399 if test "$use_libnfs" != "no"; then
2400 final_message="$final_message\n libnfs client support:Yes"
2402 final_message="$final_message\n libnfs client support:No"
2405 if test "x$use_libafpclient" != "xno"; then
2406 final_message="$final_message\n libafpclient support:\tYes"
2408 final_message="$final_message\n libafpclient support:\tNo"
2411 if test "$use_airplay" != "no"; then
2412 final_message="$final_message\n AirPlay support:\tYes"
2414 final_message="$final_message\n AirPLay support:\tNo"
2417 if test "x$use_airtunes" != "xno"; then
2418 if test "x$USE_LIBSHAIRPLAY" == "x1"; then
2419 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2421 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2424 final_message="$final_message\n AirTunes support:\tNo"
2427 if test "x$use_upnp" != "xno"; then
2428 final_message="$final_message\n UPnP support:\t\tYes"
2430 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2433 final_message="$final_message\n UPnP support:\t\tNo"
2436 if test "$use_optical_drive" = "yes"; then
2437 final_message="$final_message\n Optical drive:\tYes"
2439 final_message="$final_message\n Optical drive:\tNo"
2442 if test "x$use_libudev" != "xno"; then
2443 final_message="$final_message\n libudev support:\tYes"
2445 final_message="$final_message\n libudev support:\tNo"
2448 if test "x$use_libusb" != "xno"; then
2449 final_message="$final_message\n libusb support:\tYes"
2451 final_message="$final_message\n libusb support:\tNo"
2454 if test "x$use_libcec" != "xno"; then
2455 final_message="$final_message\n libcec support:\tYes"
2457 final_message="$final_message\n libcec support:\tNo"
2460 if test "x$use_libmp3lame" != "xno"; then
2461 final_message="$final_message\n libmp3lame support:\tYes"
2463 final_message="$final_message\n libmp3lame support:\tNo"
2466 if test "x$use_libvorbisenc" != "xno"; then
2467 final_message="$final_message\n libvorbisenc support:\tYes"
2469 final_message="$final_message\n libvorbisenc support:\tNo"
2472 if test "x$use_libcap" != "xno"; then
2473 final_message="$final_message\n libcap support:\tYes"
2475 final_message="$final_message\n libcap support:\tNo"
2478 if test "x$add_players" != "xno"; then
2479 final_message="$final_message\n additional players:\tYes, $add_players"
2481 final_message="$final_message\n additional players:\tNo"
2484 if test "x$add_codecs" != "xno"; then
2485 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2487 final_message="$final_message\n additional codecs:\tNo"
2490 ### External libraries messages
2492 if test "$host_vendor" = "apple" ; then
2493 # built internal but referenced as external, we link directly to them.
2494 # this MUST be the last thing before OUTPUT_FILES as they do not
2495 # exist until after we build FFMpeg.
2496 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2497 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2498 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2499 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2500 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2501 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2502 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2506 DISABLE_PVR_ADDON_CONFIG=1
2507 if [[ -f "pvr-addons/Makefile.am" ]]; then
2508 final_message="$final_message\n PVR add-ons:\t\tYes"
2510 DISABLE_PVR_ADDON_CONFIG=0
2512 final_message="$final_message\n PVR add-ons:\t\tNo"
2515 OUTPUT_FILES="Makefile \
2517 addons/skin.confluence/media/Makefile \
2519 xbmc/cdrip/Makefile \
2520 xbmc/cores/Makefile \
2521 xbmc/cores/VideoRenderers/Makefile \
2522 xbmc/cores/dvdplayer/Makefile \
2523 lib/libdvd/Makefile \
2524 xbmc/cores/DllLoader/Makefile \
2525 xbmc/cores/DllLoader/exports/Makefile \
2526 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2527 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2528 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2529 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2530 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2531 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2532 xbmc/cores/AudioEngine/Makefile \
2533 xbmc/cores/paplayer/Makefile \
2534 xbmc/cores/omxplayer/Makefile \
2535 lib/timidity/Makefile \
2537 lib/nosefart/Makefile \
2538 lib/libsidplay2/Makefile \
2539 lib/vgmstream/Makefile \
2540 lib/snesapu/SNES/SNESAPU/Makefile \
2541 lib/stsound/StSoundLibrary/Makefile \
2542 xbmc/cores/playercorefactory/Makefile \
2543 xbmc/music/karaoke/Makefile \
2545 xbmc/guilib/Makefile \
2546 xbmc/input/linux/Makefile \
2547 xbmc/interfaces/Makefile \
2548 xbmc/network/Makefile \
2549 xbmc/network/upnp/Makefile \
2550 lib/libRTV/Makefile \
2551 lib/libexif/Makefile \
2552 lib/libXDAAP/Makefile \
2553 lib/cmyth/Makefile \
2554 lib/libhdhomerun/Makefile \
2555 lib/libsquish/Makefile \
2556 lib/cximage-6.0/Makefile \
2557 lib/libUPnP/Makefile \
2558 xbmc/DllPaths_generated.h \
2559 xbmc/DllPaths_generated_android.h \
2560 xbmc/freebsd/Makefile \
2561 xbmc/linux/Makefile \
2562 xbmc/filesystem/Makefile \
2563 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2564 xbmc/visualizations/XBMCProjectM/Makefile \
2565 xbmc/visualizations/Goom/Makefile \
2566 xbmc/visualizations/OpenGLSpectrum/Makefile \
2567 xbmc/visualizations/fishBMC/Makefile \
2568 xbmc/visualizations/WaveForm/Makefile \
2569 xbmc/windowing/Makefile \
2570 xbmc/windowing/egl/Makefile \
2571 lib/addons/library.xbmc.addon/Makefile \
2572 lib/addons/library.xbmc.codec/Makefile \
2573 lib/addons/library.xbmc.gui/Makefile \
2574 lib/addons/library.xbmc.pvr/Makefile \
2575 xbmc/visualizations/EGLHelpers/Makefile \
2576 tools/Linux/xbmc.sh \
2577 tools/Linux/xbmc-standalone.sh \
2578 tools/TexturePacker/Makefile \
2579 tools/EventClients/Clients/OSXRemote/Makefile \
2580 xbmc/peripherals/bus/Makefile \
2581 xbmc/peripherals/devices/Makefile \
2582 xbmc/android/activity/Makefile \
2583 xbmc/android/loader/Makefile \
2584 xbmc/android/jni/Makefile \
2585 xbmc/utils/Makefile \
2586 xbmc/main/Makefile \
2587 project/cmake/xbmc-config.cmake"
2589 if test "$use_wayland" = "yes"; then
2590 OUTPUT_FILES="$OUTPUT_FILES xbmc/windowing/tests/wayland/Makefile"
2593 if test "$use_skin_touched" = "yes"; then
2594 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2597 if test "$use_codec_libstagefright" = "yes"; then
2598 OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile"
2601 OUTPUT_FILES="$OUTPUT_FILES \
2602 xbmc/interfaces/python/Makefile \
2603 xbmc/interfaces/python/test/Makefile"
2605 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2606 # .dummy.am does nothing.
2607 AC_CONFIG_FILES([.dummy])
2609 AC_CONFIG_FILES([${OUTPUT_FILES}])
2610 OUTPUT_FILES="$OUTPUT_FILES \
2616 AC_SUBST(CXX_FOR_BUILD)
2617 AC_SUBST(CC_FOR_BUILD)
2618 AC_SUBST(CFLAGS_FOR_BUILD)
2619 AC_SUBST(CXXFLAGS_FOR_BUILD)
2620 AC_SUBST(LDFLAGS_FOR_BUILD)
2621 AC_SUBST(SDL_DEFINES)
2622 AC_SUBST(BUILD_DVDCSS)
2623 AC_SUBST(DISABLE_WAVEFORM)
2624 AC_SUBST(DISABLE_SPECTRUM)
2625 AC_SUBST(DISABLE_GOOM)
2626 AC_SUBST(DISABLE_RSXS)
2627 AC_SUBST(DISABLE_FISHBMC)
2628 AC_SUBST(DISABLE_PROJECTM)
2629 AC_SUBST(FFMPEG_LIBDIR)
2630 AC_SUBST(USE_STATIC_FFMPEG)
2631 AC_SUBST(GNUTLS_ALL_LIBS)
2632 AC_SUBST(VORBISENC_ALL_LIBS)
2633 AC_SUBST(USE_SKIN_TOUCHED)
2634 AC_SUBST(USE_LIBAV_HACKS)
2635 AC_SUBST(PYTHON_VERSION)
2636 AC_SUBST(OUTPUT_FILES)
2637 AC_SUBST(HAVE_XBMC_NONFREE)
2638 AC_SUBST(USE_ASAP_CODEC)
2639 AC_SUBST(LIBCURL_BASENAME)
2640 AC_SUBST(LIBFLAC_BASENAME)
2641 AC_SUBST(LIBVORBISFILE_BASENAME)
2642 AC_SUBST(LIBMODPLUG_BASENAME)
2643 AC_SUBST(LIBMAD_BASENAME)
2644 AC_SUBST(LIBOGG_BASENAME)
2645 AC_SUBST(LIBVORBISENC_BASENAME)
2646 AC_SUBST(LIBVORBIS_BASENAME)
2647 AC_SUBST(LIBASS_BASENAME)
2648 AC_SUBST(LIBMEPG2_BASENAME)
2649 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2650 AC_SUBST(USE_OPENGL)
2651 AC_SUBST(USE_OPENGLES)
2654 AC_SUBST(USE_CRYSTALHD)
2655 AC_SUBST(USE_LIBSMBCLIENT)
2656 AC_SUBST(USE_LIBNFS)
2657 AC_SUBST(USE_LIBAFPCLIENT)
2658 AC_SUBST(USE_AIRPLAY)
2659 AC_SUBST(USE_OPENMAX)
2661 AC_SUBST(HAVE_LIBPULSE)
2662 AC_SUBST(USE_XRANDR)
2664 AC_SUBST(USE_TEXTUREPACKER)
2665 AC_SUBST(USE_AIRTUNES)
2666 AC_SUBST(USE_LIBUDEV)
2667 AC_SUBST(USE_LIBUSB)
2668 AC_SUBST(USE_LIBCEC)
2670 AC_SUBST(USE_WAYLAND)
2671 AC_SUBST(USE_WEB_SERVER)
2673 AC_SUBST(USE_XKBCOMMON)
2674 AC_SUBST(USE_OMXLIB)
2675 AC_SUBST(USE_ANDROID)
2676 AC_SUBST(GTEST_CONFIGURED)
2677 AC_SUBST(USE_DOXYGEN)
2678 AC_SUBST(USE_PVR_ADDONS)
2680 # pushd and popd are not available in other shells besides bash, so implement
2681 # our own pushd/popd functions
2686 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2688 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2691 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2696 if [[ -n "$XB_DIRSTACK" ]]; then
2697 XB_DIRSTACK="${XB_DIRSTACK#* }"
2698 cd "${XB_DIRSTACK%% *}"
2701 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2705 # Function to run the configure scripts in our submodules
2706 # Consists of three paramaters, the path to the submodule, the configure command
2707 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2708 # running the script, anything else if not.
2709 AC_DEFUN([XB_CONFIG_MODULE],[
2710 AC_CONFIG_COMMANDS_POST([
2711 if [[ $3 != "1" ]]; then
2712 if [[ -d $1 ]]; then
2715 if [[ $? -ne 0 ]]; then
2717 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2722 AC_MSG_ERROR([[Submodule $1 does not exist]])
2725 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2730 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2734 CFLAGS="$CFLAGS $DROID_DVDLIB_SEEK64" \
2735 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2736 --host=$host_alias \
2737 --build=$build_alias \
2738 --target=$target_alias \
2742 ], [$SKIP_CONFIG_DVDCSS])
2744 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2746 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src $DROID_DVDLIB_SEEK64" \
2747 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2748 --host=$host_alias \
2749 --build=$build_alias \
2750 --target=$target_alias \
2756 mkdir -p `pwd`/../includes/dvdread
2757 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2758 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2761 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2763 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes $DROID_DVDLIB_SEEK64" \
2764 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2765 --with-dvdread-config="`pwd`/../dvdread-config" \
2766 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2767 --host=$host_alias \
2768 --build=$build_alias \
2769 --target=$target_alias \
2775 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2777 rm -f CMakeCache.txt && \
2778 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2779 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2780 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2781 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2782 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2783 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2784 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2785 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2786 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2787 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2788 if test "$host_vendor" = "apple" ; then
2789 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2790 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2791 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2792 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2795 ], [$DISABLE_PROJECTM])
2797 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2800 CXXFLAGS="$CXXFLAGS" \
2801 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2802 --host=$host_alias \
2803 --build=$build_alias \
2804 --target=$target_alias \
2810 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2811 if test "$host_vendor" = "apple"; then
2812 # clang treats inlines different
2815 TEMPCFLAGS="$CFLAGS";;
2817 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";;
2820 TEMPCFLAGS="$CFLAGS";
2825 CFLAGS="$TEMPCFLAGS" \
2826 CXXFLAGS="$CXXFLAGS" \
2827 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2828 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2829 --host=$host_alias \
2830 --build=$build_alias \
2831 --target=$target_alias \
2832 --without-xscreensaver \
2835 --disable-fieldlines \
2839 --disable-hyperspace \
2842 if echo "$ARCH" | grep -q freebsd ; then
2843 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2847 XB_CONFIG_MODULE([lib/cpluff], [
2848 ./configure --disable-nls \
2849 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2850 --host=$host_alias \
2851 --build=$build_alias \
2852 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2853 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2856 XB_CONFIG_MODULE([lib/gtest], [
2861 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2862 --host=$host_alias \
2863 --build=$build_alias \
2864 --target=$target_alias \
2868 ], [$SKIP_CONFIG_GTEST])
2870 XB_CONFIG_MODULE([pvr-addons], [
2872 --prefix="${prefix}" \
2873 --host=$host_alias \
2874 --build=$build_alias \
2875 --target=$target_alias \
2879 CXXFLAGS="$CXXFLAGS"
2880 ], [$DISABLE_PVR_ADDON_CONFIG])
2884 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2885 echo -e "$final_message\n"