2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [12.9.4], [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 vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
139 vdpau_disabled="== VDPAU support manually disabled. =="
140 vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
141 vaapi_disabled="== VAAPI support manually disabled. =="
142 crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
143 crystalhd_disabled="== CrystalHD support manually disabled. =="
144 vdadecoder_enabled="== VDADecoder support enabled. =="
145 vdadecoder_disabled="== VDADecoder 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([vdadecoder],
267 [AS_HELP_STRING([--enable-vdadecoder],
268 [enable VDADecoder decoding (default is auto)])],
269 [use_vdadecoder=$enableval],
270 [use_vdadecoder=auto])
272 AC_ARG_ENABLE([vtbdecoder],
273 [AS_HELP_STRING([--enable-vtbdecoder],
274 [enable VTBDecoder decoding (default is auto)])],
275 [use_vtbdecoder=$enableval],
276 [use_vtbdecoder=auto])
278 AC_ARG_ENABLE([openmax],
279 [AS_HELP_STRING([--enable-openmax],
280 [enable OpenMax decoding (default is auto, requires OpenGLES)])],
281 [use_openmax=$enableval],
284 AC_ARG_ENABLE([tegra],
285 [AS_HELP_STRING([--enable-tegra],
286 [enable Tegra2 arm (default is no)])],
287 [use_tegra=$enableval],
290 AC_ARG_ENABLE([profiling],
291 [AS_HELP_STRING([--enable-profiling],
292 [enable gprof profiling (default is no)])],
293 [use_profiling=$enableval],
296 AC_ARG_ENABLE([joystick],
297 [AS_HELP_STRING([--enable-joystick],
298 [enable SDL joystick support (default is yes)])],
299 [use_joystick=$enableval],
302 AC_ARG_ENABLE([xrandr],
303 [AS_HELP_STRING([--enable-xrandr],
304 [enable XRandR support (default is yes)])],
305 [use_xrandr=$enableval],
308 AC_ARG_ENABLE([goom],
309 [AS_HELP_STRING([--enable-goom],
310 [enable GOOM visualisation (default is no)])],
311 [use_goom=$enableval],
314 AC_ARG_ENABLE([rsxs],
315 [AS_HELP_STRING([--enable-rsxs],
316 [enable really slick X screensavers (default is yes)])],
317 [use_rsxs=$enableval],
320 AC_ARG_ENABLE([fishbmc],
321 [AS_HELP_STRING([--enable-fishbmc],
322 [enable FishBMC visualisation (default is yes)])],
323 [use_fishbmc=$enableval],
326 AC_ARG_ENABLE([projectm],
327 [AS_HELP_STRING([--enable-projectm],
328 [enable ProjectM visualisation (default is yes)])],
329 [use_projectm=$enableval],
333 [AS_HELP_STRING([--enable-x11],
334 [enable x11 (default is yes) 'Linux Only'])],
335 [use_x11=$enableval],
338 AC_ARG_ENABLE([ccache],
339 [AS_HELP_STRING([--enable-ccache],
340 [enable building with ccache feature (default is auto)])],
341 [use_ccache=$enableval],
344 AC_ARG_ENABLE([alsa],
345 [AS_HELP_STRING([--disable-alsa],
346 [disable ALSA support (only for linux/freebsd)])],
347 [use_alsa=$enableval],
350 AC_ARG_ENABLE([pulse],
351 [AS_HELP_STRING([--enable-pulse],
352 [enable PulseAudio support (default is no)])],
353 [use_pulse=$enableval],
357 [AS_HELP_STRING([--disable-ssh],
358 [disable SSH SFTP support (default is enabled)])],
359 [use_ssh=$enableval],
362 AC_ARG_ENABLE([rtmp],
363 [AS_HELP_STRING([--enable-rtmp],
364 [enable RTMP support via librtmp (default is auto)])],
365 [use_librtmp=$enableval],
368 AC_ARG_ENABLE([samba],
369 [AS_HELP_STRING([--disable-samba],
370 [disable SAMBA support (default is enabled)])],
371 [use_samba=$enableval],
375 [AS_HELP_STRING([--enable-nfs],
376 [enable NFS support via libnfs (default is auto)])],
377 [use_libnfs=$enableval],
380 AC_ARG_ENABLE([afpclient],
381 [AS_HELP_STRING([--enable-afpclient],
382 [enable AFP support via libafpclient (default is auto)])],
383 [use_libafpclient=$enableval],
384 [use_libafpclient=auto])
386 AC_ARG_ENABLE([airplay],
387 [AS_HELP_STRING([--enable-airplay],
388 [enable AirPlay support(default is auto)])],
389 [use_airplay=$enableval],
392 AC_ARG_ENABLE([airtunes],
393 [AS_HELP_STRING([--enable-airtunes],
394 [enable AirTunes support(default is auto)])],
395 [use_airtunes=$enableval],
398 AC_ARG_ENABLE([upnp],
399 [AS_HELP_STRING([--disable-upnp],
400 [disable UPnP support (default is enabled)])],
401 [use_upnp=$enableval],
404 AC_ARG_ENABLE([ffmpeg_libvorbis],
405 [AS_HELP_STRING([--enable-ffmpeg-libvorbis],
406 [enable FFmpeg vorbis encoding (default is no)])],
407 [use_ffmpeg_libvorbis=$enableval],
408 [use_ffmpeg_libvorbis=no])
410 AC_ARG_ENABLE([dvdcss],
411 [AS_HELP_STRING([--enable-dvdcss],
412 [enable DVDCSS support (default is yes)])],
413 [use_dvdcss=$enableval],
417 [AS_HELP_STRING([--enable-mid],
418 [enable MID support (default is no)])],
419 [use_mid=$enableval],
423 [AS_HELP_STRING([--disable-hal],
424 [disable HAL support (default is enabled if hal and hal-storage is found)])],
425 [use_hal=$enableval],
428 AC_ARG_ENABLE([avahi],
429 [AS_HELP_STRING([--disable-avahi],
430 [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
431 [use_avahi=$enableval],
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")
617 use_texturepacker_native=yes
621 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
622 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
623 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
624 PYTHON_NOVERSIONCHECK="no-check"
625 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_IOS -D_LINUX")
630 use_texturepacker_native=yes
632 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
634 powerpc-apple-darwin*)
641 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
643 powerpc-*-linux-gnu*)
645 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC")
647 powerpc64-*-linux-gnu*)
648 ARCH="powerpc64-linux"
649 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC64")
655 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
656 ffmpeg_target_os=linux
663 arm*-*linux-android*)
664 target_platform=target_android
668 ffmpeg_target_os=linux
678 AC_MSG_ERROR(unsupported host ($host))
683 check_sdl_arch=[`file $USE_TEXTUREPACKER_NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
684 if test "x$check_sdl_arch" = "xi386" ; then
685 DARWIN_NATIVE_ARCH=-m32
686 elif test "x$check_sdl_arch" = "xx86_64" ; then
687 DARWIN_NATIVE_ARCH=-m64
689 AC_SUBST([DARWIN_NATIVE_ARCH])
691 if test "$target_platform" = "target_android" ; then
693 use_texturepacker_native=yes
694 webserver_checkdepends=yes
695 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_ANDROID")
696 CFLAGS="$CFLAGS -Wno-psabi"
697 CXXFLAGS="$CXXFLAGS -Wno-psabi"
698 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
701 case $use_platform in
703 target_platform=target_raspberry_pi
705 use_texturepacker=yes
706 use_texturepacker_native=yes
709 use_hardcoded_tables="yes"
711 USE_TEXTUREPACKER_NATIVE_ROOT="$TEXTUREPACKER_NATIVE_ROOT"
713 AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI")
714 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
715 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
718 ffmpeg_target_os=linux
723 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
724 if test "$GIT_REV" = ""; then
725 if test -f VERSION ; then
726 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
727 elif test "$HAVE_GIT" = "yes"; then
728 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
733 final_message="$final_message\n git Rev.:\t${GIT_REV}"
735 if test "$host_vendor" = "apple"; then
736 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
738 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
741 if test "$build_shared_lib" = "yes"; then
742 final_message="$final_message\n Shared lib\tYes"
743 AC_SUBST(USE_LIBXBMC,1)
747 # platform debug flags
748 if test "$use_debug" = "yes"; then
749 final_message="$final_message\n Debugging:\tYes"
750 if test "$use_profiling" = "yes"; then
751 final_message="$final_message\n Profiling:\tYes"
752 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
754 final_message="$final_message\n Profiling:\tNo"
755 DEBUG_FLAGS="-g -D_DEBUG -Wall"
758 final_message="$final_message\n Debugging:\tNo"
759 if test "$use_profiling" = "yes"; then
760 final_message="$final_message\n Profiling:\tYes"
761 DEBUG_FLAGS="-pg -DNDEBUG=1"
763 final_message="$final_message\n Profiling:\tNo"
764 DEBUG_FLAGS="-DNDEBUG=1"
767 CFLAGS="$CFLAGS $DEBUG_FLAGS"
768 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
771 if test "$use_optimizations" = "yes"; then
772 final_message="$final_message\n Optimization:\tYes"
773 if test "$target_platform" = "target_raspberry_pi"; then
777 CXXFLAGS="-O2 $CXXFLAGS"
781 final_message="$final_message\n Optimization:\tNo"
785 # platform specific flags
786 if echo "$ARCH" | grep -q "freebsd" ; then
787 LOCALBASE="${LOCALBASE:-/usr/local}"
788 CFLAGS="$CFLAGS -I$LOCALBASE/include"
789 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
790 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
791 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
792 FFMPEG_EXTRACFLAGS="-I$LOCALBASE/include"
794 if test "$host_vendor" = "apple" ; then
795 # standard xbmc paths
796 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
797 if test "$use_arch" != "arm"; then
798 LIBS="$LIBS -framework ApplicationServices"
799 LIBS="$LIBS -framework AudioUnit"
800 LIBS="$LIBS -framework AudioToolbox"
801 LIBS="$LIBS -framework Cocoa"
802 LIBS="$LIBS -framework CoreAudio"
803 LIBS="$LIBS -framework CoreVideo"
804 LIBS="$LIBS -framework CoreServices"
805 LIBS="$LIBS -framework CoreFoundation"
806 LIBS="$LIBS -framework DiskArbitration"
807 LIBS="$LIBS -framework IOKit"
808 LIBS="$LIBS -framework IOSurface"
809 LIBS="$LIBS -framework QuartzCore"
810 LIBS="$LIBS -framework SystemConfiguration"
812 USE_EXTERNAL_FFMPEG=1
813 elif test "$target_platform" = "target_raspberry_pi"; then
816 elif test "$use_arch" = "arm"; then
817 CFLAGS="$CFLAGS -mno-apcs-stack-check"
818 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
819 FFMPEG_EXTRACFLAGS=""
820 if test "$use_tegra" = "yes"; then
821 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
822 SAVE_CFLAGS="$CFLAGS"
823 CFLAGS="-mfpu=vfpv3-d16"
825 [AC_LANG_SOURCE([int foo;])],
826 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
827 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
828 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
830 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
831 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
834 if test "$use_neon" = "yes"; then
835 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
836 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
837 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
842 # Checks for library functions.
845 AC_FUNC_CLOSEDIR_VOID
846 AC_FUNC_ERROR_AT_LINE
848 AC_PROG_GCC_TRADITIONAL
850 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
854 # Boxee is apparently having compile problems
855 # if HAVE_REALLOC is defined. Sort this later.
857 AC_FUNC_SELECT_ARGTYPES
858 AC_FUNC_SETVBUF_REVERSED
866 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])
868 # Check for various sizes
869 AC_CHECK_SIZEOF([int])
870 AC_CHECK_SIZEOF([size_t])
872 # Check for intrinsics
873 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
874 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
875 [have_builtin_sync_add_and_fetch=yes],
876 [have_builtin_sync_add_and_fetch=no])
877 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
878 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
879 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
880 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
883 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
884 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
885 [have_builtin_sync_sub_and_fetch=yes],
886 [have_builtin_sync_sub_and_fetch=no])
887 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
888 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
889 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
890 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
893 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
894 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
895 [have_builtin_sync_val_compare_and_swap=yes],
896 [have_builtin_sync_val_compare_and_swap=no])
897 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
898 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
899 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
900 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
903 # Add top source directory for all builds so we can use config.h
904 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
906 # Check inotify availability
907 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
909 # Checks for boost headers using CXX instead of CC
911 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
915 if test -z "$PYTHON_NOVERSIONCHECK"; then
916 AX_PYTHON_DEVEL([>= 2.4])
917 PYTHON_VERSION=$ac_python_version
920 if test -z "$PYTHON_VERSION"; then
921 AC_MSG_ERROR([Can't find a Python version.])
923 LIBS="$LIBS $PYTHON_LDFLAGS"
924 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
927 # Checks for platforms libraries.
928 if test "$use_gles" = "yes"; then
930 # GLES overwrites GL if both set to yes.
931 if test "$host_vendor" = "apple" ; then
932 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
933 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
934 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
936 if test "$target_platform" = "target_raspberry_pi"; then
937 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
938 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
939 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
940 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
942 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
943 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
947 if test "$use_gl" = "yes"; then
948 if test "$host_vendor" = "apple" ; then
949 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
950 LIBS="$LIBS -framework OpenGL"
951 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
952 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
953 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
954 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
955 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
957 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
958 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
959 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
962 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
963 AC_CHECK_LIB([SDL_gfx],[main])
967 # platform common libraries
968 if test "$use_mysql" = "yes"; then
969 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
970 if test "x$MYSQL_CONFIG" != "xno"; then
971 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
972 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
973 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
974 LIBS="$LIBS $MYSQL_LIBS"
977 AC_MSG_ERROR($missing_program)
980 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
981 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
982 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
983 AC_INCLUDES_DEFAULT()
984 [#include <mpeg2dec/mpeg2.h>])
985 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
986 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
987 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
988 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
989 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
990 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
991 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
992 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
994 # we need to check for the header because if it exists we set the openssl
995 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
996 # in MT manner correctly.
997 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
998 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
999 if test "$gcrypt_headers_available" = "yes"; then
1000 # if we have the headers then we must have the lib
1001 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1002 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1003 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1006 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1007 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1008 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1009 if echo "$ARCH" | grep -q freebsd; then
1010 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1011 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1012 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1013 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1015 if test "$target_platform" != "target_android" ; then
1016 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1017 AC_CHECK_LIB([pthread], [pthread_setname_np],
1018 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1019 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1022 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1023 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1024 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1025 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1026 if test "$use_mysql" = "yes"; then
1027 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1029 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1030 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1031 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1032 if test "$target_platform" = "target_android" ; then
1033 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1034 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1035 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1037 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1038 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1039 AC_MSG_ERROR($missing_library))
1040 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1041 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1042 AC_MSG_ERROR($missing_library))
1043 PKG_CHECK_MODULES([PNG], [libpng],
1044 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1045 AC_MSG_ERROR($missing_library))
1046 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1047 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1048 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1049 AC_MSG_ERROR($missing_library))
1050 PKG_CHECK_MODULES([PCRE], [libpcre],
1051 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1052 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1053 AC_MSG_ERROR($missing_library))
1054 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1055 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1056 AC_MSG_ERROR($missing_library))
1057 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1058 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1059 AC_MSG_ERROR($missing_library))
1060 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1061 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1062 AC_MSG_ERROR($missing_library))
1064 if test "$use_optical_drive" = "yes"; then
1065 PKG_CHECK_MODULES([CDIO], [libcdio],
1066 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1067 AC_MSG_ERROR($missing_library))
1070 if test "$target_platform" = "target_android" ; then
1071 PKG_CHECK_MODULES([ZIP], [libzip],
1072 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1073 AC_MSG_ERROR($missing_library))
1076 # check for libbluray
1077 AS_CASE([x$use_libbluray],
1079 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1082 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1085 AS_CASE([x$use_libbluray],
1087 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1088 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1089 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1090 AC_SUBST([HAVE_LIBBLURAY], 1)
1091 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1092 AC_CHECK_DECL([BD_EVENT_IDLE],
1093 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1094 [[#include <libbluray/bluray.h>]]))
1096 AC_SUBST([HAVE_LIBBLURAY], 0)
1100 #Check to see if libs are needed for functions that are often built-in to libc
1101 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1102 AC_SEARCH_LIBS([dlopen],dl)
1103 AC_SEARCH_LIBS([clock_gettime],rt)
1104 AC_SEARCH_LIBS([dn_expand], resolv)
1105 AC_SEARCH_LIBS([_dn_expand], resolv)
1106 AC_SEARCH_LIBS([__dn_expand],resolv)
1108 # platform dependent libraries
1109 if test "$host_vendor" = "apple" ; then
1110 if test "$use_arch" != "arm"; then
1111 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1112 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1115 if test "$target_platform" != "target_android" ; then
1116 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1118 if test "x$use_alsa" != "xno"; then
1119 PKG_CHECK_MODULES([ALSA], [alsa],
1120 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1121 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1123 PKG_CHECK_MODULES([DBUS], [dbus-1],
1124 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1125 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1126 AC_MSG_NOTICE($missing_library); use_dbus=no)
1127 if test "x$use_sdl" != "xno"; then
1128 PKG_CHECK_MODULES([SDL], [sdl],
1129 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1130 AC_MSG_ERROR($missing_library))
1131 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1132 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1136 XB_FIND_SONAME([MAD], [mad])
1137 XB_FIND_SONAME([OGG], [ogg])
1138 XB_FIND_SONAME([CURL], [curl])
1139 XB_FIND_SONAME([FLAC], [FLAC])
1140 XB_FIND_SONAME([VORBIS], [vorbis])
1141 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1142 XB_FIND_SONAME([MODPLUG], [modplug])
1143 XB_FIND_SONAME([ASS], [ass])
1144 XB_FIND_SONAME([MPEG2], [mpeg2])
1147 if test "x$use_libmp3lame" != "xno"; then
1148 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1149 if test "x$use_libmp3lame" != "xno"; then
1150 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1153 AS_CASE([x$use_libmp3lame],
1155 AC_SUBST([HAVE_LIBMP3LAME], 0)
1158 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1159 AC_SUBST([HAVE_LIBMP3LAME], 1)
1162 if test "x$use_libvorbisenc" != "xno"; then
1163 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1164 if test "x$use_libvorbisenc" != "xno"; then
1165 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1168 AS_CASE([x$use_libvorbisenc],
1170 AC_SUBST([HAVE_LIBVORBISENC], 0)
1172 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1173 AC_SUBST([HAVE_LIBVORBISENC], 1)
1178 if test "$use_webserver" = "yes"; then
1179 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1183 if test "$use_optical_drive" = "yes"; then
1184 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1188 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1189 PKG_CHECK_MODULES([ALSA], [alsa],
1190 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1191 AC_MSG_ERROR($missing_library))
1192 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1195 AC_MSG_RESULT($alsa_disabled)
1199 if test "x$use_pulse" != "xno"; then
1200 if test "$host_vendor" = "apple" ; then
1201 if test "x$use_pulse" = "xyes"; then
1202 AC_MSG_ERROR($pulse_disabled)
1205 AC_MSG_RESULT($pulse_disabled)
1209 AC_CHECK_LIB([pulse],[main],,pulse_found="no")
1210 AC_CHECK_LIB([pulse-simple],[main],,pulse_found="no")
1212 if test "x$pulse_found" != "xno"; then
1214 elif test "x$use_pulse" = "xyes"; then
1215 AC_MSG_ERROR($pulse_not_found)
1219 AC_MSG_RESULT($pulse_not_found)
1223 AC_MSG_RESULT($pulse_disabled)
1228 if test "$host_vendor" = "apple" ; then
1230 AC_MSG_RESULT($hal_disabled)
1232 if test "$use_hal" = "yes"; then
1233 PKG_CHECK_MODULES([HAL], [hal],
1234 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1235 use_hal=no;AC_MSG_RESULT($hal_not_found))
1236 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1237 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1238 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1240 AC_MSG_RESULT($hal_disabled)
1242 if test "$use_hal" = "yes"; then
1243 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1248 if test "$host_vendor" = "apple" ; then
1250 AC_MSG_RESULT($avahi_disabled)
1252 if test "$use_avahi" = "yes"; then
1253 AC_CHECK_LIB([avahi-common], [main],,
1254 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1255 if test "$use_avahi" = "yes"; then
1256 #either both libs or none
1257 AC_CHECK_LIB([avahi-client], [main],,
1258 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1261 AC_MSG_RESULT($avahi_disabled)
1266 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1267 AC_MSG_NOTICE($x11_enabled)
1268 PKG_CHECK_MODULES([X11], [x11],
1269 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1270 AC_MSG_ERROR($missing_library))
1271 PKG_CHECK_MODULES([XEXT], [xext],
1272 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1273 AC_MSG_ERROR($missing_library))
1274 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1276 AC_MSG_RESULT($x11_disabled)
1280 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1282 AC_MSG_RESULT($xrandr_disabled)
1284 if test "$use_xrandr" = "yes" ; then
1285 AC_CHECK_LIB([Xrandr], [main],,
1286 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1288 AC_MSG_RESULT($xrandr_disabled)
1293 if test "$host_vendor" = "apple" ; then
1294 AC_MSG_NOTICE($goom_disabled)
1297 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1298 AC_MSG_NOTICE($goom_enabled)
1301 AC_MSG_NOTICE($goom_disabled)
1307 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1308 AC_MSG_NOTICE($rsxs_disabled)
1311 AC_MSG_NOTICE($rsxs_enabled)
1313 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1314 if test "$host_vendor" != "apple" ; then
1315 PKG_CHECK_MODULES([XT], [xt],
1316 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1317 AC_MSG_ERROR($missing_library))
1318 PKG_CHECK_MODULES([XMU], [xmu],
1319 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1320 AC_MSG_ERROR($missing_library))
1325 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1326 AC_MSG_NOTICE($fishbmc_disabled)
1330 AC_MSG_NOTICE($fishbmc_enabled)
1335 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1336 AC_MSG_NOTICE($projectm_disabled)
1340 AC_MSG_NOTICE($projectm_enabled)
1346 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1347 use_skin_touched=yes
1349 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1355 if test "x$use_ssh" = "xno"; then
1356 AC_MSG_NOTICE($ssh_disabled)
1359 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1360 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1364 if test "$use_librtmp" != "no"; then
1365 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1366 [if test "$use_librtmp" = "yes"; then
1367 AC_MSG_ERROR($librtmp_not_found)
1368 elif test "$use_librtmp" != "no"; then
1369 AC_MSG_NOTICE($librtmp_not_found)
1373 if test "$use_librtmp" != "no"; then
1374 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1376 if test "$use_librtmp" != "no"; then
1377 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1380 AC_MSG_NOTICE($librtmp_disabled)
1384 if test "x$use_samba" != "xno"; then
1385 AC_CHECK_LIB([smbclient], [main],,
1386 use_samba=no;AC_MSG_ERROR($missing_library))
1389 AC_MSG_RESULT($samba_disabled)
1393 if test "x$use_samba" != "xno"; then
1394 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1399 if test "$use_libnfs" != "no"; then
1400 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1401 [if test "$use_libnfs" = "yes"; then
1402 AC_MSG_ERROR($libnfs_not_found)
1404 elif test "$use_libnfs" != "no"; then
1405 AC_MSG_NOTICE($libnfs_not_found)
1410 if test "$use_libnfs" != "no"; then
1411 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1413 if test "$use_libnfs" != "no"; then
1414 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1419 AC_MSG_NOTICE($libnfs_disabled)
1424 if test "x$use_libafpclient" != "xno"; then
1425 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1426 [if test "x$use_libafpclient" = "xyes"; then
1427 AC_MSG_ERROR($libafpclient_not_found)
1428 elif test "x$use_libafpclient" != "xno"; then
1429 AC_MSG_NOTICE($libafpclient_not_found)
1430 use_libafpclient="no"
1433 if test "x$use_libafpclient" != "xno"; then
1434 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1435 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1439 AC_MSG_NOTICE($libafpclient_disabled)
1442 # libplist for airplay feature
1444 if test "$use_airplay" != "no"; then
1445 AC_CHECK_HEADER([plist/plist.h],,
1446 [if test "$use_airplay" = "yes"; then
1447 AC_MSG_ERROR($libplist_not_found)
1448 elif test "$use_airplay" != "no"; then
1449 AC_MSG_NOTICE($libplist_not_found)
1454 if test "$use_airplay" != "no"; then
1455 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1457 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1461 # libshairplay for AirTunes (prefered lib)
1463 if test "x$use_airtunes" != "xno"; then
1464 AC_CHECK_HEADERS([shairplay/raop.h],,
1465 [if test "x$use_airtunes" = "xyes"; then
1466 AC_MSG_ERROR($libshairplay_not_found)
1467 elif test "x$use_airtunes" != "xno"; then
1468 AC_MSG_NOTICE($libshairplay_not_found)
1473 if test "x$use_airtunes" != "xno"; then
1474 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [use_airtunes])
1477 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1478 [[#include <shairplay/raop.h>]])
1479 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1482 #libshairport - as a fallback for AirTunes
1483 if test "x$USE_AIRTUNES" == "x0"; then
1484 AC_CHECK_HEADERS([shairport/shairport.h],,
1485 [if test "x$use_airtunes" = "xyes"; then
1486 AC_MSG_ERROR($libshairport_not_found)
1487 elif test "x$use_airtunes" != "xno"; then
1488 AC_MSG_NOTICE($libshairport_not_found)
1493 if test "x$use_airtunes" != "xno"; then
1494 XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
1496 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1497 [[#include <shairport/shairport.h>]])
1498 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1505 if test "$host_vendor" = "apple" ; then
1507 AC_MSG_NOTICE($libudev_disabled)
1509 if test "$use_libudev" = "auto"; then
1510 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1511 elif test "$use_libudev" = "yes" ; then
1512 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1514 AC_MSG_NOTICE($libudev_disabled)
1517 if test "x$use_libudev" != "xno"; then
1518 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1519 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1526 # if libudev is available, we don't need libusb
1527 if test "x$use_libudev" != "xno"; then
1529 AC_MSG_NOTICE($libusb_disabled_udev_found)
1531 if test "$host_vendor" = "apple" ; then
1533 AC_MSG_NOTICE($libusb_disabled)
1535 if echo "$ARCH" | grep -q freebsd ; then
1536 AC_CHECK_LIB([usb],[main],
1537 [use_libusb="yes";USB_LIBS="-lusb"],
1538 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1539 elif test "$use_libusb" = "auto"; then
1540 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1541 elif test "$use_libusb" = "yes"; then
1542 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1544 AC_MSG_NOTICE($libusb_disabled)
1547 if test "x$use_libusb" != "xno"; then
1548 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1549 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1556 if test "x$use_libcec" != "xno"; then
1557 # libcec is dyloaded, so we need to check for its headers and link any depends.
1558 if test "x$use_libcec" != "xno"; then
1559 if test "x$use_libcec" != "xauto"; then
1560 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1562 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1565 if test "x$use_libcec" != "xno"; then
1566 INCLUDES="$INCLUDES $CEC_CFLAGS"
1567 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1568 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1569 AC_MSG_NOTICE($libcec_enabled)
1572 AC_MSG_NOTICE($libcec_disabled)
1577 AC_MSG_NOTICE($libcec_disabled)
1581 if test "$use_libcap" != "no"; then
1582 AC_CHECK_HEADERS([sys/capability.h],,
1583 [if test "$use_libcap" = "yes"; then
1584 AC_MSG_ERROR($libcap_not_found)
1585 elif test "$use_libcap" != "no"; then
1586 AC_MSG_NOTICE($libcap_not_found)
1590 if test "$use_libcap" != "no"; then
1591 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1593 if test "$use_libcap" != "no"; then
1594 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1597 AC_MSG_NOTICE($libcap_disabled)
1600 ### External libraries checks
1603 if test "$use_external_ffmpeg" = "yes"; then
1604 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale"
1606 # libavcore is optional
1607 PKG_CHECK_EXISTS([libavcore], FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libavcore")
1609 # one of libswresample or libavresample is needed
1610 PKG_CHECK_EXISTS([libswresample], FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libswresample",
1611 [PKG_CHECK_EXISTS([libavresample],
1612 FFMPEG_LIBNAMES="$FFMPEG_LIBNAMES libavresample",
1613 AC_MSG_ERROR([You need either libswresample
1614 or libavresample.]))])
1616 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1617 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1618 AC_MSG_ERROR($missing_library))
1620 # Determine whether AVPacket and relevant functions are defined in libavformat
1622 AC_CHECK_LIB([avcodec], [av_free_packet],
1623 [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavcodec. ==)],
1624 [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavformat. ==)
1625 AC_DEFINE([AVPACKET_IN_AVFORMAT], [1], [Whether AVPacket is in libavformat.])])
1627 # in case the headers are in a custom directory
1628 SAVE_CPPFLAGS="$CPPFLAGS"
1629 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1631 # Possible places the ffmpeg headers may be
1632 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1633 [AC_CHECK_HEADERS([ffmpeg/avcodec.h ffmpeg/avfilter.h ffmpeg/avformat.h ffmpeg/avutil.h postproc/postprocess.h ffmpeg/swscale.h],,
1634 [AC_MSG_ERROR($missing_headers)])])
1637 AC_CHECK_HEADERS([libavcore/avcore.h libavcore/samplefmt.h libavutil/mem.h libavutil/samplefmt.h])
1639 # old FFmpeg have this in libavcodec/opt.h instead:
1640 AC_CHECK_HEADERS([libavutil/opt.h])
1642 # new FFmpeg have math headers
1643 AC_CHECK_HEADERS([libavutil/mathematics.h],,)
1645 # We'll support the use of rgb2rgb.h if it exists.
1646 AC_CHECK_HEADERS([libswscale/rgb2rgb.h],,)
1647 AC_CHECK_HEADERS([ffmpeg/rgb2rgb.h],,)
1649 # Check for libswresample or libavresample headers.
1650 AC_CHECK_HEADERS([libswresample/swresample.h libavresample/avresample.h])
1652 # Check if AVFilterBufferRefVideoProps AVRational member is named
1653 # 'pixel_aspect' or 'sample_aspect_ratio'.
1654 AC_CHECK_MEMBER([AVFilterBufferRefVideoProps.sample_aspect_ratio],
1655 [AC_DEFINE([HAVE_AVFILTERBUFFERREFVIDEOPROPS_SAMPLE_ASPECT_RATIO],
1657 [Define to 1 if AVFilterBufferRefVideoProps has member sample_aspect_ratio.])],
1658 [AC_CHECK_MEMBER([AVFilterBufferRefVideoProps.sample_aspect_ratio],
1659 [AC_DEFINE([HAVE_AVFILTERBUFFERREFVIDEOPROPS_SAMPLE_ASPECT_RATIO],
1661 [Define to 1 if AVFilterBufferRefVideoProps has member sample_aspect_ratio.])],
1663 [[#include <ffmpeg/avfilter.h>]])],
1664 [[#include <libavfilter/avfilter.h>]])
1666 AC_MSG_NOTICE($external_ffmpeg_enabled)
1667 USE_EXTERNAL_FFMPEG=1
1668 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1670 # Disable vdpau support if external libavcodec doesn't have it
1671 AC_CHECK_LIB([avcodec], [ff_vdpau_vc1_decode_picture],,
1672 [if test "x$use_vdpau" = "xyes"; then
1673 AC_MSG_ERROR($ffmpeg_vdpau_not_supported)
1676 AC_MSG_RESULT($ffmpeg_vdpau_not_supported)
1679 # Check for 'PIX_FMT_VDPAU_MPEG4' from libavutil
1680 if test "x$use_vdpau" != "xno"; then
1683 [AC_LANG_SOURCE([ #include <libavutil/pixfmt.h>
1684 int main() { PixelFormat format = PIX_FMT_VDPAU_MPEG4; }])],
1685 [AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1],
1686 [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])],)
1689 CPPFLAGS="$SAVE_CPPFLAGS"
1691 AC_MSG_NOTICE($external_ffmpeg_disabled)
1692 USE_EXTERNAL_FFMPEG=0
1693 AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1], [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])
1696 echo "Checking for SWIG installation"
1697 AC_PATH_PROG(SWIG_EXE, swig, "none")
1698 if test "$SWIG_EXE" = "none"; then
1699 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1700 if test "$SWIG20_EXE" != "none" ; then
1701 SWIG_EXE=$SWIG20_EXE
1704 if test "$SWIG_EXE" = "none"; then
1705 AC_MSG_ERROR($missing_program)
1707 final_message="$final_message\n SWIG Available:\tYes"
1709 echo "Checking for a jre installation"
1710 AC_PATH_PROG(JAVA_EXE, java, "none")
1711 if test "$JAVA_EXE" = "none"; then
1712 AC_MSG_ERROR($missing_program)
1714 final_message="$final_message\n JRE Available:\tYes"
1716 echo "Checking for doxygen installation"
1717 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1718 if test "$DOXYGEN_EXE" = "none"; then
1719 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1720 final_message="$final_message\n Doxygen Available:\tNo"
1723 final_message="$final_message\n Doxygen Available:\tYes"
1728 if test "x$use_vdpau" != "xno"; then
1729 if test "$host_vendor" = "apple" ; then
1730 if test "x$use_vdpau" = "xyes"; then
1731 AC_MSG_ERROR([VDPAU not supported on this platform])
1734 AC_MSG_NOTICE($vdpau_disabled)
1739 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1740 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1741 [if test "x$use_vdpau" = "xyes"; then
1743 AC_MSG_ERROR([$vdpau_not_found])
1747 AC_MSG_RESULT($vdpau_not_found)
1752 AC_MSG_NOTICE($vdpau_disabled)
1756 if test "x$use_vaapi" != "xno"; then
1757 if test "$host_vendor" = "apple" ; then
1758 if test "x$use_vaapi" = "xyes"; then
1759 AC_MSG_ERROR([VAAPI not supported on this platform])
1762 AC_MSG_NOTICE($vaapi_disabled)
1766 initial_val=$use_vaapi
1767 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1768 if test "x$use_vaapi" != "xno"; then
1769 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1772 if test "x$use_vaapi" = "xno"; then
1773 if test "x$initial_val" = "xyes"; then
1774 AC_MSG_ERROR($vaapi_not_found)
1776 AC_MSG_RESULT($vaapi_not_found)
1780 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1785 AC_MSG_NOTICE($vaapi_disabled)
1790 if test "x$use_crystalhd" != "xno"; then
1791 SAVE_CFLAGS="$CFLAGS"
1792 CFLAGS="-D__LINUX_USER__"
1793 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1794 [ if test "x$use_crystalhd" = "xyes"; then
1795 AC_MSG_ERROR($crystalhd_not_found)
1798 AC_MSG_RESULT($crystalhd_not_found)
1802 CFLAGS="$SAVE_CFLAGS"
1803 if test "$host_vendor" != "apple"; then
1804 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1806 if test "x$use_crystalhd" != "xno"; then
1807 SAVE_CFLAGS="$CFLAGS"
1808 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1809 # check for new crystalhd lib
1811 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1812 #include <libcrystalhd/bc_dts_defs.h>
1813 PBC_INFO_CRYSTAL bCrystalInfo;])],
1814 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1815 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1816 CFLAGS="$SAVE_CFLAGS"
1820 AC_MSG_NOTICE($crystalhd_disabled)
1825 if test "x$use_vdadecoder" != "xno"; then
1826 if test "$host_vendor" = "apple" ; then
1827 HAVE_LIBVDADECODER=1
1828 AC_DEFINE([HAVE_LIBVDADECODER], [1], [Define to 1 if you have the 'VDADecoder' library.])
1829 AC_MSG_NOTICE($vdadecoder_enabled)
1832 if test "x$use_vdadecoder" = "xyes"; then
1833 AC_MSG_ERROR([VDA Decoder not supported on this platform])
1836 AC_MSG_NOTICE($vdadecoder_disabled)
1841 AC_MSG_NOTICE($vdadecoder_disabled)
1845 if test "x$use_vtbdecoder" != "xno"; then
1846 if test "$host_vendor" = "apple" ; then
1847 HAVE_VIDEOTOOLBOXDECODER=1
1848 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1849 AC_MSG_NOTICE($vtbdecoder_enabled)
1851 if test "x$use_vtbdecoder" = "xyes"; then
1852 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1855 AC_MSG_NOTICE($vtbdecoder_disabled)
1859 AC_MSG_NOTICE($vtbdecoder_disabled)
1863 if test "$host_vendor" = "apple" ; then
1866 AC_MSG_NOTICE($openmax_disabled)
1867 elif test "$target_platform" = "target_raspberry_pi"; then
1870 AC_MSG_NOTICE($openmax_disabled)
1872 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1873 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1874 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1875 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1876 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1877 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1878 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1879 AC_MSG_ERROR($openmax_not_found))
1881 AC_MSG_NOTICE($openmax_disabled)
1887 # yajl version check (yajl_version.h was added in yajl 2.0)
1888 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1889 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1892 # additional internal players
1893 case $add_players in
1895 AC_CHECK_HEADER([amlplayer/amports/amstream.h],, AC_MSG_ERROR($missing_headers))
1896 XB_ADD_PLAYER([AMLPLAYER], [amlplayer])
1899 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1903 # additional internal codecs
1906 AC_CHECK_HEADER([amlplayer/codec_error.h],, AC_MSG_ERROR($missing_headers))
1907 XB_ADD_CODEC([LIBAMCODEC], [amcodec])
1911 # platform specific bin utilities
1912 if test "$build_vendor" != "apple" ; then
1913 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1914 if test "$HAVE_GAWK" = "no" ; then
1915 AC_MSG_ERROR($missing_program)
1919 if test "$use_arch" != "arm" ; then
1920 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1921 if test "$HAVE_CMAKE" = "no" ; then
1922 AC_MSG_ERROR($missing_program)
1926 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1927 if test "$HAVE_GPERF" = "no" ; then
1928 AC_MSG_ERROR($missing_program)
1931 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1932 if test "$HAVE_UNZIP" = "no" ; then
1933 AC_MSG_ERROR($missing_program)
1936 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
1937 if test "$HAVE_ZIP" = "no" ; then
1938 AC_MSG_ERROR($missing_program)
1941 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
1942 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
1943 if test "$HAVE_NASM" = "no" ; then
1944 AC_MSG_ERROR($missing_program)
1948 # Checks for header files.
1952 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
1953 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
1954 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
1955 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
1956 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
1958 # Checks for typedefs, structures, and compiler characteristics.
1974 AC_CHECK_MEMBERS([struct stat.st_rdev])
1983 if test "$cross_compiling" = "yes"; then
1984 final_message="$final_message\n Crosscomp.:\tYes"
1986 final_message="$final_message\n Crosscomp.:\tNo"
1989 final_message="$final_message\n target ARCH:\t$use_arch"
1990 final_message="$final_message\n target CPU:\t$use_cpu"
1992 if test "$use_gles" = "yes"; then
1993 final_message="$final_message\n OpenGLES:\tYes"
1998 if test "$use_gl" = "yes"; then
1999 final_message="$final_message\n OpenGL:\tYes"
2002 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2003 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2008 if test "$use_alsa" = "yes"; then
2010 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2011 final_message="$final_message\n ALSA:\t\tYes"
2014 final_message="$final_message\n ALSA:\t\tNo"
2017 if test "$use_dbus" = "yes"; then
2018 final_message="$final_message\n DBUS:\t\tYes"
2020 final_message="$final_message\n DBUS:\t\tNo"
2023 if test "x$use_vdpau" != "xno"; then
2024 final_message="$final_message\n VDPAU:\tYes"
2026 final_message="$final_message\n VDPAU:\tNo"
2029 if test "x$use_vaapi" != "xno"; then
2030 final_message="$final_message\n VAAPI:\tYes"
2032 final_message="$final_message\n VAAPI:\tNo"
2035 if test "x$use_crystalhd" != "xno"; then
2036 final_message="$final_message\n CrystalHD:\tYes"
2038 final_message="$final_message\n CrystalHD:\tNo"
2041 if test "x$use_vdadecoder" != "xno"; then
2042 final_message="$final_message\n VDADecoder:\tYes"
2044 final_message="$final_message\n VDADecoder:\tNo"
2047 if test "x$use_vtbdecoder" != "xno"; then
2048 final_message="$final_message\n VTBDecoder:\tYes"
2050 final_message="$final_message\n VTBDecoder:\tNo"
2053 if test "$use_openmax" != "no"; then
2054 final_message="$final_message\n OpenMax:\tYes"
2056 final_message="$final_message\n OpenMax:\tNo"
2059 if test "$use_joystick" = "yes"; then
2060 final_message="$final_message\n Joystick:\tYes"
2061 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2063 final_message="$final_message\n Joystick:\tNo"
2066 if test "$use_xrandr" = "yes"; then
2067 final_message="$final_message\n XRandR:\tYes"
2070 final_message="$final_message\n XRandR:\tNo"
2074 if test "$use_goom" = "yes"; then
2075 final_message="$final_message\n GOOM:\t\tYes"
2077 final_message="$final_message\n GOOM:\t\tNo"
2080 if test "$use_rsxs" = "yes"; then
2081 final_message="$final_message\n RSXS:\t\tYes"
2083 final_message="$final_message\n RSXS:\t\tNo"
2086 if test "$use_fishbmc" = "yes"; then
2087 final_message="$final_message\n FishBMC:\tYes"
2089 final_message="$final_message\n FishBMC:\tNo"
2092 if test "$use_projectm" = "yes"; then
2093 final_message="$final_message\n ProjectM:\tYes"
2095 final_message="$final_message\n ProjectM:\tNo"
2098 if test "$use_skin_touched" = "yes"; then
2099 final_message="$final_message\n Skin Touched:\tYes"
2101 final_message="$final_message\n Skin Touched:\tNo"
2104 if test "$use_x11" = "yes"; then
2105 final_message="$final_message\n X11:\t\tYes"
2107 final_message="$final_message\n X11:\t\tNo"
2110 if test "$use_libbluray" = "yes"; then
2111 final_message="$final_message\n Bluray:\tYes"
2113 final_message="$final_message\n Bluray:\tNo"
2116 USE_TEXTUREPACKER_NATIVE=0
2117 if test "x$use_texturepacker" != "xno"; then
2118 final_message="$final_message\n TexturePacker:Yes"
2120 if test "x$use_texturepacker_native" = "xyes"; then
2121 USE_TEXTUREPACKER_NATIVE=1
2122 if [[ ! -d "$USE_TEXTUREPACKER_NATIVE_ROOT" ]]; then
2123 USE_TEXTUREPACKER_NATIVE_ROOT=
2127 final_message="$final_message\n TexturePacker:No"
2131 if test "$use_mid" = "yes"; then
2132 final_message="$final_message\n MID Support:\tYes"
2133 SDL_DEFINES="$SDL_DEFINES -DMID"
2135 final_message="$final_message\n MID Support:\tNo"
2140 if test "x$use_ccache" != "xno"; then
2141 AC_PATH_PROG(CCACHE,ccache,none)
2142 if test "$ac_cv_path_CCACHE" = "none"; then
2143 if test "x$use_ccache" = "xyes"; then
2144 AC_MSG_ERROR([ccache not found.]);
2146 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2147 final_message="$final_message\n ccache:\tNo"
2150 CC="$ac_cv_path_CCACHE $CC"
2151 CXX="$ac_cv_path_CCACHE $CXX"
2152 AC_MSG_NOTICE(enabling ccache)
2153 final_message="$final_message\n ccache:\tYes"
2156 final_message="$final_message\n ccache:\tNo"
2159 if test "$use_alsa" = "yes"; then
2160 final_message="$final_message\n ALSA Support:\tYes"
2162 final_message="$final_message\n ALSA Support:\tNo"
2165 if test "x$use_pulse" != "xno"; then
2166 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2167 final_message="$final_message\n PulseAudio:\tYes"
2169 XBMC_STANDALONE_SH_PULSE=/dev/null
2170 final_message="$final_message\n PulseAudio:\tNo"
2173 if test "$use_hal" = "yes"; then
2174 final_message="$final_message\n HAL Support:\tYes"
2176 final_message="$final_message\n HAL Support:\tNo"
2180 if test "$use_dvdcss" = "yes"; then
2181 AC_MSG_NOTICE($dvdcss_enabled)
2182 final_message="$final_message\n DVDCSS:\tYes"
2184 SKIP_CONFIG_DVDCSS=0
2185 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2187 AC_MSG_NOTICE($dvdcss_disabled)
2188 final_message="$final_message\n DVDCSS:\tNo"
2190 SKIP_CONFIG_DVDCSS=1
2191 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2193 if test "$host_vendor" = "apple"; then
2194 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2197 # Google Test Framework
2198 if test "$configure_gtest" = "yes"; then
2199 AC_MSG_NOTICE($gtest_enabled)
2200 final_message="$final_message\n Google Test Framework Configured:\tYes"
2204 AC_MSG_NOTICE($gtest_disabled)
2205 final_message="$final_message\n Google Test Framework Configured:\tNo"
2210 if test "$use_avahi" = "yes"; then
2211 final_message="$final_message\n Avahi:\tYes"
2213 final_message="$final_message\n Avahi:\tNo"
2216 if test "$use_nonfree" = "yes"; then
2217 final_message="$final_message\n Non-free:\tYes"
2219 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2222 final_message="$final_message\n Non-free:\tNo"
2225 if test "$use_asap" = "yes"; then
2226 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2227 if test "$HAVE_GDC" = "no"; then
2228 AC_MSG_ERROR($missing_program);
2230 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2231 if test "$HAVE_FPC" = "no"; then
2232 AC_MSG_ERROR($missing_program);
2235 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2236 final_message="$final_message\n ASAP Codec:\tYes"
2239 final_message="$final_message\n ASAP Codec:\tNo"
2242 if test "$use_mysql" = "yes"; then
2243 final_message="$final_message\n MySQL:\tYes"
2246 final_message="$final_message\n MySQL:\tNo"
2249 if test "$use_webserver" = "yes"; then
2250 final_message="$final_message\n Webserver:\tYes"
2253 final_message="$final_message\n Webserver:\tNo"
2257 if test "$use_libssh" != "no"; then
2258 final_message="$final_message\n libssh support:\tYes"
2260 final_message="$final_message\n libssh support:\tNo"
2263 if test "$use_librtmp" != "no"; then
2264 final_message="$final_message\n libRTMP support:\tYes"
2266 final_message="$final_message\n libRTMP support:\tNo"
2269 if test "x$use_samba" != "xno"; then
2270 final_message="$final_message\n libsmbclient support:\tYes"
2272 final_message="$final_message\n libsmbclient support:\tNo"
2275 if test "$use_libnfs" != "no"; then
2276 final_message="$final_message\n libnfs client support:Yes"
2278 final_message="$final_message\n libnfs client support:No"
2281 if test "x$use_libafpclient" != "xno"; then
2282 final_message="$final_message\n libafpclient support:\tYes"
2284 final_message="$final_message\n libafpclient support:\tNo"
2287 if test "$use_airplay" != "no"; then
2288 final_message="$final_message\n AirPlay support:\tYes"
2290 final_message="$final_message\n AirPLay support:\tNo"
2293 if test "x$use_airtunes" != "xno"; then
2294 if test "x$USE_LIBSHAIRPORT" == "x1"; then
2295 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2297 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2300 final_message="$final_message\n AirTunes support:\tNo"
2303 if test "x$use_upnp" != "xno"; then
2304 final_message="$final_message\n UPnP support:\t\tYes"
2306 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2309 final_message="$final_message\n UPnP support:\t\tNo"
2312 if test "$use_optical_drive" = "yes"; then
2313 final_message="$final_message\n Optical drive:\tYes"
2315 final_message="$final_message\n Optical drive:\tNo"
2318 if test "x$use_libudev" != "xno"; then
2319 final_message="$final_message\n libudev support:\tYes"
2321 final_message="$final_message\n libudev support:\tNo"
2324 if test "x$use_libusb" != "xno"; then
2325 final_message="$final_message\n libusb support:\tYes"
2327 final_message="$final_message\n libusb support:\tNo"
2330 if test "x$use_libcec" != "xno"; then
2331 final_message="$final_message\n libcec support:\tYes"
2333 final_message="$final_message\n libcec support:\tNo"
2336 if test "x$use_libmp3lame" != "xno"; then
2337 final_message="$final_message\n libmp3lame support:\tYes"
2339 final_message="$final_message\n libmp3lame support:\tNo"
2342 if test "x$use_libvorbisenc" != "xno"; then
2343 final_message="$final_message\n libvorbisenc support:\tYes"
2345 final_message="$final_message\n libvorbisenc support:\tNo"
2348 if test "x$use_libcap" != "xno"; then
2349 final_message="$final_message\n libcap support:\tYes"
2351 final_message="$final_message\n libcap support:\tNo"
2354 if test "x$add_players" != "xno"; then
2355 final_message="$final_message\n additional players:\tYes"
2357 final_message="$final_message\n additional players:\tNo"
2360 ### External libraries messages
2362 if test "$use_external_ffmpeg" = "yes"; then
2363 final_message="$final_message\n External FFmpeg:\tYes"
2365 final_message="$final_message\n External FFmpeg:\tNo"
2368 if test "$host_vendor" = "apple" ; then
2369 # built internal but referenced as external, we link directly to them.
2370 # this MUST be the last thing before OUTPUT_FILES as they do not
2371 # exist until after we build FFMpeg.
2372 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2373 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2374 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2375 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2376 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2377 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2378 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2382 DISABLE_PVR_ADDON_CONFIG=1
2383 if [[ -f "pvr-addons/Makefile.am" ]]; then
2384 final_message="$final_message\n PVR add-ons:\t\tYes"
2386 DISABLE_PVR_ADDON_CONFIG=0
2388 final_message="$final_message\n PVR add-ons:\t\tNo"
2391 OUTPUT_FILES="Makefile \
2393 addons/skin.confluence/media/Makefile \
2395 xbmc/cdrip/Makefile \
2396 xbmc/cores/Makefile \
2397 xbmc/cores/VideoRenderers/Makefile \
2398 xbmc/cores/dvdplayer/Makefile \
2400 lib/libdvd/Makefile \
2401 xbmc/cores/DllLoader/Makefile \
2402 xbmc/cores/DllLoader/exports/Makefile \
2403 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2404 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2405 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2406 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2407 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2408 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2409 xbmc/cores/AudioEngine/Makefile \
2410 xbmc/cores/paplayer/Makefile \
2411 xbmc/cores/amlplayer/Makefile \
2412 xbmc/cores/omxplayer/Makefile \
2413 lib/timidity/Makefile \
2414 lib/xbadpcm/Makefile \
2416 lib/nosefart/Makefile \
2417 lib/libsidplay2/Makefile \
2418 lib/vgmstream/Makefile \
2419 lib/snesapu/SNES/SNESAPU/Makefile \
2420 lib/stsound/StSoundLibrary/Makefile \
2421 xbmc/cores/playercorefactory/Makefile \
2422 xbmc/music/karaoke/Makefile \
2424 xbmc/guilib/Makefile \
2425 xbmc/interfaces/Makefile \
2426 xbmc/network/Makefile \
2427 xbmc/network/upnp/Makefile \
2428 lib/libRTV/Makefile \
2429 lib/libexif/Makefile \
2430 lib/libXDAAP/Makefile \
2431 lib/cmyth/Makefile \
2432 lib/libhdhomerun/Makefile \
2433 lib/libsquish/Makefile \
2434 lib/cximage-6.0/Makefile \
2435 lib/libUPnP/Makefile \
2436 xbmc/DllPaths_generated.h \
2437 xbmc/DllPaths_generated_android.h \
2438 xbmc/freebsd/Makefile \
2439 xbmc/linux/Makefile \
2440 xbmc/filesystem/Makefile \
2441 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2442 xbmc/visualizations/XBMCProjectM/Makefile \
2443 xbmc/visualizations/Goom/Makefile \
2444 xbmc/visualizations/OpenGLSpectrum/Makefile \
2445 xbmc/visualizations/fishBMC/Makefile \
2446 xbmc/visualizations/WaveForm/Makefile \
2447 lib/addons/library.xbmc.addon/Makefile \
2448 lib/addons/library.xbmc.gui/Makefile \
2449 lib/addons/library.xbmc.pvr/Makefile \
2450 xbmc/visualizations/EGLHelpers/Makefile \
2451 tools/Linux/xbmc.sh \
2452 tools/Linux/xbmc-standalone.sh \
2453 tools/TexturePacker/Makefile \
2454 tools/EventClients/Clients/OSXRemote/Makefile \
2455 xbmc/peripherals/bus/Makefile \
2456 xbmc/peripherals/devices/Makefile \
2457 xbmc/android/activity/Makefile \
2458 xbmc/android/loader/Makefile \
2459 xbmc/android/jni/Makefile \
2460 xbmc/utils/Makefile \
2463 if test "$use_skin_touched" = "yes"; then
2464 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2467 OUTPUT_FILES="$OUTPUT_FILES \
2468 xbmc/interfaces/python/Makefile \
2469 xbmc/interfaces/python/test/Makefile"
2471 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2472 # .dummy.am does nothing.
2473 AC_CONFIG_FILES([.dummy])
2475 AC_CONFIG_FILES([${OUTPUT_FILES}])
2476 OUTPUT_FILES="$OUTPUT_FILES \
2482 AC_SUBST(SDL_DEFINES)
2483 AC_SUBST(BUILD_DVDCSS)
2484 AC_SUBST(DISABLE_GOOM)
2485 AC_SUBST(DISABLE_RSXS)
2486 AC_SUBST(DISABLE_FISHBMC)
2487 AC_SUBST(DISABLE_PROJECTM)
2488 AC_SUBST(USE_SKIN_TOUCHED)
2489 AC_SUBST(USE_EXTERNAL_FFMPEG)
2490 AC_SUBST(PYTHON_VERSION)
2491 AC_SUBST(OUTPUT_FILES)
2492 AC_SUBST(HAVE_XBMC_NONFREE)
2493 AC_SUBST(USE_ASAP_CODEC)
2494 AC_SUBST(LIBCURL_BASENAME)
2495 AC_SUBST(LIBFLAC_BASENAME)
2496 AC_SUBST(LIBVORBISFILE_BASENAME)
2497 AC_SUBST(LIBMODPLUG_BASENAME)
2498 AC_SUBST(LIBMAD_BASENAME)
2499 AC_SUBST(LIBOGG_BASENAME)
2500 AC_SUBST(LIBVORBISENC_BASENAME)
2501 AC_SUBST(LIBVORBIS_BASENAME)
2502 AC_SUBST(LIBASS_BASENAME)
2503 AC_SUBST(LIBMEPG2_BASENAME)
2504 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2505 AC_SUBST(USE_OPENGL)
2506 AC_SUBST(USE_OPENGLES)
2509 AC_SUBST(USE_CRYSTALHD)
2510 AC_SUBST(USE_LIBSMBCLIENT)
2511 AC_SUBST(USE_LIBNFS)
2512 AC_SUBST(USE_LIBAFPCLIENT)
2513 AC_SUBST(USE_AIRPLAY)
2515 AC_SUBST(USE_OPENMAX)
2517 AC_SUBST(USE_XRANDR)
2519 AC_SUBST(USE_TEXTUREPACKER)
2520 AC_SUBST(USE_TEXTUREPACKER_NATIVE)
2521 AC_SUBST(USE_TEXTUREPACKER_NATIVE_ROOT)
2522 AC_SUBST(USE_AIRTUNES)
2523 AC_SUBST(USE_LIBUDEV)
2524 AC_SUBST(USE_LIBUSB)
2525 AC_SUBST(USE_LIBCEC)
2527 AC_SUBST(USE_WEB_SERVER)
2529 AC_SUBST(USE_OMXLIB)
2530 AC_SUBST(USE_ANDROID)
2531 AC_SUBST(GTEST_CONFIGURED)
2532 AC_SUBST(USE_DOXYGEN)
2533 AC_SUBST(USE_PVR_ADDONS)
2535 # pushd and popd are not available in other shells besides bash, so implement
2536 # our own pushd/popd functions
2541 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2543 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2546 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2551 if [[ -n "$XB_DIRSTACK" ]]; then
2552 XB_DIRSTACK="${XB_DIRSTACK#* }"
2553 cd "${XB_DIRSTACK%% *}"
2556 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2560 # Function to run the configure scripts in our submodules
2561 # Consists of three paramaters, the path to the submodule, the configure command
2562 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2563 # running the script, anything else if not.
2564 AC_DEFUN([XB_CONFIG_MODULE],[
2565 AC_CONFIG_COMMANDS_POST([
2566 if [[ $3 != "1" ]]; then
2567 if [[ -d $1 ]]; then
2570 if [[ $? -ne 0 ]]; then
2572 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2577 AC_MSG_ERROR([[Submodule $1 does not exist]])
2580 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2585 XB_CONFIG_MODULE([lib/ffmpeg], [
2586 if test "$host_vendor" = "apple" ; then
2587 ffmpg_config="--target-os=$ffmpeg_target_os"
2588 # handle disables first, we do individual enables later
2589 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2590 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2591 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2592 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2593 ffmpg_config="$ffmpg_config --disable-vda --disable-crystalhd"
2594 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2596 # handle conditional enables/disables
2597 if test "$use_debug" = "no"; then
2598 ffmpg_config="$ffmpg_config --disable-debug"
2600 if test "$use_cpu" != "no"; then
2601 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2603 if test "$use_arch" != "no"; then
2604 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2606 if test "$use_arch" = "arm"; then
2607 ffmpg_config="$ffmpg_config --enable-pic"
2608 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2609 if test "$use_neon" = "yes"; then
2610 ffmpg_config="$ffmpg_config --enable-neon"
2612 ffmpg_config="$ffmpg_config --disable-neon"
2615 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2617 if test "$use_ffmpeg_libvorbis" = "yes"; then
2618 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2620 ffmpg_config="$ffmpg_config --disable-libvorbis"
2623 # handle individual enables
2624 ffmpg_config="$ffmpg_config --enable-gpl"
2625 ffmpg_config="$ffmpg_config --enable-postproc"
2626 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2627 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts"
2628 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac"
2629 ffmpg_config="$ffmpg_config --enable-protocol=http"
2630 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2632 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2635 ffmpg_config="$ffmpg_config --cc=clang" ;;
2637 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2640 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2641 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2643 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2645 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2646 # dependency files in the right place, replace it with something that works
2649 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2652 # ffmpeg will use yasm found at ${prefix}/bin during configure
2653 # but then hardcodes 'yasm' in config.mak, fix it.
2654 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2655 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2656 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2661 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2663 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2665 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2666 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2667 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2668 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2669 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2670 --target-os=$ffmpeg_target_os \
2672 --enable-muxer=spdif \
2673 --enable-muxer=adts \
2674 --disable-encoders \
2675 --enable-encoder=ac3 \
2676 --enable-encoder=aac \
2677 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2678 --disable-decoder=mpeg_xvmc \
2682 --disable-ffserver \
2684 --disable-crystalhd \
2689 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2690 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2691 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2692 --enable-protocol=http \
2694 --enable-runtime-cpudetect \
2695 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2696 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2697 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2698 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2699 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2701 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2702 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2704 ], [$USE_EXTERNAL_FFMPEG])
2706 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2711 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2712 --host=$host_alias \
2713 --build=$build_alias \
2714 --target=$target_alias \
2718 ], [$SKIP_CONFIG_DVDCSS])
2720 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2722 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src" \
2723 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2724 --host=$host_alias \
2725 --build=$build_alias \
2726 --target=$target_alias \
2732 $MAKE dvdread-config &&
2733 mkdir -p `pwd`/../includes/dvdread
2734 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2735 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2738 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2740 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
2741 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2742 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2743 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2744 --host=$host_alias \
2745 --build=$build_alias \
2746 --target=$target_alias \
2752 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2754 rm -f CMakeCache.txt && \
2755 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2756 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2757 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2758 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2759 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2760 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2761 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2762 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2763 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2764 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2765 if test "$host_vendor" = "apple" ; then
2766 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2767 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2768 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2769 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2772 ], [$DISABLE_PROJECTM])
2774 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2777 CXXFLAGS="$CXXFLAGS" \
2778 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2779 --host=$host_alias \
2780 --build=$build_alias \
2781 --target=$target_alias \
2787 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2788 if test "$host_vendor" = "apple"; then
2789 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";
2791 TEMPCFLAGS="$CFLAGS";
2796 CFLAGS="$TEMPCFLAGS" \
2797 CXXFLAGS="$CXXFLAGS" \
2798 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2799 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2800 --host=$host_alias \
2801 --build=$build_alias \
2802 --target=$target_alias \
2803 --without-xscreensaver \
2806 --disable-fieldlines \
2810 --disable-hyperspace \
2813 if echo "$ARCH" | grep -q freebsd ; then
2814 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2818 XB_CONFIG_MODULE([lib/cpluff], [
2819 ./configure --disable-nls \
2820 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2821 --host=$host_alias \
2822 --build=$build_alias \
2823 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2824 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2827 XB_CONFIG_MODULE([lib/gtest], [
2832 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2833 --host=$host_alias \
2834 --build=$build_alias \
2835 --target=$target_alias \
2839 ], [$SKIP_CONFIG_GTEST])
2841 XB_CONFIG_MODULE([pvr-addons], [
2842 if test "$USE_EXTERNAL_FFMPEG" = 1; then
2843 PVR_EXT_FFMPEG="--enable-external-ffmpeg"
2846 --prefix="${prefix}" \
2847 --host=$host_alias \
2848 --build=$build_alias \
2849 --target=$target_alias \
2854 CXXFLAGS="$CXXFLAGS"
2855 ], [$DISABLE_PVR_ADDON_CONFIG])
2859 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2860 echo -e "$final_message\n"