2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [12.9.7], [http://trac.xbmc.org])
6 AC_CONFIG_HEADERS([xbmc/config.h])
8 m4_include([m4/ax_python_devel.m4])
9 m4_include([m4/xbmc_arch.m4])
11 AC_CONFIG_AUX_DIR([build-aux])
12 AM_INIT_AUTOMAKE([foreign])
16 echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
19 # check for enabling additional players
20 AC_DEFUN([XB_ADD_PLAYER],
22 AC_MSG_CHECKING([for $2])
26 AC_DEFINE([HAS_$1], 1, [using $2])
27 AC_MSG_RESULT([enabling $2])
30 AC_MSG_RESULT([$2 is not enabled])
34 # check for enabling additional codecs
35 AC_DEFUN([XB_ADD_CODEC],
37 AC_MSG_CHECKING([for $2])
41 AC_DEFINE([HAS_$1], 1, [using $2])
42 AC_MSG_RESULT([enabling $2])
45 AC_MSG_RESULT([$2 is not enabled])
49 # check for library basenames
50 AC_DEFUN([XB_FIND_SONAME],
52 if echo "$host" | grep -q freebsd ; then
53 AC_MSG_CHECKING([for lib$2 soname])
54 $1_SONAME=[`ldconfig -r | sed -n "s;.* \(/.*lib$2\.so.*\)$;\1;p" | head -n 1`]
55 if test x$$1_SONAME != x ; then
56 $1_SONAME=[`basename $$1_SONAME`]
58 elif [[ "$host_vendor" != "apple" ]]; then
59 AC_MSG_CHECKING([for lib$2 soname])
60 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
61 if [[ -z $$1_FILENAME ]]; then
62 #try gold linker syntax
63 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "lib$2")
65 if [[ ! -z $$1_FILENAME ]]; then
66 $1_SONAME=$($OBJDUMP -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}')
69 AC_MSG_CHECKING([for lib$2 dylib])
70 gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
71 env_lib_path=[`echo $LDFLAGS | sed 's/-L[ ]*//g'`]
72 if test "$cross_compiling" = yes; then
75 host_lib_path="/usr/lib /usr/local/lib"
77 for path in $gcc_lib_path $env_lib_path $host_lib_path; do
78 lib=[`ls -- $path/lib$2.dylib 2>/dev/null`]
79 if test x$lib != x; then
80 # we want the path/name that is embedded in the dylib
81 $1_SONAME=[`otool -L $lib | grep -v lib$2.dylib | grep lib$2 | awk '{V=1; print $V}'`]
82 $1_SONAME=[`basename $$1_SONAME`]
86 if [[ -z "$$1_SONAME" ]]; then
88 if test -z "$3" || test "x${$3}" = "xyes"; then
89 AC_MSG_ERROR([Unable to determine soname of lib$2 library])
91 AC_MSG_WARN([Unable to determine soname of lib$2 library])
93 AC_MSG_WARN([lib$2 support disabled])
96 AC_MSG_RESULT([$$1_SONAME])
101 # Function to push and pop libs and includes for a command
102 AC_DEFUN([XB_PUSH_FLAGS], [
104 SAVE_INCLUDES="$INCLUDES"
109 INCLUDES="$SAVE_INCLUDES"
112 # General message strings
113 configure_debug="ERROR: this is a configure debug statement"
114 missing_library="Could not find a required library. Please see the README for your platform."
115 missing_headers="Could not find some required headers. Please see the README for your platform."
116 missing_program="Could not find a required program. Please see the README for your platform."
117 xrandr_not_found="== Could not find libXRandR. SDL will be used for resolution support. =="
118 xrandr_disabled="== XRandR support disabled. SDL will be used for resolution support. =="
119 goom_enabled="== GOOM enabled. =="
120 goom_disabled="== GOOM disabled. =="
121 alsa_disabled="== ALSA support disabled. =="
122 rsxs_enabled="== RSXS enabled. =="
123 rsxs_disabled="== RSXS disabled. =="
124 fishbmc_enabled="== FishBMC enabled. =="
125 fishbmc_disabled="== FishBMC disabled. =="
126 projectm_enabled="== ProjectM enabled. =="
127 projectm_disabled="== ProjectM disabled. =="
128 x11_enabled="== X11 enabled. =="
129 x11_disabled="== X11 disabled. =="
130 pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
131 pulse_disabled="== PulseAudio support manually disabled. =="
132 dvdcss_enabled="== DVDCSS support enabled. =="
133 dvdcss_disabled="== DVDCSS support disabled. =="
134 hal_not_found="== Could not find hal. HAL support disabled. =="
135 halstorage_not_found="== Could not find hal-storage. HAL support disabled. =="
136 hal_disabled="== HAL support disabled. =="
137 avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
138 avahi_disabled="== Avahi support disabled. =="
139 mdnsembedded_not_found="== Could not find mDNSEmbedded. Might prevent zeroconf support. =="
140 mdnsembedded_disabled="== mDNSEmbedded support disabled. =="
141 vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
142 vdpau_disabled="== VDPAU support manually disabled. =="
143 vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
144 vaapi_disabled="== VAAPI support manually disabled. =="
145 crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
146 crystalhd_disabled="== CrystalHD support manually disabled. =="
147 vtbdecoder_enabled="== VTBDecoder support enabled. =="
148 vtbdecoder_disabled="== VTBDecoder support manually disabled. =="
149 openmax_disabled="== OpenMax support manually disabled. =="
150 openmax_not_found="== Could not find libnvomx. OpenMax support disabled. =="
151 ssh_not_found="== Could not find libssh. =="
152 ssh_disabled="== SSH SFTP disabled. =="
153 librtmp_not_found="== Could not find libRTMP. RTMP support disabled. =="
154 librtmp_disabled="== RTMP support disabled. =="
155 libnfs_not_found="== Could not find libnfs. NFS client support disabled. =="
156 libnfs_disabled="== NFS support disabled. =="
157 libafpclient_not_found="== Could not find libafpclient. AFP client support disabled. =="
158 libafpclient_disabled="== AFP support disabled. =="
159 libshairport_not_found="== Could not find libshairport. =="
160 libshairplay_not_found="== Could not find libshairplay. =="
161 samba_disabled="== SAMBA support disabled. =="
162 libplist_not_found="== Could not find libplist. AirPlay support disabled. =="
163 libplist_disabled="== AirPlay support disabled. =="
164 alsa_not_found="== Could not find ALSA. ALSA support disabled. =="
165 dbus_not_found="== Could not find DBUS. DBUS support disabled. =="
166 libcap_disabled="== Capabilities detection support disabled. =="
167 libcap_not_found="== Could not find libcap. Capabilities detection support disabled. =="
168 gtest_enabled="== Google Test Framework will be configured. =="
169 gtest_disabled="== Google Test Framework will not be configured. =="
171 libudev_not_found="== Could not find libudev. Will use polling to check for device changes. =="
172 libudev_disabled="== udev support disabled. Will use polling to check for device changes. =="
173 libusb_not_found="== Could not find libusb. Plug and play USB device support will not be available. =="
174 libusb_disabled="== libusb disabled. Plug and play USB device support will not be available. =="
175 libusb_disabled_udev_found="== libusb disabled. =="
176 libcec_enabled="== libcec enabled. =="
177 libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
179 # External library message strings
180 external_libraries_enabled="== Use of all supported external libraries enabled. =="
181 external_libraries_disabled="== Use of all supported external libraries disabled. =="
182 external_ffmpeg_enabled="== Use of external ffmpeg enabled. =="
183 external_ffmpeg_disabled="== Use of external ffmpeg disabled. =="
184 ffmpeg_vdpau_not_supported="== External ffmpeg doesn't support VDPAU. VDPAU support disabled. =="
185 dashes="------------------------"
186 final_message="\n XBMC Configuration:"
187 final_message="\n$dashes$final_message\n$dashes"
189 AC_ARG_ENABLE([shared-lib],
190 [AS_HELP_STRING([--enable-shared-lib],
191 [build libxbmc. helpful for tests (default is no)])],
192 [build_shared_lib=$enableval],
193 [build_shared_lib=no])
195 AC_ARG_ENABLE([debug],
196 [AS_HELP_STRING([--enable-debug],
197 [enable debugging information (default is yes)])],
198 [use_debug=$enableval],
202 [AS_HELP_STRING([--with-arch],
203 [build with given arch passing to internal ffmpeg (default is no, needed for crosscompiling)])],
207 AC_ARG_WITH([platform],
208 [AS_HELP_STRING([--with-platform],
209 [use a pre-configured config for common arm boards])],
210 [use_platform=$withval],
214 [AS_HELP_STRING([--with-cpu],
215 [build with given cpu passing to ffmpeg (default is no)])],
219 AC_ARG_ENABLE([neon],
220 [AS_HELP_STRING([--enable-neon],
221 [enable neon passing to ffmpeg (default is no)])],
222 [use_neon=$enableval],
225 AC_ARG_ENABLE([optimizations],
226 [AS_HELP_STRING([--enable-optimizations],
227 [enable optimization (default is yes)])],
228 [use_optimizations=$enableval],
229 [use_optimizations=yes])
232 [AS_HELP_STRING([--enable-gl],
233 [enable OpenGL rendering (default is yes)])],
237 AC_ARG_ENABLE([gles],
238 [AS_HELP_STRING([--enable-gles],
239 [enable OpenGLES rendering (default is no)])],
240 [use_gles=$enableval],
244 [AS_HELP_STRING([--enable-sdl],
245 [enable SDL (default is auto)])],
246 [use_sdl=$enableval],
249 AC_ARG_ENABLE([vdpau],
250 [AS_HELP_STRING([--enable-vdpau],
251 [enable VDPAU decoding (default is auto)])],
252 [use_vdpau=$enableval],
255 AC_ARG_ENABLE([vaapi],
256 [AS_HELP_STRING([--enable-vaapi],
257 [enable VAAPI decoding (default is auto)])],
258 [use_vaapi=$enableval],
261 AC_ARG_ENABLE([crystalhd],
262 [AS_HELP_STRING([--enable-crystalhd],
263 [enable CrystalHD decoding (default is auto)])],
264 [use_crystalhd=$enableval],
265 [use_crystalhd=auto])
267 AC_ARG_ENABLE([vtbdecoder],
268 [AS_HELP_STRING([--enable-vtbdecoder],
269 [enable VTBDecoder decoding (default is auto)])],
270 [use_vtbdecoder=$enableval],
271 [use_vtbdecoder=auto])
273 AC_ARG_ENABLE([openmax],
274 [AS_HELP_STRING([--enable-openmax],
275 [enable OpenMax decoding (default is auto, requires OpenGLES)])],
276 [use_openmax=$enableval],
279 AC_ARG_ENABLE([tegra],
280 [AS_HELP_STRING([--enable-tegra],
281 [enable Tegra2 arm (default is no)])],
282 [use_tegra=$enableval],
285 AC_ARG_ENABLE([profiling],
286 [AS_HELP_STRING([--enable-profiling],
287 [enable gprof profiling (default is no)])],
288 [use_profiling=$enableval],
291 AC_ARG_ENABLE([joystick],
292 [AS_HELP_STRING([--enable-joystick],
293 [enable SDL joystick support (default is yes)])],
294 [use_joystick=$enableval],
297 AC_ARG_ENABLE([xrandr],
298 [AS_HELP_STRING([--enable-xrandr],
299 [enable XRandR support (default is yes)])],
300 [use_xrandr=$enableval],
303 AC_ARG_ENABLE([goom],
304 [AS_HELP_STRING([--enable-goom],
305 [enable GOOM visualisation (default is no)])],
306 [use_goom=$enableval],
309 AC_ARG_ENABLE([rsxs],
310 [AS_HELP_STRING([--enable-rsxs],
311 [enable really slick X screensavers (default is yes)])],
312 [use_rsxs=$enableval],
315 AC_ARG_ENABLE([fishbmc],
316 [AS_HELP_STRING([--enable-fishbmc],
317 [enable FishBMC visualisation (default is yes)])],
318 [use_fishbmc=$enableval],
321 AC_ARG_ENABLE([projectm],
322 [AS_HELP_STRING([--enable-projectm],
323 [enable ProjectM visualisation (default is yes)])],
324 [use_projectm=$enableval],
328 [AS_HELP_STRING([--enable-x11],
329 [enable x11 (default is yes) 'Linux Only'])],
330 [use_x11=$enableval],
333 AC_ARG_ENABLE([ccache],
334 [AS_HELP_STRING([--enable-ccache],
335 [enable building with ccache feature (default is auto)])],
336 [use_ccache=$enableval],
339 AC_ARG_ENABLE([alsa],
340 [AS_HELP_STRING([--disable-alsa],
341 [disable ALSA support (only for linux/freebsd)])],
342 [use_alsa=$enableval],
345 AC_ARG_ENABLE([pulse],
346 [AS_HELP_STRING([--enable-pulse],
347 [enable PulseAudio support (default is no)])],
348 [use_pulse=$enableval],
352 [AS_HELP_STRING([--disable-ssh],
353 [disable SSH SFTP support (default is enabled)])],
354 [use_ssh=$enableval],
357 AC_ARG_ENABLE([rtmp],
358 [AS_HELP_STRING([--enable-rtmp],
359 [enable RTMP support via librtmp (default is auto)])],
360 [use_librtmp=$enableval],
363 AC_ARG_ENABLE([samba],
364 [AS_HELP_STRING([--disable-samba],
365 [disable SAMBA support (default is enabled)])],
366 [use_samba=$enableval],
370 [AS_HELP_STRING([--enable-nfs],
371 [enable NFS support via libnfs (default is auto)])],
372 [use_libnfs=$enableval],
375 AC_ARG_ENABLE([afpclient],
376 [AS_HELP_STRING([--enable-afpclient],
377 [enable AFP support via libafpclient (default is auto)])],
378 [use_libafpclient=$enableval],
379 [use_libafpclient=auto])
381 AC_ARG_ENABLE([airplay],
382 [AS_HELP_STRING([--enable-airplay],
383 [enable AirPlay support(default is auto)])],
384 [use_airplay=$enableval],
387 AC_ARG_ENABLE([airtunes],
388 [AS_HELP_STRING([--enable-airtunes],
389 [enable AirTunes support(default is auto)])],
390 [use_airtunes=$enableval],
393 AC_ARG_ENABLE([upnp],
394 [AS_HELP_STRING([--disable-upnp],
395 [disable UPnP support (default is enabled)])],
396 [use_upnp=$enableval],
399 AC_ARG_ENABLE([ffmpeg_libvorbis],
400 [AS_HELP_STRING([--enable-ffmpeg-libvorbis],
401 [enable FFmpeg vorbis encoding (default is no)])],
402 [use_ffmpeg_libvorbis=$enableval],
403 [use_ffmpeg_libvorbis=no])
405 AC_ARG_ENABLE([dvdcss],
406 [AS_HELP_STRING([--enable-dvdcss],
407 [enable DVDCSS support (default is yes)])],
408 [use_dvdcss=$enableval],
412 [AS_HELP_STRING([--enable-mid],
413 [enable MID support (default is no)])],
414 [use_mid=$enableval],
418 [AS_HELP_STRING([--disable-hal],
419 [disable HAL support (default is enabled if hal and hal-storage is found)])],
420 [use_hal=$enableval],
423 AC_ARG_ENABLE([avahi],
424 [AS_HELP_STRING([--disable-avahi],
425 [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
426 [use_avahi=$enableval],
429 AC_ARG_ENABLE([mdnsembedded],
430 [AS_HELP_STRING([--disable-mdnsembedded],
431 [disable mDNSEmbedded support (default is auto)])],
432 [use_mdnsembedded=$enableval],
433 [use_mdnsembedded=auto])
435 AC_ARG_ENABLE([non-free],
436 [AS_HELP_STRING([--disable-non-free],
437 [disable componentents with non-compliant licenses])],
438 [use_nonfree=$enableval],
441 AC_ARG_ENABLE([asap-codec],
442 [AS_HELP_STRING([--enable-asap-codec],
443 [enable ASAP ADPCM support])],
444 [use_asap=$enableval],
447 AC_ARG_ENABLE([mysql],
448 [AS_HELP_STRING([--disable-mysql],
450 [use_mysql=$enableval],
453 AC_ARG_ENABLE([webserver],
454 [AS_HELP_STRING([--disable-webserver],
455 [disable webserver])],
456 [use_webserver=$enableval],
459 AC_ARG_ENABLE([optical-drive],
460 [AS_HELP_STRING([--disable-optical-drive],
461 [disable optical drive])],
462 [use_optical_drive=$enableval],
463 [use_optical_drive=yes])
465 AC_ARG_ENABLE([libbluray],
466 [AS_HELP_STRING([--enable-libbluray],
467 [enable libbluray support])],
468 [use_libbluray=$enableval],
469 [use_libbluray=auto])
471 AC_ARG_ENABLE([texturepacker],
472 [AS_HELP_STRING([--enable-texturepacker],
473 [enable texturepacker support (default is yes)])],
474 [use_texturepacker=$enableval],
475 [use_texturepacker=auto])
477 AC_ARG_WITH([lirc-device],
478 [AS_HELP_STRING([--with-lirc-device=file],
479 [specify the default LIRC device (default is /dev/lircd)])],
480 [lirc_device=$withval],
481 [lirc_device=/dev/lircd])
482 AC_DEFINE_UNQUOTED([LIRC_DEVICE], ["$lirc_device"], [Default LIRC device])
484 AC_ARG_ENABLE([udev],
485 [AS_HELP_STRING([--enable-udev],
486 [enable udev support (default is auto)])],
487 [use_libudev=$enableval],
490 AC_ARG_ENABLE([libusb],
491 [AS_HELP_STRING([--enable-libusb],
492 [enable libusb support (default is auto)])],
493 [use_libusb=$enableval],
496 AC_ARG_ENABLE([libcec],
497 [AS_HELP_STRING([--enable-libcec],
498 [enable libcec support (default is auto)])],
499 [use_libcec=$enableval],
502 AC_ARG_ENABLE([libmp3lame],
503 [AS_HELP_STRING([--enable-libmp3lame],
504 [enable lame mp3 encoder support (default is auto)])],
505 [use_libmp3lame=$enableval],
506 [use_libmp3lame=auto])
508 AC_ARG_ENABLE([libvorbisenc],
509 [AS_HELP_STRING([--enable-libvorbisenc],
510 [enable vorbis encoder support (default is auto)])],
511 [use_libvorbisenc=$enableval],
512 [use_libvorbisenc=auto])
514 AC_ARG_ENABLE([libcap],
515 [AS_HELP_STRING([--enable-libcap],
516 [enable libcap support (default is auto)])],
517 [use_libcap=$enableval],
520 AC_ARG_ENABLE([player],
521 [AS_HELP_STRING([--enable-player],
522 [enable additional players from a list of comma separated names, (default is none, choices are amlplayer, omxplayer)])],
523 [add_players=$enableval],
526 AC_ARG_ENABLE([gtest],
527 [AS_HELP_STRING([--enable-gtest],
528 [configure Google Test Framework (default is no)])],
529 [configure_gtest=$enableval],
530 [configure_gtest=no])
532 AC_ARG_ENABLE([codec],
533 [AS_HELP_STRING([--enable-codec],
534 [enable additional codecs from a list of comma separated names, (default is none, choices are amcodec, libstagefright)])],
535 [add_codecs=$enableval],
538 ### External libraries options
539 AC_ARG_ENABLE([external-libraries],
540 [AS_HELP_STRING([--enable-external-libraries],
541 [enable use of all supported external libraries (default is no) 'Linux only'])],
542 [use_external_libraries=$enableval],
543 [use_external_libraries=no])
545 AC_ARG_ENABLE([external-ffmpeg],
546 [AS_HELP_STRING([--enable-external-ffmpeg],
547 [enable use of external ffmpeg libraries (default is no) 'Linux only'])],
548 [use_external_ffmpeg=$enableval],
549 [use_external_ffmpeg=$use_external_libraries])
551 AC_ARG_ENABLE([libav-compat],
552 [AS_HELP_STRING([--enable-libav-compat],
553 [build a wrapper around libav to provide the functions needed by XBMC. This is
554 *not* supported by XBMC developers and is provided only for convenience. (default is no) 'Linux only'])],
555 [use_libav_hacks=$enableval],
556 [use_libav_hacks=no])
558 ### End of external library options
560 if test "x$host_vendor" != "xapple"; then
561 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
562 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
565 # Checks for programs.
566 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
568 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
569 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
572 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
577 OBJDUMP="${OBJDUMP:-objdump}"
579 # ffmpeg needs the output of uname -s (e.x. linux, darwin) for the target_os
580 # there is no autoconf variable which will give
581 # the correct output format when doing cross compilation
582 # so we have to use our own var here
583 # defaults to the build side target_os
584 # and should be overridden for cross below (see android)
585 ffmpeg_target_os=$(tolower $(uname -s))
587 # host detection and setup
589 i*86*-android-linux-gnu*)
590 target_platform=target_android
594 ffmpeg_target_os=linux
607 ARCH="x86_64-freebsd"
620 use_texturepacker_native=yes
624 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
625 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
626 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
627 PYTHON_NOVERSIONCHECK="no-check"
632 use_texturepacker_native=yes
635 powerpc-apple-darwin*)
642 powerpc-*-linux-gnu*)
645 powerpc64-*-linux-gnu*)
646 ARCH="powerpc64-linux"
652 ffmpeg_target_os=linux
659 arm*-*linux-android*)
660 target_platform=target_android
664 ffmpeg_target_os=linux
674 AC_MSG_ERROR(unsupported host ($host))
678 check_sdl_arch=[`file $USE_TEXTUREPACKER_NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
679 if test "x$check_sdl_arch" = "xi386" ; then
680 DARWIN_NATIVE_ARCH=-m32
681 elif test "x$check_sdl_arch" = "xx86_64" ; then
682 DARWIN_NATIVE_ARCH=-m64
684 AC_SUBST([DARWIN_NATIVE_ARCH])
686 if test "$target_platform" = "target_android" ; then
688 use_texturepacker_native=yes
689 webserver_checkdepends=yes
690 CFLAGS="$CFLAGS -Wno-psabi"
691 CXXFLAGS="$CXXFLAGS -Wno-psabi"
692 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
695 case $use_platform in
697 target_platform=target_raspberry_pi
699 use_texturepacker=yes
700 use_texturepacker_native=yes
703 use_hardcoded_tables="yes"
706 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
707 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
710 ffmpeg_target_os=linux
714 XBMC_SETUP_ARCH_DEFINES()
717 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
718 if test "$GIT_REV" = ""; then
719 if test -f VERSION ; then
720 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
721 elif test "$HAVE_GIT" = "yes"; then
722 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
727 final_message="$final_message\n git Rev.:\t${GIT_REV}"
729 if test "$host_vendor" = "apple"; then
730 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
732 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
735 if test "$build_shared_lib" = "yes"; then
736 final_message="$final_message\n Shared lib\tYes"
737 AC_SUBST(USE_LIBXBMC,1)
741 # platform debug flags
742 if test "$use_debug" = "yes"; then
743 final_message="$final_message\n Debugging:\tYes"
744 if test "$use_profiling" = "yes"; then
745 final_message="$final_message\n Profiling:\tYes"
746 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
748 final_message="$final_message\n Profiling:\tNo"
749 DEBUG_FLAGS="-g -D_DEBUG -Wall"
752 final_message="$final_message\n Debugging:\tNo"
753 if test "$use_profiling" = "yes"; then
754 final_message="$final_message\n Profiling:\tYes"
755 DEBUG_FLAGS="-pg -DNDEBUG=1"
757 final_message="$final_message\n Profiling:\tNo"
758 DEBUG_FLAGS="-DNDEBUG=1"
761 CFLAGS="$CFLAGS $DEBUG_FLAGS"
762 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
765 if test "$use_optimizations" = "yes"; then
766 final_message="$final_message\n Optimization:\tYes"
767 if test "$target_platform" = "target_raspberry_pi"; then
771 CXXFLAGS="-O2 $CXXFLAGS"
775 final_message="$final_message\n Optimization:\tNo"
779 # platform specific flags
780 if echo "$ARCH" | grep -q "freebsd" ; then
781 LOCALBASE="${LOCALBASE:-/usr/local}"
782 CFLAGS="$CFLAGS -I$LOCALBASE/include"
783 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
784 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
785 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
786 FFMPEG_EXTRACFLAGS="-I$LOCALBASE/include"
788 if test "$host_vendor" = "apple" ; then
789 # standard xbmc paths
790 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
791 if test "$use_arch" != "arm"; then
792 LIBS="$LIBS -framework ApplicationServices"
793 LIBS="$LIBS -framework AudioUnit"
794 LIBS="$LIBS -framework AudioToolbox"
795 LIBS="$LIBS -framework Cocoa"
796 LIBS="$LIBS -framework CoreAudio"
797 LIBS="$LIBS -framework CoreVideo"
798 LIBS="$LIBS -framework CoreServices"
799 LIBS="$LIBS -framework CoreFoundation"
800 LIBS="$LIBS -framework DiskArbitration"
801 LIBS="$LIBS -framework IOKit"
802 LIBS="$LIBS -framework IOSurface"
803 LIBS="$LIBS -framework QuartzCore"
804 LIBS="$LIBS -framework SystemConfiguration"
806 USE_EXTERNAL_FFMPEG=1
807 elif test "$target_platform" = "target_raspberry_pi"; then
810 elif test "$use_arch" = "arm"; then
811 CFLAGS="$CFLAGS -mno-apcs-stack-check"
812 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
813 FFMPEG_EXTRACFLAGS=""
814 if test "$use_tegra" = "yes"; then
815 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
816 SAVE_CFLAGS="$CFLAGS"
817 CFLAGS="-mfpu=vfpv3-d16"
819 [AC_LANG_SOURCE([int foo;])],
820 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
821 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
822 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
824 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
825 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
828 if test "$use_neon" = "yes"; then
829 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
830 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
831 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
836 # Checks for library functions.
839 AC_FUNC_CLOSEDIR_VOID
840 AC_FUNC_ERROR_AT_LINE
842 AC_PROG_GCC_TRADITIONAL
844 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
848 # Boxee is apparently having compile problems
849 # if HAVE_REALLOC is defined. Sort this later.
851 AC_FUNC_SELECT_ARGTYPES
852 AC_FUNC_SETVBUF_REVERSED
860 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])
862 # Check for various sizes
863 AC_CHECK_SIZEOF([int])
864 AC_CHECK_SIZEOF([size_t])
866 # Check for intrinsics
867 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
868 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
869 [have_builtin_sync_add_and_fetch=yes],
870 [have_builtin_sync_add_and_fetch=no])
871 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
872 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
873 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
874 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
877 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
878 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
879 [have_builtin_sync_sub_and_fetch=yes],
880 [have_builtin_sync_sub_and_fetch=no])
881 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
882 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
883 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
884 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
887 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
888 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
889 [have_builtin_sync_val_compare_and_swap=yes],
890 [have_builtin_sync_val_compare_and_swap=no])
891 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
892 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
893 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
894 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
897 # Add top source directory for all builds so we can use config.h
898 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
900 # Check inotify availability
901 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
903 # Checks for boost headers using CXX instead of CC
905 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
909 if test -z "$PYTHON_NOVERSIONCHECK"; then
910 AX_PYTHON_DEVEL([>= 2.4])
911 PYTHON_VERSION=$ac_python_version
914 if test -z "$PYTHON_VERSION"; then
915 AC_MSG_ERROR([Can't find a Python version.])
917 LIBS="$LIBS $PYTHON_LDFLAGS"
918 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
921 # Checks for platforms libraries.
922 if test "$use_gles" = "yes"; then
924 # GLES overwrites GL if both set to yes.
925 if test "$host_vendor" = "apple" ; then
926 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
927 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
928 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
930 if test "$target_platform" = "target_raspberry_pi"; then
931 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
932 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
933 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
934 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
936 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
937 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
941 if test "$use_gl" = "yes"; then
942 if test "$host_vendor" = "apple" ; then
943 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
944 LIBS="$LIBS -framework OpenGL"
945 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
946 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
947 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
948 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
949 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
951 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
952 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
953 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
956 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
957 AC_CHECK_LIB([SDL_gfx],[main])
961 # platform common libraries
962 if test "$use_mysql" = "yes"; then
963 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
964 if test "x$MYSQL_CONFIG" != "xno"; then
965 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
966 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
967 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
968 LIBS="$LIBS $MYSQL_LIBS"
971 AC_MSG_ERROR($missing_program)
974 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
975 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
976 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
977 AC_INCLUDES_DEFAULT()
978 [#include <mpeg2dec/mpeg2.h>])
979 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
980 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
981 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
982 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
983 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
984 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
985 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
986 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
988 # we need to check for the header because if it exists we set the openssl
989 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
990 # in MT manner correctly.
991 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
992 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
993 if test "$gcrypt_headers_available" = "yes"; then
994 # if we have the headers then we must have the lib
995 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
996 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
997 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1000 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1001 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1002 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1003 if echo "$ARCH" | grep -q freebsd; then
1004 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1005 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1006 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1007 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1009 if test "$target_platform" != "target_android" ; then
1010 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1011 AC_CHECK_LIB([pthread], [pthread_setname_np],
1012 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1013 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1016 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1017 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1018 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1019 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1020 if test "$use_mysql" = "yes"; then
1021 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1023 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1024 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1025 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1026 if test "$target_platform" = "target_android" ; then
1027 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1028 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1029 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1031 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1032 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1033 AC_MSG_ERROR($missing_library))
1034 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1035 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1036 AC_MSG_ERROR($missing_library))
1037 PKG_CHECK_MODULES([PNG], [libpng],
1038 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1039 AC_MSG_ERROR($missing_library))
1040 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1041 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1042 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1043 AC_MSG_ERROR($missing_library))
1044 PKG_CHECK_MODULES([PCRE], [libpcre],
1045 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1046 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1047 AC_MSG_ERROR($missing_library))
1048 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1049 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1050 AC_MSG_ERROR($missing_library))
1051 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1052 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1053 AC_MSG_ERROR($missing_library))
1054 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1055 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1056 AC_MSG_ERROR($missing_library))
1058 if test "$use_optical_drive" = "yes"; then
1059 PKG_CHECK_MODULES([CDIO], [libcdio],
1060 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1061 AC_MSG_ERROR($missing_library))
1064 if test "$target_platform" = "target_android" ; then
1065 PKG_CHECK_MODULES([ZIP], [libzip],
1066 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1067 AC_MSG_ERROR($missing_library))
1070 # check for libbluray
1071 AS_CASE([x$use_libbluray],
1073 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1076 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1079 AS_CASE([x$use_libbluray],
1081 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1082 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1083 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1084 AC_SUBST([HAVE_LIBBLURAY], 1)
1085 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1086 AC_CHECK_DECL([BD_EVENT_IDLE],
1087 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1088 [[#include <libbluray/bluray.h>]]))
1090 AC_SUBST([HAVE_LIBBLURAY], 0)
1094 #Check to see if libs are needed for functions that are often built-in to libc
1095 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1096 AC_SEARCH_LIBS([dlopen],dl)
1097 AC_SEARCH_LIBS([clock_gettime],rt)
1098 AC_SEARCH_LIBS([dn_expand], resolv)
1099 AC_SEARCH_LIBS([_dn_expand], resolv)
1100 AC_SEARCH_LIBS([__dn_expand],resolv)
1102 # platform dependent libraries
1103 if test "$host_vendor" = "apple" ; then
1104 if test "$use_arch" != "arm"; then
1105 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1106 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1109 if test "$target_platform" != "target_android" ; then
1110 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1112 if test "x$use_alsa" != "xno"; then
1113 PKG_CHECK_MODULES([ALSA], [alsa],
1114 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1115 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1117 PKG_CHECK_MODULES([DBUS], [dbus-1],
1118 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1119 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1120 AC_MSG_NOTICE($missing_library); use_dbus=no)
1121 if test "x$use_sdl" != "xno"; then
1122 PKG_CHECK_MODULES([SDL], [sdl],
1123 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1124 AC_MSG_ERROR($missing_library))
1125 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1126 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1130 XB_FIND_SONAME([MAD], [mad])
1131 XB_FIND_SONAME([OGG], [ogg])
1132 XB_FIND_SONAME([CURL], [curl])
1133 XB_FIND_SONAME([FLAC], [FLAC])
1134 XB_FIND_SONAME([VORBIS], [vorbis])
1135 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1136 XB_FIND_SONAME([MODPLUG], [modplug])
1137 XB_FIND_SONAME([ASS], [ass])
1138 XB_FIND_SONAME([MPEG2], [mpeg2])
1141 if test "x$use_libmp3lame" != "xno"; then
1142 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1143 if test "x$use_libmp3lame" != "xno"; then
1144 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1147 AS_CASE([x$use_libmp3lame],
1149 AC_SUBST([HAVE_LIBMP3LAME], 0)
1152 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1153 AC_SUBST([HAVE_LIBMP3LAME], 1)
1156 if test "x$use_libvorbisenc" != "xno"; then
1157 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1158 if test "x$use_libvorbisenc" != "xno"; then
1159 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1162 AS_CASE([x$use_libvorbisenc],
1164 AC_SUBST([HAVE_LIBVORBISENC], 0)
1166 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1167 AC_SUBST([HAVE_LIBVORBISENC], 1)
1172 if test "$use_webserver" = "yes"; then
1173 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1177 if test "$use_optical_drive" = "yes"; then
1178 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1182 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1183 PKG_CHECK_MODULES([ALSA], [alsa],
1184 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1185 AC_MSG_ERROR($missing_library))
1186 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1189 AC_MSG_RESULT($alsa_disabled)
1193 if test "x$use_pulse" != "xno"; then
1194 if test "$host_vendor" = "apple" ; then
1195 if test "x$use_pulse" = "xyes"; then
1196 AC_MSG_ERROR($pulse_disabled)
1199 AC_MSG_RESULT($pulse_disabled)
1203 AC_CHECK_LIB([pulse],[main],,pulse_found="no")
1204 AC_CHECK_LIB([pulse-simple],[main],,pulse_found="no")
1206 if test "x$pulse_found" != "xno"; then
1208 elif test "x$use_pulse" = "xyes"; then
1209 AC_MSG_ERROR($pulse_not_found)
1213 AC_MSG_RESULT($pulse_not_found)
1217 AC_MSG_RESULT($pulse_disabled)
1222 if test "$host_vendor" = "apple" ; then
1224 AC_MSG_RESULT($hal_disabled)
1226 if test "$use_hal" = "yes"; then
1227 PKG_CHECK_MODULES([HAL], [hal],
1228 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1229 use_hal=no;AC_MSG_RESULT($hal_not_found))
1230 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1231 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1232 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1234 AC_MSG_RESULT($hal_disabled)
1236 if test "$use_hal" = "yes"; then
1237 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1242 if test "$host_vendor" = "apple" ; then
1244 AC_MSG_RESULT($avahi_disabled)
1246 if test "$use_avahi" = "yes"; then
1247 AC_CHECK_LIB([avahi-common], [main],,
1248 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1249 if test "$use_avahi" = "yes"; then
1250 #either both libs or none
1251 AC_CHECK_LIB([avahi-client], [main],,
1252 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1255 AC_MSG_RESULT($avahi_disabled)
1260 if test "$use_mdnsembedded" != "no"; then
1261 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1262 [if test "$use_mdnsembedded" = "yes"; then
1263 AC_MSG_ERROR($mdnsembedded_not_found)
1265 elif test "$use_mdnsembedded" != "no"; then
1266 AC_MSG_NOTICE($mdnsembedded_not_found)
1267 use_mdnsembedded="no"
1271 if test $use_mdnsembedded != "no"; then
1275 AC_MSG_RESULT($mdnsembedded_disabled)
1278 AC_SUBST(USE_MDNSEMBEDDED)
1281 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1282 AC_MSG_NOTICE($x11_enabled)
1283 PKG_CHECK_MODULES([X11], [x11],
1284 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1285 AC_MSG_ERROR($missing_library))
1286 PKG_CHECK_MODULES([XEXT], [xext],
1287 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1288 AC_MSG_ERROR($missing_library))
1289 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1291 AC_MSG_RESULT($x11_disabled)
1295 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1297 AC_MSG_RESULT($xrandr_disabled)
1299 if test "$use_xrandr" = "yes" ; then
1300 AC_CHECK_LIB([Xrandr], [main],,
1301 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1303 AC_MSG_RESULT($xrandr_disabled)
1308 if test "$host_vendor" = "apple" ; then
1309 AC_MSG_NOTICE($goom_disabled)
1312 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1313 AC_MSG_NOTICE($goom_enabled)
1316 AC_MSG_NOTICE($goom_disabled)
1322 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1323 AC_MSG_NOTICE($rsxs_disabled)
1326 AC_MSG_NOTICE($rsxs_enabled)
1328 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1329 if test "$host_vendor" != "apple" ; then
1330 PKG_CHECK_MODULES([XT], [xt],
1331 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1332 AC_MSG_ERROR($missing_library))
1333 PKG_CHECK_MODULES([XMU], [xmu],
1334 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1335 AC_MSG_ERROR($missing_library))
1340 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1341 AC_MSG_NOTICE($fishbmc_disabled)
1345 AC_MSG_NOTICE($fishbmc_enabled)
1350 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1351 AC_MSG_NOTICE($projectm_disabled)
1355 AC_MSG_NOTICE($projectm_enabled)
1361 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1362 use_skin_touched=yes
1364 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1370 if test "x$use_ssh" = "xno"; then
1371 AC_MSG_NOTICE($ssh_disabled)
1374 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1375 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1379 if test "$use_librtmp" != "no"; then
1380 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1381 [if test "$use_librtmp" = "yes"; then
1382 AC_MSG_ERROR($librtmp_not_found)
1383 elif test "$use_librtmp" != "no"; then
1384 AC_MSG_NOTICE($librtmp_not_found)
1388 if test "$use_librtmp" != "no"; then
1389 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1391 if test "$use_librtmp" != "no"; then
1392 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1395 AC_MSG_NOTICE($librtmp_disabled)
1399 if test "x$use_samba" != "xno"; then
1400 AC_CHECK_LIB([smbclient], [main],,
1401 use_samba=no;AC_MSG_ERROR($missing_library))
1404 AC_MSG_RESULT($samba_disabled)
1408 if test "x$use_samba" != "xno"; then
1409 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1414 if test "$use_libnfs" != "no"; then
1415 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1416 [if test "$use_libnfs" = "yes"; then
1417 AC_MSG_ERROR($libnfs_not_found)
1419 elif test "$use_libnfs" != "no"; then
1420 AC_MSG_NOTICE($libnfs_not_found)
1425 if test "$use_libnfs" != "no"; then
1426 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1428 if test "$use_libnfs" != "no"; then
1429 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1434 AC_MSG_NOTICE($libnfs_disabled)
1439 if test "x$use_libafpclient" != "xno"; then
1440 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1441 [if test "x$use_libafpclient" = "xyes"; then
1442 AC_MSG_ERROR($libafpclient_not_found)
1443 elif test "x$use_libafpclient" != "xno"; then
1444 AC_MSG_NOTICE($libafpclient_not_found)
1445 use_libafpclient="no"
1448 if test "x$use_libafpclient" != "xno"; then
1449 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1450 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1454 AC_MSG_NOTICE($libafpclient_disabled)
1457 # libplist for airplay feature
1459 if test "$use_airplay" != "no"; then
1460 AC_CHECK_HEADER([plist/plist.h],,
1461 [if test "$use_airplay" = "yes"; then
1462 AC_MSG_ERROR($libplist_not_found)
1463 elif test "$use_airplay" != "no"; then
1464 AC_MSG_NOTICE($libplist_not_found)
1469 if test "$use_airplay" != "no"; then
1470 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1472 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1476 # libshairplay for AirTunes (prefered lib)
1478 if test "x$use_airtunes" != "xno"; then
1479 AC_CHECK_HEADERS([shairplay/raop.h],,
1480 [if test "x$use_airtunes" = "xyes"; then
1481 AC_MSG_ERROR($libshairplay_not_found)
1482 elif test "x$use_airtunes" != "xno"; then
1483 AC_MSG_NOTICE($libshairplay_not_found)
1488 if test "x$use_airtunes" != "xno"; then
1489 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [use_airtunes])
1492 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1493 [[#include <shairplay/raop.h>]])
1494 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1497 #libshairport - as a fallback for AirTunes
1498 if test "x$USE_AIRTUNES" == "x0"; then
1499 AC_CHECK_HEADERS([shairport/shairport.h],,
1500 [if test "x$use_airtunes" = "xyes"; then
1501 AC_MSG_ERROR($libshairport_not_found)
1502 elif test "x$use_airtunes" != "xno"; then
1503 AC_MSG_NOTICE($libshairport_not_found)
1508 if test "x$use_airtunes" != "xno"; then
1509 XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
1511 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1512 [[#include <shairport/shairport.h>]])
1513 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1520 if test "$host_vendor" = "apple" ; then
1522 AC_MSG_NOTICE($libudev_disabled)
1524 if test "$use_libudev" = "auto"; then
1525 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1526 elif test "$use_libudev" = "yes" ; then
1527 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1529 AC_MSG_NOTICE($libudev_disabled)
1532 if test "x$use_libudev" != "xno"; then
1533 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1534 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1541 # if libudev is available, we don't need libusb
1542 if test "x$use_libudev" != "xno"; then
1544 AC_MSG_NOTICE($libusb_disabled_udev_found)
1546 if test "$host_vendor" = "apple" ; then
1548 AC_MSG_NOTICE($libusb_disabled)
1550 if echo "$ARCH" | grep -q freebsd ; then
1551 AC_CHECK_LIB([usb],[main],
1552 [use_libusb="yes";USB_LIBS="-lusb"],
1553 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1554 elif test "$use_libusb" = "auto"; then
1555 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1556 elif test "$use_libusb" = "yes"; then
1557 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1559 AC_MSG_NOTICE($libusb_disabled)
1562 if test "x$use_libusb" != "xno"; then
1563 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1564 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1571 if test "x$use_libcec" != "xno"; then
1572 # libcec is dyloaded, so we need to check for its headers and link any depends.
1573 if test "x$use_libcec" != "xno"; then
1574 if test "x$use_libcec" != "xauto"; then
1575 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1577 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1580 if test "x$use_libcec" != "xno"; then
1581 INCLUDES="$INCLUDES $CEC_CFLAGS"
1582 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1583 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1584 AC_MSG_NOTICE($libcec_enabled)
1587 AC_MSG_NOTICE($libcec_disabled)
1592 AC_MSG_NOTICE($libcec_disabled)
1596 if test "$use_libcap" != "no"; then
1597 AC_CHECK_HEADERS([sys/capability.h],,
1598 [if test "$use_libcap" = "yes"; then
1599 AC_MSG_ERROR($libcap_not_found)
1600 elif test "$use_libcap" != "no"; then
1601 AC_MSG_NOTICE($libcap_not_found)
1605 if test "$use_libcap" != "no"; then
1606 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1608 if test "$use_libcap" != "no"; then
1609 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1612 AC_MSG_NOTICE($libcap_disabled)
1615 ### External libraries checks
1617 # Hacks for supporting libav
1620 if test "$use_libav_hacks" = "yes"; then
1621 export PKG_CONFIG_PATH="${srcdir}/lib/xbmc-libav-hacks/pkgconfig/:$PKG_CONFIG_PATH"
1623 AC_DEFINE([USE_LIBAV_HACKS], [1], [Whether to use libav compatibility hacks.])
1627 if test "$use_external_ffmpeg" = "yes"; then
1628 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale libswresample"
1630 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1631 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1632 AC_MSG_ERROR($missing_library))
1634 # in case the headers are in a custom directory
1635 SAVE_CPPFLAGS="$CPPFLAGS"
1636 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1638 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1639 [AC_MSG_ERROR($missing_headers)])
1641 AC_MSG_NOTICE($external_ffmpeg_enabled)
1642 USE_EXTERNAL_FFMPEG=1
1643 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1645 CPPFLAGS="$SAVE_CPPFLAGS"
1647 AC_MSG_NOTICE($external_ffmpeg_disabled)
1648 USE_EXTERNAL_FFMPEG=0
1651 echo "Checking for SWIG installation"
1652 AC_PATH_PROG(SWIG_EXE, swig, "none")
1653 if test "$SWIG_EXE" = "none"; then
1654 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1655 if test "$SWIG20_EXE" != "none" ; then
1656 SWIG_EXE=$SWIG20_EXE
1659 if test "$SWIG_EXE" = "none"; then
1660 AC_MSG_ERROR($missing_program)
1662 final_message="$final_message\n SWIG Available:\tYes"
1664 echo "Checking for a jre installation"
1665 AC_PATH_PROG(JAVA_EXE, java, "none")
1666 if test "$JAVA_EXE" = "none"; then
1667 AC_MSG_ERROR($missing_program)
1669 final_message="$final_message\n JRE Available:\tYes"
1671 echo "Checking for doxygen installation"
1672 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1673 if test "$DOXYGEN_EXE" = "none"; then
1674 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1675 final_message="$final_message\n Doxygen Available:\tNo"
1678 final_message="$final_message\n Doxygen Available:\tYes"
1683 if test "x$use_vdpau" != "xno"; then
1684 if test "$host_vendor" = "apple" ; then
1685 if test "x$use_vdpau" = "xyes"; then
1686 AC_MSG_ERROR([VDPAU not supported on this platform])
1689 AC_MSG_NOTICE($vdpau_disabled)
1694 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1695 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1696 [if test "x$use_vdpau" = "xyes"; then
1698 AC_MSG_ERROR([$vdpau_not_found])
1702 AC_MSG_RESULT($vdpau_not_found)
1707 AC_MSG_NOTICE($vdpau_disabled)
1711 if test "x$use_vaapi" != "xno"; then
1712 if test "$host_vendor" = "apple" ; then
1713 if test "x$use_vaapi" = "xyes"; then
1714 AC_MSG_ERROR([VAAPI not supported on this platform])
1717 AC_MSG_NOTICE($vaapi_disabled)
1721 initial_val=$use_vaapi
1722 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1723 if test "x$use_vaapi" != "xno"; then
1724 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1727 if test "x$use_vaapi" = "xno"; then
1728 if test "x$initial_val" = "xyes"; then
1729 AC_MSG_ERROR($vaapi_not_found)
1731 AC_MSG_RESULT($vaapi_not_found)
1735 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1740 AC_MSG_NOTICE($vaapi_disabled)
1745 if test "x$use_crystalhd" != "xno"; then
1746 SAVE_CFLAGS="$CFLAGS"
1747 CFLAGS="-D__LINUX_USER__"
1748 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1749 [ if test "x$use_crystalhd" = "xyes"; then
1750 AC_MSG_ERROR($crystalhd_not_found)
1753 AC_MSG_RESULT($crystalhd_not_found)
1757 CFLAGS="$SAVE_CFLAGS"
1758 if test "$host_vendor" != "apple"; then
1759 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1761 if test "x$use_crystalhd" != "xno"; then
1762 SAVE_CFLAGS="$CFLAGS"
1763 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1764 # check for new crystalhd lib
1766 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1767 #include <libcrystalhd/bc_dts_defs.h>
1768 PBC_INFO_CRYSTAL bCrystalInfo;])],
1769 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1770 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1771 CFLAGS="$SAVE_CFLAGS"
1775 AC_MSG_NOTICE($crystalhd_disabled)
1780 if test "x$use_vtbdecoder" != "xno"; then
1781 if test "$host_vendor" = "apple" ; then
1782 HAVE_VIDEOTOOLBOXDECODER=1
1783 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1784 AC_MSG_NOTICE($vtbdecoder_enabled)
1786 if test "x$use_vtbdecoder" = "xyes"; then
1787 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1790 AC_MSG_NOTICE($vtbdecoder_disabled)
1794 AC_MSG_NOTICE($vtbdecoder_disabled)
1798 if test "$host_vendor" = "apple" ; then
1801 AC_MSG_NOTICE($openmax_disabled)
1802 elif test "$target_platform" = "target_raspberry_pi"; then
1805 AC_MSG_NOTICE($openmax_disabled)
1807 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1808 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1809 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1810 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1811 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1812 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1813 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1814 AC_MSG_ERROR($openmax_not_found))
1816 AC_MSG_NOTICE($openmax_disabled)
1822 # yajl version check (yajl_version.h was added in yajl 2.0)
1823 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1824 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1827 # additional internal players
1828 case $add_players in
1830 AC_CHECK_HEADER([amlplayer/amports/amstream.h],, AC_MSG_ERROR($missing_headers))
1831 XB_ADD_PLAYER([AMLPLAYER], [amlplayer])
1834 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1838 # additional internal codecs
1841 AC_CHECK_HEADER([amlplayer/codec_error.h],, AC_MSG_ERROR($missing_headers))
1842 XB_ADD_CODEC([LIBAMCODEC], [amcodec])
1845 LIBS+="-L${prefix}/opt/android-libs -lstdc++ -lutils -lcutils -lstagefright -lbinder -lui -lgui"
1846 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright])
1851 # platform specific bin utilities
1852 if test "$build_vendor" != "apple" ; then
1853 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1854 if test "$HAVE_GAWK" = "no" ; then
1855 AC_MSG_ERROR($missing_program)
1859 if test "$use_arch" != "arm" ; then
1860 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1861 if test "$HAVE_CMAKE" = "no" ; then
1862 AC_MSG_ERROR($missing_program)
1866 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1867 if test "$HAVE_GPERF" = "no" ; then
1868 AC_MSG_ERROR($missing_program)
1871 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1872 if test "$HAVE_UNZIP" = "no" ; then
1873 AC_MSG_ERROR($missing_program)
1876 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
1877 if test "$HAVE_ZIP" = "no" ; then
1878 AC_MSG_ERROR($missing_program)
1881 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
1882 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
1883 if test "$HAVE_NASM" = "no" ; then
1884 AC_MSG_ERROR($missing_program)
1888 # Checks for header files.
1892 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
1893 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
1894 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
1895 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
1896 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
1898 # Checks for typedefs, structures, and compiler characteristics.
1914 AC_CHECK_MEMBERS([struct stat.st_rdev])
1923 if test "$cross_compiling" = "yes"; then
1924 final_message="$final_message\n Crosscomp.:\tYes"
1926 final_message="$final_message\n Crosscomp.:\tNo"
1929 final_message="$final_message\n target ARCH:\t$use_arch"
1930 final_message="$final_message\n target CPU:\t$use_cpu"
1932 if test "$use_gles" = "yes"; then
1933 final_message="$final_message\n OpenGLES:\tYes"
1938 if test "$use_gl" = "yes"; then
1939 final_message="$final_message\n OpenGL:\tYes"
1942 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
1943 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
1948 if test "$use_alsa" = "yes"; then
1950 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
1951 final_message="$final_message\n ALSA:\t\tYes"
1954 final_message="$final_message\n ALSA:\t\tNo"
1957 if test "$use_dbus" = "yes"; then
1958 final_message="$final_message\n DBUS:\t\tYes"
1960 final_message="$final_message\n DBUS:\t\tNo"
1963 if test "x$use_vdpau" != "xno"; then
1964 final_message="$final_message\n VDPAU:\tYes"
1966 final_message="$final_message\n VDPAU:\tNo"
1969 if test "x$use_vaapi" != "xno"; then
1970 final_message="$final_message\n VAAPI:\tYes"
1972 final_message="$final_message\n VAAPI:\tNo"
1975 if test "x$use_crystalhd" != "xno"; then
1976 final_message="$final_message\n CrystalHD:\tYes"
1978 final_message="$final_message\n CrystalHD:\tNo"
1981 if test "x$use_vtbdecoder" != "xno"; then
1982 final_message="$final_message\n VTBDecoder:\tYes"
1984 final_message="$final_message\n VTBDecoder:\tNo"
1987 if test "$use_openmax" != "no"; then
1988 final_message="$final_message\n OpenMax:\tYes"
1990 final_message="$final_message\n OpenMax:\tNo"
1993 if test "$use_joystick" = "yes"; then
1994 final_message="$final_message\n Joystick:\tYes"
1995 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
1997 final_message="$final_message\n Joystick:\tNo"
2000 if test "$use_xrandr" = "yes"; then
2001 final_message="$final_message\n XRandR:\tYes"
2004 final_message="$final_message\n XRandR:\tNo"
2008 if test "$use_goom" = "yes"; then
2009 final_message="$final_message\n GOOM:\t\tYes"
2011 final_message="$final_message\n GOOM:\t\tNo"
2014 if test "$use_rsxs" = "yes"; then
2015 final_message="$final_message\n RSXS:\t\tYes"
2017 final_message="$final_message\n RSXS:\t\tNo"
2020 if test "$use_fishbmc" = "yes"; then
2021 final_message="$final_message\n FishBMC:\tYes"
2023 final_message="$final_message\n FishBMC:\tNo"
2026 if test "$use_projectm" = "yes"; then
2027 final_message="$final_message\n ProjectM:\tYes"
2029 final_message="$final_message\n ProjectM:\tNo"
2032 if test "$use_skin_touched" = "yes"; then
2033 final_message="$final_message\n Skin Touched:\tYes"
2035 final_message="$final_message\n Skin Touched:\tNo"
2038 if test "$use_x11" = "yes"; then
2039 final_message="$final_message\n X11:\t\tYes"
2041 final_message="$final_message\n X11:\t\tNo"
2044 if test "$use_libbluray" = "yes"; then
2045 final_message="$final_message\n Bluray:\tYes"
2047 final_message="$final_message\n Bluray:\tNo"
2050 USE_TEXTUREPACKER_NATIVE=0
2051 if test "x$use_texturepacker" != "xno"; then
2052 final_message="$final_message\n TexturePacker:Yes"
2054 if test "x$use_texturepacker_native" = "xyes"; then
2055 USE_TEXTUREPACKER_NATIVE=1
2056 if [[ ! -d "$USE_TEXTUREPACKER_NATIVE_ROOT" ]]; then
2057 USE_TEXTUREPACKER_NATIVE_ROOT=
2061 final_message="$final_message\n TexturePacker:No"
2065 if test "$use_mid" = "yes"; then
2066 final_message="$final_message\n MID Support:\tYes"
2067 SDL_DEFINES="$SDL_DEFINES -DMID"
2069 final_message="$final_message\n MID Support:\tNo"
2074 if test "x$use_ccache" != "xno"; then
2075 AC_PATH_PROG(CCACHE,ccache,none)
2076 if test "$ac_cv_path_CCACHE" = "none"; then
2077 if test "x$use_ccache" = "xyes"; then
2078 AC_MSG_ERROR([ccache not found.]);
2080 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2081 final_message="$final_message\n ccache:\tNo"
2084 CC="$ac_cv_path_CCACHE $CC"
2085 CXX="$ac_cv_path_CCACHE $CXX"
2086 AC_MSG_NOTICE(enabling ccache)
2087 final_message="$final_message\n ccache:\tYes"
2090 final_message="$final_message\n ccache:\tNo"
2093 if test "$use_alsa" = "yes"; then
2094 final_message="$final_message\n ALSA Support:\tYes"
2096 final_message="$final_message\n ALSA Support:\tNo"
2099 if test "x$use_pulse" != "xno"; then
2100 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2101 final_message="$final_message\n PulseAudio:\tYes"
2103 XBMC_STANDALONE_SH_PULSE=/dev/null
2104 final_message="$final_message\n PulseAudio:\tNo"
2107 if test "$use_hal" = "yes"; then
2108 final_message="$final_message\n HAL Support:\tYes"
2110 final_message="$final_message\n HAL Support:\tNo"
2114 if test "$use_dvdcss" = "yes"; then
2115 AC_MSG_NOTICE($dvdcss_enabled)
2116 final_message="$final_message\n DVDCSS:\tYes"
2118 SKIP_CONFIG_DVDCSS=0
2119 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2121 AC_MSG_NOTICE($dvdcss_disabled)
2122 final_message="$final_message\n DVDCSS:\tNo"
2124 SKIP_CONFIG_DVDCSS=1
2125 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2127 if test "$host_vendor" = "apple"; then
2128 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2131 # Google Test Framework
2132 if test "$configure_gtest" = "yes"; then
2133 AC_MSG_NOTICE($gtest_enabled)
2134 final_message="$final_message\n Google Test Framework Configured:\tYes"
2138 AC_MSG_NOTICE($gtest_disabled)
2139 final_message="$final_message\n Google Test Framework Configured:\tNo"
2144 if test "$use_avahi" = "yes"; then
2145 final_message="$final_message\n Avahi:\tYes"
2147 final_message="$final_message\n Avahi:\tNo"
2150 if test "$use_mdnsembedded" != "no"; then
2151 final_message="$final_message\n mDNSEmbedded:\tYes"
2153 final_message="$final_message\n mDNSEmbedded:\tNo"
2156 if test "$use_nonfree" = "yes"; then
2157 final_message="$final_message\n Non-free:\tYes"
2159 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2162 final_message="$final_message\n Non-free:\tNo"
2165 if test "$use_asap" = "yes"; then
2166 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2167 if test "$HAVE_GDC" = "no"; then
2168 AC_MSG_ERROR($missing_program);
2170 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2171 if test "$HAVE_FPC" = "no"; then
2172 AC_MSG_ERROR($missing_program);
2175 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2176 final_message="$final_message\n ASAP Codec:\tYes"
2179 final_message="$final_message\n ASAP Codec:\tNo"
2182 if test "$use_mysql" = "yes"; then
2183 final_message="$final_message\n MySQL:\tYes"
2186 final_message="$final_message\n MySQL:\tNo"
2189 if test "$use_webserver" = "yes"; then
2190 final_message="$final_message\n Webserver:\tYes"
2193 final_message="$final_message\n Webserver:\tNo"
2197 if test "$use_libssh" != "no"; then
2198 final_message="$final_message\n libssh support:\tYes"
2200 final_message="$final_message\n libssh support:\tNo"
2203 if test "$use_librtmp" != "no"; then
2204 final_message="$final_message\n libRTMP support:\tYes"
2206 final_message="$final_message\n libRTMP support:\tNo"
2209 if test "x$use_samba" != "xno"; then
2210 final_message="$final_message\n libsmbclient support:\tYes"
2212 final_message="$final_message\n libsmbclient support:\tNo"
2215 if test "$use_libnfs" != "no"; then
2216 final_message="$final_message\n libnfs client support:Yes"
2218 final_message="$final_message\n libnfs client support:No"
2221 if test "x$use_libafpclient" != "xno"; then
2222 final_message="$final_message\n libafpclient support:\tYes"
2224 final_message="$final_message\n libafpclient support:\tNo"
2227 if test "$use_airplay" != "no"; then
2228 final_message="$final_message\n AirPlay support:\tYes"
2230 final_message="$final_message\n AirPLay support:\tNo"
2233 if test "x$use_airtunes" != "xno"; then
2234 if test "x$USE_LIBSHAIRPORT" == "x1"; then
2235 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2237 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2240 final_message="$final_message\n AirTunes support:\tNo"
2243 if test "x$use_upnp" != "xno"; then
2244 final_message="$final_message\n UPnP support:\t\tYes"
2246 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2249 final_message="$final_message\n UPnP support:\t\tNo"
2252 if test "$use_optical_drive" = "yes"; then
2253 final_message="$final_message\n Optical drive:\tYes"
2255 final_message="$final_message\n Optical drive:\tNo"
2258 if test "x$use_libudev" != "xno"; then
2259 final_message="$final_message\n libudev support:\tYes"
2261 final_message="$final_message\n libudev support:\tNo"
2264 if test "x$use_libusb" != "xno"; then
2265 final_message="$final_message\n libusb support:\tYes"
2267 final_message="$final_message\n libusb support:\tNo"
2270 if test "x$use_libcec" != "xno"; then
2271 final_message="$final_message\n libcec support:\tYes"
2273 final_message="$final_message\n libcec support:\tNo"
2276 if test "x$use_libmp3lame" != "xno"; then
2277 final_message="$final_message\n libmp3lame support:\tYes"
2279 final_message="$final_message\n libmp3lame support:\tNo"
2282 if test "x$use_libvorbisenc" != "xno"; then
2283 final_message="$final_message\n libvorbisenc support:\tYes"
2285 final_message="$final_message\n libvorbisenc support:\tNo"
2288 if test "x$use_libcap" != "xno"; then
2289 final_message="$final_message\n libcap support:\tYes"
2291 final_message="$final_message\n libcap support:\tNo"
2294 if test "x$add_players" != "xno"; then
2295 final_message="$final_message\n additional players:\tYes"
2297 final_message="$final_message\n additional players:\tNo"
2300 ### External libraries messages
2302 if test "$use_external_ffmpeg" = "yes"; then
2303 final_message="$final_message\n External FFmpeg:\tYes"
2305 final_message="$final_message\n External FFmpeg:\tNo"
2308 if test "$host_vendor" = "apple" ; then
2309 # built internal but referenced as external, we link directly to them.
2310 # this MUST be the last thing before OUTPUT_FILES as they do not
2311 # exist until after we build FFMpeg.
2312 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2313 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2314 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2315 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2316 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2317 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2318 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2322 DISABLE_PVR_ADDON_CONFIG=1
2323 if [[ -f "pvr-addons/Makefile.am" ]]; then
2324 final_message="$final_message\n PVR add-ons:\t\tYes"
2326 DISABLE_PVR_ADDON_CONFIG=0
2328 final_message="$final_message\n PVR add-ons:\t\tNo"
2331 OUTPUT_FILES="Makefile \
2333 addons/skin.confluence/media/Makefile \
2335 xbmc/cdrip/Makefile \
2336 xbmc/cores/Makefile \
2337 xbmc/cores/VideoRenderers/Makefile \
2338 xbmc/cores/dvdplayer/Makefile \
2340 lib/libdvd/Makefile \
2341 xbmc/cores/DllLoader/Makefile \
2342 xbmc/cores/DllLoader/exports/Makefile \
2343 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2344 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2345 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2346 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2347 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2348 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2349 xbmc/cores/AudioEngine/Makefile \
2350 xbmc/cores/paplayer/Makefile \
2351 xbmc/cores/amlplayer/Makefile \
2352 xbmc/cores/omxplayer/Makefile \
2353 lib/timidity/Makefile \
2354 lib/xbadpcm/Makefile \
2356 lib/nosefart/Makefile \
2357 lib/libsidplay2/Makefile \
2358 lib/vgmstream/Makefile \
2359 lib/snesapu/SNES/SNESAPU/Makefile \
2360 lib/stsound/StSoundLibrary/Makefile \
2361 xbmc/cores/playercorefactory/Makefile \
2362 xbmc/music/karaoke/Makefile \
2364 xbmc/guilib/Makefile \
2365 xbmc/interfaces/Makefile \
2366 xbmc/network/Makefile \
2367 xbmc/network/upnp/Makefile \
2368 lib/libRTV/Makefile \
2369 lib/libexif/Makefile \
2370 lib/libXDAAP/Makefile \
2371 lib/cmyth/Makefile \
2372 lib/libhdhomerun/Makefile \
2373 lib/libsquish/Makefile \
2374 lib/cximage-6.0/Makefile \
2375 lib/libUPnP/Makefile \
2376 xbmc/DllPaths_generated.h \
2377 xbmc/DllPaths_generated_android.h \
2378 xbmc/freebsd/Makefile \
2379 xbmc/linux/Makefile \
2380 xbmc/filesystem/Makefile \
2381 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2382 xbmc/visualizations/XBMCProjectM/Makefile \
2383 xbmc/visualizations/Goom/Makefile \
2384 xbmc/visualizations/OpenGLSpectrum/Makefile \
2385 xbmc/visualizations/fishBMC/Makefile \
2386 xbmc/visualizations/WaveForm/Makefile \
2387 lib/addons/library.xbmc.addon/Makefile \
2388 lib/addons/library.xbmc.codec/Makefile \
2389 lib/addons/library.xbmc.gui/Makefile \
2390 lib/addons/library.xbmc.pvr/Makefile \
2391 xbmc/visualizations/EGLHelpers/Makefile \
2392 tools/Linux/xbmc.sh \
2393 tools/Linux/xbmc-standalone.sh \
2394 tools/TexturePacker/Makefile \
2395 tools/EventClients/Clients/OSXRemote/Makefile \
2396 xbmc/peripherals/bus/Makefile \
2397 xbmc/peripherals/devices/Makefile \
2398 xbmc/android/activity/Makefile \
2399 xbmc/android/loader/Makefile \
2400 xbmc/android/jni/Makefile \
2401 xbmc/utils/Makefile \
2402 xbmc/main/Makefile \
2403 project/cmake/xbmc-config.cmake"
2405 if test "$use_skin_touched" = "yes"; then
2406 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2409 OUTPUT_FILES="$OUTPUT_FILES \
2410 xbmc/interfaces/python/Makefile \
2411 xbmc/interfaces/python/test/Makefile"
2413 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2414 # .dummy.am does nothing.
2415 AC_CONFIG_FILES([.dummy])
2417 AC_CONFIG_FILES([${OUTPUT_FILES}])
2418 OUTPUT_FILES="$OUTPUT_FILES \
2424 AC_SUBST(SDL_DEFINES)
2425 AC_SUBST(BUILD_DVDCSS)
2426 AC_SUBST(DISABLE_GOOM)
2427 AC_SUBST(DISABLE_RSXS)
2428 AC_SUBST(DISABLE_FISHBMC)
2429 AC_SUBST(DISABLE_PROJECTM)
2430 AC_SUBST(USE_SKIN_TOUCHED)
2431 AC_SUBST(USE_EXTERNAL_FFMPEG)
2432 AC_SUBST(USE_LIBAV_HACKS)
2433 AC_SUBST(PYTHON_VERSION)
2434 AC_SUBST(OUTPUT_FILES)
2435 AC_SUBST(HAVE_XBMC_NONFREE)
2436 AC_SUBST(USE_ASAP_CODEC)
2437 AC_SUBST(LIBCURL_BASENAME)
2438 AC_SUBST(LIBFLAC_BASENAME)
2439 AC_SUBST(LIBVORBISFILE_BASENAME)
2440 AC_SUBST(LIBMODPLUG_BASENAME)
2441 AC_SUBST(LIBMAD_BASENAME)
2442 AC_SUBST(LIBOGG_BASENAME)
2443 AC_SUBST(LIBVORBISENC_BASENAME)
2444 AC_SUBST(LIBVORBIS_BASENAME)
2445 AC_SUBST(LIBASS_BASENAME)
2446 AC_SUBST(LIBMEPG2_BASENAME)
2447 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2448 AC_SUBST(USE_OPENGL)
2449 AC_SUBST(USE_OPENGLES)
2452 AC_SUBST(USE_CRYSTALHD)
2453 AC_SUBST(USE_LIBSMBCLIENT)
2454 AC_SUBST(USE_LIBNFS)
2455 AC_SUBST(USE_LIBAFPCLIENT)
2456 AC_SUBST(USE_AIRPLAY)
2457 AC_SUBST(USE_OPENMAX)
2459 AC_SUBST(USE_XRANDR)
2461 AC_SUBST(USE_TEXTUREPACKER)
2462 AC_SUBST(USE_TEXTUREPACKER_NATIVE)
2463 AC_SUBST(USE_TEXTUREPACKER_NATIVE_ROOT)
2464 AC_SUBST(USE_AIRTUNES)
2465 AC_SUBST(USE_LIBUDEV)
2466 AC_SUBST(USE_LIBUSB)
2467 AC_SUBST(USE_LIBCEC)
2469 AC_SUBST(USE_WEB_SERVER)
2471 AC_SUBST(USE_OMXLIB)
2472 AC_SUBST(USE_ANDROID)
2473 AC_SUBST(GTEST_CONFIGURED)
2474 AC_SUBST(USE_DOXYGEN)
2475 AC_SUBST(USE_PVR_ADDONS)
2477 # pushd and popd are not available in other shells besides bash, so implement
2478 # our own pushd/popd functions
2483 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2485 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2488 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2493 if [[ -n "$XB_DIRSTACK" ]]; then
2494 XB_DIRSTACK="${XB_DIRSTACK#* }"
2495 cd "${XB_DIRSTACK%% *}"
2498 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2502 # Function to run the configure scripts in our submodules
2503 # Consists of three paramaters, the path to the submodule, the configure command
2504 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2505 # running the script, anything else if not.
2506 AC_DEFUN([XB_CONFIG_MODULE],[
2507 AC_CONFIG_COMMANDS_POST([
2508 if [[ $3 != "1" ]]; then
2509 if [[ -d $1 ]]; then
2512 if [[ $? -ne 0 ]]; then
2514 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2519 AC_MSG_ERROR([[Submodule $1 does not exist]])
2522 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2527 XB_CONFIG_MODULE([lib/ffmpeg], [
2528 if test "$host_vendor" = "apple" ; then
2529 ffmpg_config="--target-os=$ffmpeg_target_os"
2530 # handle disables first, we do individual enables later
2531 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2532 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2533 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2534 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2535 ffmpg_config="$ffmpg_config --enable-vda --disable-crystalhd"
2536 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2538 # handle conditional enables/disables
2539 if test "$use_debug" = "no"; then
2540 ffmpg_config="$ffmpg_config --disable-debug"
2542 if test "$use_cpu" != "no"; then
2543 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2545 if test "$use_arch" != "no"; then
2546 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2548 if test "$use_arch" = "arm"; then
2549 ffmpg_config="$ffmpg_config --enable-pic"
2550 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2551 if test "$use_neon" = "yes"; then
2552 ffmpg_config="$ffmpg_config --enable-neon"
2554 ffmpg_config="$ffmpg_config --disable-neon"
2557 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2559 if test "$use_ffmpeg_libvorbis" = "yes"; then
2560 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2562 ffmpg_config="$ffmpg_config --disable-libvorbis"
2565 # handle individual enables
2566 ffmpg_config="$ffmpg_config --enable-gpl"
2567 ffmpg_config="$ffmpg_config --enable-postproc"
2568 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2569 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts --enable-muxer=asf --enable-muxer=ipod"
2570 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2"
2571 ffmpg_config="$ffmpg_config --enable-protocol=http"
2572 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2574 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2577 ffmpg_config="$ffmpg_config --cc=clang" ;;
2579 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2582 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2583 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2585 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2587 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2588 # dependency files in the right place, replace it with something that works
2591 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2594 # ffmpeg will use yasm found at ${prefix}/bin during configure
2595 # but then hardcodes 'yasm' in config.mak, fix it.
2596 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2597 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2598 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2603 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2605 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2607 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2608 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2609 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2610 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2611 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2612 --target-os=$ffmpeg_target_os \
2614 --enable-muxer=spdif \
2615 --enable-muxer=adts \
2616 --enable-muxer=asf \
2617 --enable-muxer=ipod \
2618 --disable-encoders \
2619 --enable-encoder=ac3 \
2620 --enable-encoder=aac \
2621 --enable-encoder=wmav2 \
2622 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2623 --disable-decoder=mpeg_xvmc \
2627 --disable-ffserver \
2629 --disable-crystalhd \
2634 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2635 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2636 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2637 --enable-protocol=http \
2639 --enable-runtime-cpudetect \
2640 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2641 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2642 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2643 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2644 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2646 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2647 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2649 ], [$USE_EXTERNAL_FFMPEG])
2651 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2656 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2657 --host=$host_alias \
2658 --build=$build_alias \
2659 --target=$target_alias \
2663 ], [$SKIP_CONFIG_DVDCSS])
2665 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2667 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src" \
2668 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2669 --host=$host_alias \
2670 --build=$build_alias \
2671 --target=$target_alias \
2677 $MAKE dvdread-config &&
2678 mkdir -p `pwd`/../includes/dvdread
2679 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2680 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2683 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2685 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
2686 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2687 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2688 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2689 --host=$host_alias \
2690 --build=$build_alias \
2691 --target=$target_alias \
2697 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2699 rm -f CMakeCache.txt && \
2700 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2701 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2702 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2703 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2704 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2705 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2706 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2707 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2708 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2709 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2710 if test "$host_vendor" = "apple" ; then
2711 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2712 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2713 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2714 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2717 ], [$DISABLE_PROJECTM])
2719 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2722 CXXFLAGS="$CXXFLAGS" \
2723 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2724 --host=$host_alias \
2725 --build=$build_alias \
2726 --target=$target_alias \
2732 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2733 if test "$host_vendor" = "apple"; then
2734 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";
2736 TEMPCFLAGS="$CFLAGS";
2741 CFLAGS="$TEMPCFLAGS" \
2742 CXXFLAGS="$CXXFLAGS" \
2743 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2744 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2745 --host=$host_alias \
2746 --build=$build_alias \
2747 --target=$target_alias \
2748 --without-xscreensaver \
2751 --disable-fieldlines \
2755 --disable-hyperspace \
2758 if echo "$ARCH" | grep -q freebsd ; then
2759 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2763 XB_CONFIG_MODULE([lib/cpluff], [
2764 ./configure --disable-nls \
2765 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2766 --host=$host_alias \
2767 --build=$build_alias \
2768 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2769 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2772 XB_CONFIG_MODULE([lib/gtest], [
2777 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2778 --host=$host_alias \
2779 --build=$build_alias \
2780 --target=$target_alias \
2784 ], [$SKIP_CONFIG_GTEST])
2786 XB_CONFIG_MODULE([pvr-addons], [
2788 --prefix="${prefix}" \
2789 --host=$host_alias \
2790 --build=$build_alias \
2791 --target=$target_alias \
2795 CXXFLAGS="$CXXFLAGS"
2796 ], [$DISABLE_PVR_ADDON_CONFIG])
2800 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2801 echo -e "$final_message\n"