2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [12.9.9], [http://trac.xbmc.org])
6 AC_CONFIG_HEADERS([xbmc/config.h])
8 m4_include([m4/ax_prog_cc_for_build.m4])
9 m4_include([m4/ax_prog_cxx_for_build.m4])
10 m4_include([m4/ax_python_devel.m4])
11 m4_include([m4/xbmc_arch.m4])
13 AC_CONFIG_AUX_DIR([build-aux])
14 AM_INIT_AUTOMAKE([foreign])
18 echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
21 # check for enabling additional players
22 AC_DEFUN([XB_ADD_PLAYER],
24 AC_MSG_CHECKING([for $2])
28 AC_DEFINE([HAS_$1], 1, [using $2])
29 AC_MSG_RESULT([enabling $2])
32 AC_MSG_RESULT([$2 is not enabled])
36 # check for enabling additional codecs
37 AC_DEFUN([XB_ADD_CODEC],
39 AC_MSG_CHECKING([for $2])
43 AC_DEFINE([HAS_$1], 1, [using $2])
44 AC_MSG_RESULT([enabling $2])
47 AC_MSG_RESULT([$2 is not enabled])
51 # check for library basenames
52 AC_DEFUN([XB_FIND_SONAME],
54 if echo "$host" | grep -q freebsd ; then
55 AC_MSG_CHECKING([for lib$2 soname])
56 $1_SONAME=[`ldconfig -r | sed -n "s;.* \(/.*lib$2\.so.*\)$;\1;p" | head -n 1`]
57 if test x$$1_SONAME != x ; then
58 $1_SONAME=[`basename $$1_SONAME`]
60 elif [[ "$host_vendor" != "apple" ]]; then
61 AC_MSG_CHECKING([for lib$2 soname])
62 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
63 if [[ -z $$1_FILENAME ]]; then
64 #try gold linker syntax
65 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "lib$2")
67 if [[ ! -z $$1_FILENAME ]]; then
68 $1_SONAME=$($OBJDUMP -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}')
71 AC_MSG_CHECKING([for lib$2 dylib])
72 gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
73 env_lib_path=[`echo $LDFLAGS | sed 's/-L[ ]*//g'`]
74 if test "$cross_compiling" = yes; then
77 host_lib_path="/usr/lib /usr/local/lib"
79 for path in $gcc_lib_path $env_lib_path $host_lib_path; do
80 lib=[`ls -- $path/lib$2.dylib 2>/dev/null`]
81 if test x$lib != x; then
82 # we want the path/name that is embedded in the dylib
83 $1_SONAME=[`otool -L $lib | grep -v lib$2.dylib | grep lib$2 | awk '{V=1; print $V}'`]
84 $1_SONAME=[`basename $$1_SONAME`]
88 if [[ -z "$$1_SONAME" ]]; then
90 if test -z "$3" || test "x${$3}" = "xyes"; then
91 AC_MSG_ERROR([Unable to determine soname of lib$2 library])
93 AC_MSG_WARN([Unable to determine soname of lib$2 library])
95 AC_MSG_WARN([lib$2 support disabled])
98 AC_MSG_RESULT([$$1_SONAME])
103 # Function to push and pop libs and includes for a command
104 AC_DEFUN([XB_PUSH_FLAGS], [
106 SAVE_INCLUDES="$INCLUDES"
111 INCLUDES="$SAVE_INCLUDES"
114 # General message strings
115 configure_debug="ERROR: this is a configure debug statement"
116 missing_library="Could not find a required library. Please see the README for your platform."
117 missing_headers="Could not find some required headers. Please see the README for your platform."
118 missing_program="Could not find a required program. Please see the README for your platform."
119 xrandr_not_found="== Could not find libXRandR. SDL will be used for resolution support. =="
120 xrandr_disabled="== XRandR support disabled. SDL will be used for resolution support. =="
121 waveform_enabled="== WAVEFORM enabled =="
122 waveform_disabled="== WAVEFORM disabled =="
123 spectrum_enabled="== SPECTRUM enabled =="
124 spectrum_disabled="== SPECTRUM disabled =="
125 goom_enabled="== GOOM enabled. =="
126 goom_disabled="== GOOM disabled. =="
127 alsa_disabled="== ALSA support disabled. =="
128 rsxs_enabled="== RSXS enabled. =="
129 rsxs_disabled="== RSXS disabled. =="
130 fishbmc_enabled="== FishBMC enabled. =="
131 fishbmc_disabled="== FishBMC disabled. =="
132 projectm_enabled="== ProjectM enabled. =="
133 projectm_disabled="== ProjectM disabled. =="
134 x11_enabled="== X11 enabled. =="
135 x11_disabled="== X11 disabled. =="
136 pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
137 pulse_disabled="== PulseAudio support manually disabled. =="
138 dvdcss_enabled="== DVDCSS support enabled. =="
139 dvdcss_disabled="== DVDCSS support disabled. =="
140 hal_not_found="== Could not find hal. HAL support disabled. =="
141 halstorage_not_found="== Could not find hal-storage. HAL support disabled. =="
142 hal_disabled="== HAL support disabled. =="
143 avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
144 avahi_disabled="== Avahi support disabled. =="
145 mdnsembedded_not_found="== Could not find mDNSEmbedded. Might prevent zeroconf support. =="
146 mdnsembedded_disabled="== mDNSEmbedded support disabled. =="
147 vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
148 vdpau_disabled="== VDPAU support manually disabled. =="
149 vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
150 vaapi_disabled="== VAAPI support manually disabled. =="
151 crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
152 crystalhd_disabled="== CrystalHD support manually disabled. =="
153 vtbdecoder_enabled="== VTBDecoder support enabled. =="
154 vtbdecoder_disabled="== VTBDecoder support manually disabled. =="
155 openmax_disabled="== OpenMax support manually disabled. =="
156 openmax_not_found="== Could not find libnvomx. OpenMax support disabled. =="
157 ssh_not_found="== Could not find libssh. =="
158 ssh_disabled="== SSH SFTP disabled. =="
159 librtmp_not_found="== Could not find libRTMP. RTMP support disabled. =="
160 librtmp_disabled="== RTMP support disabled. =="
161 libnfs_not_found="== Could not find libnfs. NFS client support disabled. =="
162 libnfs_disabled="== NFS support disabled. =="
163 libafpclient_not_found="== Could not find libafpclient. AFP client support disabled. =="
164 libafpclient_disabled="== AFP support disabled. =="
165 libshairport_not_found="== Could not find libshairport. =="
166 libshairplay_not_found="== Could not find libshairplay. =="
167 samba_disabled="== SAMBA support disabled. =="
168 libplist_not_found="== Could not find libplist. AirPlay support disabled. =="
169 libplist_disabled="== AirPlay support disabled. =="
170 alsa_not_found="== Could not find ALSA. ALSA support disabled. =="
171 dbus_not_found="== Could not find DBUS. DBUS support disabled. =="
172 libcap_disabled="== Capabilities detection support disabled. =="
173 libcap_not_found="== Could not find libcap. Capabilities detection support disabled. =="
174 gtest_enabled="== Google Test Framework will be configured. =="
175 gtest_disabled="== Google Test Framework will not be configured. =="
177 libudev_not_found="== Could not find libudev. Will use polling to check for device changes. =="
178 libudev_disabled="== udev support disabled. Will use polling to check for device changes. =="
179 libusb_not_found="== Could not find libusb. Plug and play USB device support will not be available. =="
180 libusb_disabled="== libusb disabled. Plug and play USB device support will not be available. =="
181 libusb_disabled_udev_found="== libusb disabled. =="
182 libcec_enabled="== libcec enabled. =="
183 libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
185 # External library message strings
186 external_libraries_enabled="== Use of all supported external libraries enabled. =="
187 external_libraries_disabled="== Use of all supported external libraries disabled. =="
188 external_ffmpeg_enabled="== Use of external ffmpeg enabled. =="
189 external_ffmpeg_disabled="== Use of external ffmpeg disabled. =="
190 ffmpeg_vdpau_not_supported="== External ffmpeg doesn't support VDPAU. VDPAU support disabled. =="
191 dashes="------------------------"
192 final_message="\n XBMC Configuration:"
193 final_message="\n$dashes$final_message\n$dashes"
195 AC_ARG_ENABLE([shared-lib],
196 [AS_HELP_STRING([--enable-shared-lib],
197 [build libxbmc. helpful for tests (default is no)])],
198 [build_shared_lib=$enableval],
199 [build_shared_lib=no])
201 AC_ARG_ENABLE([debug],
202 [AS_HELP_STRING([--enable-debug],
203 [enable debugging information (default is yes)])],
204 [use_debug=$enableval],
208 [AS_HELP_STRING([--with-arch],
209 [build with given arch passing to internal ffmpeg (default is no, needed for crosscompiling)])],
213 AC_ARG_WITH([platform],
214 [AS_HELP_STRING([--with-platform],
215 [use a pre-configured config for common arm boards])],
216 [use_platform=$withval],
220 [AS_HELP_STRING([--with-cpu],
221 [build with given cpu passing to ffmpeg (default is no)])],
225 AC_ARG_ENABLE([neon],
226 [AS_HELP_STRING([--enable-neon],
227 [enable neon passing to ffmpeg (default is no)])],
228 [use_neon=$enableval],
231 AC_ARG_ENABLE([optimizations],
232 [AS_HELP_STRING([--enable-optimizations],
233 [enable optimization (default is yes)])],
234 [use_optimizations=$enableval],
235 [use_optimizations=yes])
238 [AS_HELP_STRING([--enable-gl],
239 [enable OpenGL rendering (default is yes)])],
243 AC_ARG_ENABLE([gles],
244 [AS_HELP_STRING([--enable-gles],
245 [enable OpenGLES rendering (default is no)])],
246 [use_gles=$enableval],
250 [AS_HELP_STRING([--enable-sdl],
251 [enable SDL (default is auto)])],
252 [use_sdl=$enableval],
255 AC_ARG_ENABLE([vdpau],
256 [AS_HELP_STRING([--enable-vdpau],
257 [enable VDPAU decoding (default is auto)])],
258 [use_vdpau=$enableval],
261 AC_ARG_ENABLE([vaapi],
262 [AS_HELP_STRING([--enable-vaapi],
263 [enable VAAPI decoding (default is auto)])],
264 [use_vaapi=$enableval],
267 AC_ARG_ENABLE([crystalhd],
268 [AS_HELP_STRING([--enable-crystalhd],
269 [enable CrystalHD decoding (default is auto)])],
270 [use_crystalhd=$enableval],
271 [use_crystalhd=auto])
273 AC_ARG_ENABLE([vtbdecoder],
274 [AS_HELP_STRING([--enable-vtbdecoder],
275 [enable VTBDecoder decoding (default is auto)])],
276 [use_vtbdecoder=$enableval],
277 [use_vtbdecoder=auto])
279 AC_ARG_ENABLE([openmax],
280 [AS_HELP_STRING([--enable-openmax],
281 [enable OpenMax decoding (default is auto, requires OpenGLES)])],
282 [use_openmax=$enableval],
285 AC_ARG_ENABLE([tegra],
286 [AS_HELP_STRING([--enable-tegra],
287 [enable Tegra2 arm (default is no)])],
288 [use_tegra=$enableval],
291 AC_ARG_ENABLE([profiling],
292 [AS_HELP_STRING([--enable-profiling],
293 [enable gprof profiling (default is no)])],
294 [use_profiling=$enableval],
297 AC_ARG_ENABLE([joystick],
298 [AS_HELP_STRING([--enable-joystick],
299 [enable SDL joystick support (default is yes)])],
300 [use_joystick=$enableval],
303 AC_ARG_ENABLE([xrandr],
304 [AS_HELP_STRING([--enable-xrandr],
305 [enable XRandR support (default is yes)])],
306 [use_xrandr=$enableval],
309 AC_ARG_ENABLE([waveform],
310 [AS_HELP_STRING([--enable-waveform],
311 [enable Waveform visualisation (default is yes)])],
312 [use_waveform=$enableval],
315 AC_ARG_ENABLE([spectrum],
316 [AS_HELP_STRING([--enable-spectrum],
317 [enable Spectrum visualisation (default is yes)])],
318 [use_spectrum=$enableval],
321 AC_ARG_ENABLE([goom],
322 [AS_HELP_STRING([--enable-goom],
323 [enable GOOM visualisation (default is no)])],
324 [use_goom=$enableval],
327 AC_ARG_ENABLE([rsxs],
328 [AS_HELP_STRING([--enable-rsxs],
329 [enable really slick X screensavers (default is yes)])],
330 [use_rsxs=$enableval],
333 AC_ARG_ENABLE([fishbmc],
334 [AS_HELP_STRING([--enable-fishbmc],
335 [enable FishBMC visualisation (default is yes)])],
336 [use_fishbmc=$enableval],
339 AC_ARG_ENABLE([projectm],
340 [AS_HELP_STRING([--enable-projectm],
341 [enable ProjectM visualisation (default is yes)])],
342 [use_projectm=$enableval],
346 [AS_HELP_STRING([--enable-x11],
347 [enable x11 (default is yes) 'Linux Only'])],
348 [use_x11=$enableval],
351 AC_ARG_ENABLE([ccache],
352 [AS_HELP_STRING([--enable-ccache],
353 [enable building with ccache feature (default is auto)])],
354 [use_ccache=$enableval],
357 AC_ARG_ENABLE([alsa],
358 [AS_HELP_STRING([--disable-alsa],
359 [disable ALSA support (only for linux/freebsd)])],
360 [use_alsa=$enableval],
363 AC_ARG_ENABLE([pulse],
364 [AS_HELP_STRING([--enable-pulse],
365 [enable PulseAudio support (default is no)])],
366 [use_pulse=$enableval],
370 [AS_HELP_STRING([--disable-ssh],
371 [disable SSH SFTP support (default is enabled)])],
372 [use_ssh=$enableval],
375 AC_ARG_ENABLE([rtmp],
376 [AS_HELP_STRING([--enable-rtmp],
377 [enable RTMP support via librtmp (default is auto)])],
378 [use_librtmp=$enableval],
381 AC_ARG_ENABLE([samba],
382 [AS_HELP_STRING([--disable-samba],
383 [disable SAMBA support (default is enabled)])],
384 [use_samba=$enableval],
388 [AS_HELP_STRING([--enable-nfs],
389 [enable NFS support via libnfs (default is auto)])],
390 [use_libnfs=$enableval],
393 AC_ARG_ENABLE([afpclient],
394 [AS_HELP_STRING([--enable-afpclient],
395 [enable AFP support via libafpclient (default is auto)])],
396 [use_libafpclient=$enableval],
397 [use_libafpclient=auto])
399 AC_ARG_ENABLE([airplay],
400 [AS_HELP_STRING([--enable-airplay],
401 [enable AirPlay support(default is auto)])],
402 [use_airplay=$enableval],
405 AC_ARG_ENABLE([airtunes],
406 [AS_HELP_STRING([--enable-airtunes],
407 [enable AirTunes support(default is auto)])],
408 [use_airtunes=$enableval],
411 AC_ARG_ENABLE([upnp],
412 [AS_HELP_STRING([--disable-upnp],
413 [disable UPnP support (default is enabled)])],
414 [use_upnp=$enableval],
417 AC_ARG_ENABLE([ffmpeg_libvorbis],
418 [AS_HELP_STRING([--enable-ffmpeg-libvorbis],
419 [enable FFmpeg vorbis encoding (default is no)])],
420 [use_ffmpeg_libvorbis=$enableval],
421 [use_ffmpeg_libvorbis=no])
423 AC_ARG_ENABLE([dvdcss],
424 [AS_HELP_STRING([--enable-dvdcss],
425 [enable DVDCSS support (default is yes)])],
426 [use_dvdcss=$enableval],
430 [AS_HELP_STRING([--enable-mid],
431 [enable MID support (default is no)])],
432 [use_mid=$enableval],
436 [AS_HELP_STRING([--disable-hal],
437 [disable HAL support (default is enabled if hal and hal-storage is found)])],
438 [use_hal=$enableval],
441 AC_ARG_ENABLE([avahi],
442 [AS_HELP_STRING([--disable-avahi],
443 [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
444 [use_avahi=$enableval],
447 AC_ARG_ENABLE([mdnsembedded],
448 [AS_HELP_STRING([--disable-mdnsembedded],
449 [disable mDNSEmbedded support (default is auto)])],
450 [use_mdnsembedded=$enableval],
451 [use_mdnsembedded=auto])
453 AC_ARG_ENABLE([non-free],
454 [AS_HELP_STRING([--disable-non-free],
455 [disable componentents with non-compliant licenses])],
456 [use_nonfree=$enableval],
459 AC_ARG_ENABLE([asap-codec],
460 [AS_HELP_STRING([--enable-asap-codec],
461 [enable ASAP ADPCM support])],
462 [use_asap=$enableval],
465 AC_ARG_ENABLE([mysql],
466 [AS_HELP_STRING([--disable-mysql],
468 [use_mysql=$enableval],
471 AC_ARG_ENABLE([webserver],
472 [AS_HELP_STRING([--disable-webserver],
473 [disable webserver])],
474 [use_webserver=$enableval],
477 AC_ARG_ENABLE([optical-drive],
478 [AS_HELP_STRING([--disable-optical-drive],
479 [disable optical drive])],
480 [use_optical_drive=$enableval],
481 [use_optical_drive=yes])
483 AC_ARG_ENABLE([libbluray],
484 [AS_HELP_STRING([--enable-libbluray],
485 [enable libbluray support])],
486 [use_libbluray=$enableval],
487 [use_libbluray=auto])
489 AC_ARG_ENABLE([texturepacker],
490 [AS_HELP_STRING([--enable-texturepacker],
491 [enable texturepacker support (default is yes)])],
492 [use_texturepacker=$enableval],
493 [use_texturepacker=auto])
495 AC_ARG_WITH([lirc-device],
496 [AS_HELP_STRING([--with-lirc-device=file],
497 [specify the default LIRC device (default is /dev/lircd)])],
498 [lirc_device=$withval],
499 [lirc_device=/dev/lircd])
500 AC_DEFINE_UNQUOTED([LIRC_DEVICE], ["$lirc_device"], [Default LIRC device])
502 AC_ARG_ENABLE([udev],
503 [AS_HELP_STRING([--enable-udev],
504 [enable udev support (default is auto)])],
505 [use_libudev=$enableval],
508 AC_ARG_ENABLE([libusb],
509 [AS_HELP_STRING([--enable-libusb],
510 [enable libusb support (default is auto)])],
511 [use_libusb=$enableval],
514 AC_ARG_ENABLE([libcec],
515 [AS_HELP_STRING([--enable-libcec],
516 [enable libcec support (default is auto)])],
517 [use_libcec=$enableval],
520 AC_ARG_ENABLE([libmp3lame],
521 [AS_HELP_STRING([--enable-libmp3lame],
522 [enable lame mp3 encoder support (default is auto)])],
523 [use_libmp3lame=$enableval],
524 [use_libmp3lame=auto])
526 AC_ARG_ENABLE([libvorbisenc],
527 [AS_HELP_STRING([--enable-libvorbisenc],
528 [enable vorbis encoder support (default is auto)])],
529 [use_libvorbisenc=$enableval],
530 [use_libvorbisenc=auto])
532 AC_ARG_ENABLE([libcap],
533 [AS_HELP_STRING([--enable-libcap],
534 [enable libcap support (default is auto)])],
535 [use_libcap=$enableval],
538 AC_ARG_ENABLE([player],
539 [AS_HELP_STRING([--enable-player],
540 [enable additional players from a list of comma separated names, (default is none, choices are amlplayer, omxplayer)])],
541 [add_players=$enableval],
544 AC_ARG_ENABLE([gtest],
545 [AS_HELP_STRING([--enable-gtest],
546 [configure Google Test Framework (default is no)])],
547 [configure_gtest=$enableval],
548 [configure_gtest=no])
550 AC_ARG_ENABLE([codec],
551 [AS_HELP_STRING([--enable-codec],
552 [enable additional codecs from a list of comma separated names, (default is none, choices are amcodec, libstagefright)])],
553 [add_codecs=$enableval],
556 ### External libraries options
557 AC_ARG_ENABLE([external-libraries],
558 [AS_HELP_STRING([--enable-external-libraries],
559 [enable use of all supported external libraries (default is no) 'Linux only'])],
560 [use_external_libraries=$enableval],
561 [use_external_libraries=no])
563 AC_ARG_ENABLE([external-ffmpeg],
564 [AS_HELP_STRING([--enable-external-ffmpeg],
565 [enable use of external ffmpeg libraries (default is no) 'Linux only'])],
566 [use_external_ffmpeg=$enableval],
567 [use_external_ffmpeg=$use_external_libraries])
569 AC_ARG_ENABLE([libav-compat],
570 [AS_HELP_STRING([--enable-libav-compat],
571 [build a wrapper around libav to provide the functions needed by XBMC. This is
572 *not* supported by XBMC developers and is provided only for convenience. (default is no) 'Linux only'])],
573 [use_libav_hacks=$enableval],
574 [use_libav_hacks=no])
576 ### End of external library options
578 if test "x$host_vendor" != "xapple"; then
579 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
580 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
583 # Checks for programs.
584 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
587 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
588 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
590 AX_PROG_CXX_FOR_BUILD
591 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
597 OBJDUMP="${OBJDUMP:-objdump}"
599 # ffmpeg needs the output of uname -s (e.x. linux, darwin) for the target_os
600 # there is no autoconf variable which will give
601 # the correct output format when doing cross compilation
602 # so we have to use our own var here
603 # defaults to the build side target_os
604 # and should be overridden for cross below (see android)
605 ffmpeg_target_os=$(tolower $(uname -s))
607 # host detection and setup
609 i*86*-linux-android*)
610 target_platform=target_android
614 ffmpeg_target_os=linux
624 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
631 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
641 ARCH="x86_64-freebsd"
657 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
658 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
659 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
660 PYTHON_NOVERSIONCHECK="no-check"
667 powerpc-apple-darwin*)
674 powerpc-*-linux-gnu*)
677 powerpc64-*-linux-gnu*)
678 ARCH="powerpc64-linux"
683 ffmpeg_target_os=linux
690 arm*-*linux-android*)
691 target_platform=target_android
695 ffmpeg_target_os=linux
705 AC_MSG_ERROR(unsupported host ($host))
709 check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
710 if test "x$check_sdl_arch" = "xi386" ; then
711 DARWIN_NATIVE_ARCH=-m32
712 elif test "x$check_sdl_arch" = "xx86_64" ; then
713 DARWIN_NATIVE_ARCH=-m64
715 AC_SUBST([DARWIN_NATIVE_ARCH])
717 if test "$target_platform" = "target_android" ; then
719 webserver_checkdepends=yes
720 CFLAGS="$CFLAGS -Wno-psabi"
721 CXXFLAGS="$CXXFLAGS -Wno-psabi"
722 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
725 case $use_platform in
727 target_platform=target_raspberry_pi
731 use_hardcoded_tables="yes"
734 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
735 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
738 ffmpeg_target_os=linux
742 XBMC_SETUP_ARCH_DEFINES()
745 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
746 if test "$GIT_REV" = ""; then
747 if test -f VERSION ; then
748 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
749 elif test "$HAVE_GIT" = "yes"; then
750 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
755 final_message="$final_message\n git Rev.:\t${GIT_REV}"
757 if test "$host_vendor" = "apple"; then
758 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
760 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
763 if test "$build_shared_lib" = "yes"; then
764 final_message="$final_message\n Shared lib\tYes"
765 AC_SUBST(USE_LIBXBMC,1)
769 # platform debug flags
770 if test "$use_debug" = "yes"; then
771 final_message="$final_message\n Debugging:\tYes"
772 if test "$use_profiling" = "yes"; then
773 final_message="$final_message\n Profiling:\tYes"
774 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
776 final_message="$final_message\n Profiling:\tNo"
777 DEBUG_FLAGS="-g -D_DEBUG -Wall"
780 final_message="$final_message\n Debugging:\tNo"
781 if test "$use_profiling" = "yes"; then
782 final_message="$final_message\n Profiling:\tYes"
783 DEBUG_FLAGS="-pg -DNDEBUG=1"
785 final_message="$final_message\n Profiling:\tNo"
786 DEBUG_FLAGS="-DNDEBUG=1"
789 CFLAGS="$CFLAGS $DEBUG_FLAGS"
790 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
793 if test "$use_optimizations" = "yes"; then
794 final_message="$final_message\n Optimization:\tYes"
795 if test "$target_platform" = "target_raspberry_pi"; then
799 CXXFLAGS="-O2 $CXXFLAGS"
803 final_message="$final_message\n Optimization:\tNo"
807 # platform specific flags
808 if echo "$ARCH" | grep -q "freebsd" ; then
809 LOCALBASE="${LOCALBASE:-/usr/local}"
810 CFLAGS="$CFLAGS -I$LOCALBASE/include"
811 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
812 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
813 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
814 FFMPEG_EXTRACFLAGS="-I$LOCALBASE/include"
816 if test "$host_vendor" = "apple" ; then
817 # standard xbmc paths
818 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
819 if test "$use_arch" != "arm"; then
820 LIBS="$LIBS -framework ApplicationServices"
821 LIBS="$LIBS -framework AudioUnit"
822 LIBS="$LIBS -framework AudioToolbox"
823 LIBS="$LIBS -framework Cocoa"
824 LIBS="$LIBS -framework CoreAudio"
825 LIBS="$LIBS -framework CoreVideo"
826 LIBS="$LIBS -framework CoreServices"
827 LIBS="$LIBS -framework CoreFoundation"
828 LIBS="$LIBS -framework DiskArbitration"
829 LIBS="$LIBS -framework IOKit"
830 LIBS="$LIBS -framework IOSurface"
831 LIBS="$LIBS -framework QuartzCore"
832 LIBS="$LIBS -framework SystemConfiguration"
834 USE_EXTERNAL_FFMPEG=1
835 elif test "$target_platform" = "target_raspberry_pi"; then
838 elif test "$use_arch" = "arm"; then
839 CFLAGS="$CFLAGS -mno-apcs-stack-check"
840 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
841 FFMPEG_EXTRACFLAGS=""
842 if test "$use_tegra" = "yes"; then
843 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
844 SAVE_CFLAGS="$CFLAGS"
845 CFLAGS="-mfpu=vfpv3-d16"
847 [AC_LANG_SOURCE([int foo;])],
848 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
849 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
850 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
852 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
853 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
856 if test "$use_neon" = "yes"; then
857 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
858 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
859 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
864 # Checks for library functions.
867 AC_FUNC_CLOSEDIR_VOID
868 AC_FUNC_ERROR_AT_LINE
870 AC_PROG_GCC_TRADITIONAL
872 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
876 # Boxee is apparently having compile problems
877 # if HAVE_REALLOC is defined. Sort this later.
879 AC_FUNC_SELECT_ARGTYPES
880 AC_FUNC_SETVBUF_REVERSED
888 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])
890 # Check for various sizes
891 AC_CHECK_SIZEOF([int])
892 AC_CHECK_SIZEOF([size_t])
894 # Check for intrinsics
895 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
896 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
897 [have_builtin_sync_add_and_fetch=yes],
898 [have_builtin_sync_add_and_fetch=no])
899 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
900 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
901 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
902 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
905 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
906 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
907 [have_builtin_sync_sub_and_fetch=yes],
908 [have_builtin_sync_sub_and_fetch=no])
909 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
910 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
911 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
912 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
915 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
916 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
917 [have_builtin_sync_val_compare_and_swap=yes],
918 [have_builtin_sync_val_compare_and_swap=no])
919 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
920 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
921 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
922 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
925 # Check for u16string/u32string declarations
927 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
928 AC_CHECK_TYPES([char16_t, char32_t])
929 AC_CHECK_SIZEOF([wchar_t])
932 # Add top source directory for all builds so we can use config.h
933 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
935 # Check inotify availability
936 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
938 # Checks for boost headers using CXX instead of CC
940 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
944 if test -z "$PYTHON_NOVERSIONCHECK"; then
945 AX_PYTHON_DEVEL([>= 2.4])
946 PYTHON_VERSION=$ac_python_version
949 if test -z "$PYTHON_VERSION"; then
950 AC_MSG_ERROR([Can't find a Python version.])
952 LIBS="$LIBS $PYTHON_LDFLAGS"
953 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
956 # Checks for platforms libraries.
957 if test "$use_gles" = "yes"; then
959 # GLES overwrites GL if both set to yes.
960 if test "$host_vendor" = "apple" ; then
961 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
962 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
963 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
965 if test "$target_platform" = "target_raspberry_pi"; then
966 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
967 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
968 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
969 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
971 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
972 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
976 if test "$use_gl" = "yes"; then
977 if test "$host_vendor" = "apple" ; then
978 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
979 LIBS="$LIBS -framework OpenGL"
980 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
981 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
982 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
983 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
984 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
986 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
987 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
988 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
991 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
992 AC_CHECK_LIB([SDL_gfx],[main])
996 # platform common libraries
997 if test "$use_mysql" = "yes"; then
998 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
999 if test "x$MYSQL_CONFIG" != "xno"; then
1000 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
1001 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
1002 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
1003 LIBS="$LIBS $MYSQL_LIBS"
1004 AC_SUBST(MYSQL_LIBS)
1006 AC_MSG_ERROR($missing_program)
1009 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1010 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1011 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1012 AC_INCLUDES_DEFAULT()
1013 [#include <mpeg2dec/mpeg2.h>])
1014 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
1015 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1016 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
1017 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1018 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1019 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1020 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1021 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1023 # we need to check for the header because if it exists we set the openssl
1024 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1025 # in MT manner correctly.
1026 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1027 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1028 if test "$gcrypt_headers_available" = "yes"; then
1029 # if we have the headers then we must have the lib
1030 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1031 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1032 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1035 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1036 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1037 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1038 if echo "$ARCH" | grep -q freebsd; then
1039 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1040 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1041 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1042 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1044 if test "$target_platform" != "target_android" ; then
1045 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1046 AC_CHECK_LIB([pthread], [pthread_setname_np],
1047 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1048 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1051 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1052 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1053 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1054 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1055 if test "$use_mysql" = "yes"; then
1056 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1058 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1059 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1060 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1061 if test "$target_platform" = "target_android" ; then
1062 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1063 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1064 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1066 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1067 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1068 AC_MSG_ERROR($missing_library))
1069 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1070 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1071 AC_MSG_ERROR($missing_library))
1072 PKG_CHECK_MODULES([PNG], [libpng],
1073 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1074 AC_MSG_ERROR($missing_library))
1075 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1076 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1077 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1078 AC_MSG_ERROR($missing_library))
1079 PKG_CHECK_MODULES([PCRE], [libpcre],
1080 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1081 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1082 AC_MSG_ERROR($missing_library))
1083 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1084 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1085 AC_MSG_ERROR($missing_library))
1086 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1087 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1088 AC_MSG_ERROR($missing_library))
1089 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1090 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1091 AC_MSG_ERROR($missing_library))
1093 if test "$use_optical_drive" = "yes"; then
1094 PKG_CHECK_MODULES([CDIO], [libcdio],
1095 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1096 AC_MSG_ERROR($missing_library))
1099 if test "$target_platform" = "target_android" ; then
1100 PKG_CHECK_MODULES([ZIP], [libzip],
1101 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1102 AC_MSG_ERROR($missing_library))
1105 # check for libbluray
1106 AS_CASE([x$use_libbluray],
1108 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1111 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1114 AS_CASE([x$use_libbluray],
1116 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1117 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1118 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1119 AC_SUBST([HAVE_LIBBLURAY], 1)
1120 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1121 AC_CHECK_DECL([BD_EVENT_IDLE],
1122 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1123 [[#include <libbluray/bluray.h>]]))
1125 AC_SUBST([HAVE_LIBBLURAY], 0)
1129 #Check to see if libs are needed for functions that are often built-in to libc
1130 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1131 AC_SEARCH_LIBS([dlopen],dl)
1132 AC_SEARCH_LIBS([clock_gettime],rt)
1133 AC_SEARCH_LIBS([dn_expand], resolv)
1134 AC_SEARCH_LIBS([_dn_expand], resolv)
1135 AC_SEARCH_LIBS([__dn_expand],resolv)
1137 # platform dependent libraries
1138 if test "$host_vendor" = "apple" ; then
1139 if test "$use_arch" != "arm"; then
1140 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1141 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1144 if test "$target_platform" != "target_android" ; then
1145 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1147 if test "x$use_alsa" != "xno"; then
1148 PKG_CHECK_MODULES([ALSA], [alsa],
1149 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1150 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1152 PKG_CHECK_MODULES([DBUS], [dbus-1],
1153 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1154 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1155 AC_MSG_NOTICE($missing_library); use_dbus=no)
1156 if test "x$use_sdl" != "xno"; then
1157 PKG_CHECK_MODULES([SDL], [sdl],
1158 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1159 AC_MSG_ERROR($missing_library))
1160 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1161 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1165 XB_FIND_SONAME([MAD], [mad])
1166 XB_FIND_SONAME([OGG], [ogg])
1167 XB_FIND_SONAME([CURL], [curl])
1168 XB_FIND_SONAME([FLAC], [FLAC])
1169 XB_FIND_SONAME([VORBIS], [vorbis])
1170 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1171 XB_FIND_SONAME([MODPLUG], [modplug])
1172 XB_FIND_SONAME([ASS], [ass])
1173 XB_FIND_SONAME([MPEG2], [mpeg2])
1176 if test "x$use_libmp3lame" != "xno"; then
1177 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1178 if test "x$use_libmp3lame" != "xno"; then
1179 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1182 AS_CASE([x$use_libmp3lame],
1184 AC_SUBST([HAVE_LIBMP3LAME], 0)
1187 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1188 AC_SUBST([HAVE_LIBMP3LAME], 1)
1191 if test "x$use_libvorbisenc" != "xno"; then
1192 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1193 if test "x$use_libvorbisenc" != "xno"; then
1194 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1197 AS_CASE([x$use_libvorbisenc],
1199 AC_SUBST([HAVE_LIBVORBISENC], 0)
1201 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1202 AC_SUBST([HAVE_LIBVORBISENC], 1)
1207 if test "$use_webserver" = "yes"; then
1208 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1212 if test "$use_optical_drive" = "yes"; then
1213 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1217 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1218 PKG_CHECK_MODULES([ALSA], [alsa],
1219 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1220 AC_MSG_ERROR($missing_library))
1221 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1224 AC_MSG_RESULT($alsa_disabled)
1228 if test "x$use_pulse" != "xno"; then
1229 if test "$host_vendor" = "apple" ; then
1230 if test "x$use_pulse" = "xyes"; then
1231 AC_MSG_ERROR($pulse_disabled)
1234 AC_MSG_RESULT($pulse_disabled)
1238 AC_CHECK_LIB([pulse],[main],,pulse_found="no")
1239 AC_CHECK_LIB([pulse-simple],[main],,pulse_found="no")
1241 if test "x$pulse_found" != "xno"; then
1243 elif test "x$use_pulse" = "xyes"; then
1244 AC_MSG_ERROR($pulse_not_found)
1248 AC_MSG_RESULT($pulse_not_found)
1252 AC_MSG_RESULT($pulse_disabled)
1257 if test "$host_vendor" = "apple" ; then
1259 AC_MSG_RESULT($hal_disabled)
1261 if test "$use_hal" = "yes"; then
1262 PKG_CHECK_MODULES([HAL], [hal],
1263 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1264 use_hal=no;AC_MSG_RESULT($hal_not_found))
1265 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1266 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1267 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1269 AC_MSG_RESULT($hal_disabled)
1271 if test "$use_hal" = "yes"; then
1272 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1277 if test "$host_vendor" = "apple" ; then
1279 AC_MSG_RESULT($avahi_disabled)
1281 if test "$use_avahi" = "yes"; then
1282 AC_CHECK_LIB([avahi-common], [main],,
1283 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1284 if test "$use_avahi" = "yes"; then
1285 #either both libs or none
1286 AC_CHECK_LIB([avahi-client], [main],,
1287 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1290 AC_MSG_RESULT($avahi_disabled)
1295 if test "$use_mdnsembedded" != "no"; then
1296 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1297 [if test "$use_mdnsembedded" = "yes"; then
1298 AC_MSG_ERROR($mdnsembedded_not_found)
1300 elif test "$use_mdnsembedded" != "no"; then
1301 AC_MSG_NOTICE($mdnsembedded_not_found)
1302 use_mdnsembedded="no"
1306 if test $use_mdnsembedded != "no"; then
1310 AC_MSG_RESULT($mdnsembedded_disabled)
1313 AC_SUBST(USE_MDNSEMBEDDED)
1316 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1317 AC_MSG_NOTICE($x11_enabled)
1318 PKG_CHECK_MODULES([X11], [x11],
1319 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1320 AC_MSG_ERROR($missing_library))
1321 PKG_CHECK_MODULES([XEXT], [xext],
1322 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1323 AC_MSG_ERROR($missing_library))
1324 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1326 AC_MSG_RESULT($x11_disabled)
1330 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1332 AC_MSG_RESULT($xrandr_disabled)
1334 if test "$use_xrandr" = "yes" ; then
1335 AC_CHECK_LIB([Xrandr], [main],,
1336 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1338 AC_MSG_RESULT($xrandr_disabled)
1343 if test "$use_waveform" = "yes"; then
1344 AC_MSG_NOTICE($waveform_enabled)
1347 AC_MSG_NOTICE($waveform_disabled)
1352 if test "$use_spectrum" = "yes"; then
1353 AC_MSG_NOTICE($spectrum_enabled)
1356 AC_MSG_NOTICE($spectrum_disabled)
1361 if test "$host_vendor" = "apple" ; then
1362 AC_MSG_NOTICE($goom_disabled)
1365 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1366 AC_MSG_NOTICE($goom_enabled)
1369 AC_MSG_NOTICE($goom_disabled)
1375 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1376 AC_MSG_NOTICE($rsxs_disabled)
1379 AC_MSG_NOTICE($rsxs_enabled)
1381 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1382 if test "$host_vendor" != "apple" ; then
1383 PKG_CHECK_MODULES([XT], [xt],
1384 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1385 AC_MSG_ERROR($missing_library))
1386 PKG_CHECK_MODULES([XMU], [xmu],
1387 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1388 AC_MSG_ERROR($missing_library))
1393 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1394 AC_MSG_NOTICE($fishbmc_disabled)
1398 AC_MSG_NOTICE($fishbmc_enabled)
1403 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1404 AC_MSG_NOTICE($projectm_disabled)
1408 AC_MSG_NOTICE($projectm_enabled)
1414 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1415 use_skin_touched=yes
1417 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1423 if test "x$use_ssh" = "xno"; then
1424 AC_MSG_NOTICE($ssh_disabled)
1427 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1428 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1432 if test "$use_librtmp" != "no"; then
1433 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1434 [if test "$use_librtmp" = "yes"; then
1435 AC_MSG_ERROR($librtmp_not_found)
1436 elif test "$use_librtmp" != "no"; then
1437 AC_MSG_NOTICE($librtmp_not_found)
1441 if test "$use_librtmp" != "no"; then
1442 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1444 if test "$use_librtmp" != "no"; then
1445 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1448 AC_MSG_NOTICE($librtmp_disabled)
1452 if test "x$use_samba" != "xno"; then
1453 AC_CHECK_LIB([smbclient], [main],,
1454 use_samba=no;AC_MSG_ERROR($missing_library))
1457 AC_MSG_RESULT($samba_disabled)
1461 if test "x$use_samba" != "xno"; then
1462 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1467 if test "$use_libnfs" != "no"; then
1468 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1469 [if test "$use_libnfs" = "yes"; then
1470 AC_MSG_ERROR($libnfs_not_found)
1472 elif test "$use_libnfs" != "no"; then
1473 AC_MSG_NOTICE($libnfs_not_found)
1478 if test "$use_libnfs" != "no"; then
1479 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1481 if test "$use_libnfs" != "no"; then
1482 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1487 AC_MSG_NOTICE($libnfs_disabled)
1492 if test "x$use_libafpclient" != "xno"; then
1493 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1494 [if test "x$use_libafpclient" = "xyes"; then
1495 AC_MSG_ERROR($libafpclient_not_found)
1496 elif test "x$use_libafpclient" != "xno"; then
1497 AC_MSG_NOTICE($libafpclient_not_found)
1498 use_libafpclient="no"
1501 if test "x$use_libafpclient" != "xno"; then
1502 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1503 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1507 AC_MSG_NOTICE($libafpclient_disabled)
1510 # libplist for airplay feature
1512 if test "$use_airplay" != "no"; then
1513 AC_CHECK_HEADER([plist/plist.h],,
1514 [if test "$use_airplay" = "yes"; then
1515 AC_MSG_ERROR($libplist_not_found)
1516 elif test "$use_airplay" != "no"; then
1517 AC_MSG_NOTICE($libplist_not_found)
1522 if test "$use_airplay" != "no"; then
1523 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1525 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1529 # libshairplay for AirTunes (prefered lib)
1531 if test "x$use_airtunes" != "xno"; then
1532 AC_CHECK_HEADERS([shairplay/raop.h],,
1533 [if test "x$use_airtunes" = "xyes"; then
1534 AC_MSG_ERROR($libshairplay_not_found)
1535 elif test "x$use_airtunes" != "xno"; then
1536 AC_MSG_NOTICE($libshairplay_not_found)
1541 if test "x$use_airtunes" != "xno"; then
1542 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [use_airtunes])
1545 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1546 [[#include <shairplay/raop.h>]])
1547 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1550 #libshairport - as a fallback for AirTunes
1551 if test "x$USE_AIRTUNES" == "x0"; then
1552 AC_CHECK_HEADERS([shairport/shairport.h],,
1553 [if test "x$use_airtunes" = "xyes"; then
1554 AC_MSG_ERROR($libshairport_not_found)
1555 elif test "x$use_airtunes" != "xno"; then
1556 AC_MSG_NOTICE($libshairport_not_found)
1561 if test "x$use_airtunes" != "xno"; then
1562 XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
1564 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1565 [[#include <shairport/shairport.h>]])
1566 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1573 if test "$host_vendor" = "apple" ; then
1575 AC_MSG_NOTICE($libudev_disabled)
1577 if test "$use_libudev" = "auto"; then
1578 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1579 elif test "$use_libudev" = "yes" ; then
1580 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1582 AC_MSG_NOTICE($libudev_disabled)
1585 if test "x$use_libudev" != "xno"; then
1586 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1587 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1594 # if libudev is available, we don't need libusb
1595 if test "x$use_libudev" != "xno"; then
1597 AC_MSG_NOTICE($libusb_disabled_udev_found)
1599 if test "$host_vendor" = "apple" ; then
1601 AC_MSG_NOTICE($libusb_disabled)
1603 if echo "$ARCH" | grep -q freebsd ; then
1604 AC_CHECK_LIB([usb],[main],
1605 [use_libusb="yes";USB_LIBS="-lusb"],
1606 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1607 elif test "$use_libusb" = "auto"; then
1608 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1609 elif test "$use_libusb" = "yes"; then
1610 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1612 AC_MSG_NOTICE($libusb_disabled)
1615 if test "x$use_libusb" != "xno"; then
1616 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1617 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1624 if test "x$use_libcec" != "xno"; then
1625 # libcec is dyloaded, so we need to check for its headers and link any depends.
1626 if test "x$use_libcec" != "xno"; then
1627 if test "x$use_libcec" != "xauto"; then
1628 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1630 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1633 if test "x$use_libcec" != "xno"; then
1634 INCLUDES="$INCLUDES $CEC_CFLAGS"
1635 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1636 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1637 AC_MSG_NOTICE($libcec_enabled)
1640 AC_MSG_NOTICE($libcec_disabled)
1645 AC_MSG_NOTICE($libcec_disabled)
1649 if test "$use_libcap" != "no"; then
1650 AC_CHECK_HEADERS([sys/capability.h],,
1651 [if test "$use_libcap" = "yes"; then
1652 AC_MSG_ERROR($libcap_not_found)
1653 elif test "$use_libcap" != "no"; then
1654 AC_MSG_NOTICE($libcap_not_found)
1658 if test "$use_libcap" != "no"; then
1659 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1661 if test "$use_libcap" != "no"; then
1662 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1665 AC_MSG_NOTICE($libcap_disabled)
1668 ### External libraries checks
1670 # Hacks for supporting libav
1673 if test "$use_libav_hacks" = "yes"; then
1674 export PKG_CONFIG_PATH="${srcdir}/lib/xbmc-libav-hacks/pkgconfig/:$PKG_CONFIG_PATH"
1676 AC_DEFINE([USE_LIBAV_HACKS], [1], [Whether to use libav compatibility hacks.])
1680 if test "$use_external_ffmpeg" = "yes"; then
1681 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale libswresample"
1683 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1684 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1685 AC_MSG_ERROR($missing_library))
1687 # in case the headers are in a custom directory
1688 SAVE_CPPFLAGS="$CPPFLAGS"
1689 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1691 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1692 [AC_MSG_ERROR($missing_headers)])
1694 AC_MSG_NOTICE($external_ffmpeg_enabled)
1695 USE_EXTERNAL_FFMPEG=1
1696 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1698 CPPFLAGS="$SAVE_CPPFLAGS"
1700 AC_MSG_NOTICE($external_ffmpeg_disabled)
1701 USE_EXTERNAL_FFMPEG=0
1704 echo "Checking for SWIG installation"
1705 AC_PATH_PROG(SWIG_EXE, swig, "none")
1706 if test "$SWIG_EXE" = "none"; then
1707 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1708 if test "$SWIG20_EXE" != "none" ; then
1709 SWIG_EXE=$SWIG20_EXE
1712 if test "$SWIG_EXE" = "none"; then
1713 AC_MSG_ERROR($missing_program)
1715 final_message="$final_message\n SWIG Available:\tYes"
1717 echo "Checking for a jre installation"
1718 AC_PATH_PROG(JAVA_EXE, java, "none")
1719 if test "$JAVA_EXE" = "none"; then
1720 AC_MSG_ERROR($missing_program)
1722 final_message="$final_message\n JRE Available:\tYes"
1724 echo "Checking for doxygen installation"
1725 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1726 if test "$DOXYGEN_EXE" = "none"; then
1727 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1728 final_message="$final_message\n Doxygen Available:\tNo"
1731 final_message="$final_message\n Doxygen Available:\tYes"
1736 if test "x$use_vdpau" != "xno"; then
1737 if test "$host_vendor" = "apple" ; then
1738 if test "x$use_vdpau" = "xyes"; then
1739 AC_MSG_ERROR([VDPAU not supported on this platform])
1742 AC_MSG_NOTICE($vdpau_disabled)
1747 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1748 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1749 [if test "x$use_vdpau" = "xyes"; then
1751 AC_MSG_ERROR([$vdpau_not_found])
1755 AC_MSG_RESULT($vdpau_not_found)
1760 AC_MSG_NOTICE($vdpau_disabled)
1764 if test "x$use_vaapi" != "xno"; then
1765 if test "$host_vendor" = "apple" ; then
1766 if test "x$use_vaapi" = "xyes"; then
1767 AC_MSG_ERROR([VAAPI not supported on this platform])
1770 AC_MSG_NOTICE($vaapi_disabled)
1774 initial_val=$use_vaapi
1775 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1776 if test "x$use_vaapi" != "xno"; then
1777 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1780 if test "x$use_vaapi" = "xno"; then
1781 if test "x$initial_val" = "xyes"; then
1782 AC_MSG_ERROR($vaapi_not_found)
1784 AC_MSG_RESULT($vaapi_not_found)
1788 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1793 AC_MSG_NOTICE($vaapi_disabled)
1798 if test "x$use_crystalhd" != "xno"; then
1799 SAVE_CFLAGS="$CFLAGS"
1800 CFLAGS="-D__LINUX_USER__"
1801 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1802 [ if test "x$use_crystalhd" = "xyes"; then
1803 AC_MSG_ERROR($crystalhd_not_found)
1806 AC_MSG_RESULT($crystalhd_not_found)
1810 CFLAGS="$SAVE_CFLAGS"
1811 if test "$host_vendor" != "apple"; then
1812 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1814 if test "x$use_crystalhd" != "xno"; then
1815 SAVE_CFLAGS="$CFLAGS"
1816 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1817 # check for new crystalhd lib
1819 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1820 #include <libcrystalhd/bc_dts_defs.h>
1821 PBC_INFO_CRYSTAL bCrystalInfo;])],
1822 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1823 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1824 CFLAGS="$SAVE_CFLAGS"
1828 AC_MSG_NOTICE($crystalhd_disabled)
1833 if test "x$use_vtbdecoder" != "xno"; then
1834 if test "$host_vendor" = "apple" ; then
1835 HAVE_VIDEOTOOLBOXDECODER=1
1836 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1837 AC_MSG_NOTICE($vtbdecoder_enabled)
1839 if test "x$use_vtbdecoder" = "xyes"; then
1840 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1843 AC_MSG_NOTICE($vtbdecoder_disabled)
1847 AC_MSG_NOTICE($vtbdecoder_disabled)
1851 if test "$host_vendor" = "apple" ; then
1854 AC_MSG_NOTICE($openmax_disabled)
1855 elif test "$target_platform" = "target_raspberry_pi"; then
1858 AC_MSG_NOTICE($openmax_disabled)
1860 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1861 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1862 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1863 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1864 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1865 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1866 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1867 AC_MSG_ERROR($openmax_not_found))
1869 AC_MSG_NOTICE($openmax_disabled)
1875 # yajl version check (yajl_version.h was added in yajl 2.0)
1876 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1877 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1880 # additional internal players
1881 case $add_players in
1883 AC_CHECK_HEADER([amplayer/player_error.h],, AC_MSG_ERROR($missing_headers))
1884 XB_ADD_PLAYER([AMLPLAYER], [amlplayer])
1887 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1891 # additional internal codecs
1894 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
1895 XB_ADD_CODEC([LIBAMCODEC], [amcodec])
1898 LIBS+="-L${prefix}/opt/android-libs -lstdc++ -lutils -lcutils -lstagefright -lbinder -lui -lgui"
1899 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright])
1904 # platform specific bin utilities
1905 if test "$build_vendor" != "apple" ; then
1906 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1907 if test "$HAVE_GAWK" = "no" ; then
1908 AC_MSG_ERROR($missing_program)
1912 if test "$use_arch" != "arm" ; then
1913 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1914 if test "$HAVE_CMAKE" = "no" ; then
1915 AC_MSG_ERROR($missing_program)
1919 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1920 if test "$HAVE_GPERF" = "no" ; then
1921 AC_MSG_ERROR($missing_program)
1924 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1925 if test "$HAVE_UNZIP" = "no" ; then
1926 AC_MSG_ERROR($missing_program)
1929 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
1930 if test "$HAVE_ZIP" = "no" ; then
1931 AC_MSG_ERROR($missing_program)
1934 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
1935 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
1936 if test "$HAVE_NASM" = "no" ; then
1937 AC_MSG_ERROR($missing_program)
1941 # Checks for header files.
1945 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
1946 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
1947 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
1948 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
1949 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
1951 # Checks for typedefs, structures, and compiler characteristics.
1967 AC_CHECK_MEMBERS([struct stat.st_rdev])
1976 if test "$cross_compiling" = "yes"; then
1977 final_message="$final_message\n Crosscomp.:\tYes"
1978 if [[ -d "$NATIVE_ROOT" ]]; then
1979 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
1980 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
1981 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
1982 if test "$host_vendor" != "apple" ; then
1983 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
1985 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
1988 final_message="$final_message\n Crosscomp.:\tNo"
1991 final_message="$final_message\n target ARCH:\t$use_arch"
1992 final_message="$final_message\n target CPU:\t$use_cpu"
1994 if test "$use_gles" = "yes"; then
1995 final_message="$final_message\n OpenGLES:\tYes"
2000 if test "$use_gl" = "yes"; then
2001 final_message="$final_message\n OpenGL:\tYes"
2004 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2005 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2010 if test "$use_alsa" = "yes"; then
2012 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2013 final_message="$final_message\n ALSA:\t\tYes"
2016 final_message="$final_message\n ALSA:\t\tNo"
2019 if test "$use_dbus" = "yes"; then
2020 final_message="$final_message\n DBUS:\t\tYes"
2022 final_message="$final_message\n DBUS:\t\tNo"
2025 if test "x$use_vdpau" != "xno"; then
2026 final_message="$final_message\n VDPAU:\tYes"
2028 final_message="$final_message\n VDPAU:\tNo"
2031 if test "x$use_vaapi" != "xno"; then
2032 final_message="$final_message\n VAAPI:\tYes"
2034 final_message="$final_message\n VAAPI:\tNo"
2037 if test "x$use_crystalhd" != "xno"; then
2038 final_message="$final_message\n CrystalHD:\tYes"
2040 final_message="$final_message\n CrystalHD:\tNo"
2043 if test "x$use_vtbdecoder" != "xno"; then
2044 final_message="$final_message\n VTBDecoder:\tYes"
2046 final_message="$final_message\n VTBDecoder:\tNo"
2049 if test "$use_openmax" != "no"; then
2050 final_message="$final_message\n OpenMax:\tYes"
2052 final_message="$final_message\n OpenMax:\tNo"
2055 if test "$use_joystick" = "yes"; then
2056 final_message="$final_message\n Joystick:\tYes"
2057 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2059 final_message="$final_message\n Joystick:\tNo"
2062 if test "$use_xrandr" = "yes"; then
2063 final_message="$final_message\n XRandR:\tYes"
2066 final_message="$final_message\n XRandR:\tNo"
2070 if test "$use_waveform" = "yes"; then
2071 final_message="$final_message\n Waveform:\tYes"
2073 final_message="$final_message\n Waveform:\tNo"
2076 if test "$use_spectrum" = "yes"; then
2077 final_message="$final_message\n Spectrum:\tYes"
2079 final_message="$final_message\n Spectrum:\tNo"
2082 if test "$use_goom" = "yes"; then
2083 final_message="$final_message\n GOOM:\t\tYes"
2085 final_message="$final_message\n GOOM:\t\tNo"
2088 if test "$use_rsxs" = "yes"; then
2089 final_message="$final_message\n RSXS:\t\tYes"
2091 final_message="$final_message\n RSXS:\t\tNo"
2094 if test "$use_fishbmc" = "yes"; then
2095 final_message="$final_message\n FishBMC:\tYes"
2097 final_message="$final_message\n FishBMC:\tNo"
2100 if test "$use_projectm" = "yes"; then
2101 final_message="$final_message\n ProjectM:\tYes"
2103 final_message="$final_message\n ProjectM:\tNo"
2106 if test "$use_skin_touched" = "yes"; then
2107 final_message="$final_message\n Skin Touched:\tYes"
2109 final_message="$final_message\n Skin Touched:\tNo"
2112 if test "$use_x11" = "yes"; then
2113 final_message="$final_message\n X11:\t\tYes"
2115 final_message="$final_message\n X11:\t\tNo"
2118 if test "$use_libbluray" = "yes"; then
2119 final_message="$final_message\n Bluray:\tYes"
2121 final_message="$final_message\n Bluray:\tNo"
2124 if test "x$use_texturepacker" != "xno"; then
2125 final_message="$final_message\n TexturePacker:Yes"
2128 final_message="$final_message\n TexturePacker:No"
2132 if test "$use_mid" = "yes"; then
2133 final_message="$final_message\n MID Support:\tYes"
2134 SDL_DEFINES="$SDL_DEFINES -DMID"
2136 final_message="$final_message\n MID Support:\tNo"
2141 if test "x$use_ccache" != "xno"; then
2142 AC_PATH_PROG(CCACHE,ccache,none)
2143 if test "$ac_cv_path_CCACHE" = "none"; then
2144 if test "x$use_ccache" = "xyes"; then
2145 AC_MSG_ERROR([ccache not found.]);
2147 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2148 final_message="$final_message\n ccache:\tNo"
2151 CC="$ac_cv_path_CCACHE $CC"
2152 CXX="$ac_cv_path_CCACHE $CXX"
2153 AC_MSG_NOTICE(enabling ccache)
2154 final_message="$final_message\n ccache:\tYes"
2157 final_message="$final_message\n ccache:\tNo"
2160 if test "$use_alsa" = "yes"; then
2161 final_message="$final_message\n ALSA Support:\tYes"
2163 final_message="$final_message\n ALSA Support:\tNo"
2166 if test "x$use_pulse" != "xno"; then
2167 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2168 final_message="$final_message\n PulseAudio:\tYes"
2170 XBMC_STANDALONE_SH_PULSE=/dev/null
2171 final_message="$final_message\n PulseAudio:\tNo"
2174 if test "$use_hal" = "yes"; then
2175 final_message="$final_message\n HAL Support:\tYes"
2177 final_message="$final_message\n HAL Support:\tNo"
2181 if test "$use_dvdcss" = "yes"; then
2182 AC_MSG_NOTICE($dvdcss_enabled)
2183 final_message="$final_message\n DVDCSS:\tYes"
2185 SKIP_CONFIG_DVDCSS=0
2186 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2188 AC_MSG_NOTICE($dvdcss_disabled)
2189 final_message="$final_message\n DVDCSS:\tNo"
2191 SKIP_CONFIG_DVDCSS=1
2192 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2194 if test "$host_vendor" = "apple"; then
2195 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2198 # Google Test Framework
2199 if test "$configure_gtest" = "yes"; then
2200 AC_MSG_NOTICE($gtest_enabled)
2201 final_message="$final_message\n Google Test Framework Configured:\tYes"
2205 AC_MSG_NOTICE($gtest_disabled)
2206 final_message="$final_message\n Google Test Framework Configured:\tNo"
2211 if test "$use_avahi" = "yes"; then
2212 final_message="$final_message\n Avahi:\tYes"
2214 final_message="$final_message\n Avahi:\tNo"
2217 if test "$use_mdnsembedded" != "no"; then
2218 final_message="$final_message\n mDNSEmbedded:\tYes"
2220 final_message="$final_message\n mDNSEmbedded:\tNo"
2223 if test "$use_nonfree" = "yes"; then
2224 final_message="$final_message\n Non-free:\tYes"
2226 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2229 final_message="$final_message\n Non-free:\tNo"
2232 if test "$use_asap" = "yes"; then
2233 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2234 if test "$HAVE_GDC" = "no"; then
2235 AC_MSG_ERROR($missing_program);
2237 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2238 if test "$HAVE_FPC" = "no"; then
2239 AC_MSG_ERROR($missing_program);
2242 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2243 final_message="$final_message\n ASAP Codec:\tYes"
2246 final_message="$final_message\n ASAP Codec:\tNo"
2249 if test "$use_mysql" = "yes"; then
2250 final_message="$final_message\n MySQL:\tYes"
2253 final_message="$final_message\n MySQL:\tNo"
2256 if test "$use_webserver" = "yes"; then
2257 final_message="$final_message\n Webserver:\tYes"
2260 final_message="$final_message\n Webserver:\tNo"
2264 if test "$use_libssh" != "no"; then
2265 final_message="$final_message\n libssh support:\tYes"
2267 final_message="$final_message\n libssh support:\tNo"
2270 if test "$use_librtmp" != "no"; then
2271 final_message="$final_message\n libRTMP support:\tYes"
2273 final_message="$final_message\n libRTMP support:\tNo"
2276 if test "x$use_samba" != "xno"; then
2277 final_message="$final_message\n libsmbclient support:\tYes"
2279 final_message="$final_message\n libsmbclient support:\tNo"
2282 if test "$use_libnfs" != "no"; then
2283 final_message="$final_message\n libnfs client support:Yes"
2285 final_message="$final_message\n libnfs client support:No"
2288 if test "x$use_libafpclient" != "xno"; then
2289 final_message="$final_message\n libafpclient support:\tYes"
2291 final_message="$final_message\n libafpclient support:\tNo"
2294 if test "$use_airplay" != "no"; then
2295 final_message="$final_message\n AirPlay support:\tYes"
2297 final_message="$final_message\n AirPLay support:\tNo"
2300 if test "x$use_airtunes" != "xno"; then
2301 if test "x$USE_LIBSHAIRPORT" == "x1"; then
2302 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2304 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2307 final_message="$final_message\n AirTunes support:\tNo"
2310 if test "x$use_upnp" != "xno"; then
2311 final_message="$final_message\n UPnP support:\t\tYes"
2313 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2316 final_message="$final_message\n UPnP support:\t\tNo"
2319 if test "$use_optical_drive" = "yes"; then
2320 final_message="$final_message\n Optical drive:\tYes"
2322 final_message="$final_message\n Optical drive:\tNo"
2325 if test "x$use_libudev" != "xno"; then
2326 final_message="$final_message\n libudev support:\tYes"
2328 final_message="$final_message\n libudev support:\tNo"
2331 if test "x$use_libusb" != "xno"; then
2332 final_message="$final_message\n libusb support:\tYes"
2334 final_message="$final_message\n libusb support:\tNo"
2337 if test "x$use_libcec" != "xno"; then
2338 final_message="$final_message\n libcec support:\tYes"
2340 final_message="$final_message\n libcec support:\tNo"
2343 if test "x$use_libmp3lame" != "xno"; then
2344 final_message="$final_message\n libmp3lame support:\tYes"
2346 final_message="$final_message\n libmp3lame support:\tNo"
2349 if test "x$use_libvorbisenc" != "xno"; then
2350 final_message="$final_message\n libvorbisenc support:\tYes"
2352 final_message="$final_message\n libvorbisenc support:\tNo"
2355 if test "x$use_libcap" != "xno"; then
2356 final_message="$final_message\n libcap support:\tYes"
2358 final_message="$final_message\n libcap support:\tNo"
2361 if test "x$add_players" != "xno"; then
2362 final_message="$final_message\n additional players:\tYes, $add_players"
2364 final_message="$final_message\n additional players:\tNo"
2367 if test "x$add_codecs" != "xno"; then
2368 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2370 final_message="$final_message\n additional codecs:\tNo"
2373 ### External libraries messages
2375 if test "$use_external_ffmpeg" = "yes"; then
2376 final_message="$final_message\n External FFmpeg:\tYes"
2378 final_message="$final_message\n External FFmpeg:\tNo"
2381 if test "$host_vendor" = "apple" ; then
2382 # built internal but referenced as external, we link directly to them.
2383 # this MUST be the last thing before OUTPUT_FILES as they do not
2384 # exist until after we build FFMpeg.
2385 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2386 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2387 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2388 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2389 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2390 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2391 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2395 DISABLE_PVR_ADDON_CONFIG=1
2396 if [[ -f "pvr-addons/Makefile.am" ]]; then
2397 final_message="$final_message\n PVR add-ons:\t\tYes"
2399 DISABLE_PVR_ADDON_CONFIG=0
2401 final_message="$final_message\n PVR add-ons:\t\tNo"
2404 OUTPUT_FILES="Makefile \
2406 addons/skin.confluence/media/Makefile \
2408 xbmc/cdrip/Makefile \
2409 xbmc/cores/Makefile \
2410 xbmc/cores/VideoRenderers/Makefile \
2411 xbmc/cores/dvdplayer/Makefile \
2413 lib/libdvd/Makefile \
2414 xbmc/cores/DllLoader/Makefile \
2415 xbmc/cores/DllLoader/exports/Makefile \
2416 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2417 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2418 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2419 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2420 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2421 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2422 xbmc/cores/AudioEngine/Makefile \
2423 xbmc/cores/paplayer/Makefile \
2424 xbmc/cores/amlplayer/Makefile \
2425 xbmc/cores/omxplayer/Makefile \
2426 lib/timidity/Makefile \
2427 lib/xbadpcm/Makefile \
2429 lib/nosefart/Makefile \
2430 lib/libsidplay2/Makefile \
2431 lib/vgmstream/Makefile \
2432 lib/snesapu/SNES/SNESAPU/Makefile \
2433 lib/stsound/StSoundLibrary/Makefile \
2434 xbmc/cores/playercorefactory/Makefile \
2435 xbmc/music/karaoke/Makefile \
2437 xbmc/guilib/Makefile \
2438 xbmc/interfaces/Makefile \
2439 xbmc/network/Makefile \
2440 xbmc/network/upnp/Makefile \
2441 lib/libRTV/Makefile \
2442 lib/libexif/Makefile \
2443 lib/libXDAAP/Makefile \
2444 lib/cmyth/Makefile \
2445 lib/libhdhomerun/Makefile \
2446 lib/libsquish/Makefile \
2447 lib/cximage-6.0/Makefile \
2448 lib/libUPnP/Makefile \
2449 xbmc/DllPaths_generated.h \
2450 xbmc/DllPaths_generated_android.h \
2451 xbmc/freebsd/Makefile \
2452 xbmc/linux/Makefile \
2453 xbmc/filesystem/Makefile \
2454 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2455 xbmc/visualizations/XBMCProjectM/Makefile \
2456 xbmc/visualizations/Goom/Makefile \
2457 xbmc/visualizations/OpenGLSpectrum/Makefile \
2458 xbmc/visualizations/fishBMC/Makefile \
2459 xbmc/visualizations/WaveForm/Makefile \
2460 lib/addons/library.xbmc.addon/Makefile \
2461 lib/addons/library.xbmc.codec/Makefile \
2462 lib/addons/library.xbmc.gui/Makefile \
2463 lib/addons/library.xbmc.pvr/Makefile \
2464 xbmc/visualizations/EGLHelpers/Makefile \
2465 tools/Linux/xbmc.sh \
2466 tools/Linux/xbmc-standalone.sh \
2467 tools/TexturePacker/Makefile \
2468 tools/EventClients/Clients/OSXRemote/Makefile \
2469 xbmc/peripherals/bus/Makefile \
2470 xbmc/peripherals/devices/Makefile \
2471 xbmc/android/activity/Makefile \
2472 xbmc/android/loader/Makefile \
2473 xbmc/android/jni/Makefile \
2474 xbmc/utils/Makefile \
2475 xbmc/main/Makefile \
2476 project/cmake/xbmc-config.cmake"
2478 if test "$use_skin_touched" = "yes"; then
2479 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2482 OUTPUT_FILES="$OUTPUT_FILES \
2483 xbmc/interfaces/python/Makefile \
2484 xbmc/interfaces/python/test/Makefile"
2486 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2487 # .dummy.am does nothing.
2488 AC_CONFIG_FILES([.dummy])
2490 AC_CONFIG_FILES([${OUTPUT_FILES}])
2491 OUTPUT_FILES="$OUTPUT_FILES \
2497 AC_SUBST(CXX_FOR_BUILD)
2498 AC_SUBST(CC_FOR_BUILD)
2499 AC_SUBST(CFLAGS_FOR_BUILD)
2500 AC_SUBST(CXXFLAGS_FOR_BUILD)
2501 AC_SUBST(LDFLAGS_FOR_BUILD)
2502 AC_SUBST(SDL_DEFINES)
2503 AC_SUBST(BUILD_DVDCSS)
2504 AC_SUBST(DISABLE_WAVEFORM)
2505 AC_SUBST(DISABLE_SPECTRUM)
2506 AC_SUBST(DISABLE_GOOM)
2507 AC_SUBST(DISABLE_RSXS)
2508 AC_SUBST(DISABLE_FISHBMC)
2509 AC_SUBST(DISABLE_PROJECTM)
2510 AC_SUBST(USE_SKIN_TOUCHED)
2511 AC_SUBST(USE_EXTERNAL_FFMPEG)
2512 AC_SUBST(USE_LIBAV_HACKS)
2513 AC_SUBST(PYTHON_VERSION)
2514 AC_SUBST(OUTPUT_FILES)
2515 AC_SUBST(HAVE_XBMC_NONFREE)
2516 AC_SUBST(USE_ASAP_CODEC)
2517 AC_SUBST(LIBCURL_BASENAME)
2518 AC_SUBST(LIBFLAC_BASENAME)
2519 AC_SUBST(LIBVORBISFILE_BASENAME)
2520 AC_SUBST(LIBMODPLUG_BASENAME)
2521 AC_SUBST(LIBMAD_BASENAME)
2522 AC_SUBST(LIBOGG_BASENAME)
2523 AC_SUBST(LIBVORBISENC_BASENAME)
2524 AC_SUBST(LIBVORBIS_BASENAME)
2525 AC_SUBST(LIBASS_BASENAME)
2526 AC_SUBST(LIBMEPG2_BASENAME)
2527 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2528 AC_SUBST(USE_OPENGL)
2529 AC_SUBST(USE_OPENGLES)
2532 AC_SUBST(USE_CRYSTALHD)
2533 AC_SUBST(USE_LIBSMBCLIENT)
2534 AC_SUBST(USE_LIBNFS)
2535 AC_SUBST(USE_LIBAFPCLIENT)
2536 AC_SUBST(USE_AIRPLAY)
2537 AC_SUBST(USE_OPENMAX)
2539 AC_SUBST(USE_XRANDR)
2541 AC_SUBST(USE_TEXTUREPACKER)
2542 AC_SUBST(USE_AIRTUNES)
2543 AC_SUBST(USE_LIBUDEV)
2544 AC_SUBST(USE_LIBUSB)
2545 AC_SUBST(USE_LIBCEC)
2547 AC_SUBST(USE_WEB_SERVER)
2549 AC_SUBST(USE_OMXLIB)
2550 AC_SUBST(USE_ANDROID)
2551 AC_SUBST(GTEST_CONFIGURED)
2552 AC_SUBST(USE_DOXYGEN)
2553 AC_SUBST(USE_PVR_ADDONS)
2555 # pushd and popd are not available in other shells besides bash, so implement
2556 # our own pushd/popd functions
2561 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2563 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2566 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2571 if [[ -n "$XB_DIRSTACK" ]]; then
2572 XB_DIRSTACK="${XB_DIRSTACK#* }"
2573 cd "${XB_DIRSTACK%% *}"
2576 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2580 # Function to run the configure scripts in our submodules
2581 # Consists of three paramaters, the path to the submodule, the configure command
2582 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2583 # running the script, anything else if not.
2584 AC_DEFUN([XB_CONFIG_MODULE],[
2585 AC_CONFIG_COMMANDS_POST([
2586 if [[ $3 != "1" ]]; then
2587 if [[ -d $1 ]]; then
2590 if [[ $? -ne 0 ]]; then
2592 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2597 AC_MSG_ERROR([[Submodule $1 does not exist]])
2600 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2605 XB_CONFIG_MODULE([lib/ffmpeg], [
2606 if test "$host_vendor" = "apple" ; then
2607 ffmpg_config="--target-os=$ffmpeg_target_os"
2608 # handle disables first, we do individual enables later
2609 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2610 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2611 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2612 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2613 ffmpg_config="$ffmpg_config --enable-vda --disable-crystalhd"
2614 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2616 # handle conditional enables/disables
2617 if test "$use_debug" = "no"; then
2618 ffmpg_config="$ffmpg_config --disable-debug"
2620 if test "$use_cpu" != "no"; then
2621 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2623 if test "$use_arch" != "no"; then
2624 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2626 if test "$use_arch" = "arm"; then
2627 ffmpg_config="$ffmpg_config --enable-pic"
2628 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2629 if test "$use_neon" = "yes"; then
2630 ffmpg_config="$ffmpg_config --enable-neon"
2632 ffmpg_config="$ffmpg_config --disable-neon"
2635 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2637 if test "$use_ffmpeg_libvorbis" = "yes"; then
2638 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2640 ffmpg_config="$ffmpg_config --disable-libvorbis"
2643 # handle individual enables
2644 ffmpg_config="$ffmpg_config --enable-gpl"
2645 ffmpg_config="$ffmpg_config --enable-postproc"
2646 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2647 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts --enable-muxer=asf --enable-muxer=ipod"
2648 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2"
2649 ffmpg_config="$ffmpg_config --enable-protocol=http"
2650 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2652 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2655 ffmpg_config="$ffmpg_config --cc=clang" ;;
2657 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2660 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2661 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2663 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2665 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2666 # dependency files in the right place, replace it with something that works
2669 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2672 # ffmpeg will use yasm found at ${prefix}/bin during configure
2673 # but then hardcodes 'yasm' in config.mak, fix it.
2674 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2675 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2676 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2681 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2683 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2685 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2686 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2687 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2688 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2689 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2690 --target-os=$ffmpeg_target_os \
2692 --enable-muxer=spdif \
2693 --enable-muxer=adts \
2694 --enable-muxer=asf \
2695 --enable-muxer=ipod \
2696 --disable-encoders \
2697 --enable-encoder=ac3 \
2698 --enable-encoder=aac \
2699 --enable-encoder=wmav2 \
2700 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2701 --disable-decoder=mpeg_xvmc \
2705 --disable-ffserver \
2707 --disable-crystalhd \
2712 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2713 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2714 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2715 --enable-protocol=http \
2717 --enable-runtime-cpudetect \
2718 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2719 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2720 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2721 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2722 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2724 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2725 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2727 ], [$USE_EXTERNAL_FFMPEG])
2729 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2734 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2735 --host=$host_alias \
2736 --build=$build_alias \
2737 --target=$target_alias \
2741 ], [$SKIP_CONFIG_DVDCSS])
2743 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2745 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src" \
2746 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2747 --host=$host_alias \
2748 --build=$build_alias \
2749 --target=$target_alias \
2755 $MAKE dvdread-config &&
2756 mkdir -p `pwd`/../includes/dvdread
2757 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2758 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2761 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2763 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
2764 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2765 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2766 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2767 --host=$host_alias \
2768 --build=$build_alias \
2769 --target=$target_alias \
2775 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2777 rm -f CMakeCache.txt && \
2778 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2779 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2780 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2781 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2782 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2783 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2784 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2785 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2786 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2787 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2788 if test "$host_vendor" = "apple" ; then
2789 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2790 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2791 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2792 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2795 ], [$DISABLE_PROJECTM])
2797 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2800 CXXFLAGS="$CXXFLAGS" \
2801 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2802 --host=$host_alias \
2803 --build=$build_alias \
2804 --target=$target_alias \
2810 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2811 if test "$host_vendor" = "apple"; then
2812 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";
2814 TEMPCFLAGS="$CFLAGS";
2819 CFLAGS="$TEMPCFLAGS" \
2820 CXXFLAGS="$CXXFLAGS" \
2821 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2822 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2823 --host=$host_alias \
2824 --build=$build_alias \
2825 --target=$target_alias \
2826 --without-xscreensaver \
2829 --disable-fieldlines \
2833 --disable-hyperspace \
2836 if echo "$ARCH" | grep -q freebsd ; then
2837 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2841 XB_CONFIG_MODULE([lib/cpluff], [
2842 ./configure --disable-nls \
2843 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2844 --host=$host_alias \
2845 --build=$build_alias \
2846 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2847 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2850 XB_CONFIG_MODULE([lib/gtest], [
2855 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2856 --host=$host_alias \
2857 --build=$build_alias \
2858 --target=$target_alias \
2862 ], [$SKIP_CONFIG_GTEST])
2864 XB_CONFIG_MODULE([pvr-addons], [
2866 --prefix="${prefix}" \
2867 --host=$host_alias \
2868 --build=$build_alias \
2869 --target=$target_alias \
2873 CXXFLAGS="$CXXFLAGS"
2874 ], [$DISABLE_PVR_ADDON_CONFIG])
2878 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2879 echo -e "$final_message\n"