2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [12.9.9], [http://trac.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])
43 AC_DEFINE([HAS_$1], 1, [using $2])
44 AC_MSG_RESULT([enabling $2])
47 AC_MSG_RESULT([$2 is not enabled])
51 # check for library basenames
52 AC_DEFUN([XB_FIND_SONAME],
54 if echo "$host" | grep -q freebsd ; then
55 AC_MSG_CHECKING([for lib$2 soname])
56 $1_SONAME=[`ldconfig -r | sed -n "s;.* \(/.*lib$2\.so.*\)$;\1;p" | head -n 1`]
57 if test x$$1_SONAME != x ; then
58 $1_SONAME=[`basename $$1_SONAME`]
60 elif [[ "$host_vendor" != "apple" ]]; then
61 AC_MSG_CHECKING([for lib$2 soname])
62 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
63 if [[ -z $$1_FILENAME ]]; then
64 #try gold linker syntax
65 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "lib$2")
67 if [[ ! -z $$1_FILENAME ]]; then
68 $1_SONAME=$($OBJDUMP -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}')
71 AC_MSG_CHECKING([for lib$2 dylib])
72 gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
73 env_lib_path=[`echo $LDFLAGS | sed 's/-L[ ]*//g'`]
74 if test "$cross_compiling" = yes; then
77 host_lib_path="/usr/lib /usr/local/lib"
79 for path in $gcc_lib_path $env_lib_path $host_lib_path; do
80 lib=[`ls -- $path/lib$2.dylib 2>/dev/null`]
81 if test x$lib != x; then
82 # we want the path/name that is embedded in the dylib
83 $1_SONAME=[`otool -L $lib | grep -v lib$2.dylib | grep lib$2 | awk '{V=1; print $V}'`]
84 $1_SONAME=[`basename $$1_SONAME`]
88 if [[ -z "$$1_SONAME" ]]; then
90 if test -z "$3" || test "x${$3}" = "xyes"; then
91 AC_MSG_ERROR([Unable to determine soname of lib$2 library])
93 AC_MSG_WARN([Unable to determine soname of lib$2 library])
95 AC_MSG_WARN([lib$2 support disabled])
98 AC_MSG_RESULT([$$1_SONAME])
103 # Function to push and pop libs and includes for a command
104 AC_DEFUN([XB_PUSH_FLAGS], [
106 SAVE_INCLUDES="$INCLUDES"
111 INCLUDES="$SAVE_INCLUDES"
114 # General message strings
115 configure_debug="ERROR: this is a configure debug statement"
116 missing_library="Could not find a required library. Please see the README for your platform."
117 missing_headers="Could not find some required headers. Please see the README for your platform."
118 missing_program="Could not find a required program. Please see the README for your platform."
119 xrandr_not_found="== Could not find libXRandR. SDL will be used for resolution support. =="
120 xrandr_disabled="== XRandR support disabled. SDL will be used for resolution support. =="
121 waveform_enabled="== WAVEFORM enabled =="
122 waveform_disabled="== WAVEFORM disabled =="
123 spectrum_enabled="== SPECTRUM enabled =="
124 spectrum_disabled="== SPECTRUM disabled =="
125 goom_enabled="== GOOM enabled. =="
126 goom_disabled="== GOOM disabled. =="
127 alsa_disabled="== ALSA support disabled. =="
128 rsxs_enabled="== RSXS enabled. =="
129 rsxs_disabled="== RSXS disabled. =="
130 fishbmc_enabled="== FishBMC enabled. =="
131 fishbmc_disabled="== FishBMC disabled. =="
132 projectm_enabled="== ProjectM enabled. =="
133 projectm_disabled="== ProjectM disabled. =="
134 wayland_enabled="== Wayland enabled. =="
135 wayland_disabled="== Wayland disabled. =="
136 x11_enabled="== X11 enabled. =="
137 x11_disabled="== X11 disabled. =="
138 pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
139 pulse_disabled="== PulseAudio support manually disabled. =="
140 dvdcss_enabled="== DVDCSS support enabled. =="
141 dvdcss_disabled="== DVDCSS support disabled. =="
142 hal_not_found="== Could not find hal. HAL support disabled. =="
143 halstorage_not_found="== Could not find hal-storage. HAL support disabled. =="
144 hal_disabled="== HAL support disabled. =="
145 avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
146 avahi_disabled="== Avahi support disabled. =="
147 mdnsembedded_not_found="== Could not find mDNSEmbedded. Might prevent zeroconf support. =="
148 mdnsembedded_disabled="== mDNSEmbedded support disabled. =="
149 vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
150 vdpau_disabled="== VDPAU support manually disabled. =="
151 vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
152 vaapi_disabled="== VAAPI support manually disabled. =="
153 crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
154 crystalhd_disabled="== CrystalHD support manually disabled. =="
155 vtbdecoder_enabled="== VTBDecoder support enabled. =="
156 vtbdecoder_disabled="== VTBDecoder support manually disabled. =="
157 openmax_disabled="== OpenMax support manually disabled. =="
158 openmax_not_found="== Could not find libnvomx. OpenMax support disabled. =="
159 ssh_not_found="== Could not find libssh. =="
160 ssh_disabled="== SSH SFTP disabled. =="
161 librtmp_not_found="== Could not find libRTMP. RTMP support disabled. =="
162 librtmp_disabled="== RTMP support disabled. =="
163 libnfs_not_found="== Could not find libnfs. NFS client support disabled. =="
164 libnfs_disabled="== NFS support disabled. =="
165 libafpclient_not_found="== Could not find libafpclient. AFP client support disabled. =="
166 libafpclient_disabled="== AFP support disabled. =="
167 libshairport_not_found="== Could not find libshairport. =="
168 libshairplay_not_found="== Could not find libshairplay. =="
169 samba_disabled="== SAMBA support disabled. =="
170 libplist_not_found="== Could not find libplist. AirPlay support disabled. =="
171 libplist_disabled="== AirPlay support disabled. =="
172 alsa_not_found="== Could not find ALSA. ALSA support disabled. =="
173 dbus_not_found="== Could not find DBUS. DBUS support disabled. =="
174 libcap_disabled="== Capabilities detection support disabled. =="
175 libcap_not_found="== Could not find libcap. Capabilities detection support disabled. =="
176 gtest_enabled="== Google Test Framework will be configured. =="
177 gtest_disabled="== Google Test Framework will not be configured. =="
179 libudev_not_found="== Could not find libudev. Will use polling to check for device changes. =="
180 libudev_disabled="== udev support disabled. Will use polling to check for device changes. =="
181 libusb_not_found="== Could not find libusb. Plug and play USB device support will not be available. =="
182 libusb_disabled="== libusb disabled. Plug and play USB device support will not be available. =="
183 libusb_disabled_udev_found="== libusb disabled. =="
184 libcec_enabled="== libcec enabled. =="
185 libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
187 # External library message strings
188 external_libraries_enabled="== Use of all supported external libraries enabled. =="
189 external_libraries_disabled="== Use of all supported external libraries disabled. =="
190 external_ffmpeg_enabled="== Use of external ffmpeg enabled. =="
191 external_ffmpeg_disabled="== Use of external ffmpeg disabled. =="
192 ffmpeg_vdpau_not_supported="== External ffmpeg doesn't support VDPAU. VDPAU support disabled. =="
193 dashes="------------------------"
194 final_message="\n XBMC Configuration:"
195 final_message="\n$dashes$final_message\n$dashes"
197 AC_ARG_ENABLE([shared-lib],
198 [AS_HELP_STRING([--enable-shared-lib],
199 [build libxbmc. helpful for tests (default is no)])],
200 [build_shared_lib=$enableval],
201 [build_shared_lib=no])
203 AC_ARG_ENABLE([debug],
204 [AS_HELP_STRING([--enable-debug],
205 [enable debugging information (default is yes)])],
206 [use_debug=$enableval],
210 [AS_HELP_STRING([--with-arch],
211 [build with given arch passing to internal ffmpeg (default is no, needed for crosscompiling)])],
215 AC_ARG_WITH([platform],
216 [AS_HELP_STRING([--with-platform],
217 [use a pre-configured config for common arm boards])],
218 [use_platform=$withval],
222 [AS_HELP_STRING([--with-cpu],
223 [build with given cpu passing to ffmpeg (default is no)])],
227 AC_ARG_ENABLE([neon],
228 [AS_HELP_STRING([--enable-neon],
229 [enable neon passing to ffmpeg (default is no)])],
230 [use_neon=$enableval],
233 AC_ARG_ENABLE([optimizations],
234 [AS_HELP_STRING([--enable-optimizations],
235 [enable optimization (default is yes)])],
236 [use_optimizations=$enableval],
237 [use_optimizations=yes])
240 [AS_HELP_STRING([--enable-gl],
241 [enable OpenGL rendering (default is yes)])],
245 AC_ARG_ENABLE([gles],
246 [AS_HELP_STRING([--enable-gles],
247 [enable OpenGLES rendering (default is no)])],
248 [use_gles=$enableval],
252 [AS_HELP_STRING([--enable-sdl],
253 [enable SDL (default is auto)])],
254 [use_sdl=$enableval],
257 AC_ARG_ENABLE([vdpau],
258 [AS_HELP_STRING([--enable-vdpau],
259 [enable VDPAU decoding (default is auto)])],
260 [use_vdpau=$enableval],
263 AC_ARG_ENABLE([vaapi],
264 [AS_HELP_STRING([--enable-vaapi],
265 [enable VAAPI decoding (default is auto)])],
266 [use_vaapi=$enableval],
269 AC_ARG_ENABLE([crystalhd],
270 [AS_HELP_STRING([--enable-crystalhd],
271 [enable CrystalHD decoding (default is auto)])],
272 [use_crystalhd=$enableval],
273 [use_crystalhd=auto])
275 AC_ARG_ENABLE([vtbdecoder],
276 [AS_HELP_STRING([--enable-vtbdecoder],
277 [enable VTBDecoder decoding (default is auto)])],
278 [use_vtbdecoder=$enableval],
279 [use_vtbdecoder=auto])
281 AC_ARG_ENABLE([openmax],
282 [AS_HELP_STRING([--enable-openmax],
283 [enable OpenMax decoding (default is auto, requires OpenGLES)])],
284 [use_openmax=$enableval],
287 AC_ARG_ENABLE([tegra],
288 [AS_HELP_STRING([--enable-tegra],
289 [enable Tegra2 arm (default is no)])],
290 [use_tegra=$enableval],
293 AC_ARG_ENABLE([profiling],
294 [AS_HELP_STRING([--enable-profiling],
295 [enable gprof profiling (default is no)])],
296 [use_profiling=$enableval],
299 AC_ARG_ENABLE([joystick],
300 [AS_HELP_STRING([--enable-joystick],
301 [enable SDL joystick support (default is yes)])],
302 [use_joystick=$enableval],
305 AC_ARG_ENABLE([xrandr],
306 [AS_HELP_STRING([--enable-xrandr],
307 [enable XRandR support (default is yes)])],
308 [use_xrandr=$enableval],
311 AC_ARG_ENABLE([waveform],
312 [AS_HELP_STRING([--enable-waveform],
313 [enable Waveform visualisation (default is yes)])],
314 [use_waveform=$enableval],
317 AC_ARG_ENABLE([spectrum],
318 [AS_HELP_STRING([--enable-spectrum],
319 [enable Spectrum visualisation (default is yes)])],
320 [use_spectrum=$enableval],
323 AC_ARG_ENABLE([goom],
324 [AS_HELP_STRING([--enable-goom],
325 [enable GOOM visualisation (default is no)])],
326 [use_goom=$enableval],
329 AC_ARG_ENABLE([rsxs],
330 [AS_HELP_STRING([--enable-rsxs],
331 [enable really slick X screensavers (default is yes)])],
332 [use_rsxs=$enableval],
335 AC_ARG_ENABLE([fishbmc],
336 [AS_HELP_STRING([--enable-fishbmc],
337 [enable FishBMC visualisation (default is yes)])],
338 [use_fishbmc=$enableval],
341 AC_ARG_ENABLE([projectm],
342 [AS_HELP_STRING([--enable-projectm],
343 [enable ProjectM visualisation (default is yes)])],
344 [use_projectm=$enableval],
347 AC_ARG_ENABLE([wayland],
348 [AS_HELP_STRING([--enable-wayland],
349 [enable wayland (default is no) 'Linux Only'])],
350 [use_wayland=$enableval],
354 [AS_HELP_STRING([--enable-x11],
355 [enable x11 (default is yes) 'Linux Only'])],
356 [use_x11=$enableval],
359 AC_ARG_ENABLE([ccache],
360 [AS_HELP_STRING([--enable-ccache],
361 [enable building with ccache feature (default is auto)])],
362 [use_ccache=$enableval],
365 AC_ARG_ENABLE([alsa],
366 [AS_HELP_STRING([--disable-alsa],
367 [disable ALSA support (only for linux/freebsd)])],
368 [use_alsa=$enableval],
371 AC_ARG_ENABLE([pulse],
372 [AS_HELP_STRING([--enable-pulse],
373 [enable PulseAudio support (default is no)])],
374 [use_pulse=$enableval],
378 [AS_HELP_STRING([--disable-ssh],
379 [disable SSH SFTP support (default is enabled)])],
380 [use_ssh=$enableval],
383 AC_ARG_ENABLE([rtmp],
384 [AS_HELP_STRING([--enable-rtmp],
385 [enable RTMP support via librtmp (default is auto)])],
386 [use_librtmp=$enableval],
389 AC_ARG_ENABLE([samba],
390 [AS_HELP_STRING([--disable-samba],
391 [disable SAMBA support (default is enabled)])],
392 [use_samba=$enableval],
396 [AS_HELP_STRING([--enable-nfs],
397 [enable NFS support via libnfs (default is auto)])],
398 [use_libnfs=$enableval],
401 AC_ARG_ENABLE([afpclient],
402 [AS_HELP_STRING([--enable-afpclient],
403 [enable AFP support via libafpclient (default is auto)])],
404 [use_libafpclient=$enableval],
405 [use_libafpclient=auto])
407 AC_ARG_ENABLE([airplay],
408 [AS_HELP_STRING([--enable-airplay],
409 [enable AirPlay support(default is auto)])],
410 [use_airplay=$enableval],
413 AC_ARG_ENABLE([airtunes],
414 [AS_HELP_STRING([--enable-airtunes],
415 [enable AirTunes support(default is auto)])],
416 [use_airtunes=$enableval],
419 AC_ARG_ENABLE([upnp],
420 [AS_HELP_STRING([--disable-upnp],
421 [disable UPnP support (default is enabled)])],
422 [use_upnp=$enableval],
425 AC_ARG_ENABLE([ffmpeg_libvorbis],
426 [AS_HELP_STRING([--enable-ffmpeg-libvorbis],
427 [enable FFmpeg vorbis encoding (default is no)])],
428 [use_ffmpeg_libvorbis=$enableval],
429 [use_ffmpeg_libvorbis=no])
431 AC_ARG_ENABLE([dvdcss],
432 [AS_HELP_STRING([--enable-dvdcss],
433 [enable DVDCSS support (default is yes)])],
434 [use_dvdcss=$enableval],
438 [AS_HELP_STRING([--enable-mid],
439 [enable MID support (default is no)])],
440 [use_mid=$enableval],
444 [AS_HELP_STRING([--disable-hal],
445 [disable HAL support (default is enabled if hal and hal-storage is found)])],
446 [use_hal=$enableval],
449 AC_ARG_ENABLE([avahi],
450 [AS_HELP_STRING([--disable-avahi],
451 [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
452 [use_avahi=$enableval],
455 AC_ARG_ENABLE([mdnsembedded],
456 [AS_HELP_STRING([--disable-mdnsembedded],
457 [disable mDNSEmbedded support (default is auto)])],
458 [use_mdnsembedded=$enableval],
459 [use_mdnsembedded=auto])
461 AC_ARG_ENABLE([non-free],
462 [AS_HELP_STRING([--disable-non-free],
463 [disable componentents with non-compliant licenses])],
464 [use_nonfree=$enableval],
467 AC_ARG_ENABLE([asap-codec],
468 [AS_HELP_STRING([--enable-asap-codec],
469 [enable ASAP ADPCM support])],
470 [use_asap=$enableval],
473 AC_ARG_ENABLE([mysql],
474 [AS_HELP_STRING([--disable-mysql],
476 [use_mysql=$enableval],
479 AC_ARG_ENABLE([webserver],
480 [AS_HELP_STRING([--disable-webserver],
481 [disable webserver])],
482 [use_webserver=$enableval],
485 AC_ARG_ENABLE([optical-drive],
486 [AS_HELP_STRING([--disable-optical-drive],
487 [disable optical drive])],
488 [use_optical_drive=$enableval],
489 [use_optical_drive=yes])
491 AC_ARG_ENABLE([libbluray],
492 [AS_HELP_STRING([--enable-libbluray],
493 [enable libbluray support])],
494 [use_libbluray=$enableval],
495 [use_libbluray=auto])
497 AC_ARG_ENABLE([texturepacker],
498 [AS_HELP_STRING([--enable-texturepacker],
499 [enable texturepacker support (default is yes)])],
500 [use_texturepacker=$enableval],
501 [use_texturepacker=auto])
503 AC_ARG_WITH([lirc-device],
504 [AS_HELP_STRING([--with-lirc-device=file],
505 [specify the default LIRC device (default is /dev/lircd)])],
506 [lirc_device=$withval],
507 [lirc_device=/dev/lircd])
508 AC_DEFINE_UNQUOTED([LIRC_DEVICE], ["$lirc_device"], [Default LIRC device])
510 AC_ARG_ENABLE([udev],
511 [AS_HELP_STRING([--enable-udev],
512 [enable udev support (default is auto)])],
513 [use_libudev=$enableval],
516 AC_ARG_ENABLE([libusb],
517 [AS_HELP_STRING([--enable-libusb],
518 [enable libusb support (default is auto)])],
519 [use_libusb=$enableval],
522 AC_ARG_ENABLE([libcec],
523 [AS_HELP_STRING([--enable-libcec],
524 [enable libcec support (default is auto)])],
525 [use_libcec=$enableval],
528 AC_ARG_ENABLE([libmp3lame],
529 [AS_HELP_STRING([--enable-libmp3lame],
530 [enable lame mp3 encoder support (default is auto)])],
531 [use_libmp3lame=$enableval],
532 [use_libmp3lame=auto])
534 AC_ARG_ENABLE([libvorbisenc],
535 [AS_HELP_STRING([--enable-libvorbisenc],
536 [enable vorbis encoder support (default is auto)])],
537 [use_libvorbisenc=$enableval],
538 [use_libvorbisenc=auto])
540 AC_ARG_ENABLE([libcap],
541 [AS_HELP_STRING([--enable-libcap],
542 [enable libcap support (default is auto)])],
543 [use_libcap=$enableval],
546 AC_ARG_ENABLE([player],
547 [AS_HELP_STRING([--enable-player],
548 [enable additional players from a list of comma separated names, (default is none, choices are amlplayer, omxplayer)])],
549 [add_players=$enableval],
552 AC_ARG_ENABLE([gtest],
553 [AS_HELP_STRING([--enable-gtest],
554 [configure Google Test Framework (default is no)])],
555 [configure_gtest=$enableval],
556 [configure_gtest=no])
558 AC_ARG_ENABLE([codec],
559 [AS_HELP_STRING([--enable-codec],
560 [enable additional codecs from a list of comma separated names, (default is none, choices are amcodec, libstagefright)])],
561 [add_codecs=$enableval],
564 ### External libraries options
565 AC_ARG_ENABLE([external-libraries],
566 [AS_HELP_STRING([--enable-external-libraries],
567 [enable use of all supported external libraries (default is no) 'Linux only'])],
568 [use_external_libraries=$enableval],
569 [use_external_libraries=no])
571 AC_ARG_ENABLE([external-ffmpeg],
572 [AS_HELP_STRING([--enable-external-ffmpeg],
573 [enable use of external ffmpeg libraries (default is no) 'Linux only'])],
574 [use_external_ffmpeg=$enableval],
575 [use_external_ffmpeg=$use_external_libraries])
577 AC_ARG_ENABLE([libav-compat],
578 [AS_HELP_STRING([--enable-libav-compat],
579 [build a wrapper around libav to provide the functions needed by XBMC. This is
580 *not* supported by XBMC developers and is provided only for convenience. (default is no) 'Linux only'])],
581 [use_libav_hacks=$enableval],
582 [use_libav_hacks=no])
584 ### End of external library options
586 if test "x$host_vendor" != "xapple"; then
587 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
588 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
591 # Checks for programs.
592 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
595 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
596 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
598 AX_PROG_CXX_FOR_BUILD
599 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
606 OBJDUMP="${OBJDUMP:-objdump}"
608 # ffmpeg needs the output of uname -s (e.x. linux, darwin) for the target_os
609 # there is no autoconf variable which will give
610 # the correct output format when doing cross compilation
611 # so we have to use our own var here
612 # defaults to the build side target_os
613 # and should be overridden for cross below (see android)
614 ffmpeg_target_os=$(tolower $(uname -s))
616 # host detection and setup
618 i*86*-linux-android*)
619 target_platform=target_android
623 ffmpeg_target_os=linux
633 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
640 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
650 ARCH="x86_64-freebsd"
666 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
667 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
668 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
669 PYTHON_NOVERSIONCHECK="no-check"
676 powerpc-apple-darwin*)
683 powerpc-*-linux-gnu*)
686 powerpc64-*-linux-gnu*)
687 ARCH="powerpc64-linux"
692 ffmpeg_target_os=linux
700 arm*-*linux-android*)
701 target_platform=target_android
705 ffmpeg_target_os=linux
716 AC_MSG_ERROR(unsupported host ($host))
720 check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
721 if test "x$check_sdl_arch" = "xi386" ; then
722 DARWIN_NATIVE_ARCH=-m32
723 elif test "x$check_sdl_arch" = "xx86_64" ; then
724 DARWIN_NATIVE_ARCH=-m64
726 AC_SUBST([DARWIN_NATIVE_ARCH])
728 if test "$target_platform" = "target_android" ; then
730 webserver_checkdepends=yes
731 CFLAGS="$CFLAGS -Wno-psabi"
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"; 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"
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"
875 # Checks for library functions.
878 AC_FUNC_CLOSEDIR_VOID
879 AC_FUNC_ERROR_AT_LINE
881 AC_PROG_GCC_TRADITIONAL
883 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
887 # Boxee is apparently having compile problems
888 # if HAVE_REALLOC is defined. Sort this later.
890 AC_FUNC_SELECT_ARGTYPES
891 AC_FUNC_SETVBUF_REVERSED
899 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])
901 # Check for various sizes
902 AC_CHECK_SIZEOF([int])
903 AC_CHECK_SIZEOF([size_t])
905 # Check for intrinsics
906 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
907 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
908 [have_builtin_sync_add_and_fetch=yes],
909 [have_builtin_sync_add_and_fetch=no])
910 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
911 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
912 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
913 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
916 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
917 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
918 [have_builtin_sync_sub_and_fetch=yes],
919 [have_builtin_sync_sub_and_fetch=no])
920 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
921 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
922 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
923 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
926 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
927 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
928 [have_builtin_sync_val_compare_and_swap=yes],
929 [have_builtin_sync_val_compare_and_swap=no])
930 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
931 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
932 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
933 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
936 # Check for u16string/u32string declarations
938 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
939 AC_CHECK_TYPES([char16_t, char32_t])
940 AC_CHECK_SIZEOF([wchar_t])
943 # Add top source directory for all builds so we can use config.h
944 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
946 # Check inotify availability
947 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
949 # Checks for boost headers using CXX instead of CC
951 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
955 if test -z "$PYTHON_NOVERSIONCHECK"; then
956 AX_PYTHON_DEVEL([>= 2.4])
957 PYTHON_VERSION=$ac_python_version
960 if test -z "$PYTHON_VERSION"; then
961 AC_MSG_ERROR([Can't find a Python version.])
963 LIBS="$LIBS $PYTHON_LDFLAGS"
964 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
968 if test "$use_wayland" = "yes" && test "$host_vendor" != "apple"; then
969 AC_MSG_NOTICE($wayland_enabled)
970 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client],
971 [INCLUDES="$INCLUDES $WAYLAND_CLIENT_CFLAGS";
972 WAYLAND_CLIENT_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-client\`; echo ${LIBRARY:2}`;
973 XB_FIND_SONAME([WAYLAND_CLIENT_LIBRARY], ${WAYLAND_CLIENT_LIBRARY_LINE})],
974 AC_MSG_ERROR($missing_library))
975 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],
976 [INCLUDES="$INCLUDES $WAYLAND_EGL_CFLAGS";
977 WAYLAND_EGL_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-egl\`; echo ${LIBRARY:2}`
978 XB_FIND_SONAME([WAYLAND_EGL_LIBRARY], ${WAYLAND_EGL_LIBRARY_LINE})],
979 AC_MSG_ERROR($missing_library))
980 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
981 [INCLUDES="$INCLUDES $XKBCOMMON_CFLAGS";
982 XKBCOMMON_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l xkbcommon\`; echo ${LIBRARY:2}`;
983 XB_FIND_SONAME([XKBCOMMON_LIBRARY], $XKBCOMMON_LIBRARY_LINE)],
984 AC_MSG_ERROR($missing_library))
985 AC_DEFINE([HAVE_WAYLAND], [1], [Define to 1 if you have Wayland libs installed.])
986 AC_DEFINE([HAVE_XKBCOMMON], [1], [Define to 1 if you have libxkbcommon installed.])
988 # Disable SDL and X11 builds
994 # Wayland requires the EGL "window system" which in turn only supports
995 # the OpenGL ES API, so enable gles support
998 AC_MSG_RESULT($wayland_disabled)
1001 # Checks for platforms libraries.
1002 if test "$use_gles" = "yes"; then
1004 # GLES overwrites GL if both set to yes.
1005 if test "$host_vendor" = "apple" ; then
1006 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1007 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1008 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1010 if test "$target_platform" = "target_raspberry_pi"; then
1011 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1012 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1013 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1014 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
1016 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
1017 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
1021 if test "$use_gl" = "yes"; then
1022 if test "$host_vendor" = "apple" ; then
1023 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
1024 LIBS="$LIBS -framework OpenGL"
1025 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
1026 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
1027 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
1028 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
1029 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1031 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
1032 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1033 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
1036 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
1037 AC_CHECK_LIB([SDL_gfx],[main])
1041 # platform common libraries
1042 if test "$use_mysql" = "yes"; then
1043 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
1044 if test "x$MYSQL_CONFIG" != "xno"; then
1045 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
1046 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
1047 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
1048 LIBS="$LIBS $MYSQL_LIBS"
1049 AC_SUBST(MYSQL_LIBS)
1051 AC_MSG_ERROR($missing_program)
1054 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1055 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1056 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1057 AC_INCLUDES_DEFAULT()
1058 [#include <mpeg2dec/mpeg2.h>])
1059 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
1060 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1061 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
1062 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1063 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1064 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1065 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1066 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1068 # we need to check for the header because if it exists we set the openssl
1069 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1070 # in MT manner correctly.
1071 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1072 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1073 if test "$gcrypt_headers_available" = "yes"; then
1074 # if we have the headers then we must have the lib
1075 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1076 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1077 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1079 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"))
1081 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1082 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1083 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1084 if echo "$ARCH" | grep -q freebsd; then
1085 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1086 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1087 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1088 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1090 if test "$target_platform" != "target_android" ; then
1091 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1092 AC_CHECK_LIB([pthread], [pthread_setname_np],
1093 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1094 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1097 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1098 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1099 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1100 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1101 if test "$use_mysql" = "yes"; then
1102 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1104 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1105 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1106 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1107 if test "$target_platform" = "target_android" ; then
1108 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1109 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1110 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1112 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1113 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1114 AC_MSG_ERROR($missing_library))
1115 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1116 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1117 AC_MSG_ERROR($missing_library))
1118 PKG_CHECK_MODULES([PNG], [libpng],
1119 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1120 AC_MSG_ERROR($missing_library))
1121 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1122 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1123 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1124 AC_MSG_ERROR($missing_library))
1125 PKG_CHECK_MODULES([PCRE], [libpcre],
1126 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1127 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1128 AC_MSG_ERROR($missing_library))
1129 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1130 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1131 AC_MSG_ERROR($missing_library))
1132 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1133 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1134 AC_MSG_ERROR($missing_library))
1135 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1136 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1137 AC_MSG_ERROR($missing_library))
1139 if test "$use_optical_drive" = "yes"; then
1140 PKG_CHECK_MODULES([CDIO], [libcdio],
1141 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1142 AC_MSG_ERROR($missing_library))
1145 if test "$target_platform" = "target_android" ; then
1146 PKG_CHECK_MODULES([ZIP], [libzip],
1147 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1148 AC_MSG_ERROR($missing_library))
1151 # check for libbluray
1152 AS_CASE([x$use_libbluray],
1154 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1157 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1160 AS_CASE([x$use_libbluray],
1162 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1163 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1164 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1165 AC_SUBST([HAVE_LIBBLURAY], 1)
1166 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1167 AC_CHECK_DECL([BD_EVENT_IDLE],
1168 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1169 [[#include <libbluray/bluray.h>]]))
1171 AC_SUBST([HAVE_LIBBLURAY], 0)
1175 #Check to see if libs are needed for functions that are often built-in to libc
1176 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1177 AC_SEARCH_LIBS([dlopen],dl)
1178 AC_SEARCH_LIBS([clock_gettime],rt)
1179 AC_SEARCH_LIBS([dn_expand], resolv)
1180 AC_SEARCH_LIBS([_dn_expand], resolv)
1181 AC_SEARCH_LIBS([__dn_expand],resolv)
1183 # platform dependent libraries
1184 if test "$host_vendor" = "apple" ; then
1185 if test "$use_arch" != "arm"; then
1186 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1187 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1190 if test "$target_platform" != "target_android" ; then
1191 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1193 if test "x$use_alsa" != "xno"; then
1194 PKG_CHECK_MODULES([ALSA], [alsa],
1195 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1196 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1198 PKG_CHECK_MODULES([DBUS], [dbus-1],
1199 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1200 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1201 AC_MSG_NOTICE($missing_library); use_dbus=no)
1202 if test "x$use_sdl" != "xno"; then
1203 PKG_CHECK_MODULES([SDL], [sdl],
1204 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1205 AC_MSG_ERROR($missing_library))
1206 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1207 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1211 XB_FIND_SONAME([MAD], [mad])
1212 XB_FIND_SONAME([OGG], [ogg])
1213 XB_FIND_SONAME([CURL], [curl])
1214 XB_FIND_SONAME([FLAC], [FLAC])
1215 XB_FIND_SONAME([VORBIS], [vorbis])
1216 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1217 XB_FIND_SONAME([MODPLUG], [modplug])
1218 XB_FIND_SONAME([ASS], [ass])
1219 XB_FIND_SONAME([MPEG2], [mpeg2])
1222 if test "x$use_libmp3lame" != "xno"; then
1223 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1224 if test "x$use_libmp3lame" != "xno"; then
1225 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1228 AS_CASE([x$use_libmp3lame],
1230 AC_SUBST([HAVE_LIBMP3LAME], 0)
1233 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1234 AC_SUBST([HAVE_LIBMP3LAME], 1)
1237 if test "x$use_libvorbisenc" != "xno"; then
1238 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1239 if test "x$use_libvorbisenc" != "xno"; then
1240 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1243 AS_CASE([x$use_libvorbisenc],
1245 AC_SUBST([HAVE_LIBVORBISENC], 0)
1247 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1248 AC_SUBST([HAVE_LIBVORBISENC], 1)
1253 if test "$use_webserver" = "yes"; then
1254 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1258 if test "$use_optical_drive" = "yes"; then
1259 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1263 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1264 PKG_CHECK_MODULES([ALSA], [alsa],
1265 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1266 AC_MSG_ERROR($missing_library))
1267 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1270 AC_MSG_RESULT($alsa_disabled)
1274 if test "x$use_pulse" != "xno"; then
1275 if test "$host_vendor" = "apple" ; then
1276 if test "x$use_pulse" = "xyes"; then
1277 AC_MSG_ERROR($pulse_disabled)
1280 AC_MSG_RESULT($pulse_disabled)
1284 AC_CHECK_LIB([pulse],[main],,pulse_found="no")
1285 AC_CHECK_LIB([pulse-simple],[main],,pulse_found="no")
1287 if test "x$pulse_found" != "xno"; then
1289 elif test "x$use_pulse" = "xyes"; then
1290 AC_MSG_ERROR($pulse_not_found)
1294 AC_MSG_RESULT($pulse_not_found)
1298 AC_MSG_RESULT($pulse_disabled)
1303 if test "$host_vendor" = "apple" ; then
1305 AC_MSG_RESULT($hal_disabled)
1307 if test "$use_hal" = "yes"; then
1308 PKG_CHECK_MODULES([HAL], [hal],
1309 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1310 use_hal=no;AC_MSG_RESULT($hal_not_found))
1311 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1312 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1313 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1315 AC_MSG_RESULT($hal_disabled)
1317 if test "$use_hal" = "yes"; then
1318 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1323 if test "$host_vendor" = "apple" ; then
1325 AC_MSG_RESULT($avahi_disabled)
1327 if test "$use_avahi" = "yes"; then
1328 AC_CHECK_LIB([avahi-common], [main],,
1329 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1330 if test "$use_avahi" = "yes"; then
1331 #either both libs or none
1332 AC_CHECK_LIB([avahi-client], [main],,
1333 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1336 AC_MSG_RESULT($avahi_disabled)
1341 if test "$use_mdnsembedded" != "no"; then
1342 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1343 [if test "$use_mdnsembedded" = "yes"; then
1344 AC_MSG_ERROR($mdnsembedded_not_found)
1346 elif test "$use_mdnsembedded" != "no"; then
1347 AC_MSG_NOTICE($mdnsembedded_not_found)
1348 use_mdnsembedded="no"
1352 if test $use_mdnsembedded != "no"; then
1356 AC_MSG_RESULT($mdnsembedded_disabled)
1359 AC_SUBST(USE_MDNSEMBEDDED)
1362 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1363 AC_MSG_NOTICE($x11_enabled)
1364 PKG_CHECK_MODULES([X11], [x11],
1365 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1366 AC_MSG_ERROR($missing_library))
1367 PKG_CHECK_MODULES([XEXT], [xext],
1368 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1369 AC_MSG_ERROR($missing_library))
1370 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1372 AC_MSG_RESULT($x11_disabled)
1376 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1378 AC_MSG_RESULT($xrandr_disabled)
1380 if test "$use_xrandr" = "yes" ; then
1381 AC_CHECK_LIB([Xrandr], [main],,
1382 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1384 AC_MSG_RESULT($xrandr_disabled)
1389 if test "$use_waveform" = "yes"; then
1390 AC_MSG_NOTICE($waveform_enabled)
1393 AC_MSG_NOTICE($waveform_disabled)
1398 if test "$use_spectrum" = "yes"; then
1399 AC_MSG_NOTICE($spectrum_enabled)
1402 AC_MSG_NOTICE($spectrum_disabled)
1407 if test "$host_vendor" = "apple" ; then
1408 AC_MSG_NOTICE($goom_disabled)
1411 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1412 AC_MSG_NOTICE($goom_enabled)
1415 AC_MSG_NOTICE($goom_disabled)
1421 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1422 AC_MSG_NOTICE($rsxs_disabled)
1425 AC_MSG_NOTICE($rsxs_enabled)
1427 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1428 if test "$host_vendor" != "apple" ; then
1429 PKG_CHECK_MODULES([XT], [xt],
1430 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1431 AC_MSG_ERROR($missing_library))
1432 PKG_CHECK_MODULES([XMU], [xmu],
1433 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1434 AC_MSG_ERROR($missing_library))
1439 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1440 AC_MSG_NOTICE($fishbmc_disabled)
1444 AC_MSG_NOTICE($fishbmc_enabled)
1449 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1450 AC_MSG_NOTICE($projectm_disabled)
1454 AC_MSG_NOTICE($projectm_enabled)
1460 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1461 use_skin_touched=yes
1463 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1469 if test "x$use_ssh" = "xno"; then
1470 AC_MSG_NOTICE($ssh_disabled)
1473 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1474 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1478 if test "$use_librtmp" != "no"; then
1479 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1480 [if test "$use_librtmp" = "yes"; then
1481 AC_MSG_ERROR($librtmp_not_found)
1482 elif test "$use_librtmp" != "no"; then
1483 AC_MSG_NOTICE($librtmp_not_found)
1487 if test "$use_librtmp" != "no"; then
1488 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1490 if test "$use_librtmp" != "no"; then
1491 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1494 AC_MSG_NOTICE($librtmp_disabled)
1498 if test "x$use_samba" != "xno"; then
1499 AC_CHECK_LIB([smbclient], [main],,
1500 use_samba=no;AC_MSG_ERROR($missing_library))
1503 AC_MSG_RESULT($samba_disabled)
1507 if test "x$use_samba" != "xno"; then
1508 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1513 if test "$use_libnfs" != "no"; then
1514 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1515 [if test "$use_libnfs" = "yes"; then
1516 AC_MSG_ERROR($libnfs_not_found)
1518 elif test "$use_libnfs" != "no"; then
1519 AC_MSG_NOTICE($libnfs_not_found)
1524 if test "$use_libnfs" != "no"; then
1525 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1527 if test "$use_libnfs" != "no"; then
1528 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1533 AC_MSG_NOTICE($libnfs_disabled)
1538 if test "x$use_libafpclient" != "xno"; then
1539 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1540 [if test "x$use_libafpclient" = "xyes"; then
1541 AC_MSG_ERROR($libafpclient_not_found)
1542 elif test "x$use_libafpclient" != "xno"; then
1543 AC_MSG_NOTICE($libafpclient_not_found)
1544 use_libafpclient="no"
1547 if test "x$use_libafpclient" != "xno"; then
1548 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1549 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1553 AC_MSG_NOTICE($libafpclient_disabled)
1556 # libplist for airplay feature
1558 if test "$use_airplay" != "no"; then
1559 AC_CHECK_HEADER([plist/plist.h],,
1560 [if test "$use_airplay" = "yes"; then
1561 AC_MSG_ERROR($libplist_not_found)
1562 elif test "$use_airplay" != "no"; then
1563 AC_MSG_NOTICE($libplist_not_found)
1568 if test "$use_airplay" != "no"; then
1569 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1571 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1575 # libshairplay for AirTunes (prefered lib)
1577 if test "x$use_airtunes" != "xno"; then
1578 AC_CHECK_HEADERS([shairplay/raop.h],,
1579 [if test "x$use_airtunes" = "xyes"; then
1580 AC_MSG_ERROR($libshairplay_not_found)
1581 elif test "x$use_airtunes" != "xno"; then
1582 AC_MSG_NOTICE($libshairplay_not_found)
1587 if test "x$use_airtunes" != "xno"; then
1588 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [use_airtunes])
1591 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1592 [[#include <shairplay/raop.h>]])
1593 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1596 #libshairport - as a fallback for AirTunes
1597 if test "x$USE_AIRTUNES" == "x0"; then
1598 AC_CHECK_HEADERS([shairport/shairport.h],,
1599 [if test "x$use_airtunes" = "xyes"; then
1600 AC_MSG_ERROR($libshairport_not_found)
1601 elif test "x$use_airtunes" != "xno"; then
1602 AC_MSG_NOTICE($libshairport_not_found)
1607 if test "x$use_airtunes" != "xno"; then
1608 XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
1610 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1611 [[#include <shairport/shairport.h>]])
1612 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1619 if test "$host_vendor" = "apple" ; then
1621 AC_MSG_NOTICE($libudev_disabled)
1623 if test "$use_libudev" = "auto"; then
1624 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1625 elif test "$use_libudev" = "yes" ; then
1626 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1628 AC_MSG_NOTICE($libudev_disabled)
1631 if test "x$use_libudev" != "xno"; then
1632 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1633 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1640 # if libudev is available, we don't need libusb
1641 if test "x$use_libudev" != "xno"; then
1643 AC_MSG_NOTICE($libusb_disabled_udev_found)
1645 if test "$host_vendor" = "apple" ; then
1647 AC_MSG_NOTICE($libusb_disabled)
1649 if echo "$ARCH" | grep -q freebsd ; then
1650 AC_CHECK_LIB([usb],[main],
1651 [use_libusb="yes";USB_LIBS="-lusb"],
1652 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1653 elif test "$use_libusb" = "auto"; then
1654 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1655 elif test "$use_libusb" = "yes"; then
1656 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1658 AC_MSG_NOTICE($libusb_disabled)
1661 if test "x$use_libusb" != "xno"; then
1662 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1663 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1670 if test "x$use_libcec" != "xno"; then
1671 # libcec is dyloaded, so we need to check for its headers and link any depends.
1672 if test "x$use_libcec" != "xno"; then
1673 if test "x$use_libcec" != "xauto"; then
1674 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1676 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1679 if test "x$use_libcec" != "xno"; then
1680 INCLUDES="$INCLUDES $CEC_CFLAGS"
1681 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1682 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1683 AC_MSG_NOTICE($libcec_enabled)
1686 AC_MSG_NOTICE($libcec_disabled)
1691 AC_MSG_NOTICE($libcec_disabled)
1695 if test "$use_libcap" != "no"; then
1696 AC_CHECK_HEADERS([sys/capability.h],,
1697 [if test "$use_libcap" = "yes"; then
1698 AC_MSG_ERROR($libcap_not_found)
1699 elif test "$use_libcap" != "no"; then
1700 AC_MSG_NOTICE($libcap_not_found)
1704 if test "$use_libcap" != "no"; then
1705 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1707 if test "$use_libcap" != "no"; then
1708 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1711 AC_MSG_NOTICE($libcap_disabled)
1714 ### External libraries checks
1716 # Hacks for supporting libav
1719 if test "$use_libav_hacks" = "yes"; then
1720 export PKG_CONFIG_PATH="${srcdir}/lib/xbmc-libav-hacks/pkgconfig/:$PKG_CONFIG_PATH"
1722 AC_DEFINE([USE_LIBAV_HACKS], [1], [Whether to use libav compatibility hacks.])
1726 if test "$use_external_ffmpeg" = "yes"; then
1727 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale libswresample"
1729 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1730 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1731 AC_MSG_ERROR($missing_library))
1733 # in case the headers are in a custom directory
1734 SAVE_CPPFLAGS="$CPPFLAGS"
1735 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1737 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1738 [AC_MSG_ERROR($missing_headers)])
1740 AC_MSG_NOTICE($external_ffmpeg_enabled)
1741 USE_EXTERNAL_FFMPEG=1
1742 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1744 CPPFLAGS="$SAVE_CPPFLAGS"
1746 AC_MSG_NOTICE($external_ffmpeg_disabled)
1747 USE_EXTERNAL_FFMPEG=0
1750 echo "Checking for SWIG installation"
1751 AC_PATH_PROG(SWIG_EXE, swig, "none")
1752 if test "$SWIG_EXE" = "none"; then
1753 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1754 if test "$SWIG20_EXE" != "none" ; then
1755 SWIG_EXE=$SWIG20_EXE
1758 if test "$SWIG_EXE" = "none"; then
1759 AC_MSG_ERROR($missing_program)
1761 final_message="$final_message\n SWIG Available:\tYes"
1763 echo "Checking for a jre installation"
1764 AC_PATH_PROG(JAVA_EXE, java, "none")
1765 if test "$JAVA_EXE" = "none"; then
1766 AC_MSG_ERROR($missing_program)
1768 final_message="$final_message\n JRE Available:\tYes"
1770 echo "Checking for doxygen installation"
1771 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1772 if test "$DOXYGEN_EXE" = "none"; then
1773 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1774 final_message="$final_message\n Doxygen Available:\tNo"
1777 final_message="$final_message\n Doxygen Available:\tYes"
1782 if test "x$use_vdpau" != "xno"; then
1783 if test "$host_vendor" = "apple" ; then
1784 if test "x$use_vdpau" = "xyes"; then
1785 AC_MSG_ERROR([VDPAU not supported on this platform])
1788 AC_MSG_NOTICE($vdpau_disabled)
1793 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1794 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1795 [if test "x$use_vdpau" = "xyes"; then
1797 AC_MSG_ERROR([$vdpau_not_found])
1801 AC_MSG_RESULT($vdpau_not_found)
1806 AC_MSG_NOTICE($vdpau_disabled)
1810 if test "x$use_vaapi" != "xno"; then
1811 if test "$host_vendor" = "apple" ; then
1812 if test "x$use_vaapi" = "xyes"; then
1813 AC_MSG_ERROR([VAAPI not supported on this platform])
1816 AC_MSG_NOTICE($vaapi_disabled)
1820 initial_val=$use_vaapi
1821 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1822 if test "x$use_vaapi" != "xno"; then
1823 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1826 if test "x$use_vaapi" = "xno"; then
1827 if test "x$initial_val" = "xyes"; then
1828 AC_MSG_ERROR($vaapi_not_found)
1830 AC_MSG_RESULT($vaapi_not_found)
1834 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1839 AC_MSG_NOTICE($vaapi_disabled)
1844 if test "x$use_crystalhd" != "xno"; then
1845 SAVE_CFLAGS="$CFLAGS"
1846 CFLAGS="-D__LINUX_USER__"
1847 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1848 [ if test "x$use_crystalhd" = "xyes"; then
1849 AC_MSG_ERROR($crystalhd_not_found)
1852 AC_MSG_RESULT($crystalhd_not_found)
1856 CFLAGS="$SAVE_CFLAGS"
1857 if test "$host_vendor" != "apple"; then
1858 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1860 if test "x$use_crystalhd" != "xno"; then
1861 SAVE_CFLAGS="$CFLAGS"
1862 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1863 # check for new crystalhd lib
1865 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1866 #include <libcrystalhd/bc_dts_defs.h>
1867 PBC_INFO_CRYSTAL bCrystalInfo;])],
1868 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1869 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1870 CFLAGS="$SAVE_CFLAGS"
1874 AC_MSG_NOTICE($crystalhd_disabled)
1879 if test "x$use_vtbdecoder" != "xno"; then
1880 if test "$host_vendor" = "apple" ; then
1881 HAVE_VIDEOTOOLBOXDECODER=1
1882 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1883 AC_MSG_NOTICE($vtbdecoder_enabled)
1885 if test "x$use_vtbdecoder" = "xyes"; then
1886 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1889 AC_MSG_NOTICE($vtbdecoder_disabled)
1893 AC_MSG_NOTICE($vtbdecoder_disabled)
1897 if test "$host_vendor" = "apple" ; then
1900 AC_MSG_NOTICE($openmax_disabled)
1901 elif test "$target_platform" = "target_raspberry_pi"; then
1904 AC_MSG_NOTICE($openmax_disabled)
1906 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1907 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1908 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1909 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1910 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1911 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1912 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1913 AC_MSG_ERROR($openmax_not_found))
1915 AC_MSG_NOTICE($openmax_disabled)
1921 # yajl version check (yajl_version.h was added in yajl 2.0)
1922 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1923 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1926 # additional internal players
1927 case $add_players in
1929 AC_CHECK_HEADER([amplayer/player_error.h],, AC_MSG_ERROR($missing_headers))
1930 XB_ADD_PLAYER([AMLPLAYER], [amlplayer])
1933 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1937 # additional internal codecs
1940 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
1941 XB_ADD_CODEC([LIBAMCODEC], [amcodec])
1944 LIBS+="-L${prefix}/opt/android-libs -lstdc++ -lutils -lcutils -lstagefright -lbinder -lui -lgui"
1945 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright])
1950 # platform specific bin utilities
1951 if test "$build_vendor" != "apple" ; then
1952 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1953 if test "$HAVE_GAWK" = "no" ; then
1954 AC_MSG_ERROR($missing_program)
1958 if test "$use_arch" != "arm" ; then
1959 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1960 if test "$HAVE_CMAKE" = "no" ; then
1961 AC_MSG_ERROR($missing_program)
1965 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1966 if test "$HAVE_GPERF" = "no" ; then
1967 AC_MSG_ERROR($missing_program)
1970 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1971 if test "$HAVE_UNZIP" = "no" ; then
1972 AC_MSG_ERROR($missing_program)
1975 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
1976 if test "$HAVE_ZIP" = "no" ; then
1977 AC_MSG_ERROR($missing_program)
1980 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
1981 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
1982 if test "$HAVE_NASM" = "no" ; then
1983 AC_MSG_ERROR($missing_program)
1987 # Checks for header files.
1991 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
1992 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
1993 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
1994 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
1995 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
1997 # Checks for typedefs, structures, and compiler characteristics.
2013 AC_CHECK_MEMBERS([struct stat.st_rdev])
2022 if test "$cross_compiling" = "yes"; then
2023 final_message="$final_message\n Crosscomp.:\tYes"
2024 if [[ -d "$NATIVE_ROOT" ]]; then
2025 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2026 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2027 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
2028 if test "$host_vendor" != "apple" ; then
2029 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
2031 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
2034 final_message="$final_message\n Crosscomp.:\tNo"
2037 final_message="$final_message\n target ARCH:\t$use_arch"
2038 final_message="$final_message\n target CPU:\t$use_cpu"
2040 if test "$use_gles" = "yes"; then
2041 final_message="$final_message\n OpenGLES:\tYes"
2046 if test "$use_gl" = "yes"; then
2047 final_message="$final_message\n OpenGL:\tYes"
2050 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2051 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2056 if test "$use_alsa" = "yes"; then
2058 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2059 final_message="$final_message\n ALSA:\t\tYes"
2062 final_message="$final_message\n ALSA:\t\tNo"
2065 if test "$use_dbus" = "yes"; then
2066 final_message="$final_message\n DBUS:\t\tYes"
2068 final_message="$final_message\n DBUS:\t\tNo"
2071 if test "x$use_vdpau" != "xno"; then
2072 final_message="$final_message\n VDPAU:\tYes"
2074 final_message="$final_message\n VDPAU:\tNo"
2077 if test "x$use_vaapi" != "xno"; then
2078 final_message="$final_message\n VAAPI:\tYes"
2080 final_message="$final_message\n VAAPI:\tNo"
2083 if test "x$use_crystalhd" != "xno"; then
2084 final_message="$final_message\n CrystalHD:\tYes"
2086 final_message="$final_message\n CrystalHD:\tNo"
2089 if test "x$use_vtbdecoder" != "xno"; then
2090 final_message="$final_message\n VTBDecoder:\tYes"
2092 final_message="$final_message\n VTBDecoder:\tNo"
2095 if test "$use_openmax" != "no"; then
2096 final_message="$final_message\n OpenMax:\tYes"
2098 final_message="$final_message\n OpenMax:\tNo"
2101 if test "$use_joystick" = "yes"; then
2102 final_message="$final_message\n Joystick:\tYes"
2103 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2105 final_message="$final_message\n Joystick:\tNo"
2108 if test "$use_xrandr" = "yes"; then
2109 final_message="$final_message\n XRandR:\tYes"
2112 final_message="$final_message\n XRandR:\tNo"
2116 if test "$use_waveform" = "yes"; then
2117 final_message="$final_message\n Waveform:\tYes"
2119 final_message="$final_message\n Waveform:\tNo"
2122 if test "$use_spectrum" = "yes"; then
2123 final_message="$final_message\n Spectrum:\tYes"
2125 final_message="$final_message\n Spectrum:\tNo"
2128 if test "$use_goom" = "yes"; then
2129 final_message="$final_message\n GOOM:\t\tYes"
2131 final_message="$final_message\n GOOM:\t\tNo"
2134 if test "$use_rsxs" = "yes"; then
2135 final_message="$final_message\n RSXS:\t\tYes"
2137 final_message="$final_message\n RSXS:\t\tNo"
2140 if test "$use_fishbmc" = "yes"; then
2141 final_message="$final_message\n FishBMC:\tYes"
2143 final_message="$final_message\n FishBMC:\tNo"
2146 if test "$use_projectm" = "yes"; then
2147 final_message="$final_message\n ProjectM:\tYes"
2149 final_message="$final_message\n ProjectM:\tNo"
2152 if test "$use_skin_touched" = "yes"; then
2153 final_message="$final_message\n Skin Touched:\tYes"
2155 final_message="$final_message\n Skin Touched:\tNo"
2158 if test "$use_x11" = "yes"; then
2159 final_message="$final_message\n X11:\t\tYes"
2161 final_message="$final_message\n X11:\t\tNo"
2164 if test "$use_wayland" = "yes"; then
2165 final_message="$final_message\n Wayland:\tYes"
2169 final_message="$final_message\n Wayland:\tNo"
2172 if test "$use_libbluray" = "yes"; then
2173 final_message="$final_message\n Bluray:\tYes"
2175 final_message="$final_message\n Bluray:\tNo"
2178 if test "x$use_texturepacker" != "xno"; then
2179 final_message="$final_message\n TexturePacker:Yes"
2182 final_message="$final_message\n TexturePacker:No"
2186 if test "$use_mid" = "yes"; then
2187 final_message="$final_message\n MID Support:\tYes"
2188 SDL_DEFINES="$SDL_DEFINES -DMID"
2190 final_message="$final_message\n MID Support:\tNo"
2195 if test "x$use_ccache" != "xno"; then
2196 AC_PATH_PROG(CCACHE,ccache,none)
2197 if test "$ac_cv_path_CCACHE" = "none"; then
2198 if test "x$use_ccache" = "xyes"; then
2199 AC_MSG_ERROR([ccache not found.]);
2201 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2202 final_message="$final_message\n ccache:\tNo"
2205 CC="$ac_cv_path_CCACHE $CC"
2206 CXX="$ac_cv_path_CCACHE $CXX"
2207 AC_MSG_NOTICE(enabling ccache)
2208 final_message="$final_message\n ccache:\tYes"
2211 final_message="$final_message\n ccache:\tNo"
2214 if test "$use_alsa" = "yes"; then
2215 final_message="$final_message\n ALSA Support:\tYes"
2217 final_message="$final_message\n ALSA Support:\tNo"
2220 if test "x$use_pulse" != "xno"; then
2221 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2222 final_message="$final_message\n PulseAudio:\tYes"
2224 XBMC_STANDALONE_SH_PULSE=/dev/null
2225 final_message="$final_message\n PulseAudio:\tNo"
2228 if test "$use_hal" = "yes"; then
2229 final_message="$final_message\n HAL Support:\tYes"
2231 final_message="$final_message\n HAL Support:\tNo"
2235 if test "$use_dvdcss" = "yes"; then
2236 AC_MSG_NOTICE($dvdcss_enabled)
2237 final_message="$final_message\n DVDCSS:\tYes"
2239 SKIP_CONFIG_DVDCSS=0
2240 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2242 AC_MSG_NOTICE($dvdcss_disabled)
2243 final_message="$final_message\n DVDCSS:\tNo"
2245 SKIP_CONFIG_DVDCSS=1
2246 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2248 if test "$host_vendor" = "apple"; then
2249 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2252 # Google Test Framework
2253 if test "$configure_gtest" = "yes"; then
2254 AC_MSG_NOTICE($gtest_enabled)
2255 final_message="$final_message\n Google Test Framework Configured:\tYes"
2259 AC_MSG_NOTICE($gtest_disabled)
2260 final_message="$final_message\n Google Test Framework Configured:\tNo"
2265 if test "$use_avahi" = "yes"; then
2266 final_message="$final_message\n Avahi:\tYes"
2268 final_message="$final_message\n Avahi:\tNo"
2271 if test "$use_mdnsembedded" != "no"; then
2272 final_message="$final_message\n mDNSEmbedded:\tYes"
2274 final_message="$final_message\n mDNSEmbedded:\tNo"
2277 if test "$use_nonfree" = "yes"; then
2278 final_message="$final_message\n Non-free:\tYes"
2280 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2283 final_message="$final_message\n Non-free:\tNo"
2286 if test "$use_asap" = "yes"; then
2287 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2288 if test "$HAVE_GDC" = "no"; then
2289 AC_MSG_ERROR($missing_program);
2291 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2292 if test "$HAVE_FPC" = "no"; then
2293 AC_MSG_ERROR($missing_program);
2296 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2297 final_message="$final_message\n ASAP Codec:\tYes"
2300 final_message="$final_message\n ASAP Codec:\tNo"
2303 if test "$use_mysql" = "yes"; then
2304 final_message="$final_message\n MySQL:\tYes"
2307 final_message="$final_message\n MySQL:\tNo"
2310 if test "$use_webserver" = "yes"; then
2311 final_message="$final_message\n Webserver:\tYes"
2314 final_message="$final_message\n Webserver:\tNo"
2318 if test "$use_libssh" != "no"; then
2319 final_message="$final_message\n libssh support:\tYes"
2321 final_message="$final_message\n libssh support:\tNo"
2324 if test "$use_librtmp" != "no"; then
2325 final_message="$final_message\n libRTMP support:\tYes"
2327 final_message="$final_message\n libRTMP support:\tNo"
2330 if test "x$use_samba" != "xno"; then
2331 final_message="$final_message\n libsmbclient support:\tYes"
2333 final_message="$final_message\n libsmbclient support:\tNo"
2336 if test "$use_libnfs" != "no"; then
2337 final_message="$final_message\n libnfs client support:Yes"
2339 final_message="$final_message\n libnfs client support:No"
2342 if test "x$use_libafpclient" != "xno"; then
2343 final_message="$final_message\n libafpclient support:\tYes"
2345 final_message="$final_message\n libafpclient support:\tNo"
2348 if test "$use_airplay" != "no"; then
2349 final_message="$final_message\n AirPlay support:\tYes"
2351 final_message="$final_message\n AirPLay support:\tNo"
2354 if test "x$use_airtunes" != "xno"; then
2355 if test "x$USE_LIBSHAIRPORT" == "x1"; then
2356 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2358 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2361 final_message="$final_message\n AirTunes support:\tNo"
2364 if test "x$use_upnp" != "xno"; then
2365 final_message="$final_message\n UPnP support:\t\tYes"
2367 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2370 final_message="$final_message\n UPnP support:\t\tNo"
2373 if test "$use_optical_drive" = "yes"; then
2374 final_message="$final_message\n Optical drive:\tYes"
2376 final_message="$final_message\n Optical drive:\tNo"
2379 if test "x$use_libudev" != "xno"; then
2380 final_message="$final_message\n libudev support:\tYes"
2382 final_message="$final_message\n libudev support:\tNo"
2385 if test "x$use_libusb" != "xno"; then
2386 final_message="$final_message\n libusb support:\tYes"
2388 final_message="$final_message\n libusb support:\tNo"
2391 if test "x$use_libcec" != "xno"; then
2392 final_message="$final_message\n libcec support:\tYes"
2394 final_message="$final_message\n libcec support:\tNo"
2397 if test "x$use_libmp3lame" != "xno"; then
2398 final_message="$final_message\n libmp3lame support:\tYes"
2400 final_message="$final_message\n libmp3lame support:\tNo"
2403 if test "x$use_libvorbisenc" != "xno"; then
2404 final_message="$final_message\n libvorbisenc support:\tYes"
2406 final_message="$final_message\n libvorbisenc support:\tNo"
2409 if test "x$use_libcap" != "xno"; then
2410 final_message="$final_message\n libcap support:\tYes"
2412 final_message="$final_message\n libcap support:\tNo"
2415 if test "x$add_players" != "xno"; then
2416 final_message="$final_message\n additional players:\tYes, $add_players"
2418 final_message="$final_message\n additional players:\tNo"
2421 if test "x$add_codecs" != "xno"; then
2422 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2424 final_message="$final_message\n additional codecs:\tNo"
2427 ### External libraries messages
2429 if test "$use_external_ffmpeg" = "yes"; then
2430 final_message="$final_message\n External FFmpeg:\tYes"
2432 final_message="$final_message\n External FFmpeg:\tNo"
2435 if test "$host_vendor" = "apple" ; then
2436 # built internal but referenced as external, we link directly to them.
2437 # this MUST be the last thing before OUTPUT_FILES as they do not
2438 # exist until after we build FFMpeg.
2439 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2440 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2441 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2442 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2443 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2444 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2445 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2449 DISABLE_PVR_ADDON_CONFIG=1
2450 if [[ -f "pvr-addons/Makefile.am" ]]; then
2451 final_message="$final_message\n PVR add-ons:\t\tYes"
2453 DISABLE_PVR_ADDON_CONFIG=0
2455 final_message="$final_message\n PVR add-ons:\t\tNo"
2458 OUTPUT_FILES="Makefile \
2460 addons/skin.confluence/media/Makefile \
2462 xbmc/cdrip/Makefile \
2463 xbmc/cores/Makefile \
2464 xbmc/cores/VideoRenderers/Makefile \
2465 xbmc/cores/dvdplayer/Makefile \
2467 lib/libdvd/Makefile \
2468 xbmc/cores/DllLoader/Makefile \
2469 xbmc/cores/DllLoader/exports/Makefile \
2470 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2471 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2472 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2473 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2474 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2475 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2476 xbmc/cores/AudioEngine/Makefile \
2477 xbmc/cores/paplayer/Makefile \
2478 xbmc/cores/amlplayer/Makefile \
2479 xbmc/cores/omxplayer/Makefile \
2480 lib/timidity/Makefile \
2481 lib/xbadpcm/Makefile \
2483 lib/nosefart/Makefile \
2484 lib/libsidplay2/Makefile \
2485 lib/vgmstream/Makefile \
2486 lib/snesapu/SNES/SNESAPU/Makefile \
2487 lib/stsound/StSoundLibrary/Makefile \
2488 xbmc/cores/playercorefactory/Makefile \
2489 xbmc/music/karaoke/Makefile \
2491 xbmc/guilib/Makefile \
2492 xbmc/input/linux/Makefile \
2493 xbmc/interfaces/Makefile \
2494 xbmc/network/Makefile \
2495 xbmc/network/upnp/Makefile \
2496 lib/libRTV/Makefile \
2497 lib/libexif/Makefile \
2498 lib/libXDAAP/Makefile \
2499 lib/cmyth/Makefile \
2500 lib/libhdhomerun/Makefile \
2501 lib/libsquish/Makefile \
2502 lib/cximage-6.0/Makefile \
2503 lib/libUPnP/Makefile \
2504 xbmc/DllPaths_generated.h \
2505 xbmc/DllPaths_generated_android.h \
2506 xbmc/freebsd/Makefile \
2507 xbmc/linux/Makefile \
2508 xbmc/filesystem/Makefile \
2509 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2510 xbmc/visualizations/XBMCProjectM/Makefile \
2511 xbmc/visualizations/Goom/Makefile \
2512 xbmc/visualizations/OpenGLSpectrum/Makefile \
2513 xbmc/visualizations/fishBMC/Makefile \
2514 xbmc/visualizations/WaveForm/Makefile \
2515 xbmc/windowing/Makefile \
2516 xbmc/windowing/egl/Makefile \
2517 lib/addons/library.xbmc.addon/Makefile \
2518 lib/addons/library.xbmc.codec/Makefile \
2519 lib/addons/library.xbmc.gui/Makefile \
2520 lib/addons/library.xbmc.pvr/Makefile \
2521 xbmc/visualizations/EGLHelpers/Makefile \
2522 tools/Linux/xbmc.sh \
2523 tools/Linux/xbmc-standalone.sh \
2524 tools/TexturePacker/Makefile \
2525 tools/EventClients/Clients/OSXRemote/Makefile \
2526 xbmc/peripherals/bus/Makefile \
2527 xbmc/peripherals/devices/Makefile \
2528 xbmc/android/activity/Makefile \
2529 xbmc/android/loader/Makefile \
2530 xbmc/android/jni/Makefile \
2531 xbmc/utils/Makefile \
2532 xbmc/main/Makefile \
2533 project/cmake/xbmc-config.cmake"
2535 if test "$use_skin_touched" = "yes"; then
2536 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2539 OUTPUT_FILES="$OUTPUT_FILES \
2540 xbmc/interfaces/python/Makefile \
2541 xbmc/interfaces/python/test/Makefile"
2543 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2544 # .dummy.am does nothing.
2545 AC_CONFIG_FILES([.dummy])
2547 AC_CONFIG_FILES([${OUTPUT_FILES}])
2548 OUTPUT_FILES="$OUTPUT_FILES \
2554 AC_SUBST(CXX_FOR_BUILD)
2555 AC_SUBST(CC_FOR_BUILD)
2556 AC_SUBST(CFLAGS_FOR_BUILD)
2557 AC_SUBST(CXXFLAGS_FOR_BUILD)
2558 AC_SUBST(LDFLAGS_FOR_BUILD)
2559 AC_SUBST(SDL_DEFINES)
2560 AC_SUBST(BUILD_DVDCSS)
2561 AC_SUBST(DISABLE_WAVEFORM)
2562 AC_SUBST(DISABLE_SPECTRUM)
2563 AC_SUBST(DISABLE_GOOM)
2564 AC_SUBST(DISABLE_RSXS)
2565 AC_SUBST(DISABLE_FISHBMC)
2566 AC_SUBST(DISABLE_PROJECTM)
2567 AC_SUBST(USE_SKIN_TOUCHED)
2568 AC_SUBST(USE_EXTERNAL_FFMPEG)
2569 AC_SUBST(USE_LIBAV_HACKS)
2570 AC_SUBST(PYTHON_VERSION)
2571 AC_SUBST(OUTPUT_FILES)
2572 AC_SUBST(HAVE_XBMC_NONFREE)
2573 AC_SUBST(USE_ASAP_CODEC)
2574 AC_SUBST(LIBCURL_BASENAME)
2575 AC_SUBST(LIBFLAC_BASENAME)
2576 AC_SUBST(LIBVORBISFILE_BASENAME)
2577 AC_SUBST(LIBMODPLUG_BASENAME)
2578 AC_SUBST(LIBMAD_BASENAME)
2579 AC_SUBST(LIBOGG_BASENAME)
2580 AC_SUBST(LIBVORBISENC_BASENAME)
2581 AC_SUBST(LIBVORBIS_BASENAME)
2582 AC_SUBST(LIBASS_BASENAME)
2583 AC_SUBST(LIBMEPG2_BASENAME)
2584 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2585 AC_SUBST(USE_OPENGL)
2586 AC_SUBST(USE_OPENGLES)
2589 AC_SUBST(USE_CRYSTALHD)
2590 AC_SUBST(USE_LIBSMBCLIENT)
2591 AC_SUBST(USE_LIBNFS)
2592 AC_SUBST(USE_LIBAFPCLIENT)
2593 AC_SUBST(USE_AIRPLAY)
2594 AC_SUBST(USE_OPENMAX)
2596 AC_SUBST(USE_XRANDR)
2598 AC_SUBST(USE_TEXTUREPACKER)
2599 AC_SUBST(USE_AIRTUNES)
2600 AC_SUBST(USE_LIBUDEV)
2601 AC_SUBST(USE_LIBUSB)
2602 AC_SUBST(USE_LIBCEC)
2604 AC_SUBST(USE_WAYLAND)
2605 AC_SUBST(USE_WEB_SERVER)
2607 AC_SUBST(USE_XKBCOMMON)
2608 AC_SUBST(USE_OMXLIB)
2609 AC_SUBST(USE_ANDROID)
2610 AC_SUBST(GTEST_CONFIGURED)
2611 AC_SUBST(USE_DOXYGEN)
2612 AC_SUBST(USE_PVR_ADDONS)
2614 # pushd and popd are not available in other shells besides bash, so implement
2615 # our own pushd/popd functions
2620 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2622 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2625 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2630 if [[ -n "$XB_DIRSTACK" ]]; then
2631 XB_DIRSTACK="${XB_DIRSTACK#* }"
2632 cd "${XB_DIRSTACK%% *}"
2635 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2639 # Function to run the configure scripts in our submodules
2640 # Consists of three paramaters, the path to the submodule, the configure command
2641 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2642 # running the script, anything else if not.
2643 AC_DEFUN([XB_CONFIG_MODULE],[
2644 AC_CONFIG_COMMANDS_POST([
2645 if [[ $3 != "1" ]]; then
2646 if [[ -d $1 ]]; then
2649 if [[ $? -ne 0 ]]; then
2651 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2656 AC_MSG_ERROR([[Submodule $1 does not exist]])
2659 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2664 XB_CONFIG_MODULE([lib/ffmpeg], [
2665 if test "$host_vendor" = "apple" ; then
2666 ffmpg_config="--target-os=$ffmpeg_target_os"
2667 # handle disables first, we do individual enables later
2668 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2669 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2670 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2671 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2672 ffmpg_config="$ffmpg_config --enable-vda --disable-crystalhd"
2673 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2675 # handle conditional enables/disables
2676 if test "$use_debug" = "no"; then
2677 ffmpg_config="$ffmpg_config --disable-debug"
2679 if test "$use_cpu" != "no"; then
2680 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2682 if test "$use_arch" != "no"; then
2683 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2685 if test "$use_arch" = "arm"; then
2686 ffmpg_config="$ffmpg_config --enable-pic"
2687 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2688 if test "$use_neon" = "yes"; then
2689 ffmpg_config="$ffmpg_config --enable-neon"
2691 ffmpg_config="$ffmpg_config --disable-neon"
2694 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2696 if test "$use_ffmpeg_libvorbis" = "yes"; then
2697 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2699 ffmpg_config="$ffmpg_config --disable-libvorbis"
2701 if test "$have_gnutls" = "yes"; then
2702 ffmpg_config="$ffmpg_config --enable-gnutls"
2705 # handle individual enables
2706 ffmpg_config="$ffmpg_config --enable-gpl"
2707 ffmpg_config="$ffmpg_config --enable-postproc"
2708 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2709 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts --enable-muxer=asf --enable-muxer=ipod"
2710 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2"
2711 ffmpg_config="$ffmpg_config --enable-protocol=http"
2712 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2714 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2717 ffmpg_config="$ffmpg_config --cc=clang" ;;
2719 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2722 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2723 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2725 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2727 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2728 # dependency files in the right place, replace it with something that works
2731 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2734 # ffmpeg will use yasm found at ${prefix}/bin during configure
2735 # but then hardcodes 'yasm' in config.mak, fix it.
2736 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2737 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2738 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2743 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2745 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2747 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2748 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2749 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2750 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2751 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2752 --target-os=$ffmpeg_target_os \
2754 --enable-muxer=spdif \
2755 --enable-muxer=adts \
2756 --enable-muxer=asf \
2757 --enable-muxer=ipod \
2758 --disable-encoders \
2759 --enable-encoder=ac3 \
2760 --enable-encoder=aac \
2761 --enable-encoder=wmav2 \
2762 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2763 --disable-decoder=mpeg_xvmc \
2767 --disable-ffserver \
2769 --disable-crystalhd \
2774 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2775 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2776 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2777 --enable-protocol=http \
2778 `if test "$have_gnutls" = "yes"; then echo --enable-gnutls; fi` \
2780 --enable-runtime-cpudetect \
2781 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2782 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2783 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2784 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2785 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2787 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2788 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2790 ], [$USE_EXTERNAL_FFMPEG])
2792 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2797 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2798 --host=$host_alias \
2799 --build=$build_alias \
2800 --target=$target_alias \
2804 ], [$SKIP_CONFIG_DVDCSS])
2806 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2808 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src" \
2809 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2810 --host=$host_alias \
2811 --build=$build_alias \
2812 --target=$target_alias \
2818 $MAKE dvdread-config &&
2819 mkdir -p `pwd`/../includes/dvdread
2820 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2821 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2824 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2826 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
2827 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2828 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2829 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2830 --host=$host_alias \
2831 --build=$build_alias \
2832 --target=$target_alias \
2838 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2840 rm -f CMakeCache.txt && \
2841 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2842 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2843 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2844 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2845 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2846 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2847 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2848 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2849 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2850 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2851 if test "$host_vendor" = "apple" ; then
2852 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2853 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2854 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2855 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2858 ], [$DISABLE_PROJECTM])
2860 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2863 CXXFLAGS="$CXXFLAGS" \
2864 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2865 --host=$host_alias \
2866 --build=$build_alias \
2867 --target=$target_alias \
2873 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2874 if test "$host_vendor" = "apple"; then
2875 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";
2877 TEMPCFLAGS="$CFLAGS";
2882 CFLAGS="$TEMPCFLAGS" \
2883 CXXFLAGS="$CXXFLAGS" \
2884 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2885 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2886 --host=$host_alias \
2887 --build=$build_alias \
2888 --target=$target_alias \
2889 --without-xscreensaver \
2892 --disable-fieldlines \
2896 --disable-hyperspace \
2899 if echo "$ARCH" | grep -q freebsd ; then
2900 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2904 XB_CONFIG_MODULE([lib/cpluff], [
2905 ./configure --disable-nls \
2906 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2907 --host=$host_alias \
2908 --build=$build_alias \
2909 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2910 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2913 XB_CONFIG_MODULE([lib/gtest], [
2918 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2919 --host=$host_alias \
2920 --build=$build_alias \
2921 --target=$target_alias \
2925 ], [$SKIP_CONFIG_GTEST])
2927 XB_CONFIG_MODULE([pvr-addons], [
2929 --prefix="${prefix}" \
2930 --host=$host_alias \
2931 --build=$build_alias \
2932 --target=$target_alias \
2936 CXXFLAGS="$CXXFLAGS"
2937 ], [$DISABLE_PVR_ADDON_CONFIG])
2941 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2942 echo -e "$final_message\n"