2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [12.9.7], [http://trac.xbmc.org])
6 AC_CONFIG_HEADERS([xbmc/config.h])
8 m4_include([m4/ax_python_devel.m4])
10 AC_CONFIG_AUX_DIR([build-aux])
11 AM_INIT_AUTOMAKE([foreign])
15 echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
18 # check for enabling additional players
19 AC_DEFUN([XB_ADD_PLAYER],
21 AC_MSG_CHECKING([for $2])
25 AC_DEFINE([HAS_$1], 1, [using $2])
26 AC_MSG_RESULT([enabling $2])
29 AC_MSG_RESULT([$2 is not enabled])
33 # check for enabling additional codecs
34 AC_DEFUN([XB_ADD_CODEC],
36 AC_MSG_CHECKING([for $2])
40 AC_DEFINE([HAS_$1], 1, [using $2])
41 AC_MSG_RESULT([enabling $2])
44 AC_MSG_RESULT([$2 is not enabled])
48 # check for library basenames
49 AC_DEFUN([XB_FIND_SONAME],
51 if echo "$host" | grep -q freebsd ; then
52 AC_MSG_CHECKING([for lib$2 soname])
53 $1_SONAME=[`ldconfig -r | sed -n "s;.* \(/.*lib$2\.so.*\)$;\1;p" | head -n 1`]
54 if test x$$1_SONAME != x ; then
55 $1_SONAME=[`basename $$1_SONAME`]
57 elif [[ "$host_vendor" != "apple" ]]; then
58 AC_MSG_CHECKING([for lib$2 soname])
59 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
60 if [[ -z $$1_FILENAME ]]; then
61 #try gold linker syntax
62 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "lib$2")
64 if [[ ! -z $$1_FILENAME ]]; then
65 $1_SONAME=$($OBJDUMP -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}')
68 AC_MSG_CHECKING([for lib$2 dylib])
69 gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
70 env_lib_path=[`echo $LDFLAGS | sed 's/-L[ ]*//g'`]
71 if test "$cross_compiling" = yes; then
74 host_lib_path="/usr/lib /usr/local/lib"
76 for path in $gcc_lib_path $env_lib_path $host_lib_path; do
77 lib=[`ls -- $path/lib$2.dylib 2>/dev/null`]
78 if test x$lib != x; then
79 # we want the path/name that is embedded in the dylib
80 $1_SONAME=[`otool -L $lib | grep -v lib$2.dylib | grep lib$2 | awk '{V=1; print $V}'`]
81 $1_SONAME=[`basename $$1_SONAME`]
85 if [[ -z "$$1_SONAME" ]]; then
87 if test -z "$3" || test "x${$3}" = "xyes"; then
88 AC_MSG_ERROR([Unable to determine soname of lib$2 library])
90 AC_MSG_WARN([Unable to determine soname of lib$2 library])
92 AC_MSG_WARN([lib$2 support disabled])
95 AC_MSG_RESULT([$$1_SONAME])
100 # Function to push and pop libs and includes for a command
101 AC_DEFUN([XB_PUSH_FLAGS], [
103 SAVE_INCLUDES="$INCLUDES"
108 INCLUDES="$SAVE_INCLUDES"
111 # General message strings
112 configure_debug="ERROR: this is a configure debug statement"
113 missing_library="Could not find a required library. Please see the README for your platform."
114 missing_headers="Could not find some required headers. Please see the README for your platform."
115 missing_program="Could not find a required program. Please see the README for your platform."
116 xrandr_not_found="== Could not find libXRandR. SDL will be used for resolution support. =="
117 xrandr_disabled="== XRandR support disabled. SDL will be used for resolution support. =="
118 goom_enabled="== GOOM enabled. =="
119 goom_disabled="== GOOM disabled. =="
120 alsa_disabled="== ALSA support disabled. =="
121 rsxs_enabled="== RSXS enabled. =="
122 rsxs_disabled="== RSXS disabled. =="
123 fishbmc_enabled="== FishBMC enabled. =="
124 fishbmc_disabled="== FishBMC disabled. =="
125 projectm_enabled="== ProjectM enabled. =="
126 projectm_disabled="== ProjectM disabled. =="
127 x11_enabled="== X11 enabled. =="
128 x11_disabled="== X11 disabled. =="
129 pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
130 pulse_disabled="== PulseAudio support manually disabled. =="
131 dvdcss_enabled="== DVDCSS support enabled. =="
132 dvdcss_disabled="== DVDCSS support disabled. =="
133 hal_not_found="== Could not find hal. HAL support disabled. =="
134 halstorage_not_found="== Could not find hal-storage. HAL support disabled. =="
135 hal_disabled="== HAL support disabled. =="
136 avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
137 avahi_disabled="== Avahi support disabled. =="
138 mdnsembedded_not_found="== Could not find mDNSEmbedded. Might prevent zeroconf support. =="
139 mdnsembedded_disabled="== mDNSEmbedded support disabled. =="
140 vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
141 vdpau_disabled="== VDPAU support manually disabled. =="
142 vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
143 vaapi_disabled="== VAAPI support manually disabled. =="
144 crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
145 crystalhd_disabled="== CrystalHD support manually disabled. =="
146 vtbdecoder_enabled="== VTBDecoder support enabled. =="
147 vtbdecoder_disabled="== VTBDecoder support manually disabled. =="
148 openmax_disabled="== OpenMax support manually disabled. =="
149 openmax_not_found="== Could not find libnvomx. OpenMax support disabled. =="
150 ssh_not_found="== Could not find libssh. =="
151 ssh_disabled="== SSH SFTP disabled. =="
152 librtmp_not_found="== Could not find libRTMP. RTMP support disabled. =="
153 librtmp_disabled="== RTMP support disabled. =="
154 libnfs_not_found="== Could not find libnfs. NFS client support disabled. =="
155 libnfs_disabled="== NFS support disabled. =="
156 libafpclient_not_found="== Could not find libafpclient. AFP client support disabled. =="
157 libafpclient_disabled="== AFP support disabled. =="
158 libshairport_not_found="== Could not find libshairport. =="
159 libshairplay_not_found="== Could not find libshairplay. =="
160 samba_disabled="== SAMBA support disabled. =="
161 libplist_not_found="== Could not find libplist. AirPlay support disabled. =="
162 libplist_disabled="== AirPlay support disabled. =="
163 alsa_not_found="== Could not find ALSA. ALSA support disabled. =="
164 dbus_not_found="== Could not find DBUS. DBUS support disabled. =="
165 libcap_disabled="== Capabilities detection support disabled. =="
166 libcap_not_found="== Could not find libcap. Capabilities detection support disabled. =="
167 gtest_enabled="== Google Test Framework will be configured. =="
168 gtest_disabled="== Google Test Framework will not be configured. =="
170 libudev_not_found="== Could not find libudev. Will use polling to check for device changes. =="
171 libudev_disabled="== udev support disabled. Will use polling to check for device changes. =="
172 libusb_not_found="== Could not find libusb. Plug and play USB device support will not be available. =="
173 libusb_disabled="== libusb disabled. Plug and play USB device support will not be available. =="
174 libusb_disabled_udev_found="== libusb disabled. =="
175 libcec_enabled="== libcec enabled. =="
176 libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
178 # External library message strings
179 external_libraries_enabled="== Use of all supported external libraries enabled. =="
180 external_libraries_disabled="== Use of all supported external libraries disabled. =="
181 external_ffmpeg_enabled="== Use of external ffmpeg enabled. =="
182 external_ffmpeg_disabled="== Use of external ffmpeg disabled. =="
183 ffmpeg_vdpau_not_supported="== External ffmpeg doesn't support VDPAU. VDPAU support disabled. =="
184 dashes="------------------------"
185 final_message="\n XBMC Configuration:"
186 final_message="\n$dashes$final_message\n$dashes"
188 AC_ARG_ENABLE([shared-lib],
189 [AS_HELP_STRING([--enable-shared-lib],
190 [build libxbmc. helpful for tests (default is no)])],
191 [build_shared_lib=$enableval],
192 [build_shared_lib=no])
194 AC_ARG_ENABLE([debug],
195 [AS_HELP_STRING([--enable-debug],
196 [enable debugging information (default is yes)])],
197 [use_debug=$enableval],
201 [AS_HELP_STRING([--with-arch],
202 [build with given arch passing to internal ffmpeg (default is no, needed for crosscompiling)])],
206 AC_ARG_WITH([platform],
207 [AS_HELP_STRING([--with-platform],
208 [use a pre-configured config for common arm boards])],
209 [use_platform=$withval],
213 [AS_HELP_STRING([--with-cpu],
214 [build with given cpu passing to ffmpeg (default is no)])],
218 AC_ARG_ENABLE([neon],
219 [AS_HELP_STRING([--enable-neon],
220 [enable neon passing to ffmpeg (default is no)])],
221 [use_neon=$enableval],
224 AC_ARG_ENABLE([optimizations],
225 [AS_HELP_STRING([--enable-optimizations],
226 [enable optimization (default is yes)])],
227 [use_optimizations=$enableval],
228 [use_optimizations=yes])
231 [AS_HELP_STRING([--enable-gl],
232 [enable OpenGL rendering (default is yes)])],
236 AC_ARG_ENABLE([gles],
237 [AS_HELP_STRING([--enable-gles],
238 [enable OpenGLES rendering (default is no)])],
239 [use_gles=$enableval],
243 [AS_HELP_STRING([--enable-sdl],
244 [enable SDL (default is auto)])],
245 [use_sdl=$enableval],
248 AC_ARG_ENABLE([vdpau],
249 [AS_HELP_STRING([--enable-vdpau],
250 [enable VDPAU decoding (default is auto)])],
251 [use_vdpau=$enableval],
254 AC_ARG_ENABLE([vaapi],
255 [AS_HELP_STRING([--enable-vaapi],
256 [enable VAAPI decoding (default is auto)])],
257 [use_vaapi=$enableval],
260 AC_ARG_ENABLE([crystalhd],
261 [AS_HELP_STRING([--enable-crystalhd],
262 [enable CrystalHD decoding (default is auto)])],
263 [use_crystalhd=$enableval],
264 [use_crystalhd=auto])
266 AC_ARG_ENABLE([vtbdecoder],
267 [AS_HELP_STRING([--enable-vtbdecoder],
268 [enable VTBDecoder decoding (default is auto)])],
269 [use_vtbdecoder=$enableval],
270 [use_vtbdecoder=auto])
272 AC_ARG_ENABLE([openmax],
273 [AS_HELP_STRING([--enable-openmax],
274 [enable OpenMax decoding (default is auto, requires OpenGLES)])],
275 [use_openmax=$enableval],
278 AC_ARG_ENABLE([tegra],
279 [AS_HELP_STRING([--enable-tegra],
280 [enable Tegra2 arm (default is no)])],
281 [use_tegra=$enableval],
284 AC_ARG_ENABLE([profiling],
285 [AS_HELP_STRING([--enable-profiling],
286 [enable gprof profiling (default is no)])],
287 [use_profiling=$enableval],
290 AC_ARG_ENABLE([joystick],
291 [AS_HELP_STRING([--enable-joystick],
292 [enable SDL joystick support (default is yes)])],
293 [use_joystick=$enableval],
296 AC_ARG_ENABLE([xrandr],
297 [AS_HELP_STRING([--enable-xrandr],
298 [enable XRandR support (default is yes)])],
299 [use_xrandr=$enableval],
302 AC_ARG_ENABLE([goom],
303 [AS_HELP_STRING([--enable-goom],
304 [enable GOOM visualisation (default is no)])],
305 [use_goom=$enableval],
308 AC_ARG_ENABLE([rsxs],
309 [AS_HELP_STRING([--enable-rsxs],
310 [enable really slick X screensavers (default is yes)])],
311 [use_rsxs=$enableval],
314 AC_ARG_ENABLE([fishbmc],
315 [AS_HELP_STRING([--enable-fishbmc],
316 [enable FishBMC visualisation (default is yes)])],
317 [use_fishbmc=$enableval],
320 AC_ARG_ENABLE([projectm],
321 [AS_HELP_STRING([--enable-projectm],
322 [enable ProjectM visualisation (default is yes)])],
323 [use_projectm=$enableval],
327 [AS_HELP_STRING([--enable-x11],
328 [enable x11 (default is yes) 'Linux Only'])],
329 [use_x11=$enableval],
332 AC_ARG_ENABLE([ccache],
333 [AS_HELP_STRING([--enable-ccache],
334 [enable building with ccache feature (default is auto)])],
335 [use_ccache=$enableval],
338 AC_ARG_ENABLE([alsa],
339 [AS_HELP_STRING([--disable-alsa],
340 [disable ALSA support (only for linux/freebsd)])],
341 [use_alsa=$enableval],
344 AC_ARG_ENABLE([pulse],
345 [AS_HELP_STRING([--enable-pulse],
346 [enable PulseAudio support (default is no)])],
347 [use_pulse=$enableval],
351 [AS_HELP_STRING([--disable-ssh],
352 [disable SSH SFTP support (default is enabled)])],
353 [use_ssh=$enableval],
356 AC_ARG_ENABLE([rtmp],
357 [AS_HELP_STRING([--enable-rtmp],
358 [enable RTMP support via librtmp (default is auto)])],
359 [use_librtmp=$enableval],
362 AC_ARG_ENABLE([samba],
363 [AS_HELP_STRING([--disable-samba],
364 [disable SAMBA support (default is enabled)])],
365 [use_samba=$enableval],
369 [AS_HELP_STRING([--enable-nfs],
370 [enable NFS support via libnfs (default is auto)])],
371 [use_libnfs=$enableval],
374 AC_ARG_ENABLE([afpclient],
375 [AS_HELP_STRING([--enable-afpclient],
376 [enable AFP support via libafpclient (default is auto)])],
377 [use_libafpclient=$enableval],
378 [use_libafpclient=auto])
380 AC_ARG_ENABLE([airplay],
381 [AS_HELP_STRING([--enable-airplay],
382 [enable AirPlay support(default is auto)])],
383 [use_airplay=$enableval],
386 AC_ARG_ENABLE([airtunes],
387 [AS_HELP_STRING([--enable-airtunes],
388 [enable AirTunes support(default is auto)])],
389 [use_airtunes=$enableval],
392 AC_ARG_ENABLE([upnp],
393 [AS_HELP_STRING([--disable-upnp],
394 [disable UPnP support (default is enabled)])],
395 [use_upnp=$enableval],
398 AC_ARG_ENABLE([ffmpeg_libvorbis],
399 [AS_HELP_STRING([--enable-ffmpeg-libvorbis],
400 [enable FFmpeg vorbis encoding (default is no)])],
401 [use_ffmpeg_libvorbis=$enableval],
402 [use_ffmpeg_libvorbis=no])
404 AC_ARG_ENABLE([dvdcss],
405 [AS_HELP_STRING([--enable-dvdcss],
406 [enable DVDCSS support (default is yes)])],
407 [use_dvdcss=$enableval],
411 [AS_HELP_STRING([--enable-mid],
412 [enable MID support (default is no)])],
413 [use_mid=$enableval],
417 [AS_HELP_STRING([--disable-hal],
418 [disable HAL support (default is enabled if hal and hal-storage is found)])],
419 [use_hal=$enableval],
422 AC_ARG_ENABLE([avahi],
423 [AS_HELP_STRING([--disable-avahi],
424 [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
425 [use_avahi=$enableval],
428 AC_ARG_ENABLE([mdnsembedded],
429 [AS_HELP_STRING([--disable-mdnsembedded],
430 [disable mDNSEmbedded support (default is auto)])],
431 [use_mdnsembedded=$enableval],
432 [use_mdnsembedded=auto])
434 AC_ARG_ENABLE([non-free],
435 [AS_HELP_STRING([--disable-non-free],
436 [disable componentents with non-compliant licenses])],
437 [use_nonfree=$enableval],
440 AC_ARG_ENABLE([asap-codec],
441 [AS_HELP_STRING([--enable-asap-codec],
442 [enable ASAP ADPCM support])],
443 [use_asap=$enableval],
446 AC_ARG_ENABLE([mysql],
447 [AS_HELP_STRING([--disable-mysql],
449 [use_mysql=$enableval],
452 AC_ARG_ENABLE([webserver],
453 [AS_HELP_STRING([--disable-webserver],
454 [disable webserver])],
455 [use_webserver=$enableval],
458 AC_ARG_ENABLE([optical-drive],
459 [AS_HELP_STRING([--disable-optical-drive],
460 [disable optical drive])],
461 [use_optical_drive=$enableval],
462 [use_optical_drive=yes])
464 AC_ARG_ENABLE([libbluray],
465 [AS_HELP_STRING([--enable-libbluray],
466 [enable libbluray support])],
467 [use_libbluray=$enableval],
468 [use_libbluray=auto])
470 AC_ARG_ENABLE([texturepacker],
471 [AS_HELP_STRING([--enable-texturepacker],
472 [enable texturepacker support (default is yes)])],
473 [use_texturepacker=$enableval],
474 [use_texturepacker=auto])
476 AC_ARG_WITH([lirc-device],
477 [AS_HELP_STRING([--with-lirc-device=file],
478 [specify the default LIRC device (default is /dev/lircd)])],
479 [lirc_device=$withval],
480 [lirc_device=/dev/lircd])
481 AC_DEFINE_UNQUOTED([LIRC_DEVICE], ["$lirc_device"], [Default LIRC device])
483 AC_ARG_ENABLE([udev],
484 [AS_HELP_STRING([--enable-udev],
485 [enable udev support (default is auto)])],
486 [use_libudev=$enableval],
489 AC_ARG_ENABLE([libusb],
490 [AS_HELP_STRING([--enable-libusb],
491 [enable libusb support (default is auto)])],
492 [use_libusb=$enableval],
495 AC_ARG_ENABLE([libcec],
496 [AS_HELP_STRING([--enable-libcec],
497 [enable libcec support (default is auto)])],
498 [use_libcec=$enableval],
501 AC_ARG_ENABLE([libmp3lame],
502 [AS_HELP_STRING([--enable-libmp3lame],
503 [enable lame mp3 encoder support (default is auto)])],
504 [use_libmp3lame=$enableval],
505 [use_libmp3lame=auto])
507 AC_ARG_ENABLE([libvorbisenc],
508 [AS_HELP_STRING([--enable-libvorbisenc],
509 [enable vorbis encoder support (default is auto)])],
510 [use_libvorbisenc=$enableval],
511 [use_libvorbisenc=auto])
513 AC_ARG_ENABLE([libcap],
514 [AS_HELP_STRING([--enable-libcap],
515 [enable libcap support (default is auto)])],
516 [use_libcap=$enableval],
519 AC_ARG_ENABLE([player],
520 [AS_HELP_STRING([--enable-player],
521 [enable additional players from a list of comma separated names, (default is none, choices are amlplayer, omxplayer)])],
522 [add_players=$enableval],
525 AC_ARG_ENABLE([gtest],
526 [AS_HELP_STRING([--enable-gtest],
527 [configure Google Test Framework (default is no)])],
528 [configure_gtest=$enableval],
529 [configure_gtest=no])
531 AC_ARG_ENABLE([codec],
532 [AS_HELP_STRING([--enable-codec],
533 [enable additional codecs from a list of comma separated names, (default is none, choices are amcodec, libstagefright)])],
534 [add_codecs=$enableval],
537 ### External libraries options
538 AC_ARG_ENABLE([external-libraries],
539 [AS_HELP_STRING([--enable-external-libraries],
540 [enable use of all supported external libraries (default is no) 'Linux only'])],
541 [use_external_libraries=$enableval],
542 [use_external_libraries=no])
544 AC_ARG_ENABLE([external-ffmpeg],
545 [AS_HELP_STRING([--enable-external-ffmpeg],
546 [enable use of external ffmpeg libraries (default is no) 'Linux only'])],
547 [use_external_ffmpeg=$enableval],
548 [use_external_ffmpeg=$use_external_libraries])
550 AC_ARG_ENABLE([libav-compat],
551 [AS_HELP_STRING([--enable-libav-compat],
552 [build a wrapper around libav to provide the functions needed by XBMC. This is
553 *not* supported by XBMC developers and is provided only for convenience. (default is no) 'Linux only'])],
554 [use_libav_hacks=$enableval],
555 [use_libav_hacks=no])
557 ### End of external library options
559 if test "x$host_vendor" != "xapple"; then
560 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
561 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
564 # Checks for programs.
565 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
567 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
568 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
571 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
576 OBJDUMP="${OBJDUMP:-objdump}"
578 # ffmpeg needs the output of uname -s (e.x. linux, darwin) for the target_os
579 # there is no autoconf variable which will give
580 # the correct output format when doing cross compilation
581 # so we have to use our own var here
582 # defaults to the build side target_os
583 # and should be overridden for cross below (see android)
584 ffmpeg_target_os=$(tolower $(uname -s))
586 # host detection and setup
588 i*86*-android-linux-gnu*)
589 target_platform=target_android
593 ffmpeg_target_os=linux
597 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
601 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
606 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
609 ARCH="x86_64-freebsd"
611 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
623 use_texturepacker_native=yes
627 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
628 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
629 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
630 PYTHON_NOVERSIONCHECK="no-check"
631 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_IOS -D_LINUX")
636 use_texturepacker_native=yes
638 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
640 powerpc-apple-darwin*)
646 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
648 powerpc-*-linux-gnu*)
650 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC")
652 powerpc64-*-linux-gnu*)
653 ARCH="powerpc64-linux"
654 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC64")
660 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
661 ffmpeg_target_os=linux
668 arm*-*linux-android*)
669 target_platform=target_android
673 ffmpeg_target_os=linux
683 AC_MSG_ERROR(unsupported host ($host))
688 check_sdl_arch=[`file $USE_TEXTUREPACKER_NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
689 if test "x$check_sdl_arch" = "xi386" ; then
690 DARWIN_NATIVE_ARCH=-m32
691 elif test "x$check_sdl_arch" = "xx86_64" ; then
692 DARWIN_NATIVE_ARCH=-m64
694 AC_SUBST([DARWIN_NATIVE_ARCH])
696 if test "$target_platform" = "target_android" ; then
698 use_texturepacker_native=yes
699 webserver_checkdepends=yes
700 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_ANDROID")
701 CFLAGS="$CFLAGS -Wno-psabi"
702 CXXFLAGS="$CXXFLAGS -Wno-psabi"
703 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
706 case $use_platform in
708 target_platform=target_raspberry_pi
710 use_texturepacker=yes
711 use_texturepacker_native=yes
714 use_hardcoded_tables="yes"
717 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI")
718 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
719 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
722 ffmpeg_target_os=linux
727 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
728 if test "$GIT_REV" = ""; then
729 if test -f VERSION ; then
730 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
731 elif test "$HAVE_GIT" = "yes"; then
732 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
737 final_message="$final_message\n git Rev.:\t${GIT_REV}"
739 if test "$host_vendor" = "apple"; then
740 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
742 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
745 if test "$build_shared_lib" = "yes"; then
746 final_message="$final_message\n Shared lib\tYes"
747 AC_SUBST(USE_LIBXBMC,1)
751 # platform debug flags
752 if test "$use_debug" = "yes"; then
753 final_message="$final_message\n Debugging:\tYes"
754 if test "$use_profiling" = "yes"; then
755 final_message="$final_message\n Profiling:\tYes"
756 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
758 final_message="$final_message\n Profiling:\tNo"
759 DEBUG_FLAGS="-g -D_DEBUG -Wall"
762 final_message="$final_message\n Debugging:\tNo"
763 if test "$use_profiling" = "yes"; then
764 final_message="$final_message\n Profiling:\tYes"
765 DEBUG_FLAGS="-pg -DNDEBUG=1"
767 final_message="$final_message\n Profiling:\tNo"
768 DEBUG_FLAGS="-DNDEBUG=1"
771 CFLAGS="$CFLAGS $DEBUG_FLAGS"
772 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
775 if test "$use_optimizations" = "yes"; then
776 final_message="$final_message\n Optimization:\tYes"
777 if test "$target_platform" = "target_raspberry_pi"; then
781 CXXFLAGS="-O2 $CXXFLAGS"
785 final_message="$final_message\n Optimization:\tNo"
789 # platform specific flags
790 if echo "$ARCH" | grep -q "freebsd" ; then
791 LOCALBASE="${LOCALBASE:-/usr/local}"
792 CFLAGS="$CFLAGS -I$LOCALBASE/include"
793 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
794 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
795 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
796 FFMPEG_EXTRACFLAGS="-I$LOCALBASE/include"
798 if test "$host_vendor" = "apple" ; then
799 # standard xbmc paths
800 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
801 if test "$use_arch" != "arm"; then
802 LIBS="$LIBS -framework ApplicationServices"
803 LIBS="$LIBS -framework AudioUnit"
804 LIBS="$LIBS -framework AudioToolbox"
805 LIBS="$LIBS -framework Cocoa"
806 LIBS="$LIBS -framework CoreAudio"
807 LIBS="$LIBS -framework CoreVideo"
808 LIBS="$LIBS -framework CoreServices"
809 LIBS="$LIBS -framework CoreFoundation"
810 LIBS="$LIBS -framework DiskArbitration"
811 LIBS="$LIBS -framework IOKit"
812 LIBS="$LIBS -framework IOSurface"
813 LIBS="$LIBS -framework QuartzCore"
814 LIBS="$LIBS -framework SystemConfiguration"
816 USE_EXTERNAL_FFMPEG=1
817 elif test "$target_platform" = "target_raspberry_pi"; then
820 elif test "$use_arch" = "arm"; then
821 CFLAGS="$CFLAGS -mno-apcs-stack-check"
822 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
823 FFMPEG_EXTRACFLAGS=""
824 if test "$use_tegra" = "yes"; then
825 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
826 SAVE_CFLAGS="$CFLAGS"
827 CFLAGS="-mfpu=vfpv3-d16"
829 [AC_LANG_SOURCE([int foo;])],
830 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
831 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
832 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
834 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
835 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
838 if test "$use_neon" = "yes"; then
839 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
840 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
841 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
846 # Checks for library functions.
849 AC_FUNC_CLOSEDIR_VOID
850 AC_FUNC_ERROR_AT_LINE
852 AC_PROG_GCC_TRADITIONAL
854 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
858 # Boxee is apparently having compile problems
859 # if HAVE_REALLOC is defined. Sort this later.
861 AC_FUNC_SELECT_ARGTYPES
862 AC_FUNC_SETVBUF_REVERSED
870 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])
872 # Check for various sizes
873 AC_CHECK_SIZEOF([int])
874 AC_CHECK_SIZEOF([size_t])
876 # Check for intrinsics
877 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
878 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
879 [have_builtin_sync_add_and_fetch=yes],
880 [have_builtin_sync_add_and_fetch=no])
881 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
882 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
883 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
884 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
887 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
888 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
889 [have_builtin_sync_sub_and_fetch=yes],
890 [have_builtin_sync_sub_and_fetch=no])
891 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
892 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
893 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
894 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
897 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
898 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
899 [have_builtin_sync_val_compare_and_swap=yes],
900 [have_builtin_sync_val_compare_and_swap=no])
901 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
902 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
903 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
904 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
907 # Add top source directory for all builds so we can use config.h
908 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
910 # Check inotify availability
911 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
913 # Checks for boost headers using CXX instead of CC
915 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
919 if test -z "$PYTHON_NOVERSIONCHECK"; then
920 AX_PYTHON_DEVEL([>= 2.4])
921 PYTHON_VERSION=$ac_python_version
924 if test -z "$PYTHON_VERSION"; then
925 AC_MSG_ERROR([Can't find a Python version.])
927 LIBS="$LIBS $PYTHON_LDFLAGS"
928 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
931 # Checks for platforms libraries.
932 if test "$use_gles" = "yes"; then
934 # GLES overwrites GL if both set to yes.
935 if test "$host_vendor" = "apple" ; then
936 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
937 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
938 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
940 if test "$target_platform" = "target_raspberry_pi"; then
941 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
942 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
943 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
944 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
946 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
947 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
951 if test "$use_gl" = "yes"; then
952 if test "$host_vendor" = "apple" ; then
953 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
954 LIBS="$LIBS -framework OpenGL"
955 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
956 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
957 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
958 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
959 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
961 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
962 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
963 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
966 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
967 AC_CHECK_LIB([SDL_gfx],[main])
971 # platform common libraries
972 if test "$use_mysql" = "yes"; then
973 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
974 if test "x$MYSQL_CONFIG" != "xno"; then
975 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
976 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
977 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
978 LIBS="$LIBS $MYSQL_LIBS"
981 AC_MSG_ERROR($missing_program)
984 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
985 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
986 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
987 AC_INCLUDES_DEFAULT()
988 [#include <mpeg2dec/mpeg2.h>])
989 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
990 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
991 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
992 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
993 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
994 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
995 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
996 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
998 # we need to check for the header because if it exists we set the openssl
999 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1000 # in MT manner correctly.
1001 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1002 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1003 if test "$gcrypt_headers_available" = "yes"; then
1004 # if we have the headers then we must have the lib
1005 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1006 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1007 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1010 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1011 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1012 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1013 if echo "$ARCH" | grep -q freebsd; then
1014 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1015 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1016 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1017 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1019 if test "$target_platform" != "target_android" ; then
1020 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1021 AC_CHECK_LIB([pthread], [pthread_setname_np],
1022 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1023 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1026 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1027 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1028 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1029 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1030 if test "$use_mysql" = "yes"; then
1031 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1033 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1034 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1035 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1036 if test "$target_platform" = "target_android" ; then
1037 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1038 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1039 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1041 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1042 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1043 AC_MSG_ERROR($missing_library))
1044 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1045 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1046 AC_MSG_ERROR($missing_library))
1047 PKG_CHECK_MODULES([PNG], [libpng],
1048 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1049 AC_MSG_ERROR($missing_library))
1050 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1051 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1052 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1053 AC_MSG_ERROR($missing_library))
1054 PKG_CHECK_MODULES([PCRE], [libpcre],
1055 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1056 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1057 AC_MSG_ERROR($missing_library))
1058 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1059 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1060 AC_MSG_ERROR($missing_library))
1061 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1062 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1063 AC_MSG_ERROR($missing_library))
1064 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1065 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1066 AC_MSG_ERROR($missing_library))
1068 if test "$use_optical_drive" = "yes"; then
1069 PKG_CHECK_MODULES([CDIO], [libcdio],
1070 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1071 AC_MSG_ERROR($missing_library))
1074 if test "$target_platform" = "target_android" ; then
1075 PKG_CHECK_MODULES([ZIP], [libzip],
1076 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1077 AC_MSG_ERROR($missing_library))
1080 # check for libbluray
1081 AS_CASE([x$use_libbluray],
1083 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1086 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1089 AS_CASE([x$use_libbluray],
1091 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1092 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1093 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1094 AC_SUBST([HAVE_LIBBLURAY], 1)
1095 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1096 AC_CHECK_DECL([BD_EVENT_IDLE],
1097 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1098 [[#include <libbluray/bluray.h>]]))
1100 AC_SUBST([HAVE_LIBBLURAY], 0)
1104 #Check to see if libs are needed for functions that are often built-in to libc
1105 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1106 AC_SEARCH_LIBS([dlopen],dl)
1107 AC_SEARCH_LIBS([clock_gettime],rt)
1108 AC_SEARCH_LIBS([dn_expand], resolv)
1109 AC_SEARCH_LIBS([_dn_expand], resolv)
1110 AC_SEARCH_LIBS([__dn_expand],resolv)
1112 # platform dependent libraries
1113 if test "$host_vendor" = "apple" ; then
1114 if test "$use_arch" != "arm"; then
1115 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1116 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1119 if test "$target_platform" != "target_android" ; then
1120 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1122 if test "x$use_alsa" != "xno"; then
1123 PKG_CHECK_MODULES([ALSA], [alsa],
1124 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1125 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1127 PKG_CHECK_MODULES([DBUS], [dbus-1],
1128 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1129 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1130 AC_MSG_NOTICE($missing_library); use_dbus=no)
1131 if test "x$use_sdl" != "xno"; then
1132 PKG_CHECK_MODULES([SDL], [sdl],
1133 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1134 AC_MSG_ERROR($missing_library))
1135 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1136 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1140 XB_FIND_SONAME([MAD], [mad])
1141 XB_FIND_SONAME([OGG], [ogg])
1142 XB_FIND_SONAME([CURL], [curl])
1143 XB_FIND_SONAME([FLAC], [FLAC])
1144 XB_FIND_SONAME([VORBIS], [vorbis])
1145 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1146 XB_FIND_SONAME([MODPLUG], [modplug])
1147 XB_FIND_SONAME([ASS], [ass])
1148 XB_FIND_SONAME([MPEG2], [mpeg2])
1151 if test "x$use_libmp3lame" != "xno"; then
1152 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1153 if test "x$use_libmp3lame" != "xno"; then
1154 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1157 AS_CASE([x$use_libmp3lame],
1159 AC_SUBST([HAVE_LIBMP3LAME], 0)
1162 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1163 AC_SUBST([HAVE_LIBMP3LAME], 1)
1166 if test "x$use_libvorbisenc" != "xno"; then
1167 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1168 if test "x$use_libvorbisenc" != "xno"; then
1169 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1172 AS_CASE([x$use_libvorbisenc],
1174 AC_SUBST([HAVE_LIBVORBISENC], 0)
1176 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1177 AC_SUBST([HAVE_LIBVORBISENC], 1)
1182 if test "$use_webserver" = "yes"; then
1183 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1187 if test "$use_optical_drive" = "yes"; then
1188 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1192 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1193 PKG_CHECK_MODULES([ALSA], [alsa],
1194 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1195 AC_MSG_ERROR($missing_library))
1196 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1199 AC_MSG_RESULT($alsa_disabled)
1203 if test "x$use_pulse" != "xno"; then
1204 if test "$host_vendor" = "apple" ; then
1205 if test "x$use_pulse" = "xyes"; then
1206 AC_MSG_ERROR($pulse_disabled)
1209 AC_MSG_RESULT($pulse_disabled)
1213 AC_CHECK_LIB([pulse],[main],,pulse_found="no")
1214 AC_CHECK_LIB([pulse-simple],[main],,pulse_found="no")
1216 if test "x$pulse_found" != "xno"; then
1218 elif test "x$use_pulse" = "xyes"; then
1219 AC_MSG_ERROR($pulse_not_found)
1223 AC_MSG_RESULT($pulse_not_found)
1227 AC_MSG_RESULT($pulse_disabled)
1232 if test "$host_vendor" = "apple" ; then
1234 AC_MSG_RESULT($hal_disabled)
1236 if test "$use_hal" = "yes"; then
1237 PKG_CHECK_MODULES([HAL], [hal],
1238 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1239 use_hal=no;AC_MSG_RESULT($hal_not_found))
1240 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1241 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1242 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1244 AC_MSG_RESULT($hal_disabled)
1246 if test "$use_hal" = "yes"; then
1247 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1252 if test "$host_vendor" = "apple" ; then
1254 AC_MSG_RESULT($avahi_disabled)
1256 if test "$use_avahi" = "yes"; then
1257 AC_CHECK_LIB([avahi-common], [main],,
1258 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1259 if test "$use_avahi" = "yes"; then
1260 #either both libs or none
1261 AC_CHECK_LIB([avahi-client], [main],,
1262 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1265 AC_MSG_RESULT($avahi_disabled)
1270 if test "$use_mdnsembedded" != "no"; then
1271 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1272 [if test "$use_mdnsembedded" = "yes"; then
1273 AC_MSG_ERROR($mdnsembedded_not_found)
1275 elif test "$use_mdnsembedded" != "no"; then
1276 AC_MSG_NOTICE($mdnsembedded_not_found)
1277 use_mdnsembedded="no"
1281 if test $use_mdnsembedded != "no"; then
1285 AC_MSG_RESULT($mdnsembedded_disabled)
1288 AC_SUBST(USE_MDNSEMBEDDED)
1291 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1292 AC_MSG_NOTICE($x11_enabled)
1293 PKG_CHECK_MODULES([X11], [x11],
1294 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1295 AC_MSG_ERROR($missing_library))
1296 PKG_CHECK_MODULES([XEXT], [xext],
1297 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1298 AC_MSG_ERROR($missing_library))
1299 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1301 AC_MSG_RESULT($x11_disabled)
1305 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1307 AC_MSG_RESULT($xrandr_disabled)
1309 if test "$use_xrandr" = "yes" ; then
1310 AC_CHECK_LIB([Xrandr], [main],,
1311 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1313 AC_MSG_RESULT($xrandr_disabled)
1318 if test "$host_vendor" = "apple" ; then
1319 AC_MSG_NOTICE($goom_disabled)
1322 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1323 AC_MSG_NOTICE($goom_enabled)
1326 AC_MSG_NOTICE($goom_disabled)
1332 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1333 AC_MSG_NOTICE($rsxs_disabled)
1336 AC_MSG_NOTICE($rsxs_enabled)
1338 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1339 if test "$host_vendor" != "apple" ; then
1340 PKG_CHECK_MODULES([XT], [xt],
1341 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1342 AC_MSG_ERROR($missing_library))
1343 PKG_CHECK_MODULES([XMU], [xmu],
1344 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1345 AC_MSG_ERROR($missing_library))
1350 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1351 AC_MSG_NOTICE($fishbmc_disabled)
1355 AC_MSG_NOTICE($fishbmc_enabled)
1360 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1361 AC_MSG_NOTICE($projectm_disabled)
1365 AC_MSG_NOTICE($projectm_enabled)
1371 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1372 use_skin_touched=yes
1374 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1380 if test "x$use_ssh" = "xno"; then
1381 AC_MSG_NOTICE($ssh_disabled)
1384 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1385 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1389 if test "$use_librtmp" != "no"; then
1390 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1391 [if test "$use_librtmp" = "yes"; then
1392 AC_MSG_ERROR($librtmp_not_found)
1393 elif test "$use_librtmp" != "no"; then
1394 AC_MSG_NOTICE($librtmp_not_found)
1398 if test "$use_librtmp" != "no"; then
1399 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1401 if test "$use_librtmp" != "no"; then
1402 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1405 AC_MSG_NOTICE($librtmp_disabled)
1409 if test "x$use_samba" != "xno"; then
1410 AC_CHECK_LIB([smbclient], [main],,
1411 use_samba=no;AC_MSG_ERROR($missing_library))
1414 AC_MSG_RESULT($samba_disabled)
1418 if test "x$use_samba" != "xno"; then
1419 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1424 if test "$use_libnfs" != "no"; then
1425 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1426 [if test "$use_libnfs" = "yes"; then
1427 AC_MSG_ERROR($libnfs_not_found)
1429 elif test "$use_libnfs" != "no"; then
1430 AC_MSG_NOTICE($libnfs_not_found)
1435 if test "$use_libnfs" != "no"; then
1436 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1438 if test "$use_libnfs" != "no"; then
1439 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1444 AC_MSG_NOTICE($libnfs_disabled)
1449 if test "x$use_libafpclient" != "xno"; then
1450 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1451 [if test "x$use_libafpclient" = "xyes"; then
1452 AC_MSG_ERROR($libafpclient_not_found)
1453 elif test "x$use_libafpclient" != "xno"; then
1454 AC_MSG_NOTICE($libafpclient_not_found)
1455 use_libafpclient="no"
1458 if test "x$use_libafpclient" != "xno"; then
1459 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1460 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1464 AC_MSG_NOTICE($libafpclient_disabled)
1467 # libplist for airplay feature
1469 if test "$use_airplay" != "no"; then
1470 AC_CHECK_HEADER([plist/plist.h],,
1471 [if test "$use_airplay" = "yes"; then
1472 AC_MSG_ERROR($libplist_not_found)
1473 elif test "$use_airplay" != "no"; then
1474 AC_MSG_NOTICE($libplist_not_found)
1479 if test "$use_airplay" != "no"; then
1480 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1482 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1486 # libshairplay for AirTunes (prefered lib)
1488 if test "x$use_airtunes" != "xno"; then
1489 AC_CHECK_HEADERS([shairplay/raop.h],,
1490 [if test "x$use_airtunes" = "xyes"; then
1491 AC_MSG_ERROR($libshairplay_not_found)
1492 elif test "x$use_airtunes" != "xno"; then
1493 AC_MSG_NOTICE($libshairplay_not_found)
1498 if test "x$use_airtunes" != "xno"; then
1499 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [use_airtunes])
1502 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1503 [[#include <shairplay/raop.h>]])
1504 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1507 #libshairport - as a fallback for AirTunes
1508 if test "x$USE_AIRTUNES" == "x0"; then
1509 AC_CHECK_HEADERS([shairport/shairport.h],,
1510 [if test "x$use_airtunes" = "xyes"; then
1511 AC_MSG_ERROR($libshairport_not_found)
1512 elif test "x$use_airtunes" != "xno"; then
1513 AC_MSG_NOTICE($libshairport_not_found)
1518 if test "x$use_airtunes" != "xno"; then
1519 XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
1521 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1522 [[#include <shairport/shairport.h>]])
1523 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1530 if test "$host_vendor" = "apple" ; then
1532 AC_MSG_NOTICE($libudev_disabled)
1534 if test "$use_libudev" = "auto"; then
1535 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1536 elif test "$use_libudev" = "yes" ; then
1537 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1539 AC_MSG_NOTICE($libudev_disabled)
1542 if test "x$use_libudev" != "xno"; then
1543 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1544 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1551 # if libudev is available, we don't need libusb
1552 if test "x$use_libudev" != "xno"; then
1554 AC_MSG_NOTICE($libusb_disabled_udev_found)
1556 if test "$host_vendor" = "apple" ; then
1558 AC_MSG_NOTICE($libusb_disabled)
1560 if echo "$ARCH" | grep -q freebsd ; then
1561 AC_CHECK_LIB([usb],[main],
1562 [use_libusb="yes";USB_LIBS="-lusb"],
1563 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1564 elif test "$use_libusb" = "auto"; then
1565 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1566 elif test "$use_libusb" = "yes"; then
1567 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1569 AC_MSG_NOTICE($libusb_disabled)
1572 if test "x$use_libusb" != "xno"; then
1573 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1574 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1581 if test "x$use_libcec" != "xno"; then
1582 # libcec is dyloaded, so we need to check for its headers and link any depends.
1583 if test "x$use_libcec" != "xno"; then
1584 if test "x$use_libcec" != "xauto"; then
1585 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1587 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1590 if test "x$use_libcec" != "xno"; then
1591 INCLUDES="$INCLUDES $CEC_CFLAGS"
1592 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1593 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1594 AC_MSG_NOTICE($libcec_enabled)
1597 AC_MSG_NOTICE($libcec_disabled)
1602 AC_MSG_NOTICE($libcec_disabled)
1606 if test "$use_libcap" != "no"; then
1607 AC_CHECK_HEADERS([sys/capability.h],,
1608 [if test "$use_libcap" = "yes"; then
1609 AC_MSG_ERROR($libcap_not_found)
1610 elif test "$use_libcap" != "no"; then
1611 AC_MSG_NOTICE($libcap_not_found)
1615 if test "$use_libcap" != "no"; then
1616 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1618 if test "$use_libcap" != "no"; then
1619 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1622 AC_MSG_NOTICE($libcap_disabled)
1625 ### External libraries checks
1627 # Hacks for supporting libav
1630 if test "$use_libav_hacks" = "yes"; then
1631 export PKG_CONFIG_PATH="${srcdir}/lib/xbmc-libav-hacks/pkgconfig/:$PKG_CONFIG_PATH"
1633 AC_DEFINE([USE_LIBAV_HACKS], [1], [Whether to use libav compatibility hacks.])
1637 if test "$use_external_ffmpeg" = "yes"; then
1638 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale libswresample"
1640 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1641 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1642 AC_MSG_ERROR($missing_library))
1644 # in case the headers are in a custom directory
1645 SAVE_CPPFLAGS="$CPPFLAGS"
1646 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1648 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1649 [AC_MSG_ERROR($missing_headers)])
1651 AC_MSG_NOTICE($external_ffmpeg_enabled)
1652 USE_EXTERNAL_FFMPEG=1
1653 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1655 CPPFLAGS="$SAVE_CPPFLAGS"
1657 AC_MSG_NOTICE($external_ffmpeg_disabled)
1658 USE_EXTERNAL_FFMPEG=0
1661 echo "Checking for SWIG installation"
1662 AC_PATH_PROG(SWIG_EXE, swig, "none")
1663 if test "$SWIG_EXE" = "none"; then
1664 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1665 if test "$SWIG20_EXE" != "none" ; then
1666 SWIG_EXE=$SWIG20_EXE
1669 if test "$SWIG_EXE" = "none"; then
1670 AC_MSG_ERROR($missing_program)
1672 final_message="$final_message\n SWIG Available:\tYes"
1674 echo "Checking for a jre installation"
1675 AC_PATH_PROG(JAVA_EXE, java, "none")
1676 if test "$JAVA_EXE" = "none"; then
1677 AC_MSG_ERROR($missing_program)
1679 final_message="$final_message\n JRE Available:\tYes"
1681 echo "Checking for doxygen installation"
1682 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1683 if test "$DOXYGEN_EXE" = "none"; then
1684 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1685 final_message="$final_message\n Doxygen Available:\tNo"
1688 final_message="$final_message\n Doxygen Available:\tYes"
1693 if test "x$use_vdpau" != "xno"; then
1694 if test "$host_vendor" = "apple" ; then
1695 if test "x$use_vdpau" = "xyes"; then
1696 AC_MSG_ERROR([VDPAU not supported on this platform])
1699 AC_MSG_NOTICE($vdpau_disabled)
1704 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1705 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1706 [if test "x$use_vdpau" = "xyes"; then
1708 AC_MSG_ERROR([$vdpau_not_found])
1712 AC_MSG_RESULT($vdpau_not_found)
1717 AC_MSG_NOTICE($vdpau_disabled)
1721 if test "x$use_vaapi" != "xno"; then
1722 if test "$host_vendor" = "apple" ; then
1723 if test "x$use_vaapi" = "xyes"; then
1724 AC_MSG_ERROR([VAAPI not supported on this platform])
1727 AC_MSG_NOTICE($vaapi_disabled)
1731 initial_val=$use_vaapi
1732 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1733 if test "x$use_vaapi" != "xno"; then
1734 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1737 if test "x$use_vaapi" = "xno"; then
1738 if test "x$initial_val" = "xyes"; then
1739 AC_MSG_ERROR($vaapi_not_found)
1741 AC_MSG_RESULT($vaapi_not_found)
1745 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1750 AC_MSG_NOTICE($vaapi_disabled)
1755 if test "x$use_crystalhd" != "xno"; then
1756 SAVE_CFLAGS="$CFLAGS"
1757 CFLAGS="-D__LINUX_USER__"
1758 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1759 [ if test "x$use_crystalhd" = "xyes"; then
1760 AC_MSG_ERROR($crystalhd_not_found)
1763 AC_MSG_RESULT($crystalhd_not_found)
1767 CFLAGS="$SAVE_CFLAGS"
1768 if test "$host_vendor" != "apple"; then
1769 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1771 if test "x$use_crystalhd" != "xno"; then
1772 SAVE_CFLAGS="$CFLAGS"
1773 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1774 # check for new crystalhd lib
1776 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1777 #include <libcrystalhd/bc_dts_defs.h>
1778 PBC_INFO_CRYSTAL bCrystalInfo;])],
1779 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1780 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1781 CFLAGS="$SAVE_CFLAGS"
1785 AC_MSG_NOTICE($crystalhd_disabled)
1790 if test "x$use_vtbdecoder" != "xno"; then
1791 if test "$host_vendor" = "apple" ; then
1792 HAVE_VIDEOTOOLBOXDECODER=1
1793 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1794 AC_MSG_NOTICE($vtbdecoder_enabled)
1796 if test "x$use_vtbdecoder" = "xyes"; then
1797 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1800 AC_MSG_NOTICE($vtbdecoder_disabled)
1804 AC_MSG_NOTICE($vtbdecoder_disabled)
1808 if test "$host_vendor" = "apple" ; then
1811 AC_MSG_NOTICE($openmax_disabled)
1812 elif test "$target_platform" = "target_raspberry_pi"; then
1815 AC_MSG_NOTICE($openmax_disabled)
1817 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1818 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1819 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1820 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1821 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1822 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1823 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1824 AC_MSG_ERROR($openmax_not_found))
1826 AC_MSG_NOTICE($openmax_disabled)
1832 # yajl version check (yajl_version.h was added in yajl 2.0)
1833 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1834 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1837 # additional internal players
1838 case $add_players in
1840 AC_CHECK_HEADER([amlplayer/amports/amstream.h],, AC_MSG_ERROR($missing_headers))
1841 XB_ADD_PLAYER([AMLPLAYER], [amlplayer])
1844 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1848 # additional internal codecs
1851 AC_CHECK_HEADER([amlplayer/codec_error.h],, AC_MSG_ERROR($missing_headers))
1852 XB_ADD_CODEC([LIBAMCODEC], [amcodec])
1855 LIBS+="-L${prefix}/opt/android-libs -lstdc++ -lutils -lcutils -lstagefright -lbinder -lui -lgui"
1856 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright])
1861 # platform specific bin utilities
1862 if test "$build_vendor" != "apple" ; then
1863 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1864 if test "$HAVE_GAWK" = "no" ; then
1865 AC_MSG_ERROR($missing_program)
1869 if test "$use_arch" != "arm" ; then
1870 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1871 if test "$HAVE_CMAKE" = "no" ; then
1872 AC_MSG_ERROR($missing_program)
1876 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1877 if test "$HAVE_GPERF" = "no" ; then
1878 AC_MSG_ERROR($missing_program)
1881 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1882 if test "$HAVE_UNZIP" = "no" ; then
1883 AC_MSG_ERROR($missing_program)
1886 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
1887 if test "$HAVE_ZIP" = "no" ; then
1888 AC_MSG_ERROR($missing_program)
1891 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
1892 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
1893 if test "$HAVE_NASM" = "no" ; then
1894 AC_MSG_ERROR($missing_program)
1898 # Checks for header files.
1902 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
1903 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
1904 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
1905 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
1906 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
1908 # Checks for typedefs, structures, and compiler characteristics.
1924 AC_CHECK_MEMBERS([struct stat.st_rdev])
1933 if test "$cross_compiling" = "yes"; then
1934 final_message="$final_message\n Crosscomp.:\tYes"
1936 final_message="$final_message\n Crosscomp.:\tNo"
1939 final_message="$final_message\n target ARCH:\t$use_arch"
1940 final_message="$final_message\n target CPU:\t$use_cpu"
1942 if test "$use_gles" = "yes"; then
1943 final_message="$final_message\n OpenGLES:\tYes"
1948 if test "$use_gl" = "yes"; then
1949 final_message="$final_message\n OpenGL:\tYes"
1952 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
1953 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
1958 if test "$use_alsa" = "yes"; then
1960 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
1961 final_message="$final_message\n ALSA:\t\tYes"
1964 final_message="$final_message\n ALSA:\t\tNo"
1967 if test "$use_dbus" = "yes"; then
1968 final_message="$final_message\n DBUS:\t\tYes"
1970 final_message="$final_message\n DBUS:\t\tNo"
1973 if test "x$use_vdpau" != "xno"; then
1974 final_message="$final_message\n VDPAU:\tYes"
1976 final_message="$final_message\n VDPAU:\tNo"
1979 if test "x$use_vaapi" != "xno"; then
1980 final_message="$final_message\n VAAPI:\tYes"
1982 final_message="$final_message\n VAAPI:\tNo"
1985 if test "x$use_crystalhd" != "xno"; then
1986 final_message="$final_message\n CrystalHD:\tYes"
1988 final_message="$final_message\n CrystalHD:\tNo"
1991 if test "x$use_vtbdecoder" != "xno"; then
1992 final_message="$final_message\n VTBDecoder:\tYes"
1994 final_message="$final_message\n VTBDecoder:\tNo"
1997 if test "$use_openmax" != "no"; then
1998 final_message="$final_message\n OpenMax:\tYes"
2000 final_message="$final_message\n OpenMax:\tNo"
2003 if test "$use_joystick" = "yes"; then
2004 final_message="$final_message\n Joystick:\tYes"
2005 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2007 final_message="$final_message\n Joystick:\tNo"
2010 if test "$use_xrandr" = "yes"; then
2011 final_message="$final_message\n XRandR:\tYes"
2014 final_message="$final_message\n XRandR:\tNo"
2018 if test "$use_goom" = "yes"; then
2019 final_message="$final_message\n GOOM:\t\tYes"
2021 final_message="$final_message\n GOOM:\t\tNo"
2024 if test "$use_rsxs" = "yes"; then
2025 final_message="$final_message\n RSXS:\t\tYes"
2027 final_message="$final_message\n RSXS:\t\tNo"
2030 if test "$use_fishbmc" = "yes"; then
2031 final_message="$final_message\n FishBMC:\tYes"
2033 final_message="$final_message\n FishBMC:\tNo"
2036 if test "$use_projectm" = "yes"; then
2037 final_message="$final_message\n ProjectM:\tYes"
2039 final_message="$final_message\n ProjectM:\tNo"
2042 if test "$use_skin_touched" = "yes"; then
2043 final_message="$final_message\n Skin Touched:\tYes"
2045 final_message="$final_message\n Skin Touched:\tNo"
2048 if test "$use_x11" = "yes"; then
2049 final_message="$final_message\n X11:\t\tYes"
2051 final_message="$final_message\n X11:\t\tNo"
2054 if test "$use_libbluray" = "yes"; then
2055 final_message="$final_message\n Bluray:\tYes"
2057 final_message="$final_message\n Bluray:\tNo"
2060 USE_TEXTUREPACKER_NATIVE=0
2061 if test "x$use_texturepacker" != "xno"; then
2062 final_message="$final_message\n TexturePacker:Yes"
2064 if test "x$use_texturepacker_native" = "xyes"; then
2065 USE_TEXTUREPACKER_NATIVE=1
2066 if [[ ! -d "$USE_TEXTUREPACKER_NATIVE_ROOT" ]]; then
2067 USE_TEXTUREPACKER_NATIVE_ROOT=
2071 final_message="$final_message\n TexturePacker:No"
2075 if test "$use_mid" = "yes"; then
2076 final_message="$final_message\n MID Support:\tYes"
2077 SDL_DEFINES="$SDL_DEFINES -DMID"
2079 final_message="$final_message\n MID Support:\tNo"
2084 if test "x$use_ccache" != "xno"; then
2085 AC_PATH_PROG(CCACHE,ccache,none)
2086 if test "$ac_cv_path_CCACHE" = "none"; then
2087 if test "x$use_ccache" = "xyes"; then
2088 AC_MSG_ERROR([ccache not found.]);
2090 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2091 final_message="$final_message\n ccache:\tNo"
2094 CC="$ac_cv_path_CCACHE $CC"
2095 CXX="$ac_cv_path_CCACHE $CXX"
2096 AC_MSG_NOTICE(enabling ccache)
2097 final_message="$final_message\n ccache:\tYes"
2100 final_message="$final_message\n ccache:\tNo"
2103 if test "$use_alsa" = "yes"; then
2104 final_message="$final_message\n ALSA Support:\tYes"
2106 final_message="$final_message\n ALSA Support:\tNo"
2109 if test "x$use_pulse" != "xno"; then
2110 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2111 final_message="$final_message\n PulseAudio:\tYes"
2113 XBMC_STANDALONE_SH_PULSE=/dev/null
2114 final_message="$final_message\n PulseAudio:\tNo"
2117 if test "$use_hal" = "yes"; then
2118 final_message="$final_message\n HAL Support:\tYes"
2120 final_message="$final_message\n HAL Support:\tNo"
2124 if test "$use_dvdcss" = "yes"; then
2125 AC_MSG_NOTICE($dvdcss_enabled)
2126 final_message="$final_message\n DVDCSS:\tYes"
2128 SKIP_CONFIG_DVDCSS=0
2129 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2131 AC_MSG_NOTICE($dvdcss_disabled)
2132 final_message="$final_message\n DVDCSS:\tNo"
2134 SKIP_CONFIG_DVDCSS=1
2135 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2137 if test "$host_vendor" = "apple"; then
2138 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2141 # Google Test Framework
2142 if test "$configure_gtest" = "yes"; then
2143 AC_MSG_NOTICE($gtest_enabled)
2144 final_message="$final_message\n Google Test Framework Configured:\tYes"
2148 AC_MSG_NOTICE($gtest_disabled)
2149 final_message="$final_message\n Google Test Framework Configured:\tNo"
2154 if test "$use_avahi" = "yes"; then
2155 final_message="$final_message\n Avahi:\tYes"
2157 final_message="$final_message\n Avahi:\tNo"
2160 if test "$use_mdnsembedded" != "no"; then
2161 final_message="$final_message\n mDNSEmbedded:\tYes"
2163 final_message="$final_message\n mDNSEmbedded:\tNo"
2166 if test "$use_nonfree" = "yes"; then
2167 final_message="$final_message\n Non-free:\tYes"
2169 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2172 final_message="$final_message\n Non-free:\tNo"
2175 if test "$use_asap" = "yes"; then
2176 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2177 if test "$HAVE_GDC" = "no"; then
2178 AC_MSG_ERROR($missing_program);
2180 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2181 if test "$HAVE_FPC" = "no"; then
2182 AC_MSG_ERROR($missing_program);
2185 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2186 final_message="$final_message\n ASAP Codec:\tYes"
2189 final_message="$final_message\n ASAP Codec:\tNo"
2192 if test "$use_mysql" = "yes"; then
2193 final_message="$final_message\n MySQL:\tYes"
2196 final_message="$final_message\n MySQL:\tNo"
2199 if test "$use_webserver" = "yes"; then
2200 final_message="$final_message\n Webserver:\tYes"
2203 final_message="$final_message\n Webserver:\tNo"
2207 if test "$use_libssh" != "no"; then
2208 final_message="$final_message\n libssh support:\tYes"
2210 final_message="$final_message\n libssh support:\tNo"
2213 if test "$use_librtmp" != "no"; then
2214 final_message="$final_message\n libRTMP support:\tYes"
2216 final_message="$final_message\n libRTMP support:\tNo"
2219 if test "x$use_samba" != "xno"; then
2220 final_message="$final_message\n libsmbclient support:\tYes"
2222 final_message="$final_message\n libsmbclient support:\tNo"
2225 if test "$use_libnfs" != "no"; then
2226 final_message="$final_message\n libnfs client support:Yes"
2228 final_message="$final_message\n libnfs client support:No"
2231 if test "x$use_libafpclient" != "xno"; then
2232 final_message="$final_message\n libafpclient support:\tYes"
2234 final_message="$final_message\n libafpclient support:\tNo"
2237 if test "$use_airplay" != "no"; then
2238 final_message="$final_message\n AirPlay support:\tYes"
2240 final_message="$final_message\n AirPLay support:\tNo"
2243 if test "x$use_airtunes" != "xno"; then
2244 if test "x$USE_LIBSHAIRPORT" == "x1"; then
2245 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2247 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2250 final_message="$final_message\n AirTunes support:\tNo"
2253 if test "x$use_upnp" != "xno"; then
2254 final_message="$final_message\n UPnP support:\t\tYes"
2256 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2259 final_message="$final_message\n UPnP support:\t\tNo"
2262 if test "$use_optical_drive" = "yes"; then
2263 final_message="$final_message\n Optical drive:\tYes"
2265 final_message="$final_message\n Optical drive:\tNo"
2268 if test "x$use_libudev" != "xno"; then
2269 final_message="$final_message\n libudev support:\tYes"
2271 final_message="$final_message\n libudev support:\tNo"
2274 if test "x$use_libusb" != "xno"; then
2275 final_message="$final_message\n libusb support:\tYes"
2277 final_message="$final_message\n libusb support:\tNo"
2280 if test "x$use_libcec" != "xno"; then
2281 final_message="$final_message\n libcec support:\tYes"
2283 final_message="$final_message\n libcec support:\tNo"
2286 if test "x$use_libmp3lame" != "xno"; then
2287 final_message="$final_message\n libmp3lame support:\tYes"
2289 final_message="$final_message\n libmp3lame support:\tNo"
2292 if test "x$use_libvorbisenc" != "xno"; then
2293 final_message="$final_message\n libvorbisenc support:\tYes"
2295 final_message="$final_message\n libvorbisenc support:\tNo"
2298 if test "x$use_libcap" != "xno"; then
2299 final_message="$final_message\n libcap support:\tYes"
2301 final_message="$final_message\n libcap support:\tNo"
2304 if test "x$add_players" != "xno"; then
2305 final_message="$final_message\n additional players:\tYes"
2307 final_message="$final_message\n additional players:\tNo"
2310 ### External libraries messages
2312 if test "$use_external_ffmpeg" = "yes"; then
2313 final_message="$final_message\n External FFmpeg:\tYes"
2315 final_message="$final_message\n External FFmpeg:\tNo"
2318 if test "$host_vendor" = "apple" ; then
2319 # built internal but referenced as external, we link directly to them.
2320 # this MUST be the last thing before OUTPUT_FILES as they do not
2321 # exist until after we build FFMpeg.
2322 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2323 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2324 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2325 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2326 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2327 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2328 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2332 DISABLE_PVR_ADDON_CONFIG=1
2333 if [[ -f "pvr-addons/Makefile.am" ]]; then
2334 final_message="$final_message\n PVR add-ons:\t\tYes"
2336 DISABLE_PVR_ADDON_CONFIG=0
2338 final_message="$final_message\n PVR add-ons:\t\tNo"
2341 OUTPUT_FILES="Makefile \
2343 addons/skin.confluence/media/Makefile \
2345 xbmc/cdrip/Makefile \
2346 xbmc/cores/Makefile \
2347 xbmc/cores/VideoRenderers/Makefile \
2348 xbmc/cores/dvdplayer/Makefile \
2350 lib/libdvd/Makefile \
2351 xbmc/cores/DllLoader/Makefile \
2352 xbmc/cores/DllLoader/exports/Makefile \
2353 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2354 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2355 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2356 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2357 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2358 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2359 xbmc/cores/AudioEngine/Makefile \
2360 xbmc/cores/paplayer/Makefile \
2361 xbmc/cores/amlplayer/Makefile \
2362 xbmc/cores/omxplayer/Makefile \
2363 lib/timidity/Makefile \
2364 lib/xbadpcm/Makefile \
2366 lib/nosefart/Makefile \
2367 lib/libsidplay2/Makefile \
2368 lib/vgmstream/Makefile \
2369 lib/snesapu/SNES/SNESAPU/Makefile \
2370 lib/stsound/StSoundLibrary/Makefile \
2371 xbmc/cores/playercorefactory/Makefile \
2372 xbmc/music/karaoke/Makefile \
2374 xbmc/guilib/Makefile \
2375 xbmc/interfaces/Makefile \
2376 xbmc/network/Makefile \
2377 xbmc/network/upnp/Makefile \
2378 lib/libRTV/Makefile \
2379 lib/libexif/Makefile \
2380 lib/libXDAAP/Makefile \
2381 lib/cmyth/Makefile \
2382 lib/libhdhomerun/Makefile \
2383 lib/libsquish/Makefile \
2384 lib/cximage-6.0/Makefile \
2385 lib/libUPnP/Makefile \
2386 xbmc/DllPaths_generated.h \
2387 xbmc/DllPaths_generated_android.h \
2388 xbmc/freebsd/Makefile \
2389 xbmc/linux/Makefile \
2390 xbmc/filesystem/Makefile \
2391 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2392 xbmc/visualizations/XBMCProjectM/Makefile \
2393 xbmc/visualizations/Goom/Makefile \
2394 xbmc/visualizations/OpenGLSpectrum/Makefile \
2395 xbmc/visualizations/fishBMC/Makefile \
2396 xbmc/visualizations/WaveForm/Makefile \
2397 lib/addons/library.xbmc.addon/Makefile \
2398 lib/addons/library.xbmc.codec/Makefile \
2399 lib/addons/library.xbmc.gui/Makefile \
2400 lib/addons/library.xbmc.pvr/Makefile \
2401 xbmc/visualizations/EGLHelpers/Makefile \
2402 tools/Linux/xbmc.sh \
2403 tools/Linux/xbmc-standalone.sh \
2404 tools/TexturePacker/Makefile \
2405 tools/EventClients/Clients/OSXRemote/Makefile \
2406 xbmc/peripherals/bus/Makefile \
2407 xbmc/peripherals/devices/Makefile \
2408 xbmc/android/activity/Makefile \
2409 xbmc/android/loader/Makefile \
2410 xbmc/android/jni/Makefile \
2411 xbmc/utils/Makefile \
2414 if test "$use_skin_touched" = "yes"; then
2415 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2418 OUTPUT_FILES="$OUTPUT_FILES \
2419 xbmc/interfaces/python/Makefile \
2420 xbmc/interfaces/python/test/Makefile"
2422 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2423 # .dummy.am does nothing.
2424 AC_CONFIG_FILES([.dummy])
2426 AC_CONFIG_FILES([${OUTPUT_FILES}])
2427 OUTPUT_FILES="$OUTPUT_FILES \
2433 AC_SUBST(SDL_DEFINES)
2434 AC_SUBST(BUILD_DVDCSS)
2435 AC_SUBST(DISABLE_GOOM)
2436 AC_SUBST(DISABLE_RSXS)
2437 AC_SUBST(DISABLE_FISHBMC)
2438 AC_SUBST(DISABLE_PROJECTM)
2439 AC_SUBST(USE_SKIN_TOUCHED)
2440 AC_SUBST(USE_EXTERNAL_FFMPEG)
2441 AC_SUBST(USE_LIBAV_HACKS)
2442 AC_SUBST(PYTHON_VERSION)
2443 AC_SUBST(OUTPUT_FILES)
2444 AC_SUBST(HAVE_XBMC_NONFREE)
2445 AC_SUBST(USE_ASAP_CODEC)
2446 AC_SUBST(LIBCURL_BASENAME)
2447 AC_SUBST(LIBFLAC_BASENAME)
2448 AC_SUBST(LIBVORBISFILE_BASENAME)
2449 AC_SUBST(LIBMODPLUG_BASENAME)
2450 AC_SUBST(LIBMAD_BASENAME)
2451 AC_SUBST(LIBOGG_BASENAME)
2452 AC_SUBST(LIBVORBISENC_BASENAME)
2453 AC_SUBST(LIBVORBIS_BASENAME)
2454 AC_SUBST(LIBASS_BASENAME)
2455 AC_SUBST(LIBMEPG2_BASENAME)
2456 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2457 AC_SUBST(USE_OPENGL)
2458 AC_SUBST(USE_OPENGLES)
2461 AC_SUBST(USE_CRYSTALHD)
2462 AC_SUBST(USE_LIBSMBCLIENT)
2463 AC_SUBST(USE_LIBNFS)
2464 AC_SUBST(USE_LIBAFPCLIENT)
2465 AC_SUBST(USE_AIRPLAY)
2466 AC_SUBST(USE_OPENMAX)
2468 AC_SUBST(USE_XRANDR)
2470 AC_SUBST(USE_TEXTUREPACKER)
2471 AC_SUBST(USE_TEXTUREPACKER_NATIVE)
2472 AC_SUBST(USE_TEXTUREPACKER_NATIVE_ROOT)
2473 AC_SUBST(USE_AIRTUNES)
2474 AC_SUBST(USE_LIBUDEV)
2475 AC_SUBST(USE_LIBUSB)
2476 AC_SUBST(USE_LIBCEC)
2478 AC_SUBST(USE_WEB_SERVER)
2480 AC_SUBST(USE_OMXLIB)
2481 AC_SUBST(USE_ANDROID)
2482 AC_SUBST(GTEST_CONFIGURED)
2483 AC_SUBST(USE_DOXYGEN)
2484 AC_SUBST(USE_PVR_ADDONS)
2486 # pushd and popd are not available in other shells besides bash, so implement
2487 # our own pushd/popd functions
2492 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2494 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2497 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2502 if [[ -n "$XB_DIRSTACK" ]]; then
2503 XB_DIRSTACK="${XB_DIRSTACK#* }"
2504 cd "${XB_DIRSTACK%% *}"
2507 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2511 # Function to run the configure scripts in our submodules
2512 # Consists of three paramaters, the path to the submodule, the configure command
2513 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2514 # running the script, anything else if not.
2515 AC_DEFUN([XB_CONFIG_MODULE],[
2516 AC_CONFIG_COMMANDS_POST([
2517 if [[ $3 != "1" ]]; then
2518 if [[ -d $1 ]]; then
2521 if [[ $? -ne 0 ]]; then
2523 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2528 AC_MSG_ERROR([[Submodule $1 does not exist]])
2531 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2536 XB_CONFIG_MODULE([lib/ffmpeg], [
2537 if test "$host_vendor" = "apple" ; then
2538 ffmpg_config="--target-os=$ffmpeg_target_os"
2539 # handle disables first, we do individual enables later
2540 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2541 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2542 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2543 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2544 ffmpg_config="$ffmpg_config --enable-vda --disable-crystalhd"
2545 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2547 # handle conditional enables/disables
2548 if test "$use_debug" = "no"; then
2549 ffmpg_config="$ffmpg_config --disable-debug"
2551 if test "$use_cpu" != "no"; then
2552 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2554 if test "$use_arch" != "no"; then
2555 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2557 if test "$use_arch" = "arm"; then
2558 ffmpg_config="$ffmpg_config --enable-pic"
2559 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2560 if test "$use_neon" = "yes"; then
2561 ffmpg_config="$ffmpg_config --enable-neon"
2563 ffmpg_config="$ffmpg_config --disable-neon"
2566 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2568 if test "$use_ffmpeg_libvorbis" = "yes"; then
2569 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2571 ffmpg_config="$ffmpg_config --disable-libvorbis"
2574 # handle individual enables
2575 ffmpg_config="$ffmpg_config --enable-gpl"
2576 ffmpg_config="$ffmpg_config --enable-postproc"
2577 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2578 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts --enable-muxer=asf --enable-muxer=ipod"
2579 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2"
2580 ffmpg_config="$ffmpg_config --enable-protocol=http"
2581 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2583 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2586 ffmpg_config="$ffmpg_config --cc=clang" ;;
2588 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2591 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2592 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2594 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2596 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2597 # dependency files in the right place, replace it with something that works
2600 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2603 # ffmpeg will use yasm found at ${prefix}/bin during configure
2604 # but then hardcodes 'yasm' in config.mak, fix it.
2605 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2606 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2607 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2612 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2614 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2616 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2617 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2618 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2619 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2620 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2621 --target-os=$ffmpeg_target_os \
2623 --enable-muxer=spdif \
2624 --enable-muxer=adts \
2625 --enable-muxer=asf \
2626 --enable-muxer=ipod \
2627 --disable-encoders \
2628 --enable-encoder=ac3 \
2629 --enable-encoder=aac \
2630 --enable-encoder=wmav2 \
2631 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2632 --disable-decoder=mpeg_xvmc \
2636 --disable-ffserver \
2638 --disable-crystalhd \
2643 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2644 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2645 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2646 --enable-protocol=http \
2648 --enable-runtime-cpudetect \
2649 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2650 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2651 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2652 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2653 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2655 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2656 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2658 ], [$USE_EXTERNAL_FFMPEG])
2660 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2665 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2666 --host=$host_alias \
2667 --build=$build_alias \
2668 --target=$target_alias \
2672 ], [$SKIP_CONFIG_DVDCSS])
2674 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2676 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src" \
2677 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2678 --host=$host_alias \
2679 --build=$build_alias \
2680 --target=$target_alias \
2686 $MAKE dvdread-config &&
2687 mkdir -p `pwd`/../includes/dvdread
2688 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2689 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2692 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2694 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
2695 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2696 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2697 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2698 --host=$host_alias \
2699 --build=$build_alias \
2700 --target=$target_alias \
2706 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2708 rm -f CMakeCache.txt && \
2709 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2710 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2711 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2712 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2713 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2714 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2715 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2716 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2717 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2718 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2719 if test "$host_vendor" = "apple" ; then
2720 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2721 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2722 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2723 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2726 ], [$DISABLE_PROJECTM])
2728 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2731 CXXFLAGS="$CXXFLAGS" \
2732 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2733 --host=$host_alias \
2734 --build=$build_alias \
2735 --target=$target_alias \
2741 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2742 if test "$host_vendor" = "apple"; then
2743 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";
2745 TEMPCFLAGS="$CFLAGS";
2750 CFLAGS="$TEMPCFLAGS" \
2751 CXXFLAGS="$CXXFLAGS" \
2752 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2753 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2754 --host=$host_alias \
2755 --build=$build_alias \
2756 --target=$target_alias \
2757 --without-xscreensaver \
2760 --disable-fieldlines \
2764 --disable-hyperspace \
2767 if echo "$ARCH" | grep -q freebsd ; then
2768 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2772 XB_CONFIG_MODULE([lib/cpluff], [
2773 ./configure --disable-nls \
2774 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2775 --host=$host_alias \
2776 --build=$build_alias \
2777 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2778 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2781 XB_CONFIG_MODULE([lib/gtest], [
2786 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2787 --host=$host_alias \
2788 --build=$build_alias \
2789 --target=$target_alias \
2793 ], [$SKIP_CONFIG_GTEST])
2795 XB_CONFIG_MODULE([pvr-addons], [
2797 --prefix="${prefix}" \
2798 --host=$host_alias \
2799 --build=$build_alias \
2800 --target=$target_alias \
2804 CXXFLAGS="$CXXFLAGS"
2805 ], [$DISABLE_PVR_ADDON_CONFIG])
2809 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2810 echo -e "$final_message\n"