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*-android-linux-gnu*)
610 target_platform=target_android
614 ffmpeg_target_os=linux
618 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
625 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
635 ARCH="x86_64-freebsd"
651 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
652 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
653 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
654 PYTHON_NOVERSIONCHECK="no-check"
661 powerpc-apple-darwin*)
668 powerpc-*-linux-gnu*)
671 powerpc64-*-linux-gnu*)
672 ARCH="powerpc64-linux"
677 ffmpeg_target_os=linux
684 arm*-*linux-android*)
685 target_platform=target_android
689 ffmpeg_target_os=linux
699 AC_MSG_ERROR(unsupported host ($host))
703 check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
704 if test "x$check_sdl_arch" = "xi386" ; then
705 DARWIN_NATIVE_ARCH=-m32
706 elif test "x$check_sdl_arch" = "xx86_64" ; then
707 DARWIN_NATIVE_ARCH=-m64
709 AC_SUBST([DARWIN_NATIVE_ARCH])
711 if test "$target_platform" = "target_android" ; then
713 webserver_checkdepends=yes
714 CFLAGS="$CFLAGS -Wno-psabi"
715 CXXFLAGS="$CXXFLAGS -Wno-psabi"
716 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
719 case $use_platform in
721 target_platform=target_raspberry_pi
725 use_hardcoded_tables="yes"
728 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
729 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
732 ffmpeg_target_os=linux
736 XBMC_SETUP_ARCH_DEFINES()
739 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
740 if test "$GIT_REV" = ""; then
741 if test -f VERSION ; then
742 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
743 elif test "$HAVE_GIT" = "yes"; then
744 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
749 final_message="$final_message\n git Rev.:\t${GIT_REV}"
751 if test "$host_vendor" = "apple"; then
752 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
754 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
757 if test "$build_shared_lib" = "yes"; then
758 final_message="$final_message\n Shared lib\tYes"
759 AC_SUBST(USE_LIBXBMC,1)
763 # platform debug flags
764 if test "$use_debug" = "yes"; then
765 final_message="$final_message\n Debugging:\tYes"
766 if test "$use_profiling" = "yes"; then
767 final_message="$final_message\n Profiling:\tYes"
768 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
770 final_message="$final_message\n Profiling:\tNo"
771 DEBUG_FLAGS="-g -D_DEBUG -Wall"
774 final_message="$final_message\n Debugging:\tNo"
775 if test "$use_profiling" = "yes"; then
776 final_message="$final_message\n Profiling:\tYes"
777 DEBUG_FLAGS="-pg -DNDEBUG=1"
779 final_message="$final_message\n Profiling:\tNo"
780 DEBUG_FLAGS="-DNDEBUG=1"
783 CFLAGS="$CFLAGS $DEBUG_FLAGS"
784 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
787 if test "$use_optimizations" = "yes"; then
788 final_message="$final_message\n Optimization:\tYes"
789 if test "$target_platform" = "target_raspberry_pi"; then
793 CXXFLAGS="-O2 $CXXFLAGS"
797 final_message="$final_message\n Optimization:\tNo"
801 # platform specific flags
802 if echo "$ARCH" | grep -q "freebsd" ; then
803 LOCALBASE="${LOCALBASE:-/usr/local}"
804 CFLAGS="$CFLAGS -I$LOCALBASE/include"
805 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
806 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
807 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
808 FFMPEG_EXTRACFLAGS="-I$LOCALBASE/include"
810 if test "$host_vendor" = "apple" ; then
811 # standard xbmc paths
812 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
813 if test "$use_arch" != "arm"; then
814 LIBS="$LIBS -framework ApplicationServices"
815 LIBS="$LIBS -framework AudioUnit"
816 LIBS="$LIBS -framework AudioToolbox"
817 LIBS="$LIBS -framework Cocoa"
818 LIBS="$LIBS -framework CoreAudio"
819 LIBS="$LIBS -framework CoreVideo"
820 LIBS="$LIBS -framework CoreServices"
821 LIBS="$LIBS -framework CoreFoundation"
822 LIBS="$LIBS -framework DiskArbitration"
823 LIBS="$LIBS -framework IOKit"
824 LIBS="$LIBS -framework IOSurface"
825 LIBS="$LIBS -framework QuartzCore"
826 LIBS="$LIBS -framework SystemConfiguration"
828 USE_EXTERNAL_FFMPEG=1
829 elif test "$target_platform" = "target_raspberry_pi"; then
832 elif test "$use_arch" = "arm"; then
833 CFLAGS="$CFLAGS -mno-apcs-stack-check"
834 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
835 FFMPEG_EXTRACFLAGS=""
836 if test "$use_tegra" = "yes"; then
837 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
838 SAVE_CFLAGS="$CFLAGS"
839 CFLAGS="-mfpu=vfpv3-d16"
841 [AC_LANG_SOURCE([int foo;])],
842 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
843 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
844 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
846 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
847 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
850 if test "$use_neon" = "yes"; then
851 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
852 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
853 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
858 # Checks for library functions.
861 AC_FUNC_CLOSEDIR_VOID
862 AC_FUNC_ERROR_AT_LINE
864 AC_PROG_GCC_TRADITIONAL
866 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
870 # Boxee is apparently having compile problems
871 # if HAVE_REALLOC is defined. Sort this later.
873 AC_FUNC_SELECT_ARGTYPES
874 AC_FUNC_SETVBUF_REVERSED
882 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])
884 # Check for various sizes
885 AC_CHECK_SIZEOF([int])
886 AC_CHECK_SIZEOF([size_t])
888 # Check for intrinsics
889 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
890 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
891 [have_builtin_sync_add_and_fetch=yes],
892 [have_builtin_sync_add_and_fetch=no])
893 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
894 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
895 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
896 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
899 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
900 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
901 [have_builtin_sync_sub_and_fetch=yes],
902 [have_builtin_sync_sub_and_fetch=no])
903 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
904 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
905 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
906 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
909 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
910 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
911 [have_builtin_sync_val_compare_and_swap=yes],
912 [have_builtin_sync_val_compare_and_swap=no])
913 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
914 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
915 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
916 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
919 # Check for u16string/u32string declarations
921 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
922 AC_CHECK_TYPES([char16_t, char32_t])
923 AC_CHECK_SIZEOF([wchar_t])
926 # Add top source directory for all builds so we can use config.h
927 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
929 # Check inotify availability
930 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
932 # Checks for boost headers using CXX instead of CC
934 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
938 if test -z "$PYTHON_NOVERSIONCHECK"; then
939 AX_PYTHON_DEVEL([>= 2.4])
940 PYTHON_VERSION=$ac_python_version
943 if test -z "$PYTHON_VERSION"; then
944 AC_MSG_ERROR([Can't find a Python version.])
946 LIBS="$LIBS $PYTHON_LDFLAGS"
947 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
950 # Checks for platforms libraries.
951 if test "$use_gles" = "yes"; then
953 # GLES overwrites GL if both set to yes.
954 if test "$host_vendor" = "apple" ; then
955 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
956 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
957 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
959 if test "$target_platform" = "target_raspberry_pi"; then
960 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
961 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
962 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
963 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
965 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
966 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
970 if test "$use_gl" = "yes"; then
971 if test "$host_vendor" = "apple" ; then
972 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
973 LIBS="$LIBS -framework OpenGL"
974 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
975 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
976 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
977 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
978 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
980 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
981 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
982 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
985 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
986 AC_CHECK_LIB([SDL_gfx],[main])
990 # platform common libraries
991 if test "$use_mysql" = "yes"; then
992 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
993 if test "x$MYSQL_CONFIG" != "xno"; then
994 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
995 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
996 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
997 LIBS="$LIBS $MYSQL_LIBS"
1000 AC_MSG_ERROR($missing_program)
1003 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1004 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1005 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1006 AC_INCLUDES_DEFAULT()
1007 [#include <mpeg2dec/mpeg2.h>])
1008 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
1009 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1010 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
1011 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1012 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1013 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1014 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1015 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1017 # we need to check for the header because if it exists we set the openssl
1018 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1019 # in MT manner correctly.
1020 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1021 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1022 if test "$gcrypt_headers_available" = "yes"; then
1023 # if we have the headers then we must have the lib
1024 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1025 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1026 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1029 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1030 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1031 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1032 if echo "$ARCH" | grep -q freebsd; then
1033 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1034 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1035 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1036 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1038 if test "$target_platform" != "target_android" ; then
1039 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1040 AC_CHECK_LIB([pthread], [pthread_setname_np],
1041 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1042 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1045 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1046 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1047 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1048 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1049 if test "$use_mysql" = "yes"; then
1050 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1052 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1053 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1054 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1055 if test "$target_platform" = "target_android" ; then
1056 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1057 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1058 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1060 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1061 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1062 AC_MSG_ERROR($missing_library))
1063 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1064 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1065 AC_MSG_ERROR($missing_library))
1066 PKG_CHECK_MODULES([PNG], [libpng],
1067 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1068 AC_MSG_ERROR($missing_library))
1069 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1070 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1071 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1072 AC_MSG_ERROR($missing_library))
1073 PKG_CHECK_MODULES([PCRE], [libpcre],
1074 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1075 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1076 AC_MSG_ERROR($missing_library))
1077 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1078 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1079 AC_MSG_ERROR($missing_library))
1080 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1081 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1082 AC_MSG_ERROR($missing_library))
1083 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1084 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1085 AC_MSG_ERROR($missing_library))
1087 if test "$use_optical_drive" = "yes"; then
1088 PKG_CHECK_MODULES([CDIO], [libcdio],
1089 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1090 AC_MSG_ERROR($missing_library))
1093 if test "$target_platform" = "target_android" ; then
1094 PKG_CHECK_MODULES([ZIP], [libzip],
1095 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1096 AC_MSG_ERROR($missing_library))
1099 # check for libbluray
1100 AS_CASE([x$use_libbluray],
1102 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1105 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1108 AS_CASE([x$use_libbluray],
1110 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1111 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1112 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1113 AC_SUBST([HAVE_LIBBLURAY], 1)
1114 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1115 AC_CHECK_DECL([BD_EVENT_IDLE],
1116 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1117 [[#include <libbluray/bluray.h>]]))
1119 AC_SUBST([HAVE_LIBBLURAY], 0)
1123 #Check to see if libs are needed for functions that are often built-in to libc
1124 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1125 AC_SEARCH_LIBS([dlopen],dl)
1126 AC_SEARCH_LIBS([clock_gettime],rt)
1127 AC_SEARCH_LIBS([dn_expand], resolv)
1128 AC_SEARCH_LIBS([_dn_expand], resolv)
1129 AC_SEARCH_LIBS([__dn_expand],resolv)
1131 # platform dependent libraries
1132 if test "$host_vendor" = "apple" ; then
1133 if test "$use_arch" != "arm"; then
1134 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1135 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1138 if test "$target_platform" != "target_android" ; then
1139 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1141 if test "x$use_alsa" != "xno"; then
1142 PKG_CHECK_MODULES([ALSA], [alsa],
1143 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1144 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1146 PKG_CHECK_MODULES([DBUS], [dbus-1],
1147 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1148 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1149 AC_MSG_NOTICE($missing_library); use_dbus=no)
1150 if test "x$use_sdl" != "xno"; then
1151 PKG_CHECK_MODULES([SDL], [sdl],
1152 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1153 AC_MSG_ERROR($missing_library))
1154 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1155 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1159 XB_FIND_SONAME([MAD], [mad])
1160 XB_FIND_SONAME([OGG], [ogg])
1161 XB_FIND_SONAME([CURL], [curl])
1162 XB_FIND_SONAME([FLAC], [FLAC])
1163 XB_FIND_SONAME([VORBIS], [vorbis])
1164 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1165 XB_FIND_SONAME([MODPLUG], [modplug])
1166 XB_FIND_SONAME([ASS], [ass])
1167 XB_FIND_SONAME([MPEG2], [mpeg2])
1170 if test "x$use_libmp3lame" != "xno"; then
1171 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1172 if test "x$use_libmp3lame" != "xno"; then
1173 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1176 AS_CASE([x$use_libmp3lame],
1178 AC_SUBST([HAVE_LIBMP3LAME], 0)
1181 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1182 AC_SUBST([HAVE_LIBMP3LAME], 1)
1185 if test "x$use_libvorbisenc" != "xno"; then
1186 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1187 if test "x$use_libvorbisenc" != "xno"; then
1188 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1191 AS_CASE([x$use_libvorbisenc],
1193 AC_SUBST([HAVE_LIBVORBISENC], 0)
1195 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1196 AC_SUBST([HAVE_LIBVORBISENC], 1)
1201 if test "$use_webserver" = "yes"; then
1202 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1206 if test "$use_optical_drive" = "yes"; then
1207 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1211 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1212 PKG_CHECK_MODULES([ALSA], [alsa],
1213 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1214 AC_MSG_ERROR($missing_library))
1215 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1218 AC_MSG_RESULT($alsa_disabled)
1222 if test "x$use_pulse" != "xno"; then
1223 if test "$host_vendor" = "apple" ; then
1224 if test "x$use_pulse" = "xyes"; then
1225 AC_MSG_ERROR($pulse_disabled)
1228 AC_MSG_RESULT($pulse_disabled)
1232 AC_CHECK_LIB([pulse],[main],,pulse_found="no")
1233 AC_CHECK_LIB([pulse-simple],[main],,pulse_found="no")
1235 if test "x$pulse_found" != "xno"; then
1237 elif test "x$use_pulse" = "xyes"; then
1238 AC_MSG_ERROR($pulse_not_found)
1242 AC_MSG_RESULT($pulse_not_found)
1246 AC_MSG_RESULT($pulse_disabled)
1251 if test "$host_vendor" = "apple" ; then
1253 AC_MSG_RESULT($hal_disabled)
1255 if test "$use_hal" = "yes"; then
1256 PKG_CHECK_MODULES([HAL], [hal],
1257 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1258 use_hal=no;AC_MSG_RESULT($hal_not_found))
1259 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1260 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1261 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1263 AC_MSG_RESULT($hal_disabled)
1265 if test "$use_hal" = "yes"; then
1266 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1271 if test "$host_vendor" = "apple" ; then
1273 AC_MSG_RESULT($avahi_disabled)
1275 if test "$use_avahi" = "yes"; then
1276 AC_CHECK_LIB([avahi-common], [main],,
1277 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1278 if test "$use_avahi" = "yes"; then
1279 #either both libs or none
1280 AC_CHECK_LIB([avahi-client], [main],,
1281 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1284 AC_MSG_RESULT($avahi_disabled)
1289 if test "$use_mdnsembedded" != "no"; then
1290 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1291 [if test "$use_mdnsembedded" = "yes"; then
1292 AC_MSG_ERROR($mdnsembedded_not_found)
1294 elif test "$use_mdnsembedded" != "no"; then
1295 AC_MSG_NOTICE($mdnsembedded_not_found)
1296 use_mdnsembedded="no"
1300 if test $use_mdnsembedded != "no"; then
1304 AC_MSG_RESULT($mdnsembedded_disabled)
1307 AC_SUBST(USE_MDNSEMBEDDED)
1310 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1311 AC_MSG_NOTICE($x11_enabled)
1312 PKG_CHECK_MODULES([X11], [x11],
1313 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1314 AC_MSG_ERROR($missing_library))
1315 PKG_CHECK_MODULES([XEXT], [xext],
1316 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1317 AC_MSG_ERROR($missing_library))
1318 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1320 AC_MSG_RESULT($x11_disabled)
1324 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1326 AC_MSG_RESULT($xrandr_disabled)
1328 if test "$use_xrandr" = "yes" ; then
1329 AC_CHECK_LIB([Xrandr], [main],,
1330 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1332 AC_MSG_RESULT($xrandr_disabled)
1337 if test "$use_waveform" = "yes"; then
1338 AC_MSG_NOTICE($waveform_enabled)
1341 AC_MSG_NOTICE($waveform_disabled)
1346 if test "$use_spectrum" = "yes"; then
1347 AC_MSG_NOTICE($spectrum_enabled)
1350 AC_MSG_NOTICE($spectrum_disabled)
1355 if test "$host_vendor" = "apple" ; then
1356 AC_MSG_NOTICE($goom_disabled)
1359 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1360 AC_MSG_NOTICE($goom_enabled)
1363 AC_MSG_NOTICE($goom_disabled)
1369 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1370 AC_MSG_NOTICE($rsxs_disabled)
1373 AC_MSG_NOTICE($rsxs_enabled)
1375 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1376 if test "$host_vendor" != "apple" ; then
1377 PKG_CHECK_MODULES([XT], [xt],
1378 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1379 AC_MSG_ERROR($missing_library))
1380 PKG_CHECK_MODULES([XMU], [xmu],
1381 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1382 AC_MSG_ERROR($missing_library))
1387 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1388 AC_MSG_NOTICE($fishbmc_disabled)
1392 AC_MSG_NOTICE($fishbmc_enabled)
1397 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1398 AC_MSG_NOTICE($projectm_disabled)
1402 AC_MSG_NOTICE($projectm_enabled)
1408 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1409 use_skin_touched=yes
1411 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1417 if test "x$use_ssh" = "xno"; then
1418 AC_MSG_NOTICE($ssh_disabled)
1421 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1422 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1426 if test "$use_librtmp" != "no"; then
1427 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1428 [if test "$use_librtmp" = "yes"; then
1429 AC_MSG_ERROR($librtmp_not_found)
1430 elif test "$use_librtmp" != "no"; then
1431 AC_MSG_NOTICE($librtmp_not_found)
1435 if test "$use_librtmp" != "no"; then
1436 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1438 if test "$use_librtmp" != "no"; then
1439 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1442 AC_MSG_NOTICE($librtmp_disabled)
1446 if test "x$use_samba" != "xno"; then
1447 AC_CHECK_LIB([smbclient], [main],,
1448 use_samba=no;AC_MSG_ERROR($missing_library))
1451 AC_MSG_RESULT($samba_disabled)
1455 if test "x$use_samba" != "xno"; then
1456 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1461 if test "$use_libnfs" != "no"; then
1462 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1463 [if test "$use_libnfs" = "yes"; then
1464 AC_MSG_ERROR($libnfs_not_found)
1466 elif test "$use_libnfs" != "no"; then
1467 AC_MSG_NOTICE($libnfs_not_found)
1472 if test "$use_libnfs" != "no"; then
1473 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1475 if test "$use_libnfs" != "no"; then
1476 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1481 AC_MSG_NOTICE($libnfs_disabled)
1486 if test "x$use_libafpclient" != "xno"; then
1487 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1488 [if test "x$use_libafpclient" = "xyes"; then
1489 AC_MSG_ERROR($libafpclient_not_found)
1490 elif test "x$use_libafpclient" != "xno"; then
1491 AC_MSG_NOTICE($libafpclient_not_found)
1492 use_libafpclient="no"
1495 if test "x$use_libafpclient" != "xno"; then
1496 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1497 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1501 AC_MSG_NOTICE($libafpclient_disabled)
1504 # libplist for airplay feature
1506 if test "$use_airplay" != "no"; then
1507 AC_CHECK_HEADER([plist/plist.h],,
1508 [if test "$use_airplay" = "yes"; then
1509 AC_MSG_ERROR($libplist_not_found)
1510 elif test "$use_airplay" != "no"; then
1511 AC_MSG_NOTICE($libplist_not_found)
1516 if test "$use_airplay" != "no"; then
1517 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1519 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1523 # libshairplay for AirTunes (prefered lib)
1525 if test "x$use_airtunes" != "xno"; then
1526 AC_CHECK_HEADERS([shairplay/raop.h],,
1527 [if test "x$use_airtunes" = "xyes"; then
1528 AC_MSG_ERROR($libshairplay_not_found)
1529 elif test "x$use_airtunes" != "xno"; then
1530 AC_MSG_NOTICE($libshairplay_not_found)
1535 if test "x$use_airtunes" != "xno"; then
1536 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [use_airtunes])
1539 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1540 [[#include <shairplay/raop.h>]])
1541 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1544 #libshairport - as a fallback for AirTunes
1545 if test "x$USE_AIRTUNES" == "x0"; then
1546 AC_CHECK_HEADERS([shairport/shairport.h],,
1547 [if test "x$use_airtunes" = "xyes"; then
1548 AC_MSG_ERROR($libshairport_not_found)
1549 elif test "x$use_airtunes" != "xno"; then
1550 AC_MSG_NOTICE($libshairport_not_found)
1555 if test "x$use_airtunes" != "xno"; then
1556 XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
1558 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1559 [[#include <shairport/shairport.h>]])
1560 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1567 if test "$host_vendor" = "apple" ; then
1569 AC_MSG_NOTICE($libudev_disabled)
1571 if test "$use_libudev" = "auto"; then
1572 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1573 elif test "$use_libudev" = "yes" ; then
1574 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1576 AC_MSG_NOTICE($libudev_disabled)
1579 if test "x$use_libudev" != "xno"; then
1580 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1581 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1588 # if libudev is available, we don't need libusb
1589 if test "x$use_libudev" != "xno"; then
1591 AC_MSG_NOTICE($libusb_disabled_udev_found)
1593 if test "$host_vendor" = "apple" ; then
1595 AC_MSG_NOTICE($libusb_disabled)
1597 if echo "$ARCH" | grep -q freebsd ; then
1598 AC_CHECK_LIB([usb],[main],
1599 [use_libusb="yes";USB_LIBS="-lusb"],
1600 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1601 elif test "$use_libusb" = "auto"; then
1602 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1603 elif test "$use_libusb" = "yes"; then
1604 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1606 AC_MSG_NOTICE($libusb_disabled)
1609 if test "x$use_libusb" != "xno"; then
1610 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1611 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1618 if test "x$use_libcec" != "xno"; then
1619 # libcec is dyloaded, so we need to check for its headers and link any depends.
1620 if test "x$use_libcec" != "xno"; then
1621 if test "x$use_libcec" != "xauto"; then
1622 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1624 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1627 if test "x$use_libcec" != "xno"; then
1628 INCLUDES="$INCLUDES $CEC_CFLAGS"
1629 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1630 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1631 AC_MSG_NOTICE($libcec_enabled)
1634 AC_MSG_NOTICE($libcec_disabled)
1639 AC_MSG_NOTICE($libcec_disabled)
1643 if test "$use_libcap" != "no"; then
1644 AC_CHECK_HEADERS([sys/capability.h],,
1645 [if test "$use_libcap" = "yes"; then
1646 AC_MSG_ERROR($libcap_not_found)
1647 elif test "$use_libcap" != "no"; then
1648 AC_MSG_NOTICE($libcap_not_found)
1652 if test "$use_libcap" != "no"; then
1653 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1655 if test "$use_libcap" != "no"; then
1656 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1659 AC_MSG_NOTICE($libcap_disabled)
1662 ### External libraries checks
1664 # Hacks for supporting libav
1667 if test "$use_libav_hacks" = "yes"; then
1668 export PKG_CONFIG_PATH="${srcdir}/lib/xbmc-libav-hacks/pkgconfig/:$PKG_CONFIG_PATH"
1670 AC_DEFINE([USE_LIBAV_HACKS], [1], [Whether to use libav compatibility hacks.])
1674 if test "$use_external_ffmpeg" = "yes"; then
1675 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale libswresample"
1677 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1678 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1679 AC_MSG_ERROR($missing_library))
1681 # in case the headers are in a custom directory
1682 SAVE_CPPFLAGS="$CPPFLAGS"
1683 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1685 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1686 [AC_MSG_ERROR($missing_headers)])
1688 AC_MSG_NOTICE($external_ffmpeg_enabled)
1689 USE_EXTERNAL_FFMPEG=1
1690 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1692 CPPFLAGS="$SAVE_CPPFLAGS"
1694 AC_MSG_NOTICE($external_ffmpeg_disabled)
1695 USE_EXTERNAL_FFMPEG=0
1698 echo "Checking for SWIG installation"
1699 AC_PATH_PROG(SWIG_EXE, swig, "none")
1700 if test "$SWIG_EXE" = "none"; then
1701 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1702 if test "$SWIG20_EXE" != "none" ; then
1703 SWIG_EXE=$SWIG20_EXE
1706 if test "$SWIG_EXE" = "none"; then
1707 AC_MSG_ERROR($missing_program)
1709 final_message="$final_message\n SWIG Available:\tYes"
1711 echo "Checking for a jre installation"
1712 AC_PATH_PROG(JAVA_EXE, java, "none")
1713 if test "$JAVA_EXE" = "none"; then
1714 AC_MSG_ERROR($missing_program)
1716 final_message="$final_message\n JRE Available:\tYes"
1718 echo "Checking for doxygen installation"
1719 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1720 if test "$DOXYGEN_EXE" = "none"; then
1721 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1722 final_message="$final_message\n Doxygen Available:\tNo"
1725 final_message="$final_message\n Doxygen Available:\tYes"
1730 if test "x$use_vdpau" != "xno"; then
1731 if test "$host_vendor" = "apple" ; then
1732 if test "x$use_vdpau" = "xyes"; then
1733 AC_MSG_ERROR([VDPAU not supported on this platform])
1736 AC_MSG_NOTICE($vdpau_disabled)
1741 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1742 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1743 [if test "x$use_vdpau" = "xyes"; then
1745 AC_MSG_ERROR([$vdpau_not_found])
1749 AC_MSG_RESULT($vdpau_not_found)
1754 AC_MSG_NOTICE($vdpau_disabled)
1758 if test "x$use_vaapi" != "xno"; then
1759 if test "$host_vendor" = "apple" ; then
1760 if test "x$use_vaapi" = "xyes"; then
1761 AC_MSG_ERROR([VAAPI not supported on this platform])
1764 AC_MSG_NOTICE($vaapi_disabled)
1768 initial_val=$use_vaapi
1769 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1770 if test "x$use_vaapi" != "xno"; then
1771 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1774 if test "x$use_vaapi" = "xno"; then
1775 if test "x$initial_val" = "xyes"; then
1776 AC_MSG_ERROR($vaapi_not_found)
1778 AC_MSG_RESULT($vaapi_not_found)
1782 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1787 AC_MSG_NOTICE($vaapi_disabled)
1792 if test "x$use_crystalhd" != "xno"; then
1793 SAVE_CFLAGS="$CFLAGS"
1794 CFLAGS="-D__LINUX_USER__"
1795 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1796 [ if test "x$use_crystalhd" = "xyes"; then
1797 AC_MSG_ERROR($crystalhd_not_found)
1800 AC_MSG_RESULT($crystalhd_not_found)
1804 CFLAGS="$SAVE_CFLAGS"
1805 if test "$host_vendor" != "apple"; then
1806 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1808 if test "x$use_crystalhd" != "xno"; then
1809 SAVE_CFLAGS="$CFLAGS"
1810 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1811 # check for new crystalhd lib
1813 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1814 #include <libcrystalhd/bc_dts_defs.h>
1815 PBC_INFO_CRYSTAL bCrystalInfo;])],
1816 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1817 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1818 CFLAGS="$SAVE_CFLAGS"
1822 AC_MSG_NOTICE($crystalhd_disabled)
1827 if test "x$use_vtbdecoder" != "xno"; then
1828 if test "$host_vendor" = "apple" ; then
1829 HAVE_VIDEOTOOLBOXDECODER=1
1830 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1831 AC_MSG_NOTICE($vtbdecoder_enabled)
1833 if test "x$use_vtbdecoder" = "xyes"; then
1834 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1837 AC_MSG_NOTICE($vtbdecoder_disabled)
1841 AC_MSG_NOTICE($vtbdecoder_disabled)
1845 if test "$host_vendor" = "apple" ; then
1848 AC_MSG_NOTICE($openmax_disabled)
1849 elif test "$target_platform" = "target_raspberry_pi"; then
1852 AC_MSG_NOTICE($openmax_disabled)
1854 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1855 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1856 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1857 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1858 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1859 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1860 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1861 AC_MSG_ERROR($openmax_not_found))
1863 AC_MSG_NOTICE($openmax_disabled)
1869 # yajl version check (yajl_version.h was added in yajl 2.0)
1870 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1871 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1874 # additional internal players
1875 case $add_players in
1877 AC_CHECK_HEADER([amplayer/player_error.h],, AC_MSG_ERROR($missing_headers))
1878 XB_ADD_PLAYER([AMLPLAYER], [amlplayer])
1881 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1885 # additional internal codecs
1888 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
1889 XB_ADD_CODEC([LIBAMCODEC], [amcodec])
1892 LIBS+="-L${prefix}/opt/android-libs -lstdc++ -lutils -lcutils -lstagefright -lbinder -lui -lgui"
1893 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright])
1898 # platform specific bin utilities
1899 if test "$build_vendor" != "apple" ; then
1900 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1901 if test "$HAVE_GAWK" = "no" ; then
1902 AC_MSG_ERROR($missing_program)
1906 if test "$use_arch" != "arm" ; then
1907 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1908 if test "$HAVE_CMAKE" = "no" ; then
1909 AC_MSG_ERROR($missing_program)
1913 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1914 if test "$HAVE_GPERF" = "no" ; then
1915 AC_MSG_ERROR($missing_program)
1918 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1919 if test "$HAVE_UNZIP" = "no" ; then
1920 AC_MSG_ERROR($missing_program)
1923 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
1924 if test "$HAVE_ZIP" = "no" ; then
1925 AC_MSG_ERROR($missing_program)
1928 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
1929 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
1930 if test "$HAVE_NASM" = "no" ; then
1931 AC_MSG_ERROR($missing_program)
1935 # Checks for header files.
1939 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
1940 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
1941 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
1942 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
1943 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
1945 # Checks for typedefs, structures, and compiler characteristics.
1961 AC_CHECK_MEMBERS([struct stat.st_rdev])
1970 if test "$cross_compiling" = "yes"; then
1971 final_message="$final_message\n Crosscomp.:\tYes"
1972 if [[ -d "$NATIVE_ROOT" ]]; then
1973 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
1974 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
1975 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
1976 if test "$host_vendor" != "apple" ; then
1977 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
1979 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
1982 final_message="$final_message\n Crosscomp.:\tNo"
1985 final_message="$final_message\n target ARCH:\t$use_arch"
1986 final_message="$final_message\n target CPU:\t$use_cpu"
1988 if test "$use_gles" = "yes"; then
1989 final_message="$final_message\n OpenGLES:\tYes"
1994 if test "$use_gl" = "yes"; then
1995 final_message="$final_message\n OpenGL:\tYes"
1998 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
1999 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2004 if test "$use_alsa" = "yes"; then
2006 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2007 final_message="$final_message\n ALSA:\t\tYes"
2010 final_message="$final_message\n ALSA:\t\tNo"
2013 if test "$use_dbus" = "yes"; then
2014 final_message="$final_message\n DBUS:\t\tYes"
2016 final_message="$final_message\n DBUS:\t\tNo"
2019 if test "x$use_vdpau" != "xno"; then
2020 final_message="$final_message\n VDPAU:\tYes"
2022 final_message="$final_message\n VDPAU:\tNo"
2025 if test "x$use_vaapi" != "xno"; then
2026 final_message="$final_message\n VAAPI:\tYes"
2028 final_message="$final_message\n VAAPI:\tNo"
2031 if test "x$use_crystalhd" != "xno"; then
2032 final_message="$final_message\n CrystalHD:\tYes"
2034 final_message="$final_message\n CrystalHD:\tNo"
2037 if test "x$use_vtbdecoder" != "xno"; then
2038 final_message="$final_message\n VTBDecoder:\tYes"
2040 final_message="$final_message\n VTBDecoder:\tNo"
2043 if test "$use_openmax" != "no"; then
2044 final_message="$final_message\n OpenMax:\tYes"
2046 final_message="$final_message\n OpenMax:\tNo"
2049 if test "$use_joystick" = "yes"; then
2050 final_message="$final_message\n Joystick:\tYes"
2051 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2053 final_message="$final_message\n Joystick:\tNo"
2056 if test "$use_xrandr" = "yes"; then
2057 final_message="$final_message\n XRandR:\tYes"
2060 final_message="$final_message\n XRandR:\tNo"
2064 if test "$use_waveform" = "yes"; then
2065 final_message="$final_message\n Waveform:\tYes"
2067 final_message="$final_message\n Waveform:\tNo"
2070 if test "$use_spectrum" = "yes"; then
2071 final_message="$final_message\n Spectrum:\tYes"
2073 final_message="$final_message\n Spectrum:\tNo"
2076 if test "$use_goom" = "yes"; then
2077 final_message="$final_message\n GOOM:\t\tYes"
2079 final_message="$final_message\n GOOM:\t\tNo"
2082 if test "$use_rsxs" = "yes"; then
2083 final_message="$final_message\n RSXS:\t\tYes"
2085 final_message="$final_message\n RSXS:\t\tNo"
2088 if test "$use_fishbmc" = "yes"; then
2089 final_message="$final_message\n FishBMC:\tYes"
2091 final_message="$final_message\n FishBMC:\tNo"
2094 if test "$use_projectm" = "yes"; then
2095 final_message="$final_message\n ProjectM:\tYes"
2097 final_message="$final_message\n ProjectM:\tNo"
2100 if test "$use_skin_touched" = "yes"; then
2101 final_message="$final_message\n Skin Touched:\tYes"
2103 final_message="$final_message\n Skin Touched:\tNo"
2106 if test "$use_x11" = "yes"; then
2107 final_message="$final_message\n X11:\t\tYes"
2109 final_message="$final_message\n X11:\t\tNo"
2112 if test "$use_libbluray" = "yes"; then
2113 final_message="$final_message\n Bluray:\tYes"
2115 final_message="$final_message\n Bluray:\tNo"
2118 if test "x$use_texturepacker" != "xno"; then
2119 final_message="$final_message\n TexturePacker:Yes"
2122 final_message="$final_message\n TexturePacker:No"
2126 if test "$use_mid" = "yes"; then
2127 final_message="$final_message\n MID Support:\tYes"
2128 SDL_DEFINES="$SDL_DEFINES -DMID"
2130 final_message="$final_message\n MID Support:\tNo"
2135 if test "x$use_ccache" != "xno"; then
2136 AC_PATH_PROG(CCACHE,ccache,none)
2137 if test "$ac_cv_path_CCACHE" = "none"; then
2138 if test "x$use_ccache" = "xyes"; then
2139 AC_MSG_ERROR([ccache not found.]);
2141 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2142 final_message="$final_message\n ccache:\tNo"
2145 CC="$ac_cv_path_CCACHE $CC"
2146 CXX="$ac_cv_path_CCACHE $CXX"
2147 AC_MSG_NOTICE(enabling ccache)
2148 final_message="$final_message\n ccache:\tYes"
2151 final_message="$final_message\n ccache:\tNo"
2154 if test "$use_alsa" = "yes"; then
2155 final_message="$final_message\n ALSA Support:\tYes"
2157 final_message="$final_message\n ALSA Support:\tNo"
2160 if test "x$use_pulse" != "xno"; then
2161 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2162 final_message="$final_message\n PulseAudio:\tYes"
2164 XBMC_STANDALONE_SH_PULSE=/dev/null
2165 final_message="$final_message\n PulseAudio:\tNo"
2168 if test "$use_hal" = "yes"; then
2169 final_message="$final_message\n HAL Support:\tYes"
2171 final_message="$final_message\n HAL Support:\tNo"
2175 if test "$use_dvdcss" = "yes"; then
2176 AC_MSG_NOTICE($dvdcss_enabled)
2177 final_message="$final_message\n DVDCSS:\tYes"
2179 SKIP_CONFIG_DVDCSS=0
2180 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2182 AC_MSG_NOTICE($dvdcss_disabled)
2183 final_message="$final_message\n DVDCSS:\tNo"
2185 SKIP_CONFIG_DVDCSS=1
2186 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2188 if test "$host_vendor" = "apple"; then
2189 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2192 # Google Test Framework
2193 if test "$configure_gtest" = "yes"; then
2194 AC_MSG_NOTICE($gtest_enabled)
2195 final_message="$final_message\n Google Test Framework Configured:\tYes"
2199 AC_MSG_NOTICE($gtest_disabled)
2200 final_message="$final_message\n Google Test Framework Configured:\tNo"
2205 if test "$use_avahi" = "yes"; then
2206 final_message="$final_message\n Avahi:\tYes"
2208 final_message="$final_message\n Avahi:\tNo"
2211 if test "$use_mdnsembedded" != "no"; then
2212 final_message="$final_message\n mDNSEmbedded:\tYes"
2214 final_message="$final_message\n mDNSEmbedded:\tNo"
2217 if test "$use_nonfree" = "yes"; then
2218 final_message="$final_message\n Non-free:\tYes"
2220 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2223 final_message="$final_message\n Non-free:\tNo"
2226 if test "$use_asap" = "yes"; then
2227 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2228 if test "$HAVE_GDC" = "no"; then
2229 AC_MSG_ERROR($missing_program);
2231 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2232 if test "$HAVE_FPC" = "no"; then
2233 AC_MSG_ERROR($missing_program);
2236 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2237 final_message="$final_message\n ASAP Codec:\tYes"
2240 final_message="$final_message\n ASAP Codec:\tNo"
2243 if test "$use_mysql" = "yes"; then
2244 final_message="$final_message\n MySQL:\tYes"
2247 final_message="$final_message\n MySQL:\tNo"
2250 if test "$use_webserver" = "yes"; then
2251 final_message="$final_message\n Webserver:\tYes"
2254 final_message="$final_message\n Webserver:\tNo"
2258 if test "$use_libssh" != "no"; then
2259 final_message="$final_message\n libssh support:\tYes"
2261 final_message="$final_message\n libssh support:\tNo"
2264 if test "$use_librtmp" != "no"; then
2265 final_message="$final_message\n libRTMP support:\tYes"
2267 final_message="$final_message\n libRTMP support:\tNo"
2270 if test "x$use_samba" != "xno"; then
2271 final_message="$final_message\n libsmbclient support:\tYes"
2273 final_message="$final_message\n libsmbclient support:\tNo"
2276 if test "$use_libnfs" != "no"; then
2277 final_message="$final_message\n libnfs client support:Yes"
2279 final_message="$final_message\n libnfs client support:No"
2282 if test "x$use_libafpclient" != "xno"; then
2283 final_message="$final_message\n libafpclient support:\tYes"
2285 final_message="$final_message\n libafpclient support:\tNo"
2288 if test "$use_airplay" != "no"; then
2289 final_message="$final_message\n AirPlay support:\tYes"
2291 final_message="$final_message\n AirPLay support:\tNo"
2294 if test "x$use_airtunes" != "xno"; then
2295 if test "x$USE_LIBSHAIRPORT" == "x1"; then
2296 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2298 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2301 final_message="$final_message\n AirTunes support:\tNo"
2304 if test "x$use_upnp" != "xno"; then
2305 final_message="$final_message\n UPnP support:\t\tYes"
2307 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2310 final_message="$final_message\n UPnP support:\t\tNo"
2313 if test "$use_optical_drive" = "yes"; then
2314 final_message="$final_message\n Optical drive:\tYes"
2316 final_message="$final_message\n Optical drive:\tNo"
2319 if test "x$use_libudev" != "xno"; then
2320 final_message="$final_message\n libudev support:\tYes"
2322 final_message="$final_message\n libudev support:\tNo"
2325 if test "x$use_libusb" != "xno"; then
2326 final_message="$final_message\n libusb support:\tYes"
2328 final_message="$final_message\n libusb support:\tNo"
2331 if test "x$use_libcec" != "xno"; then
2332 final_message="$final_message\n libcec support:\tYes"
2334 final_message="$final_message\n libcec support:\tNo"
2337 if test "x$use_libmp3lame" != "xno"; then
2338 final_message="$final_message\n libmp3lame support:\tYes"
2340 final_message="$final_message\n libmp3lame support:\tNo"
2343 if test "x$use_libvorbisenc" != "xno"; then
2344 final_message="$final_message\n libvorbisenc support:\tYes"
2346 final_message="$final_message\n libvorbisenc support:\tNo"
2349 if test "x$use_libcap" != "xno"; then
2350 final_message="$final_message\n libcap support:\tYes"
2352 final_message="$final_message\n libcap support:\tNo"
2355 if test "x$add_players" != "xno"; then
2356 final_message="$final_message\n additional players:\tYes, $add_players"
2358 final_message="$final_message\n additional players:\tNo"
2361 if test "x$add_codecs" != "xno"; then
2362 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2364 final_message="$final_message\n additional codecs:\tNo"
2367 ### External libraries messages
2369 if test "$use_external_ffmpeg" = "yes"; then
2370 final_message="$final_message\n External FFmpeg:\tYes"
2372 final_message="$final_message\n External FFmpeg:\tNo"
2375 if test "$host_vendor" = "apple" ; then
2376 # built internal but referenced as external, we link directly to them.
2377 # this MUST be the last thing before OUTPUT_FILES as they do not
2378 # exist until after we build FFMpeg.
2379 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2380 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2381 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2382 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2383 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2384 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2385 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2389 DISABLE_PVR_ADDON_CONFIG=1
2390 if [[ -f "pvr-addons/Makefile.am" ]]; then
2391 final_message="$final_message\n PVR add-ons:\t\tYes"
2393 DISABLE_PVR_ADDON_CONFIG=0
2395 final_message="$final_message\n PVR add-ons:\t\tNo"
2398 OUTPUT_FILES="Makefile \
2400 addons/skin.confluence/media/Makefile \
2402 xbmc/cdrip/Makefile \
2403 xbmc/cores/Makefile \
2404 xbmc/cores/VideoRenderers/Makefile \
2405 xbmc/cores/dvdplayer/Makefile \
2407 lib/libdvd/Makefile \
2408 xbmc/cores/DllLoader/Makefile \
2409 xbmc/cores/DllLoader/exports/Makefile \
2410 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2411 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2412 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2413 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2414 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2415 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2416 xbmc/cores/AudioEngine/Makefile \
2417 xbmc/cores/paplayer/Makefile \
2418 xbmc/cores/amlplayer/Makefile \
2419 xbmc/cores/omxplayer/Makefile \
2420 lib/timidity/Makefile \
2421 lib/xbadpcm/Makefile \
2423 lib/nosefart/Makefile \
2424 lib/libsidplay2/Makefile \
2425 lib/vgmstream/Makefile \
2426 lib/snesapu/SNES/SNESAPU/Makefile \
2427 lib/stsound/StSoundLibrary/Makefile \
2428 xbmc/cores/playercorefactory/Makefile \
2429 xbmc/music/karaoke/Makefile \
2431 xbmc/guilib/Makefile \
2432 xbmc/interfaces/Makefile \
2433 xbmc/network/Makefile \
2434 xbmc/network/upnp/Makefile \
2435 lib/libRTV/Makefile \
2436 lib/libexif/Makefile \
2437 lib/libXDAAP/Makefile \
2438 lib/cmyth/Makefile \
2439 lib/libhdhomerun/Makefile \
2440 lib/libsquish/Makefile \
2441 lib/cximage-6.0/Makefile \
2442 lib/libUPnP/Makefile \
2443 xbmc/DllPaths_generated.h \
2444 xbmc/DllPaths_generated_android.h \
2445 xbmc/freebsd/Makefile \
2446 xbmc/linux/Makefile \
2447 xbmc/filesystem/Makefile \
2448 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2449 xbmc/visualizations/XBMCProjectM/Makefile \
2450 xbmc/visualizations/Goom/Makefile \
2451 xbmc/visualizations/OpenGLSpectrum/Makefile \
2452 xbmc/visualizations/fishBMC/Makefile \
2453 xbmc/visualizations/WaveForm/Makefile \
2454 lib/addons/library.xbmc.addon/Makefile \
2455 lib/addons/library.xbmc.codec/Makefile \
2456 lib/addons/library.xbmc.gui/Makefile \
2457 lib/addons/library.xbmc.pvr/Makefile \
2458 xbmc/visualizations/EGLHelpers/Makefile \
2459 tools/Linux/xbmc.sh \
2460 tools/Linux/xbmc-standalone.sh \
2461 tools/TexturePacker/Makefile \
2462 tools/EventClients/Clients/OSXRemote/Makefile \
2463 xbmc/peripherals/bus/Makefile \
2464 xbmc/peripherals/devices/Makefile \
2465 xbmc/android/activity/Makefile \
2466 xbmc/android/loader/Makefile \
2467 xbmc/android/jni/Makefile \
2468 xbmc/utils/Makefile \
2469 xbmc/main/Makefile \
2470 project/cmake/xbmc-config.cmake"
2472 if test "$use_skin_touched" = "yes"; then
2473 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2476 OUTPUT_FILES="$OUTPUT_FILES \
2477 xbmc/interfaces/python/Makefile \
2478 xbmc/interfaces/python/test/Makefile"
2480 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2481 # .dummy.am does nothing.
2482 AC_CONFIG_FILES([.dummy])
2484 AC_CONFIG_FILES([${OUTPUT_FILES}])
2485 OUTPUT_FILES="$OUTPUT_FILES \
2491 AC_SUBST(CXX_FOR_BUILD)
2492 AC_SUBST(CC_FOR_BUILD)
2493 AC_SUBST(CFLAGS_FOR_BUILD)
2494 AC_SUBST(CXXFLAGS_FOR_BUILD)
2495 AC_SUBST(LDFLAGS_FOR_BUILD)
2496 AC_SUBST(SDL_DEFINES)
2497 AC_SUBST(BUILD_DVDCSS)
2498 AC_SUBST(DISABLE_WAVEFORM)
2499 AC_SUBST(DISABLE_SPECTRUM)
2500 AC_SUBST(DISABLE_GOOM)
2501 AC_SUBST(DISABLE_RSXS)
2502 AC_SUBST(DISABLE_FISHBMC)
2503 AC_SUBST(DISABLE_PROJECTM)
2504 AC_SUBST(USE_SKIN_TOUCHED)
2505 AC_SUBST(USE_EXTERNAL_FFMPEG)
2506 AC_SUBST(USE_LIBAV_HACKS)
2507 AC_SUBST(PYTHON_VERSION)
2508 AC_SUBST(OUTPUT_FILES)
2509 AC_SUBST(HAVE_XBMC_NONFREE)
2510 AC_SUBST(USE_ASAP_CODEC)
2511 AC_SUBST(LIBCURL_BASENAME)
2512 AC_SUBST(LIBFLAC_BASENAME)
2513 AC_SUBST(LIBVORBISFILE_BASENAME)
2514 AC_SUBST(LIBMODPLUG_BASENAME)
2515 AC_SUBST(LIBMAD_BASENAME)
2516 AC_SUBST(LIBOGG_BASENAME)
2517 AC_SUBST(LIBVORBISENC_BASENAME)
2518 AC_SUBST(LIBVORBIS_BASENAME)
2519 AC_SUBST(LIBASS_BASENAME)
2520 AC_SUBST(LIBMEPG2_BASENAME)
2521 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2522 AC_SUBST(USE_OPENGL)
2523 AC_SUBST(USE_OPENGLES)
2526 AC_SUBST(USE_CRYSTALHD)
2527 AC_SUBST(USE_LIBSMBCLIENT)
2528 AC_SUBST(USE_LIBNFS)
2529 AC_SUBST(USE_LIBAFPCLIENT)
2530 AC_SUBST(USE_AIRPLAY)
2531 AC_SUBST(USE_OPENMAX)
2533 AC_SUBST(USE_XRANDR)
2535 AC_SUBST(USE_TEXTUREPACKER)
2536 AC_SUBST(USE_AIRTUNES)
2537 AC_SUBST(USE_LIBUDEV)
2538 AC_SUBST(USE_LIBUSB)
2539 AC_SUBST(USE_LIBCEC)
2541 AC_SUBST(USE_WEB_SERVER)
2543 AC_SUBST(USE_OMXLIB)
2544 AC_SUBST(USE_ANDROID)
2545 AC_SUBST(GTEST_CONFIGURED)
2546 AC_SUBST(USE_DOXYGEN)
2547 AC_SUBST(USE_PVR_ADDONS)
2549 # pushd and popd are not available in other shells besides bash, so implement
2550 # our own pushd/popd functions
2555 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2557 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2560 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2565 if [[ -n "$XB_DIRSTACK" ]]; then
2566 XB_DIRSTACK="${XB_DIRSTACK#* }"
2567 cd "${XB_DIRSTACK%% *}"
2570 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2574 # Function to run the configure scripts in our submodules
2575 # Consists of three paramaters, the path to the submodule, the configure command
2576 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2577 # running the script, anything else if not.
2578 AC_DEFUN([XB_CONFIG_MODULE],[
2579 AC_CONFIG_COMMANDS_POST([
2580 if [[ $3 != "1" ]]; then
2581 if [[ -d $1 ]]; then
2584 if [[ $? -ne 0 ]]; then
2586 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2591 AC_MSG_ERROR([[Submodule $1 does not exist]])
2594 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2599 XB_CONFIG_MODULE([lib/ffmpeg], [
2600 if test "$host_vendor" = "apple" ; then
2601 ffmpg_config="--target-os=$ffmpeg_target_os"
2602 # handle disables first, we do individual enables later
2603 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2604 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2605 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2606 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2607 ffmpg_config="$ffmpg_config --enable-vda --disable-crystalhd"
2608 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2610 # handle conditional enables/disables
2611 if test "$use_debug" = "no"; then
2612 ffmpg_config="$ffmpg_config --disable-debug"
2614 if test "$use_cpu" != "no"; then
2615 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2617 if test "$use_arch" != "no"; then
2618 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2620 if test "$use_arch" = "arm"; then
2621 ffmpg_config="$ffmpg_config --enable-pic"
2622 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2623 if test "$use_neon" = "yes"; then
2624 ffmpg_config="$ffmpg_config --enable-neon"
2626 ffmpg_config="$ffmpg_config --disable-neon"
2629 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2631 if test "$use_ffmpeg_libvorbis" = "yes"; then
2632 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2634 ffmpg_config="$ffmpg_config --disable-libvorbis"
2637 # handle individual enables
2638 ffmpg_config="$ffmpg_config --enable-gpl"
2639 ffmpg_config="$ffmpg_config --enable-postproc"
2640 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2641 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts --enable-muxer=asf --enable-muxer=ipod"
2642 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2"
2643 ffmpg_config="$ffmpg_config --enable-protocol=http"
2644 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2646 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2649 ffmpg_config="$ffmpg_config --cc=clang" ;;
2651 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2654 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2655 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2657 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2659 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2660 # dependency files in the right place, replace it with something that works
2663 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2666 # ffmpeg will use yasm found at ${prefix}/bin during configure
2667 # but then hardcodes 'yasm' in config.mak, fix it.
2668 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2669 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2670 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2675 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2677 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2679 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2680 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2681 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2682 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2683 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2684 --target-os=$ffmpeg_target_os \
2686 --enable-muxer=spdif \
2687 --enable-muxer=adts \
2688 --enable-muxer=asf \
2689 --enable-muxer=ipod \
2690 --disable-encoders \
2691 --enable-encoder=ac3 \
2692 --enable-encoder=aac \
2693 --enable-encoder=wmav2 \
2694 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2695 --disable-decoder=mpeg_xvmc \
2699 --disable-ffserver \
2701 --disable-crystalhd \
2706 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2707 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2708 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2709 --enable-protocol=http \
2711 --enable-runtime-cpudetect \
2712 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2713 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2714 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2715 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2716 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2718 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2719 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2721 ], [$USE_EXTERNAL_FFMPEG])
2723 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2728 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2729 --host=$host_alias \
2730 --build=$build_alias \
2731 --target=$target_alias \
2735 ], [$SKIP_CONFIG_DVDCSS])
2737 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2739 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src" \
2740 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2741 --host=$host_alias \
2742 --build=$build_alias \
2743 --target=$target_alias \
2749 $MAKE dvdread-config &&
2750 mkdir -p `pwd`/../includes/dvdread
2751 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2752 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2755 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2757 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
2758 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2759 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2760 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2761 --host=$host_alias \
2762 --build=$build_alias \
2763 --target=$target_alias \
2769 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2771 rm -f CMakeCache.txt && \
2772 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2773 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2774 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2775 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2776 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2777 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2778 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2779 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2780 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2781 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2782 if test "$host_vendor" = "apple" ; then
2783 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2784 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2785 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2786 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2789 ], [$DISABLE_PROJECTM])
2791 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2794 CXXFLAGS="$CXXFLAGS" \
2795 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2796 --host=$host_alias \
2797 --build=$build_alias \
2798 --target=$target_alias \
2804 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2805 if test "$host_vendor" = "apple"; then
2806 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";
2808 TEMPCFLAGS="$CFLAGS";
2813 CFLAGS="$TEMPCFLAGS" \
2814 CXXFLAGS="$CXXFLAGS" \
2815 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2816 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2817 --host=$host_alias \
2818 --build=$build_alias \
2819 --target=$target_alias \
2820 --without-xscreensaver \
2823 --disable-fieldlines \
2827 --disable-hyperspace \
2830 if echo "$ARCH" | grep -q freebsd ; then
2831 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2835 XB_CONFIG_MODULE([lib/cpluff], [
2836 ./configure --disable-nls \
2837 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2838 --host=$host_alias \
2839 --build=$build_alias \
2840 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2841 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2844 XB_CONFIG_MODULE([lib/gtest], [
2849 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2850 --host=$host_alias \
2851 --build=$build_alias \
2852 --target=$target_alias \
2856 ], [$SKIP_CONFIG_GTEST])
2858 XB_CONFIG_MODULE([pvr-addons], [
2860 --prefix="${prefix}" \
2861 --host=$host_alias \
2862 --build=$build_alias \
2863 --target=$target_alias \
2867 CXXFLAGS="$CXXFLAGS"
2868 ], [$DISABLE_PVR_ADDON_CONFIG])
2872 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2873 echo -e "$final_message\n"