2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [12.9.82], [http://issues.xbmc.org])
6 AC_CONFIG_HEADERS([xbmc/config.h])
8 m4_include([m4/ax_prog_cc_for_build.m4])
9 m4_include([m4/ax_prog_cxx_for_build.m4])
10 m4_include([m4/ax_python_devel.m4])
11 m4_include([m4/xbmc_arch.m4])
13 AC_CONFIG_AUX_DIR([build-aux])
14 AM_INIT_AUTOMAKE([foreign])
18 echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
21 # workaround for autotools that don't set this
22 abs_top_srcdir=${abs_top_srcdir=$(cd $srcdir; pwd)}
24 # check for enabling additional players
25 AC_DEFUN([XB_ADD_PLAYER],
27 AC_MSG_CHECKING([for $2])
31 AC_DEFINE([HAS_$1], 1, [using $2])
32 AC_MSG_RESULT([enabling $2])
35 AC_MSG_RESULT([$2 is not enabled])
39 # check for enabling additional codecs
40 AC_DEFUN([XB_ADD_CODEC],
42 AC_MSG_CHECKING([for $2])
47 AC_DEFINE([HAS_$1], 1, [using $2])
48 AC_MSG_RESULT([enabling $2])
51 AC_MSG_RESULT([$2 is not enabled])
55 # check for library basenames
56 AC_DEFUN([XB_FIND_SONAME],
58 if echo "$host" | grep -q freebsd ; then
59 AC_MSG_CHECKING([for lib$2 soname])
60 $1_SONAME=[`ldconfig -r | sed -n "s;.* \(/.*lib$2\.so.*\)$;\1;p" | head -n 1`]
61 if test x$$1_SONAME != x ; then
62 $1_SONAME=[`basename $$1_SONAME`]
64 elif [[ "$host_vendor" != "apple" ]]; then
65 AC_MSG_CHECKING([for lib$2 soname])
66 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
67 if [[ -z $$1_FILENAME ]]; then
68 #try gold linker syntax
69 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "lib$2")
71 if [[ ! -z $$1_FILENAME ]]; then
72 $1_SONAME=$($OBJDUMP -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}')
75 AC_MSG_CHECKING([for lib$2 dylib])
76 gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
77 env_lib_path=[`echo $LDFLAGS | sed 's/-L[ ]*//g'`]
78 if test "$cross_compiling" = yes; then
81 host_lib_path="/usr/lib /usr/local/lib"
83 for path in $gcc_lib_path $env_lib_path $host_lib_path; do
84 lib=[`ls -- $path/lib$2.dylib 2>/dev/null`]
85 if test x$lib != x; then
86 # we want the path/name that is embedded in the dylib
87 $1_SONAME=[`otool -L $lib | grep -v lib$2.dylib | grep lib$2 | awk '{V=1; print $V}'`]
88 $1_SONAME=[`basename $$1_SONAME`]
92 if [[ -z "$$1_SONAME" ]]; then
94 if test -z "$3" || test "x${$3}" = "xyes"; then
95 AC_MSG_ERROR([Unable to determine soname of lib$2 library])
97 AC_MSG_WARN([Unable to determine soname of lib$2 library])
99 AC_MSG_WARN([lib$2 support disabled])
102 AC_MSG_RESULT([$$1_SONAME])
107 # Function to push and pop libs and includes for a command
108 AC_DEFUN([XB_PUSH_FLAGS], [
110 SAVE_INCLUDES="$INCLUDES"
115 INCLUDES="$SAVE_INCLUDES"
118 # General message strings
119 configure_debug="ERROR: this is a configure debug statement"
120 missing_library="Could not find a required library. Please see the README for your platform."
121 missing_headers="Could not find some required headers. Please see the README for your platform."
122 missing_program="Could not find a required program. Please see the README for your platform."
123 xrandr_not_found="== Could not find libXRandR. SDL will be used for resolution support. =="
124 xrandr_disabled="== XRandR support disabled. SDL will be used for resolution support. =="
125 waveform_enabled="== WAVEFORM enabled =="
126 waveform_disabled="== WAVEFORM disabled =="
127 spectrum_enabled="== SPECTRUM enabled =="
128 spectrum_disabled="== SPECTRUM disabled =="
129 goom_enabled="== GOOM enabled. =="
130 goom_disabled="== GOOM disabled. =="
131 alsa_disabled="== ALSA support disabled. =="
132 rsxs_enabled="== RSXS enabled. =="
133 rsxs_disabled="== RSXS disabled. =="
134 fishbmc_enabled="== FishBMC enabled. =="
135 fishbmc_disabled="== FishBMC disabled. =="
136 projectm_enabled="== ProjectM enabled. =="
137 projectm_disabled="== ProjectM disabled. =="
138 wayland_enabled="== Wayland enabled. =="
139 wayland_disabled="== Wayland disabled. =="
140 x11_enabled="== X11 enabled. =="
141 x11_disabled="== X11 disabled. =="
142 pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
143 pulse_disabled="== PulseAudio support disabled. =="
144 dvdcss_enabled="== DVDCSS support enabled. =="
145 dvdcss_disabled="== DVDCSS support disabled. =="
146 hal_not_found="== Could not find hal. HAL support disabled. =="
147 halstorage_not_found="== Could not find hal-storage. HAL support disabled. =="
148 hal_disabled="== HAL support disabled. =="
149 avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
150 avahi_disabled="== Avahi support disabled. =="
151 mdnsembedded_not_found="== Could not find mDNSEmbedded. Might prevent zeroconf support. =="
152 mdnsembedded_disabled="== mDNSEmbedded support disabled. =="
153 vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
154 vdpau_disabled="== VDPAU support manually disabled. =="
155 vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
156 vaapi_disabled="== VAAPI support manually disabled. =="
157 crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
158 crystalhd_disabled="== CrystalHD support manually disabled. =="
159 vtbdecoder_enabled="== VTBDecoder support enabled. =="
160 vtbdecoder_disabled="== VTBDecoder support manually disabled. =="
161 openmax_disabled="== OpenMax support manually disabled. =="
162 openmax_not_found="== Could not find libnvomx. OpenMax support disabled. =="
163 ssh_not_found="== Could not find libssh. =="
164 ssh_disabled="== SSH SFTP disabled. =="
165 librtmp_not_found="== Could not find libRTMP. RTMP support disabled. =="
166 librtmp_disabled="== RTMP support disabled. =="
167 libnfs_not_found="== Could not find libnfs. NFS client support disabled. =="
168 libnfs_disabled="== NFS support disabled. =="
169 libafpclient_not_found="== Could not find libafpclient. AFP client support disabled. =="
170 libafpclient_disabled="== AFP support disabled. =="
171 libshairport_not_found="== Could not find libshairport. =="
172 libshairplay_not_found="== Could not find libshairplay. =="
173 samba_disabled="== SAMBA support disabled. =="
174 libplist_not_found="== Could not find libplist. AirPlay support disabled. =="
175 libplist_disabled="== AirPlay support disabled. =="
176 alsa_not_found="== Could not find ALSA. ALSA support disabled. =="
177 dbus_not_found="== Could not find DBUS. DBUS support disabled. =="
178 libcap_disabled="== Capabilities detection support disabled. =="
179 libcap_not_found="== Could not find libcap. Capabilities detection support disabled. =="
180 gtest_enabled="== Google Test Framework will be configured. =="
181 gtest_disabled="== Google Test Framework will not be configured. =="
183 libudev_not_found="== Could not find libudev. Will use polling to check for device changes. =="
184 libudev_disabled="== udev support disabled. Will use polling to check for device changes. =="
185 libusb_not_found="== Could not find libusb. Plug and play USB device support will not be available. =="
186 libusb_disabled="== libusb disabled. Plug and play USB device support will not be available. =="
187 libusb_disabled_udev_found="== libusb disabled. =="
188 libcec_enabled="== libcec enabled. =="
189 libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
191 # External library message strings
192 external_libraries_enabled="== Use of all supported external libraries enabled. =="
193 external_libraries_disabled="== Use of all supported external libraries 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 auto)])],
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([libav-compat],
573 [AS_HELP_STRING([--enable-libav-compat],
574 [build a wrapper around libav to provide the functions needed by XBMC. This is
575 *not* supported by XBMC developers and is provided only for convenience. (default is no) 'Linux only'])],
576 [use_libav_hacks=$enableval],
577 [use_libav_hacks=no])
579 ### End of external library options
581 if test "x$host_vendor" != "xapple"; then
582 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
583 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
586 # Checks for programs.
587 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
590 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
591 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
593 AX_PROG_CXX_FOR_BUILD
594 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
601 OBJDUMP="${OBJDUMP:-objdump}"
603 use_external_ffmpeg=no
606 # ffmpeg needs the output of uname -s (e.x. linux, darwin) for the target_os
607 # there is no autoconf variable which will give
608 # the correct output format when doing cross compilation
609 # so we have to use our own var here
610 # defaults to the build side target_os
611 # and should be overridden for cross below (see android)
612 ffmpeg_target_os=$(tolower $(uname -s))
614 # host detection and setup
616 i*86*-linux-android*)
617 target_platform=target_android
621 ffmpeg_target_os=linux
629 i*86*-linux-gnu*|i*86*-*-linux-uclibc*)
631 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
635 use_static_ffmpeg=yes
637 x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
639 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
643 use_static_ffmpeg=yes
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*|powerpc-*-linux-uclibc*)
686 powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*)
687 ARCH="powerpc64-linux"
692 ffmpeg_target_os=linux
699 use_static_ffmpeg=yes
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" -a -d ${abs_top_srcdir}/.git; 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"
846 LIBS="$LIBS -framework VideoDecodeAcceleration"
848 USE_EXTERNAL_FFMPEG=1
849 elif test "$target_platform" = "target_raspberry_pi"; then
852 elif test "$use_arch" = "arm"; then
853 CFLAGS="$CFLAGS -mno-apcs-stack-check"
854 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
855 FFMPEG_EXTRACFLAGS=""
856 if test "$use_tegra" = "yes"; then
857 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
858 SAVE_CFLAGS="$CFLAGS"
859 CFLAGS="-mfpu=vfpv3-d16"
861 [AC_LANG_SOURCE([int foo;])],
862 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
863 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
864 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
866 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
867 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
870 if test "$use_neon" = "yes"; then
871 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
872 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
873 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
877 if test "$use_static_ffmpeg" = "yes"; then
879 AC_DEFINE([USE_STATIC_FFMPEG], [1], [link ffmpeg statically])
880 # ffmpeg may depend on gnutls and vorbisenc, we add those libs at the end of linker
881 # command in order to resolve any missing symbols
882 GNUTLS_ALL_LIBS=`${PKG_CONFIG} --static --libs-only-l --silence-errors gnutls`
883 VORBISENC_ALL_LIBS=`${PKG_CONFIG} --static --libs-only-l --silence-errors vorbisenc`
886 # Checks for library functions.
889 AC_FUNC_CLOSEDIR_VOID
890 AC_FUNC_ERROR_AT_LINE
892 AC_PROG_GCC_TRADITIONAL
894 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
898 # Boxee is apparently having compile problems
899 # if HAVE_REALLOC is defined. Sort this later.
901 AC_FUNC_SELECT_ARGTYPES
902 AC_FUNC_SETVBUF_REVERSED
910 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])
912 # Check for various sizes
913 AC_CHECK_SIZEOF([int])
914 AC_CHECK_SIZEOF([size_t])
916 # Check for intrinsics
917 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
918 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
919 [have_builtin_sync_add_and_fetch=yes],
920 [have_builtin_sync_add_and_fetch=no])
921 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
922 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
923 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
924 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
927 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
928 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
929 [have_builtin_sync_sub_and_fetch=yes],
930 [have_builtin_sync_sub_and_fetch=no])
931 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
932 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
933 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
934 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
937 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
938 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
939 [have_builtin_sync_val_compare_and_swap=yes],
940 [have_builtin_sync_val_compare_and_swap=no])
941 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
942 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
943 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
944 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
947 # Check for u16string/u32string declarations
949 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
950 AC_CHECK_TYPES([char16_t, char32_t])
951 AC_CHECK_SIZEOF([wchar_t])
954 # Add top source directory for all builds so we can use config.h
955 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
957 # Check inotify availability
958 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
960 # Checks for boost headers using CXX instead of CC
962 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
966 if test -z "$PYTHON_NOVERSIONCHECK"; then
967 AX_PYTHON_DEVEL([>= 2.4])
968 PYTHON_VERSION=$ac_python_version
971 if test -z "$PYTHON_VERSION"; then
972 AC_MSG_ERROR([Can't find a Python version.])
974 LIBS="$LIBS $PYTHON_LDFLAGS"
975 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
979 if test "$use_wayland" = "yes" && test "$host_vendor" != "apple"; then
980 AC_MSG_NOTICE($wayland_enabled)
981 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client],
982 [INCLUDES="$INCLUDES $WAYLAND_CLIENT_CFLAGS";
983 WAYLAND_CLIENT_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-client\`; echo ${LIBRARY:2}`;
984 XB_FIND_SONAME([WAYLAND_CLIENT_LIBRARY], ${WAYLAND_CLIENT_LIBRARY_LINE})],
985 AC_MSG_ERROR($missing_library))
986 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],
987 [INCLUDES="$INCLUDES $WAYLAND_EGL_CFLAGS";
988 WAYLAND_EGL_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-egl\`; echo ${LIBRARY:2:11}`
989 XB_FIND_SONAME([WAYLAND_EGL_LIBRARY], ${WAYLAND_EGL_LIBRARY_LINE})],
990 AC_MSG_ERROR($missing_library))
991 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
992 [INCLUDES="$INCLUDES $XKBCOMMON_CFLAGS";
993 XKBCOMMON_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l xkbcommon\`; echo ${LIBRARY:2}`;
994 XB_FIND_SONAME([XKBCOMMON_LIBRARY], $XKBCOMMON_LIBRARY_LINE)],
995 AC_MSG_ERROR($missing_library))
996 AC_DEFINE([HAVE_WAYLAND], [1], [Define to 1 if you have Wayland libs installed.])
997 AC_DEFINE([HAVE_XKBCOMMON], [1], [Define to 1 if you have libxkbcommon installed.])
999 # If we are also building with tests then we want to build
1000 # wayland tests as well
1001 if test "$configure_gtest" = "yes"; then
1003 PKG_CHECK_MODULES([PIXMAN],
1004 [pixman-1],have_pixman=yes,
1005 [AC_MSG_WARN($missing_library); have_pixman=no])
1006 PKG_CHECK_MODULES([WESTON],
1007 [weston >= 1.1.90],[have_weston_sdk=yes],
1008 [have_weston_sdk=no; AC_MSG_WARN($missing_library)])
1010 AC_CHECK_PROG(WAYLAND_SCANNER, wayland-scanner, "wayland-scanner", "no")
1011 if test "x$WAYLAND_SCANNER" == "xno"; then
1012 AC_MSG_WARN($missing_program)
1014 if test "x$have_weston_sdk" == "xyes" && test "x$have_pixman" = "xyes"; then
1015 AC_SUBST(WAYLAND_TEST_INCLUDES,"$WAYLAND_CLIENT_CFLAGS $XKBCOMMON_CFLAGS $PIXMAN_CFLAGS $WESTON_CFLAGS")
1016 AC_SUBST(WAYLAND_TEST_LIBS,"$WAYLAND_CLIENT_LIBS $XKBCOMMON_LIBS $PIXMAN_LIBS $WESTON_LIBS")
1017 AC_DEFINE([HAVE_WESTON_SDK], [1], [Define to 1 if Weston SDK is installed.])
1018 AC_SUBST(USE_WAYLAND_TEST_EXTENSION, 1)
1020 AC_SUBST(WAYLAND_SCANNER)
1021 AC_DEFINE([HAVE_WAYLAND_XBMC_PROTO],[1],["Define to 1 if the wayland test-protocol will be built"])
1025 # Disable SDL and X11 builds
1030 # Wayland requires the EGL "window system" which in turn only supports
1031 # the OpenGL ES API, so enable gles support
1034 AC_MSG_RESULT($wayland_disabled)
1037 # Checks for platforms libraries.
1038 if test "$use_gles" = "yes"; then
1040 # GLES overwrites GL if both set to yes.
1041 if test "$host_vendor" = "apple" ; then
1042 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1043 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1044 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1046 if test "$target_platform" = "target_raspberry_pi"; then
1047 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1048 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1049 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1050 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
1052 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
1053 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
1057 if test "$use_gl" = "yes"; then
1058 if test "$host_vendor" = "apple" ; then
1059 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
1060 LIBS="$LIBS -framework OpenGL"
1061 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
1062 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
1063 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
1064 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
1065 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1067 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
1068 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1069 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
1072 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
1073 AC_CHECK_LIB([SDL_gfx],[main])
1077 # platform common libraries
1078 if test "$use_mysql" = "yes"; then
1079 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
1080 if test "x$MYSQL_CONFIG" != "xno"; then
1081 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
1082 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
1083 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
1084 LIBS="$LIBS $MYSQL_LIBS"
1085 AC_SUBST(MYSQL_LIBS)
1087 AC_MSG_ERROR($missing_program)
1090 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1091 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1092 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1093 AC_INCLUDES_DEFAULT()
1094 [#include <mpeg2dec/mpeg2.h>])
1095 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
1096 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1097 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
1098 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1099 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1100 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1101 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1102 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1104 # we need to check for the header because if it exists we set the openssl
1105 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1106 # in MT manner correctly.
1107 AC_MSG_CHECKING([for CRYPTO_set_locking_callback(0)])
1108 AC_TRY_LINK([],[CRYPTO_set_locking_callback(0);],
1109 [have_curl_static=yes],
1110 [have_curl_static=no])
1111 AC_MSG_RESULT($have_curl_static)
1112 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1113 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1114 if test "$gcrypt_headers_available" = "yes"; then
1115 # if we have the headers then we must have the lib
1116 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1117 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1118 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1120 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"))
1122 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1123 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1124 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1125 if echo "$ARCH" | grep -q freebsd; then
1126 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1127 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1128 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1129 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1131 if test "$target_platform" != "target_android" ; then
1132 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1133 AC_CHECK_LIB([pthread], [pthread_setname_np],
1134 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1135 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1138 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1139 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1140 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1141 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1142 if test "$use_mysql" = "yes"; then
1143 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1145 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1146 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1147 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1148 if test "$target_platform" = "target_android" ; then
1149 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1150 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1151 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1153 PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
1154 [INCLUDES="$INCLUDES $LIBXML_CFLAGS"; LIBS="$LIBS $LIBXML_LIBS"],
1155 AC_MSG_ERROR($missing_library))
1156 PKG_CHECK_MODULES([LIBXSLT], [libxslt],
1157 [INCLUDES="$INCLUDES $LIBXSLT_CFLAGS"; LIBS="$LIBS $LIBXSLT_LIBS"],
1158 AC_MSG_ERROR($missing_library))
1159 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1160 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1161 AC_MSG_ERROR($missing_library))
1162 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1163 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1164 AC_MSG_ERROR($missing_library))
1165 PKG_CHECK_MODULES([PNG], [libpng],
1166 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1167 AC_MSG_ERROR($missing_library))
1168 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1169 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1170 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1171 AC_MSG_ERROR($missing_library))
1172 PKG_CHECK_MODULES([PCRE], [libpcre],
1173 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1174 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1175 AC_MSG_ERROR($missing_library))
1176 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1177 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1178 AC_MSG_ERROR($missing_library))
1179 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1180 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1181 AC_MSG_ERROR($missing_library))
1182 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1183 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1184 AC_MSG_ERROR($missing_library))
1186 if test "$use_optical_drive" = "yes"; then
1187 PKG_CHECK_MODULES([CDIO], [libcdio],
1188 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1189 AC_MSG_ERROR($missing_library))
1192 if test "$target_platform" = "target_android" ; then
1193 PKG_CHECK_MODULES([ZIP], [libzip],
1194 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1195 AC_MSG_ERROR($missing_library))
1198 # check for libbluray
1199 AS_CASE([x$use_libbluray],
1201 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1204 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1207 AS_CASE([x$use_libbluray],
1209 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1210 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1211 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1212 AC_SUBST([HAVE_LIBBLURAY], 1)
1213 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1214 AC_CHECK_DECL([BD_EVENT_IDLE],
1215 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1216 [[#include <libbluray/bluray.h>]]))
1218 AC_SUBST([HAVE_LIBBLURAY], 0)
1222 #Check to see if libs are needed for functions that are often built-in to libc
1223 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1224 AC_SEARCH_LIBS([dlopen],dl)
1225 AC_SEARCH_LIBS([clock_gettime],rt)
1226 AC_SEARCH_LIBS([dn_expand], resolv)
1227 AC_SEARCH_LIBS([_dn_expand], resolv)
1228 AC_SEARCH_LIBS([__dn_expand],resolv)
1230 # platform dependent libraries
1231 if test "$host_vendor" = "apple" ; then
1232 if test "$use_arch" != "arm"; then
1233 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1234 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1237 if test "$target_platform" != "target_android" ; then
1238 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1240 if test "x$use_alsa" != "xno"; then
1241 PKG_CHECK_MODULES([ALSA], [alsa],
1242 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1243 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1245 PKG_CHECK_MODULES([DBUS], [dbus-1],
1246 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1247 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1248 AC_MSG_NOTICE($missing_library); use_dbus=no)
1249 if test "x$use_sdl" != "xno"; then
1250 PKG_CHECK_MODULES([SDL], [sdl],
1251 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1252 AC_MSG_ERROR($missing_library))
1253 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1254 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1258 XB_FIND_SONAME([MAD], [mad])
1259 XB_FIND_SONAME([OGG], [ogg])
1260 XB_FIND_SONAME([CURL], [curl])
1261 XB_FIND_SONAME([FLAC], [FLAC])
1262 XB_FIND_SONAME([VORBIS], [vorbis])
1263 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1264 XB_FIND_SONAME([MODPLUG], [modplug])
1265 XB_FIND_SONAME([ASS], [ass])
1266 XB_FIND_SONAME([MPEG2], [mpeg2])
1269 if test "x$use_libmp3lame" != "xno"; then
1270 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1271 if test "x$use_libmp3lame" != "xno"; then
1272 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1275 AS_CASE([x$use_libmp3lame],
1277 AC_SUBST([HAVE_LIBMP3LAME], 0)
1280 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1281 AC_SUBST([HAVE_LIBMP3LAME], 1)
1284 if test "x$use_libvorbisenc" != "xno"; then
1285 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1286 if test "x$use_libvorbisenc" != "xno"; then
1287 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1290 AS_CASE([x$use_libvorbisenc],
1292 AC_SUBST([HAVE_LIBVORBISENC], 0)
1294 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1295 AC_SUBST([HAVE_LIBVORBISENC], 1)
1300 if test "$use_webserver" = "yes"; then
1301 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1305 if test "$use_optical_drive" = "yes"; then
1306 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1310 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1311 PKG_CHECK_MODULES([ALSA], [alsa],
1312 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1313 AC_MSG_ERROR($missing_library))
1314 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1317 AC_MSG_RESULT($alsa_disabled)
1321 if test "x$use_pulse" != "xno"; then
1322 if test "$host_vendor" = "apple" ; then
1323 if test "x$use_pulse" = "xyes"; then
1324 AC_MSG_ERROR($pulse_disabled)
1327 AC_MSG_RESULT($pulse_disabled)
1331 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0],
1332 [INCLUDES="$INCLUDES $PULSE_CFLAGS"; LIBS="$LIBS $PULSE_LIBS"; USE_PULSE=1;
1333 HAVE_LIBPULSE=1; AC_DEFINE([HAVE_LIBPULSE],[1],[Pulse audio enabled])],
1334 [pulse_found="no"; USE_PULSE=0; HAVE_LIBPULSE=0])
1336 if test "$pulse_found" = "no"; then
1337 if test "x$use_pulse" = "xyes"; then
1338 AC_MSG_ERROR($pulse_not_found)
1340 AC_MSG_RESULT($pulse_disabled)
1345 AC_MSG_RESULT($pulse_disabled)
1350 if test "$host_vendor" = "apple" ; then
1352 AC_MSG_RESULT($hal_disabled)
1354 if test "$use_hal" = "yes"; then
1355 PKG_CHECK_MODULES([HAL], [hal],
1356 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1357 use_hal=no;AC_MSG_RESULT($hal_not_found))
1358 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1359 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1360 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1362 AC_MSG_RESULT($hal_disabled)
1364 if test "$use_hal" = "yes"; then
1365 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1370 if test "$host_vendor" = "apple" ; then
1372 AC_MSG_RESULT($avahi_disabled)
1374 if test "$use_avahi" = "yes"; then
1375 AC_CHECK_LIB([avahi-common], [main],,
1376 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1377 if test "$use_avahi" = "yes"; then
1378 #either both libs or none
1379 AC_CHECK_LIB([avahi-client], [main],,
1380 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1383 AC_MSG_RESULT($avahi_disabled)
1388 if test "$use_mdnsembedded" != "no"; then
1389 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1390 [if test "$use_mdnsembedded" = "yes"; then
1391 AC_MSG_ERROR($mdnsembedded_not_found)
1393 elif test "$use_mdnsembedded" != "no"; then
1394 AC_MSG_NOTICE($mdnsembedded_not_found)
1395 use_mdnsembedded="no"
1399 if test $use_mdnsembedded != "no"; then
1403 AC_MSG_RESULT($mdnsembedded_disabled)
1406 AC_SUBST(USE_MDNSEMBEDDED)
1409 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1410 AC_MSG_NOTICE($x11_enabled)
1411 PKG_CHECK_MODULES([X11], [x11],
1412 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1413 AC_MSG_ERROR($missing_library))
1414 PKG_CHECK_MODULES([XEXT], [xext],
1415 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1416 AC_MSG_ERROR($missing_library))
1417 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1419 AC_MSG_RESULT($x11_disabled)
1423 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1425 AC_MSG_RESULT($xrandr_disabled)
1427 if test "$use_xrandr" = "yes" ; then
1428 AC_CHECK_LIB([Xrandr], [main],,
1429 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1431 AC_MSG_RESULT($xrandr_disabled)
1436 if test "$use_waveform" = "yes"; then
1437 AC_MSG_NOTICE($waveform_enabled)
1440 AC_MSG_NOTICE($waveform_disabled)
1445 if test "$use_spectrum" = "yes"; then
1446 AC_MSG_NOTICE($spectrum_enabled)
1449 AC_MSG_NOTICE($spectrum_disabled)
1454 if test "$host_vendor" = "apple" ; then
1455 AC_MSG_NOTICE($goom_disabled)
1458 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1459 AC_MSG_NOTICE($goom_enabled)
1462 AC_MSG_NOTICE($goom_disabled)
1468 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1469 AC_MSG_NOTICE($rsxs_disabled)
1472 AC_MSG_NOTICE($rsxs_enabled)
1474 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1475 if test "$host_vendor" != "apple" ; then
1476 PKG_CHECK_MODULES([XT], [xt],
1477 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1478 AC_MSG_ERROR($missing_library))
1479 PKG_CHECK_MODULES([XMU], [xmu],
1480 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1481 AC_MSG_ERROR($missing_library))
1486 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1487 AC_MSG_NOTICE($fishbmc_disabled)
1491 AC_MSG_NOTICE($fishbmc_enabled)
1496 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1497 AC_MSG_NOTICE($projectm_disabled)
1501 AC_MSG_NOTICE($projectm_enabled)
1507 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1508 use_skin_touched=yes
1510 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1516 if test "x$use_ssh" = "xno"; then
1517 AC_MSG_NOTICE($ssh_disabled)
1520 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1521 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1525 if test "x$have_curl_static" = "xyes"; then
1526 AC_DEFINE([HAS_CURL_STATIC], [1], [Whether OpenSSL inside libcurl is static.])
1530 if test "$use_librtmp" != "no"; then
1531 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1532 [if test "$use_librtmp" = "yes"; then
1533 AC_MSG_ERROR($librtmp_not_found)
1534 elif test "$use_librtmp" != "no"; then
1535 AC_MSG_NOTICE($librtmp_not_found)
1539 if test "$use_librtmp" != "no"; then
1540 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1542 if test "$use_librtmp" != "no"; then
1543 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1546 AC_MSG_NOTICE($librtmp_disabled)
1550 if test "x$use_samba" != "xno"; then
1551 PKG_CHECK_MODULES([SAMBA], [smbclient],
1552 [INCLUDES="$INCLUDES $SAMBA_CFLAGS"; LIBS="$LIBS $SAMBA_LIBS"],
1553 [AC_CHECK_LIB([smbclient], [main],,
1554 use_samba=no;AC_MSG_ERROR($missing_library))
1558 AC_MSG_RESULT($samba_disabled)
1562 if test "x$use_samba" != "xno"; then
1563 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1568 if test "$use_libnfs" != "no"; then
1569 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1570 [if test "$use_libnfs" = "yes"; then
1571 AC_MSG_ERROR($libnfs_not_found)
1573 elif test "$use_libnfs" != "no"; then
1574 AC_MSG_NOTICE($libnfs_not_found)
1579 if test "$use_libnfs" != "no"; then
1580 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1582 if test "$use_libnfs" != "no"; then
1583 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1588 AC_MSG_NOTICE($libnfs_disabled)
1593 if test "x$use_libafpclient" != "xno"; then
1594 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1595 [if test "x$use_libafpclient" = "xyes"; then
1596 AC_MSG_ERROR($libafpclient_not_found)
1597 elif test "x$use_libafpclient" != "xno"; then
1598 AC_MSG_NOTICE($libafpclient_not_found)
1599 use_libafpclient="no"
1602 if test "x$use_libafpclient" != "xno"; then
1603 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1604 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1608 AC_MSG_NOTICE($libafpclient_disabled)
1611 # libplist for airplay feature
1613 if test "$use_airplay" != "no"; then
1614 AC_CHECK_HEADER([plist/plist.h],,
1615 [if test "$use_airplay" = "yes"; then
1616 AC_MSG_ERROR($libplist_not_found)
1617 elif test "$use_airplay" != "no"; then
1618 AC_MSG_NOTICE($libplist_not_found)
1623 if test "$use_airplay" != "no"; then
1624 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1626 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1630 # libshairplay for AirTunes (prefered lib)
1632 if test "x$use_airtunes" != "xno"; then
1633 AC_CHECK_HEADERS([shairplay/raop.h],USE_AIRTUNES=1,
1634 [AC_MSG_NOTICE($libshairplay_not_found)
1637 if test "x$USE_AIRTUNES" != "x0"; then
1638 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [USE_AIRTUNES])
1640 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1641 [[#include <shairplay/raop.h>]])
1642 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1645 #libshairport - as a fallback for AirTunes
1646 if test "x$USE_AIRTUNES" == "x0"; then
1647 AC_CHECK_HEADERS([shairport/shairport.h],USE_AIRTUNES=1,
1648 [AC_MSG_NOTICE($libshairport_not_found)
1651 if test "x$USE_AIRTUNES" != "x0"; then
1652 XB_FIND_SONAME([SHAIRPORT], [shairport], [USE_AIRTUNES])
1653 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1654 [[#include <shairport/shairport.h>]])
1655 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1659 if test "x$USE_AIRTUNES" == "x0"; then
1660 if test "x$use_airtunes" == "xyes"; then
1661 AC_MSG_ERROR("No airtunes library could be found. (libshairport/libshairplay)")
1669 if test "$host_vendor" = "apple" ; then
1671 AC_MSG_NOTICE($libudev_disabled)
1673 if test "$use_libudev" = "auto"; then
1674 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1675 elif test "$use_libudev" = "yes" ; then
1676 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1678 AC_MSG_NOTICE($libudev_disabled)
1681 if test "x$use_libudev" != "xno"; then
1682 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1683 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1690 # if libudev is available, we don't need libusb
1691 if test "x$use_libudev" != "xno"; then
1693 AC_MSG_NOTICE($libusb_disabled_udev_found)
1695 if test "$host_vendor" = "apple" ; then
1697 AC_MSG_NOTICE($libusb_disabled)
1699 if echo "$ARCH" | grep -q freebsd ; then
1700 AC_CHECK_LIB([usb],[main],
1701 [use_libusb="yes";USB_LIBS="-lusb"],
1702 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1703 elif test "$use_libusb" = "auto"; then
1704 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1705 elif test "$use_libusb" = "yes"; then
1706 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1708 AC_MSG_NOTICE($libusb_disabled)
1711 if test "x$use_libusb" != "xno"; then
1712 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1713 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1720 if test "x$use_libcec" != "xno"; then
1721 # libcec is dyloaded, so we need to check for its headers and link any depends.
1722 if test "x$use_libcec" != "xno"; then
1723 if test "x$use_libcec" != "xauto"; then
1724 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1726 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1729 if test "x$use_libcec" != "xno"; then
1730 INCLUDES="$INCLUDES $CEC_CFLAGS"
1731 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1732 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1733 AC_MSG_NOTICE($libcec_enabled)
1736 AC_MSG_NOTICE($libcec_disabled)
1741 AC_MSG_NOTICE($libcec_disabled)
1745 if test "$use_libcap" != "no"; then
1746 AC_CHECK_HEADERS([sys/capability.h],,
1747 [if test "$use_libcap" = "yes"; then
1748 AC_MSG_ERROR($libcap_not_found)
1749 elif test "$use_libcap" != "no"; then
1750 AC_MSG_NOTICE($libcap_not_found)
1754 if test "$use_libcap" != "no"; then
1755 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1757 if test "$use_libcap" != "no"; then
1758 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1761 AC_MSG_NOTICE($libcap_disabled)
1764 ### External libraries checks
1766 # Hacks for supporting libav
1769 if test "$use_libav_hacks" = "yes"; then
1770 export PKG_CONFIG_PATH="${srcdir}/lib/xbmc-libav-hacks/pkgconfig/:$PKG_CONFIG_PATH"
1772 AC_DEFINE([USE_LIBAV_HACKS], [1], [Whether to use libav compatibility hacks.])
1776 if test "$use_external_ffmpeg" = "yes"; then
1777 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale libswresample"
1779 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1780 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1781 AC_MSG_ERROR($missing_library))
1783 # in case the headers are in a custom directory
1784 SAVE_CPPFLAGS="$CPPFLAGS"
1785 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1787 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1788 [AC_MSG_ERROR($missing_headers)])
1790 AC_MSG_NOTICE($external_ffmpeg_enabled)
1791 USE_EXTERNAL_FFMPEG=1
1792 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1794 CPPFLAGS="$SAVE_CPPFLAGS"
1796 AC_MSG_NOTICE($external_ffmpeg_disabled)
1797 USE_EXTERNAL_FFMPEG=0
1800 echo "Checking for SWIG installation"
1801 AC_PATH_PROG(SWIG_EXE, swig, "none")
1802 if test "$SWIG_EXE" = "none"; then
1803 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1804 if test "$SWIG20_EXE" != "none" ; then
1805 SWIG_EXE=$SWIG20_EXE
1808 if test "$SWIG_EXE" = "none"; then
1809 AC_MSG_ERROR($missing_program)
1811 final_message="$final_message\n SWIG Available:\tYes"
1813 echo "Checking for a jre installation"
1814 AC_PATH_PROG(JAVA_EXE, java, "none")
1815 if test "$JAVA_EXE" = "none"; then
1816 AC_MSG_ERROR($missing_program)
1818 final_message="$final_message\n JRE Available:\tYes"
1820 echo "Checking for doxygen installation"
1821 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1822 if test "$DOXYGEN_EXE" = "none"; then
1823 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1824 final_message="$final_message\n Doxygen Available:\tNo"
1827 final_message="$final_message\n Doxygen Available:\tYes"
1832 if test "x$use_vdpau" != "xno"; then
1833 if test "$host_vendor" = "apple" ; then
1834 if test "x$use_vdpau" = "xyes"; then
1835 AC_MSG_ERROR([VDPAU not supported on this platform])
1838 AC_MSG_NOTICE($vdpau_disabled)
1843 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1844 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1845 [if test "x$use_vdpau" = "xyes"; then
1847 AC_MSG_ERROR([$vdpau_not_found])
1851 AC_MSG_RESULT($vdpau_not_found)
1856 AC_MSG_NOTICE($vdpau_disabled)
1860 if test "x$use_vaapi" != "xno"; then
1861 if test "$host_vendor" = "apple" ; then
1862 if test "x$use_vaapi" = "xyes"; then
1863 AC_MSG_ERROR([VAAPI not supported on this platform])
1866 AC_MSG_NOTICE($vaapi_disabled)
1870 initial_val=$use_vaapi
1871 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1872 if test "x$use_vaapi" != "xno"; then
1873 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1876 if test "x$use_vaapi" = "xno"; then
1877 if test "x$initial_val" = "xyes"; then
1878 AC_MSG_ERROR($vaapi_not_found)
1880 AC_MSG_RESULT($vaapi_not_found)
1884 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1889 AC_MSG_NOTICE($vaapi_disabled)
1894 if test "x$use_crystalhd" != "xno"; then
1895 SAVE_CFLAGS="$CFLAGS"
1896 CFLAGS="-D__LINUX_USER__"
1897 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1898 [ if test "x$use_crystalhd" = "xyes"; then
1899 AC_MSG_ERROR($crystalhd_not_found)
1902 AC_MSG_RESULT($crystalhd_not_found)
1906 CFLAGS="$SAVE_CFLAGS"
1907 if test "$host_vendor" != "apple"; then
1908 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1910 if test "x$use_crystalhd" != "xno"; then
1911 SAVE_CFLAGS="$CFLAGS"
1912 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1913 # check for new crystalhd lib
1915 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1916 #include <libcrystalhd/bc_dts_defs.h>
1917 PBC_INFO_CRYSTAL bCrystalInfo;])],
1918 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1919 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1920 CFLAGS="$SAVE_CFLAGS"
1924 AC_MSG_NOTICE($crystalhd_disabled)
1929 if test "x$use_vtbdecoder" != "xno"; then
1930 if test "$host_vendor" = "apple" ; then
1931 HAVE_VIDEOTOOLBOXDECODER=1
1932 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1933 AC_MSG_NOTICE($vtbdecoder_enabled)
1935 if test "x$use_vtbdecoder" = "xyes"; then
1936 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1939 AC_MSG_NOTICE($vtbdecoder_disabled)
1943 AC_MSG_NOTICE($vtbdecoder_disabled)
1947 if test "$host_vendor" = "apple" ; then
1950 AC_MSG_NOTICE($openmax_disabled)
1951 elif test "$target_platform" = "target_raspberry_pi"; then
1954 AC_MSG_NOTICE($openmax_disabled)
1956 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1957 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1958 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1959 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1960 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1961 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1962 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1963 AC_MSG_ERROR($openmax_not_found))
1965 AC_MSG_NOTICE($openmax_disabled)
1971 # yajl version check (yajl_version.h was added in yajl 2.0)
1972 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1973 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1976 # additional internal players
1977 case $add_players in
1979 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1983 # additional internal codecs
1984 # remember to convert commas to spaces
1985 for codecs in `echo $add_codecs | sed 's/,/ /g'`; do
1988 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
1989 XB_ADD_CODEC([LIBAMCODEC], [amcodec], [$codecs])
1992 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright], [$codecs])
1998 # platform specific bin utilities
1999 if test "$build_vendor" != "apple" ; then
2000 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
2001 if test "$HAVE_GAWK" = "no" ; then
2002 AC_MSG_ERROR($missing_program)
2006 if test "$use_arch" != "arm" ; then
2007 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
2008 if test "$HAVE_CMAKE" = "no" ; then
2009 AC_MSG_ERROR($missing_program)
2013 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
2014 if test "$HAVE_GPERF" = "no" ; then
2015 AC_MSG_ERROR($missing_program)
2018 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
2019 if test "$HAVE_UNZIP" = "no" ; then
2020 AC_MSG_ERROR($missing_program)
2023 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
2024 if test "$HAVE_ZIP" = "no" ; then
2025 AC_MSG_ERROR($missing_program)
2028 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
2029 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
2030 if test "$HAVE_NASM" = "no" ; then
2031 AC_MSG_ERROR($missing_program)
2035 # Checks for header files.
2039 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
2040 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
2041 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
2042 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
2043 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
2045 # Checks for typedefs, structures, and compiler characteristics.
2061 AC_CHECK_MEMBERS([struct stat.st_rdev])
2070 if test "$cross_compiling" = "yes"; then
2071 final_message="$final_message\n Crosscomp.:\tYes"
2072 if [[ -d "$NATIVE_ROOT" ]]; then
2073 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2074 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2075 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
2076 if test "$host_vendor" != "apple" ; then
2077 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
2079 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
2082 final_message="$final_message\n Crosscomp.:\tNo"
2085 final_message="$final_message\n target ARCH:\t$use_arch"
2086 final_message="$final_message\n target CPU:\t$use_cpu"
2088 if test "$use_gles" = "yes"; then
2089 final_message="$final_message\n OpenGLES:\tYes"
2094 if test "$use_gl" = "yes"; then
2095 final_message="$final_message\n OpenGL:\tYes"
2098 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2099 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2104 if test "$use_alsa" = "yes"; then
2106 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2107 final_message="$final_message\n ALSA:\t\tYes"
2110 final_message="$final_message\n ALSA:\t\tNo"
2113 if test "$use_dbus" = "yes"; then
2114 final_message="$final_message\n DBUS:\t\tYes"
2116 final_message="$final_message\n DBUS:\t\tNo"
2119 if test "x$use_vdpau" != "xno"; then
2120 final_message="$final_message\n VDPAU:\tYes"
2122 final_message="$final_message\n VDPAU:\tNo"
2125 if test "x$use_vaapi" != "xno"; then
2126 final_message="$final_message\n VAAPI:\tYes"
2128 final_message="$final_message\n VAAPI:\tNo"
2131 if test "x$use_crystalhd" != "xno"; then
2132 final_message="$final_message\n CrystalHD:\tYes"
2134 final_message="$final_message\n CrystalHD:\tNo"
2137 if test "x$use_vtbdecoder" != "xno"; then
2138 final_message="$final_message\n VTBDecoder:\tYes"
2140 final_message="$final_message\n VTBDecoder:\tNo"
2143 if test "$use_openmax" != "no"; then
2144 final_message="$final_message\n OpenMax:\tYes"
2146 final_message="$final_message\n OpenMax:\tNo"
2149 if test "$use_joystick" = "yes"; then
2150 final_message="$final_message\n Joystick:\tYes"
2151 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2153 final_message="$final_message\n Joystick:\tNo"
2156 if test "$use_xrandr" = "yes"; then
2157 final_message="$final_message\n XRandR:\tYes"
2160 final_message="$final_message\n XRandR:\tNo"
2164 if test "$use_waveform" = "yes"; then
2165 final_message="$final_message\n Waveform:\tYes"
2167 final_message="$final_message\n Waveform:\tNo"
2170 if test "$use_spectrum" = "yes"; then
2171 final_message="$final_message\n Spectrum:\tYes"
2173 final_message="$final_message\n Spectrum:\tNo"
2176 if test "$use_goom" = "yes"; then
2177 final_message="$final_message\n GOOM:\t\tYes"
2179 final_message="$final_message\n GOOM:\t\tNo"
2182 if test "$use_rsxs" = "yes"; then
2183 final_message="$final_message\n RSXS:\t\tYes"
2185 final_message="$final_message\n RSXS:\t\tNo"
2188 if test "$use_fishbmc" = "yes"; then
2189 final_message="$final_message\n FishBMC:\tYes"
2191 final_message="$final_message\n FishBMC:\tNo"
2194 if test "$use_projectm" = "yes"; then
2195 final_message="$final_message\n ProjectM:\tYes"
2197 final_message="$final_message\n ProjectM:\tNo"
2200 if test "$use_skin_touched" = "yes"; then
2201 final_message="$final_message\n Skin Touched:\tYes"
2203 final_message="$final_message\n Skin Touched:\tNo"
2206 if test "$use_x11" = "yes"; then
2207 final_message="$final_message\n X11:\t\tYes"
2209 final_message="$final_message\n X11:\t\tNo"
2212 if test "$use_wayland" = "yes"; then
2213 final_message="$final_message\n Wayland:\tYes"
2217 final_message="$final_message\n Wayland:\tNo"
2220 if test "$use_libbluray" = "yes"; then
2221 final_message="$final_message\n Bluray:\tYes"
2223 final_message="$final_message\n Bluray:\tNo"
2226 if test "x$use_texturepacker" != "xno"; then
2227 final_message="$final_message\n TexturePacker:Yes"
2230 final_message="$final_message\n TexturePacker:No"
2234 if test "$use_mid" = "yes"; then
2235 final_message="$final_message\n MID Support:\tYes"
2236 SDL_DEFINES="$SDL_DEFINES -DMID"
2238 final_message="$final_message\n MID Support:\tNo"
2243 if test "x$use_ccache" != "xno"; then
2244 AC_PATH_PROG(CCACHE,ccache,none)
2245 if test "$ac_cv_path_CCACHE" = "none"; then
2246 if test "x$use_ccache" = "xyes"; then
2247 AC_MSG_ERROR([ccache not found.]);
2249 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2250 final_message="$final_message\n ccache:\tNo"
2253 CC="$ac_cv_path_CCACHE $CC"
2254 CXX="$ac_cv_path_CCACHE $CXX"
2255 AC_MSG_NOTICE(enabling ccache)
2256 final_message="$final_message\n ccache:\tYes"
2259 final_message="$final_message\n ccache:\tNo"
2262 if test "$use_alsa" = "yes"; then
2263 final_message="$final_message\n ALSA Support:\tYes"
2265 final_message="$final_message\n ALSA Support:\tNo"
2268 if test "x$use_pulse" != "xno"; then
2269 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2270 final_message="$final_message\n PulseAudio:\tYes"
2272 XBMC_STANDALONE_SH_PULSE=/dev/null
2273 final_message="$final_message\n PulseAudio:\tNo"
2276 if test "$use_hal" = "yes"; then
2277 final_message="$final_message\n HAL Support:\tYes"
2279 final_message="$final_message\n HAL Support:\tNo"
2283 if test "$use_dvdcss" = "yes"; then
2284 AC_MSG_NOTICE($dvdcss_enabled)
2285 final_message="$final_message\n DVDCSS:\tYes"
2287 SKIP_CONFIG_DVDCSS=0
2288 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2290 AC_MSG_NOTICE($dvdcss_disabled)
2291 final_message="$final_message\n DVDCSS:\tNo"
2293 SKIP_CONFIG_DVDCSS=1
2294 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2296 if test "$host_vendor" = "apple"; then
2297 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2300 # Google Test Framework
2301 if test "$configure_gtest" = "yes"; then
2302 AC_MSG_NOTICE($gtest_enabled)
2303 final_message="$final_message\n Google Test Framework Configured:\tYes"
2307 AC_MSG_NOTICE($gtest_disabled)
2308 final_message="$final_message\n Google Test Framework Configured:\tNo"
2313 if test "$use_avahi" = "yes"; then
2314 final_message="$final_message\n Avahi:\tYes"
2316 final_message="$final_message\n Avahi:\tNo"
2319 if test "$use_mdnsembedded" != "no"; then
2320 final_message="$final_message\n mDNSEmbedded:\tYes"
2322 final_message="$final_message\n mDNSEmbedded:\tNo"
2325 if test "$use_nonfree" = "yes"; then
2326 final_message="$final_message\n Non-free:\tYes"
2328 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2331 final_message="$final_message\n Non-free:\tNo"
2334 if test "$use_asap" = "yes"; then
2335 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2336 if test "$HAVE_GDC" = "no"; then
2337 AC_MSG_ERROR($missing_program);
2339 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2340 if test "$HAVE_FPC" = "no"; then
2341 AC_MSG_ERROR($missing_program);
2344 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2345 final_message="$final_message\n ASAP Codec:\tYes"
2348 final_message="$final_message\n ASAP Codec:\tNo"
2351 if test "$use_mysql" = "yes"; then
2352 final_message="$final_message\n MySQL:\tYes"
2355 final_message="$final_message\n MySQL:\tNo"
2358 if test "$use_webserver" = "yes"; then
2359 final_message="$final_message\n Webserver:\tYes"
2362 final_message="$final_message\n Webserver:\tNo"
2366 if test "$use_libssh" != "no"; then
2367 final_message="$final_message\n libssh support:\tYes"
2369 final_message="$final_message\n libssh support:\tNo"
2372 if test "$use_librtmp" != "no"; then
2373 final_message="$final_message\n libRTMP support:\tYes"
2375 final_message="$final_message\n libRTMP support:\tNo"
2378 if test "x$use_samba" != "xno"; then
2379 final_message="$final_message\n libsmbclient support:\tYes"
2381 final_message="$final_message\n libsmbclient support:\tNo"
2384 if test "$use_libnfs" != "no"; then
2385 final_message="$final_message\n libnfs client support:Yes"
2387 final_message="$final_message\n libnfs client support:No"
2390 if test "x$use_libafpclient" != "xno"; then
2391 final_message="$final_message\n libafpclient support:\tYes"
2393 final_message="$final_message\n libafpclient support:\tNo"
2396 if test "$use_airplay" != "no"; then
2397 final_message="$final_message\n AirPlay support:\tYes"
2399 final_message="$final_message\n AirPLay support:\tNo"
2402 if test "x$use_airtunes" != "xno"; then
2403 if test "x$USE_LIBSHAIRPLAY" == "x1"; then
2404 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2406 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2409 final_message="$final_message\n AirTunes support:\tNo"
2412 if test "x$use_upnp" != "xno"; then
2413 final_message="$final_message\n UPnP support:\t\tYes"
2415 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2418 final_message="$final_message\n UPnP support:\t\tNo"
2421 if test "$use_optical_drive" = "yes"; then
2422 final_message="$final_message\n Optical drive:\tYes"
2424 final_message="$final_message\n Optical drive:\tNo"
2427 if test "x$use_libudev" != "xno"; then
2428 final_message="$final_message\n libudev support:\tYes"
2430 final_message="$final_message\n libudev support:\tNo"
2433 if test "x$use_libusb" != "xno"; then
2434 final_message="$final_message\n libusb support:\tYes"
2436 final_message="$final_message\n libusb support:\tNo"
2439 if test "x$use_libcec" != "xno"; then
2440 final_message="$final_message\n libcec support:\tYes"
2442 final_message="$final_message\n libcec support:\tNo"
2445 if test "x$use_libmp3lame" != "xno"; then
2446 final_message="$final_message\n libmp3lame support:\tYes"
2448 final_message="$final_message\n libmp3lame support:\tNo"
2451 if test "x$use_libvorbisenc" != "xno"; then
2452 final_message="$final_message\n libvorbisenc support:\tYes"
2454 final_message="$final_message\n libvorbisenc support:\tNo"
2457 if test "x$use_libcap" != "xno"; then
2458 final_message="$final_message\n libcap support:\tYes"
2460 final_message="$final_message\n libcap support:\tNo"
2463 if test "x$add_players" != "xno"; then
2464 final_message="$final_message\n additional players:\tYes, $add_players"
2466 final_message="$final_message\n additional players:\tNo"
2469 if test "x$add_codecs" != "xno"; then
2470 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2472 final_message="$final_message\n additional codecs:\tNo"
2475 ### External libraries messages
2477 if test "$use_external_ffmpeg" = "yes"; then
2478 final_message="$final_message\n External FFmpeg:\tYes"
2480 final_message="$final_message\n External FFmpeg:\tNo"
2483 if test "$host_vendor" = "apple" ; then
2484 # built internal but referenced as external, we link directly to them.
2485 # this MUST be the last thing before OUTPUT_FILES as they do not
2486 # exist until after we build FFMpeg.
2487 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2488 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2489 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2490 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2491 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2492 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2493 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2497 DISABLE_PVR_ADDON_CONFIG=1
2498 if [[ -f "pvr-addons/Makefile.am" ]]; then
2499 final_message="$final_message\n PVR add-ons:\t\tYes"
2501 DISABLE_PVR_ADDON_CONFIG=0
2503 final_message="$final_message\n PVR add-ons:\t\tNo"
2506 OUTPUT_FILES="Makefile \
2508 addons/skin.confluence/media/Makefile \
2510 xbmc/cdrip/Makefile \
2511 xbmc/cores/Makefile \
2512 xbmc/cores/VideoRenderers/Makefile \
2513 xbmc/cores/dvdplayer/Makefile \
2515 lib/libdvd/Makefile \
2516 xbmc/cores/DllLoader/Makefile \
2517 xbmc/cores/DllLoader/exports/Makefile \
2518 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2519 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2520 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2521 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2522 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2523 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2524 xbmc/cores/AudioEngine/Makefile \
2525 xbmc/cores/paplayer/Makefile \
2526 xbmc/cores/omxplayer/Makefile \
2527 lib/timidity/Makefile \
2528 lib/xbadpcm/Makefile \
2530 lib/nosefart/Makefile \
2531 lib/libsidplay2/Makefile \
2532 lib/vgmstream/Makefile \
2533 lib/snesapu/SNES/SNESAPU/Makefile \
2534 lib/stsound/StSoundLibrary/Makefile \
2535 xbmc/cores/playercorefactory/Makefile \
2536 xbmc/music/karaoke/Makefile \
2538 xbmc/guilib/Makefile \
2539 xbmc/input/linux/Makefile \
2540 xbmc/interfaces/Makefile \
2541 xbmc/network/Makefile \
2542 xbmc/network/upnp/Makefile \
2543 lib/libRTV/Makefile \
2544 lib/libexif/Makefile \
2545 lib/libXDAAP/Makefile \
2546 lib/cmyth/Makefile \
2547 lib/libhdhomerun/Makefile \
2548 lib/libsquish/Makefile \
2549 lib/cximage-6.0/Makefile \
2550 lib/libUPnP/Makefile \
2551 xbmc/DllPaths_generated.h \
2552 xbmc/DllPaths_generated_android.h \
2553 xbmc/freebsd/Makefile \
2554 xbmc/linux/Makefile \
2555 xbmc/filesystem/Makefile \
2556 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2557 xbmc/visualizations/XBMCProjectM/Makefile \
2558 xbmc/visualizations/Goom/Makefile \
2559 xbmc/visualizations/OpenGLSpectrum/Makefile \
2560 xbmc/visualizations/fishBMC/Makefile \
2561 xbmc/visualizations/WaveForm/Makefile \
2562 xbmc/windowing/Makefile \
2563 xbmc/windowing/egl/Makefile \
2564 lib/addons/library.xbmc.addon/Makefile \
2565 lib/addons/library.xbmc.codec/Makefile \
2566 lib/addons/library.xbmc.gui/Makefile \
2567 lib/addons/library.xbmc.pvr/Makefile \
2568 xbmc/visualizations/EGLHelpers/Makefile \
2569 tools/Linux/xbmc.sh \
2570 tools/Linux/xbmc-standalone.sh \
2571 tools/TexturePacker/Makefile \
2572 tools/EventClients/Clients/OSXRemote/Makefile \
2573 xbmc/peripherals/bus/Makefile \
2574 xbmc/peripherals/devices/Makefile \
2575 xbmc/android/activity/Makefile \
2576 xbmc/android/loader/Makefile \
2577 xbmc/android/jni/Makefile \
2578 xbmc/utils/Makefile \
2579 xbmc/main/Makefile \
2580 project/cmake/xbmc-config.cmake"
2582 if test "$use_wayland" = "yes"; then
2583 OUTPUT_FILES="$OUTPUT_FILES xbmc/windowing/tests/wayland/Makefile"
2586 if test "$use_skin_touched" = "yes"; then
2587 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2590 if test "$use_codec_libstagefright" = "yes"; then
2591 OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile"
2594 OUTPUT_FILES="$OUTPUT_FILES \
2595 xbmc/interfaces/python/Makefile \
2596 xbmc/interfaces/python/test/Makefile"
2598 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2599 # .dummy.am does nothing.
2600 AC_CONFIG_FILES([.dummy])
2602 AC_CONFIG_FILES([${OUTPUT_FILES}])
2603 OUTPUT_FILES="$OUTPUT_FILES \
2609 AC_SUBST(CXX_FOR_BUILD)
2610 AC_SUBST(CC_FOR_BUILD)
2611 AC_SUBST(CFLAGS_FOR_BUILD)
2612 AC_SUBST(CXXFLAGS_FOR_BUILD)
2613 AC_SUBST(LDFLAGS_FOR_BUILD)
2614 AC_SUBST(SDL_DEFINES)
2615 AC_SUBST(BUILD_DVDCSS)
2616 AC_SUBST(DISABLE_WAVEFORM)
2617 AC_SUBST(DISABLE_SPECTRUM)
2618 AC_SUBST(DISABLE_GOOM)
2619 AC_SUBST(DISABLE_RSXS)
2620 AC_SUBST(DISABLE_FISHBMC)
2621 AC_SUBST(DISABLE_PROJECTM)
2622 AC_SUBST(USE_SKIN_TOUCHED)
2623 AC_SUBST(USE_EXTERNAL_FFMPEG)
2624 AC_SUBST(USE_STATIC_FFMPEG)
2625 AC_SUBST(USE_LIBAV_HACKS)
2626 AC_SUBST(PYTHON_VERSION)
2627 AC_SUBST(OUTPUT_FILES)
2628 AC_SUBST(HAVE_XBMC_NONFREE)
2629 AC_SUBST(USE_ASAP_CODEC)
2630 AC_SUBST(LIBCURL_BASENAME)
2631 AC_SUBST(LIBFLAC_BASENAME)
2632 AC_SUBST(LIBVORBISFILE_BASENAME)
2633 AC_SUBST(LIBMODPLUG_BASENAME)
2634 AC_SUBST(LIBMAD_BASENAME)
2635 AC_SUBST(LIBOGG_BASENAME)
2636 AC_SUBST(LIBVORBISENC_BASENAME)
2637 AC_SUBST(LIBVORBIS_BASENAME)
2638 AC_SUBST(LIBASS_BASENAME)
2639 AC_SUBST(LIBMEPG2_BASENAME)
2640 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2641 AC_SUBST(USE_OPENGL)
2642 AC_SUBST(USE_OPENGLES)
2645 AC_SUBST(USE_CRYSTALHD)
2646 AC_SUBST(USE_LIBSMBCLIENT)
2647 AC_SUBST(USE_LIBNFS)
2648 AC_SUBST(USE_LIBAFPCLIENT)
2649 AC_SUBST(USE_AIRPLAY)
2650 AC_SUBST(USE_OPENMAX)
2652 AC_SUBST(HAVE_LIBPULSE)
2653 AC_SUBST(USE_XRANDR)
2655 AC_SUBST(USE_TEXTUREPACKER)
2656 AC_SUBST(USE_AIRTUNES)
2657 AC_SUBST(USE_LIBUDEV)
2658 AC_SUBST(USE_LIBUSB)
2659 AC_SUBST(USE_LIBCEC)
2661 AC_SUBST(USE_WAYLAND)
2662 AC_SUBST(USE_WEB_SERVER)
2664 AC_SUBST(USE_XKBCOMMON)
2665 AC_SUBST(USE_OMXLIB)
2666 AC_SUBST(USE_ANDROID)
2667 AC_SUBST(GTEST_CONFIGURED)
2668 AC_SUBST(USE_DOXYGEN)
2669 AC_SUBST(USE_PVR_ADDONS)
2670 AC_SUBST(GNUTLS_ALL_LIBS)
2671 AC_SUBST(VORBISENC_ALL_LIBS)
2673 # pushd and popd are not available in other shells besides bash, so implement
2674 # our own pushd/popd functions
2679 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2681 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2684 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2689 if [[ -n "$XB_DIRSTACK" ]]; then
2690 XB_DIRSTACK="${XB_DIRSTACK#* }"
2691 cd "${XB_DIRSTACK%% *}"
2694 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2698 # Function to run the configure scripts in our submodules
2699 # Consists of three paramaters, the path to the submodule, the configure command
2700 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2701 # running the script, anything else if not.
2702 AC_DEFUN([XB_CONFIG_MODULE],[
2703 AC_CONFIG_COMMANDS_POST([
2704 if [[ $3 != "1" ]]; then
2705 if [[ -d $1 ]]; then
2708 if [[ $? -ne 0 ]]; then
2710 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2715 AC_MSG_ERROR([[Submodule $1 does not exist]])
2718 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2723 XB_CONFIG_MODULE([lib/ffmpeg], [
2724 if test "$host_vendor" = "apple" ; then
2725 ffmpg_config="--target-os=$ffmpeg_target_os"
2726 # handle disables first, we do individual enables later
2727 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2728 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2729 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2730 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2731 ffmpg_config="$ffmpg_config --enable-vda --disable-crystalhd"
2732 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2734 # handle conditional enables/disables
2735 if test "$use_debug" = "no"; then
2736 ffmpg_config="$ffmpg_config --disable-debug"
2738 if test "$use_cpu" != "no"; then
2739 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2741 if test "$use_arch" != "no"; then
2742 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2744 if test "$use_arch" = "arm"; then
2745 ffmpg_config="$ffmpg_config --enable-pic"
2746 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2747 if test "$use_neon" = "yes"; then
2748 ffmpg_config="$ffmpg_config --enable-neon"
2750 ffmpg_config="$ffmpg_config --disable-neon"
2753 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2755 if test "$use_ffmpeg_libvorbis" = "yes"; then
2756 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2758 ffmpg_config="$ffmpg_config --disable-libvorbis"
2760 if test "$have_gnutls" = "yes"; then
2761 ffmpg_config="$ffmpg_config --enable-gnutls"
2764 # handle individual enables
2765 ffmpg_config="$ffmpg_config --enable-gpl"
2766 ffmpg_config="$ffmpg_config --enable-postproc"
2767 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2768 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts --enable-muxer=asf --enable-muxer=ipod"
2769 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2"
2770 ffmpg_config="$ffmpg_config --enable-protocol=http"
2771 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2773 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2776 ffmpg_config="$ffmpg_config --cc=clang" ;;
2778 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2781 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2782 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2784 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2786 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2787 # dependency files in the right place, replace it with something that works
2790 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2793 # ffmpeg will use yasm found at ${prefix}/bin during configure
2794 # but then hardcodes 'yasm' in config.mak, fix it.
2795 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2796 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2797 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2802 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2804 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2805 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2806 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2807 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2808 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2809 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2810 --target-os=$ffmpeg_target_os \
2812 --enable-muxer=spdif \
2813 --enable-muxer=adts \
2814 --enable-muxer=asf \
2815 --enable-muxer=ipod \
2816 --disable-encoders \
2817 --enable-encoder=ac3 \
2818 --enable-encoder=aac \
2819 --enable-encoder=wmav2 \
2820 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2821 --disable-decoder=mpeg_xvmc \
2825 --disable-ffserver \
2827 --disable-crystalhd \
2828 `if test "$use_static_ffmpeg" = "yes"; then echo --enable-static --disable-shared; else echo --disable-static --enable-shared; fi` \
2832 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2833 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2834 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2835 --enable-protocol=http \
2836 `if test "$have_gnutls" = "yes"; then echo --enable-gnutls; fi` \
2838 --enable-runtime-cpudetect \
2839 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2840 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2841 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2842 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2843 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2845 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2846 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2848 ], [$USE_EXTERNAL_FFMPEG])
2850 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2854 CFLAGS="$CFLAGS $DROID_DVDLIB_SEEK64" \
2855 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2856 --host=$host_alias \
2857 --build=$build_alias \
2858 --target=$target_alias \
2862 ], [$SKIP_CONFIG_DVDCSS])
2864 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2866 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src $DROID_DVDLIB_SEEK64" \
2867 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2868 --host=$host_alias \
2869 --build=$build_alias \
2870 --target=$target_alias \
2876 mkdir -p `pwd`/../includes/dvdread
2877 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2878 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2881 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2883 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes $DROID_DVDLIB_SEEK64" \
2884 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2885 --with-dvdread-config="`pwd`/../dvdread-config" \
2886 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2887 --host=$host_alias \
2888 --build=$build_alias \
2889 --target=$target_alias \
2895 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2897 rm -f CMakeCache.txt && \
2898 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2899 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2900 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2901 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2902 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2903 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2904 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2905 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2906 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2907 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2908 if test "$host_vendor" = "apple" ; then
2909 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2910 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2911 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2912 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2915 ], [$DISABLE_PROJECTM])
2917 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2920 CXXFLAGS="$CXXFLAGS" \
2921 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2922 --host=$host_alias \
2923 --build=$build_alias \
2924 --target=$target_alias \
2930 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2931 if test "$host_vendor" = "apple"; then
2932 # clang treats inlines different
2935 TEMPCFLAGS="$CFLAGS";;
2937 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";;
2940 TEMPCFLAGS="$CFLAGS";
2945 CFLAGS="$TEMPCFLAGS" \
2946 CXXFLAGS="$CXXFLAGS" \
2947 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2948 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2949 --host=$host_alias \
2950 --build=$build_alias \
2951 --target=$target_alias \
2952 --without-xscreensaver \
2955 --disable-fieldlines \
2959 --disable-hyperspace \
2962 if echo "$ARCH" | grep -q freebsd ; then
2963 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2967 XB_CONFIG_MODULE([lib/cpluff], [
2968 ./configure --disable-nls \
2969 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2970 --host=$host_alias \
2971 --build=$build_alias \
2972 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2973 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2976 XB_CONFIG_MODULE([lib/gtest], [
2981 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2982 --host=$host_alias \
2983 --build=$build_alias \
2984 --target=$target_alias \
2988 ], [$SKIP_CONFIG_GTEST])
2990 XB_CONFIG_MODULE([pvr-addons], [
2992 --prefix="${prefix}" \
2993 --host=$host_alias \
2994 --build=$build_alias \
2995 --target=$target_alias \
2999 CXXFLAGS="$CXXFLAGS"
3000 ], [$DISABLE_PVR_ADDON_CONFIG])
3004 final_message="$final_message\n prefix:\t$prefix\n$dashes"
3005 echo -e "$final_message\n"