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([jpeglib.h],, AC_MSG_ERROR($missing_library))
1040 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
1041 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1042 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1043 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1044 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1045 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1047 # we need to check for the header because if it exists we set the openssl
1048 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1049 # in MT manner correctly.
1050 AC_MSG_CHECKING([for CRYPTO_set_locking_callback(0)])
1051 AC_TRY_LINK([],[CRYPTO_set_locking_callback(0);],
1052 [have_curl_static=yes],
1053 [have_curl_static=no])
1054 AC_MSG_RESULT($have_curl_static)
1055 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1056 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1057 if test "$gcrypt_headers_available" = "yes"; then
1058 # if we have the headers then we must have the lib
1059 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1060 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1061 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1063 PKG_CHECK_MODULES([GNUTLS], [gnutls], [have_gnutls=yes];AC_DEFINE([HAVE_GNUTLS], [1], [Define if we have gnutls]), AC_MSG_WARN("gnutls not found"))
1065 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1066 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1067 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1068 if echo "$ARCH" | grep -q freebsd; then
1069 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1070 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1071 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1072 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1074 if test "$target_platform" != "target_android" ; then
1075 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1076 AC_CHECK_LIB([pthread], [pthread_setname_np],
1077 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1078 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1081 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1082 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1083 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1084 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1085 if test "$use_mysql" = "yes"; then
1086 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1088 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1089 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1090 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1091 if test "$target_platform" = "target_android" ; then
1092 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1093 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1094 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1096 PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
1097 [INCLUDES="$INCLUDES $LIBXML_CFLAGS"; LIBS="$LIBS $LIBXML_LIBS"],
1098 AC_MSG_ERROR($missing_library))
1099 PKG_CHECK_MODULES([LIBXSLT], [libxslt],
1100 [INCLUDES="$INCLUDES $LIBXSLT_CFLAGS"; LIBS="$LIBS $LIBXSLT_LIBS"],
1101 AC_MSG_ERROR($missing_library))
1102 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1103 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1104 AC_MSG_ERROR($missing_library))
1105 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1106 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1107 AC_MSG_ERROR($missing_library))
1108 PKG_CHECK_MODULES([PNG], [libpng],
1109 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1110 AC_MSG_ERROR($missing_library))
1111 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1112 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1113 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1114 AC_MSG_ERROR($missing_library))
1115 PKG_CHECK_MODULES([PCRE], [libpcre],
1116 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1117 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1118 AC_MSG_ERROR($missing_library))
1119 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1120 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1121 AC_MSG_ERROR($missing_library))
1122 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1123 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1124 AC_MSG_ERROR($missing_library))
1125 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1126 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1127 AC_MSG_ERROR($missing_library))
1129 if test "$use_optical_drive" = "yes"; then
1130 PKG_CHECK_MODULES([CDIO], [libcdio],
1131 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1132 AC_MSG_ERROR($missing_library))
1135 if test "$target_platform" = "target_android" ; then
1136 PKG_CHECK_MODULES([ZIP], [libzip],
1137 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1138 AC_MSG_ERROR($missing_library))
1141 # check for libbluray
1142 AS_CASE([x$use_libbluray],
1144 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1147 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1150 AS_CASE([x$use_libbluray],
1152 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1153 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1154 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1155 AC_SUBST([HAVE_LIBBLURAY], 1)
1156 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1157 AC_CHECK_DECL([BD_EVENT_IDLE],
1158 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1159 [[#include <libbluray/bluray.h>]]))
1161 AC_SUBST([HAVE_LIBBLURAY], 0)
1165 #Check to see if libs are needed for functions that are often built-in to libc
1166 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1167 AC_SEARCH_LIBS([dlopen],dl)
1168 AC_SEARCH_LIBS([clock_gettime],rt)
1169 AC_SEARCH_LIBS([dn_expand], resolv)
1170 AC_SEARCH_LIBS([_dn_expand], resolv)
1171 AC_SEARCH_LIBS([__dn_expand],resolv)
1173 # platform dependent libraries
1174 if test "$host_vendor" = "apple" ; then
1175 if test "$use_arch" != "arm"; then
1176 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1177 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1180 if test "$target_platform" != "target_android" ; then
1181 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1183 if test "x$use_alsa" != "xno"; then
1184 PKG_CHECK_MODULES([ALSA], [alsa],
1185 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1186 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1188 PKG_CHECK_MODULES([DBUS], [dbus-1],
1189 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1190 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1191 AC_MSG_NOTICE($missing_library); use_dbus=no)
1192 if test "x$use_sdl" != "xno"; then
1193 PKG_CHECK_MODULES([SDL], [sdl],
1194 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1195 AC_MSG_ERROR($missing_library))
1196 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1197 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1201 XB_FIND_SONAME([OGG], [ogg])
1202 XB_FIND_SONAME([CURL], [curl])
1203 XB_FIND_SONAME([FLAC], [FLAC])
1204 XB_FIND_SONAME([VORBIS], [vorbis])
1205 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1206 XB_FIND_SONAME([MODPLUG], [modplug])
1207 XB_FIND_SONAME([ASS], [ass])
1208 XB_FIND_SONAME([MPEG2], [mpeg2])
1211 if test "x$use_libmp3lame" != "xno"; then
1212 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1213 if test "x$use_libmp3lame" != "xno"; then
1214 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1217 AS_CASE([x$use_libmp3lame],
1219 AC_SUBST([HAVE_LIBMP3LAME], 0)
1222 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1223 AC_SUBST([HAVE_LIBMP3LAME], 1)
1226 if test "x$use_libvorbisenc" != "xno"; then
1227 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1228 if test "x$use_libvorbisenc" != "xno"; then
1229 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1232 AS_CASE([x$use_libvorbisenc],
1234 AC_SUBST([HAVE_LIBVORBISENC], 0)
1236 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1237 AC_SUBST([HAVE_LIBVORBISENC], 1)
1242 if test "$use_webserver" = "yes"; then
1243 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1247 if test "$use_optical_drive" = "yes"; then
1248 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1252 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1253 PKG_CHECK_MODULES([ALSA], [alsa],
1254 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1255 AC_MSG_ERROR($missing_library))
1256 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1259 AC_MSG_RESULT($alsa_disabled)
1263 if test "x$use_pulse" != "xno"; then
1264 if test "$host_vendor" = "apple" ; then
1265 if test "x$use_pulse" = "xyes"; then
1266 AC_MSG_ERROR($pulse_disabled)
1269 AC_MSG_RESULT($pulse_disabled)
1273 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0],
1274 [INCLUDES="$INCLUDES $PULSE_CFLAGS"; LIBS="$LIBS $PULSE_LIBS"; USE_PULSE=1;
1275 HAVE_LIBPULSE=1; AC_DEFINE([HAVE_LIBPULSE],[1],[Pulse audio enabled])],
1276 [pulse_found="no"; USE_PULSE=0; HAVE_LIBPULSE=0])
1278 if test "$pulse_found" = "no"; then
1279 if test "x$use_pulse" = "xyes"; then
1280 AC_MSG_ERROR($pulse_not_found)
1282 AC_MSG_RESULT($pulse_disabled)
1287 AC_MSG_RESULT($pulse_disabled)
1292 if test "$host_vendor" = "apple" ; then
1294 AC_MSG_RESULT($hal_disabled)
1296 if test "$use_hal" = "yes"; then
1297 PKG_CHECK_MODULES([HAL], [hal],
1298 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1299 use_hal=no;AC_MSG_RESULT($hal_not_found))
1300 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1301 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1302 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1304 AC_MSG_RESULT($hal_disabled)
1306 if test "$use_hal" = "yes"; then
1307 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1312 if test "$host_vendor" = "apple" ; then
1314 AC_MSG_RESULT($avahi_disabled)
1316 if test "$use_avahi" = "yes"; then
1317 AC_CHECK_LIB([avahi-common], [main],,
1318 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1319 if test "$use_avahi" = "yes"; then
1320 #either both libs or none
1321 AC_CHECK_LIB([avahi-client], [main],,
1322 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1325 AC_MSG_RESULT($avahi_disabled)
1330 if test "$use_mdnsembedded" != "no"; then
1331 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1332 [if test "$use_mdnsembedded" = "yes"; then
1333 AC_MSG_ERROR($mdnsembedded_not_found)
1335 elif test "$use_mdnsembedded" != "no"; then
1336 AC_MSG_NOTICE($mdnsembedded_not_found)
1337 use_mdnsembedded="no"
1341 if test $use_mdnsembedded != "no"; then
1345 AC_MSG_RESULT($mdnsembedded_disabled)
1348 AC_SUBST(USE_MDNSEMBEDDED)
1351 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1352 AC_MSG_NOTICE($x11_enabled)
1353 PKG_CHECK_MODULES([X11], [x11],
1354 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1355 AC_MSG_ERROR($missing_library))
1356 PKG_CHECK_MODULES([XEXT], [xext],
1357 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1358 AC_MSG_ERROR($missing_library))
1359 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1361 AC_MSG_RESULT($x11_disabled)
1365 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1367 AC_MSG_RESULT($xrandr_disabled)
1369 if test "$use_xrandr" = "yes" ; then
1370 AC_CHECK_LIB([Xrandr], [main],,
1371 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1373 AC_MSG_RESULT($xrandr_disabled)
1378 if test "$use_waveform" = "yes"; then
1379 AC_MSG_NOTICE($waveform_enabled)
1382 AC_MSG_NOTICE($waveform_disabled)
1387 if test "$use_spectrum" = "yes"; then
1388 AC_MSG_NOTICE($spectrum_enabled)
1391 AC_MSG_NOTICE($spectrum_disabled)
1396 if test "$host_vendor" = "apple" ; then
1397 AC_MSG_NOTICE($goom_disabled)
1400 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1401 AC_MSG_NOTICE($goom_enabled)
1404 AC_MSG_NOTICE($goom_disabled)
1410 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1411 AC_MSG_NOTICE($rsxs_disabled)
1414 AC_MSG_NOTICE($rsxs_enabled)
1416 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1417 if test "$host_vendor" != "apple" ; then
1418 PKG_CHECK_MODULES([XT], [xt],
1419 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1420 AC_MSG_ERROR($missing_library))
1421 PKG_CHECK_MODULES([XMU], [xmu],
1422 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1423 AC_MSG_ERROR($missing_library))
1428 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1429 AC_MSG_NOTICE($fishbmc_disabled)
1433 AC_MSG_NOTICE($fishbmc_enabled)
1438 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1439 AC_MSG_NOTICE($projectm_disabled)
1443 AC_MSG_NOTICE($projectm_enabled)
1449 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1450 use_skin_touched=yes
1452 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1458 if test "x$use_ssh" = "xno"; then
1459 AC_MSG_NOTICE($ssh_disabled)
1462 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1463 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1467 if test "x$have_curl_static" = "xyes"; then
1468 AC_DEFINE([HAS_CURL_STATIC], [1], [Whether OpenSSL inside libcurl is static.])
1472 if test "$use_librtmp" != "no"; then
1473 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1474 [if test "$use_librtmp" = "yes"; then
1475 AC_MSG_ERROR($librtmp_not_found)
1476 elif test "$use_librtmp" != "no"; then
1477 AC_MSG_NOTICE($librtmp_not_found)
1481 if test "$use_librtmp" != "no"; then
1482 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1484 if test "$use_librtmp" != "no"; then
1485 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1488 AC_MSG_NOTICE($librtmp_disabled)
1492 if test "x$use_samba" != "xno"; then
1493 PKG_CHECK_MODULES([SAMBA], [smbclient],
1494 [INCLUDES="$INCLUDES $SAMBA_CFLAGS"; LIBS="$LIBS $SAMBA_LIBS"],
1495 [AC_CHECK_LIB([smbclient], [main],,
1496 use_samba=no;AC_MSG_ERROR($missing_library))
1500 AC_MSG_RESULT($samba_disabled)
1504 if test "x$use_samba" != "xno"; then
1505 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1510 if test "$use_libnfs" != "no"; then
1511 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1512 [if test "$use_libnfs" = "yes"; then
1513 AC_MSG_ERROR($libnfs_not_found)
1515 elif test "$use_libnfs" != "no"; then
1516 AC_MSG_NOTICE($libnfs_not_found)
1521 if test "$use_libnfs" != "no"; then
1522 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1524 if test "$use_libnfs" != "no"; then
1525 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1530 AC_MSG_NOTICE($libnfs_disabled)
1535 if test "x$use_libafpclient" != "xno"; then
1536 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1537 [if test "x$use_libafpclient" = "xyes"; then
1538 AC_MSG_ERROR($libafpclient_not_found)
1539 elif test "x$use_libafpclient" != "xno"; then
1540 AC_MSG_NOTICE($libafpclient_not_found)
1541 use_libafpclient="no"
1544 if test "x$use_libafpclient" != "xno"; then
1545 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1546 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1550 AC_MSG_NOTICE($libafpclient_disabled)
1553 # libplist for airplay feature
1555 if test "$use_airplay" != "no"; then
1556 AC_CHECK_HEADER([plist/plist.h],,
1557 [if test "$use_airplay" = "yes"; then
1558 AC_MSG_ERROR($libplist_not_found)
1559 elif test "$use_airplay" != "no"; then
1560 AC_MSG_NOTICE($libplist_not_found)
1565 if test "$use_airplay" != "no"; then
1566 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1568 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1572 # libshairplay for AirTunes (prefered lib)
1574 if test "x$use_airtunes" != "xno"; then
1575 AC_CHECK_HEADERS([shairplay/raop.h],USE_AIRTUNES=1,
1576 [AC_MSG_NOTICE($libshairplay_not_found)
1579 if test "x$USE_AIRTUNES" != "x0"; then
1580 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [USE_AIRTUNES])
1582 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1583 [[#include <shairplay/raop.h>]])
1584 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1587 #libshairport - as a fallback for AirTunes
1588 if test "x$USE_AIRTUNES" == "x0"; then
1589 AC_CHECK_HEADERS([shairport/shairport.h],USE_AIRTUNES=1,
1590 [AC_MSG_NOTICE($libshairport_not_found)
1593 if test "x$USE_AIRTUNES" != "x0"; then
1594 XB_FIND_SONAME([SHAIRPORT], [shairport], [USE_AIRTUNES])
1595 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1596 [[#include <shairport/shairport.h>]])
1597 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1601 if test "x$USE_AIRTUNES" == "x0"; then
1602 if test "x$use_airtunes" == "xyes"; then
1603 AC_MSG_ERROR("No airtunes library could be found. (libshairport/libshairplay)")
1611 if test "$host_vendor" = "apple" ; then
1613 AC_MSG_NOTICE($libudev_disabled)
1615 if test "$use_libudev" = "auto"; then
1616 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1617 elif test "$use_libudev" = "yes" ; then
1618 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1620 AC_MSG_NOTICE($libudev_disabled)
1623 if test "x$use_libudev" != "xno"; then
1624 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1625 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1632 # if libudev is available, we don't need libusb
1633 if test "x$use_libudev" != "xno"; then
1635 AC_MSG_NOTICE($libusb_disabled_udev_found)
1637 if test "$host_vendor" = "apple" ; then
1639 AC_MSG_NOTICE($libusb_disabled)
1641 if echo "$ARCH" | grep -q freebsd ; then
1642 AC_CHECK_LIB([usb],[main],
1643 [use_libusb="yes";USB_LIBS="-lusb"],
1644 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1645 elif test "$use_libusb" = "auto"; then
1646 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1647 elif test "$use_libusb" = "yes"; then
1648 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1650 AC_MSG_NOTICE($libusb_disabled)
1653 if test "x$use_libusb" != "xno"; then
1654 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1655 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1662 if test "x$use_libcec" != "xno"; then
1663 # libcec is dyloaded, so we need to check for its headers and link any depends.
1664 if test "x$use_libcec" != "xno"; then
1665 if test "x$use_libcec" != "xauto"; then
1666 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1668 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1671 if test "x$use_libcec" != "xno"; then
1672 INCLUDES="$INCLUDES $CEC_CFLAGS"
1673 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1674 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1675 AC_MSG_NOTICE($libcec_enabled)
1678 AC_MSG_NOTICE($libcec_disabled)
1683 AC_MSG_NOTICE($libcec_disabled)
1687 if test "$use_libcap" != "no"; then
1688 AC_CHECK_HEADERS([sys/capability.h],,
1689 [if test "$use_libcap" = "yes"; then
1690 AC_MSG_ERROR($libcap_not_found)
1691 elif test "$use_libcap" != "no"; then
1692 AC_MSG_NOTICE($libcap_not_found)
1696 if test "$use_libcap" != "no"; then
1697 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1699 if test "$use_libcap" != "no"; then
1700 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1703 AC_MSG_NOTICE($libcap_disabled)
1707 FFMPEG_LIBNAMES="libavcodec >= 55.39.101
1708 libavfilter >= 3.90.100
1709 libavformat >= 55.19.104
1710 libavutil >= 52.48.101
1711 libpostproc >= 52.3.100
1712 libswscale >= 2.5.101
1713 libswresample >= 0.17.104"
1715 ffmpeg_build="${abs_top_srcdir}/tools/depends/target/ffmpeg"
1716 FFMPEG_VER_SHA=$(grep "VERSION=" ${ffmpeg_build}/FFMPEG-VERSION | sed 's/VERSION=//g')
1717 AC_DEFINE_UNQUOTED([FFMPEG_VER_SHA], ["$FFMPEG_VER_SHA"], [FFmpeg version hash])
1719 if test "$with_ffmpeg" = "shared"; then
1720 # allow linking against shared ffmpeg libs
1721 # a proper version must be installed, we won't build ffmpeg
1723 AC_DEFINE([USE_STATIC_FFMPEG], [0], [FFmpeg linked dynamically])
1725 if test "${USE_STATIC_FFMPEG}" = "1"; then
1726 AC_DEFINE([USE_STATIC_FFMPEG], [1], [FFmpeg linked statically])
1727 ff_libs=$(${ECHO} ${FFMPEG_LIBNAMES} | ${AWK} '/lib/{print $1}' ORS=' ')
1728 if test -n "${PKG_CONFIG_SYSROOT_DIR}"; then
1729 # workaround for cross compiling with buildroot on different buildsystem
1730 # Rpi buildroots pkg-config returns static libs with
1731 # PKG_CONFIG_SYSROOT_DIR prefixed, OEs does not
1732 # so lets make sure we always prefix in case PKG_CONFIG_SYSROOT_DIR is defined
1733 pkg_cfg_prefix="${PKG_CONFIG_SYSROOT_DIR}"
1734 elif test "${target_platform}" = "target_raspberry_pi" && test "${USE_BUILDROOT}" = "1"; then
1735 pkg_cfg_prefix=${SYSROOT}
1738 if test "$cross_compiling" != "yes"; then
1739 if test "$use_debug" != "yes"; then
1742 if test "$use_optimizations" != "yes"; then
1743 FFMPEG_OPTS="${FFMPEG_OPTS} --disable-optimizations"
1746 if test "$with_ffmpeg" = "auto" || test "$with_ffmpeg" = "yes"; then
1747 SAVE_INCLUDES="$INCLUDES"
1749 # check for system installed ffmpeg. We require minimum versions.
1750 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1751 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1752 [FFMPEG_FOUND="false"])
1754 if test "${USE_STATIC_FFMPEG}" = "1" && test "$FFMPEG_FOUND" = "true"; then
1755 # we need to check if static libs are available
1756 FFMPEG_LIBDIR=$(${PKG_CONFIG} --static --variable=libdir libavcodec)
1757 for ff_lib in ${ff_libs}; do
1758 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1759 AC_MSG_NOTICE("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1760 FFMPEG_FOUND="false"
1761 # restore includes and libs, the ones we found are invalid
1762 INCLUDES="$SAVE_INCLUDES"
1764 unset FFMPEG_LIBS FFMPEG_CFLAGS FFMPEG_LIBDIR
1768 if test "$with_ffmpeg" = "yes" || test "$FFMPEG_FOUND" = "false"; then
1769 # ffmpeg not found with pkg-config, lets install it
1770 AC_MSG_NOTICE("Installing FFmpeg")
1771 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1772 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1775 elif test "$with_ffmpeg" = "force"; then
1776 # always build our ffmpeg
1777 AC_MSG_NOTICE("FFmpeg installation forced by user - installing our version")
1778 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
1779 export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
1781 elif test "$with_ffmpeg" != "no"; then
1782 # user passed --with-ffmpeg=/some/path, lets use it
1783 AC_MSG_NOTICE("using ffmpeg: ${with_ffmpeg}")
1784 export PKG_CONFIG_PATH="${with_ffmpeg}/lib/pkgconfig:$PKG_CONFIG_PATH"
1789 if test "$FFMPEG_FOUND" != "true"; then
1790 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1791 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
1792 [AC_MSG_ERROR("ffmpeg not found")])
1795 if test "${USE_STATIC_FFMPEG}" = "1"; then
1796 # get the libdir for static linking
1797 FFMPEG_LIBDIR=${pkg_cfg_prefix}$(PKG_CONFIG_SYSROOT_DIR="" ${PKG_CONFIG} --static --variable=libdir libavcodec)
1798 GNUTLS_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors gnutls)
1799 VORBISENC_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors vorbisenc)
1801 # check if static libs are available
1802 for ff_lib in ${ff_libs}; do
1803 if test -f ${FFMPEG_LIBDIR}/${ff_lib}.a; then :; else
1804 AC_MSG_ERROR("${FFMPEG_LIBDIR}/${ff_lib}.a not found")
1806 # filter out libs we link statically
1807 filter=$(${ECHO} ${ff_lib} | ${SED} 's/lib/-l/g')
1808 LIBS=$(${ECHO} ${LIBS} | ${SED} "s/${filter}//g")
1810 LIBS=$(${ECHO} ${LIBS} | ${SED} ':a;N;$!ba;s/\n/ /g')
1813 echo "Checking for SWIG installation"
1814 AC_PATH_PROG(SWIG_EXE, swig, "none")
1815 if test "$SWIG_EXE" = "none"; then
1816 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1817 if test "$SWIG20_EXE" != "none" ; then
1818 SWIG_EXE=$SWIG20_EXE
1821 if test "$SWIG_EXE" = "none"; then
1822 AC_MSG_ERROR($missing_program)
1824 final_message="$final_message\n SWIG Available:\tYes"
1826 echo "Checking for a jre installation"
1827 AC_PATH_PROG(JAVA_EXE, java, "none")
1828 if test "$JAVA_EXE" = "none"; then
1829 AC_MSG_ERROR($missing_program)
1831 final_message="$final_message\n JRE Available:\tYes"
1833 echo "Checking for doxygen installation"
1834 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1835 if test "$DOXYGEN_EXE" = "none"; then
1836 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1837 final_message="$final_message\n Doxygen Available:\tNo"
1840 final_message="$final_message\n Doxygen Available:\tYes"
1845 if test "x$use_vdpau" != "xno"; then
1846 if test "$host_vendor" = "apple" ; then
1847 if test "x$use_vdpau" = "xyes"; then
1848 AC_MSG_ERROR([VDPAU not supported on this platform])
1851 AC_MSG_NOTICE($vdpau_disabled)
1856 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1857 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1858 [if test "x$use_vdpau" = "xyes"; then
1860 AC_MSG_ERROR([$vdpau_not_found])
1864 AC_MSG_RESULT($vdpau_not_found)
1869 AC_MSG_NOTICE($vdpau_disabled)
1873 if test "x$use_vaapi" != "xno"; then
1874 if test "$host_vendor" = "apple" ; then
1875 if test "x$use_vaapi" = "xyes"; then
1876 AC_MSG_ERROR([VAAPI not supported on this platform])
1879 AC_MSG_NOTICE($vaapi_disabled)
1883 initial_val=$use_vaapi
1884 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1885 if test "x$use_vaapi" != "xno"; then
1886 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1889 if test "x$use_vaapi" = "xno"; then
1890 if test "x$initial_val" = "xyes"; then
1891 AC_MSG_ERROR($vaapi_not_found)
1893 AC_MSG_RESULT($vaapi_not_found)
1897 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1902 AC_MSG_NOTICE($vaapi_disabled)
1907 if test "x$use_crystalhd" != "xno"; then
1908 SAVE_CFLAGS="$CFLAGS"
1909 CFLAGS="-D__LINUX_USER__"
1910 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1911 [ if test "x$use_crystalhd" = "xyes"; then
1912 AC_MSG_ERROR($crystalhd_not_found)
1915 AC_MSG_RESULT($crystalhd_not_found)
1919 CFLAGS="$SAVE_CFLAGS"
1920 if test "$host_vendor" != "apple"; then
1921 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1923 if test "x$use_crystalhd" != "xno"; then
1924 SAVE_CFLAGS="$CFLAGS"
1925 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1926 # check for new crystalhd lib
1928 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1929 #include <libcrystalhd/bc_dts_defs.h>
1930 PBC_INFO_CRYSTAL bCrystalInfo;])],
1931 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1932 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1933 CFLAGS="$SAVE_CFLAGS"
1937 AC_MSG_NOTICE($crystalhd_disabled)
1942 if test "x$use_vtbdecoder" != "xno"; then
1943 if test "$host_vendor" = "apple" ; then
1944 HAVE_VIDEOTOOLBOXDECODER=1
1945 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1946 AC_MSG_NOTICE($vtbdecoder_enabled)
1948 if test "x$use_vtbdecoder" = "xyes"; then
1949 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1952 AC_MSG_NOTICE($vtbdecoder_disabled)
1956 AC_MSG_NOTICE($vtbdecoder_disabled)
1960 if test "$host_vendor" = "apple" ; then
1963 AC_MSG_NOTICE($openmax_disabled)
1964 elif test "$target_platform" = "target_raspberry_pi"; then
1967 AC_MSG_NOTICE($openmax_disabled)
1969 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1970 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1971 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1972 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1973 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1974 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1975 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1976 AC_MSG_ERROR($openmax_not_found))
1978 AC_MSG_NOTICE($openmax_disabled)
1984 # yajl version check (yajl_version.h was added in yajl 2.0)
1985 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1986 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1989 # additional internal players
1990 case $add_players in
1992 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1996 # additional internal codecs
1997 # remember to convert commas to spaces
1998 for codecs in `echo $add_codecs | sed 's/,/ /g'`; do
2001 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
2002 XB_ADD_CODEC([LIBAMCODEC], [amcodec], [$codecs])
2005 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright], [$codecs])
2011 # platform specific bin utilities
2012 if test "$build_vendor" != "apple" ; then
2013 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
2014 if test "$HAVE_GAWK" = "no" ; then
2015 AC_MSG_ERROR($missing_program)
2019 if test "$use_arch" != "arm" ; then
2020 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
2021 if test "$HAVE_CMAKE" = "no" ; then
2022 AC_MSG_ERROR($missing_program)
2026 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
2027 if test "$HAVE_GPERF" = "no" ; then
2028 AC_MSG_ERROR($missing_program)
2031 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
2032 if test "$HAVE_UNZIP" = "no" ; then
2033 AC_MSG_ERROR($missing_program)
2036 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
2037 if test "$HAVE_ZIP" = "no" ; then
2038 AC_MSG_ERROR($missing_program)
2041 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
2042 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
2043 if test "$HAVE_NASM" = "no" ; then
2044 AC_MSG_ERROR($missing_program)
2048 # Checks for header files.
2052 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
2053 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
2054 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
2055 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
2056 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
2058 # Checks for typedefs, structures, and compiler characteristics.
2074 AC_CHECK_MEMBERS([struct stat.st_rdev])
2083 if test "$cross_compiling" = "yes"; then
2084 final_message="$final_message\n Crosscomp.:\tYes"
2085 if [[ -d "$NATIVE_ROOT" ]]; then
2086 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2087 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2088 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
2089 if test "$host_vendor" != "apple" ; then
2090 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
2092 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
2095 final_message="$final_message\n Crosscomp.:\tNo"
2098 final_message="$final_message\n target ARCH:\t$use_arch"
2099 final_message="$final_message\n target CPU:\t$use_cpu"
2101 if test "$use_gles" = "yes"; then
2102 final_message="$final_message\n OpenGLES:\tYes"
2107 if test "$use_gl" = "yes"; then
2108 final_message="$final_message\n OpenGL:\tYes"
2111 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2112 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2117 if test "$use_alsa" = "yes"; then
2119 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2120 final_message="$final_message\n ALSA:\t\tYes"
2123 final_message="$final_message\n ALSA:\t\tNo"
2126 if test "$use_dbus" = "yes"; then
2127 final_message="$final_message\n DBUS:\t\tYes"
2129 final_message="$final_message\n DBUS:\t\tNo"
2132 if test "x$use_vdpau" != "xno"; then
2133 final_message="$final_message\n VDPAU:\tYes"
2135 final_message="$final_message\n VDPAU:\tNo"
2138 if test "x$use_vaapi" != "xno"; then
2139 final_message="$final_message\n VAAPI:\tYes"
2141 final_message="$final_message\n VAAPI:\tNo"
2144 if test "x$use_crystalhd" != "xno"; then
2145 final_message="$final_message\n CrystalHD:\tYes"
2147 final_message="$final_message\n CrystalHD:\tNo"
2150 if test "x$use_vtbdecoder" != "xno"; then
2151 final_message="$final_message\n VTBDecoder:\tYes"
2153 final_message="$final_message\n VTBDecoder:\tNo"
2156 if test "$use_openmax" != "no"; then
2157 final_message="$final_message\n OpenMax:\tYes"
2159 final_message="$final_message\n OpenMax:\tNo"
2162 if test "$use_joystick" = "yes"; then
2163 final_message="$final_message\n Joystick:\tYes"
2164 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2166 final_message="$final_message\n Joystick:\tNo"
2169 if test "$use_xrandr" = "yes"; then
2170 final_message="$final_message\n XRandR:\tYes"
2173 final_message="$final_message\n XRandR:\tNo"
2177 if test "$use_waveform" = "yes"; then
2178 final_message="$final_message\n Waveform:\tYes"
2180 final_message="$final_message\n Waveform:\tNo"
2183 if test "$use_spectrum" = "yes"; then
2184 final_message="$final_message\n Spectrum:\tYes"
2186 final_message="$final_message\n Spectrum:\tNo"
2189 if test "$use_goom" = "yes"; then
2190 final_message="$final_message\n GOOM:\t\tYes"
2192 final_message="$final_message\n GOOM:\t\tNo"
2195 if test "$use_rsxs" = "yes"; then
2196 final_message="$final_message\n RSXS:\t\tYes"
2198 final_message="$final_message\n RSXS:\t\tNo"
2201 if test "$use_fishbmc" = "yes"; then
2202 final_message="$final_message\n FishBMC:\tYes"
2204 final_message="$final_message\n FishBMC:\tNo"
2207 if test "$use_projectm" = "yes"; then
2208 final_message="$final_message\n ProjectM:\tYes"
2210 final_message="$final_message\n ProjectM:\tNo"
2213 if test "$use_skin_touched" = "yes"; then
2214 final_message="$final_message\n Skin Touched:\tYes"
2216 final_message="$final_message\n Skin Touched:\tNo"
2219 if test "$use_x11" = "yes"; then
2220 final_message="$final_message\n X11:\t\tYes"
2222 final_message="$final_message\n X11:\t\tNo"
2225 if test "$use_wayland" = "yes"; then
2226 final_message="$final_message\n Wayland:\tYes"
2230 final_message="$final_message\n Wayland:\tNo"
2233 if test "$use_libbluray" = "yes"; then
2234 final_message="$final_message\n Bluray:\tYes"
2236 final_message="$final_message\n Bluray:\tNo"
2239 if test "x$use_texturepacker" != "xno"; then
2240 final_message="$final_message\n TexturePacker:Yes"
2243 final_message="$final_message\n TexturePacker:No"
2247 if test "$use_mid" = "yes"; then
2248 final_message="$final_message\n MID Support:\tYes"
2249 SDL_DEFINES="$SDL_DEFINES -DMID"
2251 final_message="$final_message\n MID Support:\tNo"
2256 if test "x$use_ccache" != "xno"; then
2257 AC_PATH_PROG(CCACHE,ccache,none)
2258 if test "$ac_cv_path_CCACHE" = "none"; then
2259 if test "x$use_ccache" = "xyes"; then
2260 AC_MSG_ERROR([ccache not found.]);
2262 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2263 final_message="$final_message\n ccache:\tNo"
2266 CC="$ac_cv_path_CCACHE $CC"
2267 CXX="$ac_cv_path_CCACHE $CXX"
2268 AC_MSG_NOTICE(enabling ccache)
2269 final_message="$final_message\n ccache:\tYes"
2272 final_message="$final_message\n ccache:\tNo"
2275 if test "$use_alsa" = "yes"; then
2276 final_message="$final_message\n ALSA Support:\tYes"
2278 final_message="$final_message\n ALSA Support:\tNo"
2281 if test "x$use_pulse" != "xno"; then
2282 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2283 final_message="$final_message\n PulseAudio:\tYes"
2285 XBMC_STANDALONE_SH_PULSE=/dev/null
2286 final_message="$final_message\n PulseAudio:\tNo"
2289 if test "$use_hal" = "yes"; then
2290 final_message="$final_message\n HAL Support:\tYes"
2292 final_message="$final_message\n HAL Support:\tNo"
2296 if test "$use_dvdcss" = "yes"; then
2297 AC_MSG_NOTICE($dvdcss_enabled)
2298 final_message="$final_message\n DVDCSS:\tYes"
2300 SKIP_CONFIG_DVDCSS=0
2301 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2303 AC_MSG_NOTICE($dvdcss_disabled)
2304 final_message="$final_message\n DVDCSS:\tNo"
2306 SKIP_CONFIG_DVDCSS=1
2307 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2309 if test "$host_vendor" = "apple"; then
2310 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2313 # Google Test Framework
2314 if test "$configure_gtest" = "yes"; then
2315 AC_MSG_NOTICE($gtest_enabled)
2316 final_message="$final_message\n Google Test Framework Configured:\tYes"
2320 AC_MSG_NOTICE($gtest_disabled)
2321 final_message="$final_message\n Google Test Framework Configured:\tNo"
2326 if test "$use_avahi" = "yes"; then
2327 final_message="$final_message\n Avahi:\tYes"
2329 final_message="$final_message\n Avahi:\tNo"
2332 if test "$use_mdnsembedded" != "no"; then
2333 final_message="$final_message\n mDNSEmbedded:\tYes"
2335 final_message="$final_message\n mDNSEmbedded:\tNo"
2338 if test "$use_nonfree" = "yes"; then
2339 final_message="$final_message\n Non-free:\tYes"
2341 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2344 final_message="$final_message\n Non-free:\tNo"
2347 if test "$use_asap" = "yes"; then
2348 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2349 if test "$HAVE_GDC" = "no"; then
2350 AC_MSG_ERROR($missing_program);
2352 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2353 if test "$HAVE_FPC" = "no"; then
2354 AC_MSG_ERROR($missing_program);
2357 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2358 final_message="$final_message\n ASAP Codec:\tYes"
2361 final_message="$final_message\n ASAP Codec:\tNo"
2364 if test "$use_mysql" = "yes"; then
2365 final_message="$final_message\n MySQL:\tYes"
2368 final_message="$final_message\n MySQL:\tNo"
2371 if test "$use_webserver" = "yes"; then
2372 final_message="$final_message\n Webserver:\tYes"
2375 final_message="$final_message\n Webserver:\tNo"
2379 if test "$use_libssh" != "no"; then
2380 final_message="$final_message\n libssh support:\tYes"
2382 final_message="$final_message\n libssh support:\tNo"
2385 if test "$use_librtmp" != "no"; then
2386 final_message="$final_message\n libRTMP support:\tYes"
2388 final_message="$final_message\n libRTMP support:\tNo"
2391 if test "x$use_samba" != "xno"; then
2392 final_message="$final_message\n libsmbclient support:\tYes"
2394 final_message="$final_message\n libsmbclient support:\tNo"
2397 if test "$use_libnfs" != "no"; then
2398 final_message="$final_message\n libnfs client support:Yes"
2400 final_message="$final_message\n libnfs client support:No"
2403 if test "x$use_libafpclient" != "xno"; then
2404 final_message="$final_message\n libafpclient support:\tYes"
2406 final_message="$final_message\n libafpclient support:\tNo"
2409 if test "$use_airplay" != "no"; then
2410 final_message="$final_message\n AirPlay support:\tYes"
2412 final_message="$final_message\n AirPLay support:\tNo"
2415 if test "x$use_airtunes" != "xno"; then
2416 if test "x$USE_LIBSHAIRPLAY" == "x1"; then
2417 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2419 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2422 final_message="$final_message\n AirTunes support:\tNo"
2425 if test "x$use_upnp" != "xno"; then
2426 final_message="$final_message\n UPnP support:\t\tYes"
2428 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2431 final_message="$final_message\n UPnP support:\t\tNo"
2434 if test "$use_optical_drive" = "yes"; then
2435 final_message="$final_message\n Optical drive:\tYes"
2437 final_message="$final_message\n Optical drive:\tNo"
2440 if test "x$use_libudev" != "xno"; then
2441 final_message="$final_message\n libudev support:\tYes"
2443 final_message="$final_message\n libudev support:\tNo"
2446 if test "x$use_libusb" != "xno"; then
2447 final_message="$final_message\n libusb support:\tYes"
2449 final_message="$final_message\n libusb support:\tNo"
2452 if test "x$use_libcec" != "xno"; then
2453 final_message="$final_message\n libcec support:\tYes"
2455 final_message="$final_message\n libcec support:\tNo"
2458 if test "x$use_libmp3lame" != "xno"; then
2459 final_message="$final_message\n libmp3lame support:\tYes"
2461 final_message="$final_message\n libmp3lame support:\tNo"
2464 if test "x$use_libvorbisenc" != "xno"; then
2465 final_message="$final_message\n libvorbisenc support:\tYes"
2467 final_message="$final_message\n libvorbisenc support:\tNo"
2470 if test "x$use_libcap" != "xno"; then
2471 final_message="$final_message\n libcap support:\tYes"
2473 final_message="$final_message\n libcap support:\tNo"
2476 if test "x$add_players" != "xno"; then
2477 final_message="$final_message\n additional players:\tYes, $add_players"
2479 final_message="$final_message\n additional players:\tNo"
2482 if test "x$add_codecs" != "xno"; then
2483 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2485 final_message="$final_message\n additional codecs:\tNo"
2488 ### External libraries messages
2490 if test "$host_vendor" = "apple" ; then
2491 # built internal but referenced as external, we link directly to them.
2492 # this MUST be the last thing before OUTPUT_FILES as they do not
2493 # exist until after we build FFMpeg.
2494 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2495 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2496 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2497 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2498 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2499 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2500 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2504 DISABLE_PVR_ADDON_CONFIG=1
2505 if [[ -f "pvr-addons/Makefile.am" ]]; then
2506 final_message="$final_message\n PVR add-ons:\t\tYes"
2508 DISABLE_PVR_ADDON_CONFIG=0
2510 final_message="$final_message\n PVR add-ons:\t\tNo"
2513 OUTPUT_FILES="Makefile \
2515 addons/skin.confluence/media/Makefile \
2517 xbmc/cdrip/Makefile \
2518 xbmc/cores/Makefile \
2519 xbmc/cores/VideoRenderers/Makefile \
2520 xbmc/cores/dvdplayer/Makefile \
2521 lib/libdvd/Makefile \
2522 xbmc/cores/DllLoader/Makefile \
2523 xbmc/cores/DllLoader/exports/Makefile \
2524 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2525 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2526 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2527 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2528 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2529 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2530 xbmc/cores/AudioEngine/Makefile \
2531 xbmc/cores/paplayer/Makefile \
2532 xbmc/cores/omxplayer/Makefile \
2533 lib/timidity/Makefile \
2535 lib/nosefart/Makefile \
2536 lib/libsidplay2/Makefile \
2537 lib/vgmstream/Makefile \
2538 lib/snesapu/SNES/SNESAPU/Makefile \
2539 lib/stsound/StSoundLibrary/Makefile \
2540 xbmc/cores/playercorefactory/Makefile \
2541 xbmc/music/karaoke/Makefile \
2543 xbmc/guilib/Makefile \
2544 xbmc/input/linux/Makefile \
2545 xbmc/interfaces/Makefile \
2546 xbmc/network/Makefile \
2547 xbmc/network/upnp/Makefile \
2548 lib/libRTV/Makefile \
2549 lib/libexif/Makefile \
2550 lib/libXDAAP/Makefile \
2551 lib/cmyth/Makefile \
2552 lib/libhdhomerun/Makefile \
2553 lib/libsquish/Makefile \
2554 lib/cximage-6.0/Makefile \
2555 lib/libUPnP/Makefile \
2556 xbmc/DllPaths_generated.h \
2557 xbmc/DllPaths_generated_android.h \
2558 xbmc/freebsd/Makefile \
2559 xbmc/linux/Makefile \
2560 xbmc/filesystem/Makefile \
2561 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2562 xbmc/visualizations/XBMCProjectM/Makefile \
2563 xbmc/visualizations/Goom/Makefile \
2564 xbmc/visualizations/OpenGLSpectrum/Makefile \
2565 xbmc/visualizations/fishBMC/Makefile \
2566 xbmc/visualizations/WaveForm/Makefile \
2567 xbmc/windowing/Makefile \
2568 xbmc/windowing/egl/Makefile \
2569 lib/addons/library.xbmc.addon/Makefile \
2570 lib/addons/library.xbmc.codec/Makefile \
2571 lib/addons/library.xbmc.gui/Makefile \
2572 lib/addons/library.xbmc.pvr/Makefile \
2573 xbmc/visualizations/EGLHelpers/Makefile \
2574 tools/Linux/xbmc.sh \
2575 tools/Linux/xbmc-standalone.sh \
2576 tools/TexturePacker/Makefile \
2577 tools/EventClients/Clients/OSXRemote/Makefile \
2578 xbmc/peripherals/bus/Makefile \
2579 xbmc/peripherals/devices/Makefile \
2580 xbmc/android/activity/Makefile \
2581 xbmc/android/loader/Makefile \
2582 xbmc/android/jni/Makefile \
2583 xbmc/utils/Makefile \
2584 xbmc/main/Makefile \
2585 project/cmake/xbmc-config.cmake"
2587 if test "$use_wayland" = "yes"; then
2588 OUTPUT_FILES="$OUTPUT_FILES xbmc/windowing/tests/wayland/Makefile"
2591 if test "$use_skin_touched" = "yes"; then
2592 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2595 if test "$use_codec_libstagefright" = "yes"; then
2596 OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile"
2599 OUTPUT_FILES="$OUTPUT_FILES \
2600 xbmc/interfaces/python/Makefile \
2601 xbmc/interfaces/python/test/Makefile"
2603 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2604 # .dummy.am does nothing.
2605 AC_CONFIG_FILES([.dummy])
2607 AC_CONFIG_FILES([${OUTPUT_FILES}])
2608 OUTPUT_FILES="$OUTPUT_FILES \
2614 AC_SUBST(CXX_FOR_BUILD)
2615 AC_SUBST(CC_FOR_BUILD)
2616 AC_SUBST(CFLAGS_FOR_BUILD)
2617 AC_SUBST(CXXFLAGS_FOR_BUILD)
2618 AC_SUBST(LDFLAGS_FOR_BUILD)
2619 AC_SUBST(SDL_DEFINES)
2620 AC_SUBST(BUILD_DVDCSS)
2621 AC_SUBST(DISABLE_WAVEFORM)
2622 AC_SUBST(DISABLE_SPECTRUM)
2623 AC_SUBST(DISABLE_GOOM)
2624 AC_SUBST(DISABLE_RSXS)
2625 AC_SUBST(DISABLE_FISHBMC)
2626 AC_SUBST(DISABLE_PROJECTM)
2627 AC_SUBST(FFMPEG_LIBDIR)
2628 AC_SUBST(USE_STATIC_FFMPEG)
2629 AC_SUBST(GNUTLS_ALL_LIBS)
2630 AC_SUBST(VORBISENC_ALL_LIBS)
2631 AC_SUBST(USE_SKIN_TOUCHED)
2632 AC_SUBST(USE_LIBAV_HACKS)
2633 AC_SUBST(PYTHON_VERSION)
2634 AC_SUBST(OUTPUT_FILES)
2635 AC_SUBST(HAVE_XBMC_NONFREE)
2636 AC_SUBST(USE_ASAP_CODEC)
2637 AC_SUBST(LIBCURL_BASENAME)
2638 AC_SUBST(LIBFLAC_BASENAME)
2639 AC_SUBST(LIBVORBISFILE_BASENAME)
2640 AC_SUBST(LIBMODPLUG_BASENAME)
2641 AC_SUBST(LIBOGG_BASENAME)
2642 AC_SUBST(LIBVORBISENC_BASENAME)
2643 AC_SUBST(LIBVORBIS_BASENAME)
2644 AC_SUBST(LIBASS_BASENAME)
2645 AC_SUBST(LIBMEPG2_BASENAME)
2646 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2647 AC_SUBST(USE_OPENGL)
2648 AC_SUBST(USE_OPENGLES)
2651 AC_SUBST(USE_CRYSTALHD)
2652 AC_SUBST(USE_LIBSMBCLIENT)
2653 AC_SUBST(USE_LIBNFS)
2654 AC_SUBST(USE_LIBAFPCLIENT)
2655 AC_SUBST(USE_AIRPLAY)
2656 AC_SUBST(USE_OPENMAX)
2658 AC_SUBST(HAVE_LIBPULSE)
2659 AC_SUBST(USE_XRANDR)
2661 AC_SUBST(USE_TEXTUREPACKER)
2662 AC_SUBST(USE_AIRTUNES)
2663 AC_SUBST(USE_LIBUDEV)
2664 AC_SUBST(USE_LIBUSB)
2665 AC_SUBST(USE_LIBCEC)
2667 AC_SUBST(USE_WAYLAND)
2668 AC_SUBST(USE_WEB_SERVER)
2670 AC_SUBST(USE_XKBCOMMON)
2671 AC_SUBST(USE_OMXLIB)
2672 AC_SUBST(USE_ANDROID)
2673 AC_SUBST(GTEST_CONFIGURED)
2674 AC_SUBST(USE_DOXYGEN)
2675 AC_SUBST(USE_PVR_ADDONS)
2677 # pushd and popd are not available in other shells besides bash, so implement
2678 # our own pushd/popd functions
2683 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2685 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2688 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2693 if [[ -n "$XB_DIRSTACK" ]]; then
2694 XB_DIRSTACK="${XB_DIRSTACK#* }"
2695 cd "${XB_DIRSTACK%% *}"
2698 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2702 # Function to run the configure scripts in our submodules
2703 # Consists of three paramaters, the path to the submodule, the configure command
2704 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2705 # running the script, anything else if not.
2706 AC_DEFUN([XB_CONFIG_MODULE],[
2707 AC_CONFIG_COMMANDS_POST([
2708 if [[ $3 != "1" ]]; then
2709 if [[ -d $1 ]]; then
2712 if [[ $? -ne 0 ]]; then
2714 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2719 AC_MSG_ERROR([[Submodule $1 does not exist]])
2722 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2727 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2731 CFLAGS="$CFLAGS $DROID_DVDLIB_SEEK64" \
2732 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2733 --host=$host_alias \
2734 --build=$build_alias \
2735 --target=$target_alias \
2739 ], [$SKIP_CONFIG_DVDCSS])
2741 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2743 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src $DROID_DVDLIB_SEEK64" \
2744 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2745 --host=$host_alias \
2746 --build=$build_alias \
2747 --target=$target_alias \
2753 mkdir -p `pwd`/../includes/dvdread
2754 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2755 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2758 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2760 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes $DROID_DVDLIB_SEEK64" \
2761 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2762 --with-dvdread-config="`pwd`/../dvdread-config" \
2763 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2764 --host=$host_alias \
2765 --build=$build_alias \
2766 --target=$target_alias \
2772 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2774 rm -f CMakeCache.txt && \
2775 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2776 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2777 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2778 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2779 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2780 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2781 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2782 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2783 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2784 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2785 if test "$host_vendor" = "apple" ; then
2786 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2787 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2788 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2789 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2792 ], [$DISABLE_PROJECTM])
2794 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2797 CXXFLAGS="$CXXFLAGS" \
2798 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2799 --host=$host_alias \
2800 --build=$build_alias \
2801 --target=$target_alias \
2807 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2808 if test "$host_vendor" = "apple"; then
2809 # clang treats inlines different
2812 TEMPCFLAGS="$CFLAGS";;
2814 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";;
2817 TEMPCFLAGS="$CFLAGS";
2822 CFLAGS="$TEMPCFLAGS" \
2823 CXXFLAGS="$CXXFLAGS" \
2824 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2825 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2826 --host=$host_alias \
2827 --build=$build_alias \
2828 --target=$target_alias \
2829 --without-xscreensaver \
2832 --disable-fieldlines \
2836 --disable-hyperspace \
2839 if echo "$ARCH" | grep -q freebsd ; then
2840 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2844 XB_CONFIG_MODULE([lib/cpluff], [
2845 ./configure --disable-nls \
2846 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2847 --host=$host_alias \
2848 --build=$build_alias \
2849 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2850 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2853 XB_CONFIG_MODULE([lib/gtest], [
2858 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2859 --host=$host_alias \
2860 --build=$build_alias \
2861 --target=$target_alias \
2865 ], [$SKIP_CONFIG_GTEST])
2867 XB_CONFIG_MODULE([pvr-addons], [
2869 --prefix="${prefix}" \
2870 --host=$host_alias \
2871 --build=$build_alias \
2872 --target=$target_alias \
2876 CXXFLAGS="$CXXFLAGS"
2877 ], [$DISABLE_PVR_ADDON_CONFIG])
2881 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2882 echo -e "$final_message\n"