2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [12.9.8], [http://trac.xbmc.org])
6 AC_CONFIG_HEADERS([xbmc/config.h])
8 m4_include([m4/ax_prog_cc_for_build.m4])
9 m4_include([m4/ax_prog_cxx_for_build.m4])
10 m4_include([m4/ax_python_devel.m4])
11 m4_include([m4/xbmc_arch.m4])
13 AC_CONFIG_AUX_DIR([build-aux])
14 AM_INIT_AUTOMAKE([foreign])
18 echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
21 # check for enabling additional players
22 AC_DEFUN([XB_ADD_PLAYER],
24 AC_MSG_CHECKING([for $2])
28 AC_DEFINE([HAS_$1], 1, [using $2])
29 AC_MSG_RESULT([enabling $2])
32 AC_MSG_RESULT([$2 is not enabled])
36 # check for enabling additional codecs
37 AC_DEFUN([XB_ADD_CODEC],
39 AC_MSG_CHECKING([for $2])
43 AC_DEFINE([HAS_$1], 1, [using $2])
44 AC_MSG_RESULT([enabling $2])
47 AC_MSG_RESULT([$2 is not enabled])
51 # check for library basenames
52 AC_DEFUN([XB_FIND_SONAME],
54 if echo "$host" | grep -q freebsd ; then
55 AC_MSG_CHECKING([for lib$2 soname])
56 $1_SONAME=[`ldconfig -r | sed -n "s;.* \(/.*lib$2\.so.*\)$;\1;p" | head -n 1`]
57 if test x$$1_SONAME != x ; then
58 $1_SONAME=[`basename $$1_SONAME`]
60 elif [[ "$host_vendor" != "apple" ]]; then
61 AC_MSG_CHECKING([for lib$2 soname])
62 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
63 if [[ -z $$1_FILENAME ]]; then
64 #try gold linker syntax
65 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "lib$2")
67 if [[ ! -z $$1_FILENAME ]]; then
68 $1_SONAME=$($OBJDUMP -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}')
71 AC_MSG_CHECKING([for lib$2 dylib])
72 gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
73 env_lib_path=[`echo $LDFLAGS | sed 's/-L[ ]*//g'`]
74 if test "$cross_compiling" = yes; then
77 host_lib_path="/usr/lib /usr/local/lib"
79 for path in $gcc_lib_path $env_lib_path $host_lib_path; do
80 lib=[`ls -- $path/lib$2.dylib 2>/dev/null`]
81 if test x$lib != x; then
82 # we want the path/name that is embedded in the dylib
83 $1_SONAME=[`otool -L $lib | grep -v lib$2.dylib | grep lib$2 | awk '{V=1; print $V}'`]
84 $1_SONAME=[`basename $$1_SONAME`]
88 if [[ -z "$$1_SONAME" ]]; then
90 if test -z "$3" || test "x${$3}" = "xyes"; then
91 AC_MSG_ERROR([Unable to determine soname of lib$2 library])
93 AC_MSG_WARN([Unable to determine soname of lib$2 library])
95 AC_MSG_WARN([lib$2 support disabled])
98 AC_MSG_RESULT([$$1_SONAME])
103 # Function to push and pop libs and includes for a command
104 AC_DEFUN([XB_PUSH_FLAGS], [
106 SAVE_INCLUDES="$INCLUDES"
111 INCLUDES="$SAVE_INCLUDES"
114 # General message strings
115 configure_debug="ERROR: this is a configure debug statement"
116 missing_library="Could not find a required library. Please see the README for your platform."
117 missing_headers="Could not find some required headers. Please see the README for your platform."
118 missing_program="Could not find a required program. Please see the README for your platform."
119 xrandr_not_found="== Could not find libXRandR. SDL will be used for resolution support. =="
120 xrandr_disabled="== XRandR support disabled. SDL will be used for resolution support. =="
121 waveform_enabled="== WAVEFORM enabled =="
122 waveform_disabled="== WAVEFORM disabled =="
123 spectrum_enabled="== SPECTRUM enabled =="
124 spectrum_disabled="== SPECTRUM disabled =="
125 goom_enabled="== GOOM enabled. =="
126 goom_disabled="== GOOM disabled. =="
127 alsa_disabled="== ALSA support disabled. =="
128 rsxs_enabled="== RSXS enabled. =="
129 rsxs_disabled="== RSXS disabled. =="
130 fishbmc_enabled="== FishBMC enabled. =="
131 fishbmc_disabled="== FishBMC disabled. =="
132 projectm_enabled="== ProjectM enabled. =="
133 projectm_disabled="== ProjectM disabled. =="
134 x11_enabled="== X11 enabled. =="
135 x11_disabled="== X11 disabled. =="
136 pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
137 pulse_disabled="== PulseAudio support manually disabled. =="
138 dvdcss_enabled="== DVDCSS support enabled. =="
139 dvdcss_disabled="== DVDCSS support disabled. =="
140 hal_not_found="== Could not find hal. HAL support disabled. =="
141 halstorage_not_found="== Could not find hal-storage. HAL support disabled. =="
142 hal_disabled="== HAL support disabled. =="
143 avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
144 avahi_disabled="== Avahi support disabled. =="
145 mdnsembedded_not_found="== Could not find mDNSEmbedded. Might prevent zeroconf support. =="
146 mdnsembedded_disabled="== mDNSEmbedded support disabled. =="
147 vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
148 vdpau_disabled="== VDPAU support manually disabled. =="
149 vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
150 vaapi_disabled="== VAAPI support manually disabled. =="
151 crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
152 crystalhd_disabled="== CrystalHD support manually disabled. =="
153 vtbdecoder_enabled="== VTBDecoder support enabled. =="
154 vtbdecoder_disabled="== VTBDecoder support manually disabled. =="
155 openmax_disabled="== OpenMax support manually disabled. =="
156 openmax_not_found="== Could not find libnvomx. OpenMax support disabled. =="
157 ssh_not_found="== Could not find libssh. =="
158 ssh_disabled="== SSH SFTP disabled. =="
159 librtmp_not_found="== Could not find libRTMP. RTMP support disabled. =="
160 librtmp_disabled="== RTMP support disabled. =="
161 libnfs_not_found="== Could not find libnfs. NFS client support disabled. =="
162 libnfs_disabled="== NFS support disabled. =="
163 libafpclient_not_found="== Could not find libafpclient. AFP client support disabled. =="
164 libafpclient_disabled="== AFP support disabled. =="
165 libshairport_not_found="== Could not find libshairport. =="
166 libshairplay_not_found="== Could not find libshairplay. =="
167 samba_disabled="== SAMBA support disabled. =="
168 libplist_not_found="== Could not find libplist. AirPlay support disabled. =="
169 libplist_disabled="== AirPlay support disabled. =="
170 alsa_not_found="== Could not find ALSA. ALSA support disabled. =="
171 dbus_not_found="== Could not find DBUS. DBUS support disabled. =="
172 libcap_disabled="== Capabilities detection support disabled. =="
173 libcap_not_found="== Could not find libcap. Capabilities detection support disabled. =="
174 gtest_enabled="== Google Test Framework will be configured. =="
175 gtest_disabled="== Google Test Framework will not be configured. =="
177 libudev_not_found="== Could not find libudev. Will use polling to check for device changes. =="
178 libudev_disabled="== udev support disabled. Will use polling to check for device changes. =="
179 libusb_not_found="== Could not find libusb. Plug and play USB device support will not be available. =="
180 libusb_disabled="== libusb disabled. Plug and play USB device support will not be available. =="
181 libusb_disabled_udev_found="== libusb disabled. =="
182 libcec_enabled="== libcec enabled. =="
183 libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
185 # External library message strings
186 external_libraries_enabled="== Use of all supported external libraries enabled. =="
187 external_libraries_disabled="== Use of all supported external libraries disabled. =="
188 external_ffmpeg_enabled="== Use of external ffmpeg enabled. =="
189 external_ffmpeg_disabled="== Use of external ffmpeg disabled. =="
190 ffmpeg_vdpau_not_supported="== External ffmpeg doesn't support VDPAU. VDPAU support disabled. =="
191 dashes="------------------------"
192 final_message="\n XBMC Configuration:"
193 final_message="\n$dashes$final_message\n$dashes"
195 AC_ARG_ENABLE([shared-lib],
196 [AS_HELP_STRING([--enable-shared-lib],
197 [build libxbmc. helpful for tests (default is no)])],
198 [build_shared_lib=$enableval],
199 [build_shared_lib=no])
201 AC_ARG_ENABLE([debug],
202 [AS_HELP_STRING([--enable-debug],
203 [enable debugging information (default is yes)])],
204 [use_debug=$enableval],
208 [AS_HELP_STRING([--with-arch],
209 [build with given arch passing to internal ffmpeg (default is no, needed for crosscompiling)])],
213 AC_ARG_WITH([platform],
214 [AS_HELP_STRING([--with-platform],
215 [use a pre-configured config for common arm boards])],
216 [use_platform=$withval],
220 [AS_HELP_STRING([--with-cpu],
221 [build with given cpu passing to ffmpeg (default is no)])],
225 AC_ARG_ENABLE([neon],
226 [AS_HELP_STRING([--enable-neon],
227 [enable neon passing to ffmpeg (default is no)])],
228 [use_neon=$enableval],
231 AC_ARG_ENABLE([optimizations],
232 [AS_HELP_STRING([--enable-optimizations],
233 [enable optimization (default is yes)])],
234 [use_optimizations=$enableval],
235 [use_optimizations=yes])
238 [AS_HELP_STRING([--enable-gl],
239 [enable OpenGL rendering (default is yes)])],
243 AC_ARG_ENABLE([gles],
244 [AS_HELP_STRING([--enable-gles],
245 [enable OpenGLES rendering (default is no)])],
246 [use_gles=$enableval],
250 [AS_HELP_STRING([--enable-sdl],
251 [enable SDL (default is auto)])],
252 [use_sdl=$enableval],
255 AC_ARG_ENABLE([vdpau],
256 [AS_HELP_STRING([--enable-vdpau],
257 [enable VDPAU decoding (default is auto)])],
258 [use_vdpau=$enableval],
261 AC_ARG_ENABLE([vaapi],
262 [AS_HELP_STRING([--enable-vaapi],
263 [enable VAAPI decoding (default is auto)])],
264 [use_vaapi=$enableval],
267 AC_ARG_ENABLE([crystalhd],
268 [AS_HELP_STRING([--enable-crystalhd],
269 [enable CrystalHD decoding (default is auto)])],
270 [use_crystalhd=$enableval],
271 [use_crystalhd=auto])
273 AC_ARG_ENABLE([vtbdecoder],
274 [AS_HELP_STRING([--enable-vtbdecoder],
275 [enable VTBDecoder decoding (default is auto)])],
276 [use_vtbdecoder=$enableval],
277 [use_vtbdecoder=auto])
279 AC_ARG_ENABLE([openmax],
280 [AS_HELP_STRING([--enable-openmax],
281 [enable OpenMax decoding (default is auto, requires OpenGLES)])],
282 [use_openmax=$enableval],
285 AC_ARG_ENABLE([tegra],
286 [AS_HELP_STRING([--enable-tegra],
287 [enable Tegra2 arm (default is no)])],
288 [use_tegra=$enableval],
291 AC_ARG_ENABLE([profiling],
292 [AS_HELP_STRING([--enable-profiling],
293 [enable gprof profiling (default is no)])],
294 [use_profiling=$enableval],
297 AC_ARG_ENABLE([joystick],
298 [AS_HELP_STRING([--enable-joystick],
299 [enable SDL joystick support (default is yes)])],
300 [use_joystick=$enableval],
303 AC_ARG_ENABLE([xrandr],
304 [AS_HELP_STRING([--enable-xrandr],
305 [enable XRandR support (default is yes)])],
306 [use_xrandr=$enableval],
309 AC_ARG_ENABLE([waveform],
310 [AS_HELP_STRING([--enable-waveform],
311 [enable Waveform visualisation (default is yes)])],
312 [use_waveform=$enableval],
315 AC_ARG_ENABLE([spectrum],
316 [AS_HELP_STRING([--enable-spectrum],
317 [enable Spectrum visualisation (default is yes)])],
318 [use_spectrum=$enableval],
321 AC_ARG_ENABLE([goom],
322 [AS_HELP_STRING([--enable-goom],
323 [enable GOOM visualisation (default is no)])],
324 [use_goom=$enableval],
327 AC_ARG_ENABLE([rsxs],
328 [AS_HELP_STRING([--enable-rsxs],
329 [enable really slick X screensavers (default is yes)])],
330 [use_rsxs=$enableval],
333 AC_ARG_ENABLE([fishbmc],
334 [AS_HELP_STRING([--enable-fishbmc],
335 [enable FishBMC visualisation (default is yes)])],
336 [use_fishbmc=$enableval],
339 AC_ARG_ENABLE([projectm],
340 [AS_HELP_STRING([--enable-projectm],
341 [enable ProjectM visualisation (default is yes)])],
342 [use_projectm=$enableval],
346 [AS_HELP_STRING([--enable-x11],
347 [enable x11 (default is yes) 'Linux Only'])],
348 [use_x11=$enableval],
351 AC_ARG_ENABLE([ccache],
352 [AS_HELP_STRING([--enable-ccache],
353 [enable building with ccache feature (default is auto)])],
354 [use_ccache=$enableval],
357 AC_ARG_ENABLE([alsa],
358 [AS_HELP_STRING([--disable-alsa],
359 [disable ALSA support (only for linux/freebsd)])],
360 [use_alsa=$enableval],
363 AC_ARG_ENABLE([pulse],
364 [AS_HELP_STRING([--enable-pulse],
365 [enable PulseAudio support (default is no)])],
366 [use_pulse=$enableval],
370 [AS_HELP_STRING([--disable-ssh],
371 [disable SSH SFTP support (default is enabled)])],
372 [use_ssh=$enableval],
375 AC_ARG_ENABLE([rtmp],
376 [AS_HELP_STRING([--enable-rtmp],
377 [enable RTMP support via librtmp (default is auto)])],
378 [use_librtmp=$enableval],
381 AC_ARG_ENABLE([samba],
382 [AS_HELP_STRING([--disable-samba],
383 [disable SAMBA support (default is enabled)])],
384 [use_samba=$enableval],
388 [AS_HELP_STRING([--enable-nfs],
389 [enable NFS support via libnfs (default is auto)])],
390 [use_libnfs=$enableval],
393 AC_ARG_ENABLE([afpclient],
394 [AS_HELP_STRING([--enable-afpclient],
395 [enable AFP support via libafpclient (default is auto)])],
396 [use_libafpclient=$enableval],
397 [use_libafpclient=auto])
399 AC_ARG_ENABLE([airplay],
400 [AS_HELP_STRING([--enable-airplay],
401 [enable AirPlay support(default is auto)])],
402 [use_airplay=$enableval],
405 AC_ARG_ENABLE([airtunes],
406 [AS_HELP_STRING([--enable-airtunes],
407 [enable AirTunes support(default is auto)])],
408 [use_airtunes=$enableval],
411 AC_ARG_ENABLE([upnp],
412 [AS_HELP_STRING([--disable-upnp],
413 [disable UPnP support (default is enabled)])],
414 [use_upnp=$enableval],
417 AC_ARG_ENABLE([ffmpeg_libvorbis],
418 [AS_HELP_STRING([--enable-ffmpeg-libvorbis],
419 [enable FFmpeg vorbis encoding (default is no)])],
420 [use_ffmpeg_libvorbis=$enableval],
421 [use_ffmpeg_libvorbis=no])
423 AC_ARG_ENABLE([dvdcss],
424 [AS_HELP_STRING([--enable-dvdcss],
425 [enable DVDCSS support (default is yes)])],
426 [use_dvdcss=$enableval],
430 [AS_HELP_STRING([--enable-mid],
431 [enable MID support (default is no)])],
432 [use_mid=$enableval],
436 [AS_HELP_STRING([--disable-hal],
437 [disable HAL support (default is enabled if hal and hal-storage is found)])],
438 [use_hal=$enableval],
441 AC_ARG_ENABLE([avahi],
442 [AS_HELP_STRING([--disable-avahi],
443 [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
444 [use_avahi=$enableval],
447 AC_ARG_ENABLE([mdnsembedded],
448 [AS_HELP_STRING([--disable-mdnsembedded],
449 [disable mDNSEmbedded support (default is auto)])],
450 [use_mdnsembedded=$enableval],
451 [use_mdnsembedded=auto])
453 AC_ARG_ENABLE([non-free],
454 [AS_HELP_STRING([--disable-non-free],
455 [disable componentents with non-compliant licenses])],
456 [use_nonfree=$enableval],
459 AC_ARG_ENABLE([asap-codec],
460 [AS_HELP_STRING([--enable-asap-codec],
461 [enable ASAP ADPCM support])],
462 [use_asap=$enableval],
465 AC_ARG_ENABLE([mysql],
466 [AS_HELP_STRING([--disable-mysql],
468 [use_mysql=$enableval],
471 AC_ARG_ENABLE([webserver],
472 [AS_HELP_STRING([--disable-webserver],
473 [disable webserver])],
474 [use_webserver=$enableval],
477 AC_ARG_ENABLE([optical-drive],
478 [AS_HELP_STRING([--disable-optical-drive],
479 [disable optical drive])],
480 [use_optical_drive=$enableval],
481 [use_optical_drive=yes])
483 AC_ARG_ENABLE([libbluray],
484 [AS_HELP_STRING([--enable-libbluray],
485 [enable libbluray support])],
486 [use_libbluray=$enableval],
487 [use_libbluray=auto])
489 AC_ARG_ENABLE([texturepacker],
490 [AS_HELP_STRING([--enable-texturepacker],
491 [enable texturepacker support (default is yes)])],
492 [use_texturepacker=$enableval],
493 [use_texturepacker=auto])
495 AC_ARG_WITH([lirc-device],
496 [AS_HELP_STRING([--with-lirc-device=file],
497 [specify the default LIRC device (default is /dev/lircd)])],
498 [lirc_device=$withval],
499 [lirc_device=/dev/lircd])
500 AC_DEFINE_UNQUOTED([LIRC_DEVICE], ["$lirc_device"], [Default LIRC device])
502 AC_ARG_ENABLE([udev],
503 [AS_HELP_STRING([--enable-udev],
504 [enable udev support (default is auto)])],
505 [use_libudev=$enableval],
508 AC_ARG_ENABLE([libusb],
509 [AS_HELP_STRING([--enable-libusb],
510 [enable libusb support (default is auto)])],
511 [use_libusb=$enableval],
514 AC_ARG_ENABLE([libcec],
515 [AS_HELP_STRING([--enable-libcec],
516 [enable libcec support (default is auto)])],
517 [use_libcec=$enableval],
520 AC_ARG_ENABLE([libmp3lame],
521 [AS_HELP_STRING([--enable-libmp3lame],
522 [enable lame mp3 encoder support (default is auto)])],
523 [use_libmp3lame=$enableval],
524 [use_libmp3lame=auto])
526 AC_ARG_ENABLE([libvorbisenc],
527 [AS_HELP_STRING([--enable-libvorbisenc],
528 [enable vorbis encoder support (default is auto)])],
529 [use_libvorbisenc=$enableval],
530 [use_libvorbisenc=auto])
532 AC_ARG_ENABLE([libcap],
533 [AS_HELP_STRING([--enable-libcap],
534 [enable libcap support (default is auto)])],
535 [use_libcap=$enableval],
538 AC_ARG_ENABLE([player],
539 [AS_HELP_STRING([--enable-player],
540 [enable additional players from a list of comma separated names, (default is none, choices are amlplayer, omxplayer)])],
541 [add_players=$enableval],
544 AC_ARG_ENABLE([gtest],
545 [AS_HELP_STRING([--enable-gtest],
546 [configure Google Test Framework (default is no)])],
547 [configure_gtest=$enableval],
548 [configure_gtest=no])
550 AC_ARG_ENABLE([codec],
551 [AS_HELP_STRING([--enable-codec],
552 [enable additional codecs from a list of comma separated names, (default is none, choices are amcodec, libstagefright)])],
553 [add_codecs=$enableval],
556 ### External libraries options
557 AC_ARG_ENABLE([external-libraries],
558 [AS_HELP_STRING([--enable-external-libraries],
559 [enable use of all supported external libraries (default is no) 'Linux only'])],
560 [use_external_libraries=$enableval],
561 [use_external_libraries=no])
563 AC_ARG_ENABLE([external-ffmpeg],
564 [AS_HELP_STRING([--enable-external-ffmpeg],
565 [enable use of external ffmpeg libraries (default is no) 'Linux only'])],
566 [use_external_ffmpeg=$enableval],
567 [use_external_ffmpeg=$use_external_libraries])
569 AC_ARG_ENABLE([libav-compat],
570 [AS_HELP_STRING([--enable-libav-compat],
571 [build a wrapper around libav to provide the functions needed by XBMC. This is
572 *not* supported by XBMC developers and is provided only for convenience. (default is no) 'Linux only'])],
573 [use_libav_hacks=$enableval],
574 [use_libav_hacks=no])
576 ### End of external library options
578 if test "x$host_vendor" != "xapple"; then
579 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
580 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
583 # Checks for programs.
584 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
587 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
588 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
590 AX_PROG_CXX_FOR_BUILD
591 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
597 OBJDUMP="${OBJDUMP:-objdump}"
599 # ffmpeg needs the output of uname -s (e.x. linux, darwin) for the target_os
600 # there is no autoconf variable which will give
601 # the correct output format when doing cross compilation
602 # so we have to use our own var here
603 # defaults to the build side target_os
604 # and should be overridden for cross below (see android)
605 ffmpeg_target_os=$(tolower $(uname -s))
607 # host detection and setup
609 i*86*-android-linux-gnu*)
610 target_platform=target_android
614 ffmpeg_target_os=linux
627 ARCH="x86_64-freebsd"
643 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
644 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
645 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
646 PYTHON_NOVERSIONCHECK="no-check"
653 powerpc-apple-darwin*)
660 powerpc-*-linux-gnu*)
663 powerpc64-*-linux-gnu*)
664 ARCH="powerpc64-linux"
669 ffmpeg_target_os=linux
676 arm*-*linux-android*)
677 target_platform=target_android
681 ffmpeg_target_os=linux
691 AC_MSG_ERROR(unsupported host ($host))
695 check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
696 if test "x$check_sdl_arch" = "xi386" ; then
697 DARWIN_NATIVE_ARCH=-m32
698 elif test "x$check_sdl_arch" = "xx86_64" ; then
699 DARWIN_NATIVE_ARCH=-m64
701 AC_SUBST([DARWIN_NATIVE_ARCH])
703 if test "$target_platform" = "target_android" ; then
705 webserver_checkdepends=yes
706 CFLAGS="$CFLAGS -Wno-psabi"
707 CXXFLAGS="$CXXFLAGS -Wno-psabi"
708 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
711 case $use_platform in
713 target_platform=target_raspberry_pi
717 use_hardcoded_tables="yes"
720 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
721 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
724 ffmpeg_target_os=linux
728 XBMC_SETUP_ARCH_DEFINES()
731 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
732 if test "$GIT_REV" = ""; then
733 if test -f VERSION ; then
734 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
735 elif test "$HAVE_GIT" = "yes"; then
736 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
741 final_message="$final_message\n git Rev.:\t${GIT_REV}"
743 if test "$host_vendor" = "apple"; then
744 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
746 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
749 if test "$build_shared_lib" = "yes"; then
750 final_message="$final_message\n Shared lib\tYes"
751 AC_SUBST(USE_LIBXBMC,1)
755 # platform debug flags
756 if test "$use_debug" = "yes"; then
757 final_message="$final_message\n Debugging:\tYes"
758 if test "$use_profiling" = "yes"; then
759 final_message="$final_message\n Profiling:\tYes"
760 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
762 final_message="$final_message\n Profiling:\tNo"
763 DEBUG_FLAGS="-g -D_DEBUG -Wall"
766 final_message="$final_message\n Debugging:\tNo"
767 if test "$use_profiling" = "yes"; then
768 final_message="$final_message\n Profiling:\tYes"
769 DEBUG_FLAGS="-pg -DNDEBUG=1"
771 final_message="$final_message\n Profiling:\tNo"
772 DEBUG_FLAGS="-DNDEBUG=1"
775 CFLAGS="$CFLAGS $DEBUG_FLAGS"
776 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
779 if test "$use_optimizations" = "yes"; then
780 final_message="$final_message\n Optimization:\tYes"
781 if test "$target_platform" = "target_raspberry_pi"; then
785 CXXFLAGS="-O2 $CXXFLAGS"
789 final_message="$final_message\n Optimization:\tNo"
793 # platform specific flags
794 if echo "$ARCH" | grep -q "freebsd" ; then
795 LOCALBASE="${LOCALBASE:-/usr/local}"
796 CFLAGS="$CFLAGS -I$LOCALBASE/include"
797 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
798 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
799 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
800 FFMPEG_EXTRACFLAGS="-I$LOCALBASE/include"
802 if test "$host_vendor" = "apple" ; then
803 # standard xbmc paths
804 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
805 if test "$use_arch" != "arm"; then
806 LIBS="$LIBS -framework ApplicationServices"
807 LIBS="$LIBS -framework AudioUnit"
808 LIBS="$LIBS -framework AudioToolbox"
809 LIBS="$LIBS -framework Cocoa"
810 LIBS="$LIBS -framework CoreAudio"
811 LIBS="$LIBS -framework CoreVideo"
812 LIBS="$LIBS -framework CoreServices"
813 LIBS="$LIBS -framework CoreFoundation"
814 LIBS="$LIBS -framework DiskArbitration"
815 LIBS="$LIBS -framework IOKit"
816 LIBS="$LIBS -framework IOSurface"
817 LIBS="$LIBS -framework QuartzCore"
818 LIBS="$LIBS -framework SystemConfiguration"
820 USE_EXTERNAL_FFMPEG=1
821 elif test "$target_platform" = "target_raspberry_pi"; then
824 elif test "$use_arch" = "arm"; then
825 CFLAGS="$CFLAGS -mno-apcs-stack-check"
826 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
827 FFMPEG_EXTRACFLAGS=""
828 if test "$use_tegra" = "yes"; then
829 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
830 SAVE_CFLAGS="$CFLAGS"
831 CFLAGS="-mfpu=vfpv3-d16"
833 [AC_LANG_SOURCE([int foo;])],
834 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
835 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
836 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
838 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
839 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
842 if test "$use_neon" = "yes"; then
843 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
844 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
845 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
850 # Checks for library functions.
853 AC_FUNC_CLOSEDIR_VOID
854 AC_FUNC_ERROR_AT_LINE
856 AC_PROG_GCC_TRADITIONAL
858 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
862 # Boxee is apparently having compile problems
863 # if HAVE_REALLOC is defined. Sort this later.
865 AC_FUNC_SELECT_ARGTYPES
866 AC_FUNC_SETVBUF_REVERSED
874 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])
876 # Check for various sizes
877 AC_CHECK_SIZEOF([int])
878 AC_CHECK_SIZEOF([size_t])
880 # Check for intrinsics
881 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
882 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
883 [have_builtin_sync_add_and_fetch=yes],
884 [have_builtin_sync_add_and_fetch=no])
885 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
886 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
887 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
888 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
891 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
892 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
893 [have_builtin_sync_sub_and_fetch=yes],
894 [have_builtin_sync_sub_and_fetch=no])
895 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
896 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
897 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
898 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
901 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
902 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
903 [have_builtin_sync_val_compare_and_swap=yes],
904 [have_builtin_sync_val_compare_and_swap=no])
905 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
906 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
907 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
908 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
911 # Add top source directory for all builds so we can use config.h
912 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
914 # Check inotify availability
915 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
917 # Checks for boost headers using CXX instead of CC
919 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
923 if test -z "$PYTHON_NOVERSIONCHECK"; then
924 AX_PYTHON_DEVEL([>= 2.4])
925 PYTHON_VERSION=$ac_python_version
928 if test -z "$PYTHON_VERSION"; then
929 AC_MSG_ERROR([Can't find a Python version.])
931 LIBS="$LIBS $PYTHON_LDFLAGS"
932 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
935 # Checks for platforms libraries.
936 if test "$use_gles" = "yes"; then
938 # GLES overwrites GL if both set to yes.
939 if test "$host_vendor" = "apple" ; then
940 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
941 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
942 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
944 if test "$target_platform" = "target_raspberry_pi"; then
945 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
946 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
947 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
948 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
950 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
951 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
955 if test "$use_gl" = "yes"; then
956 if test "$host_vendor" = "apple" ; then
957 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
958 LIBS="$LIBS -framework OpenGL"
959 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
960 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
961 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
962 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
963 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
965 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
966 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
967 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
970 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
971 AC_CHECK_LIB([SDL_gfx],[main])
975 # platform common libraries
976 if test "$use_mysql" = "yes"; then
977 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
978 if test "x$MYSQL_CONFIG" != "xno"; then
979 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
980 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
981 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
982 LIBS="$LIBS $MYSQL_LIBS"
985 AC_MSG_ERROR($missing_program)
988 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
989 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
990 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
991 AC_INCLUDES_DEFAULT()
992 [#include <mpeg2dec/mpeg2.h>])
993 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
994 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
995 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
996 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
997 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
998 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
999 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1000 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1002 # we need to check for the header because if it exists we set the openssl
1003 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1004 # in MT manner correctly.
1005 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1006 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1007 if test "$gcrypt_headers_available" = "yes"; then
1008 # if we have the headers then we must have the lib
1009 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1010 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1011 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1014 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1015 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1016 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1017 if echo "$ARCH" | grep -q freebsd; then
1018 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1019 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1020 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1021 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1023 if test "$target_platform" != "target_android" ; then
1024 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1025 AC_CHECK_LIB([pthread], [pthread_setname_np],
1026 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1027 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1030 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1031 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1032 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1033 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1034 if test "$use_mysql" = "yes"; then
1035 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1037 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1038 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1039 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1040 if test "$target_platform" = "target_android" ; then
1041 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1042 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1043 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1045 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1046 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1047 AC_MSG_ERROR($missing_library))
1048 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1049 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1050 AC_MSG_ERROR($missing_library))
1051 PKG_CHECK_MODULES([PNG], [libpng],
1052 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1053 AC_MSG_ERROR($missing_library))
1054 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1055 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1056 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1057 AC_MSG_ERROR($missing_library))
1058 PKG_CHECK_MODULES([PCRE], [libpcre],
1059 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1060 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1061 AC_MSG_ERROR($missing_library))
1062 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1063 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1064 AC_MSG_ERROR($missing_library))
1065 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1066 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1067 AC_MSG_ERROR($missing_library))
1068 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1069 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1070 AC_MSG_ERROR($missing_library))
1072 if test "$use_optical_drive" = "yes"; then
1073 PKG_CHECK_MODULES([CDIO], [libcdio],
1074 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1075 AC_MSG_ERROR($missing_library))
1078 if test "$target_platform" = "target_android" ; then
1079 PKG_CHECK_MODULES([ZIP], [libzip],
1080 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1081 AC_MSG_ERROR($missing_library))
1084 # check for libbluray
1085 AS_CASE([x$use_libbluray],
1087 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1090 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1093 AS_CASE([x$use_libbluray],
1095 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1096 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1097 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1098 AC_SUBST([HAVE_LIBBLURAY], 1)
1099 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1100 AC_CHECK_DECL([BD_EVENT_IDLE],
1101 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1102 [[#include <libbluray/bluray.h>]]))
1104 AC_SUBST([HAVE_LIBBLURAY], 0)
1108 #Check to see if libs are needed for functions that are often built-in to libc
1109 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1110 AC_SEARCH_LIBS([dlopen],dl)
1111 AC_SEARCH_LIBS([clock_gettime],rt)
1112 AC_SEARCH_LIBS([dn_expand], resolv)
1113 AC_SEARCH_LIBS([_dn_expand], resolv)
1114 AC_SEARCH_LIBS([__dn_expand],resolv)
1116 # platform dependent libraries
1117 if test "$host_vendor" = "apple" ; then
1118 if test "$use_arch" != "arm"; then
1119 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1120 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1123 if test "$target_platform" != "target_android" ; then
1124 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1126 if test "x$use_alsa" != "xno"; then
1127 PKG_CHECK_MODULES([ALSA], [alsa],
1128 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1129 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1131 PKG_CHECK_MODULES([DBUS], [dbus-1],
1132 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1133 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1134 AC_MSG_NOTICE($missing_library); use_dbus=no)
1135 if test "x$use_sdl" != "xno"; then
1136 PKG_CHECK_MODULES([SDL], [sdl],
1137 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1138 AC_MSG_ERROR($missing_library))
1139 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1140 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1144 XB_FIND_SONAME([MAD], [mad])
1145 XB_FIND_SONAME([OGG], [ogg])
1146 XB_FIND_SONAME([CURL], [curl])
1147 XB_FIND_SONAME([FLAC], [FLAC])
1148 XB_FIND_SONAME([VORBIS], [vorbis])
1149 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1150 XB_FIND_SONAME([MODPLUG], [modplug])
1151 XB_FIND_SONAME([ASS], [ass])
1152 XB_FIND_SONAME([MPEG2], [mpeg2])
1155 if test "x$use_libmp3lame" != "xno"; then
1156 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1157 if test "x$use_libmp3lame" != "xno"; then
1158 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1161 AS_CASE([x$use_libmp3lame],
1163 AC_SUBST([HAVE_LIBMP3LAME], 0)
1166 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1167 AC_SUBST([HAVE_LIBMP3LAME], 1)
1170 if test "x$use_libvorbisenc" != "xno"; then
1171 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1172 if test "x$use_libvorbisenc" != "xno"; then
1173 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1176 AS_CASE([x$use_libvorbisenc],
1178 AC_SUBST([HAVE_LIBVORBISENC], 0)
1180 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1181 AC_SUBST([HAVE_LIBVORBISENC], 1)
1186 if test "$use_webserver" = "yes"; then
1187 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1191 if test "$use_optical_drive" = "yes"; then
1192 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1196 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1197 PKG_CHECK_MODULES([ALSA], [alsa],
1198 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1199 AC_MSG_ERROR($missing_library))
1200 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1203 AC_MSG_RESULT($alsa_disabled)
1207 if test "x$use_pulse" != "xno"; then
1208 if test "$host_vendor" = "apple" ; then
1209 if test "x$use_pulse" = "xyes"; then
1210 AC_MSG_ERROR($pulse_disabled)
1213 AC_MSG_RESULT($pulse_disabled)
1217 AC_CHECK_LIB([pulse],[main],,pulse_found="no")
1218 AC_CHECK_LIB([pulse-simple],[main],,pulse_found="no")
1220 if test "x$pulse_found" != "xno"; then
1222 elif test "x$use_pulse" = "xyes"; then
1223 AC_MSG_ERROR($pulse_not_found)
1227 AC_MSG_RESULT($pulse_not_found)
1231 AC_MSG_RESULT($pulse_disabled)
1236 if test "$host_vendor" = "apple" ; then
1238 AC_MSG_RESULT($hal_disabled)
1240 if test "$use_hal" = "yes"; then
1241 PKG_CHECK_MODULES([HAL], [hal],
1242 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1243 use_hal=no;AC_MSG_RESULT($hal_not_found))
1244 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1245 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1246 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1248 AC_MSG_RESULT($hal_disabled)
1250 if test "$use_hal" = "yes"; then
1251 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1256 if test "$host_vendor" = "apple" ; then
1258 AC_MSG_RESULT($avahi_disabled)
1260 if test "$use_avahi" = "yes"; then
1261 AC_CHECK_LIB([avahi-common], [main],,
1262 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1263 if test "$use_avahi" = "yes"; then
1264 #either both libs or none
1265 AC_CHECK_LIB([avahi-client], [main],,
1266 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1269 AC_MSG_RESULT($avahi_disabled)
1274 if test "$use_mdnsembedded" != "no"; then
1275 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1276 [if test "$use_mdnsembedded" = "yes"; then
1277 AC_MSG_ERROR($mdnsembedded_not_found)
1279 elif test "$use_mdnsembedded" != "no"; then
1280 AC_MSG_NOTICE($mdnsembedded_not_found)
1281 use_mdnsembedded="no"
1285 if test $use_mdnsembedded != "no"; then
1289 AC_MSG_RESULT($mdnsembedded_disabled)
1292 AC_SUBST(USE_MDNSEMBEDDED)
1295 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1296 AC_MSG_NOTICE($x11_enabled)
1297 PKG_CHECK_MODULES([X11], [x11],
1298 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1299 AC_MSG_ERROR($missing_library))
1300 PKG_CHECK_MODULES([XEXT], [xext],
1301 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1302 AC_MSG_ERROR($missing_library))
1303 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1305 AC_MSG_RESULT($x11_disabled)
1309 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1311 AC_MSG_RESULT($xrandr_disabled)
1313 if test "$use_xrandr" = "yes" ; then
1314 AC_CHECK_LIB([Xrandr], [main],,
1315 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1317 AC_MSG_RESULT($xrandr_disabled)
1322 if test "$use_waveform" = "yes"; then
1323 AC_MSG_NOTICE($waveform_enabled)
1326 AC_MSG_NOTICE($waveform_disabled)
1331 if test "$use_spectrum" = "yes"; then
1332 AC_MSG_NOTICE($spectrum_enabled)
1335 AC_MSG_NOTICE($spectrum_disabled)
1340 if test "$host_vendor" = "apple" ; then
1341 AC_MSG_NOTICE($goom_disabled)
1344 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1345 AC_MSG_NOTICE($goom_enabled)
1348 AC_MSG_NOTICE($goom_disabled)
1354 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1355 AC_MSG_NOTICE($rsxs_disabled)
1358 AC_MSG_NOTICE($rsxs_enabled)
1360 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1361 if test "$host_vendor" != "apple" ; then
1362 PKG_CHECK_MODULES([XT], [xt],
1363 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1364 AC_MSG_ERROR($missing_library))
1365 PKG_CHECK_MODULES([XMU], [xmu],
1366 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1367 AC_MSG_ERROR($missing_library))
1372 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1373 AC_MSG_NOTICE($fishbmc_disabled)
1377 AC_MSG_NOTICE($fishbmc_enabled)
1382 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1383 AC_MSG_NOTICE($projectm_disabled)
1387 AC_MSG_NOTICE($projectm_enabled)
1393 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1394 use_skin_touched=yes
1396 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1402 if test "x$use_ssh" = "xno"; then
1403 AC_MSG_NOTICE($ssh_disabled)
1406 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1407 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1411 if test "$use_librtmp" != "no"; then
1412 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1413 [if test "$use_librtmp" = "yes"; then
1414 AC_MSG_ERROR($librtmp_not_found)
1415 elif test "$use_librtmp" != "no"; then
1416 AC_MSG_NOTICE($librtmp_not_found)
1420 if test "$use_librtmp" != "no"; then
1421 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1423 if test "$use_librtmp" != "no"; then
1424 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1427 AC_MSG_NOTICE($librtmp_disabled)
1431 if test "x$use_samba" != "xno"; then
1432 AC_CHECK_LIB([smbclient], [main],,
1433 use_samba=no;AC_MSG_ERROR($missing_library))
1436 AC_MSG_RESULT($samba_disabled)
1440 if test "x$use_samba" != "xno"; then
1441 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1446 if test "$use_libnfs" != "no"; then
1447 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1448 [if test "$use_libnfs" = "yes"; then
1449 AC_MSG_ERROR($libnfs_not_found)
1451 elif test "$use_libnfs" != "no"; then
1452 AC_MSG_NOTICE($libnfs_not_found)
1457 if test "$use_libnfs" != "no"; then
1458 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1460 if test "$use_libnfs" != "no"; then
1461 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1466 AC_MSG_NOTICE($libnfs_disabled)
1471 if test "x$use_libafpclient" != "xno"; then
1472 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1473 [if test "x$use_libafpclient" = "xyes"; then
1474 AC_MSG_ERROR($libafpclient_not_found)
1475 elif test "x$use_libafpclient" != "xno"; then
1476 AC_MSG_NOTICE($libafpclient_not_found)
1477 use_libafpclient="no"
1480 if test "x$use_libafpclient" != "xno"; then
1481 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1482 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1486 AC_MSG_NOTICE($libafpclient_disabled)
1489 # libplist for airplay feature
1491 if test "$use_airplay" != "no"; then
1492 AC_CHECK_HEADER([plist/plist.h],,
1493 [if test "$use_airplay" = "yes"; then
1494 AC_MSG_ERROR($libplist_not_found)
1495 elif test "$use_airplay" != "no"; then
1496 AC_MSG_NOTICE($libplist_not_found)
1501 if test "$use_airplay" != "no"; then
1502 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1504 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1508 # libshairplay for AirTunes (prefered lib)
1510 if test "x$use_airtunes" != "xno"; then
1511 AC_CHECK_HEADERS([shairplay/raop.h],,
1512 [if test "x$use_airtunes" = "xyes"; then
1513 AC_MSG_ERROR($libshairplay_not_found)
1514 elif test "x$use_airtunes" != "xno"; then
1515 AC_MSG_NOTICE($libshairplay_not_found)
1520 if test "x$use_airtunes" != "xno"; then
1521 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [use_airtunes])
1524 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1525 [[#include <shairplay/raop.h>]])
1526 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1529 #libshairport - as a fallback for AirTunes
1530 if test "x$USE_AIRTUNES" == "x0"; then
1531 AC_CHECK_HEADERS([shairport/shairport.h],,
1532 [if test "x$use_airtunes" = "xyes"; then
1533 AC_MSG_ERROR($libshairport_not_found)
1534 elif test "x$use_airtunes" != "xno"; then
1535 AC_MSG_NOTICE($libshairport_not_found)
1540 if test "x$use_airtunes" != "xno"; then
1541 XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
1543 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1544 [[#include <shairport/shairport.h>]])
1545 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1552 if test "$host_vendor" = "apple" ; then
1554 AC_MSG_NOTICE($libudev_disabled)
1556 if test "$use_libudev" = "auto"; then
1557 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1558 elif test "$use_libudev" = "yes" ; then
1559 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1561 AC_MSG_NOTICE($libudev_disabled)
1564 if test "x$use_libudev" != "xno"; then
1565 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1566 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1573 # if libudev is available, we don't need libusb
1574 if test "x$use_libudev" != "xno"; then
1576 AC_MSG_NOTICE($libusb_disabled_udev_found)
1578 if test "$host_vendor" = "apple" ; then
1580 AC_MSG_NOTICE($libusb_disabled)
1582 if echo "$ARCH" | grep -q freebsd ; then
1583 AC_CHECK_LIB([usb],[main],
1584 [use_libusb="yes";USB_LIBS="-lusb"],
1585 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1586 elif test "$use_libusb" = "auto"; then
1587 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1588 elif test "$use_libusb" = "yes"; then
1589 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1591 AC_MSG_NOTICE($libusb_disabled)
1594 if test "x$use_libusb" != "xno"; then
1595 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1596 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1603 if test "x$use_libcec" != "xno"; then
1604 # libcec is dyloaded, so we need to check for its headers and link any depends.
1605 if test "x$use_libcec" != "xno"; then
1606 if test "x$use_libcec" != "xauto"; then
1607 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1609 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1612 if test "x$use_libcec" != "xno"; then
1613 INCLUDES="$INCLUDES $CEC_CFLAGS"
1614 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1615 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1616 AC_MSG_NOTICE($libcec_enabled)
1619 AC_MSG_NOTICE($libcec_disabled)
1624 AC_MSG_NOTICE($libcec_disabled)
1628 if test "$use_libcap" != "no"; then
1629 AC_CHECK_HEADERS([sys/capability.h],,
1630 [if test "$use_libcap" = "yes"; then
1631 AC_MSG_ERROR($libcap_not_found)
1632 elif test "$use_libcap" != "no"; then
1633 AC_MSG_NOTICE($libcap_not_found)
1637 if test "$use_libcap" != "no"; then
1638 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1640 if test "$use_libcap" != "no"; then
1641 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1644 AC_MSG_NOTICE($libcap_disabled)
1647 ### External libraries checks
1649 # Hacks for supporting libav
1652 if test "$use_libav_hacks" = "yes"; then
1653 export PKG_CONFIG_PATH="${srcdir}/lib/xbmc-libav-hacks/pkgconfig/:$PKG_CONFIG_PATH"
1655 AC_DEFINE([USE_LIBAV_HACKS], [1], [Whether to use libav compatibility hacks.])
1659 if test "$use_external_ffmpeg" = "yes"; then
1660 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale libswresample"
1662 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1663 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1664 AC_MSG_ERROR($missing_library))
1666 # in case the headers are in a custom directory
1667 SAVE_CPPFLAGS="$CPPFLAGS"
1668 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1670 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1671 [AC_MSG_ERROR($missing_headers)])
1673 AC_MSG_NOTICE($external_ffmpeg_enabled)
1674 USE_EXTERNAL_FFMPEG=1
1675 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1677 CPPFLAGS="$SAVE_CPPFLAGS"
1679 AC_MSG_NOTICE($external_ffmpeg_disabled)
1680 USE_EXTERNAL_FFMPEG=0
1683 echo "Checking for SWIG installation"
1684 AC_PATH_PROG(SWIG_EXE, swig, "none")
1685 if test "$SWIG_EXE" = "none"; then
1686 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1687 if test "$SWIG20_EXE" != "none" ; then
1688 SWIG_EXE=$SWIG20_EXE
1691 if test "$SWIG_EXE" = "none"; then
1692 AC_MSG_ERROR($missing_program)
1694 final_message="$final_message\n SWIG Available:\tYes"
1696 echo "Checking for a jre installation"
1697 AC_PATH_PROG(JAVA_EXE, java, "none")
1698 if test "$JAVA_EXE" = "none"; then
1699 AC_MSG_ERROR($missing_program)
1701 final_message="$final_message\n JRE Available:\tYes"
1703 echo "Checking for doxygen installation"
1704 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1705 if test "$DOXYGEN_EXE" = "none"; then
1706 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1707 final_message="$final_message\n Doxygen Available:\tNo"
1710 final_message="$final_message\n Doxygen Available:\tYes"
1715 if test "x$use_vdpau" != "xno"; then
1716 if test "$host_vendor" = "apple" ; then
1717 if test "x$use_vdpau" = "xyes"; then
1718 AC_MSG_ERROR([VDPAU not supported on this platform])
1721 AC_MSG_NOTICE($vdpau_disabled)
1726 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1727 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1728 [if test "x$use_vdpau" = "xyes"; then
1730 AC_MSG_ERROR([$vdpau_not_found])
1734 AC_MSG_RESULT($vdpau_not_found)
1739 AC_MSG_NOTICE($vdpau_disabled)
1743 if test "x$use_vaapi" != "xno"; then
1744 if test "$host_vendor" = "apple" ; then
1745 if test "x$use_vaapi" = "xyes"; then
1746 AC_MSG_ERROR([VAAPI not supported on this platform])
1749 AC_MSG_NOTICE($vaapi_disabled)
1753 initial_val=$use_vaapi
1754 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1755 if test "x$use_vaapi" != "xno"; then
1756 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1759 if test "x$use_vaapi" = "xno"; then
1760 if test "x$initial_val" = "xyes"; then
1761 AC_MSG_ERROR($vaapi_not_found)
1763 AC_MSG_RESULT($vaapi_not_found)
1767 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1772 AC_MSG_NOTICE($vaapi_disabled)
1777 if test "x$use_crystalhd" != "xno"; then
1778 SAVE_CFLAGS="$CFLAGS"
1779 CFLAGS="-D__LINUX_USER__"
1780 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1781 [ if test "x$use_crystalhd" = "xyes"; then
1782 AC_MSG_ERROR($crystalhd_not_found)
1785 AC_MSG_RESULT($crystalhd_not_found)
1789 CFLAGS="$SAVE_CFLAGS"
1790 if test "$host_vendor" != "apple"; then
1791 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1793 if test "x$use_crystalhd" != "xno"; then
1794 SAVE_CFLAGS="$CFLAGS"
1795 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1796 # check for new crystalhd lib
1798 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1799 #include <libcrystalhd/bc_dts_defs.h>
1800 PBC_INFO_CRYSTAL bCrystalInfo;])],
1801 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1802 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1803 CFLAGS="$SAVE_CFLAGS"
1807 AC_MSG_NOTICE($crystalhd_disabled)
1812 if test "x$use_vtbdecoder" != "xno"; then
1813 if test "$host_vendor" = "apple" ; then
1814 HAVE_VIDEOTOOLBOXDECODER=1
1815 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1816 AC_MSG_NOTICE($vtbdecoder_enabled)
1818 if test "x$use_vtbdecoder" = "xyes"; then
1819 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1822 AC_MSG_NOTICE($vtbdecoder_disabled)
1826 AC_MSG_NOTICE($vtbdecoder_disabled)
1830 if test "$host_vendor" = "apple" ; then
1833 AC_MSG_NOTICE($openmax_disabled)
1834 elif test "$target_platform" = "target_raspberry_pi"; then
1837 AC_MSG_NOTICE($openmax_disabled)
1839 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1840 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1841 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1842 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1843 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1844 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1845 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1846 AC_MSG_ERROR($openmax_not_found))
1848 AC_MSG_NOTICE($openmax_disabled)
1854 # yajl version check (yajl_version.h was added in yajl 2.0)
1855 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1856 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1859 # additional internal players
1860 case $add_players in
1862 AC_CHECK_HEADER([amplayer/player_error.h],, AC_MSG_ERROR($missing_headers))
1863 XB_ADD_PLAYER([AMLPLAYER], [amlplayer])
1866 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1870 # additional internal codecs
1873 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
1874 XB_ADD_CODEC([LIBAMCODEC], [amcodec])
1877 LIBS+="-L${prefix}/opt/android-libs -lstdc++ -lutils -lcutils -lstagefright -lbinder -lui -lgui"
1878 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright])
1883 # platform specific bin utilities
1884 if test "$build_vendor" != "apple" ; then
1885 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1886 if test "$HAVE_GAWK" = "no" ; then
1887 AC_MSG_ERROR($missing_program)
1891 if test "$use_arch" != "arm" ; then
1892 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1893 if test "$HAVE_CMAKE" = "no" ; then
1894 AC_MSG_ERROR($missing_program)
1898 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1899 if test "$HAVE_GPERF" = "no" ; then
1900 AC_MSG_ERROR($missing_program)
1903 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1904 if test "$HAVE_UNZIP" = "no" ; then
1905 AC_MSG_ERROR($missing_program)
1908 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
1909 if test "$HAVE_ZIP" = "no" ; then
1910 AC_MSG_ERROR($missing_program)
1913 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
1914 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
1915 if test "$HAVE_NASM" = "no" ; then
1916 AC_MSG_ERROR($missing_program)
1920 # Checks for header files.
1924 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
1925 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
1926 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
1927 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
1928 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
1930 # Checks for typedefs, structures, and compiler characteristics.
1946 AC_CHECK_MEMBERS([struct stat.st_rdev])
1955 if test "$cross_compiling" = "yes"; then
1956 final_message="$final_message\n Crosscomp.:\tYes"
1957 if [[ -d "$NATIVE_ROOT" ]]; then
1958 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
1959 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
1960 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
1961 if test "$host_vendor" != "apple" ; then
1962 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
1964 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
1967 final_message="$final_message\n Crosscomp.:\tNo"
1970 final_message="$final_message\n target ARCH:\t$use_arch"
1971 final_message="$final_message\n target CPU:\t$use_cpu"
1973 if test "$use_gles" = "yes"; then
1974 final_message="$final_message\n OpenGLES:\tYes"
1979 if test "$use_gl" = "yes"; then
1980 final_message="$final_message\n OpenGL:\tYes"
1983 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
1984 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
1989 if test "$use_alsa" = "yes"; then
1991 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
1992 final_message="$final_message\n ALSA:\t\tYes"
1995 final_message="$final_message\n ALSA:\t\tNo"
1998 if test "$use_dbus" = "yes"; then
1999 final_message="$final_message\n DBUS:\t\tYes"
2001 final_message="$final_message\n DBUS:\t\tNo"
2004 if test "x$use_vdpau" != "xno"; then
2005 final_message="$final_message\n VDPAU:\tYes"
2007 final_message="$final_message\n VDPAU:\tNo"
2010 if test "x$use_vaapi" != "xno"; then
2011 final_message="$final_message\n VAAPI:\tYes"
2013 final_message="$final_message\n VAAPI:\tNo"
2016 if test "x$use_crystalhd" != "xno"; then
2017 final_message="$final_message\n CrystalHD:\tYes"
2019 final_message="$final_message\n CrystalHD:\tNo"
2022 if test "x$use_vtbdecoder" != "xno"; then
2023 final_message="$final_message\n VTBDecoder:\tYes"
2025 final_message="$final_message\n VTBDecoder:\tNo"
2028 if test "$use_openmax" != "no"; then
2029 final_message="$final_message\n OpenMax:\tYes"
2031 final_message="$final_message\n OpenMax:\tNo"
2034 if test "$use_joystick" = "yes"; then
2035 final_message="$final_message\n Joystick:\tYes"
2036 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2038 final_message="$final_message\n Joystick:\tNo"
2041 if test "$use_xrandr" = "yes"; then
2042 final_message="$final_message\n XRandR:\tYes"
2045 final_message="$final_message\n XRandR:\tNo"
2049 if test "$use_waveform" = "yes"; then
2050 final_message="$final_message\n Waveform:\tYes"
2052 final_message="$final_message\n Waveform:\tNo"
2055 if test "$use_spectrum" = "yes"; then
2056 final_message="$final_message\n Spectrum:\tYes"
2058 final_message="$final_message\n Spectrum:\tNo"
2061 if test "$use_goom" = "yes"; then
2062 final_message="$final_message\n GOOM:\t\tYes"
2064 final_message="$final_message\n GOOM:\t\tNo"
2067 if test "$use_rsxs" = "yes"; then
2068 final_message="$final_message\n RSXS:\t\tYes"
2070 final_message="$final_message\n RSXS:\t\tNo"
2073 if test "$use_fishbmc" = "yes"; then
2074 final_message="$final_message\n FishBMC:\tYes"
2076 final_message="$final_message\n FishBMC:\tNo"
2079 if test "$use_projectm" = "yes"; then
2080 final_message="$final_message\n ProjectM:\tYes"
2082 final_message="$final_message\n ProjectM:\tNo"
2085 if test "$use_skin_touched" = "yes"; then
2086 final_message="$final_message\n Skin Touched:\tYes"
2088 final_message="$final_message\n Skin Touched:\tNo"
2091 if test "$use_x11" = "yes"; then
2092 final_message="$final_message\n X11:\t\tYes"
2094 final_message="$final_message\n X11:\t\tNo"
2097 if test "$use_libbluray" = "yes"; then
2098 final_message="$final_message\n Bluray:\tYes"
2100 final_message="$final_message\n Bluray:\tNo"
2103 if test "x$use_texturepacker" != "xno"; then
2104 final_message="$final_message\n TexturePacker:Yes"
2107 final_message="$final_message\n TexturePacker:No"
2111 if test "$use_mid" = "yes"; then
2112 final_message="$final_message\n MID Support:\tYes"
2113 SDL_DEFINES="$SDL_DEFINES -DMID"
2115 final_message="$final_message\n MID Support:\tNo"
2120 if test "x$use_ccache" != "xno"; then
2121 AC_PATH_PROG(CCACHE,ccache,none)
2122 if test "$ac_cv_path_CCACHE" = "none"; then
2123 if test "x$use_ccache" = "xyes"; then
2124 AC_MSG_ERROR([ccache not found.]);
2126 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2127 final_message="$final_message\n ccache:\tNo"
2130 CC="$ac_cv_path_CCACHE $CC"
2131 CXX="$ac_cv_path_CCACHE $CXX"
2132 AC_MSG_NOTICE(enabling ccache)
2133 final_message="$final_message\n ccache:\tYes"
2136 final_message="$final_message\n ccache:\tNo"
2139 if test "$use_alsa" = "yes"; then
2140 final_message="$final_message\n ALSA Support:\tYes"
2142 final_message="$final_message\n ALSA Support:\tNo"
2145 if test "x$use_pulse" != "xno"; then
2146 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2147 final_message="$final_message\n PulseAudio:\tYes"
2149 XBMC_STANDALONE_SH_PULSE=/dev/null
2150 final_message="$final_message\n PulseAudio:\tNo"
2153 if test "$use_hal" = "yes"; then
2154 final_message="$final_message\n HAL Support:\tYes"
2156 final_message="$final_message\n HAL Support:\tNo"
2160 if test "$use_dvdcss" = "yes"; then
2161 AC_MSG_NOTICE($dvdcss_enabled)
2162 final_message="$final_message\n DVDCSS:\tYes"
2164 SKIP_CONFIG_DVDCSS=0
2165 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2167 AC_MSG_NOTICE($dvdcss_disabled)
2168 final_message="$final_message\n DVDCSS:\tNo"
2170 SKIP_CONFIG_DVDCSS=1
2171 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2173 if test "$host_vendor" = "apple"; then
2174 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2177 # Google Test Framework
2178 if test "$configure_gtest" = "yes"; then
2179 AC_MSG_NOTICE($gtest_enabled)
2180 final_message="$final_message\n Google Test Framework Configured:\tYes"
2184 AC_MSG_NOTICE($gtest_disabled)
2185 final_message="$final_message\n Google Test Framework Configured:\tNo"
2190 if test "$use_avahi" = "yes"; then
2191 final_message="$final_message\n Avahi:\tYes"
2193 final_message="$final_message\n Avahi:\tNo"
2196 if test "$use_mdnsembedded" != "no"; then
2197 final_message="$final_message\n mDNSEmbedded:\tYes"
2199 final_message="$final_message\n mDNSEmbedded:\tNo"
2202 if test "$use_nonfree" = "yes"; then
2203 final_message="$final_message\n Non-free:\tYes"
2205 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2208 final_message="$final_message\n Non-free:\tNo"
2211 if test "$use_asap" = "yes"; then
2212 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2213 if test "$HAVE_GDC" = "no"; then
2214 AC_MSG_ERROR($missing_program);
2216 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2217 if test "$HAVE_FPC" = "no"; then
2218 AC_MSG_ERROR($missing_program);
2221 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2222 final_message="$final_message\n ASAP Codec:\tYes"
2225 final_message="$final_message\n ASAP Codec:\tNo"
2228 if test "$use_mysql" = "yes"; then
2229 final_message="$final_message\n MySQL:\tYes"
2232 final_message="$final_message\n MySQL:\tNo"
2235 if test "$use_webserver" = "yes"; then
2236 final_message="$final_message\n Webserver:\tYes"
2239 final_message="$final_message\n Webserver:\tNo"
2243 if test "$use_libssh" != "no"; then
2244 final_message="$final_message\n libssh support:\tYes"
2246 final_message="$final_message\n libssh support:\tNo"
2249 if test "$use_librtmp" != "no"; then
2250 final_message="$final_message\n libRTMP support:\tYes"
2252 final_message="$final_message\n libRTMP support:\tNo"
2255 if test "x$use_samba" != "xno"; then
2256 final_message="$final_message\n libsmbclient support:\tYes"
2258 final_message="$final_message\n libsmbclient support:\tNo"
2261 if test "$use_libnfs" != "no"; then
2262 final_message="$final_message\n libnfs client support:Yes"
2264 final_message="$final_message\n libnfs client support:No"
2267 if test "x$use_libafpclient" != "xno"; then
2268 final_message="$final_message\n libafpclient support:\tYes"
2270 final_message="$final_message\n libafpclient support:\tNo"
2273 if test "$use_airplay" != "no"; then
2274 final_message="$final_message\n AirPlay support:\tYes"
2276 final_message="$final_message\n AirPLay support:\tNo"
2279 if test "x$use_airtunes" != "xno"; then
2280 if test "x$USE_LIBSHAIRPORT" == "x1"; then
2281 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2283 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2286 final_message="$final_message\n AirTunes support:\tNo"
2289 if test "x$use_upnp" != "xno"; then
2290 final_message="$final_message\n UPnP support:\t\tYes"
2292 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2295 final_message="$final_message\n UPnP support:\t\tNo"
2298 if test "$use_optical_drive" = "yes"; then
2299 final_message="$final_message\n Optical drive:\tYes"
2301 final_message="$final_message\n Optical drive:\tNo"
2304 if test "x$use_libudev" != "xno"; then
2305 final_message="$final_message\n libudev support:\tYes"
2307 final_message="$final_message\n libudev support:\tNo"
2310 if test "x$use_libusb" != "xno"; then
2311 final_message="$final_message\n libusb support:\tYes"
2313 final_message="$final_message\n libusb support:\tNo"
2316 if test "x$use_libcec" != "xno"; then
2317 final_message="$final_message\n libcec support:\tYes"
2319 final_message="$final_message\n libcec support:\tNo"
2322 if test "x$use_libmp3lame" != "xno"; then
2323 final_message="$final_message\n libmp3lame support:\tYes"
2325 final_message="$final_message\n libmp3lame support:\tNo"
2328 if test "x$use_libvorbisenc" != "xno"; then
2329 final_message="$final_message\n libvorbisenc support:\tYes"
2331 final_message="$final_message\n libvorbisenc support:\tNo"
2334 if test "x$use_libcap" != "xno"; then
2335 final_message="$final_message\n libcap support:\tYes"
2337 final_message="$final_message\n libcap support:\tNo"
2340 if test "x$add_players" != "xno"; then
2341 final_message="$final_message\n additional players:\tYes"
2343 final_message="$final_message\n additional players:\tNo"
2346 ### External libraries messages
2348 if test "$use_external_ffmpeg" = "yes"; then
2349 final_message="$final_message\n External FFmpeg:\tYes"
2351 final_message="$final_message\n External FFmpeg:\tNo"
2354 if test "$host_vendor" = "apple" ; then
2355 # built internal but referenced as external, we link directly to them.
2356 # this MUST be the last thing before OUTPUT_FILES as they do not
2357 # exist until after we build FFMpeg.
2358 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2359 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2360 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2361 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2362 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2363 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2364 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2368 DISABLE_PVR_ADDON_CONFIG=1
2369 if [[ -f "pvr-addons/Makefile.am" ]]; then
2370 final_message="$final_message\n PVR add-ons:\t\tYes"
2372 DISABLE_PVR_ADDON_CONFIG=0
2374 final_message="$final_message\n PVR add-ons:\t\tNo"
2377 OUTPUT_FILES="Makefile \
2379 addons/skin.confluence/media/Makefile \
2381 xbmc/cdrip/Makefile \
2382 xbmc/cores/Makefile \
2383 xbmc/cores/VideoRenderers/Makefile \
2384 xbmc/cores/dvdplayer/Makefile \
2386 lib/libdvd/Makefile \
2387 xbmc/cores/DllLoader/Makefile \
2388 xbmc/cores/DllLoader/exports/Makefile \
2389 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2390 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2391 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2392 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2393 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2394 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2395 xbmc/cores/AudioEngine/Makefile \
2396 xbmc/cores/paplayer/Makefile \
2397 xbmc/cores/amlplayer/Makefile \
2398 xbmc/cores/omxplayer/Makefile \
2399 lib/timidity/Makefile \
2400 lib/xbadpcm/Makefile \
2402 lib/nosefart/Makefile \
2403 lib/libsidplay2/Makefile \
2404 lib/vgmstream/Makefile \
2405 lib/snesapu/SNES/SNESAPU/Makefile \
2406 lib/stsound/StSoundLibrary/Makefile \
2407 xbmc/cores/playercorefactory/Makefile \
2408 xbmc/music/karaoke/Makefile \
2410 xbmc/guilib/Makefile \
2411 xbmc/interfaces/Makefile \
2412 xbmc/network/Makefile \
2413 xbmc/network/upnp/Makefile \
2414 lib/libRTV/Makefile \
2415 lib/libexif/Makefile \
2416 lib/libXDAAP/Makefile \
2417 lib/cmyth/Makefile \
2418 lib/libhdhomerun/Makefile \
2419 lib/libsquish/Makefile \
2420 lib/cximage-6.0/Makefile \
2421 lib/libUPnP/Makefile \
2422 xbmc/DllPaths_generated.h \
2423 xbmc/DllPaths_generated_android.h \
2424 xbmc/freebsd/Makefile \
2425 xbmc/linux/Makefile \
2426 xbmc/filesystem/Makefile \
2427 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2428 xbmc/visualizations/XBMCProjectM/Makefile \
2429 xbmc/visualizations/Goom/Makefile \
2430 xbmc/visualizations/OpenGLSpectrum/Makefile \
2431 xbmc/visualizations/fishBMC/Makefile \
2432 xbmc/visualizations/WaveForm/Makefile \
2433 lib/addons/library.xbmc.addon/Makefile \
2434 lib/addons/library.xbmc.codec/Makefile \
2435 lib/addons/library.xbmc.gui/Makefile \
2436 lib/addons/library.xbmc.pvr/Makefile \
2437 xbmc/visualizations/EGLHelpers/Makefile \
2438 tools/Linux/xbmc.sh \
2439 tools/Linux/xbmc-standalone.sh \
2440 tools/TexturePacker/Makefile \
2441 tools/EventClients/Clients/OSXRemote/Makefile \
2442 xbmc/peripherals/bus/Makefile \
2443 xbmc/peripherals/devices/Makefile \
2444 xbmc/android/activity/Makefile \
2445 xbmc/android/loader/Makefile \
2446 xbmc/android/jni/Makefile \
2447 xbmc/utils/Makefile \
2448 xbmc/main/Makefile \
2449 project/cmake/xbmc-config.cmake"
2451 if test "$use_skin_touched" = "yes"; then
2452 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2455 OUTPUT_FILES="$OUTPUT_FILES \
2456 xbmc/interfaces/python/Makefile \
2457 xbmc/interfaces/python/test/Makefile"
2459 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2460 # .dummy.am does nothing.
2461 AC_CONFIG_FILES([.dummy])
2463 AC_CONFIG_FILES([${OUTPUT_FILES}])
2464 OUTPUT_FILES="$OUTPUT_FILES \
2470 AC_SUBST(CXX_FOR_BUILD)
2471 AC_SUBST(CC_FOR_BUILD)
2472 AC_SUBST(CFLAGS_FOR_BUILD)
2473 AC_SUBST(CXXFLAGS_FOR_BUILD)
2474 AC_SUBST(LDFLAGS_FOR_BUILD)
2475 AC_SUBST(SDL_DEFINES)
2476 AC_SUBST(BUILD_DVDCSS)
2477 AC_SUBST(DISABLE_WAVEFORM)
2478 AC_SUBST(DISABLE_SPECTRUM)
2479 AC_SUBST(DISABLE_GOOM)
2480 AC_SUBST(DISABLE_RSXS)
2481 AC_SUBST(DISABLE_FISHBMC)
2482 AC_SUBST(DISABLE_PROJECTM)
2483 AC_SUBST(USE_SKIN_TOUCHED)
2484 AC_SUBST(USE_EXTERNAL_FFMPEG)
2485 AC_SUBST(USE_LIBAV_HACKS)
2486 AC_SUBST(PYTHON_VERSION)
2487 AC_SUBST(OUTPUT_FILES)
2488 AC_SUBST(HAVE_XBMC_NONFREE)
2489 AC_SUBST(USE_ASAP_CODEC)
2490 AC_SUBST(LIBCURL_BASENAME)
2491 AC_SUBST(LIBFLAC_BASENAME)
2492 AC_SUBST(LIBVORBISFILE_BASENAME)
2493 AC_SUBST(LIBMODPLUG_BASENAME)
2494 AC_SUBST(LIBMAD_BASENAME)
2495 AC_SUBST(LIBOGG_BASENAME)
2496 AC_SUBST(LIBVORBISENC_BASENAME)
2497 AC_SUBST(LIBVORBIS_BASENAME)
2498 AC_SUBST(LIBASS_BASENAME)
2499 AC_SUBST(LIBMEPG2_BASENAME)
2500 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2501 AC_SUBST(USE_OPENGL)
2502 AC_SUBST(USE_OPENGLES)
2505 AC_SUBST(USE_CRYSTALHD)
2506 AC_SUBST(USE_LIBSMBCLIENT)
2507 AC_SUBST(USE_LIBNFS)
2508 AC_SUBST(USE_LIBAFPCLIENT)
2509 AC_SUBST(USE_AIRPLAY)
2510 AC_SUBST(USE_OPENMAX)
2512 AC_SUBST(USE_XRANDR)
2514 AC_SUBST(USE_TEXTUREPACKER)
2515 AC_SUBST(USE_AIRTUNES)
2516 AC_SUBST(USE_LIBUDEV)
2517 AC_SUBST(USE_LIBUSB)
2518 AC_SUBST(USE_LIBCEC)
2520 AC_SUBST(USE_WEB_SERVER)
2522 AC_SUBST(USE_OMXLIB)
2523 AC_SUBST(USE_ANDROID)
2524 AC_SUBST(GTEST_CONFIGURED)
2525 AC_SUBST(USE_DOXYGEN)
2526 AC_SUBST(USE_PVR_ADDONS)
2528 # pushd and popd are not available in other shells besides bash, so implement
2529 # our own pushd/popd functions
2534 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2536 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2539 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2544 if [[ -n "$XB_DIRSTACK" ]]; then
2545 XB_DIRSTACK="${XB_DIRSTACK#* }"
2546 cd "${XB_DIRSTACK%% *}"
2549 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2553 # Function to run the configure scripts in our submodules
2554 # Consists of three paramaters, the path to the submodule, the configure command
2555 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2556 # running the script, anything else if not.
2557 AC_DEFUN([XB_CONFIG_MODULE],[
2558 AC_CONFIG_COMMANDS_POST([
2559 if [[ $3 != "1" ]]; then
2560 if [[ -d $1 ]]; then
2563 if [[ $? -ne 0 ]]; then
2565 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2570 AC_MSG_ERROR([[Submodule $1 does not exist]])
2573 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2578 XB_CONFIG_MODULE([lib/ffmpeg], [
2579 if test "$host_vendor" = "apple" ; then
2580 ffmpg_config="--target-os=$ffmpeg_target_os"
2581 # handle disables first, we do individual enables later
2582 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2583 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2584 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2585 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2586 ffmpg_config="$ffmpg_config --enable-vda --disable-crystalhd"
2587 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2589 # handle conditional enables/disables
2590 if test "$use_debug" = "no"; then
2591 ffmpg_config="$ffmpg_config --disable-debug"
2593 if test "$use_cpu" != "no"; then
2594 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2596 if test "$use_arch" != "no"; then
2597 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2599 if test "$use_arch" = "arm"; then
2600 ffmpg_config="$ffmpg_config --enable-pic"
2601 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2602 if test "$use_neon" = "yes"; then
2603 ffmpg_config="$ffmpg_config --enable-neon"
2605 ffmpg_config="$ffmpg_config --disable-neon"
2608 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2610 if test "$use_ffmpeg_libvorbis" = "yes"; then
2611 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2613 ffmpg_config="$ffmpg_config --disable-libvorbis"
2616 # handle individual enables
2617 ffmpg_config="$ffmpg_config --enable-gpl"
2618 ffmpg_config="$ffmpg_config --enable-postproc"
2619 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2620 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts --enable-muxer=asf --enable-muxer=ipod"
2621 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2"
2622 ffmpg_config="$ffmpg_config --enable-protocol=http"
2623 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2625 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2628 ffmpg_config="$ffmpg_config --cc=clang" ;;
2630 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2633 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2634 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2636 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2638 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2639 # dependency files in the right place, replace it with something that works
2642 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2645 # ffmpeg will use yasm found at ${prefix}/bin during configure
2646 # but then hardcodes 'yasm' in config.mak, fix it.
2647 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2648 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2649 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2654 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2656 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2658 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2659 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2660 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2661 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2662 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2663 --target-os=$ffmpeg_target_os \
2665 --enable-muxer=spdif \
2666 --enable-muxer=adts \
2667 --enable-muxer=asf \
2668 --enable-muxer=ipod \
2669 --disable-encoders \
2670 --enable-encoder=ac3 \
2671 --enable-encoder=aac \
2672 --enable-encoder=wmav2 \
2673 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2674 --disable-decoder=mpeg_xvmc \
2678 --disable-ffserver \
2680 --disable-crystalhd \
2685 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2686 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2687 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2688 --enable-protocol=http \
2690 --enable-runtime-cpudetect \
2691 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2692 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2693 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2694 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2695 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2697 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2698 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2700 ], [$USE_EXTERNAL_FFMPEG])
2702 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2707 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2708 --host=$host_alias \
2709 --build=$build_alias \
2710 --target=$target_alias \
2714 ], [$SKIP_CONFIG_DVDCSS])
2716 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2718 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src" \
2719 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2720 --host=$host_alias \
2721 --build=$build_alias \
2722 --target=$target_alias \
2728 $MAKE dvdread-config &&
2729 mkdir -p `pwd`/../includes/dvdread
2730 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2731 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2734 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2736 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
2737 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2738 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2739 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2740 --host=$host_alias \
2741 --build=$build_alias \
2742 --target=$target_alias \
2748 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2750 rm -f CMakeCache.txt && \
2751 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2752 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2753 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2754 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2755 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2756 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2757 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2758 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2759 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2760 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2761 if test "$host_vendor" = "apple" ; then
2762 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2763 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2764 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2765 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2768 ], [$DISABLE_PROJECTM])
2770 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2773 CXXFLAGS="$CXXFLAGS" \
2774 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2775 --host=$host_alias \
2776 --build=$build_alias \
2777 --target=$target_alias \
2783 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2784 if test "$host_vendor" = "apple"; then
2785 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";
2787 TEMPCFLAGS="$CFLAGS";
2792 CFLAGS="$TEMPCFLAGS" \
2793 CXXFLAGS="$CXXFLAGS" \
2794 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2795 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2796 --host=$host_alias \
2797 --build=$build_alias \
2798 --target=$target_alias \
2799 --without-xscreensaver \
2802 --disable-fieldlines \
2806 --disable-hyperspace \
2809 if echo "$ARCH" | grep -q freebsd ; then
2810 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2814 XB_CONFIG_MODULE([lib/cpluff], [
2815 ./configure --disable-nls \
2816 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2817 --host=$host_alias \
2818 --build=$build_alias \
2819 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2820 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2823 XB_CONFIG_MODULE([lib/gtest], [
2828 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2829 --host=$host_alias \
2830 --build=$build_alias \
2831 --target=$target_alias \
2835 ], [$SKIP_CONFIG_GTEST])
2837 XB_CONFIG_MODULE([pvr-addons], [
2839 --prefix="${prefix}" \
2840 --host=$host_alias \
2841 --build=$build_alias \
2842 --target=$target_alias \
2846 CXXFLAGS="$CXXFLAGS"
2847 ], [$DISABLE_PVR_ADDON_CONFIG])
2851 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2852 echo -e "$final_message\n"