2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [12.9.12], [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 # check for enabling additional players
22 AC_DEFUN([XB_ADD_PLAYER],
24 AC_MSG_CHECKING([for $2])
28 AC_DEFINE([HAS_$1], 1, [using $2])
29 AC_MSG_RESULT([enabling $2])
32 AC_MSG_RESULT([$2 is not enabled])
36 # check for enabling additional codecs
37 AC_DEFUN([XB_ADD_CODEC],
39 AC_MSG_CHECKING([for $2])
44 AC_DEFINE([HAS_$1], 1, [using $2])
45 AC_MSG_RESULT([enabling $2])
48 AC_MSG_RESULT([$2 is not enabled])
52 # check for library basenames
53 AC_DEFUN([XB_FIND_SONAME],
55 if echo "$host" | grep -q freebsd ; then
56 AC_MSG_CHECKING([for lib$2 soname])
57 $1_SONAME=[`ldconfig -r | sed -n "s;.* \(/.*lib$2\.so.*\)$;\1;p" | head -n 1`]
58 if test x$$1_SONAME != x ; then
59 $1_SONAME=[`basename $$1_SONAME`]
61 elif [[ "$host_vendor" != "apple" ]]; then
62 AC_MSG_CHECKING([for lib$2 soname])
63 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
64 if [[ -z $$1_FILENAME ]]; then
65 #try gold linker syntax
66 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "lib$2")
68 if [[ ! -z $$1_FILENAME ]]; then
69 $1_SONAME=$($OBJDUMP -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}')
72 AC_MSG_CHECKING([for lib$2 dylib])
73 gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
74 env_lib_path=[`echo $LDFLAGS | sed 's/-L[ ]*//g'`]
75 if test "$cross_compiling" = yes; then
78 host_lib_path="/usr/lib /usr/local/lib"
80 for path in $gcc_lib_path $env_lib_path $host_lib_path; do
81 lib=[`ls -- $path/lib$2.dylib 2>/dev/null`]
82 if test x$lib != x; then
83 # we want the path/name that is embedded in the dylib
84 $1_SONAME=[`otool -L $lib | grep -v lib$2.dylib | grep lib$2 | awk '{V=1; print $V}'`]
85 $1_SONAME=[`basename $$1_SONAME`]
89 if [[ -z "$$1_SONAME" ]]; then
91 if test -z "$3" || test "x${$3}" = "xyes"; then
92 AC_MSG_ERROR([Unable to determine soname of lib$2 library])
94 AC_MSG_WARN([Unable to determine soname of lib$2 library])
96 AC_MSG_WARN([lib$2 support disabled])
99 AC_MSG_RESULT([$$1_SONAME])
104 # Function to push and pop libs and includes for a command
105 AC_DEFUN([XB_PUSH_FLAGS], [
107 SAVE_INCLUDES="$INCLUDES"
112 INCLUDES="$SAVE_INCLUDES"
115 # General message strings
116 configure_debug="ERROR: this is a configure debug statement"
117 missing_library="Could not find a required library. Please see the README for your platform."
118 missing_headers="Could not find some required headers. Please see the README for your platform."
119 missing_program="Could not find a required program. Please see the README for your platform."
120 xrandr_not_found="== Could not find libXRandR. SDL will be used for resolution support. =="
121 xrandr_disabled="== XRandR support disabled. SDL will be used for resolution support. =="
122 waveform_enabled="== WAVEFORM enabled =="
123 waveform_disabled="== WAVEFORM disabled =="
124 spectrum_enabled="== SPECTRUM enabled =="
125 spectrum_disabled="== SPECTRUM disabled =="
126 goom_enabled="== GOOM enabled. =="
127 goom_disabled="== GOOM disabled. =="
128 alsa_disabled="== ALSA support disabled. =="
129 rsxs_enabled="== RSXS enabled. =="
130 rsxs_disabled="== RSXS disabled. =="
131 fishbmc_enabled="== FishBMC enabled. =="
132 fishbmc_disabled="== FishBMC disabled. =="
133 projectm_enabled="== ProjectM enabled. =="
134 projectm_disabled="== ProjectM disabled. =="
135 wayland_enabled="== Wayland enabled. =="
136 wayland_disabled="== Wayland disabled. =="
137 x11_enabled="== X11 enabled. =="
138 x11_disabled="== X11 disabled. =="
139 pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
140 pulse_disabled="== PulseAudio support disabled. =="
141 dvdcss_enabled="== DVDCSS support enabled. =="
142 dvdcss_disabled="== DVDCSS support disabled. =="
143 hal_not_found="== Could not find hal. HAL support disabled. =="
144 halstorage_not_found="== Could not find hal-storage. HAL support disabled. =="
145 hal_disabled="== HAL support disabled. =="
146 avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
147 avahi_disabled="== Avahi support disabled. =="
148 mdnsembedded_not_found="== Could not find mDNSEmbedded. Might prevent zeroconf support. =="
149 mdnsembedded_disabled="== mDNSEmbedded support disabled. =="
150 vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
151 vdpau_disabled="== VDPAU support manually disabled. =="
152 vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
153 vaapi_disabled="== VAAPI support manually disabled. =="
154 crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
155 crystalhd_disabled="== CrystalHD support manually disabled. =="
156 vtbdecoder_enabled="== VTBDecoder support enabled. =="
157 vtbdecoder_disabled="== VTBDecoder support manually disabled. =="
158 openmax_disabled="== OpenMax support manually disabled. =="
159 openmax_not_found="== Could not find libnvomx. OpenMax support disabled. =="
160 ssh_not_found="== Could not find libssh. =="
161 ssh_disabled="== SSH SFTP disabled. =="
162 librtmp_not_found="== Could not find libRTMP. RTMP support disabled. =="
163 librtmp_disabled="== RTMP support disabled. =="
164 libnfs_not_found="== Could not find libnfs. NFS client support disabled. =="
165 libnfs_disabled="== NFS support disabled. =="
166 libafpclient_not_found="== Could not find libafpclient. AFP client support disabled. =="
167 libafpclient_disabled="== AFP support disabled. =="
168 libshairport_not_found="== Could not find libshairport. =="
169 libshairplay_not_found="== Could not find libshairplay. =="
170 samba_disabled="== SAMBA support disabled. =="
171 libplist_not_found="== Could not find libplist. AirPlay support disabled. =="
172 libplist_disabled="== AirPlay support disabled. =="
173 alsa_not_found="== Could not find ALSA. ALSA support disabled. =="
174 dbus_not_found="== Could not find DBUS. DBUS support disabled. =="
175 libcap_disabled="== Capabilities detection support disabled. =="
176 libcap_not_found="== Could not find libcap. Capabilities detection support disabled. =="
177 gtest_enabled="== Google Test Framework will be configured. =="
178 gtest_disabled="== Google Test Framework will not be configured. =="
180 libudev_not_found="== Could not find libudev. Will use polling to check for device changes. =="
181 libudev_disabled="== udev support disabled. Will use polling to check for device changes. =="
182 libusb_not_found="== Could not find libusb. Plug and play USB device support will not be available. =="
183 libusb_disabled="== libusb disabled. Plug and play USB device support will not be available. =="
184 libusb_disabled_udev_found="== libusb disabled. =="
185 libcec_enabled="== libcec enabled. =="
186 libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
188 # External library message strings
189 external_libraries_enabled="== Use of all supported external libraries enabled. =="
190 external_libraries_disabled="== Use of all supported external libraries disabled. =="
191 dashes="------------------------"
192 final_message="\n XBMC Configuration:"
193 final_message="\n$dashes$final_message\n$dashes"
195 AC_ARG_ENABLE([shared-lib],
196 [AS_HELP_STRING([--enable-shared-lib],
197 [build libxbmc. helpful for tests (default is no)])],
198 [build_shared_lib=$enableval],
199 [build_shared_lib=no])
201 AC_ARG_ENABLE([debug],
202 [AS_HELP_STRING([--enable-debug],
203 [enable debugging information (default is yes)])],
204 [use_debug=$enableval],
208 [AS_HELP_STRING([--with-arch],
209 [build with given arch passing to internal ffmpeg (default is no, needed for crosscompiling)])],
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],
220 [AS_HELP_STRING([--with-cpu],
221 [build with given cpu passing to ffmpeg (default is no)])],
225 AC_ARG_ENABLE([neon],
226 [AS_HELP_STRING([--enable-neon],
227 [enable neon passing to ffmpeg (default is no)])],
228 [use_neon=$enableval],
231 AC_ARG_ENABLE([optimizations],
232 [AS_HELP_STRING([--enable-optimizations],
233 [enable optimization (default is yes)])],
234 [use_optimizations=$enableval],
235 [use_optimizations=yes])
238 [AS_HELP_STRING([--enable-gl],
239 [enable OpenGL rendering (default is yes)])],
243 AC_ARG_ENABLE([gles],
244 [AS_HELP_STRING([--enable-gles],
245 [enable OpenGLES rendering (default is no)])],
246 [use_gles=$enableval],
250 [AS_HELP_STRING([--enable-sdl],
251 [enable SDL (default is auto)])],
252 [use_sdl=$enableval],
255 AC_ARG_ENABLE([vdpau],
256 [AS_HELP_STRING([--enable-vdpau],
257 [enable VDPAU decoding (default is auto)])],
258 [use_vdpau=$enableval],
261 AC_ARG_ENABLE([vaapi],
262 [AS_HELP_STRING([--enable-vaapi],
263 [enable VAAPI decoding (default is auto)])],
264 [use_vaapi=$enableval],
267 AC_ARG_ENABLE([crystalhd],
268 [AS_HELP_STRING([--enable-crystalhd],
269 [enable CrystalHD decoding (default is auto)])],
270 [use_crystalhd=$enableval],
271 [use_crystalhd=auto])
273 AC_ARG_ENABLE([vtbdecoder],
274 [AS_HELP_STRING([--enable-vtbdecoder],
275 [enable VTBDecoder decoding (default is auto)])],
276 [use_vtbdecoder=$enableval],
277 [use_vtbdecoder=auto])
279 AC_ARG_ENABLE([openmax],
280 [AS_HELP_STRING([--enable-openmax],
281 [enable OpenMax decoding (default is auto, requires OpenGLES)])],
282 [use_openmax=$enableval],
285 AC_ARG_ENABLE([tegra],
286 [AS_HELP_STRING([--enable-tegra],
287 [enable Tegra2 arm (default is no)])],
288 [use_tegra=$enableval],
291 AC_ARG_ENABLE([profiling],
292 [AS_HELP_STRING([--enable-profiling],
293 [enable gprof profiling (default is no)])],
294 [use_profiling=$enableval],
297 AC_ARG_ENABLE([joystick],
298 [AS_HELP_STRING([--enable-joystick],
299 [enable SDL joystick support (default is yes)])],
300 [use_joystick=$enableval],
303 AC_ARG_ENABLE([xrandr],
304 [AS_HELP_STRING([--enable-xrandr],
305 [enable XRandR support (default is yes)])],
306 [use_xrandr=$enableval],
309 AC_ARG_ENABLE([waveform],
310 [AS_HELP_STRING([--enable-waveform],
311 [enable Waveform visualisation (default is yes)])],
312 [use_waveform=$enableval],
315 AC_ARG_ENABLE([spectrum],
316 [AS_HELP_STRING([--enable-spectrum],
317 [enable Spectrum visualisation (default is yes)])],
318 [use_spectrum=$enableval],
321 AC_ARG_ENABLE([goom],
322 [AS_HELP_STRING([--enable-goom],
323 [enable GOOM visualisation (default is no)])],
324 [use_goom=$enableval],
327 AC_ARG_ENABLE([rsxs],
328 [AS_HELP_STRING([--enable-rsxs],
329 [enable really slick X screensavers (default is yes)])],
330 [use_rsxs=$enableval],
333 AC_ARG_ENABLE([fishbmc],
334 [AS_HELP_STRING([--enable-fishbmc],
335 [enable FishBMC visualisation (default is yes)])],
336 [use_fishbmc=$enableval],
339 AC_ARG_ENABLE([projectm],
340 [AS_HELP_STRING([--enable-projectm],
341 [enable ProjectM visualisation (default is yes)])],
342 [use_projectm=$enableval],
345 AC_ARG_ENABLE([wayland],
346 [AS_HELP_STRING([--enable-wayland],
347 [enable wayland (default is no) 'Linux Only'])],
348 [use_wayland=$enableval],
352 [AS_HELP_STRING([--enable-x11],
353 [enable x11 (default is yes) 'Linux Only'])],
354 [use_x11=$enableval],
357 AC_ARG_ENABLE([ccache],
358 [AS_HELP_STRING([--enable-ccache],
359 [enable building with ccache feature (default is auto)])],
360 [use_ccache=$enableval],
363 AC_ARG_ENABLE([alsa],
364 [AS_HELP_STRING([--disable-alsa],
365 [disable ALSA support (only for linux/freebsd)])],
366 [use_alsa=$enableval],
369 AC_ARG_ENABLE([pulse],
370 [AS_HELP_STRING([--enable-pulse],
371 [enable PulseAudio support (default is auto)])],
372 [use_pulse=$enableval],
376 [AS_HELP_STRING([--disable-ssh],
377 [disable SSH SFTP support (default is enabled)])],
378 [use_ssh=$enableval],
381 AC_ARG_ENABLE([rtmp],
382 [AS_HELP_STRING([--enable-rtmp],
383 [enable RTMP support via librtmp (default is auto)])],
384 [use_librtmp=$enableval],
387 AC_ARG_ENABLE([samba],
388 [AS_HELP_STRING([--disable-samba],
389 [disable SAMBA support (default is enabled)])],
390 [use_samba=$enableval],
394 [AS_HELP_STRING([--enable-nfs],
395 [enable NFS support via libnfs (default is auto)])],
396 [use_libnfs=$enableval],
399 AC_ARG_ENABLE([afpclient],
400 [AS_HELP_STRING([--enable-afpclient],
401 [enable AFP support via libafpclient (default is auto)])],
402 [use_libafpclient=$enableval],
403 [use_libafpclient=auto])
405 AC_ARG_ENABLE([airplay],
406 [AS_HELP_STRING([--enable-airplay],
407 [enable AirPlay support(default is auto)])],
408 [use_airplay=$enableval],
411 AC_ARG_ENABLE([airtunes],
412 [AS_HELP_STRING([--enable-airtunes],
413 [enable AirTunes support(default is auto)])],
414 [use_airtunes=$enableval],
417 AC_ARG_ENABLE([upnp],
418 [AS_HELP_STRING([--disable-upnp],
419 [disable UPnP support (default is enabled)])],
420 [use_upnp=$enableval],
423 AC_ARG_ENABLE([ffmpeg_libvorbis],
424 [AS_HELP_STRING([--enable-ffmpeg-libvorbis],
425 [enable FFmpeg vorbis encoding (default is no)])],
426 [use_ffmpeg_libvorbis=$enableval],
427 [use_ffmpeg_libvorbis=no])
429 AC_ARG_ENABLE([dvdcss],
430 [AS_HELP_STRING([--enable-dvdcss],
431 [enable DVDCSS support (default is yes)])],
432 [use_dvdcss=$enableval],
436 [AS_HELP_STRING([--enable-mid],
437 [enable MID support (default is no)])],
438 [use_mid=$enableval],
442 [AS_HELP_STRING([--disable-hal],
443 [disable HAL support (default is enabled if hal and hal-storage is found)])],
444 [use_hal=$enableval],
447 AC_ARG_ENABLE([avahi],
448 [AS_HELP_STRING([--disable-avahi],
449 [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
450 [use_avahi=$enableval],
453 AC_ARG_ENABLE([mdnsembedded],
454 [AS_HELP_STRING([--disable-mdnsembedded],
455 [disable mDNSEmbedded support (default is auto)])],
456 [use_mdnsembedded=$enableval],
457 [use_mdnsembedded=auto])
459 AC_ARG_ENABLE([non-free],
460 [AS_HELP_STRING([--disable-non-free],
461 [disable componentents with non-compliant licenses])],
462 [use_nonfree=$enableval],
465 AC_ARG_ENABLE([asap-codec],
466 [AS_HELP_STRING([--enable-asap-codec],
467 [enable ASAP ADPCM support])],
468 [use_asap=$enableval],
471 AC_ARG_ENABLE([mysql],
472 [AS_HELP_STRING([--disable-mysql],
474 [use_mysql=$enableval],
477 AC_ARG_ENABLE([webserver],
478 [AS_HELP_STRING([--disable-webserver],
479 [disable webserver])],
480 [use_webserver=$enableval],
483 AC_ARG_ENABLE([optical-drive],
484 [AS_HELP_STRING([--disable-optical-drive],
485 [disable optical drive])],
486 [use_optical_drive=$enableval],
487 [use_optical_drive=yes])
489 AC_ARG_ENABLE([libbluray],
490 [AS_HELP_STRING([--enable-libbluray],
491 [enable libbluray support])],
492 [use_libbluray=$enableval],
493 [use_libbluray=auto])
495 AC_ARG_ENABLE([texturepacker],
496 [AS_HELP_STRING([--enable-texturepacker],
497 [enable texturepacker support (default is yes)])],
498 [use_texturepacker=$enableval],
499 [use_texturepacker=auto])
501 AC_ARG_WITH([lirc-device],
502 [AS_HELP_STRING([--with-lirc-device=file],
503 [specify the default LIRC device (default is /dev/lircd)])],
504 [lirc_device=$withval],
505 [lirc_device=/dev/lircd])
506 AC_DEFINE_UNQUOTED([LIRC_DEVICE], ["$lirc_device"], [Default LIRC device])
508 AC_ARG_ENABLE([udev],
509 [AS_HELP_STRING([--enable-udev],
510 [enable udev support (default is auto)])],
511 [use_libudev=$enableval],
514 AC_ARG_ENABLE([libusb],
515 [AS_HELP_STRING([--enable-libusb],
516 [enable libusb support (default is auto)])],
517 [use_libusb=$enableval],
520 AC_ARG_ENABLE([libcec],
521 [AS_HELP_STRING([--enable-libcec],
522 [enable libcec support (default is auto)])],
523 [use_libcec=$enableval],
526 AC_ARG_ENABLE([libmp3lame],
527 [AS_HELP_STRING([--enable-libmp3lame],
528 [enable lame mp3 encoder support (default is auto)])],
529 [use_libmp3lame=$enableval],
530 [use_libmp3lame=auto])
532 AC_ARG_ENABLE([libvorbisenc],
533 [AS_HELP_STRING([--enable-libvorbisenc],
534 [enable vorbis encoder support (default is auto)])],
535 [use_libvorbisenc=$enableval],
536 [use_libvorbisenc=auto])
538 AC_ARG_ENABLE([libcap],
539 [AS_HELP_STRING([--enable-libcap],
540 [enable libcap support (default is auto)])],
541 [use_libcap=$enableval],
544 AC_ARG_ENABLE([player],
545 [AS_HELP_STRING([--enable-player],
546 [enable additional players from a list of comma separated names, (default is none, choices are omxplayer)])],
547 [add_players=$enableval],
550 AC_ARG_ENABLE([gtest],
551 [AS_HELP_STRING([--enable-gtest],
552 [configure Google Test Framework (default is no)])],
553 [configure_gtest=$enableval],
554 [configure_gtest=no])
556 AC_ARG_ENABLE([codec],
557 [AS_HELP_STRING([--enable-codec],
558 [enable additional codecs from a list of comma separated names, (default is none, choices are amcodec, libstagefright)])],
559 [add_codecs=$enableval],
562 ### External libraries options
563 AC_ARG_ENABLE([external-libraries],
564 [AS_HELP_STRING([--enable-external-libraries],
565 [enable use of all supported external libraries (default is no) 'Linux only'])],
566 [use_external_libraries=$enableval],
567 [use_external_libraries=no])
569 AC_ARG_ENABLE([libav-compat],
570 [AS_HELP_STRING([--enable-libav-compat],
571 [build a wrapper around libav to provide the functions needed by XBMC. This is
572 *not* supported by XBMC developers and is provided only for convenience. (default is no) 'Linux only'])],
573 [use_libav_hacks=$enableval],
574 [use_libav_hacks=no])
576 ### End of external library options
578 if test "x$host_vendor" != "xapple"; then
579 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
580 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
583 # Checks for programs.
584 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
587 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
588 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
590 AX_PROG_CXX_FOR_BUILD
591 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
598 OBJDUMP="${OBJDUMP:-objdump}"
600 use_external_ffmpeg=no
603 # ffmpeg needs the output of uname -s (e.x. linux, darwin) for the target_os
604 # there is no autoconf variable which will give
605 # the correct output format when doing cross compilation
606 # so we have to use our own var here
607 # defaults to the build side target_os
608 # and should be overridden for cross below (see android)
609 ffmpeg_target_os=$(tolower $(uname -s))
611 # host detection and setup
613 i*86*-linux-android*)
614 target_platform=target_android
618 ffmpeg_target_os=linux
626 i*86*-linux-gnu*|i*86*-*-linux-uclibc*)
628 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
632 target_platform=target_linux
635 x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
637 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
641 target_platform=target_linux
649 ARCH="x86_64-freebsd"
665 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
666 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
667 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
668 PYTHON_NOVERSIONCHECK="no-check"
675 powerpc-apple-darwin*)
682 powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*)
685 powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*)
686 ARCH="powerpc64-linux"
691 ffmpeg_target_os=linux
699 arm*-*linux-android*)
700 target_platform=target_android
704 ffmpeg_target_os=linux
715 AC_MSG_ERROR(unsupported host ($host))
719 check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
720 if test "x$check_sdl_arch" = "xi386" ; then
721 DARWIN_NATIVE_ARCH=-m32
722 elif test "x$check_sdl_arch" = "xx86_64" ; then
723 DARWIN_NATIVE_ARCH=-m64
725 AC_SUBST([DARWIN_NATIVE_ARCH])
727 if test "$target_platform" = "target_android" ; then
729 webserver_checkdepends=yes
730 CFLAGS="$CFLAGS -Wno-psabi"
731 DROID_DVDLIB_SEEK64="-D_FILE_OFFSET_BITS=64 -D_OFF_T_DEFINED_ -Doff_t=off64_t -Dlseek=lseek64"
732 CXXFLAGS="$CXXFLAGS -Wno-psabi"
733 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
736 case $use_platform in
738 target_platform=target_raspberry_pi
742 use_hardcoded_tables="yes"
745 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
746 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
749 ffmpeg_target_os=linux
753 XBMC_SETUP_ARCH_DEFINES()
756 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
757 if test "$GIT_REV" = ""; then
758 if test -f VERSION ; then
759 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
760 elif test "$HAVE_GIT" = "yes" -a -d $(abs_top_srcdir)/.git; then
761 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
766 final_message="$final_message\n git Rev.:\t${GIT_REV}"
768 if test "$host_vendor" = "apple"; then
769 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
771 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
774 if test "$build_shared_lib" = "yes"; then
775 final_message="$final_message\n Shared lib\tYes"
776 AC_SUBST(USE_LIBXBMC,1)
780 # platform debug flags
781 if test "$use_debug" = "yes"; then
782 final_message="$final_message\n Debugging:\tYes"
783 if test "$use_profiling" = "yes"; then
784 final_message="$final_message\n Profiling:\tYes"
785 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
787 final_message="$final_message\n Profiling:\tNo"
788 DEBUG_FLAGS="-g -D_DEBUG -Wall"
791 final_message="$final_message\n Debugging:\tNo"
792 if test "$use_profiling" = "yes"; then
793 final_message="$final_message\n Profiling:\tYes"
794 DEBUG_FLAGS="-pg -DNDEBUG=1"
796 final_message="$final_message\n Profiling:\tNo"
797 DEBUG_FLAGS="-DNDEBUG=1"
800 CFLAGS="$CFLAGS $DEBUG_FLAGS"
801 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
804 if test "$use_optimizations" = "yes"; then
805 final_message="$final_message\n Optimization:\tYes"
806 if test "$target_platform" = "target_raspberry_pi"; then
810 CXXFLAGS="-O2 $CXXFLAGS"
814 final_message="$final_message\n Optimization:\tNo"
818 # platform specific flags
819 if echo "$ARCH" | grep -q "freebsd" ; then
820 LOCALBASE="${LOCALBASE:-/usr/local}"
821 CFLAGS="$CFLAGS -I$LOCALBASE/include"
822 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
823 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
824 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
825 FFMPEG_EXTRACFLAGS="-I$LOCALBASE/include"
827 if test "$host_vendor" = "apple" ; then
828 # standard xbmc paths
829 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
830 if test "$use_arch" != "arm"; then
831 LIBS="$LIBS -framework ApplicationServices"
832 LIBS="$LIBS -framework AudioUnit"
833 LIBS="$LIBS -framework AudioToolbox"
834 LIBS="$LIBS -framework Cocoa"
835 LIBS="$LIBS -framework CoreAudio"
836 LIBS="$LIBS -framework CoreVideo"
837 LIBS="$LIBS -framework CoreServices"
838 LIBS="$LIBS -framework CoreFoundation"
839 LIBS="$LIBS -framework DiskArbitration"
840 LIBS="$LIBS -framework IOKit"
841 LIBS="$LIBS -framework IOSurface"
842 LIBS="$LIBS -framework QuartzCore"
843 LIBS="$LIBS -framework SystemConfiguration"
844 LIBS="$LIBS -framework VideoDecodeAcceleration"
846 USE_EXTERNAL_FFMPEG=1
847 elif test "$target_platform" = "target_raspberry_pi"; then
850 elif test "$use_arch" = "arm"; then
851 CFLAGS="$CFLAGS -mno-apcs-stack-check"
852 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
853 FFMPEG_EXTRACFLAGS=""
854 if test "$use_tegra" = "yes"; then
855 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
856 SAVE_CFLAGS="$CFLAGS"
857 CFLAGS="-mfpu=vfpv3-d16"
859 [AC_LANG_SOURCE([int foo;])],
860 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
861 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
862 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
864 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
865 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
868 if test "$use_neon" = "yes"; then
869 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
870 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
871 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
875 if test "$target_platform" = "target_linux"; then
877 use_static_ffmpeg=yes
878 AC_DEFINE([USE_STATIC_FFMPEG], [1], [link ffmpeg statically])
879 # ffmpeg may depend on gnutls and vorbisenc, we add those libs at the end of linker
880 # command in order to resolve any missing symbols
881 GNUTLS_ALL_LIBS=`${PKG_CONFIG} --static --libs-only-l --silence-errors gnutls`
882 VORBISENC_ALL_LIBS=`${PKG_CONFIG} --static --libs-only-l --silence-errors vorbisenc`
885 # Checks for library functions.
888 AC_FUNC_CLOSEDIR_VOID
889 AC_FUNC_ERROR_AT_LINE
891 AC_PROG_GCC_TRADITIONAL
893 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
897 # Boxee is apparently having compile problems
898 # if HAVE_REALLOC is defined. Sort this later.
900 AC_FUNC_SELECT_ARGTYPES
901 AC_FUNC_SETVBUF_REVERSED
909 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])
911 # Check for various sizes
912 AC_CHECK_SIZEOF([int])
913 AC_CHECK_SIZEOF([size_t])
915 # Check for intrinsics
916 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
917 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
918 [have_builtin_sync_add_and_fetch=yes],
919 [have_builtin_sync_add_and_fetch=no])
920 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
921 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
922 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
923 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
926 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
927 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
928 [have_builtin_sync_sub_and_fetch=yes],
929 [have_builtin_sync_sub_and_fetch=no])
930 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
931 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
932 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
933 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
936 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
937 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
938 [have_builtin_sync_val_compare_and_swap=yes],
939 [have_builtin_sync_val_compare_and_swap=no])
940 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
941 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
942 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
943 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
946 # Check for u16string/u32string declarations
948 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
949 AC_CHECK_TYPES([char16_t, char32_t])
950 AC_CHECK_SIZEOF([wchar_t])
953 # Add top source directory for all builds so we can use config.h
954 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
956 # Check inotify availability
957 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
959 # Checks for boost headers using CXX instead of CC
961 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
965 if test -z "$PYTHON_NOVERSIONCHECK"; then
966 AX_PYTHON_DEVEL([>= 2.4])
967 PYTHON_VERSION=$ac_python_version
970 if test -z "$PYTHON_VERSION"; then
971 AC_MSG_ERROR([Can't find a Python version.])
973 LIBS="$LIBS $PYTHON_LDFLAGS"
974 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
978 if test "$use_wayland" = "yes" && test "$host_vendor" != "apple"; then
979 AC_MSG_NOTICE($wayland_enabled)
980 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client],
981 [INCLUDES="$INCLUDES $WAYLAND_CLIENT_CFLAGS";
982 WAYLAND_CLIENT_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-client\`; echo ${LIBRARY:2}`;
983 XB_FIND_SONAME([WAYLAND_CLIENT_LIBRARY], ${WAYLAND_CLIENT_LIBRARY_LINE})],
984 AC_MSG_ERROR($missing_library))
985 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],
986 [INCLUDES="$INCLUDES $WAYLAND_EGL_CFLAGS";
987 WAYLAND_EGL_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-egl\`; echo ${LIBRARY:2:11}`
988 XB_FIND_SONAME([WAYLAND_EGL_LIBRARY], ${WAYLAND_EGL_LIBRARY_LINE})],
989 AC_MSG_ERROR($missing_library))
990 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
991 [INCLUDES="$INCLUDES $XKBCOMMON_CFLAGS";
992 XKBCOMMON_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l xkbcommon\`; echo ${LIBRARY:2}`;
993 XB_FIND_SONAME([XKBCOMMON_LIBRARY], $XKBCOMMON_LIBRARY_LINE)],
994 AC_MSG_ERROR($missing_library))
995 AC_DEFINE([HAVE_WAYLAND], [1], [Define to 1 if you have Wayland libs installed.])
996 AC_DEFINE([HAVE_XKBCOMMON], [1], [Define to 1 if you have libxkbcommon installed.])
998 # If we are also building with tests then we want to build
999 # wayland tests as well
1000 if test "$configure_gtest" = "yes"; then
1002 PKG_CHECK_MODULES([PIXMAN],
1003 [pixman-1],have_pixman=yes,
1004 [AC_MSG_WARN($missing_library); have_pixman=no])
1005 PKG_CHECK_MODULES([WESTON],
1006 [weston >= 1.1.90],[have_weston_sdk=yes],
1007 [have_weston_sdk=no; AC_MSG_WARN($missing_library)])
1009 AC_CHECK_PROG(WAYLAND_SCANNER, wayland-scanner, "wayland-scanner", "no")
1010 if test "x$WAYLAND_SCANNER" == "xno"; then
1011 AC_MSG_WARN($missing_program)
1013 if test "x$have_weston_sdk" == "xyes" && test "x$have_pixman" = "xyes"; then
1014 AC_SUBST(WAYLAND_TEST_INCLUDES,"$WAYLAND_CLIENT_CFLAGS $XKBCOMMON_CFLAGS $PIXMAN_CFLAGS $WESTON_CFLAGS")
1015 AC_SUBST(WAYLAND_TEST_LIBS,"$WAYLAND_CLIENT_LIBS $XKBCOMMON_LIBS $PIXMAN_LIBS $WESTON_LIBS")
1016 AC_DEFINE([HAVE_WESTON_SDK], [1], [Define to 1 if Weston SDK is installed.])
1017 AC_SUBST(USE_WAYLAND_TEST_EXTENSION, 1)
1019 AC_SUBST(WAYLAND_SCANNER)
1020 AC_DEFINE([HAVE_WAYLAND_XBMC_PROTO],[1],["Define to 1 if the wayland test-protocol will be built"])
1024 # Disable SDL and X11 builds
1029 # Wayland requires the EGL "window system" which in turn only supports
1030 # the OpenGL ES API, so enable gles support
1033 AC_MSG_RESULT($wayland_disabled)
1036 # Checks for platforms libraries.
1037 if test "$use_gles" = "yes"; then
1039 # GLES overwrites GL if both set to yes.
1040 if test "$host_vendor" = "apple" ; then
1041 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1042 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1043 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1045 if test "$target_platform" = "target_raspberry_pi"; then
1046 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1047 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1048 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1049 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
1051 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
1052 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
1056 if test "$use_gl" = "yes"; then
1057 if test "$host_vendor" = "apple" ; then
1058 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
1059 LIBS="$LIBS -framework OpenGL"
1060 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
1061 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
1062 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
1063 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
1064 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1066 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
1067 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1068 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
1071 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
1072 AC_CHECK_LIB([SDL_gfx],[main])
1076 # platform common libraries
1077 if test "$use_mysql" = "yes"; then
1078 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
1079 if test "x$MYSQL_CONFIG" != "xno"; then
1080 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
1081 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
1082 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
1083 LIBS="$LIBS $MYSQL_LIBS"
1084 AC_SUBST(MYSQL_LIBS)
1086 AC_MSG_ERROR($missing_program)
1089 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1090 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1091 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1092 AC_INCLUDES_DEFAULT()
1093 [#include <mpeg2dec/mpeg2.h>])
1094 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
1095 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1096 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
1097 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1098 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1099 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1100 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1101 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1103 # we need to check for the header because if it exists we set the openssl
1104 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1105 # in MT manner correctly.
1106 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1107 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1108 if test "$gcrypt_headers_available" = "yes"; then
1109 # if we have the headers then we must have the lib
1110 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1111 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1112 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1114 PKG_CHECK_MODULES([GNUTLS], [gnutls], [have_gnutls=yes];AC_DEFINE([HAVE_GNUTLS], [1], [Define if we have gnutls]), AC_MSG_WARN("gnutls not found, ffmpeg TLS support disabled"))
1116 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1117 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1118 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1119 if echo "$ARCH" | grep -q freebsd; then
1120 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1121 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1122 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1123 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1125 if test "$target_platform" != "target_android" ; then
1126 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1127 AC_CHECK_LIB([pthread], [pthread_setname_np],
1128 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1129 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1132 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1133 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1134 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1135 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1136 if test "$use_mysql" = "yes"; then
1137 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1139 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1140 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1141 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1142 if test "$target_platform" = "target_android" ; then
1143 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1144 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1145 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1147 PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
1148 [INCLUDES="$INCLUDES $LIBXML_CFLAGS"; LIBS="$LIBS $LIBXML_LIBS"],
1149 AC_MSG_ERROR($missing_library))
1150 PKG_CHECK_MODULES([LIBXSLT], [libxslt],
1151 [INCLUDES="$INCLUDES $LIBXSLT_CFLAGS"; LIBS="$LIBS $LIBXSLT_LIBS"],
1152 AC_MSG_ERROR($missing_library))
1153 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1154 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1155 AC_MSG_ERROR($missing_library))
1156 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1157 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1158 AC_MSG_ERROR($missing_library))
1159 PKG_CHECK_MODULES([PNG], [libpng],
1160 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1161 AC_MSG_ERROR($missing_library))
1162 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1163 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1164 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1165 AC_MSG_ERROR($missing_library))
1166 PKG_CHECK_MODULES([PCRE], [libpcre],
1167 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1168 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1169 AC_MSG_ERROR($missing_library))
1170 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1171 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1172 AC_MSG_ERROR($missing_library))
1173 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1174 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1175 AC_MSG_ERROR($missing_library))
1176 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1177 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1178 AC_MSG_ERROR($missing_library))
1180 if test "$use_optical_drive" = "yes"; then
1181 PKG_CHECK_MODULES([CDIO], [libcdio],
1182 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1183 AC_MSG_ERROR($missing_library))
1186 if test "$target_platform" = "target_android" ; then
1187 PKG_CHECK_MODULES([ZIP], [libzip],
1188 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1189 AC_MSG_ERROR($missing_library))
1192 # check for libbluray
1193 AS_CASE([x$use_libbluray],
1195 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1198 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1201 AS_CASE([x$use_libbluray],
1203 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1204 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1205 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1206 AC_SUBST([HAVE_LIBBLURAY], 1)
1207 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1208 AC_CHECK_DECL([BD_EVENT_IDLE],
1209 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1210 [[#include <libbluray/bluray.h>]]))
1212 AC_SUBST([HAVE_LIBBLURAY], 0)
1216 #Check to see if libs are needed for functions that are often built-in to libc
1217 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1218 AC_SEARCH_LIBS([dlopen],dl)
1219 AC_SEARCH_LIBS([clock_gettime],rt)
1220 AC_SEARCH_LIBS([dn_expand], resolv)
1221 AC_SEARCH_LIBS([_dn_expand], resolv)
1222 AC_SEARCH_LIBS([__dn_expand],resolv)
1224 # platform dependent libraries
1225 if test "$host_vendor" = "apple" ; then
1226 if test "$use_arch" != "arm"; then
1227 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1228 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1231 if test "$target_platform" != "target_android" ; then
1232 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1234 if test "x$use_alsa" != "xno"; then
1235 PKG_CHECK_MODULES([ALSA], [alsa],
1236 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1237 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1239 PKG_CHECK_MODULES([DBUS], [dbus-1],
1240 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1241 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1242 AC_MSG_NOTICE($missing_library); use_dbus=no)
1243 if test "x$use_sdl" != "xno"; then
1244 PKG_CHECK_MODULES([SDL], [sdl],
1245 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1246 AC_MSG_ERROR($missing_library))
1247 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1248 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1252 XB_FIND_SONAME([MAD], [mad])
1253 XB_FIND_SONAME([OGG], [ogg])
1254 XB_FIND_SONAME([CURL], [curl])
1255 XB_FIND_SONAME([FLAC], [FLAC])
1256 XB_FIND_SONAME([VORBIS], [vorbis])
1257 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1258 XB_FIND_SONAME([MODPLUG], [modplug])
1259 XB_FIND_SONAME([ASS], [ass])
1260 XB_FIND_SONAME([MPEG2], [mpeg2])
1263 if test "x$use_libmp3lame" != "xno"; then
1264 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1265 if test "x$use_libmp3lame" != "xno"; then
1266 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1269 AS_CASE([x$use_libmp3lame],
1271 AC_SUBST([HAVE_LIBMP3LAME], 0)
1274 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1275 AC_SUBST([HAVE_LIBMP3LAME], 1)
1278 if test "x$use_libvorbisenc" != "xno"; then
1279 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1280 if test "x$use_libvorbisenc" != "xno"; then
1281 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1284 AS_CASE([x$use_libvorbisenc],
1286 AC_SUBST([HAVE_LIBVORBISENC], 0)
1288 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1289 AC_SUBST([HAVE_LIBVORBISENC], 1)
1294 if test "$use_webserver" = "yes"; then
1295 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1299 if test "$use_optical_drive" = "yes"; then
1300 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1304 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1305 PKG_CHECK_MODULES([ALSA], [alsa],
1306 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1307 AC_MSG_ERROR($missing_library))
1308 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1311 AC_MSG_RESULT($alsa_disabled)
1315 if test "x$use_pulse" != "xno"; then
1316 if test "$host_vendor" = "apple" ; then
1317 if test "x$use_pulse" = "xyes"; then
1318 AC_MSG_ERROR($pulse_disabled)
1321 AC_MSG_RESULT($pulse_disabled)
1325 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0],
1326 [INCLUDES="$INCLUDES $PULSE_CFLAGS"; LIBS="$LIBS $PULSE_LIBS"; USE_PULSE=1;
1327 HAVE_LIBPULSE=1; AC_DEFINE([HAVE_LIBPULSE],[1],[Pulse audio enabled])],
1328 [pulse_found="no"; USE_PULSE=0; HAVE_LIBPULSE=0])
1330 if test "$pulse_found" = "no"; then
1331 if test "x$use_pulse" = "xyes"; then
1332 AC_MSG_ERROR($pulse_not_found)
1334 AC_MSG_RESULT($pulse_disabled)
1339 AC_MSG_RESULT($pulse_disabled)
1344 if test "$host_vendor" = "apple" ; then
1346 AC_MSG_RESULT($hal_disabled)
1348 if test "$use_hal" = "yes"; then
1349 PKG_CHECK_MODULES([HAL], [hal],
1350 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1351 use_hal=no;AC_MSG_RESULT($hal_not_found))
1352 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1353 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1354 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1356 AC_MSG_RESULT($hal_disabled)
1358 if test "$use_hal" = "yes"; then
1359 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1364 if test "$host_vendor" = "apple" ; then
1366 AC_MSG_RESULT($avahi_disabled)
1368 if test "$use_avahi" = "yes"; then
1369 AC_CHECK_LIB([avahi-common], [main],,
1370 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1371 if test "$use_avahi" = "yes"; then
1372 #either both libs or none
1373 AC_CHECK_LIB([avahi-client], [main],,
1374 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1377 AC_MSG_RESULT($avahi_disabled)
1382 if test "$use_mdnsembedded" != "no"; then
1383 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1384 [if test "$use_mdnsembedded" = "yes"; then
1385 AC_MSG_ERROR($mdnsembedded_not_found)
1387 elif test "$use_mdnsembedded" != "no"; then
1388 AC_MSG_NOTICE($mdnsembedded_not_found)
1389 use_mdnsembedded="no"
1393 if test $use_mdnsembedded != "no"; then
1397 AC_MSG_RESULT($mdnsembedded_disabled)
1400 AC_SUBST(USE_MDNSEMBEDDED)
1403 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1404 AC_MSG_NOTICE($x11_enabled)
1405 PKG_CHECK_MODULES([X11], [x11],
1406 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1407 AC_MSG_ERROR($missing_library))
1408 PKG_CHECK_MODULES([XEXT], [xext],
1409 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1410 AC_MSG_ERROR($missing_library))
1411 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1413 AC_MSG_RESULT($x11_disabled)
1417 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1419 AC_MSG_RESULT($xrandr_disabled)
1421 if test "$use_xrandr" = "yes" ; then
1422 AC_CHECK_LIB([Xrandr], [main],,
1423 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1425 AC_MSG_RESULT($xrandr_disabled)
1430 if test "$use_waveform" = "yes"; then
1431 AC_MSG_NOTICE($waveform_enabled)
1434 AC_MSG_NOTICE($waveform_disabled)
1439 if test "$use_spectrum" = "yes"; then
1440 AC_MSG_NOTICE($spectrum_enabled)
1443 AC_MSG_NOTICE($spectrum_disabled)
1448 if test "$host_vendor" = "apple" ; then
1449 AC_MSG_NOTICE($goom_disabled)
1452 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1453 AC_MSG_NOTICE($goom_enabled)
1456 AC_MSG_NOTICE($goom_disabled)
1462 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1463 AC_MSG_NOTICE($rsxs_disabled)
1466 AC_MSG_NOTICE($rsxs_enabled)
1468 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1469 if test "$host_vendor" != "apple" ; then
1470 PKG_CHECK_MODULES([XT], [xt],
1471 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1472 AC_MSG_ERROR($missing_library))
1473 PKG_CHECK_MODULES([XMU], [xmu],
1474 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1475 AC_MSG_ERROR($missing_library))
1480 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1481 AC_MSG_NOTICE($fishbmc_disabled)
1485 AC_MSG_NOTICE($fishbmc_enabled)
1490 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1491 AC_MSG_NOTICE($projectm_disabled)
1495 AC_MSG_NOTICE($projectm_enabled)
1501 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1502 use_skin_touched=yes
1504 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1510 if test "x$use_ssh" = "xno"; then
1511 AC_MSG_NOTICE($ssh_disabled)
1514 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1515 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1519 if test "$use_librtmp" != "no"; then
1520 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1521 [if test "$use_librtmp" = "yes"; then
1522 AC_MSG_ERROR($librtmp_not_found)
1523 elif test "$use_librtmp" != "no"; then
1524 AC_MSG_NOTICE($librtmp_not_found)
1528 if test "$use_librtmp" != "no"; then
1529 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1531 if test "$use_librtmp" != "no"; then
1532 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1535 AC_MSG_NOTICE($librtmp_disabled)
1539 if test "x$use_samba" != "xno"; then
1540 PKG_CHECK_MODULES([SAMBA], [smbclient],
1541 [INCLUDES="$INCLUDES $SAMBA_CFLAGS"; LIBS="$LIBS $SAMBA_LIBS"],
1542 [AC_CHECK_LIB([smbclient], [main],,
1543 use_samba=no;AC_MSG_ERROR($missing_library))
1547 AC_MSG_RESULT($samba_disabled)
1551 if test "x$use_samba" != "xno"; then
1552 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1557 if test "$use_libnfs" != "no"; then
1558 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1559 [if test "$use_libnfs" = "yes"; then
1560 AC_MSG_ERROR($libnfs_not_found)
1562 elif test "$use_libnfs" != "no"; then
1563 AC_MSG_NOTICE($libnfs_not_found)
1568 if test "$use_libnfs" != "no"; then
1569 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1571 if test "$use_libnfs" != "no"; then
1572 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1577 AC_MSG_NOTICE($libnfs_disabled)
1582 if test "x$use_libafpclient" != "xno"; then
1583 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1584 [if test "x$use_libafpclient" = "xyes"; then
1585 AC_MSG_ERROR($libafpclient_not_found)
1586 elif test "x$use_libafpclient" != "xno"; then
1587 AC_MSG_NOTICE($libafpclient_not_found)
1588 use_libafpclient="no"
1591 if test "x$use_libafpclient" != "xno"; then
1592 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1593 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1597 AC_MSG_NOTICE($libafpclient_disabled)
1600 # libplist for airplay feature
1602 if test "$use_airplay" != "no"; then
1603 AC_CHECK_HEADER([plist/plist.h],,
1604 [if test "$use_airplay" = "yes"; then
1605 AC_MSG_ERROR($libplist_not_found)
1606 elif test "$use_airplay" != "no"; then
1607 AC_MSG_NOTICE($libplist_not_found)
1612 if test "$use_airplay" != "no"; then
1613 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1615 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1619 # libshairplay for AirTunes (prefered lib)
1621 if test "x$use_airtunes" != "xno"; then
1622 AC_CHECK_HEADERS([shairplay/raop.h],USE_AIRTUNES=1,
1623 [AC_MSG_NOTICE($libshairplay_not_found)
1626 if test "x$USE_AIRTUNES" != "x0"; then
1627 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [USE_AIRTUNES])
1629 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1630 [[#include <shairplay/raop.h>]])
1631 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1634 #libshairport - as a fallback for AirTunes
1635 if test "x$USE_AIRTUNES" == "x0"; then
1636 AC_CHECK_HEADERS([shairport/shairport.h],USE_AIRTUNES=1,
1637 [AC_MSG_NOTICE($libshairport_not_found)
1640 if test "x$USE_AIRTUNES" != "x0"; then
1641 XB_FIND_SONAME([SHAIRPORT], [shairport], [USE_AIRTUNES])
1642 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1643 [[#include <shairport/shairport.h>]])
1644 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1648 if test "x$USE_AIRTUNES" == "x0"; then
1649 if test "x$use_airtunes" == "xyes"; then
1650 AC_MSG_ERROR("No airtunes library could be found. (libshairport/libshairplay)")
1658 if test "$host_vendor" = "apple" ; then
1660 AC_MSG_NOTICE($libudev_disabled)
1662 if test "$use_libudev" = "auto"; then
1663 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1664 elif test "$use_libudev" = "yes" ; then
1665 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1667 AC_MSG_NOTICE($libudev_disabled)
1670 if test "x$use_libudev" != "xno"; then
1671 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1672 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1679 # if libudev is available, we don't need libusb
1680 if test "x$use_libudev" != "xno"; then
1682 AC_MSG_NOTICE($libusb_disabled_udev_found)
1684 if test "$host_vendor" = "apple" ; then
1686 AC_MSG_NOTICE($libusb_disabled)
1688 if echo "$ARCH" | grep -q freebsd ; then
1689 AC_CHECK_LIB([usb],[main],
1690 [use_libusb="yes";USB_LIBS="-lusb"],
1691 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1692 elif test "$use_libusb" = "auto"; then
1693 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1694 elif test "$use_libusb" = "yes"; then
1695 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1697 AC_MSG_NOTICE($libusb_disabled)
1700 if test "x$use_libusb" != "xno"; then
1701 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1702 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1709 if test "x$use_libcec" != "xno"; then
1710 # libcec is dyloaded, so we need to check for its headers and link any depends.
1711 if test "x$use_libcec" != "xno"; then
1712 if test "x$use_libcec" != "xauto"; then
1713 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1715 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1718 if test "x$use_libcec" != "xno"; then
1719 INCLUDES="$INCLUDES $CEC_CFLAGS"
1720 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1721 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1722 AC_MSG_NOTICE($libcec_enabled)
1725 AC_MSG_NOTICE($libcec_disabled)
1730 AC_MSG_NOTICE($libcec_disabled)
1734 if test "$use_libcap" != "no"; then
1735 AC_CHECK_HEADERS([sys/capability.h],,
1736 [if test "$use_libcap" = "yes"; then
1737 AC_MSG_ERROR($libcap_not_found)
1738 elif test "$use_libcap" != "no"; then
1739 AC_MSG_NOTICE($libcap_not_found)
1743 if test "$use_libcap" != "no"; then
1744 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1746 if test "$use_libcap" != "no"; then
1747 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1750 AC_MSG_NOTICE($libcap_disabled)
1753 ### External libraries checks
1755 # Hacks for supporting libav
1758 if test "$use_libav_hacks" = "yes"; then
1759 export PKG_CONFIG_PATH="${srcdir}/lib/xbmc-libav-hacks/pkgconfig/:$PKG_CONFIG_PATH"
1761 AC_DEFINE([USE_LIBAV_HACKS], [1], [Whether to use libav compatibility hacks.])
1765 if test "$use_external_ffmpeg" = "yes"; then
1766 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale libswresample"
1768 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1769 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1770 AC_MSG_ERROR($missing_library))
1772 # in case the headers are in a custom directory
1773 SAVE_CPPFLAGS="$CPPFLAGS"
1774 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1776 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1777 [AC_MSG_ERROR($missing_headers)])
1779 AC_MSG_NOTICE($external_ffmpeg_enabled)
1780 USE_EXTERNAL_FFMPEG=1
1781 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1783 CPPFLAGS="$SAVE_CPPFLAGS"
1785 AC_MSG_NOTICE($external_ffmpeg_disabled)
1786 USE_EXTERNAL_FFMPEG=0
1789 echo "Checking for SWIG installation"
1790 AC_PATH_PROG(SWIG_EXE, swig, "none")
1791 if test "$SWIG_EXE" = "none"; then
1792 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1793 if test "$SWIG20_EXE" != "none" ; then
1794 SWIG_EXE=$SWIG20_EXE
1797 if test "$SWIG_EXE" = "none"; then
1798 AC_MSG_ERROR($missing_program)
1800 final_message="$final_message\n SWIG Available:\tYes"
1802 echo "Checking for a jre installation"
1803 AC_PATH_PROG(JAVA_EXE, java, "none")
1804 if test "$JAVA_EXE" = "none"; then
1805 AC_MSG_ERROR($missing_program)
1807 final_message="$final_message\n JRE Available:\tYes"
1809 echo "Checking for doxygen installation"
1810 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1811 if test "$DOXYGEN_EXE" = "none"; then
1812 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1813 final_message="$final_message\n Doxygen Available:\tNo"
1816 final_message="$final_message\n Doxygen Available:\tYes"
1821 if test "x$use_vdpau" != "xno"; then
1822 if test "$host_vendor" = "apple" ; then
1823 if test "x$use_vdpau" = "xyes"; then
1824 AC_MSG_ERROR([VDPAU not supported on this platform])
1827 AC_MSG_NOTICE($vdpau_disabled)
1832 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1833 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1834 [if test "x$use_vdpau" = "xyes"; then
1836 AC_MSG_ERROR([$vdpau_not_found])
1840 AC_MSG_RESULT($vdpau_not_found)
1845 AC_MSG_NOTICE($vdpau_disabled)
1849 if test "x$use_vaapi" != "xno"; then
1850 if test "$host_vendor" = "apple" ; then
1851 if test "x$use_vaapi" = "xyes"; then
1852 AC_MSG_ERROR([VAAPI not supported on this platform])
1855 AC_MSG_NOTICE($vaapi_disabled)
1859 initial_val=$use_vaapi
1860 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1861 if test "x$use_vaapi" != "xno"; then
1862 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1865 if test "x$use_vaapi" = "xno"; then
1866 if test "x$initial_val" = "xyes"; then
1867 AC_MSG_ERROR($vaapi_not_found)
1869 AC_MSG_RESULT($vaapi_not_found)
1873 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1878 AC_MSG_NOTICE($vaapi_disabled)
1883 if test "x$use_crystalhd" != "xno"; then
1884 SAVE_CFLAGS="$CFLAGS"
1885 CFLAGS="-D__LINUX_USER__"
1886 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1887 [ if test "x$use_crystalhd" = "xyes"; then
1888 AC_MSG_ERROR($crystalhd_not_found)
1891 AC_MSG_RESULT($crystalhd_not_found)
1895 CFLAGS="$SAVE_CFLAGS"
1896 if test "$host_vendor" != "apple"; then
1897 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1899 if test "x$use_crystalhd" != "xno"; then
1900 SAVE_CFLAGS="$CFLAGS"
1901 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1902 # check for new crystalhd lib
1904 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1905 #include <libcrystalhd/bc_dts_defs.h>
1906 PBC_INFO_CRYSTAL bCrystalInfo;])],
1907 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1908 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1909 CFLAGS="$SAVE_CFLAGS"
1913 AC_MSG_NOTICE($crystalhd_disabled)
1918 if test "x$use_vtbdecoder" != "xno"; then
1919 if test "$host_vendor" = "apple" ; then
1920 HAVE_VIDEOTOOLBOXDECODER=1
1921 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1922 AC_MSG_NOTICE($vtbdecoder_enabled)
1924 if test "x$use_vtbdecoder" = "xyes"; then
1925 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1928 AC_MSG_NOTICE($vtbdecoder_disabled)
1932 AC_MSG_NOTICE($vtbdecoder_disabled)
1936 if test "$host_vendor" = "apple" ; then
1939 AC_MSG_NOTICE($openmax_disabled)
1940 elif test "$target_platform" = "target_raspberry_pi"; then
1943 AC_MSG_NOTICE($openmax_disabled)
1945 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1946 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1947 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1948 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1949 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1950 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1951 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1952 AC_MSG_ERROR($openmax_not_found))
1954 AC_MSG_NOTICE($openmax_disabled)
1960 # yajl version check (yajl_version.h was added in yajl 2.0)
1961 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1962 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1965 # additional internal players
1966 case $add_players in
1968 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1972 # additional internal codecs
1973 # remember to convert commas to spaces
1974 for codecs in `echo $add_codecs | sed 's/,/ /g'`; do
1977 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
1978 XB_ADD_CODEC([LIBAMCODEC], [amcodec], [$codecs])
1981 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright], [$codecs])
1987 # platform specific bin utilities
1988 if test "$build_vendor" != "apple" ; then
1989 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1990 if test "$HAVE_GAWK" = "no" ; then
1991 AC_MSG_ERROR($missing_program)
1995 if test "$use_arch" != "arm" ; then
1996 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1997 if test "$HAVE_CMAKE" = "no" ; then
1998 AC_MSG_ERROR($missing_program)
2002 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
2003 if test "$HAVE_GPERF" = "no" ; then
2004 AC_MSG_ERROR($missing_program)
2007 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
2008 if test "$HAVE_UNZIP" = "no" ; then
2009 AC_MSG_ERROR($missing_program)
2012 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
2013 if test "$HAVE_ZIP" = "no" ; then
2014 AC_MSG_ERROR($missing_program)
2017 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
2018 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
2019 if test "$HAVE_NASM" = "no" ; then
2020 AC_MSG_ERROR($missing_program)
2024 # Checks for header files.
2028 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
2029 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
2030 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
2031 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
2032 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
2034 # Checks for typedefs, structures, and compiler characteristics.
2050 AC_CHECK_MEMBERS([struct stat.st_rdev])
2059 if test "$cross_compiling" = "yes"; then
2060 final_message="$final_message\n Crosscomp.:\tYes"
2061 if [[ -d "$NATIVE_ROOT" ]]; then
2062 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2063 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2064 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
2065 if test "$host_vendor" != "apple" ; then
2066 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
2068 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
2071 final_message="$final_message\n Crosscomp.:\tNo"
2074 final_message="$final_message\n target ARCH:\t$use_arch"
2075 final_message="$final_message\n target CPU:\t$use_cpu"
2077 if test "$use_gles" = "yes"; then
2078 final_message="$final_message\n OpenGLES:\tYes"
2083 if test "$use_gl" = "yes"; then
2084 final_message="$final_message\n OpenGL:\tYes"
2087 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2088 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2093 if test "$use_alsa" = "yes"; then
2095 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2096 final_message="$final_message\n ALSA:\t\tYes"
2099 final_message="$final_message\n ALSA:\t\tNo"
2102 if test "$use_dbus" = "yes"; then
2103 final_message="$final_message\n DBUS:\t\tYes"
2105 final_message="$final_message\n DBUS:\t\tNo"
2108 if test "x$use_vdpau" != "xno"; then
2109 final_message="$final_message\n VDPAU:\tYes"
2111 final_message="$final_message\n VDPAU:\tNo"
2114 if test "x$use_vaapi" != "xno"; then
2115 final_message="$final_message\n VAAPI:\tYes"
2117 final_message="$final_message\n VAAPI:\tNo"
2120 if test "x$use_crystalhd" != "xno"; then
2121 final_message="$final_message\n CrystalHD:\tYes"
2123 final_message="$final_message\n CrystalHD:\tNo"
2126 if test "x$use_vtbdecoder" != "xno"; then
2127 final_message="$final_message\n VTBDecoder:\tYes"
2129 final_message="$final_message\n VTBDecoder:\tNo"
2132 if test "$use_openmax" != "no"; then
2133 final_message="$final_message\n OpenMax:\tYes"
2135 final_message="$final_message\n OpenMax:\tNo"
2138 if test "$use_joystick" = "yes"; then
2139 final_message="$final_message\n Joystick:\tYes"
2140 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2142 final_message="$final_message\n Joystick:\tNo"
2145 if test "$use_xrandr" = "yes"; then
2146 final_message="$final_message\n XRandR:\tYes"
2149 final_message="$final_message\n XRandR:\tNo"
2153 if test "$use_waveform" = "yes"; then
2154 final_message="$final_message\n Waveform:\tYes"
2156 final_message="$final_message\n Waveform:\tNo"
2159 if test "$use_spectrum" = "yes"; then
2160 final_message="$final_message\n Spectrum:\tYes"
2162 final_message="$final_message\n Spectrum:\tNo"
2165 if test "$use_goom" = "yes"; then
2166 final_message="$final_message\n GOOM:\t\tYes"
2168 final_message="$final_message\n GOOM:\t\tNo"
2171 if test "$use_rsxs" = "yes"; then
2172 final_message="$final_message\n RSXS:\t\tYes"
2174 final_message="$final_message\n RSXS:\t\tNo"
2177 if test "$use_fishbmc" = "yes"; then
2178 final_message="$final_message\n FishBMC:\tYes"
2180 final_message="$final_message\n FishBMC:\tNo"
2183 if test "$use_projectm" = "yes"; then
2184 final_message="$final_message\n ProjectM:\tYes"
2186 final_message="$final_message\n ProjectM:\tNo"
2189 if test "$use_skin_touched" = "yes"; then
2190 final_message="$final_message\n Skin Touched:\tYes"
2192 final_message="$final_message\n Skin Touched:\tNo"
2195 if test "$use_x11" = "yes"; then
2196 final_message="$final_message\n X11:\t\tYes"
2198 final_message="$final_message\n X11:\t\tNo"
2201 if test "$use_wayland" = "yes"; then
2202 final_message="$final_message\n Wayland:\tYes"
2206 final_message="$final_message\n Wayland:\tNo"
2209 if test "$use_libbluray" = "yes"; then
2210 final_message="$final_message\n Bluray:\tYes"
2212 final_message="$final_message\n Bluray:\tNo"
2215 if test "x$use_texturepacker" != "xno"; then
2216 final_message="$final_message\n TexturePacker:Yes"
2219 final_message="$final_message\n TexturePacker:No"
2223 if test "$use_mid" = "yes"; then
2224 final_message="$final_message\n MID Support:\tYes"
2225 SDL_DEFINES="$SDL_DEFINES -DMID"
2227 final_message="$final_message\n MID Support:\tNo"
2232 if test "x$use_ccache" != "xno"; then
2233 AC_PATH_PROG(CCACHE,ccache,none)
2234 if test "$ac_cv_path_CCACHE" = "none"; then
2235 if test "x$use_ccache" = "xyes"; then
2236 AC_MSG_ERROR([ccache not found.]);
2238 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2239 final_message="$final_message\n ccache:\tNo"
2242 CC="$ac_cv_path_CCACHE $CC"
2243 CXX="$ac_cv_path_CCACHE $CXX"
2244 AC_MSG_NOTICE(enabling ccache)
2245 final_message="$final_message\n ccache:\tYes"
2248 final_message="$final_message\n ccache:\tNo"
2251 if test "$use_alsa" = "yes"; then
2252 final_message="$final_message\n ALSA Support:\tYes"
2254 final_message="$final_message\n ALSA Support:\tNo"
2257 if test "x$use_pulse" != "xno"; then
2258 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2259 final_message="$final_message\n PulseAudio:\tYes"
2261 XBMC_STANDALONE_SH_PULSE=/dev/null
2262 final_message="$final_message\n PulseAudio:\tNo"
2265 if test "$use_hal" = "yes"; then
2266 final_message="$final_message\n HAL Support:\tYes"
2268 final_message="$final_message\n HAL Support:\tNo"
2272 if test "$use_dvdcss" = "yes"; then
2273 AC_MSG_NOTICE($dvdcss_enabled)
2274 final_message="$final_message\n DVDCSS:\tYes"
2276 SKIP_CONFIG_DVDCSS=0
2277 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2279 AC_MSG_NOTICE($dvdcss_disabled)
2280 final_message="$final_message\n DVDCSS:\tNo"
2282 SKIP_CONFIG_DVDCSS=1
2283 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2285 if test "$host_vendor" = "apple"; then
2286 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2289 # Google Test Framework
2290 if test "$configure_gtest" = "yes"; then
2291 AC_MSG_NOTICE($gtest_enabled)
2292 final_message="$final_message\n Google Test Framework Configured:\tYes"
2296 AC_MSG_NOTICE($gtest_disabled)
2297 final_message="$final_message\n Google Test Framework Configured:\tNo"
2302 if test "$use_avahi" = "yes"; then
2303 final_message="$final_message\n Avahi:\tYes"
2305 final_message="$final_message\n Avahi:\tNo"
2308 if test "$use_mdnsembedded" != "no"; then
2309 final_message="$final_message\n mDNSEmbedded:\tYes"
2311 final_message="$final_message\n mDNSEmbedded:\tNo"
2314 if test "$use_nonfree" = "yes"; then
2315 final_message="$final_message\n Non-free:\tYes"
2317 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2320 final_message="$final_message\n Non-free:\tNo"
2323 if test "$use_asap" = "yes"; then
2324 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2325 if test "$HAVE_GDC" = "no"; then
2326 AC_MSG_ERROR($missing_program);
2328 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2329 if test "$HAVE_FPC" = "no"; then
2330 AC_MSG_ERROR($missing_program);
2333 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2334 final_message="$final_message\n ASAP Codec:\tYes"
2337 final_message="$final_message\n ASAP Codec:\tNo"
2340 if test "$use_mysql" = "yes"; then
2341 final_message="$final_message\n MySQL:\tYes"
2344 final_message="$final_message\n MySQL:\tNo"
2347 if test "$use_webserver" = "yes"; then
2348 final_message="$final_message\n Webserver:\tYes"
2351 final_message="$final_message\n Webserver:\tNo"
2355 if test "$use_libssh" != "no"; then
2356 final_message="$final_message\n libssh support:\tYes"
2358 final_message="$final_message\n libssh support:\tNo"
2361 if test "$use_librtmp" != "no"; then
2362 final_message="$final_message\n libRTMP support:\tYes"
2364 final_message="$final_message\n libRTMP support:\tNo"
2367 if test "x$use_samba" != "xno"; then
2368 final_message="$final_message\n libsmbclient support:\tYes"
2370 final_message="$final_message\n libsmbclient support:\tNo"
2373 if test "$use_libnfs" != "no"; then
2374 final_message="$final_message\n libnfs client support:Yes"
2376 final_message="$final_message\n libnfs client support:No"
2379 if test "x$use_libafpclient" != "xno"; then
2380 final_message="$final_message\n libafpclient support:\tYes"
2382 final_message="$final_message\n libafpclient support:\tNo"
2385 if test "$use_airplay" != "no"; then
2386 final_message="$final_message\n AirPlay support:\tYes"
2388 final_message="$final_message\n AirPLay support:\tNo"
2391 if test "x$use_airtunes" != "xno"; then
2392 if test "x$USE_LIBSHAIRPLAY" == "x1"; then
2393 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2395 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2398 final_message="$final_message\n AirTunes support:\tNo"
2401 if test "x$use_upnp" != "xno"; then
2402 final_message="$final_message\n UPnP support:\t\tYes"
2404 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2407 final_message="$final_message\n UPnP support:\t\tNo"
2410 if test "$use_optical_drive" = "yes"; then
2411 final_message="$final_message\n Optical drive:\tYes"
2413 final_message="$final_message\n Optical drive:\tNo"
2416 if test "x$use_libudev" != "xno"; then
2417 final_message="$final_message\n libudev support:\tYes"
2419 final_message="$final_message\n libudev support:\tNo"
2422 if test "x$use_libusb" != "xno"; then
2423 final_message="$final_message\n libusb support:\tYes"
2425 final_message="$final_message\n libusb support:\tNo"
2428 if test "x$use_libcec" != "xno"; then
2429 final_message="$final_message\n libcec support:\tYes"
2431 final_message="$final_message\n libcec support:\tNo"
2434 if test "x$use_libmp3lame" != "xno"; then
2435 final_message="$final_message\n libmp3lame support:\tYes"
2437 final_message="$final_message\n libmp3lame support:\tNo"
2440 if test "x$use_libvorbisenc" != "xno"; then
2441 final_message="$final_message\n libvorbisenc support:\tYes"
2443 final_message="$final_message\n libvorbisenc support:\tNo"
2446 if test "x$use_libcap" != "xno"; then
2447 final_message="$final_message\n libcap support:\tYes"
2449 final_message="$final_message\n libcap support:\tNo"
2452 if test "x$add_players" != "xno"; then
2453 final_message="$final_message\n additional players:\tYes, $add_players"
2455 final_message="$final_message\n additional players:\tNo"
2458 if test "x$add_codecs" != "xno"; then
2459 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2461 final_message="$final_message\n additional codecs:\tNo"
2464 ### External libraries messages
2466 if test "$use_external_ffmpeg" = "yes"; then
2467 final_message="$final_message\n External FFmpeg:\tYes"
2469 final_message="$final_message\n External FFmpeg:\tNo"
2472 if test "$host_vendor" = "apple" ; then
2473 # built internal but referenced as external, we link directly to them.
2474 # this MUST be the last thing before OUTPUT_FILES as they do not
2475 # exist until after we build FFMpeg.
2476 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2477 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2478 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2479 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2480 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2481 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2482 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2486 DISABLE_PVR_ADDON_CONFIG=1
2487 if [[ -f "pvr-addons/Makefile.am" ]]; then
2488 final_message="$final_message\n PVR add-ons:\t\tYes"
2490 DISABLE_PVR_ADDON_CONFIG=0
2492 final_message="$final_message\n PVR add-ons:\t\tNo"
2495 OUTPUT_FILES="Makefile \
2497 addons/skin.confluence/media/Makefile \
2499 xbmc/cdrip/Makefile \
2500 xbmc/cores/Makefile \
2501 xbmc/cores/VideoRenderers/Makefile \
2502 xbmc/cores/dvdplayer/Makefile \
2504 lib/libdvd/Makefile \
2505 xbmc/cores/DllLoader/Makefile \
2506 xbmc/cores/DllLoader/exports/Makefile \
2507 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2508 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2509 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2510 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2511 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2512 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2513 xbmc/cores/AudioEngine/Makefile \
2514 xbmc/cores/paplayer/Makefile \
2515 xbmc/cores/omxplayer/Makefile \
2516 lib/timidity/Makefile \
2517 lib/xbadpcm/Makefile \
2519 lib/nosefart/Makefile \
2520 lib/libsidplay2/Makefile \
2521 lib/vgmstream/Makefile \
2522 lib/snesapu/SNES/SNESAPU/Makefile \
2523 lib/stsound/StSoundLibrary/Makefile \
2524 xbmc/cores/playercorefactory/Makefile \
2525 xbmc/music/karaoke/Makefile \
2527 xbmc/guilib/Makefile \
2528 xbmc/input/linux/Makefile \
2529 xbmc/interfaces/Makefile \
2530 xbmc/network/Makefile \
2531 xbmc/network/upnp/Makefile \
2532 lib/libRTV/Makefile \
2533 lib/libexif/Makefile \
2534 lib/libXDAAP/Makefile \
2535 lib/cmyth/Makefile \
2536 lib/libhdhomerun/Makefile \
2537 lib/libsquish/Makefile \
2538 lib/cximage-6.0/Makefile \
2539 lib/libUPnP/Makefile \
2540 xbmc/DllPaths_generated.h \
2541 xbmc/DllPaths_generated_android.h \
2542 xbmc/freebsd/Makefile \
2543 xbmc/linux/Makefile \
2544 xbmc/filesystem/Makefile \
2545 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2546 xbmc/visualizations/XBMCProjectM/Makefile \
2547 xbmc/visualizations/Goom/Makefile \
2548 xbmc/visualizations/OpenGLSpectrum/Makefile \
2549 xbmc/visualizations/fishBMC/Makefile \
2550 xbmc/visualizations/WaveForm/Makefile \
2551 xbmc/windowing/Makefile \
2552 xbmc/windowing/egl/Makefile \
2553 lib/addons/library.xbmc.addon/Makefile \
2554 lib/addons/library.xbmc.codec/Makefile \
2555 lib/addons/library.xbmc.gui/Makefile \
2556 lib/addons/library.xbmc.pvr/Makefile \
2557 xbmc/visualizations/EGLHelpers/Makefile \
2558 tools/Linux/xbmc.sh \
2559 tools/Linux/xbmc-standalone.sh \
2560 tools/TexturePacker/Makefile \
2561 tools/EventClients/Clients/OSXRemote/Makefile \
2562 xbmc/peripherals/bus/Makefile \
2563 xbmc/peripherals/devices/Makefile \
2564 xbmc/android/activity/Makefile \
2565 xbmc/android/loader/Makefile \
2566 xbmc/android/jni/Makefile \
2567 xbmc/utils/Makefile \
2568 xbmc/main/Makefile \
2569 project/cmake/xbmc-config.cmake"
2571 if test "$use_wayland" = "yes"; then
2572 OUTPUT_FILES="$OUTPUT_FILES xbmc/windowing/tests/wayland/Makefile"
2575 if test "$use_skin_touched" = "yes"; then
2576 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2579 if test "$use_codec_libstagefright" = "yes"; then
2580 OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile"
2583 OUTPUT_FILES="$OUTPUT_FILES \
2584 xbmc/interfaces/python/Makefile \
2585 xbmc/interfaces/python/test/Makefile"
2587 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2588 # .dummy.am does nothing.
2589 AC_CONFIG_FILES([.dummy])
2591 AC_CONFIG_FILES([${OUTPUT_FILES}])
2592 OUTPUT_FILES="$OUTPUT_FILES \
2598 AC_SUBST(CXX_FOR_BUILD)
2599 AC_SUBST(CC_FOR_BUILD)
2600 AC_SUBST(CFLAGS_FOR_BUILD)
2601 AC_SUBST(CXXFLAGS_FOR_BUILD)
2602 AC_SUBST(LDFLAGS_FOR_BUILD)
2603 AC_SUBST(SDL_DEFINES)
2604 AC_SUBST(BUILD_DVDCSS)
2605 AC_SUBST(DISABLE_WAVEFORM)
2606 AC_SUBST(DISABLE_SPECTRUM)
2607 AC_SUBST(DISABLE_GOOM)
2608 AC_SUBST(DISABLE_RSXS)
2609 AC_SUBST(DISABLE_FISHBMC)
2610 AC_SUBST(DISABLE_PROJECTM)
2611 AC_SUBST(USE_SKIN_TOUCHED)
2612 AC_SUBST(USE_EXTERNAL_FFMPEG)
2613 AC_SUBST(USE_STATIC_FFMPEG)
2614 AC_SUBST(USE_LIBAV_HACKS)
2615 AC_SUBST(PYTHON_VERSION)
2616 AC_SUBST(OUTPUT_FILES)
2617 AC_SUBST(HAVE_XBMC_NONFREE)
2618 AC_SUBST(USE_ASAP_CODEC)
2619 AC_SUBST(LIBCURL_BASENAME)
2620 AC_SUBST(LIBFLAC_BASENAME)
2621 AC_SUBST(LIBVORBISFILE_BASENAME)
2622 AC_SUBST(LIBMODPLUG_BASENAME)
2623 AC_SUBST(LIBMAD_BASENAME)
2624 AC_SUBST(LIBOGG_BASENAME)
2625 AC_SUBST(LIBVORBISENC_BASENAME)
2626 AC_SUBST(LIBVORBIS_BASENAME)
2627 AC_SUBST(LIBASS_BASENAME)
2628 AC_SUBST(LIBMEPG2_BASENAME)
2629 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2630 AC_SUBST(USE_OPENGL)
2631 AC_SUBST(USE_OPENGLES)
2634 AC_SUBST(USE_CRYSTALHD)
2635 AC_SUBST(USE_LIBSMBCLIENT)
2636 AC_SUBST(USE_LIBNFS)
2637 AC_SUBST(USE_LIBAFPCLIENT)
2638 AC_SUBST(USE_AIRPLAY)
2639 AC_SUBST(USE_OPENMAX)
2641 AC_SUBST(HAVE_LIBPULSE)
2642 AC_SUBST(USE_XRANDR)
2644 AC_SUBST(USE_TEXTUREPACKER)
2645 AC_SUBST(USE_AIRTUNES)
2646 AC_SUBST(USE_LIBUDEV)
2647 AC_SUBST(USE_LIBUSB)
2648 AC_SUBST(USE_LIBCEC)
2650 AC_SUBST(USE_WAYLAND)
2651 AC_SUBST(USE_WEB_SERVER)
2653 AC_SUBST(USE_XKBCOMMON)
2654 AC_SUBST(USE_OMXLIB)
2655 AC_SUBST(USE_ANDROID)
2656 AC_SUBST(GTEST_CONFIGURED)
2657 AC_SUBST(USE_DOXYGEN)
2658 AC_SUBST(USE_PVR_ADDONS)
2659 AC_SUBST(GNUTLS_ALL_LIBS)
2660 AC_SUBST(VORBISENC_ALL_LIBS)
2662 # pushd and popd are not available in other shells besides bash, so implement
2663 # our own pushd/popd functions
2668 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2670 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2673 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2678 if [[ -n "$XB_DIRSTACK" ]]; then
2679 XB_DIRSTACK="${XB_DIRSTACK#* }"
2680 cd "${XB_DIRSTACK%% *}"
2683 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2687 # Function to run the configure scripts in our submodules
2688 # Consists of three paramaters, the path to the submodule, the configure command
2689 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2690 # running the script, anything else if not.
2691 AC_DEFUN([XB_CONFIG_MODULE],[
2692 AC_CONFIG_COMMANDS_POST([
2693 if [[ $3 != "1" ]]; then
2694 if [[ -d $1 ]]; then
2697 if [[ $? -ne 0 ]]; then
2699 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2704 AC_MSG_ERROR([[Submodule $1 does not exist]])
2707 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2712 XB_CONFIG_MODULE([lib/ffmpeg], [
2713 if test "$host_vendor" = "apple" ; then
2714 ffmpg_config="--target-os=$ffmpeg_target_os"
2715 # handle disables first, we do individual enables later
2716 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2717 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2718 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2719 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2720 ffmpg_config="$ffmpg_config --enable-vda --disable-crystalhd"
2721 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2723 # handle conditional enables/disables
2724 if test "$use_debug" = "no"; then
2725 ffmpg_config="$ffmpg_config --disable-debug"
2727 if test "$use_cpu" != "no"; then
2728 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2730 if test "$use_arch" != "no"; then
2731 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2733 if test "$use_arch" = "arm"; then
2734 ffmpg_config="$ffmpg_config --enable-pic"
2735 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2736 if test "$use_neon" = "yes"; then
2737 ffmpg_config="$ffmpg_config --enable-neon"
2739 ffmpg_config="$ffmpg_config --disable-neon"
2742 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2744 if test "$use_ffmpeg_libvorbis" = "yes"; then
2745 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2747 ffmpg_config="$ffmpg_config --disable-libvorbis"
2749 if test "$have_gnutls" = "yes"; then
2750 ffmpg_config="$ffmpg_config --enable-gnutls"
2753 # handle individual enables
2754 ffmpg_config="$ffmpg_config --enable-gpl"
2755 ffmpg_config="$ffmpg_config --enable-postproc"
2756 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2757 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts --enable-muxer=asf --enable-muxer=ipod"
2758 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2"
2759 ffmpg_config="$ffmpg_config --enable-protocol=http"
2760 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2762 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2765 ffmpg_config="$ffmpg_config --cc=clang" ;;
2767 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2770 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2771 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2773 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2775 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2776 # dependency files in the right place, replace it with something that works
2779 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2782 # ffmpeg will use yasm found at ${prefix}/bin during configure
2783 # but then hardcodes 'yasm' in config.mak, fix it.
2784 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2785 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2786 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2791 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2793 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2795 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2796 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2797 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2798 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2799 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2800 --target-os=$ffmpeg_target_os \
2802 --enable-muxer=spdif \
2803 --enable-muxer=adts \
2804 --enable-muxer=asf \
2805 --enable-muxer=ipod \
2806 --disable-encoders \
2807 --enable-encoder=ac3 \
2808 --enable-encoder=aac \
2809 --enable-encoder=wmav2 \
2810 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2811 --disable-decoder=mpeg_xvmc \
2815 --disable-ffserver \
2817 --disable-crystalhd \
2818 `if test "$use_static_ffmpeg" = "yes"; then echo --enable-static; else echo --enable-shared; fi` \
2822 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2823 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2824 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2825 --enable-protocol=http \
2826 `if test "$have_gnutls" = "yes"; then echo --enable-gnutls; fi` \
2828 --enable-runtime-cpudetect \
2829 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2830 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2831 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2832 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2833 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2835 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2836 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2838 ], [$USE_EXTERNAL_FFMPEG])
2840 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2844 CFLAGS="$CFLAGS $DROID_DVDLIB_SEEK64" \
2845 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2846 --host=$host_alias \
2847 --build=$build_alias \
2848 --target=$target_alias \
2852 ], [$SKIP_CONFIG_DVDCSS])
2854 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2856 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src $DROID_DVDLIB_SEEK64" \
2857 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2858 --host=$host_alias \
2859 --build=$build_alias \
2860 --target=$target_alias \
2866 mkdir -p `pwd`/../includes/dvdread
2867 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2868 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2871 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2873 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes $DROID_DVDLIB_SEEK64" \
2874 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2875 --with-dvdread-config="`pwd`/../dvdread-config" \
2876 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2877 --host=$host_alias \
2878 --build=$build_alias \
2879 --target=$target_alias \
2885 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2887 rm -f CMakeCache.txt && \
2888 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2889 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2890 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2891 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2892 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2893 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2894 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2895 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2896 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2897 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2898 if test "$host_vendor" = "apple" ; then
2899 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2900 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2901 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2902 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2905 ], [$DISABLE_PROJECTM])
2907 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2910 CXXFLAGS="$CXXFLAGS" \
2911 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2912 --host=$host_alias \
2913 --build=$build_alias \
2914 --target=$target_alias \
2920 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2921 if test "$host_vendor" = "apple"; then
2922 # clang treats inlines different
2925 TEMPCFLAGS="$CFLAGS";;
2927 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";;
2930 TEMPCFLAGS="$CFLAGS";
2935 CFLAGS="$TEMPCFLAGS" \
2936 CXXFLAGS="$CXXFLAGS" \
2937 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2938 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2939 --host=$host_alias \
2940 --build=$build_alias \
2941 --target=$target_alias \
2942 --without-xscreensaver \
2945 --disable-fieldlines \
2949 --disable-hyperspace \
2952 if echo "$ARCH" | grep -q freebsd ; then
2953 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2957 XB_CONFIG_MODULE([lib/cpluff], [
2958 ./configure --disable-nls \
2959 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2960 --host=$host_alias \
2961 --build=$build_alias \
2962 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2963 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2966 XB_CONFIG_MODULE([lib/gtest], [
2971 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2972 --host=$host_alias \
2973 --build=$build_alias \
2974 --target=$target_alias \
2978 ], [$SKIP_CONFIG_GTEST])
2980 XB_CONFIG_MODULE([pvr-addons], [
2982 --prefix="${prefix}" \
2983 --host=$host_alias \
2984 --build=$build_alias \
2985 --target=$target_alias \
2989 CXXFLAGS="$CXXFLAGS"
2990 ], [$DISABLE_PVR_ADDON_CONFIG])
2994 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2995 echo -e "$final_message\n"