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])
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 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 DROID_DVDLIB_SEEK64="-D_FILE_OFFSET_BITS=64 -D_OFF_T_DEFINED_ -Doff_t=off64_t -Dlseek=lseek64"
733 CXXFLAGS="$CXXFLAGS -Wno-psabi"
734 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
737 case $use_platform in
739 target_platform=target_raspberry_pi
743 use_hardcoded_tables="yes"
746 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
747 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
750 ffmpeg_target_os=linux
754 XBMC_SETUP_ARCH_DEFINES()
757 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
758 if test "$GIT_REV" = ""; then
759 if test -f VERSION ; then
760 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
761 elif test "$HAVE_GIT" = "yes"; then
762 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
767 final_message="$final_message\n git Rev.:\t${GIT_REV}"
769 if test "$host_vendor" = "apple"; then
770 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
772 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
775 if test "$build_shared_lib" = "yes"; then
776 final_message="$final_message\n Shared lib\tYes"
777 AC_SUBST(USE_LIBXBMC,1)
781 # platform debug flags
782 if test "$use_debug" = "yes"; then
783 final_message="$final_message\n Debugging:\tYes"
784 if test "$use_profiling" = "yes"; then
785 final_message="$final_message\n Profiling:\tYes"
786 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
788 final_message="$final_message\n Profiling:\tNo"
789 DEBUG_FLAGS="-g -D_DEBUG -Wall"
792 final_message="$final_message\n Debugging:\tNo"
793 if test "$use_profiling" = "yes"; then
794 final_message="$final_message\n Profiling:\tYes"
795 DEBUG_FLAGS="-pg -DNDEBUG=1"
797 final_message="$final_message\n Profiling:\tNo"
798 DEBUG_FLAGS="-DNDEBUG=1"
801 CFLAGS="$CFLAGS $DEBUG_FLAGS"
802 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
805 if test "$use_optimizations" = "yes"; then
806 final_message="$final_message\n Optimization:\tYes"
807 if test "$target_platform" = "target_raspberry_pi"; then
811 CXXFLAGS="-O2 $CXXFLAGS"
815 final_message="$final_message\n Optimization:\tNo"
819 # platform specific flags
820 if echo "$ARCH" | grep -q "freebsd" ; then
821 LOCALBASE="${LOCALBASE:-/usr/local}"
822 CFLAGS="$CFLAGS -I$LOCALBASE/include"
823 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
824 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
825 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
826 FFMPEG_EXTRACFLAGS="-I$LOCALBASE/include"
828 if test "$host_vendor" = "apple" ; then
829 # standard xbmc paths
830 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
831 if test "$use_arch" != "arm"; then
832 LIBS="$LIBS -framework ApplicationServices"
833 LIBS="$LIBS -framework AudioUnit"
834 LIBS="$LIBS -framework AudioToolbox"
835 LIBS="$LIBS -framework Cocoa"
836 LIBS="$LIBS -framework CoreAudio"
837 LIBS="$LIBS -framework CoreVideo"
838 LIBS="$LIBS -framework CoreServices"
839 LIBS="$LIBS -framework CoreFoundation"
840 LIBS="$LIBS -framework DiskArbitration"
841 LIBS="$LIBS -framework IOKit"
842 LIBS="$LIBS -framework IOSurface"
843 LIBS="$LIBS -framework QuartzCore"
844 LIBS="$LIBS -framework SystemConfiguration"
846 USE_EXTERNAL_FFMPEG=1
847 elif test "$target_platform" = "target_raspberry_pi"; then
850 elif test "$use_arch" = "arm"; then
851 CFLAGS="$CFLAGS -mno-apcs-stack-check"
852 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
853 FFMPEG_EXTRACFLAGS=""
854 if test "$use_tegra" = "yes"; then
855 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
856 SAVE_CFLAGS="$CFLAGS"
857 CFLAGS="-mfpu=vfpv3-d16"
859 [AC_LANG_SOURCE([int foo;])],
860 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
861 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
862 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
864 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
865 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
868 if test "$use_neon" = "yes"; then
869 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
870 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
871 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
876 # Checks for library functions.
879 AC_FUNC_CLOSEDIR_VOID
880 AC_FUNC_ERROR_AT_LINE
882 AC_PROG_GCC_TRADITIONAL
884 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
888 # Boxee is apparently having compile problems
889 # if HAVE_REALLOC is defined. Sort this later.
891 AC_FUNC_SELECT_ARGTYPES
892 AC_FUNC_SETVBUF_REVERSED
900 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])
902 # Check for various sizes
903 AC_CHECK_SIZEOF([int])
904 AC_CHECK_SIZEOF([size_t])
906 # Check for intrinsics
907 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
908 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
909 [have_builtin_sync_add_and_fetch=yes],
910 [have_builtin_sync_add_and_fetch=no])
911 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
912 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
913 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
914 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
917 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
918 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
919 [have_builtin_sync_sub_and_fetch=yes],
920 [have_builtin_sync_sub_and_fetch=no])
921 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
922 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
923 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
924 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
927 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
928 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
929 [have_builtin_sync_val_compare_and_swap=yes],
930 [have_builtin_sync_val_compare_and_swap=no])
931 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
932 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
933 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
934 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
937 # Check for u16string/u32string declarations
939 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
940 AC_CHECK_TYPES([char16_t, char32_t])
941 AC_CHECK_SIZEOF([wchar_t])
944 # Add top source directory for all builds so we can use config.h
945 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
947 # Check inotify availability
948 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
950 # Checks for boost headers using CXX instead of CC
952 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
956 if test -z "$PYTHON_NOVERSIONCHECK"; then
957 AX_PYTHON_DEVEL([>= 2.4])
958 PYTHON_VERSION=$ac_python_version
961 if test -z "$PYTHON_VERSION"; then
962 AC_MSG_ERROR([Can't find a Python version.])
964 LIBS="$LIBS $PYTHON_LDFLAGS"
965 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
969 if test "$use_wayland" = "yes" && test "$host_vendor" != "apple"; then
970 AC_MSG_NOTICE($wayland_enabled)
971 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client],
972 [INCLUDES="$INCLUDES $WAYLAND_CLIENT_CFLAGS";
973 WAYLAND_CLIENT_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-client\`; echo ${LIBRARY:2}`;
974 XB_FIND_SONAME([WAYLAND_CLIENT_LIBRARY], ${WAYLAND_CLIENT_LIBRARY_LINE})],
975 AC_MSG_ERROR($missing_library))
976 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],
977 [INCLUDES="$INCLUDES $WAYLAND_EGL_CFLAGS";
978 WAYLAND_EGL_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-egl\`; echo ${LIBRARY:2:11}`
979 XB_FIND_SONAME([WAYLAND_EGL_LIBRARY], ${WAYLAND_EGL_LIBRARY_LINE})],
980 AC_MSG_ERROR($missing_library))
981 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
982 [INCLUDES="$INCLUDES $XKBCOMMON_CFLAGS";
983 XKBCOMMON_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l xkbcommon\`; echo ${LIBRARY:2}`;
984 XB_FIND_SONAME([XKBCOMMON_LIBRARY], $XKBCOMMON_LIBRARY_LINE)],
985 AC_MSG_ERROR($missing_library))
986 AC_DEFINE([HAVE_WAYLAND], [1], [Define to 1 if you have Wayland libs installed.])
987 AC_DEFINE([HAVE_XKBCOMMON], [1], [Define to 1 if you have libxkbcommon installed.])
989 # If we are also building with tests then we want to build
990 # wayland tests as well
991 if test "$configure_gtest" = "yes"; then
993 PKG_CHECK_MODULES([PIXMAN],
994 [pixman-1],have_pixman=yes,
995 [AC_MSG_WARN($missing_library); have_pixman=no])
996 PKG_CHECK_MODULES([WESTON],
997 [weston >= 1.1.90],[have_weston_sdk=yes],
998 [have_weston_sdk=no; AC_MSG_WARN($missing_library)])
1000 AC_CHECK_PROG(WAYLAND_SCANNER, wayland-scanner, "wayland-scanner", "no")
1001 if test "x$WAYLAND_SCANNER" == "xno"; then
1002 AC_MSG_WARN($missing_program)
1004 if test "x$have_weston_sdk" == "xyes" && test "x$have_pixman" = "xyes"; then
1005 AC_SUBST(WAYLAND_TEST_INCLUDES,"$WAYLAND_CLIENT_CFLAGS $XKBCOMMON_CFLAGS $PIXMAN_CFLAGS $WESTON_CFLAGS")
1006 AC_SUBST(WAYLAND_TEST_LIBS,"$WAYLAND_CLIENT_LIBS $XKBCOMMON_LIBS $PIXMAN_LIBS $WESTON_LIBS")
1007 AC_DEFINE([HAVE_WESTON_SDK], [1], [Define to 1 if Weston SDK is installed.])
1008 AC_SUBST(USE_WAYLAND_TEST_EXTENSION, 1)
1010 AC_SUBST(WAYLAND_SCANNER)
1011 AC_DEFINE([HAVE_WAYLAND_XBMC_PROTO],[1],["Define to 1 if the wayland test-protocol will be built"])
1015 # Disable SDL and X11 builds
1020 # Wayland requires the EGL "window system" which in turn only supports
1021 # the OpenGL ES API, so enable gles support
1024 AC_MSG_RESULT($wayland_disabled)
1027 # Checks for platforms libraries.
1028 if test "$use_gles" = "yes"; then
1030 # GLES overwrites GL if both set to yes.
1031 if test "$host_vendor" = "apple" ; then
1032 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1033 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1034 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1036 if test "$target_platform" = "target_raspberry_pi"; then
1037 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1038 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1039 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1040 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
1042 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
1043 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
1047 if test "$use_gl" = "yes"; then
1048 if test "$host_vendor" = "apple" ; then
1049 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
1050 LIBS="$LIBS -framework OpenGL"
1051 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
1052 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
1053 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
1054 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
1055 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1057 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
1058 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1059 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
1062 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
1063 AC_CHECK_LIB([SDL_gfx],[main])
1067 # platform common libraries
1068 if test "$use_mysql" = "yes"; then
1069 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
1070 if test "x$MYSQL_CONFIG" != "xno"; then
1071 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
1072 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
1073 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
1074 LIBS="$LIBS $MYSQL_LIBS"
1075 AC_SUBST(MYSQL_LIBS)
1077 AC_MSG_ERROR($missing_program)
1080 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1081 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1082 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1083 AC_INCLUDES_DEFAULT()
1084 [#include <mpeg2dec/mpeg2.h>])
1085 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
1086 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1087 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
1088 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1089 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1090 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1091 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1092 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1094 # we need to check for the header because if it exists we set the openssl
1095 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1096 # in MT manner correctly.
1097 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1098 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1099 if test "$gcrypt_headers_available" = "yes"; then
1100 # if we have the headers then we must have the lib
1101 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1102 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1103 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1105 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"))
1107 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1108 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1109 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1110 if echo "$ARCH" | grep -q freebsd; then
1111 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1112 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1113 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1114 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1116 if test "$target_platform" != "target_android" ; then
1117 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1118 AC_CHECK_LIB([pthread], [pthread_setname_np],
1119 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1120 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1123 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1124 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1125 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1126 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1127 if test "$use_mysql" = "yes"; then
1128 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1130 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1131 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1132 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1133 if test "$target_platform" = "target_android" ; then
1134 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1135 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1136 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1138 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1139 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1140 AC_MSG_ERROR($missing_library))
1141 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1142 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1143 AC_MSG_ERROR($missing_library))
1144 PKG_CHECK_MODULES([PNG], [libpng],
1145 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1146 AC_MSG_ERROR($missing_library))
1147 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1148 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1149 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1150 AC_MSG_ERROR($missing_library))
1151 PKG_CHECK_MODULES([PCRE], [libpcre],
1152 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1153 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1154 AC_MSG_ERROR($missing_library))
1155 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1156 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1157 AC_MSG_ERROR($missing_library))
1158 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1159 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1160 AC_MSG_ERROR($missing_library))
1161 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1162 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1163 AC_MSG_ERROR($missing_library))
1165 if test "$use_optical_drive" = "yes"; then
1166 PKG_CHECK_MODULES([CDIO], [libcdio],
1167 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1168 AC_MSG_ERROR($missing_library))
1171 if test "$target_platform" = "target_android" ; then
1172 PKG_CHECK_MODULES([ZIP], [libzip],
1173 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1174 AC_MSG_ERROR($missing_library))
1177 # check for libbluray
1178 AS_CASE([x$use_libbluray],
1180 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1183 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1186 AS_CASE([x$use_libbluray],
1188 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1189 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1190 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1191 AC_SUBST([HAVE_LIBBLURAY], 1)
1192 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1193 AC_CHECK_DECL([BD_EVENT_IDLE],
1194 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1195 [[#include <libbluray/bluray.h>]]))
1197 AC_SUBST([HAVE_LIBBLURAY], 0)
1201 #Check to see if libs are needed for functions that are often built-in to libc
1202 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1203 AC_SEARCH_LIBS([dlopen],dl)
1204 AC_SEARCH_LIBS([clock_gettime],rt)
1205 AC_SEARCH_LIBS([dn_expand], resolv)
1206 AC_SEARCH_LIBS([_dn_expand], resolv)
1207 AC_SEARCH_LIBS([__dn_expand],resolv)
1209 # platform dependent libraries
1210 if test "$host_vendor" = "apple" ; then
1211 if test "$use_arch" != "arm"; then
1212 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1213 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1216 if test "$target_platform" != "target_android" ; then
1217 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1219 if test "x$use_alsa" != "xno"; then
1220 PKG_CHECK_MODULES([ALSA], [alsa],
1221 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1222 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1224 PKG_CHECK_MODULES([DBUS], [dbus-1],
1225 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1226 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1227 AC_MSG_NOTICE($missing_library); use_dbus=no)
1228 if test "x$use_sdl" != "xno"; then
1229 PKG_CHECK_MODULES([SDL], [sdl],
1230 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1231 AC_MSG_ERROR($missing_library))
1232 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1233 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1237 XB_FIND_SONAME([MAD], [mad])
1238 XB_FIND_SONAME([OGG], [ogg])
1239 XB_FIND_SONAME([CURL], [curl])
1240 XB_FIND_SONAME([FLAC], [FLAC])
1241 XB_FIND_SONAME([VORBIS], [vorbis])
1242 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1243 XB_FIND_SONAME([MODPLUG], [modplug])
1244 XB_FIND_SONAME([ASS], [ass])
1245 XB_FIND_SONAME([MPEG2], [mpeg2])
1248 if test "x$use_libmp3lame" != "xno"; then
1249 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1250 if test "x$use_libmp3lame" != "xno"; then
1251 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1254 AS_CASE([x$use_libmp3lame],
1256 AC_SUBST([HAVE_LIBMP3LAME], 0)
1259 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1260 AC_SUBST([HAVE_LIBMP3LAME], 1)
1263 if test "x$use_libvorbisenc" != "xno"; then
1264 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1265 if test "x$use_libvorbisenc" != "xno"; then
1266 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1269 AS_CASE([x$use_libvorbisenc],
1271 AC_SUBST([HAVE_LIBVORBISENC], 0)
1273 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1274 AC_SUBST([HAVE_LIBVORBISENC], 1)
1279 if test "$use_webserver" = "yes"; then
1280 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1284 if test "$use_optical_drive" = "yes"; then
1285 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1289 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1290 PKG_CHECK_MODULES([ALSA], [alsa],
1291 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1292 AC_MSG_ERROR($missing_library))
1293 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1296 AC_MSG_RESULT($alsa_disabled)
1300 if test "x$use_pulse" != "xno"; then
1301 if test "$host_vendor" = "apple" ; then
1302 if test "x$use_pulse" = "xyes"; then
1303 AC_MSG_ERROR($pulse_disabled)
1306 AC_MSG_RESULT($pulse_disabled)
1310 AC_CHECK_LIB([pulse],[main],,pulse_found="no")
1311 AC_CHECK_LIB([pulse-simple],[main],,pulse_found="no")
1313 if test "x$pulse_found" != "xno"; then
1315 elif test "x$use_pulse" = "xyes"; then
1316 AC_MSG_ERROR($pulse_not_found)
1320 AC_MSG_RESULT($pulse_not_found)
1324 AC_MSG_RESULT($pulse_disabled)
1329 if test "$host_vendor" = "apple" ; then
1331 AC_MSG_RESULT($hal_disabled)
1333 if test "$use_hal" = "yes"; then
1334 PKG_CHECK_MODULES([HAL], [hal],
1335 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1336 use_hal=no;AC_MSG_RESULT($hal_not_found))
1337 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1338 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1339 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1341 AC_MSG_RESULT($hal_disabled)
1343 if test "$use_hal" = "yes"; then
1344 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1349 if test "$host_vendor" = "apple" ; then
1351 AC_MSG_RESULT($avahi_disabled)
1353 if test "$use_avahi" = "yes"; then
1354 AC_CHECK_LIB([avahi-common], [main],,
1355 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1356 if test "$use_avahi" = "yes"; then
1357 #either both libs or none
1358 AC_CHECK_LIB([avahi-client], [main],,
1359 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1362 AC_MSG_RESULT($avahi_disabled)
1367 if test "$use_mdnsembedded" != "no"; then
1368 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1369 [if test "$use_mdnsembedded" = "yes"; then
1370 AC_MSG_ERROR($mdnsembedded_not_found)
1372 elif test "$use_mdnsembedded" != "no"; then
1373 AC_MSG_NOTICE($mdnsembedded_not_found)
1374 use_mdnsembedded="no"
1378 if test $use_mdnsembedded != "no"; then
1382 AC_MSG_RESULT($mdnsembedded_disabled)
1385 AC_SUBST(USE_MDNSEMBEDDED)
1388 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1389 AC_MSG_NOTICE($x11_enabled)
1390 PKG_CHECK_MODULES([X11], [x11],
1391 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1392 AC_MSG_ERROR($missing_library))
1393 PKG_CHECK_MODULES([XEXT], [xext],
1394 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1395 AC_MSG_ERROR($missing_library))
1396 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1398 AC_MSG_RESULT($x11_disabled)
1402 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1404 AC_MSG_RESULT($xrandr_disabled)
1406 if test "$use_xrandr" = "yes" ; then
1407 AC_CHECK_LIB([Xrandr], [main],,
1408 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1410 AC_MSG_RESULT($xrandr_disabled)
1415 if test "$use_waveform" = "yes"; then
1416 AC_MSG_NOTICE($waveform_enabled)
1419 AC_MSG_NOTICE($waveform_disabled)
1424 if test "$use_spectrum" = "yes"; then
1425 AC_MSG_NOTICE($spectrum_enabled)
1428 AC_MSG_NOTICE($spectrum_disabled)
1433 if test "$host_vendor" = "apple" ; then
1434 AC_MSG_NOTICE($goom_disabled)
1437 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1438 AC_MSG_NOTICE($goom_enabled)
1441 AC_MSG_NOTICE($goom_disabled)
1447 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1448 AC_MSG_NOTICE($rsxs_disabled)
1451 AC_MSG_NOTICE($rsxs_enabled)
1453 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1454 if test "$host_vendor" != "apple" ; then
1455 PKG_CHECK_MODULES([XT], [xt],
1456 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1457 AC_MSG_ERROR($missing_library))
1458 PKG_CHECK_MODULES([XMU], [xmu],
1459 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1460 AC_MSG_ERROR($missing_library))
1465 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1466 AC_MSG_NOTICE($fishbmc_disabled)
1470 AC_MSG_NOTICE($fishbmc_enabled)
1475 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1476 AC_MSG_NOTICE($projectm_disabled)
1480 AC_MSG_NOTICE($projectm_enabled)
1486 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1487 use_skin_touched=yes
1489 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1495 if test "x$use_ssh" = "xno"; then
1496 AC_MSG_NOTICE($ssh_disabled)
1499 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1500 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1504 if test "$use_librtmp" != "no"; then
1505 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1506 [if test "$use_librtmp" = "yes"; then
1507 AC_MSG_ERROR($librtmp_not_found)
1508 elif test "$use_librtmp" != "no"; then
1509 AC_MSG_NOTICE($librtmp_not_found)
1513 if test "$use_librtmp" != "no"; then
1514 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1516 if test "$use_librtmp" != "no"; then
1517 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1520 AC_MSG_NOTICE($librtmp_disabled)
1524 if test "x$use_samba" != "xno"; then
1525 PKG_CHECK_MODULES([SAMBA], [smbclient],
1526 [INCLUDES="$INCLUDES $SAMBA_CFLAGS"; LIBS="$LIBS $SAMBA_LIBS"],
1527 [AC_CHECK_LIB([smbclient], [main],,
1528 use_samba=no;AC_MSG_ERROR($missing_library))
1532 AC_MSG_RESULT($samba_disabled)
1536 if test "x$use_samba" != "xno"; then
1537 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1542 if test "$use_libnfs" != "no"; then
1543 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1544 [if test "$use_libnfs" = "yes"; then
1545 AC_MSG_ERROR($libnfs_not_found)
1547 elif test "$use_libnfs" != "no"; then
1548 AC_MSG_NOTICE($libnfs_not_found)
1553 if test "$use_libnfs" != "no"; then
1554 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1556 if test "$use_libnfs" != "no"; then
1557 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1562 AC_MSG_NOTICE($libnfs_disabled)
1567 if test "x$use_libafpclient" != "xno"; then
1568 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1569 [if test "x$use_libafpclient" = "xyes"; then
1570 AC_MSG_ERROR($libafpclient_not_found)
1571 elif test "x$use_libafpclient" != "xno"; then
1572 AC_MSG_NOTICE($libafpclient_not_found)
1573 use_libafpclient="no"
1576 if test "x$use_libafpclient" != "xno"; then
1577 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1578 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1582 AC_MSG_NOTICE($libafpclient_disabled)
1585 # libplist for airplay feature
1587 if test "$use_airplay" != "no"; then
1588 AC_CHECK_HEADER([plist/plist.h],,
1589 [if test "$use_airplay" = "yes"; then
1590 AC_MSG_ERROR($libplist_not_found)
1591 elif test "$use_airplay" != "no"; then
1592 AC_MSG_NOTICE($libplist_not_found)
1597 if test "$use_airplay" != "no"; then
1598 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1600 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1604 # libshairplay for AirTunes (prefered lib)
1606 if test "x$use_airtunes" != "xno"; then
1607 AC_CHECK_HEADERS([shairplay/raop.h],,
1608 [if test "x$use_airtunes" = "xyes"; then
1609 AC_MSG_ERROR($libshairplay_not_found)
1610 elif test "x$use_airtunes" != "xno"; then
1611 AC_MSG_NOTICE($libshairplay_not_found)
1616 if test "x$use_airtunes" != "xno"; then
1617 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [use_airtunes])
1620 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1621 [[#include <shairplay/raop.h>]])
1622 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1625 #libshairport - as a fallback for AirTunes
1626 if test "x$USE_AIRTUNES" == "x0"; then
1627 AC_CHECK_HEADERS([shairport/shairport.h],,
1628 [if test "x$use_airtunes" = "xyes"; then
1629 AC_MSG_ERROR($libshairport_not_found)
1630 elif test "x$use_airtunes" != "xno"; then
1631 AC_MSG_NOTICE($libshairport_not_found)
1636 if test "x$use_airtunes" != "xno"; then
1637 XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
1639 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1640 [[#include <shairport/shairport.h>]])
1641 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1648 if test "$host_vendor" = "apple" ; then
1650 AC_MSG_NOTICE($libudev_disabled)
1652 if test "$use_libudev" = "auto"; then
1653 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1654 elif test "$use_libudev" = "yes" ; then
1655 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1657 AC_MSG_NOTICE($libudev_disabled)
1660 if test "x$use_libudev" != "xno"; then
1661 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1662 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1669 # if libudev is available, we don't need libusb
1670 if test "x$use_libudev" != "xno"; then
1672 AC_MSG_NOTICE($libusb_disabled_udev_found)
1674 if test "$host_vendor" = "apple" ; then
1676 AC_MSG_NOTICE($libusb_disabled)
1678 if echo "$ARCH" | grep -q freebsd ; then
1679 AC_CHECK_LIB([usb],[main],
1680 [use_libusb="yes";USB_LIBS="-lusb"],
1681 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1682 elif test "$use_libusb" = "auto"; then
1683 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1684 elif test "$use_libusb" = "yes"; then
1685 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1687 AC_MSG_NOTICE($libusb_disabled)
1690 if test "x$use_libusb" != "xno"; then
1691 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1692 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1699 if test "x$use_libcec" != "xno"; then
1700 # libcec is dyloaded, so we need to check for its headers and link any depends.
1701 if test "x$use_libcec" != "xno"; then
1702 if test "x$use_libcec" != "xauto"; then
1703 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1705 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1708 if test "x$use_libcec" != "xno"; then
1709 INCLUDES="$INCLUDES $CEC_CFLAGS"
1710 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1711 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1712 AC_MSG_NOTICE($libcec_enabled)
1715 AC_MSG_NOTICE($libcec_disabled)
1720 AC_MSG_NOTICE($libcec_disabled)
1724 if test "$use_libcap" != "no"; then
1725 AC_CHECK_HEADERS([sys/capability.h],,
1726 [if test "$use_libcap" = "yes"; then
1727 AC_MSG_ERROR($libcap_not_found)
1728 elif test "$use_libcap" != "no"; then
1729 AC_MSG_NOTICE($libcap_not_found)
1733 if test "$use_libcap" != "no"; then
1734 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1736 if test "$use_libcap" != "no"; then
1737 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1740 AC_MSG_NOTICE($libcap_disabled)
1743 ### External libraries checks
1745 # Hacks for supporting libav
1748 if test "$use_libav_hacks" = "yes"; then
1749 export PKG_CONFIG_PATH="${srcdir}/lib/xbmc-libav-hacks/pkgconfig/:$PKG_CONFIG_PATH"
1751 AC_DEFINE([USE_LIBAV_HACKS], [1], [Whether to use libav compatibility hacks.])
1755 if test "$use_external_ffmpeg" = "yes"; then
1756 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale libswresample"
1758 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1759 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1760 AC_MSG_ERROR($missing_library))
1762 # in case the headers are in a custom directory
1763 SAVE_CPPFLAGS="$CPPFLAGS"
1764 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1766 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1767 [AC_MSG_ERROR($missing_headers)])
1769 AC_MSG_NOTICE($external_ffmpeg_enabled)
1770 USE_EXTERNAL_FFMPEG=1
1771 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1773 CPPFLAGS="$SAVE_CPPFLAGS"
1775 AC_MSG_NOTICE($external_ffmpeg_disabled)
1776 USE_EXTERNAL_FFMPEG=0
1779 echo "Checking for SWIG installation"
1780 AC_PATH_PROG(SWIG_EXE, swig, "none")
1781 if test "$SWIG_EXE" = "none"; then
1782 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1783 if test "$SWIG20_EXE" != "none" ; then
1784 SWIG_EXE=$SWIG20_EXE
1787 if test "$SWIG_EXE" = "none"; then
1788 AC_MSG_ERROR($missing_program)
1790 final_message="$final_message\n SWIG Available:\tYes"
1792 echo "Checking for a jre installation"
1793 AC_PATH_PROG(JAVA_EXE, java, "none")
1794 if test "$JAVA_EXE" = "none"; then
1795 AC_MSG_ERROR($missing_program)
1797 final_message="$final_message\n JRE Available:\tYes"
1799 echo "Checking for doxygen installation"
1800 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1801 if test "$DOXYGEN_EXE" = "none"; then
1802 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1803 final_message="$final_message\n Doxygen Available:\tNo"
1806 final_message="$final_message\n Doxygen Available:\tYes"
1811 if test "x$use_vdpau" != "xno"; then
1812 if test "$host_vendor" = "apple" ; then
1813 if test "x$use_vdpau" = "xyes"; then
1814 AC_MSG_ERROR([VDPAU not supported on this platform])
1817 AC_MSG_NOTICE($vdpau_disabled)
1822 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1823 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1824 [if test "x$use_vdpau" = "xyes"; then
1826 AC_MSG_ERROR([$vdpau_not_found])
1830 AC_MSG_RESULT($vdpau_not_found)
1835 AC_MSG_NOTICE($vdpau_disabled)
1839 if test "x$use_vaapi" != "xno"; then
1840 if test "$host_vendor" = "apple" ; then
1841 if test "x$use_vaapi" = "xyes"; then
1842 AC_MSG_ERROR([VAAPI not supported on this platform])
1845 AC_MSG_NOTICE($vaapi_disabled)
1849 initial_val=$use_vaapi
1850 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1851 if test "x$use_vaapi" != "xno"; then
1852 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1855 if test "x$use_vaapi" = "xno"; then
1856 if test "x$initial_val" = "xyes"; then
1857 AC_MSG_ERROR($vaapi_not_found)
1859 AC_MSG_RESULT($vaapi_not_found)
1863 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1868 AC_MSG_NOTICE($vaapi_disabled)
1873 if test "x$use_crystalhd" != "xno"; then
1874 SAVE_CFLAGS="$CFLAGS"
1875 CFLAGS="-D__LINUX_USER__"
1876 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1877 [ if test "x$use_crystalhd" = "xyes"; then
1878 AC_MSG_ERROR($crystalhd_not_found)
1881 AC_MSG_RESULT($crystalhd_not_found)
1885 CFLAGS="$SAVE_CFLAGS"
1886 if test "$host_vendor" != "apple"; then
1887 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1889 if test "x$use_crystalhd" != "xno"; then
1890 SAVE_CFLAGS="$CFLAGS"
1891 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1892 # check for new crystalhd lib
1894 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1895 #include <libcrystalhd/bc_dts_defs.h>
1896 PBC_INFO_CRYSTAL bCrystalInfo;])],
1897 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1898 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1899 CFLAGS="$SAVE_CFLAGS"
1903 AC_MSG_NOTICE($crystalhd_disabled)
1908 if test "x$use_vtbdecoder" != "xno"; then
1909 if test "$host_vendor" = "apple" ; then
1910 HAVE_VIDEOTOOLBOXDECODER=1
1911 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1912 AC_MSG_NOTICE($vtbdecoder_enabled)
1914 if test "x$use_vtbdecoder" = "xyes"; then
1915 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1918 AC_MSG_NOTICE($vtbdecoder_disabled)
1922 AC_MSG_NOTICE($vtbdecoder_disabled)
1926 if test "$host_vendor" = "apple" ; then
1929 AC_MSG_NOTICE($openmax_disabled)
1930 elif test "$target_platform" = "target_raspberry_pi"; then
1933 AC_MSG_NOTICE($openmax_disabled)
1935 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1936 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1937 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1938 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1939 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1940 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1941 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1942 AC_MSG_ERROR($openmax_not_found))
1944 AC_MSG_NOTICE($openmax_disabled)
1950 # yajl version check (yajl_version.h was added in yajl 2.0)
1951 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1952 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1955 # additional internal players
1956 case $add_players in
1958 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1962 # additional internal codecs
1965 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
1966 XB_ADD_CODEC([LIBAMCODEC], [amcodec])
1969 LIBS+="-L${prefix}/opt/android-libs -lstdc++ -lutils -lcutils -lstagefright -lbinder -lui -lgui"
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 xbmc/windowing/tests/wayland/Makefile \
2558 project/cmake/xbmc-config.cmake"
2560 if test "$use_skin_touched" = "yes"; then
2561 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2564 OUTPUT_FILES="$OUTPUT_FILES \
2565 xbmc/interfaces/python/Makefile \
2566 xbmc/interfaces/python/test/Makefile"
2568 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2569 # .dummy.am does nothing.
2570 AC_CONFIG_FILES([.dummy])
2572 AC_CONFIG_FILES([${OUTPUT_FILES}])
2573 OUTPUT_FILES="$OUTPUT_FILES \
2579 AC_SUBST(CXX_FOR_BUILD)
2580 AC_SUBST(CC_FOR_BUILD)
2581 AC_SUBST(CFLAGS_FOR_BUILD)
2582 AC_SUBST(CXXFLAGS_FOR_BUILD)
2583 AC_SUBST(LDFLAGS_FOR_BUILD)
2584 AC_SUBST(SDL_DEFINES)
2585 AC_SUBST(BUILD_DVDCSS)
2586 AC_SUBST(DISABLE_WAVEFORM)
2587 AC_SUBST(DISABLE_SPECTRUM)
2588 AC_SUBST(DISABLE_GOOM)
2589 AC_SUBST(DISABLE_RSXS)
2590 AC_SUBST(DISABLE_FISHBMC)
2591 AC_SUBST(DISABLE_PROJECTM)
2592 AC_SUBST(USE_SKIN_TOUCHED)
2593 AC_SUBST(USE_EXTERNAL_FFMPEG)
2594 AC_SUBST(USE_LIBAV_HACKS)
2595 AC_SUBST(PYTHON_VERSION)
2596 AC_SUBST(OUTPUT_FILES)
2597 AC_SUBST(HAVE_XBMC_NONFREE)
2598 AC_SUBST(USE_ASAP_CODEC)
2599 AC_SUBST(LIBCURL_BASENAME)
2600 AC_SUBST(LIBFLAC_BASENAME)
2601 AC_SUBST(LIBVORBISFILE_BASENAME)
2602 AC_SUBST(LIBMODPLUG_BASENAME)
2603 AC_SUBST(LIBMAD_BASENAME)
2604 AC_SUBST(LIBOGG_BASENAME)
2605 AC_SUBST(LIBVORBISENC_BASENAME)
2606 AC_SUBST(LIBVORBIS_BASENAME)
2607 AC_SUBST(LIBASS_BASENAME)
2608 AC_SUBST(LIBMEPG2_BASENAME)
2609 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2610 AC_SUBST(USE_OPENGL)
2611 AC_SUBST(USE_OPENGLES)
2614 AC_SUBST(USE_CRYSTALHD)
2615 AC_SUBST(USE_LIBSMBCLIENT)
2616 AC_SUBST(USE_LIBNFS)
2617 AC_SUBST(USE_LIBAFPCLIENT)
2618 AC_SUBST(USE_AIRPLAY)
2619 AC_SUBST(USE_OPENMAX)
2621 AC_SUBST(USE_XRANDR)
2623 AC_SUBST(USE_TEXTUREPACKER)
2624 AC_SUBST(USE_AIRTUNES)
2625 AC_SUBST(USE_LIBUDEV)
2626 AC_SUBST(USE_LIBUSB)
2627 AC_SUBST(USE_LIBCEC)
2629 AC_SUBST(USE_WAYLAND)
2630 AC_SUBST(USE_WEB_SERVER)
2632 AC_SUBST(USE_XKBCOMMON)
2633 AC_SUBST(USE_OMXLIB)
2634 AC_SUBST(USE_ANDROID)
2635 AC_SUBST(GTEST_CONFIGURED)
2636 AC_SUBST(USE_DOXYGEN)
2637 AC_SUBST(USE_PVR_ADDONS)
2639 # pushd and popd are not available in other shells besides bash, so implement
2640 # our own pushd/popd functions
2645 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2647 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2650 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2655 if [[ -n "$XB_DIRSTACK" ]]; then
2656 XB_DIRSTACK="${XB_DIRSTACK#* }"
2657 cd "${XB_DIRSTACK%% *}"
2660 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2664 # Function to run the configure scripts in our submodules
2665 # Consists of three paramaters, the path to the submodule, the configure command
2666 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2667 # running the script, anything else if not.
2668 AC_DEFUN([XB_CONFIG_MODULE],[
2669 AC_CONFIG_COMMANDS_POST([
2670 if [[ $3 != "1" ]]; then
2671 if [[ -d $1 ]]; then
2674 if [[ $? -ne 0 ]]; then
2676 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2681 AC_MSG_ERROR([[Submodule $1 does not exist]])
2684 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2689 XB_CONFIG_MODULE([lib/ffmpeg], [
2690 if test "$host_vendor" = "apple" ; then
2691 ffmpg_config="--target-os=$ffmpeg_target_os"
2692 # handle disables first, we do individual enables later
2693 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2694 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2695 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2696 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2697 ffmpg_config="$ffmpg_config --enable-vda --disable-crystalhd"
2698 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2700 # handle conditional enables/disables
2701 if test "$use_debug" = "no"; then
2702 ffmpg_config="$ffmpg_config --disable-debug"
2704 if test "$use_cpu" != "no"; then
2705 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2707 if test "$use_arch" != "no"; then
2708 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2710 if test "$use_arch" = "arm"; then
2711 ffmpg_config="$ffmpg_config --enable-pic"
2712 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2713 if test "$use_neon" = "yes"; then
2714 ffmpg_config="$ffmpg_config --enable-neon"
2716 ffmpg_config="$ffmpg_config --disable-neon"
2719 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2721 if test "$use_ffmpeg_libvorbis" = "yes"; then
2722 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2724 ffmpg_config="$ffmpg_config --disable-libvorbis"
2726 if test "$have_gnutls" = "yes"; then
2727 ffmpg_config="$ffmpg_config --enable-gnutls"
2730 # handle individual enables
2731 ffmpg_config="$ffmpg_config --enable-gpl"
2732 ffmpg_config="$ffmpg_config --enable-postproc"
2733 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2734 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts --enable-muxer=asf --enable-muxer=ipod"
2735 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2"
2736 ffmpg_config="$ffmpg_config --enable-protocol=http"
2737 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2739 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2742 ffmpg_config="$ffmpg_config --cc=clang" ;;
2744 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2747 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2748 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2750 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2752 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2753 # dependency files in the right place, replace it with something that works
2756 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2759 # ffmpeg will use yasm found at ${prefix}/bin during configure
2760 # but then hardcodes 'yasm' in config.mak, fix it.
2761 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2762 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2763 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2768 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2770 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2772 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2773 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2774 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2775 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2776 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2777 --target-os=$ffmpeg_target_os \
2779 --enable-muxer=spdif \
2780 --enable-muxer=adts \
2781 --enable-muxer=asf \
2782 --enable-muxer=ipod \
2783 --disable-encoders \
2784 --enable-encoder=ac3 \
2785 --enable-encoder=aac \
2786 --enable-encoder=wmav2 \
2787 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2788 --disable-decoder=mpeg_xvmc \
2792 --disable-ffserver \
2794 --disable-crystalhd \
2799 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2800 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2801 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2802 --enable-protocol=http \
2803 `if test "$have_gnutls" = "yes"; then echo --enable-gnutls; fi` \
2805 --enable-runtime-cpudetect \
2806 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2807 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2808 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2809 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2810 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2812 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2813 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2815 ], [$USE_EXTERNAL_FFMPEG])
2817 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2821 CFLAGS="$CFLAGS $DROID_DVDLIB_SEEK64" \
2822 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2823 --host=$host_alias \
2824 --build=$build_alias \
2825 --target=$target_alias \
2829 ], [$SKIP_CONFIG_DVDCSS])
2831 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2833 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src $DROID_DVDLIB_SEEK64" \
2834 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2835 --host=$host_alias \
2836 --build=$build_alias \
2837 --target=$target_alias \
2843 $MAKE dvdread-config &&
2844 mkdir -p `pwd`/../includes/dvdread
2845 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2846 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2849 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2851 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes $DROID_DVDLIB_SEEK64" \
2852 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2853 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2854 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2855 --host=$host_alias \
2856 --build=$build_alias \
2857 --target=$target_alias \
2863 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2865 rm -f CMakeCache.txt && \
2866 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2867 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2868 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2869 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2870 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2871 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2872 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2873 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2874 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2875 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2876 if test "$host_vendor" = "apple" ; then
2877 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2878 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2879 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2880 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2883 ], [$DISABLE_PROJECTM])
2885 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2888 CXXFLAGS="$CXXFLAGS" \
2889 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2890 --host=$host_alias \
2891 --build=$build_alias \
2892 --target=$target_alias \
2898 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2899 if test "$host_vendor" = "apple"; then
2900 # clang treats inlines different
2903 TEMPCFLAGS="$CFLAGS";;
2905 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";;
2908 TEMPCFLAGS="$CFLAGS";
2913 CFLAGS="$TEMPCFLAGS" \
2914 CXXFLAGS="$CXXFLAGS" \
2915 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2916 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2917 --host=$host_alias \
2918 --build=$build_alias \
2919 --target=$target_alias \
2920 --without-xscreensaver \
2923 --disable-fieldlines \
2927 --disable-hyperspace \
2930 if echo "$ARCH" | grep -q freebsd ; then
2931 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2935 XB_CONFIG_MODULE([lib/cpluff], [
2936 ./configure --disable-nls \
2937 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2938 --host=$host_alias \
2939 --build=$build_alias \
2940 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2941 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2944 XB_CONFIG_MODULE([lib/gtest], [
2949 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2950 --host=$host_alias \
2951 --build=$build_alias \
2952 --target=$target_alias \
2956 ], [$SKIP_CONFIG_GTEST])
2958 XB_CONFIG_MODULE([pvr-addons], [
2960 --prefix="${prefix}" \
2961 --host=$host_alias \
2962 --build=$build_alias \
2963 --target=$target_alias \
2967 CXXFLAGS="$CXXFLAGS"
2968 ], [$DISABLE_PVR_ADDON_CONFIG])
2972 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2973 echo -e "$final_message\n"