2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [12.9.10], [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])
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 external_ffmpeg_enabled="== Use of external ffmpeg enabled. =="
192 external_ffmpeg_disabled="== Use of external ffmpeg disabled. =="
193 ffmpeg_vdpau_not_supported="== External ffmpeg doesn't support VDPAU. VDPAU support disabled. =="
194 dashes="------------------------"
195 final_message="\n XBMC Configuration:"
196 final_message="\n$dashes$final_message\n$dashes"
198 AC_ARG_ENABLE([shared-lib],
199 [AS_HELP_STRING([--enable-shared-lib],
200 [build libxbmc. helpful for tests (default is no)])],
201 [build_shared_lib=$enableval],
202 [build_shared_lib=no])
204 AC_ARG_ENABLE([debug],
205 [AS_HELP_STRING([--enable-debug],
206 [enable debugging information (default is yes)])],
207 [use_debug=$enableval],
211 [AS_HELP_STRING([--with-arch],
212 [build with given arch passing to internal ffmpeg (default is no, needed for crosscompiling)])],
216 AC_ARG_WITH([platform],
217 [AS_HELP_STRING([--with-platform],
218 [use a pre-configured config for common arm boards])],
219 [use_platform=$withval],
223 [AS_HELP_STRING([--with-cpu],
224 [build with given cpu passing to ffmpeg (default is no)])],
228 AC_ARG_ENABLE([neon],
229 [AS_HELP_STRING([--enable-neon],
230 [enable neon passing to ffmpeg (default is no)])],
231 [use_neon=$enableval],
234 AC_ARG_ENABLE([optimizations],
235 [AS_HELP_STRING([--enable-optimizations],
236 [enable optimization (default is yes)])],
237 [use_optimizations=$enableval],
238 [use_optimizations=yes])
241 [AS_HELP_STRING([--enable-gl],
242 [enable OpenGL rendering (default is yes)])],
246 AC_ARG_ENABLE([gles],
247 [AS_HELP_STRING([--enable-gles],
248 [enable OpenGLES rendering (default is no)])],
249 [use_gles=$enableval],
253 [AS_HELP_STRING([--enable-sdl],
254 [enable SDL (default is auto)])],
255 [use_sdl=$enableval],
258 AC_ARG_ENABLE([vdpau],
259 [AS_HELP_STRING([--enable-vdpau],
260 [enable VDPAU decoding (default is auto)])],
261 [use_vdpau=$enableval],
264 AC_ARG_ENABLE([vaapi],
265 [AS_HELP_STRING([--enable-vaapi],
266 [enable VAAPI decoding (default is auto)])],
267 [use_vaapi=$enableval],
270 AC_ARG_ENABLE([crystalhd],
271 [AS_HELP_STRING([--enable-crystalhd],
272 [enable CrystalHD decoding (default is auto)])],
273 [use_crystalhd=$enableval],
274 [use_crystalhd=auto])
276 AC_ARG_ENABLE([vtbdecoder],
277 [AS_HELP_STRING([--enable-vtbdecoder],
278 [enable VTBDecoder decoding (default is auto)])],
279 [use_vtbdecoder=$enableval],
280 [use_vtbdecoder=auto])
282 AC_ARG_ENABLE([openmax],
283 [AS_HELP_STRING([--enable-openmax],
284 [enable OpenMax decoding (default is auto, requires OpenGLES)])],
285 [use_openmax=$enableval],
288 AC_ARG_ENABLE([tegra],
289 [AS_HELP_STRING([--enable-tegra],
290 [enable Tegra2 arm (default is no)])],
291 [use_tegra=$enableval],
294 AC_ARG_ENABLE([profiling],
295 [AS_HELP_STRING([--enable-profiling],
296 [enable gprof profiling (default is no)])],
297 [use_profiling=$enableval],
300 AC_ARG_ENABLE([joystick],
301 [AS_HELP_STRING([--enable-joystick],
302 [enable SDL joystick support (default is yes)])],
303 [use_joystick=$enableval],
306 AC_ARG_ENABLE([xrandr],
307 [AS_HELP_STRING([--enable-xrandr],
308 [enable XRandR support (default is yes)])],
309 [use_xrandr=$enableval],
312 AC_ARG_ENABLE([waveform],
313 [AS_HELP_STRING([--enable-waveform],
314 [enable Waveform visualisation (default is yes)])],
315 [use_waveform=$enableval],
318 AC_ARG_ENABLE([spectrum],
319 [AS_HELP_STRING([--enable-spectrum],
320 [enable Spectrum visualisation (default is yes)])],
321 [use_spectrum=$enableval],
324 AC_ARG_ENABLE([goom],
325 [AS_HELP_STRING([--enable-goom],
326 [enable GOOM visualisation (default is no)])],
327 [use_goom=$enableval],
330 AC_ARG_ENABLE([rsxs],
331 [AS_HELP_STRING([--enable-rsxs],
332 [enable really slick X screensavers (default is yes)])],
333 [use_rsxs=$enableval],
336 AC_ARG_ENABLE([fishbmc],
337 [AS_HELP_STRING([--enable-fishbmc],
338 [enable FishBMC visualisation (default is yes)])],
339 [use_fishbmc=$enableval],
342 AC_ARG_ENABLE([projectm],
343 [AS_HELP_STRING([--enable-projectm],
344 [enable ProjectM visualisation (default is yes)])],
345 [use_projectm=$enableval],
348 AC_ARG_ENABLE([wayland],
349 [AS_HELP_STRING([--enable-wayland],
350 [enable wayland (default is no) 'Linux Only'])],
351 [use_wayland=$enableval],
355 [AS_HELP_STRING([--enable-x11],
356 [enable x11 (default is yes) 'Linux Only'])],
357 [use_x11=$enableval],
360 AC_ARG_ENABLE([ccache],
361 [AS_HELP_STRING([--enable-ccache],
362 [enable building with ccache feature (default is auto)])],
363 [use_ccache=$enableval],
366 AC_ARG_ENABLE([alsa],
367 [AS_HELP_STRING([--disable-alsa],
368 [disable ALSA support (only for linux/freebsd)])],
369 [use_alsa=$enableval],
372 AC_ARG_ENABLE([pulse],
373 [AS_HELP_STRING([--enable-pulse],
374 [enable PulseAudio support (default is no)])],
375 [use_pulse=$enableval],
379 [AS_HELP_STRING([--disable-ssh],
380 [disable SSH SFTP support (default is enabled)])],
381 [use_ssh=$enableval],
384 AC_ARG_ENABLE([rtmp],
385 [AS_HELP_STRING([--enable-rtmp],
386 [enable RTMP support via librtmp (default is auto)])],
387 [use_librtmp=$enableval],
390 AC_ARG_ENABLE([samba],
391 [AS_HELP_STRING([--disable-samba],
392 [disable SAMBA support (default is enabled)])],
393 [use_samba=$enableval],
397 [AS_HELP_STRING([--enable-nfs],
398 [enable NFS support via libnfs (default is auto)])],
399 [use_libnfs=$enableval],
402 AC_ARG_ENABLE([afpclient],
403 [AS_HELP_STRING([--enable-afpclient],
404 [enable AFP support via libafpclient (default is auto)])],
405 [use_libafpclient=$enableval],
406 [use_libafpclient=auto])
408 AC_ARG_ENABLE([airplay],
409 [AS_HELP_STRING([--enable-airplay],
410 [enable AirPlay support(default is auto)])],
411 [use_airplay=$enableval],
414 AC_ARG_ENABLE([airtunes],
415 [AS_HELP_STRING([--enable-airtunes],
416 [enable AirTunes support(default is auto)])],
417 [use_airtunes=$enableval],
420 AC_ARG_ENABLE([upnp],
421 [AS_HELP_STRING([--disable-upnp],
422 [disable UPnP support (default is enabled)])],
423 [use_upnp=$enableval],
426 AC_ARG_ENABLE([ffmpeg_libvorbis],
427 [AS_HELP_STRING([--enable-ffmpeg-libvorbis],
428 [enable FFmpeg vorbis encoding (default is no)])],
429 [use_ffmpeg_libvorbis=$enableval],
430 [use_ffmpeg_libvorbis=no])
432 AC_ARG_ENABLE([dvdcss],
433 [AS_HELP_STRING([--enable-dvdcss],
434 [enable DVDCSS support (default is yes)])],
435 [use_dvdcss=$enableval],
439 [AS_HELP_STRING([--enable-mid],
440 [enable MID support (default is no)])],
441 [use_mid=$enableval],
445 [AS_HELP_STRING([--disable-hal],
446 [disable HAL support (default is enabled if hal and hal-storage is found)])],
447 [use_hal=$enableval],
450 AC_ARG_ENABLE([avahi],
451 [AS_HELP_STRING([--disable-avahi],
452 [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
453 [use_avahi=$enableval],
456 AC_ARG_ENABLE([mdnsembedded],
457 [AS_HELP_STRING([--disable-mdnsembedded],
458 [disable mDNSEmbedded support (default is auto)])],
459 [use_mdnsembedded=$enableval],
460 [use_mdnsembedded=auto])
462 AC_ARG_ENABLE([non-free],
463 [AS_HELP_STRING([--disable-non-free],
464 [disable componentents with non-compliant licenses])],
465 [use_nonfree=$enableval],
468 AC_ARG_ENABLE([asap-codec],
469 [AS_HELP_STRING([--enable-asap-codec],
470 [enable ASAP ADPCM support])],
471 [use_asap=$enableval],
474 AC_ARG_ENABLE([mysql],
475 [AS_HELP_STRING([--disable-mysql],
477 [use_mysql=$enableval],
480 AC_ARG_ENABLE([webserver],
481 [AS_HELP_STRING([--disable-webserver],
482 [disable webserver])],
483 [use_webserver=$enableval],
486 AC_ARG_ENABLE([optical-drive],
487 [AS_HELP_STRING([--disable-optical-drive],
488 [disable optical drive])],
489 [use_optical_drive=$enableval],
490 [use_optical_drive=yes])
492 AC_ARG_ENABLE([libbluray],
493 [AS_HELP_STRING([--enable-libbluray],
494 [enable libbluray support])],
495 [use_libbluray=$enableval],
496 [use_libbluray=auto])
498 AC_ARG_ENABLE([texturepacker],
499 [AS_HELP_STRING([--enable-texturepacker],
500 [enable texturepacker support (default is yes)])],
501 [use_texturepacker=$enableval],
502 [use_texturepacker=auto])
504 AC_ARG_WITH([lirc-device],
505 [AS_HELP_STRING([--with-lirc-device=file],
506 [specify the default LIRC device (default is /dev/lircd)])],
507 [lirc_device=$withval],
508 [lirc_device=/dev/lircd])
509 AC_DEFINE_UNQUOTED([LIRC_DEVICE], ["$lirc_device"], [Default LIRC device])
511 AC_ARG_ENABLE([udev],
512 [AS_HELP_STRING([--enable-udev],
513 [enable udev support (default is auto)])],
514 [use_libudev=$enableval],
517 AC_ARG_ENABLE([libusb],
518 [AS_HELP_STRING([--enable-libusb],
519 [enable libusb support (default is auto)])],
520 [use_libusb=$enableval],
523 AC_ARG_ENABLE([libcec],
524 [AS_HELP_STRING([--enable-libcec],
525 [enable libcec support (default is auto)])],
526 [use_libcec=$enableval],
529 AC_ARG_ENABLE([libmp3lame],
530 [AS_HELP_STRING([--enable-libmp3lame],
531 [enable lame mp3 encoder support (default is auto)])],
532 [use_libmp3lame=$enableval],
533 [use_libmp3lame=auto])
535 AC_ARG_ENABLE([libvorbisenc],
536 [AS_HELP_STRING([--enable-libvorbisenc],
537 [enable vorbis encoder support (default is auto)])],
538 [use_libvorbisenc=$enableval],
539 [use_libvorbisenc=auto])
541 AC_ARG_ENABLE([libcap],
542 [AS_HELP_STRING([--enable-libcap],
543 [enable libcap support (default is auto)])],
544 [use_libcap=$enableval],
547 AC_ARG_ENABLE([player],
548 [AS_HELP_STRING([--enable-player],
549 [enable additional players from a list of comma separated names, (default is none, choices are omxplayer)])],
550 [add_players=$enableval],
553 AC_ARG_ENABLE([gtest],
554 [AS_HELP_STRING([--enable-gtest],
555 [configure Google Test Framework (default is no)])],
556 [configure_gtest=$enableval],
557 [configure_gtest=no])
559 AC_ARG_ENABLE([codec],
560 [AS_HELP_STRING([--enable-codec],
561 [enable additional codecs from a list of comma separated names, (default is none, choices are amcodec, libstagefright)])],
562 [add_codecs=$enableval],
565 ### External libraries options
566 AC_ARG_ENABLE([external-libraries],
567 [AS_HELP_STRING([--enable-external-libraries],
568 [enable use of all supported external libraries (default is no) 'Linux only'])],
569 [use_external_libraries=$enableval],
570 [use_external_libraries=no])
572 AC_ARG_ENABLE([external-ffmpeg],
573 [AS_HELP_STRING([--enable-external-ffmpeg],
574 [enable use of external ffmpeg libraries (default is no) 'Linux only'])],
575 [use_external_ffmpeg=$enableval],
576 [use_external_ffmpeg=$use_external_libraries])
578 AC_ARG_ENABLE([libav-compat],
579 [AS_HELP_STRING([--enable-libav-compat],
580 [build a wrapper around libav to provide the functions needed by XBMC. This is
581 *not* supported by XBMC developers and is provided only for convenience. (default is no) 'Linux only'])],
582 [use_libav_hacks=$enableval],
583 [use_libav_hacks=no])
585 ### End of external library options
587 if test "x$host_vendor" != "xapple"; then
588 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
589 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
592 # Checks for programs.
593 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
596 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
597 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
599 AX_PROG_CXX_FOR_BUILD
600 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
607 OBJDUMP="${OBJDUMP:-objdump}"
609 # ffmpeg needs the output of uname -s (e.x. linux, darwin) for the target_os
610 # there is no autoconf variable which will give
611 # the correct output format when doing cross compilation
612 # so we have to use our own var here
613 # defaults to the build side target_os
614 # and should be overridden for cross below (see android)
615 ffmpeg_target_os=$(tolower $(uname -s))
617 # host detection and setup
619 i*86*-linux-android*)
620 target_platform=target_android
624 ffmpeg_target_os=linux
634 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
641 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
651 ARCH="x86_64-freebsd"
667 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
668 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
669 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
670 PYTHON_NOVERSIONCHECK="no-check"
677 powerpc-apple-darwin*)
684 powerpc-*-linux-gnu*)
687 powerpc64-*-linux-gnu*)
688 ARCH="powerpc64-linux"
693 ffmpeg_target_os=linux
701 arm*-*linux-android*)
702 target_platform=target_android
706 ffmpeg_target_os=linux
717 AC_MSG_ERROR(unsupported host ($host))
721 check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
722 if test "x$check_sdl_arch" = "xi386" ; then
723 DARWIN_NATIVE_ARCH=-m32
724 elif test "x$check_sdl_arch" = "xx86_64" ; then
725 DARWIN_NATIVE_ARCH=-m64
727 AC_SUBST([DARWIN_NATIVE_ARCH])
729 if test "$target_platform" = "target_android" ; then
731 webserver_checkdepends=yes
732 CFLAGS="$CFLAGS -Wno-psabi"
733 DROID_DVDLIB_SEEK64="-D_FILE_OFFSET_BITS=64 -D_OFF_T_DEFINED_ -Doff_t=off64_t -Dlseek=lseek64"
734 CXXFLAGS="$CXXFLAGS -Wno-psabi"
735 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
738 case $use_platform in
740 target_platform=target_raspberry_pi
744 use_hardcoded_tables="yes"
747 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
748 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
751 ffmpeg_target_os=linux
755 XBMC_SETUP_ARCH_DEFINES()
758 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
759 if test "$GIT_REV" = ""; then
760 if test -f VERSION ; then
761 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
762 elif test "$HAVE_GIT" = "yes"; then
763 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
768 final_message="$final_message\n git Rev.:\t${GIT_REV}"
770 if test "$host_vendor" = "apple"; then
771 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
773 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
776 if test "$build_shared_lib" = "yes"; then
777 final_message="$final_message\n Shared lib\tYes"
778 AC_SUBST(USE_LIBXBMC,1)
782 # platform debug flags
783 if test "$use_debug" = "yes"; then
784 final_message="$final_message\n Debugging:\tYes"
785 if test "$use_profiling" = "yes"; then
786 final_message="$final_message\n Profiling:\tYes"
787 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
789 final_message="$final_message\n Profiling:\tNo"
790 DEBUG_FLAGS="-g -D_DEBUG -Wall"
793 final_message="$final_message\n Debugging:\tNo"
794 if test "$use_profiling" = "yes"; then
795 final_message="$final_message\n Profiling:\tYes"
796 DEBUG_FLAGS="-pg -DNDEBUG=1"
798 final_message="$final_message\n Profiling:\tNo"
799 DEBUG_FLAGS="-DNDEBUG=1"
802 CFLAGS="$CFLAGS $DEBUG_FLAGS"
803 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
806 if test "$use_optimizations" = "yes"; then
807 final_message="$final_message\n Optimization:\tYes"
808 if test "$target_platform" = "target_raspberry_pi"; then
812 CXXFLAGS="-O2 $CXXFLAGS"
816 final_message="$final_message\n Optimization:\tNo"
820 # platform specific flags
821 if echo "$ARCH" | grep -q "freebsd" ; then
822 LOCALBASE="${LOCALBASE:-/usr/local}"
823 CFLAGS="$CFLAGS -I$LOCALBASE/include"
824 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
825 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
826 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
827 FFMPEG_EXTRACFLAGS="-I$LOCALBASE/include"
829 if test "$host_vendor" = "apple" ; then
830 # standard xbmc paths
831 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
832 if test "$use_arch" != "arm"; then
833 LIBS="$LIBS -framework ApplicationServices"
834 LIBS="$LIBS -framework AudioUnit"
835 LIBS="$LIBS -framework AudioToolbox"
836 LIBS="$LIBS -framework Cocoa"
837 LIBS="$LIBS -framework CoreAudio"
838 LIBS="$LIBS -framework CoreVideo"
839 LIBS="$LIBS -framework CoreServices"
840 LIBS="$LIBS -framework CoreFoundation"
841 LIBS="$LIBS -framework DiskArbitration"
842 LIBS="$LIBS -framework IOKit"
843 LIBS="$LIBS -framework IOSurface"
844 LIBS="$LIBS -framework QuartzCore"
845 LIBS="$LIBS -framework SystemConfiguration"
847 USE_EXTERNAL_FFMPEG=1
848 elif test "$target_platform" = "target_raspberry_pi"; then
851 elif test "$use_arch" = "arm"; then
852 CFLAGS="$CFLAGS -mno-apcs-stack-check"
853 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
854 FFMPEG_EXTRACFLAGS=""
855 if test "$use_tegra" = "yes"; then
856 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
857 SAVE_CFLAGS="$CFLAGS"
858 CFLAGS="-mfpu=vfpv3-d16"
860 [AC_LANG_SOURCE([int foo;])],
861 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
862 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
863 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
865 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
866 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
869 if test "$use_neon" = "yes"; then
870 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
871 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
872 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
877 # Checks for library functions.
880 AC_FUNC_CLOSEDIR_VOID
881 AC_FUNC_ERROR_AT_LINE
883 AC_PROG_GCC_TRADITIONAL
885 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
889 # Boxee is apparently having compile problems
890 # if HAVE_REALLOC is defined. Sort this later.
892 AC_FUNC_SELECT_ARGTYPES
893 AC_FUNC_SETVBUF_REVERSED
901 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])
903 # Check for various sizes
904 AC_CHECK_SIZEOF([int])
905 AC_CHECK_SIZEOF([size_t])
907 # Check for intrinsics
908 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
909 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
910 [have_builtin_sync_add_and_fetch=yes],
911 [have_builtin_sync_add_and_fetch=no])
912 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
913 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
914 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
915 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
918 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
919 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
920 [have_builtin_sync_sub_and_fetch=yes],
921 [have_builtin_sync_sub_and_fetch=no])
922 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
923 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
924 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
925 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
928 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
929 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
930 [have_builtin_sync_val_compare_and_swap=yes],
931 [have_builtin_sync_val_compare_and_swap=no])
932 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
933 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
934 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
935 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
938 # Check for u16string/u32string declarations
940 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
941 AC_CHECK_TYPES([char16_t, char32_t])
942 AC_CHECK_SIZEOF([wchar_t])
945 # Add top source directory for all builds so we can use config.h
946 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
948 # Check inotify availability
949 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
951 # Checks for boost headers using CXX instead of CC
953 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
957 if test -z "$PYTHON_NOVERSIONCHECK"; then
958 AX_PYTHON_DEVEL([>= 2.4])
959 PYTHON_VERSION=$ac_python_version
962 if test -z "$PYTHON_VERSION"; then
963 AC_MSG_ERROR([Can't find a Python version.])
965 LIBS="$LIBS $PYTHON_LDFLAGS"
966 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
970 if test "$use_wayland" = "yes" && test "$host_vendor" != "apple"; then
971 AC_MSG_NOTICE($wayland_enabled)
972 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client],
973 [INCLUDES="$INCLUDES $WAYLAND_CLIENT_CFLAGS";
974 WAYLAND_CLIENT_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-client\`; echo ${LIBRARY:2}`;
975 XB_FIND_SONAME([WAYLAND_CLIENT_LIBRARY], ${WAYLAND_CLIENT_LIBRARY_LINE})],
976 AC_MSG_ERROR($missing_library))
977 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],
978 [INCLUDES="$INCLUDES $WAYLAND_EGL_CFLAGS";
979 WAYLAND_EGL_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-egl\`; echo ${LIBRARY:2:11}`
980 XB_FIND_SONAME([WAYLAND_EGL_LIBRARY], ${WAYLAND_EGL_LIBRARY_LINE})],
981 AC_MSG_ERROR($missing_library))
982 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
983 [INCLUDES="$INCLUDES $XKBCOMMON_CFLAGS";
984 XKBCOMMON_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l xkbcommon\`; echo ${LIBRARY:2}`;
985 XB_FIND_SONAME([XKBCOMMON_LIBRARY], $XKBCOMMON_LIBRARY_LINE)],
986 AC_MSG_ERROR($missing_library))
987 AC_DEFINE([HAVE_WAYLAND], [1], [Define to 1 if you have Wayland libs installed.])
988 AC_DEFINE([HAVE_XKBCOMMON], [1], [Define to 1 if you have libxkbcommon installed.])
990 # If we are also building with tests then we want to build
991 # wayland tests as well
992 if test "$configure_gtest" = "yes"; then
994 PKG_CHECK_MODULES([PIXMAN],
995 [pixman-1],have_pixman=yes,
996 [AC_MSG_WARN($missing_library); have_pixman=no])
997 PKG_CHECK_MODULES([WESTON],
998 [weston >= 1.1.90],[have_weston_sdk=yes],
999 [have_weston_sdk=no; AC_MSG_WARN($missing_library)])
1001 AC_CHECK_PROG(WAYLAND_SCANNER, wayland-scanner, "wayland-scanner", "no")
1002 if test "x$WAYLAND_SCANNER" == "xno"; then
1003 AC_MSG_WARN($missing_program)
1005 if test "x$have_weston_sdk" == "xyes" && test "x$have_pixman" = "xyes"; then
1006 AC_SUBST(WAYLAND_TEST_INCLUDES,"$WAYLAND_CLIENT_CFLAGS $XKBCOMMON_CFLAGS $PIXMAN_CFLAGS $WESTON_CFLAGS")
1007 AC_SUBST(WAYLAND_TEST_LIBS,"$WAYLAND_CLIENT_LIBS $XKBCOMMON_LIBS $PIXMAN_LIBS $WESTON_LIBS")
1008 AC_DEFINE([HAVE_WESTON_SDK], [1], [Define to 1 if Weston SDK is installed.])
1009 AC_SUBST(USE_WAYLAND_TEST_EXTENSION, 1)
1011 AC_SUBST(WAYLAND_SCANNER)
1012 AC_DEFINE([HAVE_WAYLAND_XBMC_PROTO],[1],["Define to 1 if the wayland test-protocol will be built"])
1016 # Disable SDL and X11 builds
1021 # Wayland requires the EGL "window system" which in turn only supports
1022 # the OpenGL ES API, so enable gles support
1025 AC_MSG_RESULT($wayland_disabled)
1028 # Checks for platforms libraries.
1029 if test "$use_gles" = "yes"; then
1031 # GLES overwrites GL if both set to yes.
1032 if test "$host_vendor" = "apple" ; then
1033 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1034 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1035 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1037 if test "$target_platform" = "target_raspberry_pi"; then
1038 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1039 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1040 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1041 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
1043 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
1044 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
1048 if test "$use_gl" = "yes"; then
1049 if test "$host_vendor" = "apple" ; then
1050 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
1051 LIBS="$LIBS -framework OpenGL"
1052 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
1053 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
1054 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
1055 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
1056 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1058 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
1059 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1060 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
1063 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
1064 AC_CHECK_LIB([SDL_gfx],[main])
1068 # platform common libraries
1069 if test "$use_mysql" = "yes"; then
1070 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
1071 if test "x$MYSQL_CONFIG" != "xno"; then
1072 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
1073 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
1074 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
1075 LIBS="$LIBS $MYSQL_LIBS"
1076 AC_SUBST(MYSQL_LIBS)
1078 AC_MSG_ERROR($missing_program)
1081 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1082 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1083 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1084 AC_INCLUDES_DEFAULT()
1085 [#include <mpeg2dec/mpeg2.h>])
1086 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
1087 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1088 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
1089 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1090 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1091 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1092 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1093 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1095 # we need to check for the header because if it exists we set the openssl
1096 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1097 # in MT manner correctly.
1098 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1099 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1100 if test "$gcrypt_headers_available" = "yes"; then
1101 # if we have the headers then we must have the lib
1102 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1103 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1104 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1106 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"))
1108 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1109 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1110 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1111 if echo "$ARCH" | grep -q freebsd; then
1112 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1113 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1114 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1115 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1117 if test "$target_platform" != "target_android" ; then
1118 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1119 AC_CHECK_LIB([pthread], [pthread_setname_np],
1120 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1121 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1124 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1125 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1126 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1127 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1128 if test "$use_mysql" = "yes"; then
1129 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1131 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1132 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1133 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1134 if test "$target_platform" = "target_android" ; then
1135 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1136 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1137 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1139 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1140 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1141 AC_MSG_ERROR($missing_library))
1142 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1143 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1144 AC_MSG_ERROR($missing_library))
1145 PKG_CHECK_MODULES([PNG], [libpng],
1146 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1147 AC_MSG_ERROR($missing_library))
1148 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1149 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1150 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1151 AC_MSG_ERROR($missing_library))
1152 PKG_CHECK_MODULES([PCRE], [libpcre],
1153 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1154 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1155 AC_MSG_ERROR($missing_library))
1156 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1157 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1158 AC_MSG_ERROR($missing_library))
1159 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1160 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1161 AC_MSG_ERROR($missing_library))
1162 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1163 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1164 AC_MSG_ERROR($missing_library))
1166 if test "$use_optical_drive" = "yes"; then
1167 PKG_CHECK_MODULES([CDIO], [libcdio],
1168 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1169 AC_MSG_ERROR($missing_library))
1172 if test "$target_platform" = "target_android" ; then
1173 PKG_CHECK_MODULES([ZIP], [libzip],
1174 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1175 AC_MSG_ERROR($missing_library))
1178 # check for libbluray
1179 AS_CASE([x$use_libbluray],
1181 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1184 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1187 AS_CASE([x$use_libbluray],
1189 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1190 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1191 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1192 AC_SUBST([HAVE_LIBBLURAY], 1)
1193 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1194 AC_CHECK_DECL([BD_EVENT_IDLE],
1195 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1196 [[#include <libbluray/bluray.h>]]))
1198 AC_SUBST([HAVE_LIBBLURAY], 0)
1202 #Check to see if libs are needed for functions that are often built-in to libc
1203 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1204 AC_SEARCH_LIBS([dlopen],dl)
1205 AC_SEARCH_LIBS([clock_gettime],rt)
1206 AC_SEARCH_LIBS([dn_expand], resolv)
1207 AC_SEARCH_LIBS([_dn_expand], resolv)
1208 AC_SEARCH_LIBS([__dn_expand],resolv)
1210 # platform dependent libraries
1211 if test "$host_vendor" = "apple" ; then
1212 if test "$use_arch" != "arm"; then
1213 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1214 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1217 if test "$target_platform" != "target_android" ; then
1218 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1220 if test "x$use_alsa" != "xno"; then
1221 PKG_CHECK_MODULES([ALSA], [alsa],
1222 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1223 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1225 PKG_CHECK_MODULES([DBUS], [dbus-1],
1226 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1227 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1228 AC_MSG_NOTICE($missing_library); use_dbus=no)
1229 if test "x$use_sdl" != "xno"; then
1230 PKG_CHECK_MODULES([SDL], [sdl],
1231 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1232 AC_MSG_ERROR($missing_library))
1233 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1234 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1238 XB_FIND_SONAME([MAD], [mad])
1239 XB_FIND_SONAME([OGG], [ogg])
1240 XB_FIND_SONAME([CURL], [curl])
1241 XB_FIND_SONAME([FLAC], [FLAC])
1242 XB_FIND_SONAME([VORBIS], [vorbis])
1243 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1244 XB_FIND_SONAME([MODPLUG], [modplug])
1245 XB_FIND_SONAME([ASS], [ass])
1246 XB_FIND_SONAME([MPEG2], [mpeg2])
1249 if test "x$use_libmp3lame" != "xno"; then
1250 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1251 if test "x$use_libmp3lame" != "xno"; then
1252 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1255 AS_CASE([x$use_libmp3lame],
1257 AC_SUBST([HAVE_LIBMP3LAME], 0)
1260 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1261 AC_SUBST([HAVE_LIBMP3LAME], 1)
1264 if test "x$use_libvorbisenc" != "xno"; then
1265 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1266 if test "x$use_libvorbisenc" != "xno"; then
1267 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1270 AS_CASE([x$use_libvorbisenc],
1272 AC_SUBST([HAVE_LIBVORBISENC], 0)
1274 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1275 AC_SUBST([HAVE_LIBVORBISENC], 1)
1280 if test "$use_webserver" = "yes"; then
1281 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1285 if test "$use_optical_drive" = "yes"; then
1286 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1290 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1291 PKG_CHECK_MODULES([ALSA], [alsa],
1292 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1293 AC_MSG_ERROR($missing_library))
1294 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1297 AC_MSG_RESULT($alsa_disabled)
1301 if test "x$use_pulse" != "xno"; then
1302 if test "$host_vendor" = "apple" ; then
1303 if test "x$use_pulse" = "xyes"; then
1304 AC_MSG_ERROR($pulse_disabled)
1307 AC_MSG_RESULT($pulse_disabled)
1311 AC_CHECK_LIB([pulse],[main],,pulse_found="no")
1312 AC_CHECK_LIB([pulse-simple],[main],,pulse_found="no")
1314 if test "x$pulse_found" != "xno"; then
1316 elif test "x$use_pulse" = "xyes"; then
1317 AC_MSG_ERROR($pulse_not_found)
1321 AC_MSG_RESULT($pulse_not_found)
1325 AC_MSG_RESULT($pulse_disabled)
1330 if test "$host_vendor" = "apple" ; then
1332 AC_MSG_RESULT($hal_disabled)
1334 if test "$use_hal" = "yes"; then
1335 PKG_CHECK_MODULES([HAL], [hal],
1336 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1337 use_hal=no;AC_MSG_RESULT($hal_not_found))
1338 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1339 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1340 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1342 AC_MSG_RESULT($hal_disabled)
1344 if test "$use_hal" = "yes"; then
1345 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1350 if test "$host_vendor" = "apple" ; then
1352 AC_MSG_RESULT($avahi_disabled)
1354 if test "$use_avahi" = "yes"; then
1355 AC_CHECK_LIB([avahi-common], [main],,
1356 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1357 if test "$use_avahi" = "yes"; then
1358 #either both libs or none
1359 AC_CHECK_LIB([avahi-client], [main],,
1360 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1363 AC_MSG_RESULT($avahi_disabled)
1368 if test "$use_mdnsembedded" != "no"; then
1369 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1370 [if test "$use_mdnsembedded" = "yes"; then
1371 AC_MSG_ERROR($mdnsembedded_not_found)
1373 elif test "$use_mdnsembedded" != "no"; then
1374 AC_MSG_NOTICE($mdnsembedded_not_found)
1375 use_mdnsembedded="no"
1379 if test $use_mdnsembedded != "no"; then
1383 AC_MSG_RESULT($mdnsembedded_disabled)
1386 AC_SUBST(USE_MDNSEMBEDDED)
1389 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1390 AC_MSG_NOTICE($x11_enabled)
1391 PKG_CHECK_MODULES([X11], [x11],
1392 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1393 AC_MSG_ERROR($missing_library))
1394 PKG_CHECK_MODULES([XEXT], [xext],
1395 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1396 AC_MSG_ERROR($missing_library))
1397 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1399 AC_MSG_RESULT($x11_disabled)
1403 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1405 AC_MSG_RESULT($xrandr_disabled)
1407 if test "$use_xrandr" = "yes" ; then
1408 AC_CHECK_LIB([Xrandr], [main],,
1409 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1411 AC_MSG_RESULT($xrandr_disabled)
1416 if test "$use_waveform" = "yes"; then
1417 AC_MSG_NOTICE($waveform_enabled)
1420 AC_MSG_NOTICE($waveform_disabled)
1425 if test "$use_spectrum" = "yes"; then
1426 AC_MSG_NOTICE($spectrum_enabled)
1429 AC_MSG_NOTICE($spectrum_disabled)
1434 if test "$host_vendor" = "apple" ; then
1435 AC_MSG_NOTICE($goom_disabled)
1438 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1439 AC_MSG_NOTICE($goom_enabled)
1442 AC_MSG_NOTICE($goom_disabled)
1448 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1449 AC_MSG_NOTICE($rsxs_disabled)
1452 AC_MSG_NOTICE($rsxs_enabled)
1454 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1455 if test "$host_vendor" != "apple" ; then
1456 PKG_CHECK_MODULES([XT], [xt],
1457 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1458 AC_MSG_ERROR($missing_library))
1459 PKG_CHECK_MODULES([XMU], [xmu],
1460 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1461 AC_MSG_ERROR($missing_library))
1466 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1467 AC_MSG_NOTICE($fishbmc_disabled)
1471 AC_MSG_NOTICE($fishbmc_enabled)
1476 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1477 AC_MSG_NOTICE($projectm_disabled)
1481 AC_MSG_NOTICE($projectm_enabled)
1487 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1488 use_skin_touched=yes
1490 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1496 if test "x$use_ssh" = "xno"; then
1497 AC_MSG_NOTICE($ssh_disabled)
1500 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1501 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1505 if test "$use_librtmp" != "no"; then
1506 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1507 [if test "$use_librtmp" = "yes"; then
1508 AC_MSG_ERROR($librtmp_not_found)
1509 elif test "$use_librtmp" != "no"; then
1510 AC_MSG_NOTICE($librtmp_not_found)
1514 if test "$use_librtmp" != "no"; then
1515 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1517 if test "$use_librtmp" != "no"; then
1518 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1521 AC_MSG_NOTICE($librtmp_disabled)
1525 if test "x$use_samba" != "xno"; then
1526 PKG_CHECK_MODULES([SAMBA], [smbclient],
1527 [INCLUDES="$INCLUDES $SAMBA_CFLAGS"; LIBS="$LIBS $SAMBA_LIBS"],
1528 [AC_CHECK_LIB([smbclient], [main],,
1529 use_samba=no;AC_MSG_ERROR($missing_library))
1533 AC_MSG_RESULT($samba_disabled)
1537 if test "x$use_samba" != "xno"; then
1538 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1543 if test "$use_libnfs" != "no"; then
1544 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1545 [if test "$use_libnfs" = "yes"; then
1546 AC_MSG_ERROR($libnfs_not_found)
1548 elif test "$use_libnfs" != "no"; then
1549 AC_MSG_NOTICE($libnfs_not_found)
1554 if test "$use_libnfs" != "no"; then
1555 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1557 if test "$use_libnfs" != "no"; then
1558 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1563 AC_MSG_NOTICE($libnfs_disabled)
1568 if test "x$use_libafpclient" != "xno"; then
1569 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1570 [if test "x$use_libafpclient" = "xyes"; then
1571 AC_MSG_ERROR($libafpclient_not_found)
1572 elif test "x$use_libafpclient" != "xno"; then
1573 AC_MSG_NOTICE($libafpclient_not_found)
1574 use_libafpclient="no"
1577 if test "x$use_libafpclient" != "xno"; then
1578 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1579 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1583 AC_MSG_NOTICE($libafpclient_disabled)
1586 # libplist for airplay feature
1588 if test "$use_airplay" != "no"; then
1589 AC_CHECK_HEADER([plist/plist.h],,
1590 [if test "$use_airplay" = "yes"; then
1591 AC_MSG_ERROR($libplist_not_found)
1592 elif test "$use_airplay" != "no"; then
1593 AC_MSG_NOTICE($libplist_not_found)
1598 if test "$use_airplay" != "no"; then
1599 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1601 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1605 # libshairplay for AirTunes (prefered lib)
1607 if test "x$use_airtunes" != "xno"; then
1608 AC_CHECK_HEADERS([shairplay/raop.h],,
1609 [if test "x$use_airtunes" = "xyes"; then
1610 AC_MSG_ERROR($libshairplay_not_found)
1611 elif test "x$use_airtunes" != "xno"; then
1612 AC_MSG_NOTICE($libshairplay_not_found)
1617 if test "x$use_airtunes" != "xno"; then
1618 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [use_airtunes])
1621 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1622 [[#include <shairplay/raop.h>]])
1623 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1626 #libshairport - as a fallback for AirTunes
1627 if test "x$USE_AIRTUNES" == "x0"; then
1628 AC_CHECK_HEADERS([shairport/shairport.h],,
1629 [if test "x$use_airtunes" = "xyes"; then
1630 AC_MSG_ERROR($libshairport_not_found)
1631 elif test "x$use_airtunes" != "xno"; then
1632 AC_MSG_NOTICE($libshairport_not_found)
1637 if test "x$use_airtunes" != "xno"; then
1638 XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
1640 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1641 [[#include <shairport/shairport.h>]])
1642 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1649 if test "$host_vendor" = "apple" ; then
1651 AC_MSG_NOTICE($libudev_disabled)
1653 if test "$use_libudev" = "auto"; then
1654 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1655 elif test "$use_libudev" = "yes" ; then
1656 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1658 AC_MSG_NOTICE($libudev_disabled)
1661 if test "x$use_libudev" != "xno"; then
1662 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1663 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1670 # if libudev is available, we don't need libusb
1671 if test "x$use_libudev" != "xno"; then
1673 AC_MSG_NOTICE($libusb_disabled_udev_found)
1675 if test "$host_vendor" = "apple" ; then
1677 AC_MSG_NOTICE($libusb_disabled)
1679 if echo "$ARCH" | grep -q freebsd ; then
1680 AC_CHECK_LIB([usb],[main],
1681 [use_libusb="yes";USB_LIBS="-lusb"],
1682 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1683 elif test "$use_libusb" = "auto"; then
1684 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1685 elif test "$use_libusb" = "yes"; then
1686 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1688 AC_MSG_NOTICE($libusb_disabled)
1691 if test "x$use_libusb" != "xno"; then
1692 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1693 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1700 if test "x$use_libcec" != "xno"; then
1701 # libcec is dyloaded, so we need to check for its headers and link any depends.
1702 if test "x$use_libcec" != "xno"; then
1703 if test "x$use_libcec" != "xauto"; then
1704 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1706 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1709 if test "x$use_libcec" != "xno"; then
1710 INCLUDES="$INCLUDES $CEC_CFLAGS"
1711 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1712 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1713 AC_MSG_NOTICE($libcec_enabled)
1716 AC_MSG_NOTICE($libcec_disabled)
1721 AC_MSG_NOTICE($libcec_disabled)
1725 if test "$use_libcap" != "no"; then
1726 AC_CHECK_HEADERS([sys/capability.h],,
1727 [if test "$use_libcap" = "yes"; then
1728 AC_MSG_ERROR($libcap_not_found)
1729 elif test "$use_libcap" != "no"; then
1730 AC_MSG_NOTICE($libcap_not_found)
1734 if test "$use_libcap" != "no"; then
1735 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1737 if test "$use_libcap" != "no"; then
1738 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1741 AC_MSG_NOTICE($libcap_disabled)
1744 ### External libraries checks
1746 # Hacks for supporting libav
1749 if test "$use_libav_hacks" = "yes"; then
1750 export PKG_CONFIG_PATH="${srcdir}/lib/xbmc-libav-hacks/pkgconfig/:$PKG_CONFIG_PATH"
1752 AC_DEFINE([USE_LIBAV_HACKS], [1], [Whether to use libav compatibility hacks.])
1756 if test "$use_external_ffmpeg" = "yes"; then
1757 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale libswresample"
1759 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1760 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1761 AC_MSG_ERROR($missing_library))
1763 # in case the headers are in a custom directory
1764 SAVE_CPPFLAGS="$CPPFLAGS"
1765 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1767 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1768 [AC_MSG_ERROR($missing_headers)])
1770 AC_MSG_NOTICE($external_ffmpeg_enabled)
1771 USE_EXTERNAL_FFMPEG=1
1772 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1774 CPPFLAGS="$SAVE_CPPFLAGS"
1776 AC_MSG_NOTICE($external_ffmpeg_disabled)
1777 USE_EXTERNAL_FFMPEG=0
1780 echo "Checking for SWIG installation"
1781 AC_PATH_PROG(SWIG_EXE, swig, "none")
1782 if test "$SWIG_EXE" = "none"; then
1783 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1784 if test "$SWIG20_EXE" != "none" ; then
1785 SWIG_EXE=$SWIG20_EXE
1788 if test "$SWIG_EXE" = "none"; then
1789 AC_MSG_ERROR($missing_program)
1791 final_message="$final_message\n SWIG Available:\tYes"
1793 echo "Checking for a jre installation"
1794 AC_PATH_PROG(JAVA_EXE, java, "none")
1795 if test "$JAVA_EXE" = "none"; then
1796 AC_MSG_ERROR($missing_program)
1798 final_message="$final_message\n JRE Available:\tYes"
1800 echo "Checking for doxygen installation"
1801 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1802 if test "$DOXYGEN_EXE" = "none"; then
1803 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1804 final_message="$final_message\n Doxygen Available:\tNo"
1807 final_message="$final_message\n Doxygen Available:\tYes"
1812 if test "x$use_vdpau" != "xno"; then
1813 if test "$host_vendor" = "apple" ; then
1814 if test "x$use_vdpau" = "xyes"; then
1815 AC_MSG_ERROR([VDPAU not supported on this platform])
1818 AC_MSG_NOTICE($vdpau_disabled)
1823 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1824 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1825 [if test "x$use_vdpau" = "xyes"; then
1827 AC_MSG_ERROR([$vdpau_not_found])
1831 AC_MSG_RESULT($vdpau_not_found)
1836 AC_MSG_NOTICE($vdpau_disabled)
1840 if test "x$use_vaapi" != "xno"; then
1841 if test "$host_vendor" = "apple" ; then
1842 if test "x$use_vaapi" = "xyes"; then
1843 AC_MSG_ERROR([VAAPI not supported on this platform])
1846 AC_MSG_NOTICE($vaapi_disabled)
1850 initial_val=$use_vaapi
1851 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1852 if test "x$use_vaapi" != "xno"; then
1853 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1856 if test "x$use_vaapi" = "xno"; then
1857 if test "x$initial_val" = "xyes"; then
1858 AC_MSG_ERROR($vaapi_not_found)
1860 AC_MSG_RESULT($vaapi_not_found)
1864 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1869 AC_MSG_NOTICE($vaapi_disabled)
1874 if test "x$use_crystalhd" != "xno"; then
1875 SAVE_CFLAGS="$CFLAGS"
1876 CFLAGS="-D__LINUX_USER__"
1877 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1878 [ if test "x$use_crystalhd" = "xyes"; then
1879 AC_MSG_ERROR($crystalhd_not_found)
1882 AC_MSG_RESULT($crystalhd_not_found)
1886 CFLAGS="$SAVE_CFLAGS"
1887 if test "$host_vendor" != "apple"; then
1888 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1890 if test "x$use_crystalhd" != "xno"; then
1891 SAVE_CFLAGS="$CFLAGS"
1892 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1893 # check for new crystalhd lib
1895 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1896 #include <libcrystalhd/bc_dts_defs.h>
1897 PBC_INFO_CRYSTAL bCrystalInfo;])],
1898 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1899 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1900 CFLAGS="$SAVE_CFLAGS"
1904 AC_MSG_NOTICE($crystalhd_disabled)
1909 if test "x$use_vtbdecoder" != "xno"; then
1910 if test "$host_vendor" = "apple" ; then
1911 HAVE_VIDEOTOOLBOXDECODER=1
1912 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1913 AC_MSG_NOTICE($vtbdecoder_enabled)
1915 if test "x$use_vtbdecoder" = "xyes"; then
1916 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1919 AC_MSG_NOTICE($vtbdecoder_disabled)
1923 AC_MSG_NOTICE($vtbdecoder_disabled)
1927 if test "$host_vendor" = "apple" ; then
1930 AC_MSG_NOTICE($openmax_disabled)
1931 elif test "$target_platform" = "target_raspberry_pi"; then
1934 AC_MSG_NOTICE($openmax_disabled)
1936 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1937 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1938 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1939 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1940 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1941 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1942 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1943 AC_MSG_ERROR($openmax_not_found))
1945 AC_MSG_NOTICE($openmax_disabled)
1951 # yajl version check (yajl_version.h was added in yajl 2.0)
1952 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1953 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1956 # additional internal players
1957 case $add_players in
1959 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1963 # additional internal codecs
1966 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
1967 XB_ADD_CODEC([LIBAMCODEC], [amcodec])
1970 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright])
1975 # platform specific bin utilities
1976 if test "$build_vendor" != "apple" ; then
1977 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1978 if test "$HAVE_GAWK" = "no" ; then
1979 AC_MSG_ERROR($missing_program)
1983 if test "$use_arch" != "arm" ; then
1984 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1985 if test "$HAVE_CMAKE" = "no" ; then
1986 AC_MSG_ERROR($missing_program)
1990 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1991 if test "$HAVE_GPERF" = "no" ; then
1992 AC_MSG_ERROR($missing_program)
1995 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1996 if test "$HAVE_UNZIP" = "no" ; then
1997 AC_MSG_ERROR($missing_program)
2000 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
2001 if test "$HAVE_ZIP" = "no" ; then
2002 AC_MSG_ERROR($missing_program)
2005 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
2006 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
2007 if test "$HAVE_NASM" = "no" ; then
2008 AC_MSG_ERROR($missing_program)
2012 # Checks for header files.
2016 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
2017 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
2018 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
2019 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
2020 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
2022 # Checks for typedefs, structures, and compiler characteristics.
2038 AC_CHECK_MEMBERS([struct stat.st_rdev])
2047 if test "$cross_compiling" = "yes"; then
2048 final_message="$final_message\n Crosscomp.:\tYes"
2049 if [[ -d "$NATIVE_ROOT" ]]; then
2050 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2051 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2052 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
2053 if test "$host_vendor" != "apple" ; then
2054 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
2056 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
2059 final_message="$final_message\n Crosscomp.:\tNo"
2062 final_message="$final_message\n target ARCH:\t$use_arch"
2063 final_message="$final_message\n target CPU:\t$use_cpu"
2065 if test "$use_gles" = "yes"; then
2066 final_message="$final_message\n OpenGLES:\tYes"
2071 if test "$use_gl" = "yes"; then
2072 final_message="$final_message\n OpenGL:\tYes"
2075 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2076 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2081 if test "$use_alsa" = "yes"; then
2083 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2084 final_message="$final_message\n ALSA:\t\tYes"
2087 final_message="$final_message\n ALSA:\t\tNo"
2090 if test "$use_dbus" = "yes"; then
2091 final_message="$final_message\n DBUS:\t\tYes"
2093 final_message="$final_message\n DBUS:\t\tNo"
2096 if test "x$use_vdpau" != "xno"; then
2097 final_message="$final_message\n VDPAU:\tYes"
2099 final_message="$final_message\n VDPAU:\tNo"
2102 if test "x$use_vaapi" != "xno"; then
2103 final_message="$final_message\n VAAPI:\tYes"
2105 final_message="$final_message\n VAAPI:\tNo"
2108 if test "x$use_crystalhd" != "xno"; then
2109 final_message="$final_message\n CrystalHD:\tYes"
2111 final_message="$final_message\n CrystalHD:\tNo"
2114 if test "x$use_vtbdecoder" != "xno"; then
2115 final_message="$final_message\n VTBDecoder:\tYes"
2117 final_message="$final_message\n VTBDecoder:\tNo"
2120 if test "$use_openmax" != "no"; then
2121 final_message="$final_message\n OpenMax:\tYes"
2123 final_message="$final_message\n OpenMax:\tNo"
2126 if test "$use_joystick" = "yes"; then
2127 final_message="$final_message\n Joystick:\tYes"
2128 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2130 final_message="$final_message\n Joystick:\tNo"
2133 if test "$use_xrandr" = "yes"; then
2134 final_message="$final_message\n XRandR:\tYes"
2137 final_message="$final_message\n XRandR:\tNo"
2141 if test "$use_waveform" = "yes"; then
2142 final_message="$final_message\n Waveform:\tYes"
2144 final_message="$final_message\n Waveform:\tNo"
2147 if test "$use_spectrum" = "yes"; then
2148 final_message="$final_message\n Spectrum:\tYes"
2150 final_message="$final_message\n Spectrum:\tNo"
2153 if test "$use_goom" = "yes"; then
2154 final_message="$final_message\n GOOM:\t\tYes"
2156 final_message="$final_message\n GOOM:\t\tNo"
2159 if test "$use_rsxs" = "yes"; then
2160 final_message="$final_message\n RSXS:\t\tYes"
2162 final_message="$final_message\n RSXS:\t\tNo"
2165 if test "$use_fishbmc" = "yes"; then
2166 final_message="$final_message\n FishBMC:\tYes"
2168 final_message="$final_message\n FishBMC:\tNo"
2171 if test "$use_projectm" = "yes"; then
2172 final_message="$final_message\n ProjectM:\tYes"
2174 final_message="$final_message\n ProjectM:\tNo"
2177 if test "$use_skin_touched" = "yes"; then
2178 final_message="$final_message\n Skin Touched:\tYes"
2180 final_message="$final_message\n Skin Touched:\tNo"
2183 if test "$use_x11" = "yes"; then
2184 final_message="$final_message\n X11:\t\tYes"
2186 final_message="$final_message\n X11:\t\tNo"
2189 if test "$use_wayland" = "yes"; then
2190 final_message="$final_message\n Wayland:\tYes"
2194 final_message="$final_message\n Wayland:\tNo"
2197 if test "$use_libbluray" = "yes"; then
2198 final_message="$final_message\n Bluray:\tYes"
2200 final_message="$final_message\n Bluray:\tNo"
2203 if test "x$use_texturepacker" != "xno"; then
2204 final_message="$final_message\n TexturePacker:Yes"
2207 final_message="$final_message\n TexturePacker:No"
2211 if test "$use_mid" = "yes"; then
2212 final_message="$final_message\n MID Support:\tYes"
2213 SDL_DEFINES="$SDL_DEFINES -DMID"
2215 final_message="$final_message\n MID Support:\tNo"
2220 if test "x$use_ccache" != "xno"; then
2221 AC_PATH_PROG(CCACHE,ccache,none)
2222 if test "$ac_cv_path_CCACHE" = "none"; then
2223 if test "x$use_ccache" = "xyes"; then
2224 AC_MSG_ERROR([ccache not found.]);
2226 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2227 final_message="$final_message\n ccache:\tNo"
2230 CC="$ac_cv_path_CCACHE $CC"
2231 CXX="$ac_cv_path_CCACHE $CXX"
2232 AC_MSG_NOTICE(enabling ccache)
2233 final_message="$final_message\n ccache:\tYes"
2236 final_message="$final_message\n ccache:\tNo"
2239 if test "$use_alsa" = "yes"; then
2240 final_message="$final_message\n ALSA Support:\tYes"
2242 final_message="$final_message\n ALSA Support:\tNo"
2245 if test "x$use_pulse" != "xno"; then
2246 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2247 final_message="$final_message\n PulseAudio:\tYes"
2249 XBMC_STANDALONE_SH_PULSE=/dev/null
2250 final_message="$final_message\n PulseAudio:\tNo"
2253 if test "$use_hal" = "yes"; then
2254 final_message="$final_message\n HAL Support:\tYes"
2256 final_message="$final_message\n HAL Support:\tNo"
2260 if test "$use_dvdcss" = "yes"; then
2261 AC_MSG_NOTICE($dvdcss_enabled)
2262 final_message="$final_message\n DVDCSS:\tYes"
2264 SKIP_CONFIG_DVDCSS=0
2265 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2267 AC_MSG_NOTICE($dvdcss_disabled)
2268 final_message="$final_message\n DVDCSS:\tNo"
2270 SKIP_CONFIG_DVDCSS=1
2271 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2273 if test "$host_vendor" = "apple"; then
2274 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2277 # Google Test Framework
2278 if test "$configure_gtest" = "yes"; then
2279 AC_MSG_NOTICE($gtest_enabled)
2280 final_message="$final_message\n Google Test Framework Configured:\tYes"
2284 AC_MSG_NOTICE($gtest_disabled)
2285 final_message="$final_message\n Google Test Framework Configured:\tNo"
2290 if test "$use_avahi" = "yes"; then
2291 final_message="$final_message\n Avahi:\tYes"
2293 final_message="$final_message\n Avahi:\tNo"
2296 if test "$use_mdnsembedded" != "no"; then
2297 final_message="$final_message\n mDNSEmbedded:\tYes"
2299 final_message="$final_message\n mDNSEmbedded:\tNo"
2302 if test "$use_nonfree" = "yes"; then
2303 final_message="$final_message\n Non-free:\tYes"
2305 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2308 final_message="$final_message\n Non-free:\tNo"
2311 if test "$use_asap" = "yes"; then
2312 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2313 if test "$HAVE_GDC" = "no"; then
2314 AC_MSG_ERROR($missing_program);
2316 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2317 if test "$HAVE_FPC" = "no"; then
2318 AC_MSG_ERROR($missing_program);
2321 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2322 final_message="$final_message\n ASAP Codec:\tYes"
2325 final_message="$final_message\n ASAP Codec:\tNo"
2328 if test "$use_mysql" = "yes"; then
2329 final_message="$final_message\n MySQL:\tYes"
2332 final_message="$final_message\n MySQL:\tNo"
2335 if test "$use_webserver" = "yes"; then
2336 final_message="$final_message\n Webserver:\tYes"
2339 final_message="$final_message\n Webserver:\tNo"
2343 if test "$use_libssh" != "no"; then
2344 final_message="$final_message\n libssh support:\tYes"
2346 final_message="$final_message\n libssh support:\tNo"
2349 if test "$use_librtmp" != "no"; then
2350 final_message="$final_message\n libRTMP support:\tYes"
2352 final_message="$final_message\n libRTMP support:\tNo"
2355 if test "x$use_samba" != "xno"; then
2356 final_message="$final_message\n libsmbclient support:\tYes"
2358 final_message="$final_message\n libsmbclient support:\tNo"
2361 if test "$use_libnfs" != "no"; then
2362 final_message="$final_message\n libnfs client support:Yes"
2364 final_message="$final_message\n libnfs client support:No"
2367 if test "x$use_libafpclient" != "xno"; then
2368 final_message="$final_message\n libafpclient support:\tYes"
2370 final_message="$final_message\n libafpclient support:\tNo"
2373 if test "$use_airplay" != "no"; then
2374 final_message="$final_message\n AirPlay support:\tYes"
2376 final_message="$final_message\n AirPLay support:\tNo"
2379 if test "x$use_airtunes" != "xno"; then
2380 if test "x$USE_LIBSHAIRPORT" == "x1"; then
2381 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2383 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2386 final_message="$final_message\n AirTunes support:\tNo"
2389 if test "x$use_upnp" != "xno"; then
2390 final_message="$final_message\n UPnP support:\t\tYes"
2392 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2395 final_message="$final_message\n UPnP support:\t\tNo"
2398 if test "$use_optical_drive" = "yes"; then
2399 final_message="$final_message\n Optical drive:\tYes"
2401 final_message="$final_message\n Optical drive:\tNo"
2404 if test "x$use_libudev" != "xno"; then
2405 final_message="$final_message\n libudev support:\tYes"
2407 final_message="$final_message\n libudev support:\tNo"
2410 if test "x$use_libusb" != "xno"; then
2411 final_message="$final_message\n libusb support:\tYes"
2413 final_message="$final_message\n libusb support:\tNo"
2416 if test "x$use_libcec" != "xno"; then
2417 final_message="$final_message\n libcec support:\tYes"
2419 final_message="$final_message\n libcec support:\tNo"
2422 if test "x$use_libmp3lame" != "xno"; then
2423 final_message="$final_message\n libmp3lame support:\tYes"
2425 final_message="$final_message\n libmp3lame support:\tNo"
2428 if test "x$use_libvorbisenc" != "xno"; then
2429 final_message="$final_message\n libvorbisenc support:\tYes"
2431 final_message="$final_message\n libvorbisenc support:\tNo"
2434 if test "x$use_libcap" != "xno"; then
2435 final_message="$final_message\n libcap support:\tYes"
2437 final_message="$final_message\n libcap support:\tNo"
2440 if test "x$add_players" != "xno"; then
2441 final_message="$final_message\n additional players:\tYes, $add_players"
2443 final_message="$final_message\n additional players:\tNo"
2446 if test "x$add_codecs" != "xno"; then
2447 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2449 final_message="$final_message\n additional codecs:\tNo"
2452 ### External libraries messages
2454 if test "$use_external_ffmpeg" = "yes"; then
2455 final_message="$final_message\n External FFmpeg:\tYes"
2457 final_message="$final_message\n External FFmpeg:\tNo"
2460 if test "$host_vendor" = "apple" ; then
2461 # built internal but referenced as external, we link directly to them.
2462 # this MUST be the last thing before OUTPUT_FILES as they do not
2463 # exist until after we build FFMpeg.
2464 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2465 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2466 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2467 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2468 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2469 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2470 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2474 DISABLE_PVR_ADDON_CONFIG=1
2475 if [[ -f "pvr-addons/Makefile.am" ]]; then
2476 final_message="$final_message\n PVR add-ons:\t\tYes"
2478 DISABLE_PVR_ADDON_CONFIG=0
2480 final_message="$final_message\n PVR add-ons:\t\tNo"
2483 OUTPUT_FILES="Makefile \
2485 addons/skin.confluence/media/Makefile \
2487 xbmc/cdrip/Makefile \
2488 xbmc/cores/Makefile \
2489 xbmc/cores/VideoRenderers/Makefile \
2490 xbmc/cores/dvdplayer/Makefile \
2492 lib/libdvd/Makefile \
2493 xbmc/cores/DllLoader/Makefile \
2494 xbmc/cores/DllLoader/exports/Makefile \
2495 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2496 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2497 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2498 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2499 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2500 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2501 xbmc/cores/AudioEngine/Makefile \
2502 xbmc/cores/paplayer/Makefile \
2503 xbmc/cores/omxplayer/Makefile \
2504 lib/timidity/Makefile \
2505 lib/xbadpcm/Makefile \
2507 lib/nosefart/Makefile \
2508 lib/libsidplay2/Makefile \
2509 lib/vgmstream/Makefile \
2510 lib/snesapu/SNES/SNESAPU/Makefile \
2511 lib/stsound/StSoundLibrary/Makefile \
2512 xbmc/cores/playercorefactory/Makefile \
2513 xbmc/music/karaoke/Makefile \
2515 xbmc/guilib/Makefile \
2516 xbmc/input/linux/Makefile \
2517 xbmc/interfaces/Makefile \
2518 xbmc/network/Makefile \
2519 xbmc/network/upnp/Makefile \
2520 lib/libRTV/Makefile \
2521 lib/libexif/Makefile \
2522 lib/libXDAAP/Makefile \
2523 lib/cmyth/Makefile \
2524 lib/libhdhomerun/Makefile \
2525 lib/libsquish/Makefile \
2526 lib/cximage-6.0/Makefile \
2527 lib/libUPnP/Makefile \
2528 xbmc/DllPaths_generated.h \
2529 xbmc/DllPaths_generated_android.h \
2530 xbmc/freebsd/Makefile \
2531 xbmc/linux/Makefile \
2532 xbmc/filesystem/Makefile \
2533 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2534 xbmc/visualizations/XBMCProjectM/Makefile \
2535 xbmc/visualizations/Goom/Makefile \
2536 xbmc/visualizations/OpenGLSpectrum/Makefile \
2537 xbmc/visualizations/fishBMC/Makefile \
2538 xbmc/visualizations/WaveForm/Makefile \
2539 xbmc/windowing/Makefile \
2540 xbmc/windowing/egl/Makefile \
2541 lib/addons/library.xbmc.addon/Makefile \
2542 lib/addons/library.xbmc.codec/Makefile \
2543 lib/addons/library.xbmc.gui/Makefile \
2544 lib/addons/library.xbmc.pvr/Makefile \
2545 xbmc/visualizations/EGLHelpers/Makefile \
2546 tools/Linux/xbmc.sh \
2547 tools/Linux/xbmc-standalone.sh \
2548 tools/TexturePacker/Makefile \
2549 tools/EventClients/Clients/OSXRemote/Makefile \
2550 xbmc/peripherals/bus/Makefile \
2551 xbmc/peripherals/devices/Makefile \
2552 xbmc/android/activity/Makefile \
2553 xbmc/android/loader/Makefile \
2554 xbmc/android/jni/Makefile \
2555 xbmc/utils/Makefile \
2556 xbmc/main/Makefile \
2557 project/cmake/xbmc-config.cmake"
2559 if $use_wayland = "yes"; then
2560 OUTPUT_FILES="$OUTPUT_FILES xbmc/windowing/tests/wayland/Makefile"
2563 if test "$use_skin_touched" = "yes"; then
2564 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2567 if test "$use_codec_libstagefright" = "yes"; then
2568 OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile"
2571 OUTPUT_FILES="$OUTPUT_FILES \
2572 xbmc/interfaces/python/Makefile \
2573 xbmc/interfaces/python/test/Makefile"
2575 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2576 # .dummy.am does nothing.
2577 AC_CONFIG_FILES([.dummy])
2579 AC_CONFIG_FILES([${OUTPUT_FILES}])
2580 OUTPUT_FILES="$OUTPUT_FILES \
2586 AC_SUBST(CXX_FOR_BUILD)
2587 AC_SUBST(CC_FOR_BUILD)
2588 AC_SUBST(CFLAGS_FOR_BUILD)
2589 AC_SUBST(CXXFLAGS_FOR_BUILD)
2590 AC_SUBST(LDFLAGS_FOR_BUILD)
2591 AC_SUBST(SDL_DEFINES)
2592 AC_SUBST(BUILD_DVDCSS)
2593 AC_SUBST(DISABLE_WAVEFORM)
2594 AC_SUBST(DISABLE_SPECTRUM)
2595 AC_SUBST(DISABLE_GOOM)
2596 AC_SUBST(DISABLE_RSXS)
2597 AC_SUBST(DISABLE_FISHBMC)
2598 AC_SUBST(DISABLE_PROJECTM)
2599 AC_SUBST(USE_SKIN_TOUCHED)
2600 AC_SUBST(USE_EXTERNAL_FFMPEG)
2601 AC_SUBST(USE_LIBAV_HACKS)
2602 AC_SUBST(PYTHON_VERSION)
2603 AC_SUBST(OUTPUT_FILES)
2604 AC_SUBST(HAVE_XBMC_NONFREE)
2605 AC_SUBST(USE_ASAP_CODEC)
2606 AC_SUBST(LIBCURL_BASENAME)
2607 AC_SUBST(LIBFLAC_BASENAME)
2608 AC_SUBST(LIBVORBISFILE_BASENAME)
2609 AC_SUBST(LIBMODPLUG_BASENAME)
2610 AC_SUBST(LIBMAD_BASENAME)
2611 AC_SUBST(LIBOGG_BASENAME)
2612 AC_SUBST(LIBVORBISENC_BASENAME)
2613 AC_SUBST(LIBVORBIS_BASENAME)
2614 AC_SUBST(LIBASS_BASENAME)
2615 AC_SUBST(LIBMEPG2_BASENAME)
2616 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2617 AC_SUBST(USE_OPENGL)
2618 AC_SUBST(USE_OPENGLES)
2621 AC_SUBST(USE_CRYSTALHD)
2622 AC_SUBST(USE_LIBSMBCLIENT)
2623 AC_SUBST(USE_LIBNFS)
2624 AC_SUBST(USE_LIBAFPCLIENT)
2625 AC_SUBST(USE_AIRPLAY)
2626 AC_SUBST(USE_OPENMAX)
2628 AC_SUBST(USE_XRANDR)
2630 AC_SUBST(USE_TEXTUREPACKER)
2631 AC_SUBST(USE_AIRTUNES)
2632 AC_SUBST(USE_LIBUDEV)
2633 AC_SUBST(USE_LIBUSB)
2634 AC_SUBST(USE_LIBCEC)
2636 AC_SUBST(USE_WAYLAND)
2637 AC_SUBST(USE_WEB_SERVER)
2639 AC_SUBST(USE_XKBCOMMON)
2640 AC_SUBST(USE_OMXLIB)
2641 AC_SUBST(USE_ANDROID)
2642 AC_SUBST(GTEST_CONFIGURED)
2643 AC_SUBST(USE_DOXYGEN)
2644 AC_SUBST(USE_PVR_ADDONS)
2646 # pushd and popd are not available in other shells besides bash, so implement
2647 # our own pushd/popd functions
2652 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2654 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2657 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2662 if [[ -n "$XB_DIRSTACK" ]]; then
2663 XB_DIRSTACK="${XB_DIRSTACK#* }"
2664 cd "${XB_DIRSTACK%% *}"
2667 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2671 # Function to run the configure scripts in our submodules
2672 # Consists of three paramaters, the path to the submodule, the configure command
2673 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2674 # running the script, anything else if not.
2675 AC_DEFUN([XB_CONFIG_MODULE],[
2676 AC_CONFIG_COMMANDS_POST([
2677 if [[ $3 != "1" ]]; then
2678 if [[ -d $1 ]]; then
2681 if [[ $? -ne 0 ]]; then
2683 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2688 AC_MSG_ERROR([[Submodule $1 does not exist]])
2691 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2696 XB_CONFIG_MODULE([lib/ffmpeg], [
2697 if test "$host_vendor" = "apple" ; then
2698 ffmpg_config="--target-os=$ffmpeg_target_os"
2699 # handle disables first, we do individual enables later
2700 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2701 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2702 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2703 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2704 ffmpg_config="$ffmpg_config --enable-vda --disable-crystalhd"
2705 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2707 # handle conditional enables/disables
2708 if test "$use_debug" = "no"; then
2709 ffmpg_config="$ffmpg_config --disable-debug"
2711 if test "$use_cpu" != "no"; then
2712 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2714 if test "$use_arch" != "no"; then
2715 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2717 if test "$use_arch" = "arm"; then
2718 ffmpg_config="$ffmpg_config --enable-pic"
2719 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2720 if test "$use_neon" = "yes"; then
2721 ffmpg_config="$ffmpg_config --enable-neon"
2723 ffmpg_config="$ffmpg_config --disable-neon"
2726 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2728 if test "$use_ffmpeg_libvorbis" = "yes"; then
2729 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2731 ffmpg_config="$ffmpg_config --disable-libvorbis"
2733 if test "$have_gnutls" = "yes"; then
2734 ffmpg_config="$ffmpg_config --enable-gnutls"
2737 # handle individual enables
2738 ffmpg_config="$ffmpg_config --enable-gpl"
2739 ffmpg_config="$ffmpg_config --enable-postproc"
2740 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2741 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts --enable-muxer=asf --enable-muxer=ipod"
2742 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2"
2743 ffmpg_config="$ffmpg_config --enable-protocol=http"
2744 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2746 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2749 ffmpg_config="$ffmpg_config --cc=clang" ;;
2751 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2754 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2755 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2757 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2759 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2760 # dependency files in the right place, replace it with something that works
2763 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2766 # ffmpeg will use yasm found at ${prefix}/bin during configure
2767 # but then hardcodes 'yasm' in config.mak, fix it.
2768 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2769 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2770 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2775 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2777 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2779 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2780 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2781 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2782 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2783 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2784 --target-os=$ffmpeg_target_os \
2786 --enable-muxer=spdif \
2787 --enable-muxer=adts \
2788 --enable-muxer=asf \
2789 --enable-muxer=ipod \
2790 --disable-encoders \
2791 --enable-encoder=ac3 \
2792 --enable-encoder=aac \
2793 --enable-encoder=wmav2 \
2794 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2795 --disable-decoder=mpeg_xvmc \
2799 --disable-ffserver \
2801 --disable-crystalhd \
2806 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2807 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2808 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2809 --enable-protocol=http \
2810 `if test "$have_gnutls" = "yes"; then echo --enable-gnutls; fi` \
2812 --enable-runtime-cpudetect \
2813 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2814 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2815 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2816 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2817 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2819 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2820 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2822 ], [$USE_EXTERNAL_FFMPEG])
2824 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2828 CFLAGS="$CFLAGS $DROID_DVDLIB_SEEK64" \
2829 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2830 --host=$host_alias \
2831 --build=$build_alias \
2832 --target=$target_alias \
2836 ], [$SKIP_CONFIG_DVDCSS])
2838 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2840 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src $DROID_DVDLIB_SEEK64" \
2841 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2842 --host=$host_alias \
2843 --build=$build_alias \
2844 --target=$target_alias \
2850 $MAKE dvdread-config &&
2851 mkdir -p `pwd`/../includes/dvdread
2852 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2853 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2856 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2858 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes $DROID_DVDLIB_SEEK64" \
2859 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2860 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2861 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2862 --host=$host_alias \
2863 --build=$build_alias \
2864 --target=$target_alias \
2870 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2872 rm -f CMakeCache.txt && \
2873 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2874 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2875 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2876 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2877 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2878 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2879 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2880 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2881 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2882 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2883 if test "$host_vendor" = "apple" ; then
2884 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2885 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2886 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2887 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2890 ], [$DISABLE_PROJECTM])
2892 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2895 CXXFLAGS="$CXXFLAGS" \
2896 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2897 --host=$host_alias \
2898 --build=$build_alias \
2899 --target=$target_alias \
2905 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2906 if test "$host_vendor" = "apple"; then
2907 # clang treats inlines different
2910 TEMPCFLAGS="$CFLAGS";;
2912 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";;
2915 TEMPCFLAGS="$CFLAGS";
2920 CFLAGS="$TEMPCFLAGS" \
2921 CXXFLAGS="$CXXFLAGS" \
2922 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2923 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2924 --host=$host_alias \
2925 --build=$build_alias \
2926 --target=$target_alias \
2927 --without-xscreensaver \
2930 --disable-fieldlines \
2934 --disable-hyperspace \
2937 if echo "$ARCH" | grep -q freebsd ; then
2938 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2942 XB_CONFIG_MODULE([lib/cpluff], [
2943 ./configure --disable-nls \
2944 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2945 --host=$host_alias \
2946 --build=$build_alias \
2947 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2948 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2951 XB_CONFIG_MODULE([lib/gtest], [
2956 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2957 --host=$host_alias \
2958 --build=$build_alias \
2959 --target=$target_alias \
2963 ], [$SKIP_CONFIG_GTEST])
2965 XB_CONFIG_MODULE([pvr-addons], [
2967 --prefix="${prefix}" \
2968 --host=$host_alias \
2969 --build=$build_alias \
2970 --target=$target_alias \
2974 CXXFLAGS="$CXXFLAGS"
2975 ], [$DISABLE_PVR_ADDON_CONFIG])
2979 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2980 echo -e "$final_message\n"