2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([xbmc], [12.9.9], [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 wayland_enabled="== Wayland enabled. =="
135 wayland_disabled="== Wayland disabled. =="
136 x11_enabled="== X11 enabled. =="
137 x11_disabled="== X11 disabled. =="
138 pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
139 pulse_disabled="== PulseAudio support manually disabled. =="
140 dvdcss_enabled="== DVDCSS support enabled. =="
141 dvdcss_disabled="== DVDCSS support disabled. =="
142 hal_not_found="== Could not find hal. HAL support disabled. =="
143 halstorage_not_found="== Could not find hal-storage. HAL support disabled. =="
144 hal_disabled="== HAL support disabled. =="
145 avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
146 avahi_disabled="== Avahi support disabled. =="
147 mdnsembedded_not_found="== Could not find mDNSEmbedded. Might prevent zeroconf support. =="
148 mdnsembedded_disabled="== mDNSEmbedded support disabled. =="
149 vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
150 vdpau_disabled="== VDPAU support manually disabled. =="
151 vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
152 vaapi_disabled="== VAAPI support manually disabled. =="
153 crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
154 crystalhd_disabled="== CrystalHD support manually disabled. =="
155 vtbdecoder_enabled="== VTBDecoder support enabled. =="
156 vtbdecoder_disabled="== VTBDecoder support manually disabled. =="
157 openmax_disabled="== OpenMax support manually disabled. =="
158 openmax_not_found="== Could not find libnvomx. OpenMax support disabled. =="
159 ssh_not_found="== Could not find libssh. =="
160 ssh_disabled="== SSH SFTP disabled. =="
161 librtmp_not_found="== Could not find libRTMP. RTMP support disabled. =="
162 librtmp_disabled="== RTMP support disabled. =="
163 libnfs_not_found="== Could not find libnfs. NFS client support disabled. =="
164 libnfs_disabled="== NFS support disabled. =="
165 libafpclient_not_found="== Could not find libafpclient. AFP client support disabled. =="
166 libafpclient_disabled="== AFP support disabled. =="
167 libshairport_not_found="== Could not find libshairport. =="
168 libshairplay_not_found="== Could not find libshairplay. =="
169 samba_disabled="== SAMBA support disabled. =="
170 libplist_not_found="== Could not find libplist. AirPlay support disabled. =="
171 libplist_disabled="== AirPlay support disabled. =="
172 alsa_not_found="== Could not find ALSA. ALSA support disabled. =="
173 dbus_not_found="== Could not find DBUS. DBUS support disabled. =="
174 libcap_disabled="== Capabilities detection support disabled. =="
175 libcap_not_found="== Could not find libcap. Capabilities detection support disabled. =="
176 gtest_enabled="== Google Test Framework will be configured. =="
177 gtest_disabled="== Google Test Framework will not be configured. =="
179 libudev_not_found="== Could not find libudev. Will use polling to check for device changes. =="
180 libudev_disabled="== udev support disabled. Will use polling to check for device changes. =="
181 libusb_not_found="== Could not find libusb. Plug and play USB device support will not be available. =="
182 libusb_disabled="== libusb disabled. Plug and play USB device support will not be available. =="
183 libusb_disabled_udev_found="== libusb disabled. =="
184 libcec_enabled="== libcec enabled. =="
185 libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
187 # External library message strings
188 external_libraries_enabled="== Use of all supported external libraries enabled. =="
189 external_libraries_disabled="== Use of all supported external libraries disabled. =="
190 external_ffmpeg_enabled="== Use of external ffmpeg enabled. =="
191 external_ffmpeg_disabled="== Use of external ffmpeg disabled. =="
192 ffmpeg_vdpau_not_supported="== External ffmpeg doesn't support VDPAU. VDPAU support disabled. =="
193 dashes="------------------------"
194 final_message="\n XBMC Configuration:"
195 final_message="\n$dashes$final_message\n$dashes"
197 AC_ARG_ENABLE([shared-lib],
198 [AS_HELP_STRING([--enable-shared-lib],
199 [build libxbmc. helpful for tests (default is no)])],
200 [build_shared_lib=$enableval],
201 [build_shared_lib=no])
203 AC_ARG_ENABLE([debug],
204 [AS_HELP_STRING([--enable-debug],
205 [enable debugging information (default is yes)])],
206 [use_debug=$enableval],
210 [AS_HELP_STRING([--with-arch],
211 [build with given arch passing to internal ffmpeg (default is no, needed for crosscompiling)])],
215 AC_ARG_WITH([platform],
216 [AS_HELP_STRING([--with-platform],
217 [use a pre-configured config for common arm boards])],
218 [use_platform=$withval],
222 [AS_HELP_STRING([--with-cpu],
223 [build with given cpu passing to ffmpeg (default is no)])],
227 AC_ARG_ENABLE([neon],
228 [AS_HELP_STRING([--enable-neon],
229 [enable neon passing to ffmpeg (default is no)])],
230 [use_neon=$enableval],
233 AC_ARG_ENABLE([optimizations],
234 [AS_HELP_STRING([--enable-optimizations],
235 [enable optimization (default is yes)])],
236 [use_optimizations=$enableval],
237 [use_optimizations=yes])
240 [AS_HELP_STRING([--enable-gl],
241 [enable OpenGL rendering (default is yes)])],
245 AC_ARG_ENABLE([gles],
246 [AS_HELP_STRING([--enable-gles],
247 [enable OpenGLES rendering (default is no)])],
248 [use_gles=$enableval],
252 [AS_HELP_STRING([--enable-sdl],
253 [enable SDL (default is auto)])],
254 [use_sdl=$enableval],
257 AC_ARG_ENABLE([vdpau],
258 [AS_HELP_STRING([--enable-vdpau],
259 [enable VDPAU decoding (default is auto)])],
260 [use_vdpau=$enableval],
263 AC_ARG_ENABLE([vaapi],
264 [AS_HELP_STRING([--enable-vaapi],
265 [enable VAAPI decoding (default is auto)])],
266 [use_vaapi=$enableval],
269 AC_ARG_ENABLE([crystalhd],
270 [AS_HELP_STRING([--enable-crystalhd],
271 [enable CrystalHD decoding (default is auto)])],
272 [use_crystalhd=$enableval],
273 [use_crystalhd=auto])
275 AC_ARG_ENABLE([vtbdecoder],
276 [AS_HELP_STRING([--enable-vtbdecoder],
277 [enable VTBDecoder decoding (default is auto)])],
278 [use_vtbdecoder=$enableval],
279 [use_vtbdecoder=auto])
281 AC_ARG_ENABLE([openmax],
282 [AS_HELP_STRING([--enable-openmax],
283 [enable OpenMax decoding (default is auto, requires OpenGLES)])],
284 [use_openmax=$enableval],
287 AC_ARG_ENABLE([tegra],
288 [AS_HELP_STRING([--enable-tegra],
289 [enable Tegra2 arm (default is no)])],
290 [use_tegra=$enableval],
293 AC_ARG_ENABLE([profiling],
294 [AS_HELP_STRING([--enable-profiling],
295 [enable gprof profiling (default is no)])],
296 [use_profiling=$enableval],
299 AC_ARG_ENABLE([joystick],
300 [AS_HELP_STRING([--enable-joystick],
301 [enable SDL joystick support (default is yes)])],
302 [use_joystick=$enableval],
305 AC_ARG_ENABLE([xrandr],
306 [AS_HELP_STRING([--enable-xrandr],
307 [enable XRandR support (default is yes)])],
308 [use_xrandr=$enableval],
311 AC_ARG_ENABLE([waveform],
312 [AS_HELP_STRING([--enable-waveform],
313 [enable Waveform visualisation (default is yes)])],
314 [use_waveform=$enableval],
317 AC_ARG_ENABLE([spectrum],
318 [AS_HELP_STRING([--enable-spectrum],
319 [enable Spectrum visualisation (default is yes)])],
320 [use_spectrum=$enableval],
323 AC_ARG_ENABLE([goom],
324 [AS_HELP_STRING([--enable-goom],
325 [enable GOOM visualisation (default is no)])],
326 [use_goom=$enableval],
329 AC_ARG_ENABLE([rsxs],
330 [AS_HELP_STRING([--enable-rsxs],
331 [enable really slick X screensavers (default is yes)])],
332 [use_rsxs=$enableval],
335 AC_ARG_ENABLE([fishbmc],
336 [AS_HELP_STRING([--enable-fishbmc],
337 [enable FishBMC visualisation (default is yes)])],
338 [use_fishbmc=$enableval],
341 AC_ARG_ENABLE([projectm],
342 [AS_HELP_STRING([--enable-projectm],
343 [enable ProjectM visualisation (default is yes)])],
344 [use_projectm=$enableval],
347 AC_ARG_ENABLE([wayland],
348 [AS_HELP_STRING([--enable-wayland],
349 [enable wayland (default is no) 'Linux Only'])],
350 [use_wayland=$enableval],
354 [AS_HELP_STRING([--enable-x11],
355 [enable x11 (default is yes) 'Linux Only'])],
356 [use_x11=$enableval],
359 AC_ARG_ENABLE([ccache],
360 [AS_HELP_STRING([--enable-ccache],
361 [enable building with ccache feature (default is auto)])],
362 [use_ccache=$enableval],
365 AC_ARG_ENABLE([alsa],
366 [AS_HELP_STRING([--disable-alsa],
367 [disable ALSA support (only for linux/freebsd)])],
368 [use_alsa=$enableval],
371 AC_ARG_ENABLE([pulse],
372 [AS_HELP_STRING([--enable-pulse],
373 [enable PulseAudio support (default is no)])],
374 [use_pulse=$enableval],
378 [AS_HELP_STRING([--disable-ssh],
379 [disable SSH SFTP support (default is enabled)])],
380 [use_ssh=$enableval],
383 AC_ARG_ENABLE([rtmp],
384 [AS_HELP_STRING([--enable-rtmp],
385 [enable RTMP support via librtmp (default is auto)])],
386 [use_librtmp=$enableval],
389 AC_ARG_ENABLE([samba],
390 [AS_HELP_STRING([--disable-samba],
391 [disable SAMBA support (default is enabled)])],
392 [use_samba=$enableval],
396 [AS_HELP_STRING([--enable-nfs],
397 [enable NFS support via libnfs (default is auto)])],
398 [use_libnfs=$enableval],
401 AC_ARG_ENABLE([afpclient],
402 [AS_HELP_STRING([--enable-afpclient],
403 [enable AFP support via libafpclient (default is auto)])],
404 [use_libafpclient=$enableval],
405 [use_libafpclient=auto])
407 AC_ARG_ENABLE([airplay],
408 [AS_HELP_STRING([--enable-airplay],
409 [enable AirPlay support(default is auto)])],
410 [use_airplay=$enableval],
413 AC_ARG_ENABLE([airtunes],
414 [AS_HELP_STRING([--enable-airtunes],
415 [enable AirTunes support(default is auto)])],
416 [use_airtunes=$enableval],
419 AC_ARG_ENABLE([upnp],
420 [AS_HELP_STRING([--disable-upnp],
421 [disable UPnP support (default is enabled)])],
422 [use_upnp=$enableval],
425 AC_ARG_ENABLE([ffmpeg_libvorbis],
426 [AS_HELP_STRING([--enable-ffmpeg-libvorbis],
427 [enable FFmpeg vorbis encoding (default is no)])],
428 [use_ffmpeg_libvorbis=$enableval],
429 [use_ffmpeg_libvorbis=no])
431 AC_ARG_ENABLE([dvdcss],
432 [AS_HELP_STRING([--enable-dvdcss],
433 [enable DVDCSS support (default is yes)])],
434 [use_dvdcss=$enableval],
438 [AS_HELP_STRING([--enable-mid],
439 [enable MID support (default is no)])],
440 [use_mid=$enableval],
444 [AS_HELP_STRING([--disable-hal],
445 [disable HAL support (default is enabled if hal and hal-storage is found)])],
446 [use_hal=$enableval],
449 AC_ARG_ENABLE([avahi],
450 [AS_HELP_STRING([--disable-avahi],
451 [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
452 [use_avahi=$enableval],
455 AC_ARG_ENABLE([mdnsembedded],
456 [AS_HELP_STRING([--disable-mdnsembedded],
457 [disable mDNSEmbedded support (default is auto)])],
458 [use_mdnsembedded=$enableval],
459 [use_mdnsembedded=auto])
461 AC_ARG_ENABLE([non-free],
462 [AS_HELP_STRING([--disable-non-free],
463 [disable componentents with non-compliant licenses])],
464 [use_nonfree=$enableval],
467 AC_ARG_ENABLE([asap-codec],
468 [AS_HELP_STRING([--enable-asap-codec],
469 [enable ASAP ADPCM support])],
470 [use_asap=$enableval],
473 AC_ARG_ENABLE([mysql],
474 [AS_HELP_STRING([--disable-mysql],
476 [use_mysql=$enableval],
479 AC_ARG_ENABLE([webserver],
480 [AS_HELP_STRING([--disable-webserver],
481 [disable webserver])],
482 [use_webserver=$enableval],
485 AC_ARG_ENABLE([optical-drive],
486 [AS_HELP_STRING([--disable-optical-drive],
487 [disable optical drive])],
488 [use_optical_drive=$enableval],
489 [use_optical_drive=yes])
491 AC_ARG_ENABLE([libbluray],
492 [AS_HELP_STRING([--enable-libbluray],
493 [enable libbluray support])],
494 [use_libbluray=$enableval],
495 [use_libbluray=auto])
497 AC_ARG_ENABLE([texturepacker],
498 [AS_HELP_STRING([--enable-texturepacker],
499 [enable texturepacker support (default is yes)])],
500 [use_texturepacker=$enableval],
501 [use_texturepacker=auto])
503 AC_ARG_WITH([lirc-device],
504 [AS_HELP_STRING([--with-lirc-device=file],
505 [specify the default LIRC device (default is /dev/lircd)])],
506 [lirc_device=$withval],
507 [lirc_device=/dev/lircd])
508 AC_DEFINE_UNQUOTED([LIRC_DEVICE], ["$lirc_device"], [Default LIRC device])
510 AC_ARG_ENABLE([udev],
511 [AS_HELP_STRING([--enable-udev],
512 [enable udev support (default is auto)])],
513 [use_libudev=$enableval],
516 AC_ARG_ENABLE([libusb],
517 [AS_HELP_STRING([--enable-libusb],
518 [enable libusb support (default is auto)])],
519 [use_libusb=$enableval],
522 AC_ARG_ENABLE([libcec],
523 [AS_HELP_STRING([--enable-libcec],
524 [enable libcec support (default is auto)])],
525 [use_libcec=$enableval],
528 AC_ARG_ENABLE([libmp3lame],
529 [AS_HELP_STRING([--enable-libmp3lame],
530 [enable lame mp3 encoder support (default is auto)])],
531 [use_libmp3lame=$enableval],
532 [use_libmp3lame=auto])
534 AC_ARG_ENABLE([libvorbisenc],
535 [AS_HELP_STRING([--enable-libvorbisenc],
536 [enable vorbis encoder support (default is auto)])],
537 [use_libvorbisenc=$enableval],
538 [use_libvorbisenc=auto])
540 AC_ARG_ENABLE([libcap],
541 [AS_HELP_STRING([--enable-libcap],
542 [enable libcap support (default is auto)])],
543 [use_libcap=$enableval],
546 AC_ARG_ENABLE([player],
547 [AS_HELP_STRING([--enable-player],
548 [enable additional players from a list of comma separated names, (default is none, choices are amlplayer, omxplayer)])],
549 [add_players=$enableval],
552 AC_ARG_ENABLE([gtest],
553 [AS_HELP_STRING([--enable-gtest],
554 [configure Google Test Framework (default is no)])],
555 [configure_gtest=$enableval],
556 [configure_gtest=no])
558 AC_ARG_ENABLE([codec],
559 [AS_HELP_STRING([--enable-codec],
560 [enable additional codecs from a list of comma separated names, (default is none, choices are amcodec, libstagefright)])],
561 [add_codecs=$enableval],
564 ### External libraries options
565 AC_ARG_ENABLE([external-libraries],
566 [AS_HELP_STRING([--enable-external-libraries],
567 [enable use of all supported external libraries (default is no) 'Linux only'])],
568 [use_external_libraries=$enableval],
569 [use_external_libraries=no])
571 AC_ARG_ENABLE([external-ffmpeg],
572 [AS_HELP_STRING([--enable-external-ffmpeg],
573 [enable use of external ffmpeg libraries (default is no) 'Linux only'])],
574 [use_external_ffmpeg=$enableval],
575 [use_external_ffmpeg=$use_external_libraries])
577 AC_ARG_ENABLE([libav-compat],
578 [AS_HELP_STRING([--enable-libav-compat],
579 [build a wrapper around libav to provide the functions needed by XBMC. This is
580 *not* supported by XBMC developers and is provided only for convenience. (default is no) 'Linux only'])],
581 [use_libav_hacks=$enableval],
582 [use_libav_hacks=no])
584 ### End of external library options
586 if test "x$host_vendor" != "xapple"; then
587 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
588 DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
591 # Checks for programs.
592 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
595 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
596 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
598 AX_PROG_CXX_FOR_BUILD
599 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
606 OBJDUMP="${OBJDUMP:-objdump}"
608 # ffmpeg needs the output of uname -s (e.x. linux, darwin) for the target_os
609 # there is no autoconf variable which will give
610 # the correct output format when doing cross compilation
611 # so we have to use our own var here
612 # defaults to the build side target_os
613 # and should be overridden for cross below (see android)
614 ffmpeg_target_os=$(tolower $(uname -s))
616 # host detection and setup
618 i*86*-linux-android*)
619 target_platform=target_android
623 ffmpeg_target_os=linux
633 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
640 if test "$use_cpu" = "no" -a "$cross_compiling" = "yes"; then
650 ARCH="x86_64-freebsd"
666 PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
667 PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
668 PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
669 PYTHON_NOVERSIONCHECK="no-check"
676 powerpc-apple-darwin*)
683 powerpc-*-linux-gnu*)
686 powerpc64-*-linux-gnu*)
687 ARCH="powerpc64-linux"
692 ffmpeg_target_os=linux
700 arm*-*linux-android*)
701 target_platform=target_android
705 ffmpeg_target_os=linux
716 AC_MSG_ERROR(unsupported host ($host))
720 check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
721 if test "x$check_sdl_arch" = "xi386" ; then
722 DARWIN_NATIVE_ARCH=-m32
723 elif test "x$check_sdl_arch" = "xx86_64" ; then
724 DARWIN_NATIVE_ARCH=-m64
726 AC_SUBST([DARWIN_NATIVE_ARCH])
728 if test "$target_platform" = "target_android" ; then
730 webserver_checkdepends=yes
731 CFLAGS="$CFLAGS -Wno-psabi"
732 CXXFLAGS="$CXXFLAGS -Wno-psabi"
733 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
736 case $use_platform in
738 target_platform=target_raspberry_pi
742 use_hardcoded_tables="yes"
745 AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
746 USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
749 ffmpeg_target_os=linux
753 XBMC_SETUP_ARCH_DEFINES()
756 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
757 if test "$GIT_REV" = ""; then
758 if test -f VERSION ; then
759 GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
760 elif test "$HAVE_GIT" = "yes"; then
761 GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
766 final_message="$final_message\n git Rev.:\t${GIT_REV}"
768 if test "$host_vendor" = "apple"; then
769 echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
771 SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
774 if test "$build_shared_lib" = "yes"; then
775 final_message="$final_message\n Shared lib\tYes"
776 AC_SUBST(USE_LIBXBMC,1)
780 # platform debug flags
781 if test "$use_debug" = "yes"; then
782 final_message="$final_message\n Debugging:\tYes"
783 if test "$use_profiling" = "yes"; then
784 final_message="$final_message\n Profiling:\tYes"
785 DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
787 final_message="$final_message\n Profiling:\tNo"
788 DEBUG_FLAGS="-g -D_DEBUG -Wall"
791 final_message="$final_message\n Debugging:\tNo"
792 if test "$use_profiling" = "yes"; then
793 final_message="$final_message\n Profiling:\tYes"
794 DEBUG_FLAGS="-pg -DNDEBUG=1"
796 final_message="$final_message\n Profiling:\tNo"
797 DEBUG_FLAGS="-DNDEBUG=1"
800 CFLAGS="$CFLAGS $DEBUG_FLAGS"
801 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
804 if test "$use_optimizations" = "yes"; then
805 final_message="$final_message\n Optimization:\tYes"
806 if test "$target_platform" = "target_raspberry_pi"; then
810 CXXFLAGS="-O2 $CXXFLAGS"
814 final_message="$final_message\n Optimization:\tNo"
818 # platform specific flags
819 if echo "$ARCH" | grep -q "freebsd" ; then
820 LOCALBASE="${LOCALBASE:-/usr/local}"
821 CFLAGS="$CFLAGS -I$LOCALBASE/include"
822 CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
823 CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
824 LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
825 FFMPEG_EXTRACFLAGS="-I$LOCALBASE/include"
827 if test "$host_vendor" = "apple" ; then
828 # standard xbmc paths
829 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
830 if test "$use_arch" != "arm"; then
831 LIBS="$LIBS -framework ApplicationServices"
832 LIBS="$LIBS -framework AudioUnit"
833 LIBS="$LIBS -framework AudioToolbox"
834 LIBS="$LIBS -framework Cocoa"
835 LIBS="$LIBS -framework CoreAudio"
836 LIBS="$LIBS -framework CoreVideo"
837 LIBS="$LIBS -framework CoreServices"
838 LIBS="$LIBS -framework CoreFoundation"
839 LIBS="$LIBS -framework DiskArbitration"
840 LIBS="$LIBS -framework IOKit"
841 LIBS="$LIBS -framework IOSurface"
842 LIBS="$LIBS -framework QuartzCore"
843 LIBS="$LIBS -framework SystemConfiguration"
845 USE_EXTERNAL_FFMPEG=1
846 elif test "$target_platform" = "target_raspberry_pi"; then
849 elif test "$use_arch" = "arm"; then
850 CFLAGS="$CFLAGS -mno-apcs-stack-check"
851 CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
852 FFMPEG_EXTRACFLAGS=""
853 if test "$use_tegra" = "yes"; then
854 # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
855 SAVE_CFLAGS="$CFLAGS"
856 CFLAGS="-mfpu=vfpv3-d16"
858 [AC_LANG_SOURCE([int foo;])],
859 [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
860 CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
861 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
863 [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
864 CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
867 if test "$use_neon" = "yes"; then
868 CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
869 CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
870 FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
875 # Checks for library functions.
878 AC_FUNC_CLOSEDIR_VOID
879 AC_FUNC_ERROR_AT_LINE
881 AC_PROG_GCC_TRADITIONAL
883 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
887 # Boxee is apparently having compile problems
888 # if HAVE_REALLOC is defined. Sort this later.
890 AC_FUNC_SELECT_ARGTYPES
891 AC_FUNC_SETVBUF_REVERSED
899 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])
901 # Check for various sizes
902 AC_CHECK_SIZEOF([int])
903 AC_CHECK_SIZEOF([size_t])
905 # Check for intrinsics
906 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
907 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
908 [have_builtin_sync_add_and_fetch=yes],
909 [have_builtin_sync_add_and_fetch=no])
910 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
911 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
912 AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
913 [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
916 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
917 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
918 [have_builtin_sync_sub_and_fetch=yes],
919 [have_builtin_sync_sub_and_fetch=no])
920 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
921 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
922 AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
923 [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
926 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
927 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
928 [have_builtin_sync_val_compare_and_swap=yes],
929 [have_builtin_sync_val_compare_and_swap=no])
930 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
931 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
932 AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
933 [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
936 # Check for u16string/u32string declarations
938 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
939 AC_CHECK_TYPES([char16_t, char32_t])
940 AC_CHECK_SIZEOF([wchar_t])
943 # Add top source directory for all builds so we can use config.h
944 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES"
946 # Check inotify availability
947 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
949 # Checks for boost headers using CXX instead of CC
951 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
955 if test -z "$PYTHON_NOVERSIONCHECK"; then
956 AX_PYTHON_DEVEL([>= 2.4])
957 PYTHON_VERSION=$ac_python_version
960 if test -z "$PYTHON_VERSION"; then
961 AC_MSG_ERROR([Can't find a Python version.])
963 LIBS="$LIBS $PYTHON_LDFLAGS"
964 AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
968 if test "$use_wayland" = "yes" && test "$host_vendor" != "apple"; then
969 AC_MSG_NOTICE($wayland_enabled)
970 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client],
971 [INCLUDES="$INCLUDES $WAYLAND_CLIENT_CFLAGS";
972 WAYLAND_CLIENT_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-client\`; echo ${LIBRARY:2}`;
973 XB_FIND_SONAME([WAYLAND_CLIENT_LIBRARY], ${WAYLAND_CLIENT_LIBRARY_LINE})],
974 AC_MSG_ERROR($missing_library))
975 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],
976 [INCLUDES="$INCLUDES $WAYLAND_EGL_CFLAGS";
977 WAYLAND_EGL_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-egl\`; echo ${LIBRARY:2}`
978 XB_FIND_SONAME([WAYLAND_EGL_LIBRARY], ${WAYLAND_EGL_LIBRARY_LINE})],
979 AC_MSG_ERROR($missing_library))
980 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
981 [INCLUDES="$INCLUDES $XKBCOMMON_CFLAGS";
982 XKBCOMMON_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l xkbcommon\`; echo ${LIBRARY:2}`;
983 XB_FIND_SONAME([XKBCOMMON_LIBRARY], $XKBCOMMON_LIBRARY_LINE)],
984 AC_MSG_ERROR($missing_library))
985 AC_DEFINE([HAVE_WAYLAND], [1], [Define to 1 if you have Wayland libs installed.])
986 AC_DEFINE([HAVE_XKBCOMMON], [1], [Define to 1 if you have libxkbcommon installed.])
988 # If we are also building with tests then we want to build
989 # wayland tests as well
990 if test "$configure_gtest" = "yes"; then
992 PKG_CHECK_MODULES([PIXMAN],
993 [pixman-1],have_pixman=yes,
994 [AC_MSG_WARN($missing_library); have_pixman=no])
995 PKG_CHECK_MODULES([WESTON],
996 [weston >= 1.1.90],[have_weston_sdk=yes],
997 [have_weston_sdk=no; AC_MSG_WARN($missing_library)])
999 AC_CHECK_PROG(WAYLAND_SCANNER, wayland-scanner, "wayland-scanner", "no")
1000 if test "x$WAYLAND_SCANNER" == "xno"; then
1001 AC_MSG_WARN($missing_program)
1003 if test "x$have_weston_sdk" == "xyes" && test "x$have_pixman" = "xyes"; then
1004 AC_SUBST(WAYLAND_TEST_INCLUDES,"$WAYLAND_CLIENT_CFLAGS $XKBCOMMON_CFLAGS $PIXMAN_CFLAGS $WESTON_CFLAGS")
1005 AC_SUBST(WAYLAND_TEST_LIBS,"$WAYLAND_CLIENT_LIBS $XKBCOMMON_LIBS $PIXMAN_LIBS $WESTON_LIBS")
1006 AC_DEFINE([HAVE_WESTON_SDK], [1], [Define to 1 if Weston SDK is installed.])
1007 AC_SUBST(USE_WAYLAND_TEST_EXTENSION, 1)
1009 AC_SUBST(WAYLAND_SCANNER)
1010 AC_DEFINE([HAVE_WAYLAND_XBMC_PROTO],[1],["Define to 1 if the wayland test-protocol will be built"])
1014 # Disable SDL and X11 builds
1019 # Wayland requires the EGL "window system" which in turn only supports
1020 # the OpenGL ES API, so enable gles support
1023 AC_MSG_RESULT($wayland_disabled)
1026 # Checks for platforms libraries.
1027 if test "$use_gles" = "yes"; then
1029 # GLES overwrites GL if both set to yes.
1030 if test "$host_vendor" = "apple" ; then
1031 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1032 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1033 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1035 if test "$target_platform" = "target_raspberry_pi"; then
1036 AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1037 AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1038 AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1039 LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
1041 AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
1042 AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
1046 if test "$use_gl" = "yes"; then
1047 if test "$host_vendor" = "apple" ; then
1048 # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
1049 LIBS="$LIBS -framework OpenGL"
1050 AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
1051 AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
1052 AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
1053 AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
1054 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1056 AC_CHECK_LIB([GL], [main],, AC_MSG_ERROR($missing_library))
1057 AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1058 AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
1061 AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
1062 AC_CHECK_LIB([SDL_gfx],[main])
1066 # platform common libraries
1067 if test "$use_mysql" = "yes"; then
1068 AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
1069 if test "x$MYSQL_CONFIG" != "xno"; then
1070 AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
1071 INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
1072 MYSQL_LIBS=`$MYSQL_CONFIG --libs`
1073 LIBS="$LIBS $MYSQL_LIBS"
1074 AC_SUBST(MYSQL_LIBS)
1076 AC_MSG_ERROR($missing_program)
1079 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1080 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1081 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1082 AC_INCLUDES_DEFAULT()
1083 [#include <mpeg2dec/mpeg2.h>])
1084 AC_CHECK_HEADER([mad.h],, AC_MSG_ERROR($missing_library))
1085 AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
1086 AC_CHECK_HEADER([samplerate.h],, AC_MSG_ERROR($missing_library))
1087 AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library))
1088 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1089 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1090 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1091 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1093 # we need to check for the header because if it exists we set the openssl
1094 # and gcrypt MT callback hooks. This is mostly so that libcurl operates
1095 # in MT manner correctly.
1096 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1097 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1098 if test "$gcrypt_headers_available" = "yes"; then
1099 # if we have the headers then we must have the lib
1100 AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1101 AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1102 AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1104 PKG_CHECK_MODULES([GNUTLS], [gnutls], [have_gnutls=yes];AC_DEFINE([HAVE_GNUTLS], [1], [Define if we have gnutls])], AC_MSG_WARN("gnutls not found, ffmpeg TLS support disabled"))
1106 AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
1107 AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1108 AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
1109 if echo "$ARCH" | grep -q freebsd; then
1110 AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1111 AC_CHECK_LIB([pthread], [pthread_set_name_np],
1112 AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1113 AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1115 if test "$target_platform" != "target_android" ; then
1116 AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
1117 AC_CHECK_LIB([pthread], [pthread_setname_np],
1118 AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1119 AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1122 AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
1123 AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
1124 AC_CHECK_LIB([crypto], [main],, AC_MSG_ERROR($missing_library))
1125 AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
1126 if test "$use_mysql" = "yes"; then
1127 AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1129 AC_CHECK_LIB([bluetooth], [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1130 AC_CHECK_LIB([yajl], [main],, AC_MSG_ERROR($missing_library))
1131 AC_CHECK_LIB([tinyxml], [main],, AC_MSG_ERROR($missing_library))
1132 if test "$target_platform" = "target_android" ; then
1133 AC_CHECK_LIB([android], [main],, AC_MSG_ERROR($missing_library))
1134 AC_CHECK_LIB([log], [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1135 AC_CHECK_LIB([jnigraphics], [main],, AC_MSG_ERROR($missing_library))
1137 PKG_CHECK_MODULES([FRIBIDI], [fribidi],
1138 [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1139 AC_MSG_ERROR($missing_library))
1140 PKG_CHECK_MODULES([SQLITE3], [sqlite3],
1141 [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1142 AC_MSG_ERROR($missing_library))
1143 PKG_CHECK_MODULES([PNG], [libpng],
1144 [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1145 AC_MSG_ERROR($missing_library))
1146 PKG_CHECK_MODULES([PCRECPP], [libpcrecpp],
1147 [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1148 AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1149 AC_MSG_ERROR($missing_library))
1150 PKG_CHECK_MODULES([PCRE], [libpcre],
1151 [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1152 AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1153 AC_MSG_ERROR($missing_library))
1154 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1155 [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1156 AC_MSG_ERROR($missing_library))
1157 PKG_CHECK_MODULES([FREETYPE2], [freetype2],
1158 [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1159 AC_MSG_ERROR($missing_library))
1160 PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
1161 [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1162 AC_MSG_ERROR($missing_library))
1164 if test "$use_optical_drive" = "yes"; then
1165 PKG_CHECK_MODULES([CDIO], [libcdio],
1166 [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1167 AC_MSG_ERROR($missing_library))
1170 if test "$target_platform" = "target_android" ; then
1171 PKG_CHECK_MODULES([ZIP], [libzip],
1172 [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1173 AC_MSG_ERROR($missing_library))
1176 # check for libbluray
1177 AS_CASE([x$use_libbluray],
1179 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1182 PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1185 AS_CASE([x$use_libbluray],
1187 INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1188 XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1189 AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1190 AC_SUBST([HAVE_LIBBLURAY], 1)
1191 AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1192 AC_CHECK_DECL([BD_EVENT_IDLE],
1193 AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1194 [[#include <libbluray/bluray.h>]]))
1196 AC_SUBST([HAVE_LIBBLURAY], 0)
1200 #Check to see if libs are needed for functions that are often built-in to libc
1201 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1202 AC_SEARCH_LIBS([dlopen],dl)
1203 AC_SEARCH_LIBS([clock_gettime],rt)
1204 AC_SEARCH_LIBS([dn_expand], resolv)
1205 AC_SEARCH_LIBS([_dn_expand], resolv)
1206 AC_SEARCH_LIBS([__dn_expand],resolv)
1208 # platform dependent libraries
1209 if test "$host_vendor" = "apple" ; then
1210 if test "$use_arch" != "arm"; then
1211 AC_CHECK_LIB([SDL], [main],, AC_MSG_ERROR($missing_library))
1212 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1215 if test "$target_platform" != "target_android" ; then
1216 AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1218 if test "x$use_alsa" != "xno"; then
1219 PKG_CHECK_MODULES([ALSA], [alsa],
1220 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1221 AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1223 PKG_CHECK_MODULES([DBUS], [dbus-1],
1224 [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1225 AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1226 AC_MSG_NOTICE($missing_library); use_dbus=no)
1227 if test "x$use_sdl" != "xno"; then
1228 PKG_CHECK_MODULES([SDL], [sdl],
1229 [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1230 AC_MSG_ERROR($missing_library))
1231 AC_CHECK_LIB([SDL_image], [main],, AC_MSG_ERROR($missing_library))
1232 AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1236 XB_FIND_SONAME([MAD], [mad])
1237 XB_FIND_SONAME([OGG], [ogg])
1238 XB_FIND_SONAME([CURL], [curl])
1239 XB_FIND_SONAME([FLAC], [FLAC])
1240 XB_FIND_SONAME([VORBIS], [vorbis])
1241 XB_FIND_SONAME([VORBISFILE], [vorbisfile])
1242 XB_FIND_SONAME([MODPLUG], [modplug])
1243 XB_FIND_SONAME([ASS], [ass])
1244 XB_FIND_SONAME([MPEG2], [mpeg2])
1247 if test "x$use_libmp3lame" != "xno"; then
1248 XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1249 if test "x$use_libmp3lame" != "xno"; then
1250 AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1253 AS_CASE([x$use_libmp3lame],
1255 AC_SUBST([HAVE_LIBMP3LAME], 0)
1258 AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1259 AC_SUBST([HAVE_LIBMP3LAME], 1)
1262 if test "x$use_libvorbisenc" != "xno"; then
1263 XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1264 if test "x$use_libvorbisenc" != "xno"; then
1265 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1268 AS_CASE([x$use_libvorbisenc],
1270 AC_SUBST([HAVE_LIBVORBISENC], 0)
1272 AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1273 AC_SUBST([HAVE_LIBVORBISENC], 1)
1278 if test "$use_webserver" = "yes"; then
1279 AC_CHECK_LIB([microhttpd], [main],, AC_MSG_ERROR($missing_library))
1283 if test "$use_optical_drive" = "yes"; then
1284 AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1288 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1289 PKG_CHECK_MODULES([ALSA], [alsa],
1290 [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1291 AC_MSG_ERROR($missing_library))
1292 AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1295 AC_MSG_RESULT($alsa_disabled)
1299 if test "x$use_pulse" != "xno"; then
1300 if test "$host_vendor" = "apple" ; then
1301 if test "x$use_pulse" = "xyes"; then
1302 AC_MSG_ERROR($pulse_disabled)
1305 AC_MSG_RESULT($pulse_disabled)
1309 AC_CHECK_LIB([pulse],[main],,pulse_found="no")
1310 AC_CHECK_LIB([pulse-simple],[main],,pulse_found="no")
1312 if test "x$pulse_found" != "xno"; then
1314 elif test "x$use_pulse" = "xyes"; then
1315 AC_MSG_ERROR($pulse_not_found)
1319 AC_MSG_RESULT($pulse_not_found)
1323 AC_MSG_RESULT($pulse_disabled)
1328 if test "$host_vendor" = "apple" ; then
1330 AC_MSG_RESULT($hal_disabled)
1332 if test "$use_hal" = "yes"; then
1333 PKG_CHECK_MODULES([HAL], [hal],
1334 [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1335 use_hal=no;AC_MSG_RESULT($hal_not_found))
1336 PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1337 [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1338 use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1340 AC_MSG_RESULT($hal_disabled)
1342 if test "$use_hal" = "yes"; then
1343 AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1348 if test "$host_vendor" = "apple" ; then
1350 AC_MSG_RESULT($avahi_disabled)
1352 if test "$use_avahi" = "yes"; then
1353 AC_CHECK_LIB([avahi-common], [main],,
1354 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1355 if test "$use_avahi" = "yes"; then
1356 #either both libs or none
1357 AC_CHECK_LIB([avahi-client], [main],,
1358 use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1361 AC_MSG_RESULT($avahi_disabled)
1366 if test "$use_mdnsembedded" != "no"; then
1367 AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1368 [if test "$use_mdnsembedded" = "yes"; then
1369 AC_MSG_ERROR($mdnsembedded_not_found)
1371 elif test "$use_mdnsembedded" != "no"; then
1372 AC_MSG_NOTICE($mdnsembedded_not_found)
1373 use_mdnsembedded="no"
1377 if test $use_mdnsembedded != "no"; then
1381 AC_MSG_RESULT($mdnsembedded_disabled)
1384 AC_SUBST(USE_MDNSEMBEDDED)
1387 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1388 AC_MSG_NOTICE($x11_enabled)
1389 PKG_CHECK_MODULES([X11], [x11],
1390 [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1391 AC_MSG_ERROR($missing_library))
1392 PKG_CHECK_MODULES([XEXT], [xext],
1393 [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1394 AC_MSG_ERROR($missing_library))
1395 AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1397 AC_MSG_RESULT($x11_disabled)
1401 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1403 AC_MSG_RESULT($xrandr_disabled)
1405 if test "$use_xrandr" = "yes" ; then
1406 AC_CHECK_LIB([Xrandr], [main],,
1407 use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1409 AC_MSG_RESULT($xrandr_disabled)
1414 if test "$use_waveform" = "yes"; then
1415 AC_MSG_NOTICE($waveform_enabled)
1418 AC_MSG_NOTICE($waveform_disabled)
1423 if test "$use_spectrum" = "yes"; then
1424 AC_MSG_NOTICE($spectrum_enabled)
1427 AC_MSG_NOTICE($spectrum_disabled)
1432 if test "$host_vendor" = "apple" ; then
1433 AC_MSG_NOTICE($goom_disabled)
1436 if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1437 AC_MSG_NOTICE($goom_enabled)
1440 AC_MSG_NOTICE($goom_disabled)
1446 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1447 AC_MSG_NOTICE($rsxs_disabled)
1450 AC_MSG_NOTICE($rsxs_enabled)
1452 # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1453 if test "$host_vendor" != "apple" ; then
1454 PKG_CHECK_MODULES([XT], [xt],
1455 [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1456 AC_MSG_ERROR($missing_library))
1457 PKG_CHECK_MODULES([XMU], [xmu],
1458 [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1459 AC_MSG_ERROR($missing_library))
1464 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1465 AC_MSG_NOTICE($fishbmc_disabled)
1469 AC_MSG_NOTICE($fishbmc_enabled)
1474 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1475 AC_MSG_NOTICE($projectm_disabled)
1479 AC_MSG_NOTICE($projectm_enabled)
1485 if [[ -f "addons/skin.touched/addon.xml" ]]; then
1486 use_skin_touched=yes
1488 AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1494 if test "x$use_ssh" = "xno"; then
1495 AC_MSG_NOTICE($ssh_disabled)
1498 AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1499 AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1503 if test "$use_librtmp" != "no"; then
1504 AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1505 [if test "$use_librtmp" = "yes"; then
1506 AC_MSG_ERROR($librtmp_not_found)
1507 elif test "$use_librtmp" != "no"; then
1508 AC_MSG_NOTICE($librtmp_not_found)
1512 if test "$use_librtmp" != "no"; then
1513 XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1515 if test "$use_librtmp" != "no"; then
1516 AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1519 AC_MSG_NOTICE($librtmp_disabled)
1523 if test "x$use_samba" != "xno"; then
1524 AC_CHECK_LIB([smbclient], [main],,
1525 use_samba=no;AC_MSG_ERROR($missing_library))
1528 AC_MSG_RESULT($samba_disabled)
1532 if test "x$use_samba" != "xno"; then
1533 AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1538 if test "$use_libnfs" != "no"; then
1539 AC_CHECK_HEADERS([nfsc/libnfs.h],,
1540 [if test "$use_libnfs" = "yes"; then
1541 AC_MSG_ERROR($libnfs_not_found)
1543 elif test "$use_libnfs" != "no"; then
1544 AC_MSG_NOTICE($libnfs_not_found)
1549 if test "$use_libnfs" != "no"; then
1550 XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1552 if test "$use_libnfs" != "no"; then
1553 AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1558 AC_MSG_NOTICE($libnfs_disabled)
1563 if test "x$use_libafpclient" != "xno"; then
1564 AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1565 [if test "x$use_libafpclient" = "xyes"; then
1566 AC_MSG_ERROR($libafpclient_not_found)
1567 elif test "x$use_libafpclient" != "xno"; then
1568 AC_MSG_NOTICE($libafpclient_not_found)
1569 use_libafpclient="no"
1572 if test "x$use_libafpclient" != "xno"; then
1573 XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1574 AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1578 AC_MSG_NOTICE($libafpclient_disabled)
1581 # libplist for airplay feature
1583 if test "$use_airplay" != "no"; then
1584 AC_CHECK_HEADER([plist/plist.h],,
1585 [if test "$use_airplay" = "yes"; then
1586 AC_MSG_ERROR($libplist_not_found)
1587 elif test "$use_airplay" != "no"; then
1588 AC_MSG_NOTICE($libplist_not_found)
1593 if test "$use_airplay" != "no"; then
1594 XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1596 AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1600 # libshairplay for AirTunes (prefered lib)
1602 if test "x$use_airtunes" != "xno"; then
1603 AC_CHECK_HEADERS([shairplay/raop.h],,
1604 [if test "x$use_airtunes" = "xyes"; then
1605 AC_MSG_ERROR($libshairplay_not_found)
1606 elif test "x$use_airtunes" != "xno"; then
1607 AC_MSG_NOTICE($libshairplay_not_found)
1612 if test "x$use_airtunes" != "xno"; then
1613 XB_FIND_SONAME([SHAIRPLAY], [shairplay], [use_airtunes])
1616 AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1617 [[#include <shairplay/raop.h>]])
1618 AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1621 #libshairport - as a fallback for AirTunes
1622 if test "x$USE_AIRTUNES" == "x0"; then
1623 AC_CHECK_HEADERS([shairport/shairport.h],,
1624 [if test "x$use_airtunes" = "xyes"; then
1625 AC_MSG_ERROR($libshairport_not_found)
1626 elif test "x$use_airtunes" != "xno"; then
1627 AC_MSG_NOTICE($libshairport_not_found)
1632 if test "x$use_airtunes" != "xno"; then
1633 XB_FIND_SONAME([SHAIRPORT], [shairport], [use_airtunes])
1635 AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1636 [[#include <shairport/shairport.h>]])
1637 AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1644 if test "$host_vendor" = "apple" ; then
1646 AC_MSG_NOTICE($libudev_disabled)
1648 if test "$use_libudev" = "auto"; then
1649 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1650 elif test "$use_libudev" = "yes" ; then
1651 PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1653 AC_MSG_NOTICE($libudev_disabled)
1656 if test "x$use_libudev" != "xno"; then
1657 USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1658 AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1665 # if libudev is available, we don't need libusb
1666 if test "x$use_libudev" != "xno"; then
1668 AC_MSG_NOTICE($libusb_disabled_udev_found)
1670 if test "$host_vendor" = "apple" ; then
1672 AC_MSG_NOTICE($libusb_disabled)
1674 if echo "$ARCH" | grep -q freebsd ; then
1675 AC_CHECK_LIB([usb],[main],
1676 [use_libusb="yes";USB_LIBS="-lusb"],
1677 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1678 elif test "$use_libusb" = "auto"; then
1679 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1680 elif test "$use_libusb" = "yes"; then
1681 PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1683 AC_MSG_NOTICE($libusb_disabled)
1686 if test "x$use_libusb" != "xno"; then
1687 USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1688 AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1695 if test "x$use_libcec" != "xno"; then
1696 # libcec is dyloaded, so we need to check for its headers and link any depends.
1697 if test "x$use_libcec" != "xno"; then
1698 if test "x$use_libcec" != "xauto"; then
1699 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1701 PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1704 if test "x$use_libcec" != "xno"; then
1705 INCLUDES="$INCLUDES $CEC_CFLAGS"
1706 USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1707 XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1708 AC_MSG_NOTICE($libcec_enabled)
1711 AC_MSG_NOTICE($libcec_disabled)
1716 AC_MSG_NOTICE($libcec_disabled)
1720 if test "$use_libcap" != "no"; then
1721 AC_CHECK_HEADERS([sys/capability.h],,
1722 [if test "$use_libcap" = "yes"; then
1723 AC_MSG_ERROR($libcap_not_found)
1724 elif test "$use_libcap" != "no"; then
1725 AC_MSG_NOTICE($libcap_not_found)
1729 if test "$use_libcap" != "no"; then
1730 AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1732 if test "$use_libcap" != "no"; then
1733 AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1736 AC_MSG_NOTICE($libcap_disabled)
1739 ### External libraries checks
1741 # Hacks for supporting libav
1744 if test "$use_libav_hacks" = "yes"; then
1745 export PKG_CONFIG_PATH="${srcdir}/lib/xbmc-libav-hacks/pkgconfig/:$PKG_CONFIG_PATH"
1747 AC_DEFINE([USE_LIBAV_HACKS], [1], [Whether to use libav compatibility hacks.])
1751 if test "$use_external_ffmpeg" = "yes"; then
1752 FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale libswresample"
1754 PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1755 [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1756 AC_MSG_ERROR($missing_library))
1758 # in case the headers are in a custom directory
1759 SAVE_CPPFLAGS="$CPPFLAGS"
1760 CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1762 AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1763 [AC_MSG_ERROR($missing_headers)])
1765 AC_MSG_NOTICE($external_ffmpeg_enabled)
1766 USE_EXTERNAL_FFMPEG=1
1767 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1769 CPPFLAGS="$SAVE_CPPFLAGS"
1771 AC_MSG_NOTICE($external_ffmpeg_disabled)
1772 USE_EXTERNAL_FFMPEG=0
1775 echo "Checking for SWIG installation"
1776 AC_PATH_PROG(SWIG_EXE, swig, "none")
1777 if test "$SWIG_EXE" = "none"; then
1778 AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1779 if test "$SWIG20_EXE" != "none" ; then
1780 SWIG_EXE=$SWIG20_EXE
1783 if test "$SWIG_EXE" = "none"; then
1784 AC_MSG_ERROR($missing_program)
1786 final_message="$final_message\n SWIG Available:\tYes"
1788 echo "Checking for a jre installation"
1789 AC_PATH_PROG(JAVA_EXE, java, "none")
1790 if test "$JAVA_EXE" = "none"; then
1791 AC_MSG_ERROR($missing_program)
1793 final_message="$final_message\n JRE Available:\tYes"
1795 echo "Checking for doxygen installation"
1796 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1797 if test "$DOXYGEN_EXE" = "none"; then
1798 AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1799 final_message="$final_message\n Doxygen Available:\tNo"
1802 final_message="$final_message\n Doxygen Available:\tYes"
1807 if test "x$use_vdpau" != "xno"; then
1808 if test "$host_vendor" = "apple" ; then
1809 if test "x$use_vdpau" = "xyes"; then
1810 AC_MSG_ERROR([VDPAU not supported on this platform])
1813 AC_MSG_NOTICE($vdpau_disabled)
1818 AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1819 [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1820 [if test "x$use_vdpau" = "xyes"; then
1822 AC_MSG_ERROR([$vdpau_not_found])
1826 AC_MSG_RESULT($vdpau_not_found)
1831 AC_MSG_NOTICE($vdpau_disabled)
1835 if test "x$use_vaapi" != "xno"; then
1836 if test "$host_vendor" = "apple" ; then
1837 if test "x$use_vaapi" = "xyes"; then
1838 AC_MSG_ERROR([VAAPI not supported on this platform])
1841 AC_MSG_NOTICE($vaapi_disabled)
1845 initial_val=$use_vaapi
1846 AC_CHECK_LIB([va], main, :, use_vaapi=no)
1847 if test "x$use_vaapi" != "xno"; then
1848 AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1851 if test "x$use_vaapi" = "xno"; then
1852 if test "x$initial_val" = "xyes"; then
1853 AC_MSG_ERROR($vaapi_not_found)
1855 AC_MSG_RESULT($vaapi_not_found)
1859 AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1864 AC_MSG_NOTICE($vaapi_disabled)
1869 if test "x$use_crystalhd" != "xno"; then
1870 SAVE_CFLAGS="$CFLAGS"
1871 CFLAGS="-D__LINUX_USER__"
1872 AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1873 [ if test "x$use_crystalhd" = "xyes"; then
1874 AC_MSG_ERROR($crystalhd_not_found)
1877 AC_MSG_RESULT($crystalhd_not_found)
1881 CFLAGS="$SAVE_CFLAGS"
1882 if test "$host_vendor" != "apple"; then
1883 XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1885 if test "x$use_crystalhd" != "xno"; then
1886 SAVE_CFLAGS="$CFLAGS"
1887 CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1888 # check for new crystalhd lib
1890 [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1891 #include <libcrystalhd/bc_dts_defs.h>
1892 PBC_INFO_CRYSTAL bCrystalInfo;])],
1893 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ],
1894 [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1895 CFLAGS="$SAVE_CFLAGS"
1899 AC_MSG_NOTICE($crystalhd_disabled)
1904 if test "x$use_vtbdecoder" != "xno"; then
1905 if test "$host_vendor" = "apple" ; then
1906 HAVE_VIDEOTOOLBOXDECODER=1
1907 AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1908 AC_MSG_NOTICE($vtbdecoder_enabled)
1910 if test "x$use_vtbdecoder" = "xyes"; then
1911 AC_MSG_ERROR([VTB Decoder not supported on this platform])
1914 AC_MSG_NOTICE($vtbdecoder_disabled)
1918 AC_MSG_NOTICE($vtbdecoder_disabled)
1922 if test "$host_vendor" = "apple" ; then
1925 AC_MSG_NOTICE($openmax_disabled)
1926 elif test "$target_platform" = "target_raspberry_pi"; then
1929 AC_MSG_NOTICE($openmax_disabled)
1931 if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1932 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1933 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1934 use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
1935 elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
1936 PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
1937 USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
1938 AC_MSG_ERROR($openmax_not_found))
1940 AC_MSG_NOTICE($openmax_disabled)
1946 # yajl version check (yajl_version.h was added in yajl 2.0)
1947 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
1948 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
1951 # additional internal players
1952 case $add_players in
1954 AC_CHECK_HEADER([amplayer/player_error.h],, AC_MSG_ERROR($missing_headers))
1955 XB_ADD_PLAYER([AMLPLAYER], [amlplayer])
1958 XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
1962 # additional internal codecs
1965 AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
1966 XB_ADD_CODEC([LIBAMCODEC], [amcodec])
1969 LIBS+="-L${prefix}/opt/android-libs -lstdc++ -lutils -lcutils -lstagefright -lbinder -lui -lgui"
1970 XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright])
1975 # platform specific bin utilities
1976 if test "$build_vendor" != "apple" ; then
1977 AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1978 if test "$HAVE_GAWK" = "no" ; then
1979 AC_MSG_ERROR($missing_program)
1983 if test "$use_arch" != "arm" ; then
1984 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1985 if test "$HAVE_CMAKE" = "no" ; then
1986 AC_MSG_ERROR($missing_program)
1990 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1991 if test "$HAVE_GPERF" = "no" ; then
1992 AC_MSG_ERROR($missing_program)
1995 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1996 if test "$HAVE_UNZIP" = "no" ; then
1997 AC_MSG_ERROR($missing_program)
2000 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
2001 if test "$HAVE_ZIP" = "no" ; then
2002 AC_MSG_ERROR($missing_program)
2005 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
2006 AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
2007 if test "$HAVE_NASM" = "no" ; then
2008 AC_MSG_ERROR($missing_program)
2012 # Checks for header files.
2016 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
2017 malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
2018 strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
2019 sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
2020 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
2022 # Checks for typedefs, structures, and compiler characteristics.
2038 AC_CHECK_MEMBERS([struct stat.st_rdev])
2047 if test "$cross_compiling" = "yes"; then
2048 final_message="$final_message\n Crosscomp.:\tYes"
2049 if [[ -d "$NATIVE_ROOT" ]]; then
2050 CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2051 CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2052 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
2053 if test "$host_vendor" != "apple" ; then
2054 LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
2056 final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
2059 final_message="$final_message\n Crosscomp.:\tNo"
2062 final_message="$final_message\n target ARCH:\t$use_arch"
2063 final_message="$final_message\n target CPU:\t$use_cpu"
2065 if test "$use_gles" = "yes"; then
2066 final_message="$final_message\n OpenGLES:\tYes"
2071 if test "$use_gl" = "yes"; then
2072 final_message="$final_message\n OpenGL:\tYes"
2075 final_message="$final_message\n OpenGL:\tNo (Very Slow)"
2076 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2081 if test "$use_alsa" = "yes"; then
2083 AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2084 final_message="$final_message\n ALSA:\t\tYes"
2087 final_message="$final_message\n ALSA:\t\tNo"
2090 if test "$use_dbus" = "yes"; then
2091 final_message="$final_message\n DBUS:\t\tYes"
2093 final_message="$final_message\n DBUS:\t\tNo"
2096 if test "x$use_vdpau" != "xno"; then
2097 final_message="$final_message\n VDPAU:\tYes"
2099 final_message="$final_message\n VDPAU:\tNo"
2102 if test "x$use_vaapi" != "xno"; then
2103 final_message="$final_message\n VAAPI:\tYes"
2105 final_message="$final_message\n VAAPI:\tNo"
2108 if test "x$use_crystalhd" != "xno"; then
2109 final_message="$final_message\n CrystalHD:\tYes"
2111 final_message="$final_message\n CrystalHD:\tNo"
2114 if test "x$use_vtbdecoder" != "xno"; then
2115 final_message="$final_message\n VTBDecoder:\tYes"
2117 final_message="$final_message\n VTBDecoder:\tNo"
2120 if test "$use_openmax" != "no"; then
2121 final_message="$final_message\n OpenMax:\tYes"
2123 final_message="$final_message\n OpenMax:\tNo"
2126 if test "$use_joystick" = "yes"; then
2127 final_message="$final_message\n Joystick:\tYes"
2128 SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2130 final_message="$final_message\n Joystick:\tNo"
2133 if test "$use_xrandr" = "yes"; then
2134 final_message="$final_message\n XRandR:\tYes"
2137 final_message="$final_message\n XRandR:\tNo"
2141 if test "$use_waveform" = "yes"; then
2142 final_message="$final_message\n Waveform:\tYes"
2144 final_message="$final_message\n Waveform:\tNo"
2147 if test "$use_spectrum" = "yes"; then
2148 final_message="$final_message\n Spectrum:\tYes"
2150 final_message="$final_message\n Spectrum:\tNo"
2153 if test "$use_goom" = "yes"; then
2154 final_message="$final_message\n GOOM:\t\tYes"
2156 final_message="$final_message\n GOOM:\t\tNo"
2159 if test "$use_rsxs" = "yes"; then
2160 final_message="$final_message\n RSXS:\t\tYes"
2162 final_message="$final_message\n RSXS:\t\tNo"
2165 if test "$use_fishbmc" = "yes"; then
2166 final_message="$final_message\n FishBMC:\tYes"
2168 final_message="$final_message\n FishBMC:\tNo"
2171 if test "$use_projectm" = "yes"; then
2172 final_message="$final_message\n ProjectM:\tYes"
2174 final_message="$final_message\n ProjectM:\tNo"
2177 if test "$use_skin_touched" = "yes"; then
2178 final_message="$final_message\n Skin Touched:\tYes"
2180 final_message="$final_message\n Skin Touched:\tNo"
2183 if test "$use_x11" = "yes"; then
2184 final_message="$final_message\n X11:\t\tYes"
2186 final_message="$final_message\n X11:\t\tNo"
2189 if test "$use_wayland" = "yes"; then
2190 final_message="$final_message\n Wayland:\tYes"
2194 final_message="$final_message\n Wayland:\tNo"
2197 if test "$use_libbluray" = "yes"; then
2198 final_message="$final_message\n Bluray:\tYes"
2200 final_message="$final_message\n Bluray:\tNo"
2203 if test "x$use_texturepacker" != "xno"; then
2204 final_message="$final_message\n TexturePacker:Yes"
2207 final_message="$final_message\n TexturePacker:No"
2211 if test "$use_mid" = "yes"; then
2212 final_message="$final_message\n MID Support:\tYes"
2213 SDL_DEFINES="$SDL_DEFINES -DMID"
2215 final_message="$final_message\n MID Support:\tNo"
2220 if test "x$use_ccache" != "xno"; then
2221 AC_PATH_PROG(CCACHE,ccache,none)
2222 if test "$ac_cv_path_CCACHE" = "none"; then
2223 if test "x$use_ccache" = "xyes"; then
2224 AC_MSG_ERROR([ccache not found.]);
2226 AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2227 final_message="$final_message\n ccache:\tNo"
2230 CC="$ac_cv_path_CCACHE $CC"
2231 CXX="$ac_cv_path_CCACHE $CXX"
2232 AC_MSG_NOTICE(enabling ccache)
2233 final_message="$final_message\n ccache:\tYes"
2236 final_message="$final_message\n ccache:\tNo"
2239 if test "$use_alsa" = "yes"; then
2240 final_message="$final_message\n ALSA Support:\tYes"
2242 final_message="$final_message\n ALSA Support:\tNo"
2245 if test "x$use_pulse" != "xno"; then
2246 XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2247 final_message="$final_message\n PulseAudio:\tYes"
2249 XBMC_STANDALONE_SH_PULSE=/dev/null
2250 final_message="$final_message\n PulseAudio:\tNo"
2253 if test "$use_hal" = "yes"; then
2254 final_message="$final_message\n HAL Support:\tYes"
2256 final_message="$final_message\n HAL Support:\tNo"
2260 if test "$use_dvdcss" = "yes"; then
2261 AC_MSG_NOTICE($dvdcss_enabled)
2262 final_message="$final_message\n DVDCSS:\tYes"
2264 SKIP_CONFIG_DVDCSS=0
2265 DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2267 AC_MSG_NOTICE($dvdcss_disabled)
2268 final_message="$final_message\n DVDCSS:\tNo"
2270 SKIP_CONFIG_DVDCSS=1
2271 DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2273 if test "$host_vendor" = "apple"; then
2274 DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2277 # Google Test Framework
2278 if test "$configure_gtest" = "yes"; then
2279 AC_MSG_NOTICE($gtest_enabled)
2280 final_message="$final_message\n Google Test Framework Configured:\tYes"
2284 AC_MSG_NOTICE($gtest_disabled)
2285 final_message="$final_message\n Google Test Framework Configured:\tNo"
2290 if test "$use_avahi" = "yes"; then
2291 final_message="$final_message\n Avahi:\tYes"
2293 final_message="$final_message\n Avahi:\tNo"
2296 if test "$use_mdnsembedded" != "no"; then
2297 final_message="$final_message\n mDNSEmbedded:\tYes"
2299 final_message="$final_message\n mDNSEmbedded:\tNo"
2302 if test "$use_nonfree" = "yes"; then
2303 final_message="$final_message\n Non-free:\tYes"
2305 AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2308 final_message="$final_message\n Non-free:\tNo"
2311 if test "$use_asap" = "yes"; then
2312 AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2313 if test "$HAVE_GDC" = "no"; then
2314 AC_MSG_ERROR($missing_program);
2316 AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2317 if test "$HAVE_FPC" = "no"; then
2318 AC_MSG_ERROR($missing_program);
2321 AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2322 final_message="$final_message\n ASAP Codec:\tYes"
2325 final_message="$final_message\n ASAP Codec:\tNo"
2328 if test "$use_mysql" = "yes"; then
2329 final_message="$final_message\n MySQL:\tYes"
2332 final_message="$final_message\n MySQL:\tNo"
2335 if test "$use_webserver" = "yes"; then
2336 final_message="$final_message\n Webserver:\tYes"
2339 final_message="$final_message\n Webserver:\tNo"
2343 if test "$use_libssh" != "no"; then
2344 final_message="$final_message\n libssh support:\tYes"
2346 final_message="$final_message\n libssh support:\tNo"
2349 if test "$use_librtmp" != "no"; then
2350 final_message="$final_message\n libRTMP support:\tYes"
2352 final_message="$final_message\n libRTMP support:\tNo"
2355 if test "x$use_samba" != "xno"; then
2356 final_message="$final_message\n libsmbclient support:\tYes"
2358 final_message="$final_message\n libsmbclient support:\tNo"
2361 if test "$use_libnfs" != "no"; then
2362 final_message="$final_message\n libnfs client support:Yes"
2364 final_message="$final_message\n libnfs client support:No"
2367 if test "x$use_libafpclient" != "xno"; then
2368 final_message="$final_message\n libafpclient support:\tYes"
2370 final_message="$final_message\n libafpclient support:\tNo"
2373 if test "$use_airplay" != "no"; then
2374 final_message="$final_message\n AirPlay support:\tYes"
2376 final_message="$final_message\n AirPLay support:\tNo"
2379 if test "x$use_airtunes" != "xno"; then
2380 if test "x$USE_LIBSHAIRPORT" == "x1"; then
2381 final_message="$final_message\n AirTunes support (libshairplay):\tYes"
2383 final_message="$final_message\n AirTunes support (libshairport):\tYes"
2386 final_message="$final_message\n AirTunes support:\tNo"
2389 if test "x$use_upnp" != "xno"; then
2390 final_message="$final_message\n UPnP support:\t\tYes"
2392 AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2395 final_message="$final_message\n UPnP support:\t\tNo"
2398 if test "$use_optical_drive" = "yes"; then
2399 final_message="$final_message\n Optical drive:\tYes"
2401 final_message="$final_message\n Optical drive:\tNo"
2404 if test "x$use_libudev" != "xno"; then
2405 final_message="$final_message\n libudev support:\tYes"
2407 final_message="$final_message\n libudev support:\tNo"
2410 if test "x$use_libusb" != "xno"; then
2411 final_message="$final_message\n libusb support:\tYes"
2413 final_message="$final_message\n libusb support:\tNo"
2416 if test "x$use_libcec" != "xno"; then
2417 final_message="$final_message\n libcec support:\tYes"
2419 final_message="$final_message\n libcec support:\tNo"
2422 if test "x$use_libmp3lame" != "xno"; then
2423 final_message="$final_message\n libmp3lame support:\tYes"
2425 final_message="$final_message\n libmp3lame support:\tNo"
2428 if test "x$use_libvorbisenc" != "xno"; then
2429 final_message="$final_message\n libvorbisenc support:\tYes"
2431 final_message="$final_message\n libvorbisenc support:\tNo"
2434 if test "x$use_libcap" != "xno"; then
2435 final_message="$final_message\n libcap support:\tYes"
2437 final_message="$final_message\n libcap support:\tNo"
2440 if test "x$add_players" != "xno"; then
2441 final_message="$final_message\n additional players:\tYes, $add_players"
2443 final_message="$final_message\n additional players:\tNo"
2446 if test "x$add_codecs" != "xno"; then
2447 final_message="$final_message\n additional codecs:\tYes, $add_codecs"
2449 final_message="$final_message\n additional codecs:\tNo"
2452 ### External libraries messages
2454 if test "$use_external_ffmpeg" = "yes"; then
2455 final_message="$final_message\n External FFmpeg:\tYes"
2457 final_message="$final_message\n External FFmpeg:\tNo"
2460 if test "$host_vendor" = "apple" ; then
2461 # built internal but referenced as external, we link directly to them.
2462 # this MUST be the last thing before OUTPUT_FILES as they do not
2463 # exist until after we build FFMpeg.
2464 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2465 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2466 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2467 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2468 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2469 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2470 LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2474 DISABLE_PVR_ADDON_CONFIG=1
2475 if [[ -f "pvr-addons/Makefile.am" ]]; then
2476 final_message="$final_message\n PVR add-ons:\t\tYes"
2478 DISABLE_PVR_ADDON_CONFIG=0
2480 final_message="$final_message\n PVR add-ons:\t\tNo"
2483 OUTPUT_FILES="Makefile \
2485 addons/skin.confluence/media/Makefile \
2487 xbmc/cdrip/Makefile \
2488 xbmc/cores/Makefile \
2489 xbmc/cores/VideoRenderers/Makefile \
2490 xbmc/cores/dvdplayer/Makefile \
2492 lib/libdvd/Makefile \
2493 xbmc/cores/DllLoader/Makefile \
2494 xbmc/cores/DllLoader/exports/Makefile \
2495 xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2496 xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2497 xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2498 xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2499 xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2500 xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2501 xbmc/cores/AudioEngine/Makefile \
2502 xbmc/cores/paplayer/Makefile \
2503 xbmc/cores/amlplayer/Makefile \
2504 xbmc/cores/omxplayer/Makefile \
2505 lib/timidity/Makefile \
2506 lib/xbadpcm/Makefile \
2508 lib/nosefart/Makefile \
2509 lib/libsidplay2/Makefile \
2510 lib/vgmstream/Makefile \
2511 lib/snesapu/SNES/SNESAPU/Makefile \
2512 lib/stsound/StSoundLibrary/Makefile \
2513 xbmc/cores/playercorefactory/Makefile \
2514 xbmc/music/karaoke/Makefile \
2516 xbmc/guilib/Makefile \
2517 xbmc/input/linux/Makefile \
2518 xbmc/interfaces/Makefile \
2519 xbmc/network/Makefile \
2520 xbmc/network/upnp/Makefile \
2521 lib/libRTV/Makefile \
2522 lib/libexif/Makefile \
2523 lib/libXDAAP/Makefile \
2524 lib/cmyth/Makefile \
2525 lib/libhdhomerun/Makefile \
2526 lib/libsquish/Makefile \
2527 lib/cximage-6.0/Makefile \
2528 lib/libUPnP/Makefile \
2529 xbmc/DllPaths_generated.h \
2530 xbmc/DllPaths_generated_android.h \
2531 xbmc/freebsd/Makefile \
2532 xbmc/linux/Makefile \
2533 xbmc/filesystem/Makefile \
2534 xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2535 xbmc/visualizations/XBMCProjectM/Makefile \
2536 xbmc/visualizations/Goom/Makefile \
2537 xbmc/visualizations/OpenGLSpectrum/Makefile \
2538 xbmc/visualizations/fishBMC/Makefile \
2539 xbmc/visualizations/WaveForm/Makefile \
2540 xbmc/windowing/Makefile \
2541 xbmc/windowing/egl/Makefile \
2542 lib/addons/library.xbmc.addon/Makefile \
2543 lib/addons/library.xbmc.codec/Makefile \
2544 lib/addons/library.xbmc.gui/Makefile \
2545 lib/addons/library.xbmc.pvr/Makefile \
2546 xbmc/visualizations/EGLHelpers/Makefile \
2547 tools/Linux/xbmc.sh \
2548 tools/Linux/xbmc-standalone.sh \
2549 tools/TexturePacker/Makefile \
2550 tools/EventClients/Clients/OSXRemote/Makefile \
2551 xbmc/peripherals/bus/Makefile \
2552 xbmc/peripherals/devices/Makefile \
2553 xbmc/android/activity/Makefile \
2554 xbmc/android/loader/Makefile \
2555 xbmc/android/jni/Makefile \
2556 xbmc/utils/Makefile \
2557 xbmc/main/Makefile \
2558 xbmc/windowing/tests/wayland/Makefile \
2559 project/cmake/xbmc-config.cmake"
2561 if test "$use_skin_touched" = "yes"; then
2562 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2565 OUTPUT_FILES="$OUTPUT_FILES \
2566 xbmc/interfaces/python/Makefile \
2567 xbmc/interfaces/python/test/Makefile"
2569 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2570 # .dummy.am does nothing.
2571 AC_CONFIG_FILES([.dummy])
2573 AC_CONFIG_FILES([${OUTPUT_FILES}])
2574 OUTPUT_FILES="$OUTPUT_FILES \
2580 AC_SUBST(CXX_FOR_BUILD)
2581 AC_SUBST(CC_FOR_BUILD)
2582 AC_SUBST(CFLAGS_FOR_BUILD)
2583 AC_SUBST(CXXFLAGS_FOR_BUILD)
2584 AC_SUBST(LDFLAGS_FOR_BUILD)
2585 AC_SUBST(SDL_DEFINES)
2586 AC_SUBST(BUILD_DVDCSS)
2587 AC_SUBST(DISABLE_WAVEFORM)
2588 AC_SUBST(DISABLE_SPECTRUM)
2589 AC_SUBST(DISABLE_GOOM)
2590 AC_SUBST(DISABLE_RSXS)
2591 AC_SUBST(DISABLE_FISHBMC)
2592 AC_SUBST(DISABLE_PROJECTM)
2593 AC_SUBST(USE_SKIN_TOUCHED)
2594 AC_SUBST(USE_EXTERNAL_FFMPEG)
2595 AC_SUBST(USE_LIBAV_HACKS)
2596 AC_SUBST(PYTHON_VERSION)
2597 AC_SUBST(OUTPUT_FILES)
2598 AC_SUBST(HAVE_XBMC_NONFREE)
2599 AC_SUBST(USE_ASAP_CODEC)
2600 AC_SUBST(LIBCURL_BASENAME)
2601 AC_SUBST(LIBFLAC_BASENAME)
2602 AC_SUBST(LIBVORBISFILE_BASENAME)
2603 AC_SUBST(LIBMODPLUG_BASENAME)
2604 AC_SUBST(LIBMAD_BASENAME)
2605 AC_SUBST(LIBOGG_BASENAME)
2606 AC_SUBST(LIBVORBISENC_BASENAME)
2607 AC_SUBST(LIBVORBIS_BASENAME)
2608 AC_SUBST(LIBASS_BASENAME)
2609 AC_SUBST(LIBMEPG2_BASENAME)
2610 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2611 AC_SUBST(USE_OPENGL)
2612 AC_SUBST(USE_OPENGLES)
2615 AC_SUBST(USE_CRYSTALHD)
2616 AC_SUBST(USE_LIBSMBCLIENT)
2617 AC_SUBST(USE_LIBNFS)
2618 AC_SUBST(USE_LIBAFPCLIENT)
2619 AC_SUBST(USE_AIRPLAY)
2620 AC_SUBST(USE_OPENMAX)
2622 AC_SUBST(USE_XRANDR)
2624 AC_SUBST(USE_TEXTUREPACKER)
2625 AC_SUBST(USE_AIRTUNES)
2626 AC_SUBST(USE_LIBUDEV)
2627 AC_SUBST(USE_LIBUSB)
2628 AC_SUBST(USE_LIBCEC)
2630 AC_SUBST(USE_WAYLAND)
2631 AC_SUBST(USE_WEB_SERVER)
2633 AC_SUBST(USE_XKBCOMMON)
2634 AC_SUBST(USE_OMXLIB)
2635 AC_SUBST(USE_ANDROID)
2636 AC_SUBST(GTEST_CONFIGURED)
2637 AC_SUBST(USE_DOXYGEN)
2638 AC_SUBST(USE_PVR_ADDONS)
2640 # pushd and popd are not available in other shells besides bash, so implement
2641 # our own pushd/popd functions
2646 if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2648 XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2651 AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2656 if [[ -n "$XB_DIRSTACK" ]]; then
2657 XB_DIRSTACK="${XB_DIRSTACK#* }"
2658 cd "${XB_DIRSTACK%% *}"
2661 AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2665 # Function to run the configure scripts in our submodules
2666 # Consists of three paramaters, the path to the submodule, the configure command
2667 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2668 # running the script, anything else if not.
2669 AC_DEFUN([XB_CONFIG_MODULE],[
2670 AC_CONFIG_COMMANDS_POST([
2671 if [[ $3 != "1" ]]; then
2672 if [[ -d $1 ]]; then
2675 if [[ $? -ne 0 ]]; then
2677 AC_MSG_ERROR([[Submodule $1 failed to configure]])
2682 AC_MSG_ERROR([[Submodule $1 does not exist]])
2685 AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2690 XB_CONFIG_MODULE([lib/ffmpeg], [
2691 if test "$host_vendor" = "apple" ; then
2692 ffmpg_config="--target-os=$ffmpeg_target_os"
2693 # handle disables first, we do individual enables later
2694 ffmpg_config="$ffmpg_config --disable-muxers --disable-encoders"
2695 ffmpg_config="$ffmpg_config --disable-devices --disable-doc"
2696 ffmpg_config="$ffmpg_config --disable-ffplay --disable-ffmpeg"
2697 ffmpg_config="$ffmpg_config --disable-ffprobe --disable-ffserver"
2698 ffmpg_config="$ffmpg_config --enable-vda --disable-crystalhd"
2699 ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2701 # handle conditional enables/disables
2702 if test "$use_debug" = "no"; then
2703 ffmpg_config="$ffmpg_config --disable-debug"
2705 if test "$use_cpu" != "no"; then
2706 ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2708 if test "$use_arch" != "no"; then
2709 ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2711 if test "$use_arch" = "arm"; then
2712 ffmpg_config="$ffmpg_config --enable-pic"
2713 ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2714 if test "$use_neon" = "yes"; then
2715 ffmpg_config="$ffmpg_config --enable-neon"
2717 ffmpg_config="$ffmpg_config --disable-neon"
2720 ffmpg_config="$ffmpg_config --disable-amd3dnow"
2722 if test "$use_ffmpeg_libvorbis" = "yes"; then
2723 ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2725 ffmpg_config="$ffmpg_config --disable-libvorbis"
2727 if test "$have_gnutls" = "yes"; then
2728 ffmpg_config="$ffmpg_config --enable-gnutls"
2731 # handle individual enables
2732 ffmpg_config="$ffmpg_config --enable-gpl"
2733 ffmpg_config="$ffmpg_config --enable-postproc"
2734 ffmpg_config="$ffmpg_config --enable-static --enable-pthreads"
2735 ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts --enable-muxer=asf --enable-muxer=ipod"
2736 ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2"
2737 ffmpg_config="$ffmpg_config --enable-protocol=http"
2738 ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2740 # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2743 ffmpg_config="$ffmpg_config --cc=clang" ;;
2745 ffmpg_config="$ffmpg_config --cc=$CC" ;;
2748 # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2749 FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2751 LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2753 # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2754 # dependency files in the right place, replace it with something that works
2757 sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2760 # ffmpeg will use yasm found at ${prefix}/bin during configure
2761 # but then hardcodes 'yasm' in config.mak, fix it.
2762 sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2763 sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2764 sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2769 LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2771 --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2773 `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2774 `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2775 `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2776 `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2777 `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2778 --target-os=$ffmpeg_target_os \
2780 --enable-muxer=spdif \
2781 --enable-muxer=adts \
2782 --enable-muxer=asf \
2783 --enable-muxer=ipod \
2784 --disable-encoders \
2785 --enable-encoder=ac3 \
2786 --enable-encoder=aac \
2787 --enable-encoder=wmav2 \
2788 `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2789 --disable-decoder=mpeg_xvmc \
2793 --disable-ffserver \
2795 --disable-crystalhd \
2800 `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2801 `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2802 `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2803 --enable-protocol=http \
2804 `if test "$have_gnutls" = "yes"; then echo --enable-gnutls; fi` \
2806 --enable-runtime-cpudetect \
2807 `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2808 `if test "$target_platform" = "target_android" && test "$host_cpu" = "i686"; then echo --disable-mmx; fi #workaround for gcc 4.6 bug` \
2809 `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2810 else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2811 `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2813 sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2814 sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2816 ], [$USE_EXTERNAL_FFMPEG])
2818 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2823 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2824 --host=$host_alias \
2825 --build=$build_alias \
2826 --target=$target_alias \
2830 ], [$SKIP_CONFIG_DVDCSS])
2832 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2834 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src" \
2835 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2836 --host=$host_alias \
2837 --build=$build_alias \
2838 --target=$target_alias \
2844 $MAKE dvdread-config &&
2845 mkdir -p `pwd`/../includes/dvdread
2846 cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2847 cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2850 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2852 --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
2853 --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2854 --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
2855 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2856 --host=$host_alias \
2857 --build=$build_alias \
2858 --target=$target_alias \
2864 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2866 rm -f CMakeCache.txt && \
2867 CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2868 -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
2869 -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}" \
2870 -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2871 -DCMAKE_INSTALL_PREFIX="${prefix}" \
2872 -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
2873 -DINCLUDE_INSTALL_DIR:PATH="${includedir}" \
2874 -DLIB_INSTALL_DIR:PATH="${libdir}" \
2875 -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" \
2876 -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2877 if test "$host_vendor" = "apple" ; then
2878 # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2879 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2880 sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2881 sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2884 ], [$DISABLE_PROJECTM])
2886 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2889 CXXFLAGS="$CXXFLAGS" \
2890 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2891 --host=$host_alias \
2892 --build=$build_alias \
2893 --target=$target_alias \
2899 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2900 if test "$host_vendor" = "apple"; then
2901 TEMPCFLAGS="${CFLAGS} -fgnu89-inline";
2903 TEMPCFLAGS="$CFLAGS";
2908 CFLAGS="$TEMPCFLAGS" \
2909 CXXFLAGS="$CXXFLAGS" \
2910 `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2911 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2912 --host=$host_alias \
2913 --build=$build_alias \
2914 --target=$target_alias \
2915 --without-xscreensaver \
2918 --disable-fieldlines \
2922 --disable-hyperspace \
2925 if echo "$ARCH" | grep -q freebsd ; then
2926 sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
2930 XB_CONFIG_MODULE([lib/cpluff], [
2931 ./configure --disable-nls \
2932 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2933 --host=$host_alias \
2934 --build=$build_alias \
2935 --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
2936 #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
2939 XB_CONFIG_MODULE([lib/gtest], [
2944 --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2945 --host=$host_alias \
2946 --build=$build_alias \
2947 --target=$target_alias \
2951 ], [$SKIP_CONFIG_GTEST])
2953 XB_CONFIG_MODULE([pvr-addons], [
2955 --prefix="${prefix}" \
2956 --host=$host_alias \
2957 --build=$build_alias \
2958 --target=$target_alias \
2962 CXXFLAGS="$CXXFLAGS"
2963 ], [$DISABLE_PVR_ADDON_CONFIG])
2967 final_message="$final_message\n prefix:\t$prefix\n$dashes"
2968 echo -e "$final_message\n"