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 manually 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 use_static_ffmpeg=yes
634 x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
636 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
640 use_static_ffmpeg=yes
647 ARCH="x86_64-freebsd"
663 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
664 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
665 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
666 PYTHON_NOVERSIONCHECK="no-check"
673 powerpc-apple-darwin*)
680 powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*)
683 powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*)
684 ARCH="powerpc64-linux"
689 ffmpeg_target_os=linux
696 use_static_ffmpeg=yes
698 arm*-*linux-android*)
699 target_platform=target_android
703 ffmpeg_target_os=linux
714 AC_MSG_ERROR(unsupported host ($host))
718 check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
719 if test "x$check_sdl_arch" = "xi386" ; then
720 DARWIN_NATIVE_ARCH=-m32
721 elif test "x$check_sdl_arch" = "xx86_64" ; then
722 DARWIN_NATIVE_ARCH=-m64
724 AC_SUBST([DARWIN_NATIVE_ARCH])
726 if test "$target_platform" = "target_android" ; then
728 webserver_checkdepends=yes
729 CFLAGS="$CFLAGS -Wno-psabi"
730 DROID_DVDLIB_SEEK64="-D_FILE_OFFSET_BITS=64 -D_OFF_T_DEFINED_ -Doff_t=off64_t -Dlseek=lseek64"
731 CXXFLAGS="$CXXFLAGS -Wno-psabi"
732 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
735 case $use_platform in
737 target_platform=target_raspberry_pi
741 use_hardcoded_tables="yes"
744 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
745 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
748 ffmpeg_target_os=linux
752 XBMC_SETUP_ARCH_DEFINES()
755 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
756 if test "$GIT_REV" = ""; then
757 if test -f VERSION ; then
758 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
759 elif test "$HAVE_GIT" = "yes"; then
760 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
765 final_message="$final_message\n git Rev.:\t${GIT_REV}"
767 if test "$host_vendor" = "apple"; then
768 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
770 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
773 if test "$build_shared_lib" = "yes"; then
774 final_message="$final_message\n Shared lib\tYes"
775 AC_SUBST(USE_LIBXBMC,1)
779 # platform debug flags
780 if test "$use_debug" = "yes"; then
781 final_message="$final_message\n Debugging:\tYes"
782 if test "$use_profiling" = "yes"; then
783 final_message="$final_message\n Profiling:\tYes"
784 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
786 final_message="$final_message\n Profiling:\tNo"
787 DEBUG_FLAGS="-g -D_DEBUG -Wall"
790 final_message="$final_message\n Debugging:\tNo"
791 if test "$use_profiling" = "yes"; then
792 final_message="$final_message\n Profiling:\tYes"
793 DEBUG_FLAGS="-pg -DNDEBUG=1"
795 final_message="$final_message\n Profiling:\tNo"
796 DEBUG_FLAGS="-DNDEBUG=1"
799 CFLAGS="$CFLAGS $DEBUG_FLAGS"
800 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
803 if test "$use_optimizations" = "yes"; then
804 final_message="$final_message\n Optimization:\tYes"
805 if test "$target_platform" = "target_raspberry_pi"; then
809 CXXFLAGS="-O2 $CXXFLAGS"
813 final_message="$final_message\n Optimization:\tNo"
817 # platform specific flags
818 if echo "$ARCH" | grep -q "freebsd" ; then
819 LOCALBASE="${LOCALBASE:-/usr/local}"
820 CFLAGS="$CFLAGS -I$LOCALBASE/include"
821 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
822 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
823 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
824 FFMPEG_EXTRACFLAGS="-I$LOCALBASE/include"
826 if test "$host_vendor" = "apple" ; then
827 # standard xbmc paths
828 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
829 if test "$use_arch" != "arm"; then
830 LIBS="$LIBS -framework ApplicationServices"
831 LIBS="$LIBS -framework AudioUnit"
832 LIBS="$LIBS -framework AudioToolbox"
833 LIBS="$LIBS -framework Cocoa"
834 LIBS="$LIBS -framework CoreAudio"
835 LIBS="$LIBS -framework CoreVideo"
836 LIBS="$LIBS -framework CoreServices"
837 LIBS="$LIBS -framework CoreFoundation"
838 LIBS="$LIBS -framework DiskArbitration"
839 LIBS="$LIBS -framework IOKit"
840 LIBS="$LIBS -framework IOSurface"
841 LIBS="$LIBS -framework QuartzCore"
842 LIBS="$LIBS -framework SystemConfiguration"
843 LIBS="$LIBS -framework VideoDecodeAcceleration"
845 USE_EXTERNAL_FFMPEG=1
846 elif test "$target_platform" = "target_raspberry_pi"; then
849 elif test "$use_arch" = "arm"; then
850 CFLAGS="$CFLAGS -mno-apcs-stack-check"
851 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
852 FFMPEG_EXTRACFLAGS=""
853 if test "$use_tegra" = "yes"; then
854 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
855 SAVE_CFLAGS="$CFLAGS"
856 CFLAGS="-mfpu=vfpv3-d16"
858 [AC_LANG_SOURCE([int foo;])],
859 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
860 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
861 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
863 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
864 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
867 if test "$use_neon" = "yes"; then
868 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
869 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
870 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
874 if test "$use_static_ffmpeg" = "yes"; then
876 AC_DEFINE([USE_STATIC_FFMPEG], [1], [link ffmpeg statically])
877 # ffmpeg may depend on gnutls and vorbisenc, we add those libs at the end of linker
878 # command in order to resolve any missing symbols
879 GNUTLS_ALL_LIBS=`${PKG_CONFIG} --static --libs-only-l --silence-errors gnutls`
880 VORBISENC_ALL_LIBS=`${PKG_CONFIG} --static --libs-only-l --silence-errors vorbisenc`
883 # Checks for library functions.
886 AC_FUNC_CLOSEDIR_VOID
887 AC_FUNC_ERROR_AT_LINE
889 AC_PROG_GCC_TRADITIONAL
891 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
895 # Boxee is apparently having compile problems
896 # if HAVE_REALLOC is defined. Sort this later.
898 AC_FUNC_SELECT_ARGTYPES
899 AC_FUNC_SETVBUF_REVERSED
907 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])
909 # Check for various sizes
910 AC_CHECK_SIZEOF([int])
911 AC_CHECK_SIZEOF([size_t])
913 # Check for intrinsics
914 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
915 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
916 [have_builtin_sync_add_and_fetch=yes],
917 [have_builtin_sync_add_and_fetch=no])
918 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
919 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
920 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
921 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
924 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
925 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
926 [have_builtin_sync_sub_and_fetch=yes],
927 [have_builtin_sync_sub_and_fetch=no])
928 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
929 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
930 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
931 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
934 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
935 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
936 [have_builtin_sync_val_compare_and_swap=yes],
937 [have_builtin_sync_val_compare_and_swap=no])
938 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
939 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
940 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
941 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
944 # Check for u16string/u32string declarations
946 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
947 AC_CHECK_TYPES([char16_t, char32_t])
948 AC_CHECK_SIZEOF([wchar_t])
951 # Add top source directory for all builds so we can use config.h
952 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
954 # Check inotify availability
955 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
957 # Checks for boost headers using CXX instead of CC
959 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
963 if test -z "$PYTHON_NOVERSIONCHECK"; then
964 AX_PYTHON_DEVEL([>= 2.4])
965 PYTHON_VERSION=$ac_python_version
968 if test -z "$PYTHON_VERSION"; then
969 AC_MSG_ERROR([Can't find a Python version.])
971 LIBS="$LIBS $PYTHON_LDFLAGS"
972 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
976 if test "$use_wayland" = "yes" && test "$host_vendor" != "apple"; then
977 AC_MSG_NOTICE($wayland_enabled)
978 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client],
979 [INCLUDES="$INCLUDES $WAYLAND_CLIENT_CFLAGS";
980 WAYLAND_CLIENT_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-client\`; echo ${LIBRARY:2}`;
981 XB_FIND_SONAME([WAYLAND_CLIENT_LIBRARY], ${WAYLAND_CLIENT_LIBRARY_LINE})],
982 AC_MSG_ERROR($missing_library))
983 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],
984 [INCLUDES="$INCLUDES $WAYLAND_EGL_CFLAGS";
985 WAYLAND_EGL_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-egl\`; echo ${LIBRARY:2:11}`
986 XB_FIND_SONAME([WAYLAND_EGL_LIBRARY], ${WAYLAND_EGL_LIBRARY_LINE})],
987 AC_MSG_ERROR($missing_library))
988 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
989 [INCLUDES="$INCLUDES $XKBCOMMON_CFLAGS";
990 XKBCOMMON_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l xkbcommon\`; echo ${LIBRARY:2}`;
991 XB_FIND_SONAME([XKBCOMMON_LIBRARY], $XKBCOMMON_LIBRARY_LINE)],
992 AC_MSG_ERROR($missing_library))
993 AC_DEFINE([HAVE_WAYLAND], [1], [Define to 1 if you have Wayland libs installed.])
994 AC_DEFINE([HAVE_XKBCOMMON], [1], [Define to 1 if you have libxkbcommon installed.])
996 # If we are also building with tests then we want to build
997 # wayland tests as well
998 if test "$configure_gtest" = "yes"; then
1000 PKG_CHECK_MODULES([PIXMAN],
1001 [pixman-1],have_pixman=yes,
1002 [AC_MSG_WARN($missing_library); have_pixman=no])
1003 PKG_CHECK_MODULES([WESTON],
1004 [weston >= 1.1.90],[have_weston_sdk=yes],
1005 [have_weston_sdk=no; AC_MSG_WARN($missing_library)])
1007 AC_CHECK_PROG(WAYLAND_SCANNER, wayland-scanner, "wayland-scanner", "no")
1008 if test "x$WAYLAND_SCANNER" == "xno"; then
1009 AC_MSG_WARN($missing_program)
1011 if test "x$have_weston_sdk" == "xyes" && test "x$have_pixman" = "xyes"; then
1012 AC_SUBST(WAYLAND_TEST_INCLUDES,"$WAYLAND_CLIENT_CFLAGS $XKBCOMMON_CFLAGS $PIXMAN_CFLAGS $WESTON_CFLAGS")
1013 AC_SUBST(WAYLAND_TEST_LIBS,"$WAYLAND_CLIENT_LIBS $XKBCOMMON_LIBS $PIXMAN_LIBS $WESTON_LIBS")
1014 AC_DEFINE([HAVE_WESTON_SDK], [1], [Define to 1 if Weston SDK is installed.])
1015 AC_SUBST(USE_WAYLAND_TEST_EXTENSION, 1)
1017 AC_SUBST(WAYLAND_SCANNER)
1018 AC_DEFINE([HAVE_WAYLAND_XBMC_PROTO],[1],["Define to 1 if the wayland test-protocol will be built"])
1022 # Disable SDL and X11 builds
1027 # Wayland requires the EGL "window system" which in turn only supports
1028 # the OpenGL ES API, so enable gles support
1031 AC_MSG_RESULT($wayland_disabled)
1034 # Checks for platforms libraries.
1035 if test "$use_gles" = "yes"; then
1037 # GLES overwrites GL if both set to yes.
1038 if test "$host_vendor" = "apple" ; then
1039 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1040 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1041 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1043 if test "$target_platform" = "target_raspberry_pi"; then
1044 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1045 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1046 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1047 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
1049 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
1050 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
1054 if test "$use_gl" = "yes"; then
1055 if test "$host_vendor" = "apple" ; then
1056 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
1057 LIBS="$LIBS -framework OpenGL"
1058 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
1059 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
1060 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
1061 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
1062 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1064 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
1065 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1066 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
1069 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
1070 AC_CHECK_LIB([SDL_gfx],[main])
1074 # platform common libraries
1075 if test "$use_mysql" = "yes"; then
1076 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
1077 if test "x$MYSQL_CONFIG" != "xno"; then
1078 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
1079 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
1080 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
1081 LIBS="$LIBS $MYSQL_LIBS"
1082 AC_SUBST(MYSQL_LIBS)
1084 AC_MSG_ERROR($missing_program)
1087 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1088 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1089 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1090 AC_INCLUDES_DEFAULT()
1091 [#include <mpeg2dec/mpeg2.h>])
1092 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
1093 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1094 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
1095 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1096 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1097 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1098 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1099 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1101 # we need to check for the header because if it exists we set the openssl
1102 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1103 # in MT manner correctly.
1104 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1105 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1106 if test "$gcrypt_headers_available" = "yes"; then
1107 # if we have the headers then we must have the lib
1108 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1109 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1110 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1112 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"))
1114 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1115 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1116 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1117 if echo "$ARCH" | grep -q freebsd; then
1118 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1119 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1120 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1121 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1123 if test "$target_platform" != "target_android" ; then
1124 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1125 AC_CHECK_LIB([pthread], [pthread_setname_np],
1126 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1127 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1130 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1131 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1132 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1133 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1134 if test "$use_mysql" = "yes"; then
1135 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1137 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1138 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1139 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1140 if test "$target_platform" = "target_android" ; then
1141 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1142 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1143 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1145 PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
1146 [INCLUDES="$INCLUDES $LIBXML_CFLAGS"; LIBS="$LIBS $LIBXML_LIBS"],
1147 AC_MSG_ERROR($missing_library))
1148 PKG_CHECK_MODULES([LIBXSLT], [libxslt],
1149 [INCLUDES="$INCLUDES $LIBXSLT_CFLAGS"; LIBS="$LIBS $LIBXSLT_LIBS"],
1150 AC_MSG_ERROR($missing_library))
1151 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1152 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1153 AC_MSG_ERROR($missing_library))
1154 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1155 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1156 AC_MSG_ERROR($missing_library))
1157 PKG_CHECK_MODULES([PNG], [libpng],
1158 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1159 AC_MSG_ERROR($missing_library))
1160 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1161 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1162 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1163 AC_MSG_ERROR($missing_library))
1164 PKG_CHECK_MODULES([PCRE], [libpcre],
1165 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1166 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1167 AC_MSG_ERROR($missing_library))
1168 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1169 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1170 AC_MSG_ERROR($missing_library))
1171 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1172 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1173 AC_MSG_ERROR($missing_library))
1174 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1175 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1176 AC_MSG_ERROR($missing_library))
1178 if test "$use_optical_drive" = "yes"; then
1179 PKG_CHECK_MODULES([CDIO], [libcdio],
1180 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1181 AC_MSG_ERROR($missing_library))
1184 if test "$target_platform" = "target_android" ; then
1185 PKG_CHECK_MODULES([ZIP], [libzip],
1186 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1187 AC_MSG_ERROR($missing_library))
1190 # check for libbluray
1191 AS_CASE([x$use_libbluray],
1193 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1196 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1199 AS_CASE([x$use_libbluray],
1201 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1202 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1203 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1204 AC_SUBST([HAVE_LIBBLURAY], 1)
1205 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1206 AC_CHECK_DECL([BD_EVENT_IDLE],
1207 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1208 [[#include <libbluray/bluray.h>]]))
1210 AC_SUBST([HAVE_LIBBLURAY], 0)
1214 #Check to see if libs are needed for functions that are often built-in to libc
1215 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1216 AC_SEARCH_LIBS([dlopen],dl)
1217 AC_SEARCH_LIBS([clock_gettime],rt)
1218 AC_SEARCH_LIBS([dn_expand], resolv)
1219 AC_SEARCH_LIBS([_dn_expand], resolv)
1220 AC_SEARCH_LIBS([__dn_expand],resolv)
1222 # platform dependent libraries
1223 if test "$host_vendor" = "apple" ; then
1224 if test "$use_arch" != "arm"; then
1225 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1226 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1229 if test "$target_platform" != "target_android" ; then
1230 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1232 if test "x$use_alsa" != "xno"; then
1233 PKG_CHECK_MODULES([ALSA], [alsa],
1234 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1235 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1237 PKG_CHECK_MODULES([DBUS], [dbus-1],
1238 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1239 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1240 AC_MSG_NOTICE($missing_library); use_dbus=no)
1241 if test "x$use_sdl" != "xno"; then
1242 PKG_CHECK_MODULES([SDL], [sdl],
1243 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1244 AC_MSG_ERROR($missing_library))
1245 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1246 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1250 XB_FIND_SONAME([MAD], [mad])
1251 XB_FIND_SONAME([OGG], [ogg])
1252 XB_FIND_SONAME([CURL], [curl])
1253 XB_FIND_SONAME([FLAC], [FLAC])
1254 XB_FIND_SONAME([VORBIS], [vorbis])
1255 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1256 XB_FIND_SONAME([MODPLUG], [modplug])
1257 XB_FIND_SONAME([ASS], [ass])
1259 #link statically against mpeg2 on ios because of ios7
1260 #crash & burn if dyloaded
1261 if test "$ARCH" != "arm-osx" ; then
1262 XB_FIND_SONAME([MPEG2], [mpeg2])
1266 if test "x$use_libmp3lame" != "xno"; then
1267 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1268 if test "x$use_libmp3lame" != "xno"; then
1269 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1272 AS_CASE([x$use_libmp3lame],
1274 AC_SUBST([HAVE_LIBMP3LAME], 0)
1277 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1278 AC_SUBST([HAVE_LIBMP3LAME], 1)
1281 if test "x$use_libvorbisenc" != "xno"; then
1282 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1283 if test "x$use_libvorbisenc" != "xno"; then
1284 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1287 AS_CASE([x$use_libvorbisenc],
1289 AC_SUBST([HAVE_LIBVORBISENC], 0)
1291 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1292 AC_SUBST([HAVE_LIBVORBISENC], 1)
1297 if test "$use_webserver" = "yes"; then
1298 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1302 if test "$use_optical_drive" = "yes"; then
1303 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1307 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1308 PKG_CHECK_MODULES([ALSA], [alsa],
1309 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1310 AC_MSG_ERROR($missing_library))
1311 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1314 AC_MSG_RESULT($alsa_disabled)
1318 if test "x$use_pulse" != "xno"; then
1319 if test "$host_vendor" = "apple" ; then
1320 if test "x$use_pulse" = "xyes"; then
1321 AC_MSG_ERROR($pulse_disabled)
1324 AC_MSG_RESULT($pulse_disabled)
1328 AC_CHECK_LIB([pulse],[main],,pulse_found="no")
1329 AC_CHECK_LIB([pulse-simple],[main],,pulse_found="no")
1331 if test "x$pulse_found" != "xno"; then
1333 elif test "x$use_pulse" = "xyes"; then
1334 AC_MSG_ERROR($pulse_not_found)
1338 AC_MSG_RESULT($pulse_not_found)
1342 AC_MSG_RESULT($pulse_disabled)
1347 if test "$host_vendor" = "apple" ; then
1349 AC_MSG_RESULT($hal_disabled)
1351 if test "$use_hal" = "yes"; then
1352 PKG_CHECK_MODULES([HAL], [hal],
1353 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1354 use_hal=no;AC_MSG_RESULT($hal_not_found))
1355 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1356 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1357 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1359 AC_MSG_RESULT($hal_disabled)
1361 if test "$use_hal" = "yes"; then
1362 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1367 if test "$host_vendor" = "apple" ; then
1369 AC_MSG_RESULT($avahi_disabled)
1371 if test "$use_avahi" = "yes"; then
1372 AC_CHECK_LIB([avahi-common], [main],,
1373 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1374 if test "$use_avahi" = "yes"; then
1375 #either both libs or none
1376 AC_CHECK_LIB([avahi-client], [main],,
1377 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1380 AC_MSG_RESULT($avahi_disabled)
1385 if test "$use_mdnsembedded" != "no"; then
1386 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1387 [if test "$use_mdnsembedded" = "yes"; then
1388 AC_MSG_ERROR($mdnsembedded_not_found)
1390 elif test "$use_mdnsembedded" != "no"; then
1391 AC_MSG_NOTICE($mdnsembedded_not_found)
1392 use_mdnsembedded="no"
1396 if test $use_mdnsembedded != "no"; then
1400 AC_MSG_RESULT($mdnsembedded_disabled)
1403 AC_SUBST(USE_MDNSEMBEDDED)
1406 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1407 AC_MSG_NOTICE($x11_enabled)
1408 PKG_CHECK_MODULES([X11], [x11],
1409 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1410 AC_MSG_ERROR($missing_library))
1411 PKG_CHECK_MODULES([XEXT], [xext],
1412 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1413 AC_MSG_ERROR($missing_library))
1414 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1416 AC_MSG_RESULT($x11_disabled)
1420 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1422 AC_MSG_RESULT($xrandr_disabled)
1424 if test "$use_xrandr" = "yes" ; then
1425 AC_CHECK_LIB([Xrandr], [main],,
1426 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1428 AC_MSG_RESULT($xrandr_disabled)
1433 if test "$use_waveform" = "yes"; then
1434 AC_MSG_NOTICE($waveform_enabled)
1437 AC_MSG_NOTICE($waveform_disabled)
1442 if test "$use_spectrum" = "yes"; then
1443 AC_MSG_NOTICE($spectrum_enabled)
1446 AC_MSG_NOTICE($spectrum_disabled)
1451 if test "$host_vendor" = "apple" ; then
1452 AC_MSG_NOTICE($goom_disabled)
1455 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1456 AC_MSG_NOTICE($goom_enabled)
1459 AC_MSG_NOTICE($goom_disabled)
1465 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1466 AC_MSG_NOTICE($rsxs_disabled)
1469 AC_MSG_NOTICE($rsxs_enabled)
1471 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1472 if test "$host_vendor" != "apple" ; then
1473 PKG_CHECK_MODULES([XT], [xt],
1474 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1475 AC_MSG_ERROR($missing_library))
1476 PKG_CHECK_MODULES([XMU], [xmu],
1477 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1478 AC_MSG_ERROR($missing_library))
1483 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1484 AC_MSG_NOTICE($fishbmc_disabled)
1488 AC_MSG_NOTICE($fishbmc_enabled)
1493 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1494 AC_MSG_NOTICE($projectm_disabled)
1498 AC_MSG_NOTICE($projectm_enabled)
1504 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1505 use_skin_touched=yes
1507 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1513 if test "x$use_ssh" = "xno"; then
1514 AC_MSG_NOTICE($ssh_disabled)
1517 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1518 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1522 if test "$use_librtmp" != "no"; then
1523 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1524 [if test "$use_librtmp" = "yes"; then
1525 AC_MSG_ERROR($librtmp_not_found)
1526 elif test "$use_librtmp" != "no"; then
1527 AC_MSG_NOTICE($librtmp_not_found)
1531 if test "$use_librtmp" != "no"; then
1532 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1534 if test "$use_librtmp" != "no"; then
1535 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1538 AC_MSG_NOTICE($librtmp_disabled)
1542 if test "x$use_samba" != "xno"; then
1543 PKG_CHECK_MODULES([SAMBA], [smbclient],
1544 [INCLUDES="$INCLUDES $SAMBA_CFLAGS"; LIBS="$LIBS $SAMBA_LIBS"],
1545 [AC_CHECK_LIB([smbclient], [main],,
1546 use_samba=no;AC_MSG_ERROR($missing_library))
1550 AC_MSG_RESULT($samba_disabled)
1554 if test "x$use_samba" != "xno"; then
1555 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1560 if test "$use_libnfs" != "no"; then
1561 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1562 [if test "$use_libnfs" = "yes"; then
1563 AC_MSG_ERROR($libnfs_not_found)
1565 elif test "$use_libnfs" != "no"; then
1566 AC_MSG_NOTICE($libnfs_not_found)
1571 if test "$use_libnfs" != "no"; then
1572 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1574 if test "$use_libnfs" != "no"; then
1575 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1580 AC_MSG_NOTICE($libnfs_disabled)
1585 if test "x$use_libafpclient" != "xno"; then
1586 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1587 [if test "x$use_libafpclient" = "xyes"; then
1588 AC_MSG_ERROR($libafpclient_not_found)
1589 elif test "x$use_libafpclient" != "xno"; then
1590 AC_MSG_NOTICE($libafpclient_not_found)
1591 use_libafpclient="no"
1594 if test "x$use_libafpclient" != "xno"; then
1595 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1596 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1600 AC_MSG_NOTICE($libafpclient_disabled)
1603 # libplist for airplay feature
1605 if test "$use_airplay" != "no"; then
1606 AC_CHECK_HEADER([plist/plist.h],,
1607 [if test "$use_airplay" = "yes"; then
1608 AC_MSG_ERROR($libplist_not_found)
1609 elif test "$use_airplay" != "no"; then
1610 AC_MSG_NOTICE($libplist_not_found)
1615 if test "$use_airplay" != "no"; then
1616 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1618 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1622 # libshairplay for AirTunes (prefered lib)
1624 if test "x$use_airtunes" != "xno"; then
1625 AC_CHECK_HEADERS([shairplay/raop.h],USE_AIRTUNES=1,
1626 [AC_MSG_NOTICE($libshairplay_not_found)
1629 if test "x$USE_AIRTUNES" != "x0"; then
1630 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [USE_AIRTUNES])
1632 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1633 [[#include <shairplay/raop.h>]])
1634 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1637 #libshairport - as a fallback for AirTunes
1638 if test "x$USE_AIRTUNES" == "x0"; then
1639 AC_CHECK_HEADERS([shairport/shairport.h],USE_AIRTUNES=1,
1640 [AC_MSG_NOTICE($libshairport_not_found)
1643 if test "x$USE_AIRTUNES" != "x0"; then
1644 XB_FIND_SONAME([SHAIRPORT], [shairport], [USE_AIRTUNES])
1645 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1646 [[#include <shairport/shairport.h>]])
1647 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1651 if test "x$USE_AIRTUNES" == "x0"; then
1652 if test "x$use_airtunes" == "xyes"; then
1653 AC_MSG_ERROR("No airtunes library could be found. (libshairport/libshairplay)")
1661 if test "$host_vendor" = "apple" ; then
1663 AC_MSG_NOTICE($libudev_disabled)
1665 if test "$use_libudev" = "auto"; then
1666 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1667 elif test "$use_libudev" = "yes" ; then
1668 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1670 AC_MSG_NOTICE($libudev_disabled)
1673 if test "x$use_libudev" != "xno"; then
1674 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1675 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1682 # if libudev is available, we don't need libusb
1683 if test "x$use_libudev" != "xno"; then
1685 AC_MSG_NOTICE($libusb_disabled_udev_found)
1687 if test "$host_vendor" = "apple" ; then
1689 AC_MSG_NOTICE($libusb_disabled)
1691 if echo "$ARCH" | grep -q freebsd ; then
1692 AC_CHECK_LIB([usb],[main],
1693 [use_libusb="yes";USB_LIBS="-lusb"],
1694 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1695 elif test "$use_libusb" = "auto"; then
1696 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1697 elif test "$use_libusb" = "yes"; then
1698 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1700 AC_MSG_NOTICE($libusb_disabled)
1703 if test "x$use_libusb" != "xno"; then
1704 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1705 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1712 if test "x$use_libcec" != "xno"; then
1713 # libcec is dyloaded, so we need to check for its headers and link any depends.
1714 if test "x$use_libcec" != "xno"; then
1715 if test "x$use_libcec" != "xauto"; then
1716 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1718 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1721 if test "x$use_libcec" != "xno"; then
1722 INCLUDES="$INCLUDES $CEC_CFLAGS"
1723 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1724 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1725 AC_MSG_NOTICE($libcec_enabled)
1728 AC_MSG_NOTICE($libcec_disabled)
1733 AC_MSG_NOTICE($libcec_disabled)
1737 if test "$use_libcap" != "no"; then
1738 AC_CHECK_HEADERS([sys/capability.h],,
1739 [if test "$use_libcap" = "yes"; then
1740 AC_MSG_ERROR($libcap_not_found)
1741 elif test "$use_libcap" != "no"; then
1742 AC_MSG_NOTICE($libcap_not_found)
1746 if test "$use_libcap" != "no"; then
1747 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1749 if test "$use_libcap" != "no"; then
1750 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1753 AC_MSG_NOTICE($libcap_disabled)
1756 ### External libraries checks
1758 # Hacks for supporting libav
1761 if test "$use_libav_hacks" = "yes"; then
1762 export PKG_CONFIG_PATH="${srcdir}/lib/xbmc-libav-hacks/pkgconfig/:$PKG_CONFIG_PATH"
1764 AC_DEFINE([USE_LIBAV_HACKS], [1], [Whether to use libav compatibility hacks.])
1768 if test "$use_external_ffmpeg" = "yes"; then
1769 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale libswresample"
1771 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1772 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1773 AC_MSG_ERROR($missing_library))
1775 # in case the headers are in a custom directory
1776 SAVE_CPPFLAGS="$CPPFLAGS"
1777 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1779 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1780 [AC_MSG_ERROR($missing_headers)])
1782 AC_MSG_NOTICE($external_ffmpeg_enabled)
1783 USE_EXTERNAL_FFMPEG=1
1784 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1786 CPPFLAGS="$SAVE_CPPFLAGS"
1788 AC_MSG_NOTICE($external_ffmpeg_disabled)
1789 USE_EXTERNAL_FFMPEG=0
1792 echo "Checking for SWIG installation"
1793 AC_PATH_PROG(SWIG_EXE, swig, "none")
1794 if test "$SWIG_EXE" = "none"; then
1795 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1796 if test "$SWIG20_EXE" != "none" ; then
1797 SWIG_EXE=$SWIG20_EXE
1800 if test "$SWIG_EXE" = "none"; then
1801 AC_MSG_ERROR($missing_program)
1803 final_message="$final_message\n SWIG Available:\tYes"
1805 echo "Checking for a jre installation"
1806 AC_PATH_PROG(JAVA_EXE, java, "none")
1807 if test "$JAVA_EXE" = "none"; then
1808 AC_MSG_ERROR($missing_program)
1810 final_message="$final_message\n JRE Available:\tYes"
1812 echo "Checking for doxygen installation"
1813 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1814 if test "$DOXYGEN_EXE" = "none"; then
1815 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1816 final_message="$final_message\n Doxygen Available:\tNo"
1819 final_message="$final_message\n Doxygen Available:\tYes"
1824 if test "x$use_vdpau" != "xno"; then
1825 if test "$host_vendor" = "apple" ; then
1826 if test "x$use_vdpau" = "xyes"; then
1827 AC_MSG_ERROR([VDPAU not supported on this platform])
1830 AC_MSG_NOTICE($vdpau_disabled)
1835 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1836 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1837 [if test "x$use_vdpau" = "xyes"; then
1839 AC_MSG_ERROR([$vdpau_not_found])
1843 AC_MSG_RESULT($vdpau_not_found)
1848 AC_MSG_NOTICE($vdpau_disabled)
1852 if test "x$use_vaapi" != "xno"; then
1853 if test "$host_vendor" = "apple" ; then
1854 if test "x$use_vaapi" = "xyes"; then
1855 AC_MSG_ERROR([VAAPI not supported on this platform])
1858 AC_MSG_NOTICE($vaapi_disabled)
1862 initial_val=$use_vaapi
1863 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1864 if test "x$use_vaapi" != "xno"; then
1865 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1868 if test "x$use_vaapi" = "xno"; then
1869 if test "x$initial_val" = "xyes"; then
1870 AC_MSG_ERROR($vaapi_not_found)
1872 AC_MSG_RESULT($vaapi_not_found)
1876 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1881 AC_MSG_NOTICE($vaapi_disabled)
1886 if test "x$use_crystalhd" != "xno"; then
1887 SAVE_CFLAGS="$CFLAGS"
1888 CFLAGS="-D__LINUX_USER__"
1889 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1890 [ if test "x$use_crystalhd" = "xyes"; then
1891 AC_MSG_ERROR($crystalhd_not_found)
1894 AC_MSG_RESULT($crystalhd_not_found)
1898 CFLAGS="$SAVE_CFLAGS"
1899 if test "$host_vendor" != "apple"; then
1900 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1902 if test "x$use_crystalhd" != "xno"; then
1903 SAVE_CFLAGS="$CFLAGS"
1904 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1905 # check for new crystalhd lib
1907 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1908 #include <libcrystalhd/bc_dts_defs.h>
1909 PBC_INFO_CRYSTAL bCrystalInfo;])],
1910 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1911 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1912 CFLAGS="$SAVE_CFLAGS"
1916 AC_MSG_NOTICE($crystalhd_disabled)
1921 if test "x$use_vtbdecoder" != "xno"; then
1922 if test "$host_vendor" = "apple" ; then
1923 HAVE_VIDEOTOOLBOXDECODER=1
1924 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1925 AC_MSG_NOTICE($vtbdecoder_enabled)
1927 if test "x$use_vtbdecoder" = "xyes"; then
1928 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1931 AC_MSG_NOTICE($vtbdecoder_disabled)
1935 AC_MSG_NOTICE($vtbdecoder_disabled)
1939 if test "$host_vendor" = "apple" ; then
1942 AC_MSG_NOTICE($openmax_disabled)
1943 elif test "$target_platform" = "target_raspberry_pi"; then
1946 AC_MSG_NOTICE($openmax_disabled)
1948 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1949 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1950 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1951 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1952 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1953 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1954 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1955 AC_MSG_ERROR($openmax_not_found))
1957 AC_MSG_NOTICE($openmax_disabled)
1963 # yajl version check (yajl_version.h was added in yajl 2.0)
1964 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1965 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1968 # additional internal players
1969 case $add_players in
1971 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1975 # additional internal codecs
1976 # remember to convert commas to spaces
1977 for codecs in `echo $add_codecs | sed 's/,/ /g'`; do
1980 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
1981 XB_ADD_CODEC([LIBAMCODEC], [amcodec], [$codecs])
1984 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright], [$codecs])
1990 # platform specific bin utilities
1991 if test "$build_vendor" != "apple" ; then
1992 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1993 if test "$HAVE_GAWK" = "no" ; then
1994 AC_MSG_ERROR($missing_program)
1998 if test "$use_arch" != "arm" ; then
1999 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
2000 if test "$HAVE_CMAKE" = "no" ; then
2001 AC_MSG_ERROR($missing_program)
2005 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
2006 if test "$HAVE_GPERF" = "no" ; then
2007 AC_MSG_ERROR($missing_program)
2010 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
2011 if test "$HAVE_UNZIP" = "no" ; then
2012 AC_MSG_ERROR($missing_program)
2015 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
2016 if test "$HAVE_ZIP" = "no" ; then
2017 AC_MSG_ERROR($missing_program)
2020 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
2021 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
2022 if test "$HAVE_NASM" = "no" ; then
2023 AC_MSG_ERROR($missing_program)
2027 # Checks for header files.
2031 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
2032 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
2033 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
2034 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
2035 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
2037 # Checks for typedefs, structures, and compiler characteristics.
2053 AC_CHECK_MEMBERS([struct stat.st_rdev])
2062 if test "$cross_compiling" = "yes"; then
2063 final_message="$final_message\n Crosscomp.:\tYes"
2064 if [[ -d "$NATIVE_ROOT" ]]; then
2065 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2066 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2067 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
2068 if test "$host_vendor" != "apple" ; then
2069 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
2071 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
2074 final_message="$final_message\n Crosscomp.:\tNo"
2077 final_message="$final_message\n target ARCH:\t$use_arch"
2078 final_message="$final_message\n target CPU:\t$use_cpu"
2080 if test "$use_gles" = "yes"; then
2081 final_message="$final_message\n OpenGLES:\tYes"
2086 if test "$use_gl" = "yes"; then
2087 final_message="$final_message\n OpenGL:\tYes"
2090 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2091 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2096 if test "$use_alsa" = "yes"; then
2098 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2099 final_message="$final_message\n ALSA:\t\tYes"
2102 final_message="$final_message\n ALSA:\t\tNo"
2105 if test "$use_dbus" = "yes"; then
2106 final_message="$final_message\n DBUS:\t\tYes"
2108 final_message="$final_message\n DBUS:\t\tNo"
2111 if test "x$use_vdpau" != "xno"; then
2112 final_message="$final_message\n VDPAU:\tYes"
2114 final_message="$final_message\n VDPAU:\tNo"
2117 if test "x$use_vaapi" != "xno"; then
2118 final_message="$final_message\n VAAPI:\tYes"
2120 final_message="$final_message\n VAAPI:\tNo"
2123 if test "x$use_crystalhd" != "xno"; then
2124 final_message="$final_message\n CrystalHD:\tYes"
2126 final_message="$final_message\n CrystalHD:\tNo"
2129 if test "x$use_vtbdecoder" != "xno"; then
2130 final_message="$final_message\n VTBDecoder:\tYes"
2132 final_message="$final_message\n VTBDecoder:\tNo"
2135 if test "$use_openmax" != "no"; then
2136 final_message="$final_message\n OpenMax:\tYes"
2138 final_message="$final_message\n OpenMax:\tNo"
2141 if test "$use_joystick" = "yes"; then
2142 final_message="$final_message\n Joystick:\tYes"
2143 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2145 final_message="$final_message\n Joystick:\tNo"
2148 if test "$use_xrandr" = "yes"; then
2149 final_message="$final_message\n XRandR:\tYes"
2152 final_message="$final_message\n XRandR:\tNo"
2156 if test "$use_waveform" = "yes"; then
2157 final_message="$final_message\n Waveform:\tYes"
2159 final_message="$final_message\n Waveform:\tNo"
2162 if test "$use_spectrum" = "yes"; then
2163 final_message="$final_message\n Spectrum:\tYes"
2165 final_message="$final_message\n Spectrum:\tNo"
2168 if test "$use_goom" = "yes"; then
2169 final_message="$final_message\n GOOM:\t\tYes"
2171 final_message="$final_message\n GOOM:\t\tNo"
2174 if test "$use_rsxs" = "yes"; then
2175 final_message="$final_message\n RSXS:\t\tYes"
2177 final_message="$final_message\n RSXS:\t\tNo"
2180 if test "$use_fishbmc" = "yes"; then
2181 final_message="$final_message\n FishBMC:\tYes"
2183 final_message="$final_message\n FishBMC:\tNo"
2186 if test "$use_projectm" = "yes"; then
2187 final_message="$final_message\n ProjectM:\tYes"
2189 final_message="$final_message\n ProjectM:\tNo"
2192 if test "$use_skin_touched" = "yes"; then
2193 final_message="$final_message\n Skin Touched:\tYes"
2195 final_message="$final_message\n Skin Touched:\tNo"
2198 if test "$use_x11" = "yes"; then
2199 final_message="$final_message\n X11:\t\tYes"
2201 final_message="$final_message\n X11:\t\tNo"
2204 if test "$use_wayland" = "yes"; then
2205 final_message="$final_message\n Wayland:\tYes"
2209 final_message="$final_message\n Wayland:\tNo"
2212 if test "$use_libbluray" = "yes"; then
2213 final_message="$final_message\n Bluray:\tYes"
2215 final_message="$final_message\n Bluray:\tNo"
2218 if test "x$use_texturepacker" != "xno"; then
2219 final_message="$final_message\n TexturePacker:Yes"
2222 final_message="$final_message\n TexturePacker:No"
2226 if test "$use_mid" = "yes"; then
2227 final_message="$final_message\n MID Support:\tYes"
2228 SDL_DEFINES="$SDL_DEFINES -DMID"
2230 final_message="$final_message\n MID Support:\tNo"
2235 if test "x$use_ccache" != "xno"; then
2236 AC_PATH_PROG(CCACHE,ccache,none)
2237 if test "$ac_cv_path_CCACHE" = "none"; then
2238 if test "x$use_ccache" = "xyes"; then
2239 AC_MSG_ERROR([ccache not found.]);
2241 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2242 final_message="$final_message\n ccache:\tNo"
2245 CC="$ac_cv_path_CCACHE $CC"
2246 CXX="$ac_cv_path_CCACHE $CXX"
2247 AC_MSG_NOTICE(enabling ccache)
2248 final_message="$final_message\n ccache:\tYes"
2251 final_message="$final_message\n ccache:\tNo"
2254 if test "$use_alsa" = "yes"; then
2255 final_message="$final_message\n ALSA Support:\tYes"
2257 final_message="$final_message\n ALSA Support:\tNo"
2260 if test "x$use_pulse" != "xno"; then
2261 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2262 final_message="$final_message\n PulseAudio:\tYes"
2264 XBMC_STANDALONE_SH_PULSE=/dev/null
2265 final_message="$final_message\n PulseAudio:\tNo"
2268 if test "$use_hal" = "yes"; then
2269 final_message="$final_message\n HAL Support:\tYes"
2271 final_message="$final_message\n HAL Support:\tNo"
2275 if test "$use_dvdcss" = "yes"; then
2276 AC_MSG_NOTICE($dvdcss_enabled)
2277 final_message="$final_message\n DVDCSS:\tYes"
2279 SKIP_CONFIG_DVDCSS=0
2280 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2282 AC_MSG_NOTICE($dvdcss_disabled)
2283 final_message="$final_message\n DVDCSS:\tNo"
2285 SKIP_CONFIG_DVDCSS=1
2286 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2288 if test "$host_vendor" = "apple"; then
2289 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2292 # Google Test Framework
2293 if test "$configure_gtest" = "yes"; then
2294 AC_MSG_NOTICE($gtest_enabled)
2295 final_message="$final_message\n Google Test Framework Configured:\tYes"
2299 AC_MSG_NOTICE($gtest_disabled)
2300 final_message="$final_message\n Google Test Framework Configured:\tNo"
2305 if test "$use_avahi" = "yes"; then
2306 final_message="$final_message\n Avahi:\tYes"
2308 final_message="$final_message\n Avahi:\tNo"
2311 if test "$use_mdnsembedded" != "no"; then
2312 final_message="$final_message\n mDNSEmbedded:\tYes"
2314 final_message="$final_message\n mDNSEmbedded:\tNo"
2317 if test "$use_nonfree" = "yes"; then
2318 final_message="$final_message\n Non-free:\tYes"
2320 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2323 final_message="$final_message\n Non-free:\tNo"
2326 if test "$use_asap" = "yes"; then
2327 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2328 if test "$HAVE_GDC" = "no"; then
2329 AC_MSG_ERROR($missing_program);
2331 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2332 if test "$HAVE_FPC" = "no"; then
2333 AC_MSG_ERROR($missing_program);
2336 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2337 final_message="$final_message\n ASAP Codec:\tYes"
2340 final_message="$final_message\n ASAP Codec:\tNo"
2343 if test "$use_mysql" = "yes"; then
2344 final_message="$final_message\n MySQL:\tYes"
2347 final_message="$final_message\n MySQL:\tNo"
2350 if test "$use_webserver" = "yes"; then
2351 final_message="$final_message\n Webserver:\tYes"
2354 final_message="$final_message\n Webserver:\tNo"
2358 if test "$use_libssh" != "no"; then
2359 final_message="$final_message\n libssh support:\tYes"
2361 final_message="$final_message\n libssh support:\tNo"
2364 if test "$use_librtmp" != "no"; then
2365 final_message="$final_message\n libRTMP support:\tYes"
2367 final_message="$final_message\n libRTMP support:\tNo"
2370 if test "x$use_samba" != "xno"; then
2371 final_message="$final_message\n libsmbclient support:\tYes"
2373 final_message="$final_message\n libsmbclient support:\tNo"
2376 if test "$use_libnfs" != "no"; then
2377 final_message="$final_message\n libnfs client support:Yes"
2379 final_message="$final_message\n libnfs client support:No"
2382 if test "x$use_libafpclient" != "xno"; then
2383 final_message="$final_message\n libafpclient support:\tYes"
2385 final_message="$final_message\n libafpclient support:\tNo"
2388 if test "$use_airplay" != "no"; then
2389 final_message="$final_message\n AirPlay support:\tYes"
2391 final_message="$final_message\n AirPLay support:\tNo"
2394 if test "x$use_airtunes" != "xno"; then
2395 if test "x$USE_LIBSHAIRPLAY" == "x1"; then
2396 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2398 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2401 final_message="$final_message\n AirTunes support:\tNo"
2404 if test "x$use_upnp" != "xno"; then
2405 final_message="$final_message\n UPnP support:\t\tYes"
2407 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2410 final_message="$final_message\n UPnP support:\t\tNo"
2413 if test "$use_optical_drive" = "yes"; then
2414 final_message="$final_message\n Optical drive:\tYes"
2416 final_message="$final_message\n Optical drive:\tNo"
2419 if test "x$use_libudev" != "xno"; then
2420 final_message="$final_message\n libudev support:\tYes"
2422 final_message="$final_message\n libudev support:\tNo"
2425 if test "x$use_libusb" != "xno"; then
2426 final_message="$final_message\n libusb support:\tYes"
2428 final_message="$final_message\n libusb support:\tNo"
2431 if test "x$use_libcec" != "xno"; then
2432 final_message="$final_message\n libcec support:\tYes"
2434 final_message="$final_message\n libcec support:\tNo"
2437 if test "x$use_libmp3lame" != "xno"; then
2438 final_message="$final_message\n libmp3lame support:\tYes"
2440 final_message="$final_message\n libmp3lame support:\tNo"
2443 if test "x$use_libvorbisenc" != "xno"; then
2444 final_message="$final_message\n libvorbisenc support:\tYes"
2446 final_message="$final_message\n libvorbisenc support:\tNo"
2449 if test "x$use_libcap" != "xno"; then
2450 final_message="$final_message\n libcap support:\tYes"
2452 final_message="$final_message\n libcap support:\tNo"
2455 if test "x$add_players" != "xno"; then
2456 final_message="$final_message\n additional players:\tYes, $add_players"
2458 final_message="$final_message\n additional players:\tNo"
2461 if test "x$add_codecs" != "xno"; then
2462 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2464 final_message="$final_message\n additional codecs:\tNo"
2467 ### External libraries messages
2469 if test "$use_external_ffmpeg" = "yes"; then
2470 final_message="$final_message\n External FFmpeg:\tYes"
2472 final_message="$final_message\n External FFmpeg:\tNo"
2475 if test "$host_vendor" = "apple" ; then
2476 # built internal but referenced as external, we link directly to them.
2477 # this MUST be the last thing before OUTPUT_FILES as they do not
2478 # exist until after we build FFMpeg.
2479 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2480 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2481 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2482 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2483 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2484 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2485 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2489 DISABLE_PVR_ADDON_CONFIG=1
2490 if [[ -f "pvr-addons/Makefile.am" ]]; then
2491 final_message="$final_message\n PVR add-ons:\t\tYes"
2493 DISABLE_PVR_ADDON_CONFIG=0
2495 final_message="$final_message\n PVR add-ons:\t\tNo"
2498 OUTPUT_FILES="Makefile \
2500 addons/skin.confluence/media/Makefile \
2502 xbmc/cdrip/Makefile \
2503 xbmc/cores/Makefile \
2504 xbmc/cores/VideoRenderers/Makefile \
2505 xbmc/cores/dvdplayer/Makefile \
2507 lib/libdvd/Makefile \
2508 xbmc/cores/DllLoader/Makefile \
2509 xbmc/cores/DllLoader/exports/Makefile \
2510 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2511 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2512 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2513 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2514 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2515 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2516 xbmc/cores/AudioEngine/Makefile \
2517 xbmc/cores/paplayer/Makefile \
2518 xbmc/cores/omxplayer/Makefile \
2519 lib/timidity/Makefile \
2520 lib/xbadpcm/Makefile \
2522 lib/nosefart/Makefile \
2523 lib/libsidplay2/Makefile \
2524 lib/vgmstream/Makefile \
2525 lib/snesapu/SNES/SNESAPU/Makefile \
2526 lib/stsound/StSoundLibrary/Makefile \
2527 xbmc/cores/playercorefactory/Makefile \
2528 xbmc/music/karaoke/Makefile \
2530 xbmc/guilib/Makefile \
2531 xbmc/input/linux/Makefile \
2532 xbmc/interfaces/Makefile \
2533 xbmc/network/Makefile \
2534 xbmc/network/upnp/Makefile \
2535 lib/libRTV/Makefile \
2536 lib/libexif/Makefile \
2537 lib/libXDAAP/Makefile \
2538 lib/cmyth/Makefile \
2539 lib/libhdhomerun/Makefile \
2540 lib/libsquish/Makefile \
2541 lib/cximage-6.0/Makefile \
2542 lib/libUPnP/Makefile \
2543 xbmc/DllPaths_generated.h \
2544 xbmc/DllPaths_generated_android.h \
2545 xbmc/freebsd/Makefile \
2546 xbmc/linux/Makefile \
2547 xbmc/filesystem/Makefile \
2548 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2549 xbmc/visualizations/XBMCProjectM/Makefile \
2550 xbmc/visualizations/Goom/Makefile \
2551 xbmc/visualizations/OpenGLSpectrum/Makefile \
2552 xbmc/visualizations/fishBMC/Makefile \
2553 xbmc/visualizations/WaveForm/Makefile \
2554 xbmc/windowing/Makefile \
2555 xbmc/windowing/egl/Makefile \
2556 lib/addons/library.xbmc.addon/Makefile \
2557 lib/addons/library.xbmc.codec/Makefile \
2558 lib/addons/library.xbmc.gui/Makefile \
2559 lib/addons/library.xbmc.pvr/Makefile \
2560 xbmc/visualizations/EGLHelpers/Makefile \
2561 tools/Linux/xbmc.sh \
2562 tools/Linux/xbmc-standalone.sh \
2563 tools/TexturePacker/Makefile \
2564 tools/EventClients/Clients/OSXRemote/Makefile \
2565 xbmc/peripherals/bus/Makefile \
2566 xbmc/peripherals/devices/Makefile \
2567 xbmc/android/activity/Makefile \
2568 xbmc/android/loader/Makefile \
2569 xbmc/android/jni/Makefile \
2570 xbmc/utils/Makefile \
2571 xbmc/main/Makefile \
2572 project/cmake/xbmc-config.cmake"
2574 if test "$use_wayland" = "yes"; then
2575 OUTPUT_FILES="$OUTPUT_FILES xbmc/windowing/tests/wayland/Makefile"
2578 if test "$use_skin_touched" = "yes"; then
2579 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2582 if test "$use_codec_libstagefright" = "yes"; then
2583 OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile"
2586 OUTPUT_FILES="$OUTPUT_FILES \
2587 xbmc/interfaces/python/Makefile \
2588 xbmc/interfaces/python/test/Makefile"
2590 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2591 # .dummy.am does nothing.
2592 AC_CONFIG_FILES([.dummy])
2594 AC_CONFIG_FILES([${OUTPUT_FILES}])
2595 OUTPUT_FILES="$OUTPUT_FILES \
2601 AC_SUBST(CXX_FOR_BUILD)
2602 AC_SUBST(CC_FOR_BUILD)
2603 AC_SUBST(CFLAGS_FOR_BUILD)
2604 AC_SUBST(CXXFLAGS_FOR_BUILD)
2605 AC_SUBST(LDFLAGS_FOR_BUILD)
2606 AC_SUBST(SDL_DEFINES)
2607 AC_SUBST(BUILD_DVDCSS)
2608 AC_SUBST(DISABLE_WAVEFORM)
2609 AC_SUBST(DISABLE_SPECTRUM)
2610 AC_SUBST(DISABLE_GOOM)
2611 AC_SUBST(DISABLE_RSXS)
2612 AC_SUBST(DISABLE_FISHBMC)
2613 AC_SUBST(DISABLE_PROJECTM)
2614 AC_SUBST(USE_SKIN_TOUCHED)
2615 AC_SUBST(USE_EXTERNAL_FFMPEG)
2616 AC_SUBST(USE_STATIC_FFMPEG)
2617 AC_SUBST(USE_LIBAV_HACKS)
2618 AC_SUBST(PYTHON_VERSION)
2619 AC_SUBST(OUTPUT_FILES)
2620 AC_SUBST(HAVE_XBMC_NONFREE)
2621 AC_SUBST(USE_ASAP_CODEC)
2622 AC_SUBST(LIBCURL_BASENAME)
2623 AC_SUBST(LIBFLAC_BASENAME)
2624 AC_SUBST(LIBVORBISFILE_BASENAME)
2625 AC_SUBST(LIBMODPLUG_BASENAME)
2626 AC_SUBST(LIBMAD_BASENAME)
2627 AC_SUBST(LIBOGG_BASENAME)
2628 AC_SUBST(LIBVORBISENC_BASENAME)
2629 AC_SUBST(LIBVORBIS_BASENAME)
2630 AC_SUBST(LIBASS_BASENAME)
2631 AC_SUBST(LIBMEPG2_BASENAME)
2632 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2633 AC_SUBST(USE_OPENGL)
2634 AC_SUBST(USE_OPENGLES)
2637 AC_SUBST(USE_CRYSTALHD)
2638 AC_SUBST(USE_LIBSMBCLIENT)
2639 AC_SUBST(USE_LIBNFS)
2640 AC_SUBST(USE_LIBAFPCLIENT)
2641 AC_SUBST(USE_AIRPLAY)
2642 AC_SUBST(USE_OPENMAX)
2644 AC_SUBST(USE_XRANDR)
2646 AC_SUBST(USE_TEXTUREPACKER)
2647 AC_SUBST(USE_AIRTUNES)
2648 AC_SUBST(USE_LIBUDEV)
2649 AC_SUBST(USE_LIBUSB)
2650 AC_SUBST(USE_LIBCEC)
2652 AC_SUBST(USE_WAYLAND)
2653 AC_SUBST(USE_WEB_SERVER)
2655 AC_SUBST(USE_XKBCOMMON)
2656 AC_SUBST(USE_OMXLIB)
2657 AC_SUBST(USE_ANDROID)
2658 AC_SUBST(GTEST_CONFIGURED)
2659 AC_SUBST(USE_DOXYGEN)
2660 AC_SUBST(USE_PVR_ADDONS)
2661 AC_SUBST(GNUTLS_ALL_LIBS)
2662 AC_SUBST(VORBISENC_ALL_LIBS)
2664 # pushd and popd are not available in other shells besides bash, so implement
2665 # our own pushd/popd functions
2670 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2672 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2675 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2680 if [[ -n "$XB_DIRSTACK" ]]; then
2681 XB_DIRSTACK="${XB_DIRSTACK#* }"
2682 cd "${XB_DIRSTACK%% *}"
2685 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2689 # Function to run the configure scripts in our submodules
2690 # Consists of three paramaters, the path to the submodule, the configure command
2691 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2692 # running the script, anything else if not.
2693 AC_DEFUN([XB_CONFIG_MODULE],[
2694 AC_CONFIG_COMMANDS_POST([
2695 if [[ $3 != "1" ]]; then
2696 if [[ -d $1 ]]; then
2699 if [[ $? -ne 0 ]]; then
2701 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2706 AC_MSG_ERROR([[Submodule $1 does not exist]])
2709 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2714 XB_CONFIG_MODULE([lib/ffmpeg], [
2715 if test "$host_vendor" = "apple" ; then
2716 ffmpg_config="--target-os=$ffmpeg_target_os"
2717 # handle disables first, we do individual enables later
2718 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2719 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2720 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2721 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2722 ffmpg_config="$ffmpg_config --enable-vda --disable-crystalhd"
2723 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2725 # handle conditional enables/disables
2726 if test "$use_debug" = "no"; then
2727 ffmpg_config="$ffmpg_config --disable-debug"
2729 if test "$use_cpu" != "no"; then
2730 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2732 if test "$use_arch" != "no"; then
2733 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2735 if test "$use_arch" = "arm"; then
2736 ffmpg_config="$ffmpg_config --enable-pic"
2737 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2738 if test "$use_neon" = "yes"; then
2739 ffmpg_config="$ffmpg_config --enable-neon"
2741 ffmpg_config="$ffmpg_config --disable-neon"
2744 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2746 if test "$use_ffmpeg_libvorbis" = "yes"; then
2747 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2749 ffmpg_config="$ffmpg_config --disable-libvorbis"
2751 if test "$have_gnutls" = "yes"; then
2752 ffmpg_config="$ffmpg_config --enable-gnutls"
2755 # handle individual enables
2756 ffmpg_config="$ffmpg_config --enable-gpl"
2757 ffmpg_config="$ffmpg_config --enable-postproc"
2758 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2759 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts --enable-muxer=asf --enable-muxer=ipod"
2760 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2"
2761 ffmpg_config="$ffmpg_config --enable-protocol=http"
2762 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2764 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2767 ffmpg_config="$ffmpg_config --cc=clang" ;;
2769 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2772 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2773 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2775 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2777 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2778 # dependency files in the right place, replace it with something that works
2781 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2784 # ffmpeg will use yasm found at ${prefix}/bin during configure
2785 # but then hardcodes 'yasm' in config.mak, fix it.
2786 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2787 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2788 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2793 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2795 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2796 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2797 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2798 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2799 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2800 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2801 --target-os=$ffmpeg_target_os \
2803 --enable-muxer=spdif \
2804 --enable-muxer=adts \
2805 --enable-muxer=asf \
2806 --enable-muxer=ipod \
2807 --disable-encoders \
2808 --enable-encoder=ac3 \
2809 --enable-encoder=aac \
2810 --enable-encoder=wmav2 \
2811 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2812 --disable-decoder=mpeg_xvmc \
2816 --disable-ffserver \
2818 --disable-crystalhd \
2819 `if test "$use_static_ffmpeg" = "yes"; then echo --enable-static --disable-shared; else echo --disable-static --enable-shared; fi` \
2823 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2824 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2825 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2826 --enable-protocol=http \
2827 `if test "$have_gnutls" = "yes"; then echo --enable-gnutls; fi` \
2829 --enable-runtime-cpudetect \
2830 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2831 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2832 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2833 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2834 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2836 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2837 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2839 ], [$USE_EXTERNAL_FFMPEG])
2841 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2845 CFLAGS="$CFLAGS $DROID_DVDLIB_SEEK64" \
2846 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2847 --host=$host_alias \
2848 --build=$build_alias \
2849 --target=$target_alias \
2853 ], [$SKIP_CONFIG_DVDCSS])
2855 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2857 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src $DROID_DVDLIB_SEEK64" \
2858 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2859 --host=$host_alias \
2860 --build=$build_alias \
2861 --target=$target_alias \
2867 $MAKE dvdread-config &&
2868 mkdir -p `pwd`/../includes/dvdread
2869 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2870 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2873 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2875 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes $DROID_DVDLIB_SEEK64" \
2876 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2877 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2878 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2879 --host=$host_alias \
2880 --build=$build_alias \
2881 --target=$target_alias \
2887 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2889 rm -f CMakeCache.txt && \
2890 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2891 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2892 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2893 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2894 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2895 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2896 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2897 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2898 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2899 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2900 if test "$host_vendor" = "apple" ; then
2901 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2902 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2903 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2904 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2907 ], [$DISABLE_PROJECTM])
2909 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2912 CXXFLAGS="$CXXFLAGS" \
2913 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2914 --host=$host_alias \
2915 --build=$build_alias \
2916 --target=$target_alias \
2922 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2923 if test "$host_vendor" = "apple"; then
2924 # clang treats inlines different
2927 TEMPCFLAGS="$CFLAGS";;
2929 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";;
2932 TEMPCFLAGS="$CFLAGS";
2937 CFLAGS="$TEMPCFLAGS" \
2938 CXXFLAGS="$CXXFLAGS" \
2939 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2940 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2941 --host=$host_alias \
2942 --build=$build_alias \
2943 --target=$target_alias \
2944 --without-xscreensaver \
2947 --disable-fieldlines \
2951 --disable-hyperspace \
2954 if echo "$ARCH" | grep -q freebsd ; then
2955 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2959 XB_CONFIG_MODULE([lib/cpluff], [
2960 ./configure --disable-nls \
2961 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2962 --host=$host_alias \
2963 --build=$build_alias \
2964 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2965 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2968 XB_CONFIG_MODULE([lib/gtest], [
2973 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2974 --host=$host_alias \
2975 --build=$build_alias \
2976 --target=$target_alias \
2980 ], [$SKIP_CONFIG_GTEST])
2982 XB_CONFIG_MODULE([pvr-addons], [
2984 --prefix="${prefix}" \
2985 --host=$host_alias \
2986 --build=$build_alias \
2987 --target=$target_alias \
2991 CXXFLAGS="$CXXFLAGS"
2992 ], [$DISABLE_PVR_ADDON_CONFIG])
2996 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2997 echo -e "$final_message\n"