2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [12.9.5], [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 "$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)])],
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 ### End of external library options
552 if test "x$host_vendor" != "xapple"; then
553 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
554 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
557 # Checks for programs.
558 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
560 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
561 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
564 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
569 OBJDUMP="${OBJDUMP:-objdump}"
571 # ffmpeg needs the output of uname -s (e.x. linux, darwin) for the target_os
572 # there is no autoconf variable which will give
573 # the correct output format when doing cross compilation
574 # so we have to use our own var here
575 # defaults to the build side target_os
576 # and should be overridden for cross below (see android)
577 ffmpeg_target_os=$(tolower $(uname -s))
579 # host detection and setup
581 i*86*-android-linux-gnu*)
582 target_platform=target_android
586 ffmpeg_target_os=linux
590 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
594 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
599 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
602 ARCH="x86_64-freebsd"
604 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
616 use_texturepacker_native=yes
620 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
621 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
622 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
623 PYTHON_NOVERSIONCHECK="no-check"
624 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_IOS -D_LINUX")
629 use_texturepacker_native=yes
631 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
633 powerpc-apple-darwin*)
639 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
641 powerpc-*-linux-gnu*)
643 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC")
645 powerpc64-*-linux-gnu*)
646 ARCH="powerpc64-linux"
647 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC64")
653 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
654 ffmpeg_target_os=linux
661 arm*-*linux-android*)
662 target_platform=target_android
666 ffmpeg_target_os=linux
676 AC_MSG_ERROR(unsupported host ($host))
681 check_sdl_arch=[`file $USE_TEXTUREPACKER_NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
682 if test "x$check_sdl_arch" = "xi386" ; then
683 DARWIN_NATIVE_ARCH=-m32
684 elif test "x$check_sdl_arch" = "xx86_64" ; then
685 DARWIN_NATIVE_ARCH=-m64
687 AC_SUBST([DARWIN_NATIVE_ARCH])
689 if test "$target_platform" = "target_android" ; then
691 use_texturepacker_native=yes
692 webserver_checkdepends=yes
693 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_ANDROID")
694 CFLAGS="$CFLAGS -Wno-psabi"
695 CXXFLAGS="$CXXFLAGS -Wno-psabi"
696 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
699 case $use_platform in
701 target_platform=target_raspberry_pi
703 use_texturepacker=yes
704 use_texturepacker_native=yes
707 use_hardcoded_tables="yes"
710 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI")
711 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
712 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
715 ffmpeg_target_os=linux
720 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
721 if test "$GIT_REV" = ""; then
722 if test -f VERSION ; then
723 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
724 elif test "$HAVE_GIT" = "yes"; then
725 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
730 final_message="$final_message\n git Rev.:\t${GIT_REV}"
732 if test "$host_vendor" = "apple"; then
733 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
735 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
738 if test "$build_shared_lib" = "yes"; then
739 final_message="$final_message\n Shared lib\tYes"
740 AC_SUBST(USE_LIBXBMC,1)
744 # platform debug flags
745 if test "$use_debug" = "yes"; then
746 final_message="$final_message\n Debugging:\tYes"
747 if test "$use_profiling" = "yes"; then
748 final_message="$final_message\n Profiling:\tYes"
749 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
751 final_message="$final_message\n Profiling:\tNo"
752 DEBUG_FLAGS="-g -D_DEBUG -Wall"
755 final_message="$final_message\n Debugging:\tNo"
756 if test "$use_profiling" = "yes"; then
757 final_message="$final_message\n Profiling:\tYes"
758 DEBUG_FLAGS="-pg -DNDEBUG=1"
760 final_message="$final_message\n Profiling:\tNo"
761 DEBUG_FLAGS="-DNDEBUG=1"
764 CFLAGS="$CFLAGS $DEBUG_FLAGS"
765 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
768 if test "$use_optimizations" = "yes"; then
769 final_message="$final_message\n Optimization:\tYes"
770 if test "$target_platform" = "target_raspberry_pi"; then
774 CXXFLAGS="-O2 $CXXFLAGS"
778 final_message="$final_message\n Optimization:\tNo"
782 # platform specific flags
783 if echo "$ARCH" | grep -q "freebsd" ; then
784 LOCALBASE="${LOCALBASE:-/usr/local}"
785 CFLAGS="$CFLAGS -I$LOCALBASE/include"
786 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
787 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
788 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
789 FFMPEG_EXTRACFLAGS="-I$LOCALBASE/include"
791 if test "$host_vendor" = "apple" ; then
792 # standard xbmc paths
793 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
794 if test "$use_arch" != "arm"; then
795 LIBS="$LIBS -framework ApplicationServices"
796 LIBS="$LIBS -framework AudioUnit"
797 LIBS="$LIBS -framework AudioToolbox"
798 LIBS="$LIBS -framework Cocoa"
799 LIBS="$LIBS -framework CoreAudio"
800 LIBS="$LIBS -framework CoreVideo"
801 LIBS="$LIBS -framework CoreServices"
802 LIBS="$LIBS -framework CoreFoundation"
803 LIBS="$LIBS -framework DiskArbitration"
804 LIBS="$LIBS -framework IOKit"
805 LIBS="$LIBS -framework IOSurface"
806 LIBS="$LIBS -framework QuartzCore"
807 LIBS="$LIBS -framework SystemConfiguration"
809 USE_EXTERNAL_FFMPEG=1
810 elif test "$target_platform" = "target_raspberry_pi"; then
813 elif test "$use_arch" = "arm"; then
814 CFLAGS="$CFLAGS -mno-apcs-stack-check"
815 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
816 FFMPEG_EXTRACFLAGS=""
817 if test "$use_tegra" = "yes"; then
818 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
819 SAVE_CFLAGS="$CFLAGS"
820 CFLAGS="-mfpu=vfpv3-d16"
822 [AC_LANG_SOURCE([int foo;])],
823 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
824 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
825 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
827 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
828 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
831 if test "$use_neon" = "yes"; then
832 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
833 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
834 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
839 # Checks for library functions.
842 AC_FUNC_CLOSEDIR_VOID
843 AC_FUNC_ERROR_AT_LINE
845 AC_PROG_GCC_TRADITIONAL
847 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
851 # Boxee is apparently having compile problems
852 # if HAVE_REALLOC is defined. Sort this later.
854 AC_FUNC_SELECT_ARGTYPES
855 AC_FUNC_SETVBUF_REVERSED
863 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])
865 # Check for various sizes
866 AC_CHECK_SIZEOF([int])
867 AC_CHECK_SIZEOF([size_t])
869 # Check for intrinsics
870 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
871 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
872 [have_builtin_sync_add_and_fetch=yes],
873 [have_builtin_sync_add_and_fetch=no])
874 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
875 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
876 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
877 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
880 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
881 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
882 [have_builtin_sync_sub_and_fetch=yes],
883 [have_builtin_sync_sub_and_fetch=no])
884 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
885 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
886 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
887 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
890 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
891 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
892 [have_builtin_sync_val_compare_and_swap=yes],
893 [have_builtin_sync_val_compare_and_swap=no])
894 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
895 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
896 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
897 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
900 # Add top source directory for all builds so we can use config.h
901 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
903 # Check inotify availability
904 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
906 # Checks for boost headers using CXX instead of CC
908 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
912 if test -z "$PYTHON_NOVERSIONCHECK"; then
913 AX_PYTHON_DEVEL([>= 2.4])
914 PYTHON_VERSION=$ac_python_version
917 if test -z "$PYTHON_VERSION"; then
918 AC_MSG_ERROR([Can't find a Python version.])
920 LIBS="$LIBS $PYTHON_LDFLAGS"
921 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
924 # Checks for platforms libraries.
925 if test "$use_gles" = "yes"; then
927 # GLES overwrites GL if both set to yes.
928 if test "$host_vendor" = "apple" ; then
929 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
930 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
931 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
933 if test "$target_platform" = "target_raspberry_pi"; then
934 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
935 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
936 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
937 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
939 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
940 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
944 if test "$use_gl" = "yes"; then
945 if test "$host_vendor" = "apple" ; then
946 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
947 LIBS="$LIBS -framework OpenGL"
948 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
949 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
950 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
951 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
952 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
954 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
955 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
956 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
959 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
960 AC_CHECK_LIB([SDL_gfx],[main])
964 # platform common libraries
965 if test "$use_mysql" = "yes"; then
966 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
967 if test "x$MYSQL_CONFIG" != "xno"; then
968 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
969 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
970 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
971 LIBS="$LIBS $MYSQL_LIBS"
974 AC_MSG_ERROR($missing_program)
977 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
978 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
979 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
980 AC_INCLUDES_DEFAULT()
981 [#include <mpeg2dec/mpeg2.h>])
982 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
983 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
984 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
985 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
986 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
987 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
988 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
989 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
991 # we need to check for the header because if it exists we set the openssl
992 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
993 # in MT manner correctly.
994 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
995 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
996 if test "$gcrypt_headers_available" = "yes"; then
997 # if we have the headers then we must have the lib
998 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
999 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1000 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1003 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1004 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1005 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1006 if echo "$ARCH" | grep -q freebsd; then
1007 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1008 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1009 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1010 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1012 if test "$target_platform" != "target_android" ; then
1013 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1014 AC_CHECK_LIB([pthread], [pthread_setname_np],
1015 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1016 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1019 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1020 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1021 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1022 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1023 if test "$use_mysql" = "yes"; then
1024 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1026 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1027 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1028 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1029 if test "$target_platform" = "target_android" ; then
1030 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1031 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1032 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1034 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1035 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1036 AC_MSG_ERROR($missing_library))
1037 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1038 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1039 AC_MSG_ERROR($missing_library))
1040 PKG_CHECK_MODULES([PNG], [libpng],
1041 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1042 AC_MSG_ERROR($missing_library))
1043 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1044 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1045 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1046 AC_MSG_ERROR($missing_library))
1047 PKG_CHECK_MODULES([PCRE], [libpcre],
1048 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1049 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1050 AC_MSG_ERROR($missing_library))
1051 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1052 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1053 AC_MSG_ERROR($missing_library))
1054 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1055 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1056 AC_MSG_ERROR($missing_library))
1057 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1058 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1059 AC_MSG_ERROR($missing_library))
1061 if test "$use_optical_drive" = "yes"; then
1062 PKG_CHECK_MODULES([CDIO], [libcdio],
1063 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1064 AC_MSG_ERROR($missing_library))
1067 if test "$target_platform" = "target_android" ; then
1068 PKG_CHECK_MODULES([ZIP], [libzip],
1069 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1070 AC_MSG_ERROR($missing_library))
1073 # check for libbluray
1074 AS_CASE([x$use_libbluray],
1076 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1079 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1082 AS_CASE([x$use_libbluray],
1084 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1085 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1086 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1087 AC_SUBST([HAVE_LIBBLURAY], 1)
1088 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1089 AC_CHECK_DECL([BD_EVENT_IDLE],
1090 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1091 [[#include <libbluray/bluray.h>]]))
1093 AC_SUBST([HAVE_LIBBLURAY], 0)
1097 #Check to see if libs are needed for functions that are often built-in to libc
1098 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1099 AC_SEARCH_LIBS([dlopen],dl)
1100 AC_SEARCH_LIBS([clock_gettime],rt)
1101 AC_SEARCH_LIBS([dn_expand], resolv)
1102 AC_SEARCH_LIBS([_dn_expand], resolv)
1103 AC_SEARCH_LIBS([__dn_expand],resolv)
1105 # platform dependent libraries
1106 if test "$host_vendor" = "apple" ; then
1107 if test "$use_arch" != "arm"; then
1108 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1109 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1112 if test "$target_platform" != "target_android" ; then
1113 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1115 if test "x$use_alsa" != "xno"; then
1116 PKG_CHECK_MODULES([ALSA], [alsa],
1117 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1118 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1120 PKG_CHECK_MODULES([DBUS], [dbus-1],
1121 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1122 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1123 AC_MSG_NOTICE($missing_library); use_dbus=no)
1124 if test "x$use_sdl" != "xno"; then
1125 PKG_CHECK_MODULES([SDL], [sdl],
1126 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1127 AC_MSG_ERROR($missing_library))
1128 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1129 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1133 XB_FIND_SONAME([MAD], [mad])
1134 XB_FIND_SONAME([OGG], [ogg])
1135 XB_FIND_SONAME([CURL], [curl])
1136 XB_FIND_SONAME([FLAC], [FLAC])
1137 XB_FIND_SONAME([VORBIS], [vorbis])
1138 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1139 XB_FIND_SONAME([MODPLUG], [modplug])
1140 XB_FIND_SONAME([ASS], [ass])
1141 XB_FIND_SONAME([MPEG2], [mpeg2])
1144 if test "x$use_libmp3lame" != "xno"; then
1145 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1146 if test "x$use_libmp3lame" != "xno"; then
1147 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1150 AS_CASE([x$use_libmp3lame],
1152 AC_SUBST([HAVE_LIBMP3LAME], 0)
1155 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1156 AC_SUBST([HAVE_LIBMP3LAME], 1)
1159 if test "x$use_libvorbisenc" != "xno"; then
1160 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1161 if test "x$use_libvorbisenc" != "xno"; then
1162 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1165 AS_CASE([x$use_libvorbisenc],
1167 AC_SUBST([HAVE_LIBVORBISENC], 0)
1169 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1170 AC_SUBST([HAVE_LIBVORBISENC], 1)
1175 if test "$use_webserver" = "yes"; then
1176 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1180 if test "$use_optical_drive" = "yes"; then
1181 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1185 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1186 PKG_CHECK_MODULES([ALSA], [alsa],
1187 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1188 AC_MSG_ERROR($missing_library))
1189 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1192 AC_MSG_RESULT($alsa_disabled)
1196 if test "x$use_pulse" != "xno"; then
1197 if test "$host_vendor" = "apple" ; then
1198 if test "x$use_pulse" = "xyes"; then
1199 AC_MSG_ERROR($pulse_disabled)
1202 AC_MSG_RESULT($pulse_disabled)
1206 AC_CHECK_LIB([pulse],[main],,pulse_found="no")
1207 AC_CHECK_LIB([pulse-simple],[main],,pulse_found="no")
1209 if test "x$pulse_found" != "xno"; then
1211 elif test "x$use_pulse" = "xyes"; then
1212 AC_MSG_ERROR($pulse_not_found)
1216 AC_MSG_RESULT($pulse_not_found)
1220 AC_MSG_RESULT($pulse_disabled)
1225 if test "$host_vendor" = "apple" ; then
1227 AC_MSG_RESULT($hal_disabled)
1229 if test "$use_hal" = "yes"; then
1230 PKG_CHECK_MODULES([HAL], [hal],
1231 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1232 use_hal=no;AC_MSG_RESULT($hal_not_found))
1233 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1234 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1235 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1237 AC_MSG_RESULT($hal_disabled)
1239 if test "$use_hal" = "yes"; then
1240 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1245 if test "$host_vendor" = "apple" ; then
1247 AC_MSG_RESULT($avahi_disabled)
1249 if test "$use_avahi" = "yes"; then
1250 AC_CHECK_LIB([avahi-common], [main],,
1251 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1252 if test "$use_avahi" = "yes"; then
1253 #either both libs or none
1254 AC_CHECK_LIB([avahi-client], [main],,
1255 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1258 AC_MSG_RESULT($avahi_disabled)
1263 if test "$use_mdnsembedded" != "no"; then
1264 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1265 [if test "$use_mdnsembedded" = "yes"; then
1266 AC_MSG_ERROR($mdnsembedded_not_found)
1268 elif test "$use_mdnsembedded" != "no"; then
1269 AC_MSG_NOTICE($mdnsembedded_not_found)
1270 use_mdnsembedded="no"
1274 if test $use_mdnsembedded != "no"; then
1278 AC_MSG_RESULT($mdnsembedded_disabled)
1281 AC_SUBST(USE_MDNSEMBEDDED)
1284 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1285 AC_MSG_NOTICE($x11_enabled)
1286 PKG_CHECK_MODULES([X11], [x11],
1287 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1288 AC_MSG_ERROR($missing_library))
1289 PKG_CHECK_MODULES([XEXT], [xext],
1290 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1291 AC_MSG_ERROR($missing_library))
1292 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1294 AC_MSG_RESULT($x11_disabled)
1298 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1300 AC_MSG_RESULT($xrandr_disabled)
1302 if test "$use_xrandr" = "yes" ; then
1303 AC_CHECK_LIB([Xrandr], [main],,
1304 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1306 AC_MSG_RESULT($xrandr_disabled)
1311 if test "$host_vendor" = "apple" ; then
1312 AC_MSG_NOTICE($goom_disabled)
1315 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1316 AC_MSG_NOTICE($goom_enabled)
1319 AC_MSG_NOTICE($goom_disabled)
1325 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1326 AC_MSG_NOTICE($rsxs_disabled)
1329 AC_MSG_NOTICE($rsxs_enabled)
1331 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1332 if test "$host_vendor" != "apple" ; then
1333 PKG_CHECK_MODULES([XT], [xt],
1334 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1335 AC_MSG_ERROR($missing_library))
1336 PKG_CHECK_MODULES([XMU], [xmu],
1337 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1338 AC_MSG_ERROR($missing_library))
1343 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1344 AC_MSG_NOTICE($fishbmc_disabled)
1348 AC_MSG_NOTICE($fishbmc_enabled)
1353 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1354 AC_MSG_NOTICE($projectm_disabled)
1358 AC_MSG_NOTICE($projectm_enabled)
1364 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1365 use_skin_touched=yes
1367 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1373 if test "x$use_ssh" = "xno"; then
1374 AC_MSG_NOTICE($ssh_disabled)
1377 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1378 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1382 if test "$use_librtmp" != "no"; then
1383 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1384 [if test "$use_librtmp" = "yes"; then
1385 AC_MSG_ERROR($librtmp_not_found)
1386 elif test "$use_librtmp" != "no"; then
1387 AC_MSG_NOTICE($librtmp_not_found)
1391 if test "$use_librtmp" != "no"; then
1392 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1394 if test "$use_librtmp" != "no"; then
1395 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1398 AC_MSG_NOTICE($librtmp_disabled)
1402 if test "x$use_samba" != "xno"; then
1403 AC_CHECK_LIB([smbclient], [main],,
1404 use_samba=no;AC_MSG_ERROR($missing_library))
1407 AC_MSG_RESULT($samba_disabled)
1411 if test "x$use_samba" != "xno"; then
1412 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1417 if test "$use_libnfs" != "no"; then
1418 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1419 [if test "$use_libnfs" = "yes"; then
1420 AC_MSG_ERROR($libnfs_not_found)
1422 elif test "$use_libnfs" != "no"; then
1423 AC_MSG_NOTICE($libnfs_not_found)
1428 if test "$use_libnfs" != "no"; then
1429 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1431 if test "$use_libnfs" != "no"; then
1432 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1437 AC_MSG_NOTICE($libnfs_disabled)
1442 if test "x$use_libafpclient" != "xno"; then
1443 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1444 [if test "x$use_libafpclient" = "xyes"; then
1445 AC_MSG_ERROR($libafpclient_not_found)
1446 elif test "x$use_libafpclient" != "xno"; then
1447 AC_MSG_NOTICE($libafpclient_not_found)
1448 use_libafpclient="no"
1451 if test "x$use_libafpclient" != "xno"; then
1452 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1453 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1457 AC_MSG_NOTICE($libafpclient_disabled)
1460 # libplist for airplay feature
1462 if test "$use_airplay" != "no"; then
1463 AC_CHECK_HEADER([plist/plist.h],,
1464 [if test "$use_airplay" = "yes"; then
1465 AC_MSG_ERROR($libplist_not_found)
1466 elif test "$use_airplay" != "no"; then
1467 AC_MSG_NOTICE($libplist_not_found)
1472 if test "$use_airplay" != "no"; then
1473 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1475 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1479 # libshairplay for AirTunes (prefered lib)
1481 if test "x$use_airtunes" != "xno"; then
1482 AC_CHECK_HEADERS([shairplay/raop.h],,
1483 [if test "x$use_airtunes" = "xyes"; then
1484 AC_MSG_ERROR($libshairplay_not_found)
1485 elif test "x$use_airtunes" != "xno"; then
1486 AC_MSG_NOTICE($libshairplay_not_found)
1491 if test "x$use_airtunes" != "xno"; then
1492 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [use_airtunes])
1495 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1496 [[#include <shairplay/raop.h>]])
1497 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1500 #libshairport - as a fallback for AirTunes
1501 if test "x$USE_AIRTUNES" == "x0"; then
1502 AC_CHECK_HEADERS([shairport/shairport.h],,
1503 [if test "x$use_airtunes" = "xyes"; then
1504 AC_MSG_ERROR($libshairport_not_found)
1505 elif test "x$use_airtunes" != "xno"; then
1506 AC_MSG_NOTICE($libshairport_not_found)
1511 if test "x$use_airtunes" != "xno"; then
1512 XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
1514 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1515 [[#include <shairport/shairport.h>]])
1516 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1523 if test "$host_vendor" = "apple" ; then
1525 AC_MSG_NOTICE($libudev_disabled)
1527 if test "$use_libudev" = "auto"; then
1528 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1529 elif test "$use_libudev" = "yes" ; then
1530 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1532 AC_MSG_NOTICE($libudev_disabled)
1535 if test "x$use_libudev" != "xno"; then
1536 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1537 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1544 # if libudev is available, we don't need libusb
1545 if test "x$use_libudev" != "xno"; then
1547 AC_MSG_NOTICE($libusb_disabled_udev_found)
1549 if test "$host_vendor" = "apple" ; then
1551 AC_MSG_NOTICE($libusb_disabled)
1553 if echo "$ARCH" | grep -q freebsd ; then
1554 AC_CHECK_LIB([usb],[main],
1555 [use_libusb="yes";USB_LIBS="-lusb"],
1556 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1557 elif test "$use_libusb" = "auto"; then
1558 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1559 elif test "$use_libusb" = "yes"; then
1560 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1562 AC_MSG_NOTICE($libusb_disabled)
1565 if test "x$use_libusb" != "xno"; then
1566 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1567 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1574 if test "x$use_libcec" != "xno"; then
1575 # libcec is dyloaded, so we need to check for its headers and link any depends.
1576 if test "x$use_libcec" != "xno"; then
1577 if test "x$use_libcec" != "xauto"; then
1578 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1580 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1583 if test "x$use_libcec" != "xno"; then
1584 INCLUDES="$INCLUDES $CEC_CFLAGS"
1585 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1586 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1587 AC_MSG_NOTICE($libcec_enabled)
1590 AC_MSG_NOTICE($libcec_disabled)
1595 AC_MSG_NOTICE($libcec_disabled)
1599 if test "$use_libcap" != "no"; then
1600 AC_CHECK_HEADERS([sys/capability.h],,
1601 [if test "$use_libcap" = "yes"; then
1602 AC_MSG_ERROR($libcap_not_found)
1603 elif test "$use_libcap" != "no"; then
1604 AC_MSG_NOTICE($libcap_not_found)
1608 if test "$use_libcap" != "no"; then
1609 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1611 if test "$use_libcap" != "no"; then
1612 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1615 AC_MSG_NOTICE($libcap_disabled)
1618 ### External libraries checks
1621 if test "$use_external_ffmpeg" = "yes"; then
1622 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale"
1624 # libavcore is optional
1625 PKG_CHECK_EXISTS([libavcore], FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libavcore")
1627 # one of libswresample or libavresample is needed
1628 PKG_CHECK_EXISTS([libswresample], FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libswresample",
1629 [PKG_CHECK_EXISTS([libavresample],
1630 FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libavresample",
1631 AC_MSG_ERROR([You need either libswresample
1632 or libavresample.]))])
1634 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1635 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1636 AC_MSG_ERROR($missing_library))
1638 # Determine whether AVPacket and relevant functions are defined in libavformat
1640 AC_CHECK_LIB([avcodec], [av_free_packet],
1641 [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavcodec. ==)],
1642 [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavformat. ==)
1643 AC_DEFINE([AVPACKET_IN_AVFORMAT], [1], [Whether AVPacket is in libavformat.])])
1645 # in case the headers are in a custom directory
1646 SAVE_CPPFLAGS="$CPPFLAGS"
1647 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1649 # Possible places the ffmpeg headers may be
1650 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1651 [AC_CHECK_HEADERS([ffmpeg/avcodec.h ffmpeg/avfilter.h ffmpeg/avformat.h ffmpeg/avutil.h postproc/postprocess.h ffmpeg/swscale.h],,
1652 [AC_MSG_ERROR($missing_headers)])])
1655 AC_CHECK_HEADERS([libavcore/avcore.h libavcore/samplefmt.h libavutil/mem.h libavutil/samplefmt.h])
1657 # old FFmpeg have this in libavcodec/opt.h instead:
1658 AC_CHECK_HEADERS([libavutil/opt.h])
1660 # new FFmpeg have math headers
1661 AC_CHECK_HEADERS([libavutil/mathematics.h],,)
1663 # We'll support the use of rgb2rgb.h if it exists.
1664 AC_CHECK_HEADERS([libswscale/rgb2rgb.h],,)
1665 AC_CHECK_HEADERS([ffmpeg/rgb2rgb.h],,)
1667 # Check for libswresample or libavresample headers.
1668 AC_CHECK_HEADERS([libswresample/swresample.h libavresample/avresample.h])
1670 # Check if AVFilterBufferRefVideoProps AVRational member is named
1671 # 'pixel_aspect' or 'sample_aspect_ratio'.
1672 AC_CHECK_MEMBER([AVFilterBufferRefVideoProps.sample_aspect_ratio],
1673 [AC_DEFINE([HAVE_AVFILTERBUFFERREFVIDEOPROPS_SAMPLE_ASPECT_RATIO],
1675 [Define to 1 if AVFilterBufferRefVideoProps has member sample_aspect_ratio.])],
1676 [AC_CHECK_MEMBER([AVFilterBufferRefVideoProps.sample_aspect_ratio],
1677 [AC_DEFINE([HAVE_AVFILTERBUFFERREFVIDEOPROPS_SAMPLE_ASPECT_RATIO],
1679 [Define to 1 if AVFilterBufferRefVideoProps has member sample_aspect_ratio.])],
1681 [[#include <ffmpeg/avfilter.h>]])],
1682 [[#include <libavfilter/avfilter.h>]])
1684 AC_MSG_NOTICE($external_ffmpeg_enabled)
1685 USE_EXTERNAL_FFMPEG=1
1686 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1688 # Disable vdpau support if external libavcodec doesn't have it
1689 AC_CHECK_LIB([avcodec], [ff_vdpau_vc1_decode_picture],,
1690 [if test "x$use_vdpau" = "xyes"; then
1691 AC_MSG_ERROR($ffmpeg_vdpau_not_supported)
1694 AC_MSG_RESULT($ffmpeg_vdpau_not_supported)
1697 # Check for 'PIX_FMT_VDPAU_MPEG4' from libavutil
1698 if test "x$use_vdpau" != "xno"; then
1701 [AC_LANG_SOURCE([ #include <libavutil/pixfmt.h>
1702 int main() { PixelFormat format = PIX_FMT_VDPAU_MPEG4; }])],
1703 [AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1],
1704 [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])],)
1707 CPPFLAGS="$SAVE_CPPFLAGS"
1709 AC_MSG_NOTICE($external_ffmpeg_disabled)
1710 USE_EXTERNAL_FFMPEG=0
1711 AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1], [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])
1714 echo "Checking for SWIG installation"
1715 AC_PATH_PROG(SWIG_EXE, swig, "none")
1716 if test "$SWIG_EXE" = "none"; then
1717 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1718 if test "$SWIG20_EXE" != "none" ; then
1719 SWIG_EXE=$SWIG20_EXE
1722 if test "$SWIG_EXE" = "none"; then
1723 AC_MSG_ERROR($missing_program)
1725 final_message="$final_message\n SWIG Available:\tYes"
1727 echo "Checking for a jre installation"
1728 AC_PATH_PROG(JAVA_EXE, java, "none")
1729 if test "$JAVA_EXE" = "none"; then
1730 AC_MSG_ERROR($missing_program)
1732 final_message="$final_message\n JRE Available:\tYes"
1734 echo "Checking for doxygen installation"
1735 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1736 if test "$DOXYGEN_EXE" = "none"; then
1737 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1738 final_message="$final_message\n Doxygen Available:\tNo"
1741 final_message="$final_message\n Doxygen Available:\tYes"
1746 if test "x$use_vdpau" != "xno"; then
1747 if test "$host_vendor" = "apple" ; then
1748 if test "x$use_vdpau" = "xyes"; then
1749 AC_MSG_ERROR([VDPAU not supported on this platform])
1752 AC_MSG_NOTICE($vdpau_disabled)
1757 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1758 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1759 [if test "x$use_vdpau" = "xyes"; then
1761 AC_MSG_ERROR([$vdpau_not_found])
1765 AC_MSG_RESULT($vdpau_not_found)
1770 AC_MSG_NOTICE($vdpau_disabled)
1774 if test "x$use_vaapi" != "xno"; then
1775 if test "$host_vendor" = "apple" ; then
1776 if test "x$use_vaapi" = "xyes"; then
1777 AC_MSG_ERROR([VAAPI not supported on this platform])
1780 AC_MSG_NOTICE($vaapi_disabled)
1784 initial_val=$use_vaapi
1785 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1786 if test "x$use_vaapi" != "xno"; then
1787 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1790 if test "x$use_vaapi" = "xno"; then
1791 if test "x$initial_val" = "xyes"; then
1792 AC_MSG_ERROR($vaapi_not_found)
1794 AC_MSG_RESULT($vaapi_not_found)
1798 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1803 AC_MSG_NOTICE($vaapi_disabled)
1808 if test "x$use_crystalhd" != "xno"; then
1809 SAVE_CFLAGS="$CFLAGS"
1810 CFLAGS="-D__LINUX_USER__"
1811 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1812 [ if test "x$use_crystalhd" = "xyes"; then
1813 AC_MSG_ERROR($crystalhd_not_found)
1816 AC_MSG_RESULT($crystalhd_not_found)
1820 CFLAGS="$SAVE_CFLAGS"
1821 if test "$host_vendor" != "apple"; then
1822 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1824 if test "x$use_crystalhd" != "xno"; then
1825 SAVE_CFLAGS="$CFLAGS"
1826 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1827 # check for new crystalhd lib
1829 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1830 #include <libcrystalhd/bc_dts_defs.h>
1831 PBC_INFO_CRYSTAL bCrystalInfo;])],
1832 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1833 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1834 CFLAGS="$SAVE_CFLAGS"
1838 AC_MSG_NOTICE($crystalhd_disabled)
1843 if test "x$use_vtbdecoder" != "xno"; then
1844 if test "$host_vendor" = "apple" ; then
1845 HAVE_VIDEOTOOLBOXDECODER=1
1846 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1847 AC_MSG_NOTICE($vtbdecoder_enabled)
1849 if test "x$use_vtbdecoder" = "xyes"; then
1850 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1853 AC_MSG_NOTICE($vtbdecoder_disabled)
1857 AC_MSG_NOTICE($vtbdecoder_disabled)
1861 if test "$host_vendor" = "apple" ; then
1864 AC_MSG_NOTICE($openmax_disabled)
1865 elif test "$target_platform" = "target_raspberry_pi"; then
1868 AC_MSG_NOTICE($openmax_disabled)
1870 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1871 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1872 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1873 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1874 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1875 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1876 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1877 AC_MSG_ERROR($openmax_not_found))
1879 AC_MSG_NOTICE($openmax_disabled)
1885 # yajl version check (yajl_version.h was added in yajl 2.0)
1886 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1887 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1890 # additional internal players
1891 case $add_players in
1893 AC_CHECK_HEADER([amlplayer/amports/amstream.h],, AC_MSG_ERROR($missing_headers))
1894 XB_ADD_PLAYER([AMLPLAYER], [amlplayer])
1897 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1901 # additional internal codecs
1904 AC_CHECK_HEADER([amlplayer/codec_error.h],, AC_MSG_ERROR($missing_headers))
1905 XB_ADD_CODEC([LIBAMCODEC], [amcodec])
1909 # platform specific bin utilities
1910 if test "$build_vendor" != "apple" ; then
1911 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1912 if test "$HAVE_GAWK" = "no" ; then
1913 AC_MSG_ERROR($missing_program)
1917 if test "$use_arch" != "arm" ; then
1918 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1919 if test "$HAVE_CMAKE" = "no" ; then
1920 AC_MSG_ERROR($missing_program)
1924 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1925 if test "$HAVE_GPERF" = "no" ; then
1926 AC_MSG_ERROR($missing_program)
1929 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1930 if test "$HAVE_UNZIP" = "no" ; then
1931 AC_MSG_ERROR($missing_program)
1934 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
1935 if test "$HAVE_ZIP" = "no" ; then
1936 AC_MSG_ERROR($missing_program)
1939 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
1940 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
1941 if test "$HAVE_NASM" = "no" ; then
1942 AC_MSG_ERROR($missing_program)
1946 # Checks for header files.
1950 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
1951 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
1952 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
1953 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
1954 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
1956 # Checks for typedefs, structures, and compiler characteristics.
1972 AC_CHECK_MEMBERS([struct stat.st_rdev])
1981 if test "$cross_compiling" = "yes"; then
1982 final_message="$final_message\n Crosscomp.:\tYes"
1984 final_message="$final_message\n Crosscomp.:\tNo"
1987 final_message="$final_message\n target ARCH:\t$use_arch"
1988 final_message="$final_message\n target CPU:\t$use_cpu"
1990 if test "$use_gles" = "yes"; then
1991 final_message="$final_message\n OpenGLES:\tYes"
1996 if test "$use_gl" = "yes"; then
1997 final_message="$final_message\n OpenGL:\tYes"
2000 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2001 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2006 if test "$use_alsa" = "yes"; then
2008 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2009 final_message="$final_message\n ALSA:\t\tYes"
2012 final_message="$final_message\n ALSA:\t\tNo"
2015 if test "$use_dbus" = "yes"; then
2016 final_message="$final_message\n DBUS:\t\tYes"
2018 final_message="$final_message\n DBUS:\t\tNo"
2021 if test "x$use_vdpau" != "xno"; then
2022 final_message="$final_message\n VDPAU:\tYes"
2024 final_message="$final_message\n VDPAU:\tNo"
2027 if test "x$use_vaapi" != "xno"; then
2028 final_message="$final_message\n VAAPI:\tYes"
2030 final_message="$final_message\n VAAPI:\tNo"
2033 if test "x$use_crystalhd" != "xno"; then
2034 final_message="$final_message\n CrystalHD:\tYes"
2036 final_message="$final_message\n CrystalHD:\tNo"
2039 if test "x$use_vtbdecoder" != "xno"; then
2040 final_message="$final_message\n VTBDecoder:\tYes"
2042 final_message="$final_message\n VTBDecoder:\tNo"
2045 if test "$use_openmax" != "no"; then
2046 final_message="$final_message\n OpenMax:\tYes"
2048 final_message="$final_message\n OpenMax:\tNo"
2051 if test "$use_joystick" = "yes"; then
2052 final_message="$final_message\n Joystick:\tYes"
2053 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2055 final_message="$final_message\n Joystick:\tNo"
2058 if test "$use_xrandr" = "yes"; then
2059 final_message="$final_message\n XRandR:\tYes"
2062 final_message="$final_message\n XRandR:\tNo"
2066 if test "$use_goom" = "yes"; then
2067 final_message="$final_message\n GOOM:\t\tYes"
2069 final_message="$final_message\n GOOM:\t\tNo"
2072 if test "$use_rsxs" = "yes"; then
2073 final_message="$final_message\n RSXS:\t\tYes"
2075 final_message="$final_message\n RSXS:\t\tNo"
2078 if test "$use_fishbmc" = "yes"; then
2079 final_message="$final_message\n FishBMC:\tYes"
2081 final_message="$final_message\n FishBMC:\tNo"
2084 if test "$use_projectm" = "yes"; then
2085 final_message="$final_message\n ProjectM:\tYes"
2087 final_message="$final_message\n ProjectM:\tNo"
2090 if test "$use_skin_touched" = "yes"; then
2091 final_message="$final_message\n Skin Touched:\tYes"
2093 final_message="$final_message\n Skin Touched:\tNo"
2096 if test "$use_x11" = "yes"; then
2097 final_message="$final_message\n X11:\t\tYes"
2099 final_message="$final_message\n X11:\t\tNo"
2102 if test "$use_libbluray" = "yes"; then
2103 final_message="$final_message\n Bluray:\tYes"
2105 final_message="$final_message\n Bluray:\tNo"
2108 USE_TEXTUREPACKER_NATIVE=0
2109 if test "x$use_texturepacker" != "xno"; then
2110 final_message="$final_message\n TexturePacker:Yes"
2112 if test "x$use_texturepacker_native" = "xyes"; then
2113 USE_TEXTUREPACKER_NATIVE=1
2114 if [[ ! -d "$USE_TEXTUREPACKER_NATIVE_ROOT" ]]; then
2115 USE_TEXTUREPACKER_NATIVE_ROOT=
2119 final_message="$final_message\n TexturePacker:No"
2123 if test "$use_mid" = "yes"; then
2124 final_message="$final_message\n MID Support:\tYes"
2125 SDL_DEFINES="$SDL_DEFINES -DMID"
2127 final_message="$final_message\n MID Support:\tNo"
2132 if test "x$use_ccache" != "xno"; then
2133 AC_PATH_PROG(CCACHE,ccache,none)
2134 if test "$ac_cv_path_CCACHE" = "none"; then
2135 if test "x$use_ccache" = "xyes"; then
2136 AC_MSG_ERROR([ccache not found.]);
2138 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2139 final_message="$final_message\n ccache:\tNo"
2142 CC="$ac_cv_path_CCACHE $CC"
2143 CXX="$ac_cv_path_CCACHE $CXX"
2144 AC_MSG_NOTICE(enabling ccache)
2145 final_message="$final_message\n ccache:\tYes"
2148 final_message="$final_message\n ccache:\tNo"
2151 if test "$use_alsa" = "yes"; then
2152 final_message="$final_message\n ALSA Support:\tYes"
2154 final_message="$final_message\n ALSA Support:\tNo"
2157 if test "x$use_pulse" != "xno"; then
2158 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2159 final_message="$final_message\n PulseAudio:\tYes"
2161 XBMC_STANDALONE_SH_PULSE=/dev/null
2162 final_message="$final_message\n PulseAudio:\tNo"
2165 if test "$use_hal" = "yes"; then
2166 final_message="$final_message\n HAL Support:\tYes"
2168 final_message="$final_message\n HAL Support:\tNo"
2172 if test "$use_dvdcss" = "yes"; then
2173 AC_MSG_NOTICE($dvdcss_enabled)
2174 final_message="$final_message\n DVDCSS:\tYes"
2176 SKIP_CONFIG_DVDCSS=0
2177 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2179 AC_MSG_NOTICE($dvdcss_disabled)
2180 final_message="$final_message\n DVDCSS:\tNo"
2182 SKIP_CONFIG_DVDCSS=1
2183 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2185 if test "$host_vendor" = "apple"; then
2186 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2189 # Google Test Framework
2190 if test "$configure_gtest" = "yes"; then
2191 AC_MSG_NOTICE($gtest_enabled)
2192 final_message="$final_message\n Google Test Framework Configured:\tYes"
2196 AC_MSG_NOTICE($gtest_disabled)
2197 final_message="$final_message\n Google Test Framework Configured:\tNo"
2202 if test "$use_avahi" = "yes"; then
2203 final_message="$final_message\n Avahi:\tYes"
2205 final_message="$final_message\n Avahi:\tNo"
2208 if test "$use_mdnsembedded" != "no"; then
2209 final_message="$final_message\n mDNSEmbedded:\tYes"
2211 final_message="$final_message\n mDNSEmbedded:\tNo"
2214 if test "$use_nonfree" = "yes"; then
2215 final_message="$final_message\n Non-free:\tYes"
2217 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2220 final_message="$final_message\n Non-free:\tNo"
2223 if test "$use_asap" = "yes"; then
2224 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2225 if test "$HAVE_GDC" = "no"; then
2226 AC_MSG_ERROR($missing_program);
2228 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2229 if test "$HAVE_FPC" = "no"; then
2230 AC_MSG_ERROR($missing_program);
2233 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2234 final_message="$final_message\n ASAP Codec:\tYes"
2237 final_message="$final_message\n ASAP Codec:\tNo"
2240 if test "$use_mysql" = "yes"; then
2241 final_message="$final_message\n MySQL:\tYes"
2244 final_message="$final_message\n MySQL:\tNo"
2247 if test "$use_webserver" = "yes"; then
2248 final_message="$final_message\n Webserver:\tYes"
2251 final_message="$final_message\n Webserver:\tNo"
2255 if test "$use_libssh" != "no"; then
2256 final_message="$final_message\n libssh support:\tYes"
2258 final_message="$final_message\n libssh support:\tNo"
2261 if test "$use_librtmp" != "no"; then
2262 final_message="$final_message\n libRTMP support:\tYes"
2264 final_message="$final_message\n libRTMP support:\tNo"
2267 if test "x$use_samba" != "xno"; then
2268 final_message="$final_message\n libsmbclient support:\tYes"
2270 final_message="$final_message\n libsmbclient support:\tNo"
2273 if test "$use_libnfs" != "no"; then
2274 final_message="$final_message\n libnfs client support:Yes"
2276 final_message="$final_message\n libnfs client support:No"
2279 if test "x$use_libafpclient" != "xno"; then
2280 final_message="$final_message\n libafpclient support:\tYes"
2282 final_message="$final_message\n libafpclient support:\tNo"
2285 if test "$use_airplay" != "no"; then
2286 final_message="$final_message\n AirPlay support:\tYes"
2288 final_message="$final_message\n AirPLay support:\tNo"
2291 if test "x$use_airtunes" != "xno"; then
2292 if test "x$USE_LIBSHAIRPORT" == "x1"; then
2293 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2295 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2298 final_message="$final_message\n AirTunes support:\tNo"
2301 if test "x$use_upnp" != "xno"; then
2302 final_message="$final_message\n UPnP support:\t\tYes"
2304 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2307 final_message="$final_message\n UPnP support:\t\tNo"
2310 if test "$use_optical_drive" = "yes"; then
2311 final_message="$final_message\n Optical drive:\tYes"
2313 final_message="$final_message\n Optical drive:\tNo"
2316 if test "x$use_libudev" != "xno"; then
2317 final_message="$final_message\n libudev support:\tYes"
2319 final_message="$final_message\n libudev support:\tNo"
2322 if test "x$use_libusb" != "xno"; then
2323 final_message="$final_message\n libusb support:\tYes"
2325 final_message="$final_message\n libusb support:\tNo"
2328 if test "x$use_libcec" != "xno"; then
2329 final_message="$final_message\n libcec support:\tYes"
2331 final_message="$final_message\n libcec support:\tNo"
2334 if test "x$use_libmp3lame" != "xno"; then
2335 final_message="$final_message\n libmp3lame support:\tYes"
2337 final_message="$final_message\n libmp3lame support:\tNo"
2340 if test "x$use_libvorbisenc" != "xno"; then
2341 final_message="$final_message\n libvorbisenc support:\tYes"
2343 final_message="$final_message\n libvorbisenc support:\tNo"
2346 if test "x$use_libcap" != "xno"; then
2347 final_message="$final_message\n libcap support:\tYes"
2349 final_message="$final_message\n libcap support:\tNo"
2352 if test "x$add_players" != "xno"; then
2353 final_message="$final_message\n additional players:\tYes"
2355 final_message="$final_message\n additional players:\tNo"
2358 ### External libraries messages
2360 if test "$use_external_ffmpeg" = "yes"; then
2361 final_message="$final_message\n External FFmpeg:\tYes"
2363 final_message="$final_message\n External FFmpeg:\tNo"
2366 if test "$host_vendor" = "apple" ; then
2367 # built internal but referenced as external, we link directly to them.
2368 # this MUST be the last thing before OUTPUT_FILES as they do not
2369 # exist until after we build FFMpeg.
2370 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2371 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2372 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2373 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2374 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2375 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2376 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2380 DISABLE_PVR_ADDON_CONFIG=1
2381 if [[ -f "pvr-addons/Makefile.am" ]]; then
2382 final_message="$final_message\n PVR add-ons:\t\tYes"
2384 DISABLE_PVR_ADDON_CONFIG=0
2386 final_message="$final_message\n PVR add-ons:\t\tNo"
2389 OUTPUT_FILES="Makefile \
2391 addons/skin.confluence/media/Makefile \
2393 xbmc/cdrip/Makefile \
2394 xbmc/cores/Makefile \
2395 xbmc/cores/VideoRenderers/Makefile \
2396 xbmc/cores/dvdplayer/Makefile \
2398 lib/libdvd/Makefile \
2399 xbmc/cores/DllLoader/Makefile \
2400 xbmc/cores/DllLoader/exports/Makefile \
2401 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2402 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2403 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2404 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2405 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2406 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2407 xbmc/cores/AudioEngine/Makefile \
2408 xbmc/cores/paplayer/Makefile \
2409 xbmc/cores/amlplayer/Makefile \
2410 xbmc/cores/omxplayer/Makefile \
2411 lib/timidity/Makefile \
2412 lib/xbadpcm/Makefile \
2414 lib/nosefart/Makefile \
2415 lib/libsidplay2/Makefile \
2416 lib/vgmstream/Makefile \
2417 lib/snesapu/SNES/SNESAPU/Makefile \
2418 lib/stsound/StSoundLibrary/Makefile \
2419 xbmc/cores/playercorefactory/Makefile \
2420 xbmc/music/karaoke/Makefile \
2422 xbmc/guilib/Makefile \
2423 xbmc/interfaces/Makefile \
2424 xbmc/network/Makefile \
2425 xbmc/network/upnp/Makefile \
2426 lib/libRTV/Makefile \
2427 lib/libexif/Makefile \
2428 lib/libXDAAP/Makefile \
2429 lib/cmyth/Makefile \
2430 lib/libhdhomerun/Makefile \
2431 lib/libsquish/Makefile \
2432 lib/cximage-6.0/Makefile \
2433 lib/libUPnP/Makefile \
2434 xbmc/DllPaths_generated.h \
2435 xbmc/DllPaths_generated_android.h \
2436 xbmc/freebsd/Makefile \
2437 xbmc/linux/Makefile \
2438 xbmc/filesystem/Makefile \
2439 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2440 xbmc/visualizations/XBMCProjectM/Makefile \
2441 xbmc/visualizations/Goom/Makefile \
2442 xbmc/visualizations/OpenGLSpectrum/Makefile \
2443 xbmc/visualizations/fishBMC/Makefile \
2444 xbmc/visualizations/WaveForm/Makefile \
2445 lib/addons/library.xbmc.addon/Makefile \
2446 lib/addons/library.xbmc.gui/Makefile \
2447 lib/addons/library.xbmc.pvr/Makefile \
2448 xbmc/visualizations/EGLHelpers/Makefile \
2449 tools/Linux/xbmc.sh \
2450 tools/Linux/xbmc-standalone.sh \
2451 tools/TexturePacker/Makefile \
2452 tools/EventClients/Clients/OSXRemote/Makefile \
2453 xbmc/peripherals/bus/Makefile \
2454 xbmc/peripherals/devices/Makefile \
2455 xbmc/android/activity/Makefile \
2456 xbmc/android/loader/Makefile \
2457 xbmc/android/jni/Makefile \
2458 xbmc/utils/Makefile \
2461 if test "$use_skin_touched" = "yes"; then
2462 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2465 OUTPUT_FILES="$OUTPUT_FILES \
2466 xbmc/interfaces/python/Makefile \
2467 xbmc/interfaces/python/test/Makefile"
2469 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2470 # .dummy.am does nothing.
2471 AC_CONFIG_FILES([.dummy])
2473 AC_CONFIG_FILES([${OUTPUT_FILES}])
2474 OUTPUT_FILES="$OUTPUT_FILES \
2480 AC_SUBST(SDL_DEFINES)
2481 AC_SUBST(BUILD_DVDCSS)
2482 AC_SUBST(DISABLE_GOOM)
2483 AC_SUBST(DISABLE_RSXS)
2484 AC_SUBST(DISABLE_FISHBMC)
2485 AC_SUBST(DISABLE_PROJECTM)
2486 AC_SUBST(USE_SKIN_TOUCHED)
2487 AC_SUBST(USE_EXTERNAL_FFMPEG)
2488 AC_SUBST(PYTHON_VERSION)
2489 AC_SUBST(OUTPUT_FILES)
2490 AC_SUBST(HAVE_XBMC_NONFREE)
2491 AC_SUBST(USE_ASAP_CODEC)
2492 AC_SUBST(LIBCURL_BASENAME)
2493 AC_SUBST(LIBFLAC_BASENAME)
2494 AC_SUBST(LIBVORBISFILE_BASENAME)
2495 AC_SUBST(LIBMODPLUG_BASENAME)
2496 AC_SUBST(LIBMAD_BASENAME)
2497 AC_SUBST(LIBOGG_BASENAME)
2498 AC_SUBST(LIBVORBISENC_BASENAME)
2499 AC_SUBST(LIBVORBIS_BASENAME)
2500 AC_SUBST(LIBASS_BASENAME)
2501 AC_SUBST(LIBMEPG2_BASENAME)
2502 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2503 AC_SUBST(USE_OPENGL)
2504 AC_SUBST(USE_OPENGLES)
2507 AC_SUBST(USE_CRYSTALHD)
2508 AC_SUBST(USE_LIBSMBCLIENT)
2509 AC_SUBST(USE_LIBNFS)
2510 AC_SUBST(USE_LIBAFPCLIENT)
2511 AC_SUBST(USE_AIRPLAY)
2512 AC_SUBST(USE_OPENMAX)
2514 AC_SUBST(USE_XRANDR)
2516 AC_SUBST(USE_TEXTUREPACKER)
2517 AC_SUBST(USE_TEXTUREPACKER_NATIVE)
2518 AC_SUBST(USE_TEXTUREPACKER_NATIVE_ROOT)
2519 AC_SUBST(USE_AIRTUNES)
2520 AC_SUBST(USE_LIBUDEV)
2521 AC_SUBST(USE_LIBUSB)
2522 AC_SUBST(USE_LIBCEC)
2524 AC_SUBST(USE_WEB_SERVER)
2526 AC_SUBST(USE_OMXLIB)
2527 AC_SUBST(USE_ANDROID)
2528 AC_SUBST(GTEST_CONFIGURED)
2529 AC_SUBST(USE_DOXYGEN)
2530 AC_SUBST(USE_PVR_ADDONS)
2532 # pushd and popd are not available in other shells besides bash, so implement
2533 # our own pushd/popd functions
2538 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2540 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2543 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2548 if [[ -n "$XB_DIRSTACK" ]]; then
2549 XB_DIRSTACK="${XB_DIRSTACK#* }"
2550 cd "${XB_DIRSTACK%% *}"
2553 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2557 # Function to run the configure scripts in our submodules
2558 # Consists of three paramaters, the path to the submodule, the configure command
2559 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2560 # running the script, anything else if not.
2561 AC_DEFUN([XB_CONFIG_MODULE],[
2562 AC_CONFIG_COMMANDS_POST([
2563 if [[ $3 != "1" ]]; then
2564 if [[ -d $1 ]]; then
2567 if [[ $? -ne 0 ]]; then
2569 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2574 AC_MSG_ERROR([[Submodule $1 does not exist]])
2577 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2582 XB_CONFIG_MODULE([lib/ffmpeg], [
2583 if test "$host_vendor" = "apple" ; then
2584 ffmpg_config="--target-os=$ffmpeg_target_os"
2585 # handle disables first, we do individual enables later
2586 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2587 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2588 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2589 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2590 ffmpg_config="$ffmpg_config --enable-vda --disable-crystalhd"
2591 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2593 # handle conditional enables/disables
2594 if test "$use_debug" = "no"; then
2595 ffmpg_config="$ffmpg_config --disable-debug"
2597 if test "$use_cpu" != "no"; then
2598 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2600 if test "$use_arch" != "no"; then
2601 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2603 if test "$use_arch" = "arm"; then
2604 ffmpg_config="$ffmpg_config --enable-pic"
2605 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2606 if test "$use_neon" = "yes"; then
2607 ffmpg_config="$ffmpg_config --enable-neon"
2609 ffmpg_config="$ffmpg_config --disable-neon"
2612 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2614 if test "$use_ffmpeg_libvorbis" = "yes"; then
2615 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2617 ffmpg_config="$ffmpg_config --disable-libvorbis"
2620 # handle individual enables
2621 ffmpg_config="$ffmpg_config --enable-gpl"
2622 ffmpg_config="$ffmpg_config --enable-postproc"
2623 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2624 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts"
2625 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac"
2626 ffmpg_config="$ffmpg_config --enable-protocol=http"
2627 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2629 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2632 ffmpg_config="$ffmpg_config --cc=clang" ;;
2634 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2637 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2638 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2640 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2642 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2643 # dependency files in the right place, replace it with something that works
2646 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2649 # ffmpeg will use yasm found at ${prefix}/bin during configure
2650 # but then hardcodes 'yasm' in config.mak, fix it.
2651 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2652 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2653 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2658 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2660 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2662 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2663 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2664 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2665 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2666 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2667 --target-os=$ffmpeg_target_os \
2669 --enable-muxer=spdif \
2670 --enable-muxer=adts \
2671 --disable-encoders \
2672 --enable-encoder=ac3 \
2673 --enable-encoder=aac \
2674 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2675 --disable-decoder=mpeg_xvmc \
2679 --disable-ffserver \
2681 --disable-crystalhd \
2686 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2687 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2688 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2689 --enable-protocol=http \
2691 --enable-runtime-cpudetect \
2692 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2693 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2694 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2695 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2696 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2698 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2699 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2701 ], [$USE_EXTERNAL_FFMPEG])
2703 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2708 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2709 --host=$host_alias \
2710 --build=$build_alias \
2711 --target=$target_alias \
2715 ], [$SKIP_CONFIG_DVDCSS])
2717 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2719 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src" \
2720 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2721 --host=$host_alias \
2722 --build=$build_alias \
2723 --target=$target_alias \
2729 $MAKE dvdread-config &&
2730 mkdir -p `pwd`/../includes/dvdread
2731 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2732 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2735 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2737 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
2738 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2739 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2740 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2741 --host=$host_alias \
2742 --build=$build_alias \
2743 --target=$target_alias \
2749 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2751 rm -f CMakeCache.txt && \
2752 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2753 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2754 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2755 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2756 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2757 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2758 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2759 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2760 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2761 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2762 if test "$host_vendor" = "apple" ; then
2763 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2764 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2765 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2766 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2769 ], [$DISABLE_PROJECTM])
2771 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2774 CXXFLAGS="$CXXFLAGS" \
2775 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2776 --host=$host_alias \
2777 --build=$build_alias \
2778 --target=$target_alias \
2784 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2785 if test "$host_vendor" = "apple"; then
2786 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";
2788 TEMPCFLAGS="$CFLAGS";
2793 CFLAGS="$TEMPCFLAGS" \
2794 CXXFLAGS="$CXXFLAGS" \
2795 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2796 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2797 --host=$host_alias \
2798 --build=$build_alias \
2799 --target=$target_alias \
2800 --without-xscreensaver \
2803 --disable-fieldlines \
2807 --disable-hyperspace \
2810 if echo "$ARCH" | grep -q freebsd ; then
2811 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2815 XB_CONFIG_MODULE([lib/cpluff], [
2816 ./configure --disable-nls \
2817 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2818 --host=$host_alias \
2819 --build=$build_alias \
2820 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2821 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2824 XB_CONFIG_MODULE([lib/gtest], [
2829 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2830 --host=$host_alias \
2831 --build=$build_alias \
2832 --target=$target_alias \
2836 ], [$SKIP_CONFIG_GTEST])
2838 XB_CONFIG_MODULE([pvr-addons], [
2839 if test "$USE_EXTERNAL_FFMPEG" = 1; then
2840 PVR_EXT_FFMPEG="--enable-external-ffmpeg"
2843 --prefix="${prefix}" \
2844 --host=$host_alias \
2845 --build=$build_alias \
2846 --target=$target_alias \
2851 CXXFLAGS="$CXXFLAGS"
2852 ], [$DISABLE_PVR_ADDON_CONFIG])
2856 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2857 echo -e "$final_message\n"