Remove LiveTV menu.
[vuplus_xbmc] / configure.in
1 #                                               -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
3
4 AC_PREREQ(2.59)
5 AC_INIT([xbmc], [13.1.0], [http://issues.xbmc.org])
6 AC_CONFIG_HEADERS([xbmc/config.h])
7 AH_TOP([#pragma once])
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])
12
13 AC_CONFIG_AUX_DIR([build-aux])
14 AM_INIT_AUTOMAKE([foreign])
15 AC_CANONICAL_HOST
16
17 tolower(){
18   echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
19 }
20
21 # workaround for autotools that don't set this
22 abs_top_srcdir=${abs_top_srcdir=$(cd $srcdir; pwd)}
23
24 # check for enabling additional players
25 AC_DEFUN([XB_ADD_PLAYER],
26 [
27   AC_MSG_CHECKING([for $2])
28   case $add_players in
29     *$2*)
30       AC_SUBST([USE_$1], 1)
31       AC_DEFINE([HAS_$1], 1, [using $2])
32       AC_MSG_RESULT([enabling $2])
33       ;;
34     *)
35       AC_MSG_RESULT([$2 is not enabled])
36   esac
37 ])
38
39 # check for enabling additional codecs
40 AC_DEFUN([XB_ADD_CODEC],
41 [
42   AC_MSG_CHECKING([for $2])
43   case $3 in
44     *$2*)
45       use_codec_$2="yes"
46       AC_SUBST([USE_$1], 1)
47       AC_DEFINE([HAS_$1], 1, [using $2])
48       AC_MSG_RESULT([enabling $2])
49       ;;
50     *)
51       AC_MSG_RESULT([$2 is not enabled])
52   esac
53 ])
54
55 # check for library basenames
56 AC_DEFUN([XB_FIND_SONAME],
57 [
58   if echo "$host" | grep -q freebsd ; then
59     AC_MSG_CHECKING([for lib$2 soname])
60     $1_SONAME=[`ldconfig -r | sed -n "s;.* \(/.*lib$2\.so.*\)$;\1;p" | head -n 1`]
61     if test x$$1_SONAME != x ; then
62       $1_SONAME=[`basename $$1_SONAME`]
63     fi
64   elif [[ "$host_vendor" != "apple" ]]; then
65     AC_MSG_CHECKING([for lib$2 soname])
66     $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
67     if [[ -z $$1_FILENAME ]]; then
68       #try gold linker syntax
69       $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "lib$2")
70     fi
71     if [[ ! -z $$1_FILENAME ]]; then
72       $1_SONAME=$($OBJDUMP -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}')
73     fi
74   else
75     AC_MSG_CHECKING([for lib$2 dylib])
76     gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
77     env_lib_path=[`echo $LDFLAGS | sed 's/-L[ ]*//g'`]
78     if test "$cross_compiling" = yes; then
79       host_lib_path=""
80     else
81       host_lib_path="/usr/lib /usr/local/lib"
82     fi
83     for path in $gcc_lib_path $env_lib_path $host_lib_path; do
84       lib=[`ls -- $path/lib$2.dylib 2>/dev/null`]
85       if test x$lib != x; then
86         # we want the path/name that is embedded in the dylib 
87         $1_FILENAME=[`otool -L $lib | grep -v lib$2.dylib | grep lib$2 | awk '{V=1; print $V}'`]
88         $1_SONAME=[`basename $$1_FILENAME`]
89       fi
90     done
91   fi
92   if [[ -z "$$1_SONAME" ]]; then
93     AC_MSG_RESULT([no])
94     if test -z "$3" || test "x${$3}" = "xyes"; then
95       AC_MSG_ERROR([Unable to determine soname of lib$2 library])
96     else
97       AC_MSG_WARN([Unable to determine soname of lib$2 library])
98       $3=no
99       AC_MSG_WARN([lib$2 support disabled])
100     fi
101   else
102     AC_MSG_RESULT([$$1_SONAME])
103     AC_SUBST($1_SONAME)
104   fi
105 ])
106
107 # Function to push and pop libs and includes for a command
108 AC_DEFUN([XB_PUSH_FLAGS], [
109   SAVE_LIBS="$LIBS"
110   SAVE_INCLUDES="$INCLUDES"
111   LIBS="[$2]"
112   INCLUDES="[$1]"
113   [$3]
114   LIBS="$SAVE_LIBS"
115   INCLUDES="$SAVE_INCLUDES"
116 ])
117
118 # General message strings
119 configure_debug="ERROR: this is a configure debug statement"
120 missing_library="Could not find a required library. Please see the README for your platform."
121 missing_headers="Could not find some required headers. Please see the README for your platform."
122 missing_program="Could not find a required program. Please see the README for your platform."
123 xrandr_not_found="== Could not find libXRandR. SDL will be used for resolution support. =="
124 xrandr_disabled="== XRandR support disabled. SDL will be used for resolution support. =="
125 waveform_enabled="== WAVEFORM enabled =="
126 waveform_disabled="== WAVEFORM disabled =="
127 spectrum_enabled="== SPECTRUM enabled =="
128 spectrum_disabled="== SPECTRUM disabled =="
129 goom_enabled="== GOOM enabled. =="
130 goom_disabled="== GOOM disabled. =="
131 alsa_disabled="== ALSA support disabled. =="
132 rsxs_enabled="== RSXS enabled. =="
133 rsxs_disabled="== RSXS disabled. =="
134 fishbmc_enabled="== FishBMC enabled. =="
135 fishbmc_disabled="== FishBMC disabled. =="
136 projectm_enabled="== ProjectM enabled. =="
137 projectm_disabled="== ProjectM disabled. =="
138 wayland_enabled="== Wayland enabled. =="
139 wayland_disabled="== Wayland disabled. =="
140 x11_enabled="== X11 enabled. =="
141 x11_disabled="== X11 disabled. =="
142 pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
143 pulse_disabled="== PulseAudio support disabled. =="
144 dvdcss_enabled="== DVDCSS support enabled. =="
145 dvdcss_disabled="== DVDCSS support disabled. =="
146 hal_not_found="== Could not find hal. HAL support disabled. =="
147 halstorage_not_found="== Could not find hal-storage. HAL support disabled. =="
148 hal_disabled="== HAL support disabled. =="
149 avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
150 avahi_disabled="== Avahi support disabled. =="
151 mdnsembedded_not_found="== Could not find mDNSEmbedded. Might prevent zeroconf support. =="
152 mdnsembedded_disabled="== mDNSEmbedded support disabled. =="
153 vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
154 vdpau_disabled="== VDPAU support manually disabled. =="
155 vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
156 vaapi_disabled="== VAAPI support manually disabled. =="
157 crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
158 crystalhd_disabled="== CrystalHD support manually disabled. =="
159 vtbdecoder_enabled="== VTBDecoder support enabled. =="
160 vtbdecoder_disabled="== VTBDecoder support manually disabled. =="
161 openmax_disabled="== OpenMax support manually disabled. =="
162 openmax_not_found="== Could not find libnvomx. OpenMax support disabled. =="
163 ssh_not_found="== Could not find libssh. =="
164 ssh_disabled="== SSH SFTP disabled. =="
165 librtmp_not_found="== Could not find libRTMP. RTMP support disabled. =="
166 librtmp_disabled="== RTMP support disabled. =="
167 libnfs_not_found="== Could not find libnfs. NFS client support disabled. =="
168 libnfs_disabled="== NFS support disabled. =="
169 libafpclient_not_found="== Could not find libafpclient. AFP client support disabled. =="
170 libafpclient_disabled="== AFP support disabled. =="
171 libshairport_not_found="== Could not find libshairport. =="
172 libshairplay_not_found="== Could not find libshairplay. =="
173 samba_disabled="== SAMBA support disabled. =="
174 libplist_not_found="== Could not find libplist. AirPlay support disabled. =="
175 libplist_disabled="== AirPlay support disabled. =="
176 alsa_not_found="== Could not find ALSA. ALSA support disabled. =="
177 dbus_not_found="== Could not find DBUS. DBUS support disabled. =="
178 libcap_disabled="== Capabilities detection support disabled. =="
179 libcap_not_found="== Could not find libcap. Capabilities detection support disabled. =="
180 gtest_enabled="== Google Test Framework will be configured. =="
181 gtest_disabled="== Google Test Framework will not be configured. =="
182
183 libudev_not_found="== Could not find libudev. Will use polling to check for device changes. =="
184 libudev_disabled="== udev support disabled. Will use polling to check for device changes. =="
185 libusb_not_found="== Could not find libusb. Plug and play USB device support will not be available. =="
186 libusb_disabled="== libusb disabled. Plug and play USB device support will not be available. =="
187 libusb_disabled_udev_found="== libusb disabled. =="
188 libcec_enabled="== libcec enabled. =="
189 libcec_disabled="== libcec disabled. CEC adapter support will not be available. =="
190
191 # External library message strings
192 external_libraries_enabled="== Use of all supported external libraries enabled. =="
193 external_libraries_disabled="== Use of all supported external libraries disabled. =="
194 dashes="------------------------"
195 final_message="\n  XBMC Configuration:"
196 final_message="\n$dashes$final_message\n$dashes"
197
198 AC_ARG_ENABLE([shared-lib],
199   [AS_HELP_STRING([--enable-shared-lib],
200   [build libxbmc. helpful for tests (default is no)])],
201   [build_shared_lib=$enableval],
202   [build_shared_lib=no])
203
204 AC_ARG_ENABLE([debug],
205   [AS_HELP_STRING([--enable-debug],
206   [enable debugging information (default is yes)])],
207   [use_debug=$enableval],
208   [use_debug=yes])
209
210 AC_ARG_WITH([arch],
211   [AS_HELP_STRING([--with-arch],
212   [build with given arch passing to internal ffmpeg (default is no, needed for crosscompiling)])],
213   [use_arch=$withval],
214   [use_arch=no])
215
216 AC_ARG_WITH([platform],
217   [AS_HELP_STRING([--with-platform],
218   [use a pre-configured config for common arm boards])],
219   [use_platform=$withval],
220   [use_platform=none])
221
222 AC_ARG_WITH([cpu],
223   [AS_HELP_STRING([--with-cpu],
224   [build with given cpu passing to ffmpeg (default is no)])],
225   [use_cpu=$withval],
226   [use_cpu=no])
227
228 AC_ARG_ENABLE([neon],
229   [AS_HELP_STRING([--enable-neon],
230   [enable neon passing to ffmpeg (default is no)])],
231   [use_neon=$enableval],
232   [use_neon=no])
233
234 AC_ARG_ENABLE([optimizations],
235   [AS_HELP_STRING([--enable-optimizations],
236   [enable optimization (default is yes)])],
237   [use_optimizations=$enableval],
238   [use_optimizations=yes])
239
240 AC_ARG_ENABLE([gl],
241   [AS_HELP_STRING([--enable-gl],
242   [enable OpenGL rendering (default is yes)])],
243   [use_gl=$enableval],
244   [use_gl=yes])
245
246 AC_ARG_ENABLE([gles],
247   [AS_HELP_STRING([--enable-gles],
248   [enable OpenGLES rendering (default is no)])],
249   [use_gles=$enableval],
250   [use_gles=no])
251
252 AC_ARG_ENABLE([sdl],
253   [AS_HELP_STRING([--enable-sdl],
254   [enable SDL (default is auto)])],
255   [use_sdl=$enableval],
256   [use_sdl=auto])
257
258 AC_ARG_ENABLE([vdpau],
259   [AS_HELP_STRING([--enable-vdpau],
260   [enable VDPAU decoding (default is auto)])],
261   [use_vdpau=$enableval],
262   [use_vdpau=auto])
263
264 AC_ARG_ENABLE([vaapi],
265   [AS_HELP_STRING([--enable-vaapi],
266   [enable VAAPI decoding (default is auto)])],
267   [use_vaapi=$enableval],
268   [use_vaapi=auto])
269
270 AC_ARG_ENABLE([crystalhd],
271   [AS_HELP_STRING([--enable-crystalhd],
272   [enable CrystalHD decoding (default is auto)])],
273   [use_crystalhd=$enableval],
274   [use_crystalhd=auto])
275
276 AC_ARG_ENABLE([vtbdecoder],
277   [AS_HELP_STRING([--enable-vtbdecoder],
278   [enable VTBDecoder decoding (default is auto)])],
279   [use_vtbdecoder=$enableval],
280   [use_vtbdecoder=auto])
281
282 AC_ARG_ENABLE([openmax],
283   [AS_HELP_STRING([--enable-openmax],
284   [enable OpenMax decoding (default is auto, requires OpenGLES)])],
285   [use_openmax=$enableval],
286   [use_openmax=auto])
287
288 AC_ARG_ENABLE([tegra],
289   [AS_HELP_STRING([--enable-tegra],
290   [enable Tegra2 arm (default is no)])],
291   [use_tegra=$enableval],
292   [use_tegra=no])
293
294 AC_ARG_ENABLE([profiling],
295   [AS_HELP_STRING([--enable-profiling],
296   [enable gprof profiling (default is no)])],
297   [use_profiling=$enableval],
298   [use_profiling=no])
299
300 AC_ARG_ENABLE([joystick],
301   [AS_HELP_STRING([--enable-joystick],
302   [enable SDL joystick support (default is yes)])],
303   [use_joystick=$enableval],
304   [use_joystick=yes])
305
306 AC_ARG_ENABLE([xrandr],
307   [AS_HELP_STRING([--enable-xrandr],
308   [enable XRandR support (default is yes)])],
309   [use_xrandr=$enableval],
310   [use_xrandr=yes])
311
312 AC_ARG_ENABLE([waveform],
313   [AS_HELP_STRING([--enable-waveform],
314   [enable Waveform visualisation (default is yes)])],
315   [use_waveform=$enableval],
316   [use_waveform=yes])
317
318 AC_ARG_ENABLE([spectrum],
319   [AS_HELP_STRING([--enable-spectrum],
320   [enable Spectrum visualisation (default is yes)])],
321   [use_spectrum=$enableval],
322   [use_spectrum=yes])
323
324 AC_ARG_ENABLE([goom],
325   [AS_HELP_STRING([--enable-goom],
326   [enable GOOM visualisation (default is no)])],
327   [use_goom=$enableval],
328   [use_goom=no])
329
330 AC_ARG_ENABLE([rsxs],
331   [AS_HELP_STRING([--enable-rsxs],
332   [enable really slick X screensavers (default is yes)])],
333   [use_rsxs=$enableval],
334   [use_rsxs=yes])
335
336 AC_ARG_ENABLE([fishbmc],
337   [AS_HELP_STRING([--enable-fishbmc],
338   [enable FishBMC visualisation (default is yes)])],
339   [use_fishbmc=$enableval],
340   [use_fishbmc=yes])
341
342 AC_ARG_ENABLE([projectm],
343   [AS_HELP_STRING([--enable-projectm],
344   [enable ProjectM visualisation (default is yes)])],
345   [use_projectm=$enableval],
346   [use_projectm=yes])
347
348 AC_ARG_ENABLE([wayland],
349   [AS_HELP_STRING([--enable-wayland],
350   [enable wayland (default is no) 'Linux Only'])],
351   [use_wayland=$enableval],
352   [use_wayland=no])
353
354 AC_ARG_ENABLE([x11],
355   [AS_HELP_STRING([--enable-x11],
356   [enable x11 (default is yes) 'Linux Only'])],
357   [use_x11=$enableval],
358   [use_x11=yes])
359
360 AC_ARG_ENABLE([ccache],
361   [AS_HELP_STRING([--enable-ccache],
362   [enable building with ccache feature (default is auto)])],
363   [use_ccache=$enableval],
364   [use_ccache=auto])
365
366 AC_ARG_ENABLE([alsa],
367   [AS_HELP_STRING([--disable-alsa],
368   [disable ALSA support (only for linux/freebsd)])],
369   [use_alsa=$enableval],
370   [use_alsa=yes])
371
372 AC_ARG_ENABLE([pulse],
373   [AS_HELP_STRING([--enable-pulse],
374   [enable PulseAudio support (default is auto)])],
375   [use_pulse=$enableval],
376   [use_pulse=auto])
377
378 AC_ARG_ENABLE([ssh],
379   [AS_HELP_STRING([--disable-ssh],
380   [disable SSH SFTP support (default is enabled)])],
381   [use_ssh=$enableval],
382   [use_ssh=yes])
383
384 AC_ARG_ENABLE([rtmp],
385   [AS_HELP_STRING([--enable-rtmp],
386   [enable RTMP support via librtmp (default is auto)])],
387   [use_librtmp=$enableval],
388   [use_librtmp=auto])
389
390 AC_ARG_ENABLE([samba],
391   [AS_HELP_STRING([--disable-samba],
392   [disable SAMBA support (default is enabled)])],
393   [use_samba=$enableval],
394   [use_samba=yes])
395
396 AC_ARG_ENABLE([nfs],
397   [AS_HELP_STRING([--enable-nfs],
398   [enable NFS support via libnfs (default is auto)])],
399   [use_libnfs=$enableval],
400   [use_libnfs=auto])
401
402 AC_ARG_ENABLE([afpclient],
403   [AS_HELP_STRING([--enable-afpclient],
404   [enable AFP support via libafpclient (default is auto)])],
405   [use_libafpclient=$enableval],
406   [use_libafpclient=auto])
407
408 AC_ARG_ENABLE([airplay],
409   [AS_HELP_STRING([--enable-airplay],
410   [enable AirPlay support(default is auto)])],
411   [use_airplay=$enableval],
412   [use_airplay=auto])
413
414 AC_ARG_ENABLE([airtunes],
415   [AS_HELP_STRING([--enable-airtunes],
416   [enable AirTunes support(default is auto)])],
417   [use_airtunes=$enableval],
418   [use_airtunes=auto])
419
420 AC_ARG_ENABLE([upnp],
421   [AS_HELP_STRING([--disable-upnp],
422   [disable UPnP support (default is enabled)])],
423   [use_upnp=$enableval],
424   [use_upnp=yes])
425
426 AC_ARG_ENABLE([ffmpeg_libvorbis],
427   [AS_HELP_STRING([--enable-ffmpeg-libvorbis],
428   [enable FFmpeg vorbis encoding (default is no)])],
429   [use_ffmpeg_libvorbis=$enableval],
430   [use_ffmpeg_libvorbis=no])
431
432 AC_ARG_ENABLE([dvdcss],
433   [AS_HELP_STRING([--enable-dvdcss],
434   [enable DVDCSS support (default is yes)])],
435   [use_dvdcss=$enableval],
436   [use_dvdcss=yes])
437
438 AC_ARG_ENABLE([mid],
439   [AS_HELP_STRING([--enable-mid],
440   [enable MID support (default is no)])],
441   [use_mid=$enableval],
442   [use_mid=no])
443
444 AC_ARG_ENABLE([hal],
445   [AS_HELP_STRING([--disable-hal],
446   [disable HAL support (default is enabled if hal and hal-storage is found)])],
447   [use_hal=$enableval],
448   [use_hal=yes])
449
450 AC_ARG_ENABLE([avahi],
451   [AS_HELP_STRING([--disable-avahi],
452   [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
453   [use_avahi=$enableval],
454   [use_avahi=yes])
455   
456   AC_ARG_ENABLE([mdnsembedded],
457   [AS_HELP_STRING([--disable-mdnsembedded],
458   [disable mDNSEmbedded support (default is auto)])],
459   [use_mdnsembedded=$enableval],
460   [use_mdnsembedded=auto])
461
462 AC_ARG_ENABLE([non-free],
463   [AS_HELP_STRING([--disable-non-free],
464   [disable componentents with non-compliant licenses])],
465   [use_nonfree=$enableval],
466   [use_nonfree=yes])
467
468 AC_ARG_ENABLE([asap-codec],
469   [AS_HELP_STRING([--enable-asap-codec],
470   [enable ASAP ADPCM support])],
471   [use_asap=$enableval],
472   [use_asap=no])
473
474 AC_ARG_ENABLE([mysql],
475   [AS_HELP_STRING([--disable-mysql],
476   [disable mysql])],
477   [use_mysql=$enableval],
478   [use_mysql=yes])
479
480 AC_ARG_ENABLE([webserver],
481   [AS_HELP_STRING([--disable-webserver],
482   [disable webserver])],
483   [use_webserver=$enableval],
484   [use_webserver=yes])
485
486 AC_ARG_ENABLE([optical-drive],
487   [AS_HELP_STRING([--disable-optical-drive],
488   [disable optical drive])],
489   [use_optical_drive=$enableval],
490   [use_optical_drive=yes])
491
492 AC_ARG_ENABLE([libbluray],
493   [AS_HELP_STRING([--enable-libbluray],
494   [enable libbluray support])],
495   [use_libbluray=$enableval],
496   [use_libbluray=auto])
497
498 AC_ARG_ENABLE([texturepacker],
499   [AS_HELP_STRING([--enable-texturepacker],
500   [enable texturepacker support (default is yes)])],
501   [use_texturepacker=$enableval],
502   [use_texturepacker=auto])
503
504 AC_ARG_WITH([lirc-device],
505   [AS_HELP_STRING([--with-lirc-device=file],
506   [specify the default LIRC device (default is /dev/lircd)])],
507   [lirc_device=$withval],
508   [lirc_device=/dev/lircd])
509 AC_DEFINE_UNQUOTED([LIRC_DEVICE], ["$lirc_device"], [Default LIRC device])
510
511 AC_ARG_ENABLE([udev],
512   [AS_HELP_STRING([--enable-udev],
513   [enable udev support (default is auto)])],
514   [use_libudev=$enableval],
515   [use_libudev=auto])
516
517 AC_ARG_ENABLE([libusb],
518   [AS_HELP_STRING([--enable-libusb],
519   [enable libusb support (default is auto)])],
520   [use_libusb=$enableval],
521   [use_libusb=auto])
522
523 AC_ARG_ENABLE([libcec],
524   [AS_HELP_STRING([--enable-libcec],
525   [enable libcec support (default is auto)])],
526   [use_libcec=$enableval],
527   [use_libcec=auto])
528
529 AC_ARG_ENABLE([libmp3lame],
530   [AS_HELP_STRING([--enable-libmp3lame],
531   [enable lame mp3 encoder support (default is auto)])],
532   [use_libmp3lame=$enableval],
533   [use_libmp3lame=auto])
534
535 AC_ARG_ENABLE([libvorbisenc],
536   [AS_HELP_STRING([--enable-libvorbisenc],
537   [enable vorbis encoder support (default is auto)])],
538   [use_libvorbisenc=$enableval],
539   [use_libvorbisenc=auto])
540
541 AC_ARG_ENABLE([libcap],
542   [AS_HELP_STRING([--enable-libcap],
543   [enable libcap support (default is auto)])],
544   [use_libcap=$enableval],
545   [use_libcap=auto])
546
547 AC_ARG_ENABLE([player],
548   [AS_HELP_STRING([--enable-player],
549   [enable additional players from a list of comma separated names, (default is none, choices are omxplayer)])],
550   [add_players=$enableval],
551   [add_players=no])
552
553 AC_ARG_ENABLE([gtest],
554   [AS_HELP_STRING([--enable-gtest],
555   [configure Google Test Framework (default is no)])],
556   [configure_gtest=$enableval],
557   [configure_gtest=no])
558
559 AC_ARG_ENABLE([codec],
560   [AS_HELP_STRING([--enable-codec],
561   [enable additional codecs from a list of comma separated names, (default is none, choices are amcodec, libstagefright)])],
562   [add_codecs=$enableval],
563   [add_codecs=no])
564
565 ### External libraries options
566 AC_ARG_ENABLE([external-libraries],
567   [AS_HELP_STRING([--enable-external-libraries],
568   [enable use of all supported external libraries (default is no) 'Linux only'])],
569   [use_external_libraries=$enableval],
570   [use_external_libraries=no])
571
572 AC_ARG_ENABLE([libav-compat],
573   [AS_HELP_STRING([--enable-libav-compat],
574   [build a wrapper around libav to provide the functions needed by XBMC. This is
575    *not* supported by XBMC developers and is provided only for convenience. (default is no) 'Linux only'])],
576   [use_libav_hacks=$enableval],
577   [use_libav_hacks=no])
578
579 ### End of external library options
580
581 if test "x$host_vendor" != "xapple"; then
582   DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
583   DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
584 fi
585
586 # Checks for programs.
587 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
588 AC_PROG_CC
589 AX_PROG_CC_FOR_BUILD
590 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
591 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
592 AC_PROG_CXX
593 AX_PROG_CXX_FOR_BUILD
594 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
595 AC_PROG_LIBTOOL
596 AC_PROG_AWK
597 AC_PROG_LN_S
598 AC_PROG_MAKE_SET
599 PKG_PROG_PKG_CONFIG
600 MAKE="${MAKE:-make}"
601 OBJDUMP="${OBJDUMP:-objdump}"
602 READELF="${READELF:-readelf}"
603 NM="${NM:-nm}"
604
605 use_external_ffmpeg=no
606 use_static_ffmpeg=no
607
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))
615
616 # host detection and setup
617 case $host in
618   i*86*-linux-android*)
619      target_platform=target_android
620      ARCH="i486-linux"
621      use_arch="x86"
622      use_cpu="i686"
623      ffmpeg_target_os=linux
624      use_joystick=no
625      use_gles=yes
626      use_optical_drive=no
627      use_sdl=no
628      use_x11=no
629      build_shared_lib=yes    
630      ;;
631   i*86*-linux-gnu*|i*86*-*-linux-uclibc*)
632      ARCH="i486-linux"
633      if test "$use_cpu" = "no" -a "$cross_compiling" = "yes";  then
634         use_arch="x86"
635         use_cpu="i686"
636      fi
637      use_static_ffmpeg=yes
638      ;;
639   x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
640      ARCH="x86_64-linux"
641      if test "$use_cpu" = "no" -a "$cross_compiling" = "yes";  then
642         use_arch="x86_64"
643         use_cpu="x86_64"
644      fi
645      use_static_ffmpeg=yes
646      ;;
647   i386-*-freebsd*)
648      ARCH="x86-freebsd"
649      MAKE="gmake"
650      ;;
651   amd64-*-freebsd*)
652      ARCH="x86_64-freebsd"
653      MAKE="gmake"
654      ;;
655   arm-apple-darwin*)
656      use_joystick=no
657      use_neon=yes
658      use_libcec=no
659      use_crystalhd=no
660      use_vtbdecoder=yes
661      use_optical_drive=no
662      use_dvdcss=no
663      use_gles=yes
664      use_cpu=cortex-a8
665      ARCH="arm-osx"
666      use_arch="arm"
667      PYTHON_VERSION="2.6"
668      PYTHON_LDFLAGS="-L${prefix}/lib -lpython2.6"
669      PYTHON_CPPFLAGS="-I${prefix}/include/python2.6"
670      PYTHON_SITE_PKG="${prefix}/lib/python2.6/site-packages"
671      PYTHON_NOVERSIONCHECK="no-check"
672      ;;
673   *86*-apple-darwin*)
674      use_joystick=no
675      use_vtbdecoder=no
676      ARCH="x86-osx"
677      ;;
678   powerpc-apple-darwin*)
679      use_joystick=no
680      use_vtbdecoder=no
681      use_crystalhd=no
682      ARCH="powerpc-osx"
683      use_arch="ppc"
684      ;;
685   powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*)
686      ARCH="powerpc-linux"
687      ;;
688   powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*)
689      ARCH="powerpc64-linux"
690      ;;
691   arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
692      ARCH="arm"
693      use_arch="arm"
694      ffmpeg_target_os=linux
695      use_joystick=no
696      use_neon=yes
697      use_gles=yes
698      use_sdl=no
699      use_x11=no
700      use_wayland=no
701      use_static_ffmpeg=yes
702      ;;
703   arm*-*linux-android*)
704      target_platform=target_android
705      use_arch="arm"
706      use_cpu=cortex-a9
707      ARCH="arm"
708      ffmpeg_target_os=linux
709      use_joystick=no
710      use_neon=yes
711      use_gles=yes
712      use_optical_drive=no
713      use_sdl=no
714      use_x11=no
715      use_wayland=no
716      build_shared_lib=yes
717      ;;
718 # oskwon
719   mipsel-*-linux*|mipsel*linux)
720      ARCH="mips"
721      use_arch="mips"
722      ffmpeg_target_os=linux
723      use_joystick=no
724      use_gles=yes
725      use_sdl=no
726      use_x11=no
727      use_wayland=no
728      use_static_ffmpeg=no
729      ;;
730   *)
731      AC_MSG_ERROR(unsupported host ($host))
732 esac
733 AC_SUBST([ARCH])
734
735 check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
736 if test "x$check_sdl_arch" = "xi386" ; then
737   DARWIN_NATIVE_ARCH=-m32
738 elif test "x$check_sdl_arch" = "xx86_64" ; then
739   DARWIN_NATIVE_ARCH=-m64
740 fi
741 AC_SUBST([DARWIN_NATIVE_ARCH])
742
743 if test "$target_platform" = "target_android" ; then
744   USE_ANDROID=1
745   webserver_checkdepends=yes
746   CFLAGS="$CFLAGS -Wno-psabi"
747   DROID_DVDLIB_SEEK64="-D_FILE_OFFSET_BITS=64 -D_OFF_T_DEFINED_ -Doff_t=off64_t -Dlseek=lseek64"
748   CXXFLAGS="$CXXFLAGS -Wno-psabi"
749   AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
750 fi
751
752 case $use_platform in
753   raspberry-pi)
754      target_platform=target_raspberry_pi
755      use_neon=no
756      use_arch="arm"
757      use_cpu=arm1176jzf-s
758      use_hardcoded_tables="yes"
759      use_alsa="no"
760      ARCH="arm"
761      AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
762      USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
763      CFLAGS="$CFLAGS"
764      CXXFLAGS="$CXXFLAGS"
765      ffmpeg_target_os=linux
766      ;;
767 # oskwon
768   dvbbox)
769      target_platform=target_dvbbox
770      ARCH="mips"
771      use_arch="mips"
772      ffmpeg_target_os=linux
773      use_joystick=no
774      use_gles=yes
775      use_sdl=no
776      use_x11=no
777      use_alsa="no"
778      use_wayland=no
779      use_static_ffmpeg=no
780      AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
781      USE_DVBBOX_EGL=1
782      CFLAGS="$CFLAGS"
783      CXXFLAGS="$CXXFLAGS"
784      ;;
785 esac
786
787 XBMC_SETUP_ARCH_DEFINES()
788
789 # check for GIT_REV
790 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
791 if test "$GIT_REV" = ""; then
792   if test -f VERSION ; then
793     GIT_REV=$(awk 'END{print substr($1,1,16)}' VERSION)
794   elif test "$HAVE_GIT" = "yes" -a -d ${abs_top_srcdir}/.git; then
795     GIT_REV=$(git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}')
796   else
797     GIT_REV="Unknown"
798   fi
799 fi
800 final_message="$final_message\n  git Rev.:\t${GIT_REV}"
801
802 if test "$host_vendor" = "apple"; then
803   echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
804 else
805   SDL_DEFINES="$SDL_DEFINES -D'GIT_REV=\"$GIT_REV\"'"
806 fi
807
808 if test "$build_shared_lib" = "yes"; then
809   final_message="$final_message\n Shared lib\tYes"
810   AC_SUBST(USE_LIBXBMC,1)
811 fi
812
813
814 # platform debug flags
815 if test "$use_debug" = "yes"; then
816   final_message="$final_message\n  Debugging:\tYes"
817   if test "$use_profiling" = "yes"; then
818     final_message="$final_message\n  Profiling:\tYes"
819     DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
820   else
821     final_message="$final_message\n  Profiling:\tNo"
822     DEBUG_FLAGS="-g -D_DEBUG -Wall"
823   fi
824 else
825   final_message="$final_message\n  Debugging:\tNo"
826   if test "$use_profiling" = "yes"; then
827     final_message="$final_message\n  Profiling:\tYes"
828     DEBUG_FLAGS="-pg -DNDEBUG=1"
829   else
830     final_message="$final_message\n  Profiling:\tNo"
831     DEBUG_FLAGS="-DNDEBUG=1"
832   fi
833 fi
834 CFLAGS="$CFLAGS $DEBUG_FLAGS"
835 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
836
837
838 if test "$use_optimizations" = "yes"; then
839   final_message="$final_message\n  Optimization:\tYes"
840   if test "$target_platform" = "target_raspberry_pi"; then
841     CXXFLAGS="$CXXFLAGS"
842     CFLAGS="$CFLAGS"
843   else
844     CXXFLAGS="-O2 $CXXFLAGS"
845     CFLAGS="-O2 $CFLAGS"
846   fi
847 else
848   final_message="$final_message\n  Optimization:\tNo"
849 fi
850
851
852 # platform specific flags
853 if echo "$ARCH" | grep -q "freebsd" ; then
854   LOCALBASE="${LOCALBASE:-/usr/local}"
855   CFLAGS="$CFLAGS -I$LOCALBASE/include"
856   CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
857   CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
858   LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
859   FFMPEG_EXTRACFLAGS="-I$LOCALBASE/include"
860 fi
861 if test "$host_vendor" = "apple" ; then
862   # standard xbmc paths
863   INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
864   if test "$use_arch" != "arm"; then
865     LIBS="$LIBS -framework ApplicationServices"
866     LIBS="$LIBS -framework AudioUnit"
867     LIBS="$LIBS -framework AudioToolbox"
868     LIBS="$LIBS -framework Cocoa"
869     LIBS="$LIBS -framework CoreAudio"
870     LIBS="$LIBS -framework CoreVideo"
871     LIBS="$LIBS -framework CoreServices"
872     LIBS="$LIBS -framework CoreFoundation"
873     LIBS="$LIBS -framework DiskArbitration"
874     LIBS="$LIBS -framework IOKit"
875     LIBS="$LIBS -framework IOSurface"
876     LIBS="$LIBS -framework QuartzCore"
877     LIBS="$LIBS -framework SystemConfiguration"
878     LIBS="$LIBS -framework VideoDecodeAcceleration"
879   fi
880   USE_EXTERNAL_FFMPEG=1
881 elif test "$target_platform" = "target_raspberry_pi"; then
882   ARCH="arm"
883   use_arch="arm"
884 elif test "$use_arch" = "arm"; then
885   CFLAGS="$CFLAGS -mno-apcs-stack-check"
886   CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
887   FFMPEG_EXTRACFLAGS=""
888   if test "$use_tegra" = "yes"; then
889     # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support 
890     SAVE_CFLAGS="$CFLAGS"
891     CFLAGS="-mfpu=vfpv3-d16"
892     AC_COMPILE_IFELSE(
893       [AC_LANG_SOURCE([int foo;])],
894       [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
895         CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
896         FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
897         use_cpu=cortex-a9],
898       [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
899         CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"    
900         use_cpu=cortex-a8])
901   else
902     if test "$use_neon" = "yes"; then 
903       CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
904       CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
905       FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
906     fi
907   fi
908 fi
909 if test "$use_static_ffmpeg" = "yes"; then
910   USE_STATIC_FFMPEG=1
911   AC_DEFINE([USE_STATIC_FFMPEG], [1], [link ffmpeg statically])
912   # ffmpeg may depend on gnutls and vorbisenc, we add those libs at the end of linker
913   # command in order to resolve any missing symbols
914   GNUTLS_ALL_LIBS=`${PKG_CONFIG} --static --libs-only-l --silence-errors gnutls`
915   HOGWEED_ALL_LIBS=`${PKG_CONFIG} --static --libs-only-l --silence-errors hogweed nettle`
916   VORBISENC_ALL_LIBS=`${PKG_CONFIG} --static --libs-only-l --silence-errors vorbisenc`
917 fi 
918
919 # Checks for library functions.
920 AC_FUNC_ALLOCA
921 AC_FUNC_CHOWN
922 AC_FUNC_CLOSEDIR_VOID
923 AC_FUNC_ERROR_AT_LINE
924 AC_FUNC_FSEEKO
925 AC_PROG_GCC_TRADITIONAL
926 AC_FUNC_LSTAT
927 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
928 AC_FUNC_MEMCMP
929 AC_FUNC_MKTIME
930 AC_FUNC_MMAP
931 # Boxee is apparently having compile problems
932 # if HAVE_REALLOC is defined.  Sort this later.
933 #AC_FUNC_REALLOC
934 AC_FUNC_SELECT_ARGTYPES
935 AC_FUNC_SETVBUF_REVERSED
936 AC_TYPE_SIGNAL
937 AC_FUNC_STAT
938 AC_FUNC_STRCOLL
939 AC_FUNC_STRFTIME
940 AC_FUNC_STRTOD
941 AC_FUNC_UTIME_NULL
942 AC_FUNC_VPRINTF
943 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])
944
945 # Check for various sizes
946 AC_CHECK_SIZEOF([int])
947 AC_CHECK_SIZEOF([size_t])
948
949 # Check for intrinsics
950 AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
951 AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
952                 [have_builtin_sync_add_and_fetch=yes],
953                 [have_builtin_sync_add_and_fetch=no])
954 AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
955 if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
956     AC_DEFINE(HAS_BUILTIN_SYNC_ADD_AND_FETCH, 1,
957         [Define to 1 if your compiler supports the __sync_add_and_fetch() intrinsic.])
958 fi
959
960 AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
961 AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
962                 [have_builtin_sync_sub_and_fetch=yes],
963                 [have_builtin_sync_sub_and_fetch=no])
964 AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
965 if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
966     AC_DEFINE(HAS_BUILTIN_SYNC_SUB_AND_FETCH, 1,
967         [Define to 1 if your compiler supports the __sync_sub_and_fetch() intrinsic.])
968 fi
969
970 AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
971 AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
972                 [have_builtin_sync_val_compare_and_swap=yes],
973                 [have_builtin_sync_val_compare_and_swap=no])
974 AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
975 if test "x$have_builtin_sync_val_compare_and_swap" = "xyes"; then
976     AC_DEFINE(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP, 1,
977         [Define to 1 if your compiler supports the __sync_val_compare_and_swap() intrinsic.])
978 fi
979
980 # Check for u16string/u32string declarations
981 AC_LANG_PUSH([C++])
982 AC_CHECK_TYPES([std::u16string, std::u32string], [], [], [[#include <string>]])
983 AC_CHECK_TYPES([char16_t, char32_t])
984 AC_CHECK_SIZEOF([wchar_t])
985 AC_LANG_POP([C++])
986
987 # Add top source directory for all builds so we can use config.h
988 INCLUDES="-I\$(abs_top_srcdir) $INCLUDES" 
989
990 # Check inotify availability
991 AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
992
993 # Checks for boost headers using CXX instead of CC
994 AC_LANG_PUSH([C++])
995 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
996 AC_LANG_POP([C++])
997
998 # Python
999 if test -z "$PYTHON_NOVERSIONCHECK"; then
1000   AX_PYTHON_DEVEL([>= 2.4])
1001   PYTHON_VERSION=$ac_python_version
1002 fi
1003
1004 if test -z "$PYTHON_VERSION"; then
1005   AC_MSG_ERROR([Can't find a Python version.])
1006 else
1007   LIBS="$LIBS $PYTHON_LDFLAGS"
1008   AC_MSG_NOTICE([Using Python $PYTHON_VERSION])
1009 fi
1010
1011 # Wayland
1012 if test "$use_wayland" = "yes" && test "$host_vendor" != "apple"; then
1013   AC_MSG_NOTICE($wayland_enabled)
1014   PKG_CHECK_MODULES([WAYLAND_CLIENT],    [wayland-client],
1015     [INCLUDES="$INCLUDES $WAYLAND_CLIENT_CFLAGS";
1016      WAYLAND_CLIENT_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-client\`; echo ${LIBRARY:2}`;
1017      XB_FIND_SONAME([WAYLAND_CLIENT_LIBRARY], ${WAYLAND_CLIENT_LIBRARY_LINE})],
1018      AC_MSG_ERROR($missing_library))
1019   PKG_CHECK_MODULES([WAYLAND_EGL],    [wayland-egl],
1020     [INCLUDES="$INCLUDES $WAYLAND_EGL_CFLAGS";
1021      WAYLAND_EGL_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l wayland-egl\`; echo ${LIBRARY:2:11}`
1022      XB_FIND_SONAME([WAYLAND_EGL_LIBRARY], ${WAYLAND_EGL_LIBRARY_LINE})],
1023     AC_MSG_ERROR($missing_library))
1024   PKG_CHECK_MODULES([XKBCOMMON],    [xkbcommon],
1025     [INCLUDES="$INCLUDES $XKBCOMMON_CFLAGS";
1026      XKBCOMMON_LIBRARY_LINE=`LIBRARY=\`${PKG_CONFIG} --libs-only-l xkbcommon\`; echo ${LIBRARY:2}`;
1027      XB_FIND_SONAME([XKBCOMMON_LIBRARY], $XKBCOMMON_LIBRARY_LINE)],
1028     AC_MSG_ERROR($missing_library))
1029   AC_DEFINE([HAVE_WAYLAND], [1], [Define to 1 if you have Wayland libs installed.])
1030   AC_DEFINE([HAVE_XKBCOMMON], [1], [Define to 1 if you have libxkbcommon installed.])
1031
1032   # If we are also building with tests then we want to build
1033   # wayland tests as well
1034   if test "$configure_gtest" = "yes"; then
1035     have_weston_sdk=no;
1036     PKG_CHECK_MODULES([PIXMAN],
1037                       [pixman-1],have_pixman=yes,
1038                       [AC_MSG_WARN($missing_library); have_pixman=no])
1039     PKG_CHECK_MODULES([WESTON],
1040                       [weston >= 1.1.90],[have_weston_sdk=yes],
1041                       [have_weston_sdk=no; AC_MSG_WARN($missing_library)])
1042
1043     AC_CHECK_PROG(WAYLAND_SCANNER, wayland-scanner, "wayland-scanner", "no")
1044     if test "x$WAYLAND_SCANNER" == "xno"; then
1045       AC_MSG_WARN($missing_program)
1046     else
1047       if test "x$have_weston_sdk" == "xyes" && test "x$have_pixman" = "xyes"; then
1048         AC_SUBST(WAYLAND_TEST_INCLUDES,"$WAYLAND_CLIENT_CFLAGS $XKBCOMMON_CFLAGS $PIXMAN_CFLAGS $WESTON_CFLAGS")
1049         AC_SUBST(WAYLAND_TEST_LIBS,"$WAYLAND_CLIENT_LIBS $XKBCOMMON_LIBS $PIXMAN_LIBS $WESTON_LIBS")
1050         AC_DEFINE([HAVE_WESTON_SDK], [1], [Define to 1 if Weston SDK is installed.])
1051         AC_SUBST(USE_WAYLAND_TEST_EXTENSION, 1)
1052       fi
1053       AC_SUBST(WAYLAND_SCANNER)
1054       AC_DEFINE([HAVE_WAYLAND_XBMC_PROTO],[1],["Define to 1 if the wayland test-protocol will be built"])
1055     fi
1056   fi
1057
1058   # Disable SDL and X11 builds
1059   use_sdl=no
1060   use_joystick=no
1061   use_x11=no
1062
1063   # Wayland requires the EGL "window system" which in turn only supports
1064   # the OpenGL ES API, so enable gles support
1065   use_gles=yes
1066 else
1067   AC_MSG_RESULT($wayland_disabled)
1068 fi
1069
1070 # Checks for platforms libraries.
1071 if test "$use_gles" = "yes"; then
1072   use_gl="no"
1073   # GLES overwrites GL if both set to yes.
1074   if test "$host_vendor" = "apple" ; then
1075     AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1076     AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1077     AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1078   else
1079     if test "$target_platform" = "target_raspberry_pi"; then
1080       AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."])
1081       AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."])
1082       AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
1083       LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm"
1084     else
1085       AC_CHECK_LIB([EGL],   [main],, AC_MSG_ERROR($missing_library))
1086       AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
1087     fi
1088   fi
1089 else
1090   if test "$use_gl" = "yes"; then
1091     if test "$host_vendor" = "apple" ; then
1092       # linking to OpenGL.framework instead of libGL, libGLU so AC_CHECK_LIB will fail
1093       LIBS="$LIBS -framework OpenGL"
1094       AC_DEFINE([HAVE_LIBGL],[1],["Define to 1 if you have the `GL' library (-lGL)."])
1095       AC_MSG_RESULT(== WARNING: OpenGL support is assumed.)
1096       AC_DEFINE([HAVE_LIBGLU],[1],["Define to 1 if you have the `GLU' library (-lGLU)."])
1097       AC_MSG_RESULT(== WARNING: OpenGLU support is assumed.)
1098       AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1099     else
1100       AC_CHECK_LIB([GL],  [main],, AC_MSG_ERROR($missing_library))
1101       AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
1102       AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
1103     fi
1104   else
1105     AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
1106     AC_CHECK_LIB([SDL_gfx],[main])
1107   fi
1108 fi
1109
1110 # platform common libraries
1111 if test "$use_mysql" = "yes"; then
1112   AC_PATH_PROG(MYSQL_CONFIG, mysql_config,"no")
1113   if test "x$MYSQL_CONFIG" != "xno"; then
1114     AC_DEFINE([HAVE_MYSQL],[1],["Define to 1 if you have the `mysql' library (-lmysqlclient)."])
1115     INCLUDES="$INCLUDES `$MYSQL_CONFIG --include`"
1116     MYSQL_LIBS=`$MYSQL_CONFIG --libs`
1117     LIBS="$LIBS $MYSQL_LIBS"
1118     AC_SUBST(MYSQL_LIBS)
1119   else
1120     AC_MSG_ERROR($missing_program)
1121   fi
1122 fi
1123 AC_CHECK_HEADER([ass/ass.h],, AC_MSG_ERROR($missing_library))
1124 AC_CHECK_HEADER([mpeg2dec/mpeg2.h],, AC_MSG_ERROR($missing_library))
1125 AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
1126   AC_INCLUDES_DEFAULT()
1127   [#include <mpeg2dec/mpeg2.h>])
1128 AC_CHECK_HEADER([mad.h],,            AC_MSG_ERROR($missing_library))
1129 AC_CHECK_HEADER([jpeglib.h],,        AC_MSG_ERROR($missing_library))
1130 AC_CHECK_HEADER([samplerate.h],,     AC_MSG_ERROR($missing_library))
1131 AC_CHECK_HEADER([ogg/ogg.h],,        AC_MSG_ERROR($missing_library))
1132 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
1133 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
1134 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
1135
1136 AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
1137 XB_FIND_SONAME([CURL], [curl])
1138 AC_MSG_CHECKING([for CRYPTO_set_locking_callback(0) in $CURL_SONAME])
1139 if test "$host_vendor" = "apple" ; then
1140   libchecker="$NM"
1141   searchpattern="T [_]?CRYPTO_set_locking_call"
1142 else
1143   libchecker="$READELF -s"
1144   searchpattern="CRYPTO_set_locking_call"
1145 fi
1146 if test $($libchecker $CURL_FILENAME  | grep -Eq "${searchpattern}" ; echo $?) -eq 0 ; then
1147   AC_MSG_RESULT(yes)
1148   AC_DEFINE([HAS_CURL_STATIC], [1], [Whether OpenSSL inside libcurl is static.])
1149 else
1150   AC_MSG_RESULT(no)
1151 fi
1152
1153 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
1154 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
1155 if test "$gcrypt_headers_available" = "yes"; then
1156    # if we have the headers then we must have the lib
1157    AC_CHECK_LIB([gpg-error],[main],, AC_MSG_ERROR($missing_library))
1158    AC_CHECK_LIB([gcrypt],[gcry_control],, AC_MSG_ERROR($missing_library))
1159    AC_DEFINE([HAVE_GCRYPT],[1],[Define if we have gcrypt])
1160 fi
1161 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"))
1162
1163 AC_CHECK_LIB([bz2],         [main],, AC_MSG_ERROR($missing_library))
1164 AC_CHECK_LIB([jpeg],        [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1165 AC_CHECK_LIB([tiff],        [main],, AC_MSG_ERROR($missing_library))
1166 if echo "$ARCH" | grep -q freebsd; then
1167 AC_CHECK_LIB([pthread],     [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
1168 AC_CHECK_LIB([pthread],     [pthread_set_name_np],
1169   AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
1170   AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
1171 else
1172 if test "$target_platform" != "target_android" ; then
1173   AC_CHECK_LIB([pthread],     [main],, AC_MSG_ERROR($missing_library))
1174   AC_CHECK_LIB([pthread],     [pthread_setname_np],
1175     AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
1176     AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
1177 fi
1178 fi
1179 AC_CHECK_LIB([lzo2],        [main],, AC_MSG_ERROR($missing_library))
1180 AC_CHECK_LIB([z],           [main],, AC_MSG_ERROR($missing_library))
1181 AC_CHECK_LIB([crypto],      [main],, AC_MSG_ERROR($missing_library))
1182 AC_CHECK_LIB([ssl],         [main],, AC_MSG_ERROR($missing_library))
1183 if test "$use_mysql" = "yes"; then
1184   AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
1185 fi
1186 AC_CHECK_LIB([bluetooth],   [hci_devid],, AC_MSG_RESULT([Could not find suitable version of libbluetooth]))
1187 AC_CHECK_LIB([yajl],        [main],, AC_MSG_ERROR($missing_library))
1188 AC_CHECK_LIB([tinyxml],     [main],, AC_MSG_ERROR($missing_library))
1189 if test "$target_platform" = "target_android" ; then
1190   AC_CHECK_LIB([android],     [main],, AC_MSG_ERROR($missing_library))
1191   AC_CHECK_LIB([log],         [__android_log_vprint],, AC_MSG_ERROR($missing_library))
1192   AC_CHECK_LIB([jnigraphics],     [main],, AC_MSG_ERROR($missing_library))
1193 fi
1194 PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
1195   [INCLUDES="$INCLUDES $LIBXML_CFLAGS"; LIBS="$LIBS $LIBXML_LIBS"],
1196   AC_MSG_ERROR($missing_library))
1197 PKG_CHECK_MODULES([LIBXSLT], [libxslt],
1198   [INCLUDES="$INCLUDES $LIBXSLT_CFLAGS"; LIBS="$LIBS $LIBXSLT_LIBS"],
1199   AC_MSG_ERROR($missing_library))
1200 PKG_CHECK_MODULES([FRIBIDI],    [fribidi],
1201   [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
1202   AC_MSG_ERROR($missing_library))
1203 PKG_CHECK_MODULES([SQLITE3],    [sqlite3],
1204   [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
1205   AC_MSG_ERROR($missing_library))
1206 PKG_CHECK_MODULES([PNG],        [libpng],
1207   [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
1208   AC_MSG_ERROR($missing_library))
1209 PKG_CHECK_MODULES([PCRECPP],    [libpcrecpp],
1210   [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
1211   AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
1212   AC_MSG_ERROR($missing_library))
1213 PKG_CHECK_MODULES([PCRE],       [libpcre],
1214   [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
1215   AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
1216   AC_MSG_ERROR($missing_library))
1217 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
1218   [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
1219   AC_MSG_ERROR($missing_library))
1220 PKG_CHECK_MODULES([FREETYPE2],  [freetype2],
1221   [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
1222   AC_MSG_ERROR($missing_library))
1223 PKG_CHECK_MODULES([TAGLIB],  [taglib >= 1.8],
1224   [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
1225   AC_MSG_ERROR($missing_library))
1226
1227 if test "$use_optical_drive" = "yes"; then
1228   PKG_CHECK_MODULES([CDIO],       [libcdio],
1229     [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
1230     AC_MSG_ERROR($missing_library))
1231 fi
1232
1233 if test "$target_platform" = "target_android" ; then
1234 PKG_CHECK_MODULES([ZIP],       [libzip],
1235   [INCLUDES="$INCLUDES $ZIP_CFLAGS"; LIBS="$LIBS $ZIP_LIBS"],
1236   AC_MSG_ERROR($missing_library))
1237 fi
1238
1239 # check for libbluray
1240 AS_CASE([x$use_libbluray],
1241   [xyes],[
1242     PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
1243   ],
1244   [xauto],[
1245     PKG_CHECK_MODULES([LIBBLURAY],[libbluray >= 0.2.1],[use_libbluray="yes"], [use_libbluray="no"])
1246   ])
1247
1248 AS_CASE([x$use_libbluray],
1249   [xyes],[
1250     INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
1251     XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
1252     AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
1253     AC_SUBST([HAVE_LIBBLURAY], 1)
1254     AC_CHECK_LIB([bluray], [bd_register_argb_overlay_proc],
1255       AC_CHECK_DECL([BD_EVENT_IDLE],
1256         AC_DEFINE([HAVE_LIBBLURAY_BDJ], 1, [System has libbluray library with bdj support]),,
1257         [[#include <libbluray/bluray.h>]]))
1258   ],[
1259     AC_SUBST([HAVE_LIBBLURAY], 0)
1260   ]
1261 )
1262
1263 #Check to see if libs are needed for functions that are often built-in to libc
1264 AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
1265 AC_SEARCH_LIBS([dlopen],dl)
1266 AC_SEARCH_LIBS([clock_gettime],rt)
1267 AC_SEARCH_LIBS([dn_expand],  resolv)
1268 AC_SEARCH_LIBS([_dn_expand], resolv)
1269 AC_SEARCH_LIBS([__dn_expand],resolv)
1270
1271 # platform dependent libraries
1272 if test "$host_vendor" = "apple" ; then
1273   if test "$use_arch" != "arm"; then
1274     AC_CHECK_LIB([SDL],      [main],, AC_MSG_ERROR($missing_library))
1275     AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1276   fi
1277 else
1278 if test "$target_platform" != "target_android" ; then
1279   AC_CHECK_LIB([jasper],     [main],, AC_MSG_ERROR($missing_library)) # check for cximage
1280 fi
1281 if test "x$use_alsa" != "xno"; then
1282   PKG_CHECK_MODULES([ALSA],  [alsa],
1283     [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"; use_alsa=yes],
1284     AC_MSG_NOTICE($alsa_not_found); use_alsa=no)
1285 fi
1286   PKG_CHECK_MODULES([DBUS],    [dbus-1],
1287     [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"; use_dbus=yes]; \
1288     AC_DEFINE([HAVE_DBUS],[1],["Define to 1 if dbus is installed"]),
1289     AC_MSG_NOTICE($missing_library); use_dbus=no)
1290   if test "x$use_sdl" != "xno"; then
1291     PKG_CHECK_MODULES([SDL],   [sdl],
1292       [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
1293       AC_MSG_ERROR($missing_library))
1294     AC_CHECK_LIB([SDL_image],  [main],, AC_MSG_ERROR($missing_library))
1295     AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
1296   fi
1297 fi
1298
1299 XB_FIND_SONAME([MAD],         [mad])
1300 XB_FIND_SONAME([OGG],         [ogg])
1301 XB_FIND_SONAME([FLAC],        [FLAC])
1302 XB_FIND_SONAME([VORBIS],      [vorbis])
1303 XB_FIND_SONAME([VORBISFILE],  [vorbisfile])
1304 XB_FIND_SONAME([MODPLUG],     [modplug])
1305 XB_FIND_SONAME([ASS],         [ass])
1306 XB_FIND_SONAME([MPEG2],       [mpeg2])
1307
1308 # Audio encoders
1309 if test "x$use_libmp3lame" != "xno"; then
1310   XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
1311   if test "x$use_libmp3lame" != "xno"; then
1312     AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
1313   fi
1314 fi
1315 AS_CASE([x$use_libmp3lame],
1316   [xno],[
1317     AC_SUBST([HAVE_LIBMP3LAME], 0)
1318   ],
1319   [
1320     AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
1321     AC_SUBST([HAVE_LIBMP3LAME], 1)
1322   ]
1323 )
1324 if test "x$use_libvorbisenc" != "xno"; then
1325   XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
1326   if test "x$use_libvorbisenc" != "xno"; then
1327     AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
1328   fi
1329 fi
1330 AS_CASE([x$use_libvorbisenc],
1331   [xno],[
1332     AC_SUBST([HAVE_LIBVORBISENC], 0)
1333   ],[
1334     AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
1335     AC_SUBST([HAVE_LIBVORBISENC], 1)
1336   ]
1337 )
1338
1339 # WebServer
1340 if test "$use_webserver" = "yes"; then
1341   AC_CHECK_LIB([microhttpd],  [main],, AC_MSG_ERROR($missing_library))
1342 fi
1343
1344 # Optical
1345 if test "$use_optical_drive" = "yes"; then
1346   AC_DEFINE([HAS_DVD_DRIVE], [1], [Define to 1 to have optical drive support])
1347 fi
1348
1349 # Alsa
1350 if test "$use_alsa" = "yes" && test "$host_vendor" != "apple"; then
1351   PKG_CHECK_MODULES([ALSA],  [alsa],
1352     [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
1353     AC_MSG_ERROR($missing_library))
1354   AC_DEFINE([HAS_ALSA], [1], [Define to 0 to disable ALSA support])
1355 else
1356   use_alsa="no"
1357   AC_MSG_RESULT($alsa_disabled)
1358 fi
1359
1360 # PulseAudio
1361 if test "x$use_pulse" != "xno"; then
1362   if test "$host_vendor" = "apple" ; then
1363     if test "x$use_pulse" = "xyes"; then
1364       AC_MSG_ERROR($pulse_disabled)
1365     else
1366       use_pulse="no"
1367       AC_MSG_RESULT($pulse_disabled)
1368     fi
1369     USE_PULSE=0
1370   else
1371     PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0],
1372       [INCLUDES="$INCLUDES $PULSE_CFLAGS"; LIBS="$LIBS $PULSE_LIBS"; USE_PULSE=1;
1373         HAVE_LIBPULSE=1; AC_DEFINE([HAVE_LIBPULSE],[1],[Pulse audio enabled])],
1374       [pulse_found="no"; USE_PULSE=0; HAVE_LIBPULSE=0])
1375
1376     if test "$pulse_found" = "no"; then
1377       if test "x$use_pulse" = "xyes"; then
1378         AC_MSG_ERROR($pulse_not_found)
1379       else
1380         AC_MSG_RESULT($pulse_disabled)
1381       fi
1382     fi
1383   fi
1384 else
1385   AC_MSG_RESULT($pulse_disabled)
1386   USE_PULSE=0
1387 fi
1388
1389 # HAL
1390 if test "$host_vendor" = "apple" ; then
1391   use_hal="no"
1392   AC_MSG_RESULT($hal_disabled)
1393 else
1394   if test "$use_hal" = "yes"; then
1395     PKG_CHECK_MODULES([HAL], [hal],
1396       [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
1397       use_hal=no;AC_MSG_RESULT($hal_not_found))
1398     PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
1399       [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
1400       use_hal=no;AC_MSG_RESULT($halstorage_not_found))
1401   else
1402     AC_MSG_RESULT($hal_disabled)
1403   fi
1404   if test "$use_hal" = "yes"; then
1405     AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
1406   fi
1407 fi
1408
1409 # avahi
1410 if test "$host_vendor" = "apple" ; then
1411   use_avahi="no"
1412   AC_MSG_RESULT($avahi_disabled)
1413 else
1414   if test "$use_avahi" = "yes"; then
1415     AC_CHECK_LIB([avahi-common], [main],,
1416       use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1417     if test "$use_avahi" = "yes"; then
1418       #either both libs or none
1419       AC_CHECK_LIB([avahi-client], [main],,
1420         use_avahi=no;AC_MSG_RESULT($avahi_not_found))
1421     fi
1422   else
1423     AC_MSG_RESULT($avahi_disabled)
1424   fi
1425 fi
1426
1427 # mdnsembedded
1428 if test "$use_mdnsembedded" != "no"; then
1429   AC_CHECK_LIB([mDNSEmbedded], [embedded_mDNSInit],,
1430     [if test "$use_mdnsembedded" = "yes"; then
1431       AC_MSG_ERROR($mdnsembedded_not_found)
1432       USE_MDNSEMBEDDED=0
1433     elif test "$use_mdnsembedded" != "no"; then
1434       AC_MSG_NOTICE($mdnsembedded_not_found)
1435       use_mdnsembedded="no"
1436       USE_MDNSEMBEDDED=0
1437     fi
1438    ])
1439   if test $use_mdnsembedded != "no"; then
1440     USE_MDNSEMBEDDED=1
1441   fi
1442 else
1443   AC_MSG_RESULT($mdnsembedded_disabled)
1444   USE_MDNSEMBEDDED=0
1445 fi
1446 AC_SUBST(USE_MDNSEMBEDDED)
1447
1448 # X11
1449 if test "$use_x11" = "yes" && test "$host_vendor" != "apple"; then
1450   AC_MSG_NOTICE($x11_enabled)
1451   PKG_CHECK_MODULES([X11],    [x11],
1452     [INCLUDES="$INCLUDES $X11_CFLAGS"; LIBS="$LIBS $X11_LIBS"],
1453     AC_MSG_ERROR($missing_library))
1454   PKG_CHECK_MODULES([XEXT],  [xext],
1455     [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
1456     AC_MSG_ERROR($missing_library))
1457   AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 libs installed.])
1458 else
1459   AC_MSG_RESULT($x11_disabled)
1460 fi
1461
1462 # XRandR
1463 if test "$host_vendor" = "apple" || test "$use_x11" = "no"; then
1464   use_xrandr="no"
1465   AC_MSG_RESULT($xrandr_disabled)
1466 else
1467   if test "$use_xrandr" = "yes" ; then
1468     AC_CHECK_LIB([Xrandr], [main],,
1469       use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
1470   else
1471     AC_MSG_RESULT($xrandr_disabled)
1472   fi
1473 fi
1474
1475 # WAVEFORM
1476 if test "$use_waveform" = "yes"; then
1477   AC_MSG_NOTICE($waveform_enabled)
1478     DISABLE_WAVEFORM=0
1479 else
1480   AC_MSG_NOTICE($waveform_disabled)
1481   DISABLE_WAVEFORM=1
1482 fi
1483
1484 # SPECTRUM
1485 if test "$use_spectrum" = "yes"; then
1486   AC_MSG_NOTICE($spectrum_enabled)
1487     DISABLE_SPECTRUM=0
1488 else
1489   AC_MSG_NOTICE($spectrum_disabled)
1490   DISABLE_SPECTRUM=1
1491 fi
1492
1493 # GOOM
1494 if test "$host_vendor" = "apple" ; then
1495   AC_MSG_NOTICE($goom_disabled)
1496   DISABLE_GOOM=1
1497 else
1498   if test "$use_goom" = "yes" && test "$use_gl" = "yes"; then
1499     AC_MSG_NOTICE($goom_enabled)
1500     DISABLE_GOOM=0
1501   else
1502     AC_MSG_NOTICE($goom_disabled)
1503     DISABLE_GOOM=1
1504   fi
1505 fi
1506
1507 # RSXS
1508 if test "$use_rsxs" = "no" || test "$use_gl" = "no"; then
1509   AC_MSG_NOTICE($rsxs_disabled)
1510   DISABLE_RSXS=1
1511 else
1512   AC_MSG_NOTICE($rsxs_enabled)
1513   DISABLE_RSXS=0
1514   # darwin osx can do rsxs but does not use x11, so do not pkg-config check for them
1515   if test "$host_vendor" != "apple" ; then
1516     PKG_CHECK_MODULES([XT],    [xt],
1517       [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
1518       AC_MSG_ERROR($missing_library))
1519     PKG_CHECK_MODULES([XMU],   [xmu],
1520       [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
1521       AC_MSG_ERROR($missing_library))
1522   fi
1523 fi
1524
1525 # FISHBMC
1526 if test "$use_fishbmc" = "no" || test "$use_gl" = "no"; then
1527   AC_MSG_NOTICE($fishbmc_disabled)   
1528   DISABLE_FISHBMC=1
1529   use_fishbmc="no"
1530 else
1531   AC_MSG_NOTICE($fishbmc_enabled)
1532   DISABLE_FISHBMC=0
1533 fi
1534
1535 # PROJECTM
1536 if test "$use_projectm" = "no" || test "$use_gl" = "no"; then
1537   AC_MSG_NOTICE($projectm_disabled)
1538   DISABLE_PROJECTM=1
1539   use_projectm="no"
1540 else
1541   AC_MSG_NOTICE($projectm_enabled)
1542   DISABLE_PROJECTM=0
1543 fi
1544
1545 # skin touched
1546 use_skin_touched=no
1547 if [[ -f "addons/skin.touched/addon.xml" ]]; then 
1548   use_skin_touched=yes
1549   USE_SKIN_TOUCHED=1
1550   AC_DEFINE([HAS_SKIN_TOUCHED], [1], [Whether to build skin touched.])
1551 else
1552   USE_SKIN_TOUCHED=0
1553 fi
1554
1555 # libssh
1556 if test "x$use_ssh" = "xno"; then
1557   AC_MSG_NOTICE($ssh_disabled)
1558   use_libssh="no"
1559 else
1560   AC_CHECK_LIB([ssh], [sftp_tell64],, AC_MSG_ERROR($ssh_not_found))
1561   AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
1562 fi
1563
1564 # libRTMP
1565 if test "$use_librtmp" != "no"; then
1566   PKG_CHECK_MODULES([LIBRTMP], [librtmp],
1567     [INCLUDES="$INCLUDES $LIBRTMP_CFLAGS"; LIBS="$LIBS $LIBRTMP_LIBS";
1568       XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1569       AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1570       RTMP_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors librtmp)
1571       test "$use_static_ffmpeg" = "yes" && LIBS="$LIBS $RTMP_ALL_LIBS"; LIBS="`echo $LIBS | sed 's/-lrtmp//g'`"],
1572     [AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
1573       [if test "$use_librtmp" = "yes"; then
1574         AC_MSG_ERROR($librtmp_not_found)
1575       elif test "$use_librtmp" != "no"; then
1576         AC_MSG_NOTICE($librtmp_not_found)
1577         use_librtmp="no"
1578       fi
1579       ])
1580       if test "$use_librtmp" != "no"; then
1581         XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
1582       fi
1583       if test "$use_librtmp" != "no"; then
1584         AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
1585       fi
1586     ])
1587 else
1588   AC_MSG_NOTICE($librtmp_disabled)
1589 fi
1590
1591 # samba
1592 if test "x$use_samba" != "xno"; then
1593   PKG_CHECK_MODULES([SAMBA], [smbclient],
1594     [INCLUDES="$INCLUDES $SAMBA_CFLAGS"; LIBS="$LIBS $SAMBA_LIBS"],
1595     [AC_CHECK_LIB([smbclient], [main],,
1596       use_samba=no;AC_MSG_ERROR($missing_library))
1597       USE_LIBSMBCLIENT=0
1598     ])
1599 else
1600   AC_MSG_RESULT($samba_disabled)
1601   USE_LIBSMBCLIENT=0
1602 fi
1603
1604 if test "x$use_samba" != "xno"; then
1605   AC_DEFINE([HAVE_LIBSMBCLIENT], [1], [Define to 1 if you have Samba installed])
1606   USE_LIBSMBCLIENT=1
1607 fi
1608
1609 # libnfs
1610 if test "$use_libnfs" != "no"; then
1611   AC_CHECK_HEADERS([nfsc/libnfs.h],,
1612    [if test "$use_libnfs" = "yes"; then
1613       AC_MSG_ERROR($libnfs_not_found)
1614       USE_LIBNFS=0
1615     elif test "$use_libnfs" != "no"; then
1616       AC_MSG_NOTICE($libnfs_not_found)
1617       use_libnfs="no"
1618       USE_LIBNFS=0
1619     fi
1620    ])
1621   if test "$use_libnfs" != "no"; then
1622     XB_FIND_SONAME([NFS], [nfs], [use_libnfs])
1623   fi
1624   if test "$use_libnfs" != "no"; then
1625     AC_DEFINE([HAVE_LIBNFS], [1], [Whether to use libnfs library.])
1626     USE_LIBNFS=1
1627   fi
1628 else
1629   USE_LIBNFS=0
1630   AC_MSG_NOTICE($libnfs_disabled)
1631 fi
1632
1633 # libafpclient
1634 USE_LIBAFPCLIENT=0
1635 if test "x$use_libafpclient" != "xno"; then
1636   AC_CHECK_HEADERS([afpfs-ng/libafpclient.h],,
1637    [if test "x$use_libafpclient" = "xyes"; then
1638       AC_MSG_ERROR($libafpclient_not_found)
1639     elif test "x$use_libafpclient" != "xno"; then
1640       AC_MSG_NOTICE($libafpclient_not_found)
1641       use_libafpclient="no"
1642     fi
1643    ])
1644   if test "x$use_libafpclient" != "xno"; then
1645     XB_FIND_SONAME([AFPCLIENT], [afpclient], [use_libafpclient])
1646     AC_DEFINE([HAVE_LIBAFPCLIENT], [1], [Whether to use libafpclient library.])
1647     USE_LIBAFPCLIENT=1
1648   fi
1649 else
1650   AC_MSG_NOTICE($libafpclient_disabled)
1651 fi
1652
1653 # libplist for airplay feature
1654 USE_AIRPLAY=0
1655 if test "$use_airplay" != "no"; then
1656   AC_CHECK_HEADER([plist/plist.h],,
1657    [if test "$use_airplay" = "yes"; then
1658       AC_MSG_ERROR($libplist_not_found)
1659     elif test "$use_airplay" != "no"; then
1660       AC_MSG_NOTICE($libplist_not_found)
1661       use_airplay="no"
1662     fi
1663    ])
1664
1665   if test "$use_airplay" != "no"; then
1666     XB_FIND_SONAME([PLIST], [plist], [use_airplay])
1667     USE_AIRPLAY=1
1668     AC_DEFINE([HAVE_LIBPLIST],[1],["Define to 1 if you have libplist."])
1669   fi
1670 fi
1671
1672 # libshairplay for AirTunes (prefered lib)
1673 USE_AIRTUNES=0
1674 if test "x$use_airtunes" != "xno"; then
1675   AC_CHECK_HEADERS([shairplay/raop.h],USE_AIRTUNES=1,
1676    [AC_MSG_NOTICE($libshairplay_not_found)
1677    ])
1678
1679   if test "x$USE_AIRTUNES" != "x0"; then
1680     XB_FIND_SONAME([SHAIRPLAY], [shairplay], [USE_AIRTUNES])
1681     USE_LIBSHAIRPLAY=1
1682     AC_CHECK_MEMBERS([struct raop_callbacks_s.cls],,,
1683                      [[#include <shairplay/raop.h>]])
1684     AC_DEFINE([HAVE_LIBSHAIRPLAY],[1],["Define to 1 if you have libshairplay."])
1685   fi
1686
1687   #libshairport - as a fallback for AirTunes
1688   if test "x$USE_AIRTUNES" == "x0"; then
1689     AC_CHECK_HEADERS([shairport/shairport.h],USE_AIRTUNES=1,
1690      [AC_MSG_NOTICE($libshairport_not_found)
1691      ])
1692
1693     if test "x$USE_AIRTUNES" != "x0"; then
1694       XB_FIND_SONAME([SHAIRPORT], [shairport], [USE_AIRTUNES])
1695       AC_CHECK_MEMBERS([struct AudioOutput.ao_set_metadata],,,
1696                        [[#include <shairport/shairport.h>]])
1697       AC_DEFINE([HAVE_LIBSHAIRPORT],[1],["Define to 1 if you have libshairport."])
1698     fi
1699   fi
1700
1701   if test "x$USE_AIRTUNES" == "x0"; then
1702     if test "x$use_airtunes" == "xyes"; then
1703       AC_MSG_ERROR("No airtunes library could be found. (libshairport/libshairplay)")
1704     fi
1705     use_airtunes="no"
1706   fi
1707 fi
1708
1709 # libudev
1710 USE_LIBUDEV=0
1711 if test "$host_vendor" = "apple" ; then
1712   use_libudev="no"
1713   AC_MSG_NOTICE($libudev_disabled)
1714 else
1715   if test "$use_libudev" = "auto"; then
1716     PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_RESULT($libudev_not_found)])
1717   elif test "$use_libudev" = "yes" ; then
1718     PKG_CHECK_MODULES([UDEV],[libudev],,[use_libudev="no";AC_MSG_ERROR($libudev_not_found)])
1719   else
1720     AC_MSG_NOTICE($libudev_disabled)
1721   fi
1722
1723   if test "x$use_libudev" != "xno"; then
1724     USE_LIBUDEV=1;INCLUDES="$INCLUDES $UDEV_CFLAGS";LIBS="$LIBS $UDEV_LIBS"
1725     AC_DEFINE([HAVE_LIBUDEV],[1],["Define to 1 if libudev is installed"])
1726   fi
1727 fi
1728
1729 # libusb
1730 USE_LIBUSB=0
1731
1732 # if libudev is available, we don't need libusb
1733 if test "x$use_libudev" != "xno"; then
1734   use_libusb="no"
1735   AC_MSG_NOTICE($libusb_disabled_udev_found)
1736 else
1737   if test "$host_vendor" = "apple" ; then
1738     use_libusb="no"
1739     AC_MSG_NOTICE($libusb_disabled)
1740   else
1741     if echo "$ARCH" | grep -q freebsd ; then
1742       AC_CHECK_LIB([usb],[main],
1743                 [use_libusb="yes";USB_LIBS="-lusb"],
1744                 [use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1745     elif test "$use_libusb" = "auto"; then
1746       PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_RESULT($libusb_not_found)])
1747     elif test "$use_libusb" = "yes"; then
1748       PKG_CHECK_MODULES([USB],[libusb],,[use_libusb="no";AC_MSG_ERROR($libusb_not_found)])
1749     else
1750       AC_MSG_NOTICE($libusb_disabled)
1751     fi
1752   
1753     if test "x$use_libusb" != "xno"; then
1754       USE_LIBUSB=1;INCLUDES="$INCLUDES $USB_CFLAGS";LIBS="$LIBS $USB_LIBS"
1755       AC_DEFINE([HAVE_LIBUSB],[1],["Define to 1 if libusb is installed"])
1756     fi
1757   fi
1758 fi
1759
1760 # libcec
1761 USE_LIBCEC=0
1762 if test "x$use_libcec" != "xno"; then
1763   # libcec is dyloaded, so we need to check for its headers and link any depends.
1764   if test "x$use_libcec" != "xno"; then
1765     if test "x$use_libcec" != "xauto"; then
1766       PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_ERROR($libcec_disabled)])
1767     else
1768       PKG_CHECK_MODULES([CEC],[libcec >= 2.1.0],,[use_libcec="no";AC_MSG_RESULT($libcec_disabled)])
1769     fi
1770
1771     if test "x$use_libcec" != "xno"; then
1772       INCLUDES="$INCLUDES $CEC_CFLAGS"
1773       USE_LIBCEC=1;AC_DEFINE([HAVE_LIBCEC],[1],["Define to 1 if libcec is installed"])
1774       XB_FIND_SONAME([LIBCEC],[cec],[use_libcec])
1775       AC_MSG_NOTICE($libcec_enabled)
1776     else
1777       use_libcec="no"
1778       AC_MSG_NOTICE($libcec_disabled)
1779     fi
1780   fi
1781 else
1782   use_libcec="no"
1783   AC_MSG_NOTICE($libcec_disabled)
1784 fi
1785
1786 # libcap
1787 if test "$use_libcap" != "no"; then
1788   AC_CHECK_HEADERS([sys/capability.h],,
1789    [if test "$use_libcap" = "yes"; then
1790       AC_MSG_ERROR($libcap_not_found)
1791     elif test "$use_libcap" != "no"; then
1792       AC_MSG_NOTICE($libcap_not_found)
1793       use_libcap="no"
1794     fi
1795    ])
1796   if test "$use_libcap" != "no"; then
1797     AC_CHECK_LIB([cap], main, LIBS="$LIBS -lcap", use_libcap=no)
1798   fi
1799   if test "$use_libcap" != "no"; then
1800     AC_DEFINE([HAVE_LIBCAP], [1], [Whether to use libcap library.])
1801   fi
1802 else
1803   AC_MSG_NOTICE($libcap_disabled)
1804 fi
1805
1806 ### External libraries checks
1807
1808 # Hacks for supporting libav
1809
1810 USE_LIBAV_HACKS=0
1811 if test "$use_libav_hacks" = "yes"; then
1812     export PKG_CONFIG_PATH="${srcdir}/lib/xbmc-libav-hacks/pkgconfig/:$PKG_CONFIG_PATH"
1813     USE_LIBAV_HACKS=1
1814     AC_DEFINE([USE_LIBAV_HACKS], [1], [Whether to use libav compatibility hacks.])
1815 fi
1816
1817 # External FFmpeg
1818 if test "$use_external_ffmpeg" = "yes"; then
1819   FFMPEG_LIBNAMES="libavcodec libavfilter libavformat libavutil libpostproc libswscale libswresample"
1820
1821   PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
1822                     [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
1823                     AC_MSG_ERROR($missing_library))
1824
1825   # in case the headers are in a custom directory
1826   SAVE_CPPFLAGS="$CPPFLAGS"
1827   CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
1828
1829   AC_CHECK_HEADERS([libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
1830   [AC_MSG_ERROR($missing_headers)])
1831
1832   AC_MSG_NOTICE($external_ffmpeg_enabled)
1833   USE_EXTERNAL_FFMPEG=1
1834   AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
1835
1836   CPPFLAGS="$SAVE_CPPFLAGS"
1837 else
1838   AC_MSG_NOTICE($external_ffmpeg_disabled)
1839   USE_EXTERNAL_FFMPEG=0
1840 fi
1841
1842 echo "Checking for SWIG installation"
1843 AC_PATH_PROG(SWIG_EXE, swig, "none")
1844 if test "$SWIG_EXE" = "none"; then
1845   AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
1846   if test "$SWIG20_EXE" != "none" ; then
1847     SWIG_EXE=$SWIG20_EXE
1848   fi
1849 fi
1850 if test "$SWIG_EXE" = "none"; then
1851   AC_MSG_ERROR($missing_program)
1852 fi
1853 final_message="$final_message\n  SWIG Available:\tYes"
1854
1855 echo "Checking for a jre installation"
1856 AC_PATH_PROG(JAVA_EXE, java, "none")
1857 if test "$JAVA_EXE" = "none"; then
1858   AC_MSG_ERROR($missing_program)
1859 fi
1860 final_message="$final_message\n  JRE Available:\tYes"
1861
1862 echo "Checking for doxygen installation"
1863 AC_PATH_PROG(DOXYGEN_EXE, doxygen, "none")
1864 if test "$DOXYGEN_EXE" = "none"; then
1865   AC_MSG_WARN([Unable to find doxygen installation. Will not be able to make docstrings for the python api])
1866   final_message="$final_message\n  Doxygen Available:\tNo"
1867   USE_DOXYGEN=0
1868 else
1869   final_message="$final_message\n  Doxygen Available:\tYes"
1870   USE_DOXYGEN=1
1871 fi
1872
1873 # VDPAU
1874 if test "x$use_vdpau" != "xno"; then
1875   if test "$host_vendor" = "apple" ; then
1876     if test "x$use_vdpau" = "xyes"; then
1877       AC_MSG_ERROR([VDPAU not supported on this platform])
1878     else
1879       use_vdpau="no"
1880       AC_MSG_NOTICE($vdpau_disabled)
1881     fi
1882     USE_VDPAU=0
1883   else
1884     USE_VDPAU=1
1885     AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
1886       [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
1887     [if test "x$use_vdpau" = "xyes"; then
1888       USE_VDPAU=0
1889       AC_MSG_ERROR([$vdpau_not_found])
1890     else
1891       use_vdpau="no"
1892       USE_VDPAU=0
1893       AC_MSG_RESULT($vdpau_not_found)
1894     fi])
1895   fi
1896 else
1897   USE_VDPAU=0
1898   AC_MSG_NOTICE($vdpau_disabled)
1899 fi
1900
1901 # VAAPI
1902 if test "x$use_vaapi" != "xno"; then
1903   if test "$host_vendor" = "apple" ; then
1904     if test "x$use_vaapi" = "xyes"; then
1905       AC_MSG_ERROR([VAAPI not supported on this platform])
1906     else
1907       use_vaapi="no"
1908       AC_MSG_NOTICE($vaapi_disabled)
1909     fi
1910     USE_VAAPI=0
1911   else
1912     initial_val=$use_vaapi
1913     AC_CHECK_LIB([va], main, :, use_vaapi=no)
1914     if test "x$use_vaapi" != "xno"; then
1915       AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
1916     fi
1917
1918     if test "x$use_vaapi" = "xno"; then
1919       if test "x$initial_val" = "xyes"; then
1920         AC_MSG_ERROR($vaapi_not_found)
1921       else
1922         AC_MSG_RESULT($vaapi_not_found)
1923       fi
1924       USE_VAAPI=0
1925     else
1926       AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
1927       USE_VAAPI=1
1928     fi
1929   fi
1930 else
1931   AC_MSG_NOTICE($vaapi_disabled)
1932   USE_VAAPI=0
1933 fi
1934
1935 # CrystalHD
1936 if test "x$use_crystalhd" != "xno"; then
1937   SAVE_CFLAGS="$CFLAGS"
1938   CFLAGS="-D__LINUX_USER__"
1939   AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [],
1940     [ if test "x$use_crystalhd" = "xyes"; then
1941         AC_MSG_ERROR($crystalhd_not_found)
1942       else
1943         use_crystalhd=no
1944         AC_MSG_RESULT($crystalhd_not_found)
1945       fi
1946       USE_CRYSTALHD=0
1947     ])
1948     CFLAGS="$SAVE_CFLAGS"
1949     if test "$host_vendor" != "apple"; then
1950       XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
1951     fi
1952     if test "x$use_crystalhd" != "xno"; then
1953       SAVE_CFLAGS="$CFLAGS"
1954       CFLAGS="-D__LINUX_USER__ -lcrystalhd"
1955       # check for new crystalhd lib
1956       AC_COMPILE_IFELSE(
1957         [AC_LANG_SOURCE([#include <libcrystalhd/bc_dts_types.h>
1958           #include <libcrystalhd/bc_dts_defs.h>
1959           PBC_INFO_CRYSTAL bCrystalInfo;])],
1960         [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ], 
1961         [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1962       CFLAGS="$SAVE_CFLAGS"
1963       USE_CRYSTALHD=1
1964     fi
1965 else
1966   AC_MSG_NOTICE($crystalhd_disabled)
1967   USE_CRYSTALHD=0
1968 fi
1969
1970 # VTBDecoder
1971 if test "x$use_vtbdecoder" != "xno"; then
1972   if test "$host_vendor" = "apple" ; then
1973     HAVE_VIDEOTOOLBOXDECODER=1
1974     AC_DEFINE([HAVE_VIDEOTOOLBOXDECODER], [1], [Define to 1 if you have the 'VTBDecoder' library.])
1975     AC_MSG_NOTICE($vtbdecoder_enabled)
1976   else
1977     if test "x$use_vtbdecoder" = "xyes"; then
1978       AC_MSG_ERROR([VTB Decoder not supported on this platform])
1979     else
1980       use_vtbdecoder="no"
1981       AC_MSG_NOTICE($vtbdecoder_disabled)
1982     fi
1983   fi
1984 else
1985   AC_MSG_NOTICE($vtbdecoder_disabled)
1986 fi
1987
1988 # OpenMax
1989 if test "$host_vendor" = "apple" ; then
1990   use_openmax="no"
1991   USE_OPENMAX=0
1992   AC_MSG_NOTICE($openmax_disabled)
1993 elif test "$target_platform" = "target_raspberry_pi"; then
1994   use_openmax="no"
1995   USE_OPENMAX=0
1996   AC_MSG_NOTICE($openmax_disabled)
1997 else
1998   if test "$use_gles" = "yes" && test "$use_openmax" = "auto"; then
1999     PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
2000                       USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
2001                       use_openmax=no;USE_OPENMAX=0;AC_MSG_RESULT($openmax_not_found))
2002   elif test "$use_gles" = "yes" && test "$use_openmax" = "yes"; then
2003     PKG_CHECK_MODULES([OPENMAX], [libomxil-bellagio],
2004                       USE_OPENMAX=1;[INCLUDES="$INCLUDES $OPENMAX_CFLAGS"; LIBS="$LIBS $OPENMAX_LIBS"],
2005                       AC_MSG_ERROR($openmax_not_found))
2006   else
2007     AC_MSG_NOTICE($openmax_disabled)
2008     use_openmax=no
2009     USE_OPENMAX=0
2010   fi
2011 fi
2012
2013 # yajl version check (yajl_version.h was added in yajl 2.0)
2014 AC_CHECK_HEADERS([yajl/yajl_version.h], [], [
2015 AC_DEFINE(YAJL_MAJOR, 1, [yajl version 1])
2016 ], [])
2017
2018 # additional internal players
2019 case $add_players in
2020   *omxplayer*)
2021       XB_ADD_PLAYER([OMXPLAYER], [omxplayer])
2022       ;;
2023 esac
2024
2025 # additional internal codecs
2026 # remember to convert commas to spaces
2027 for codecs in `echo $add_codecs | sed 's/,/ /g'`; do
2028   case $codecs in
2029     *amcodec*)
2030         AC_CHECK_HEADER([amcodec/codec_error.h],, AC_MSG_ERROR($missing_headers))
2031         XB_ADD_CODEC([LIBAMCODEC], [amcodec], [$codecs])
2032         ;;
2033     *libstagefright*)
2034         XB_ADD_CODEC([LIBSTAGEFRIGHT], [libstagefright], [$codecs])
2035         ;;
2036     *)
2037   esac
2038 done
2039
2040 # platform specific bin utilities
2041 if test "$build_vendor" != "apple" ; then
2042   AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
2043   if test "$HAVE_GAWK" = "no" ; then
2044     AC_MSG_ERROR($missing_program)
2045   fi
2046 fi
2047
2048 if test "$use_arch" != "arm" ; then
2049   AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
2050   if test "$HAVE_CMAKE" = "no" ; then
2051     AC_MSG_ERROR($missing_program)
2052   fi
2053 fi
2054
2055 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
2056 if test "$HAVE_GPERF" = "no" ; then
2057   AC_MSG_ERROR($missing_program)
2058 fi
2059
2060 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
2061 if test "$HAVE_UNZIP" = "no" ; then
2062   AC_MSG_ERROR($missing_program)
2063 fi
2064
2065 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
2066 if test "$HAVE_ZIP" = "no" ; then
2067   AC_MSG_ERROR($missing_program)
2068 fi
2069
2070 if test "$ARCH" = "i486-linux" || test "$ARCH" = "x86-freebsd"; then
2071   AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
2072   if test "$HAVE_NASM" = "no" ; then
2073     AC_MSG_ERROR($missing_program)
2074   fi
2075 fi
2076
2077 # Checks for header files.
2078 AC_HEADER_DIRENT
2079 AC_HEADER_STDC
2080 AC_HEADER_SYS_WAIT
2081 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
2082   malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
2083   strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
2084   sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
2085 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
2086
2087 # Checks for typedefs, structures, and compiler characteristics.
2088 AC_HEADER_STAT
2089 AC_HEADER_STDBOOL
2090 AC_C_CONST
2091 AC_TYPE_UID_T
2092 AC_C_INLINE
2093 AC_TYPE_INT8_T
2094 AC_TYPE_INT16_T
2095 AC_TYPE_INT32_T
2096 AC_TYPE_INT64_T
2097 AC_TYPE_MODE_T
2098 AC_TYPE_OFF_T
2099 AC_TYPE_PID_T
2100 AC_C_RESTRICT
2101 AC_TYPE_SIZE_T
2102 AC_TYPE_SSIZE_T
2103 AC_CHECK_MEMBERS([struct stat.st_rdev])
2104 AC_HEADER_TIME
2105 AC_STRUCT_TM
2106 AC_TYPE_UINT8_T
2107 AC_TYPE_UINT16_T
2108 AC_TYPE_UINT32_T
2109 AC_TYPE_UINT64_T
2110 AC_C_BIGENDIAN
2111
2112 if test "$cross_compiling" = "yes"; then
2113   final_message="$final_message\n  Crosscomp.:\tYes"
2114   if [[ -d "$NATIVE_ROOT" ]]; then
2115     CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2116     CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
2117     LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
2118     if test "$host_vendor" != "apple" ; then
2119       LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
2120     fi
2121     final_message="$final_message\n  Native Root:\t$NATIVE_ROOT"
2122   fi
2123 else
2124   final_message="$final_message\n  Crosscomp.:\tNo"
2125 fi
2126
2127 final_message="$final_message\n  target ARCH:\t$use_arch"
2128 final_message="$final_message\n  target CPU:\t$use_cpu"
2129
2130 if test "$use_gles" = "yes"; then
2131   final_message="$final_message\n  OpenGLES:\tYes"
2132   USE_OPENGLES=1
2133   USE_OPENGL=0
2134 else
2135   USE_OPENGLES=0
2136   if test "$use_gl" = "yes"; then
2137     final_message="$final_message\n  OpenGL:\tYes"
2138     USE_OPENGL=1
2139   else
2140     final_message="$final_message\n  OpenGL:\tNo (Very Slow)"
2141     SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_2D"
2142     USE_OPENGL=0
2143   fi
2144 fi
2145
2146 if test "$use_alsa" = "yes"; then
2147   USE_ALSA=1
2148   AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
2149   final_message="$final_message\n  ALSA:\t\tYes"
2150 else
2151   USE_ALSA=0
2152   final_message="$final_message\n  ALSA:\t\tNo"
2153 fi
2154
2155 if test "$use_dbus" = "yes"; then
2156   final_message="$final_message\n  DBUS:\t\tYes"
2157 else
2158   final_message="$final_message\n  DBUS:\t\tNo"
2159 fi
2160
2161 if test "x$use_vdpau" != "xno"; then
2162   final_message="$final_message\n  VDPAU:\tYes"
2163 else
2164   final_message="$final_message\n  VDPAU:\tNo"
2165 fi
2166
2167 if test "x$use_vaapi" != "xno"; then
2168   final_message="$final_message\n  VAAPI:\tYes"
2169 else
2170   final_message="$final_message\n  VAAPI:\tNo"
2171 fi
2172
2173 if test "x$use_crystalhd" != "xno"; then
2174   final_message="$final_message\n  CrystalHD:\tYes"
2175 else
2176   final_message="$final_message\n  CrystalHD:\tNo"
2177 fi
2178
2179 if test "x$use_vtbdecoder" != "xno"; then
2180   final_message="$final_message\n  VTBDecoder:\tYes"
2181 else
2182   final_message="$final_message\n  VTBDecoder:\tNo"
2183 fi
2184
2185 if test "$use_openmax" != "no"; then
2186   final_message="$final_message\n  OpenMax:\tYes"
2187 else
2188   final_message="$final_message\n  OpenMax:\tNo"
2189 fi
2190
2191 if test "$use_joystick" = "yes"; then
2192   final_message="$final_message\n  Joystick:\tYes"
2193   SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
2194 else
2195   final_message="$final_message\n  Joystick:\tNo"
2196 fi
2197
2198 if test "$use_xrandr" = "yes"; then
2199   final_message="$final_message\n  XRandR:\tYes"
2200   USE_XRANDR=1
2201 else
2202   final_message="$final_message\n  XRandR:\tNo"
2203   USE_XRANDR=0
2204 fi
2205
2206 if test "$use_waveform" = "yes"; then
2207   final_message="$final_message\n  Waveform:\tYes"
2208 else
2209   final_message="$final_message\n  Waveform:\tNo"
2210 fi
2211
2212 if test "$use_spectrum" = "yes"; then
2213   final_message="$final_message\n  Spectrum:\tYes"
2214 else
2215   final_message="$final_message\n  Spectrum:\tNo"
2216 fi
2217
2218 if test "$use_goom" = "yes"; then
2219   final_message="$final_message\n  GOOM:\t\tYes"
2220 else
2221   final_message="$final_message\n  GOOM:\t\tNo"
2222 fi
2223
2224 if test "$use_rsxs" = "yes"; then
2225   final_message="$final_message\n  RSXS:\t\tYes"
2226 else
2227   final_message="$final_message\n  RSXS:\t\tNo"
2228 fi
2229
2230 if test "$use_fishbmc" = "yes"; then
2231   final_message="$final_message\n  FishBMC:\tYes"
2232 else
2233   final_message="$final_message\n  FishBMC:\tNo"
2234 fi
2235
2236 if test "$use_projectm" = "yes"; then
2237   final_message="$final_message\n  ProjectM:\tYes"
2238 else
2239   final_message="$final_message\n  ProjectM:\tNo"
2240 fi
2241
2242 if test "$use_skin_touched" = "yes"; then
2243   final_message="$final_message\n  Skin Touched:\tYes"
2244 else
2245   final_message="$final_message\n  Skin Touched:\tNo"
2246 fi
2247
2248 if test "$use_x11" = "yes"; then
2249   final_message="$final_message\n  X11:\t\tYes"
2250 else
2251   final_message="$final_message\n  X11:\t\tNo"
2252 fi
2253
2254 if test "$use_wayland" = "yes"; then
2255   final_message="$final_message\n  Wayland:\tYes"
2256   USE_WAYLAND=1
2257   USE_XKBCOMMON=1
2258 else
2259   final_message="$final_message\n  Wayland:\tNo"
2260 fi
2261
2262 if test "$use_libbluray" = "yes"; then
2263   final_message="$final_message\n  Bluray:\tYes"
2264 else
2265   final_message="$final_message\n  Bluray:\tNo"
2266 fi
2267
2268 if test "x$use_texturepacker" != "xno"; then
2269   final_message="$final_message\n  TexturePacker:Yes"
2270   USE_TEXTUREPACKER=1
2271 else
2272   final_message="$final_message\n  TexturePacker:No"
2273   USE_TEXTUREPACKER=0
2274 fi
2275
2276 if test "$use_mid" = "yes"; then
2277   final_message="$final_message\n  MID Support:\tYes"
2278   SDL_DEFINES="$SDL_DEFINES -DMID"
2279 else
2280   final_message="$final_message\n  MID Support:\tNo"
2281 fi
2282
2283 ORIGCC=$CC
2284 ORIGCXX=$CXX
2285 if test "x$use_ccache" != "xno"; then
2286   AC_PATH_PROG(CCACHE,ccache,none)
2287   if test "$ac_cv_path_CCACHE" = "none"; then
2288     if test "x$use_ccache" = "xyes"; then
2289       AC_MSG_ERROR([ccache not found.]);
2290     else
2291       AC_MSG_NOTICE([ccache not found. Falling back to default CC])
2292       final_message="$final_message\n  ccache:\tNo"
2293     fi
2294   else
2295     CC="$ac_cv_path_CCACHE $CC"
2296     CXX="$ac_cv_path_CCACHE $CXX"
2297     AC_MSG_NOTICE(enabling ccache)
2298     final_message="$final_message\n  ccache:\tYes"
2299   fi
2300 else
2301   final_message="$final_message\n  ccache:\tNo"
2302 fi
2303
2304 if test "$use_alsa" = "yes"; then
2305   final_message="$final_message\n  ALSA Support:\tYes"
2306 else
2307   final_message="$final_message\n  ALSA Support:\tNo"
2308 fi
2309
2310 if test "x$use_pulse" != "xno"; then
2311   XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
2312   final_message="$final_message\n  PulseAudio:\tYes"
2313 else
2314   XBMC_STANDALONE_SH_PULSE=/dev/null
2315   final_message="$final_message\n  PulseAudio:\tNo"
2316 fi
2317
2318 if test "$use_hal" = "yes"; then
2319   final_message="$final_message\n  HAL Support:\tYes"
2320 else
2321   final_message="$final_message\n  HAL Support:\tNo"
2322 fi
2323
2324 # DVDCSS
2325 if test "$use_dvdcss" = "yes"; then
2326   AC_MSG_NOTICE($dvdcss_enabled)
2327   final_message="$final_message\n  DVDCSS:\tYes"
2328   BUILD_DVDCSS=1
2329   SKIP_CONFIG_DVDCSS=0
2330   DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
2331 else
2332   AC_MSG_NOTICE($dvdcss_disabled)
2333   final_message="$final_message\n  DVDCSS:\tNo"
2334   BUILD_DVDCSS=0
2335   SKIP_CONFIG_DVDCSS=1
2336   DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
2337 fi
2338 if test "$host_vendor" = "apple"; then
2339  DVDREAD_CFLAGS="$DVDREAD_CFLAGS -D__DARWIN__"
2340 fi
2341
2342 # Google Test Framework
2343 if test "$configure_gtest" = "yes"; then
2344   AC_MSG_NOTICE($gtest_enabled)
2345   final_message="$final_message\n  Google Test Framework Configured:\tYes"
2346   GTEST_CONFIGURED=1
2347   SKIP_CONFIG_GTEST=0
2348 else
2349   AC_MSG_NOTICE($gtest_disabled)
2350   final_message="$final_message\n  Google Test Framework Configured:\tNo"
2351   GTEST_CONFIGURED=0
2352   SKIP_CONFIG_GTEST=1
2353 fi
2354
2355 if test "$use_avahi" = "yes"; then
2356   final_message="$final_message\n  Avahi:\tYes"
2357 else
2358   final_message="$final_message\n  Avahi:\tNo"
2359 fi
2360
2361 if test "$use_mdnsembedded" != "no"; then
2362   final_message="$final_message\n  mDNSEmbedded:\tYes"
2363 else
2364   final_message="$final_message\n  mDNSEmbedded:\tNo"
2365 fi
2366
2367 if test "$use_nonfree" = "yes"; then
2368   final_message="$final_message\n  Non-free:\tYes"
2369   HAVE_XBMC_NONFREE=1
2370   AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
2371 else
2372   HAVE_XBMC_NONFREE=0
2373   final_message="$final_message\n  Non-free:\tNo"
2374 fi
2375
2376 if test "$use_asap" = "yes"; then
2377   AC_CHECK_PROGS(HAVE_GDC,gdc-4.4 gdc-4.3 gdc,"no")
2378   if test "$HAVE_GDC" = "no"; then
2379     AC_MSG_ERROR($missing_program);
2380   fi
2381   AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
2382   if test "$HAVE_FPC" = "no"; then
2383     AC_MSG_ERROR($missing_program);
2384   fi
2385   USE_ASAP_CODEC=1
2386   AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
2387   final_message="$final_message\n  ASAP Codec:\tYes"
2388 else
2389   USE_ASAP_CODEC=0
2390   final_message="$final_message\n  ASAP Codec:\tNo"
2391 fi
2392
2393 if test "$use_mysql" = "yes"; then
2394   final_message="$final_message\n  MySQL:\tYes"
2395   USE_MYSQL=1
2396 else
2397   final_message="$final_message\n  MySQL:\tNo"
2398   USE_MYSQL=0
2399 fi
2400 if test "$use_webserver" = "yes"; then
2401   final_message="$final_message\n  Webserver:\tYes"
2402   USE_WEB_SERVER=1
2403 else
2404   final_message="$final_message\n  Webserver:\tNo"
2405   USE_WEB_SERVER=0
2406 fi
2407
2408 if test "$use_libssh" != "no"; then
2409   final_message="$final_message\n  libssh support:\tYes"
2410 else
2411   final_message="$final_message\n  libssh support:\tNo"
2412 fi
2413
2414 if test "$use_librtmp" != "no"; then
2415   final_message="$final_message\n  libRTMP support:\tYes"
2416 else
2417   final_message="$final_message\n  libRTMP support:\tNo"
2418 fi
2419
2420 if test "x$use_samba" != "xno"; then
2421   final_message="$final_message\n  libsmbclient support:\tYes"
2422 else
2423   final_message="$final_message\n  libsmbclient support:\tNo"
2424 fi
2425
2426 if test "$use_libnfs" != "no"; then
2427   final_message="$final_message\n  libnfs client support:Yes"
2428 else
2429   final_message="$final_message\n  libnfs client support:No"
2430 fi
2431
2432 if test "x$use_libafpclient" != "xno"; then
2433   final_message="$final_message\n  libafpclient support:\tYes"
2434 else  
2435   final_message="$final_message\n  libafpclient support:\tNo"
2436 fi
2437
2438 if test "$use_airplay" != "no"; then
2439   final_message="$final_message\n  AirPlay support:\tYes"
2440 else
2441   final_message="$final_message\n  AirPLay support:\tNo"
2442 fi
2443
2444 if test "x$use_airtunes" != "xno"; then
2445   if test "x$USE_LIBSHAIRPLAY" == "x1"; then
2446     final_message="$final_message\n  AirTunes support (libshairplay):\tYes"  
2447   else
2448     final_message="$final_message\n  AirTunes support (libshairport):\tYes"
2449   fi
2450 else
2451   final_message="$final_message\n  AirTunes support:\tNo"
2452 fi
2453
2454 if test "x$use_upnp" != "xno"; then
2455   final_message="$final_message\n  UPnP support:\t\tYes"
2456   USE_UPNP=1
2457   AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
2458 else
2459   USE_UPNP=0
2460   final_message="$final_message\n  UPnP support:\t\tNo"
2461 fi
2462
2463 if test "$use_optical_drive" = "yes"; then
2464   final_message="$final_message\n  Optical drive:\tYes"
2465 else
2466   final_message="$final_message\n  Optical drive:\tNo"
2467 fi
2468
2469 if test "x$use_libudev" != "xno"; then
2470   final_message="$final_message\n  libudev support:\tYes"
2471 else
2472   final_message="$final_message\n  libudev support:\tNo"
2473 fi
2474
2475 if test "x$use_libusb" != "xno"; then
2476   final_message="$final_message\n  libusb support:\tYes"
2477 else
2478   final_message="$final_message\n  libusb support:\tNo"
2479 fi
2480
2481 if test "x$use_libcec" != "xno"; then
2482   final_message="$final_message\n  libcec support:\tYes"
2483 else
2484   final_message="$final_message\n  libcec support:\tNo"
2485 fi
2486
2487 if test "x$use_libmp3lame" != "xno"; then
2488   final_message="$final_message\n  libmp3lame support:\tYes"
2489 else
2490   final_message="$final_message\n  libmp3lame support:\tNo"
2491 fi
2492
2493 if test "x$use_libvorbisenc" != "xno"; then
2494   final_message="$final_message\n  libvorbisenc support:\tYes"
2495 else
2496   final_message="$final_message\n  libvorbisenc support:\tNo"
2497 fi
2498
2499 if test "x$use_libcap" != "xno"; then
2500   final_message="$final_message\n  libcap support:\tYes"
2501 else
2502   final_message="$final_message\n  libcap support:\tNo"
2503 fi
2504
2505 if test "x$add_players" != "xno"; then
2506   final_message="$final_message\n  additional players:\tYes, $add_players"
2507 else
2508   final_message="$final_message\n  additional players:\tNo"
2509 fi
2510
2511 if test "x$add_codecs" != "xno"; then
2512   final_message="$final_message\n  additional codecs:\tYes, $add_codecs"
2513 else
2514   final_message="$final_message\n  additional codecs:\tNo"
2515 fi
2516
2517 ### External libraries messages
2518
2519 if test "$use_external_ffmpeg" = "yes"; then
2520   final_message="$final_message\n  External FFmpeg:\tYes"
2521 else
2522   final_message="$final_message\n  External FFmpeg:\tNo"
2523 fi
2524
2525 if test "$host_vendor" = "apple" ; then
2526   # built internal but referenced as external, we link directly to them.
2527   # this MUST be the last thing before OUTPUT_FILES as they do not
2528   # exist until after we build FFMpeg.
2529   LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavcodec -lavcodec"
2530   LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavfilter -lavfilter"
2531   LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswresample -lswresample"
2532   LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavformat -lavformat"
2533   LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libavutil -lavutil"
2534   LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
2535   LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
2536 fi
2537
2538 USE_PVR_ADDONS=0
2539 DISABLE_PVR_ADDON_CONFIG=1
2540 if [[ -f "pvr-addons/Makefile.am" ]]; then
2541   final_message="$final_message\n  PVR add-ons:\t\tYes"
2542   USE_PVR_ADDONS=1
2543   DISABLE_PVR_ADDON_CONFIG=0
2544 else
2545   final_message="$final_message\n  PVR add-ons:\t\tNo"
2546 fi
2547
2548 OUTPUT_FILES="Makefile \
2549     Makefile.include \
2550     addons/skin.confluence/media/Makefile \
2551     xbmc/Makefile \
2552     xbmc/cdrip/Makefile \
2553     xbmc/cores/Makefile \
2554     xbmc/cores/VideoRenderers/Makefile \
2555     xbmc/cores/dvdplayer/Makefile \
2556     lib/Makefile \
2557     lib/libdvd/Makefile \
2558     xbmc/cores/DllLoader/Makefile \
2559     xbmc/cores/DllLoader/exports/Makefile \
2560     xbmc/cores/dvdplayer/DVDCodecs/Makefile \
2561     xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
2562     xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
2563     xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
2564     xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
2565     xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
2566     xbmc/cores/AudioEngine/Makefile \
2567     xbmc/cores/paplayer/Makefile \
2568     xbmc/cores/omxplayer/Makefile \
2569     lib/timidity/Makefile \
2570     lib/asap/Makefile \
2571     lib/nosefart/Makefile \
2572     lib/libsidplay2/Makefile \
2573     lib/vgmstream/Makefile \
2574     lib/snesapu/SNES/SNESAPU/Makefile \
2575     lib/stsound/StSoundLibrary/Makefile \
2576     xbmc/cores/playercorefactory/Makefile \
2577     xbmc/music/karaoke/Makefile \
2578     xbmc/osx/Makefile \
2579     xbmc/guilib/Makefile \
2580     xbmc/input/linux/Makefile \
2581     xbmc/interfaces/Makefile \
2582     xbmc/network/Makefile \
2583     xbmc/network/upnp/Makefile \
2584     lib/libRTV/Makefile \
2585     lib/libexif/Makefile \
2586     lib/libXDAAP/Makefile \
2587     lib/cmyth/Makefile \
2588     lib/libhdhomerun/Makefile \
2589     lib/libsquish/Makefile \
2590     lib/cximage-6.0/Makefile \
2591     lib/libUPnP/Makefile \
2592     xbmc/DllPaths_generated.h \
2593     xbmc/DllPaths_generated_android.h \
2594     xbmc/freebsd/Makefile \
2595     xbmc/linux/Makefile \
2596     xbmc/filesystem/Makefile \
2597     xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
2598     xbmc/visualizations/XBMCProjectM/Makefile \
2599     xbmc/visualizations/Goom/Makefile \
2600     xbmc/visualizations/OpenGLSpectrum/Makefile \
2601     xbmc/visualizations/fishBMC/Makefile \
2602     xbmc/visualizations/WaveForm/Makefile \
2603     xbmc/windowing/Makefile \
2604     xbmc/windowing/egl/Makefile \
2605     lib/addons/library.xbmc.addon/Makefile \
2606     lib/addons/library.xbmc.codec/Makefile \
2607     lib/addons/library.xbmc.gui/Makefile \
2608     lib/addons/library.xbmc.pvr/Makefile \
2609     xbmc/visualizations/EGLHelpers/Makefile \
2610     tools/Linux/xbmc.sh \
2611     tools/Linux/xbmc-standalone.sh \
2612     tools/TexturePacker/Makefile \
2613     tools/EventClients/Clients/OSXRemote/Makefile \
2614     xbmc/peripherals/bus/Makefile \
2615     xbmc/peripherals/devices/Makefile \
2616     xbmc/android/activity/Makefile \
2617     xbmc/android/loader/Makefile \
2618     xbmc/android/jni/Makefile \
2619     xbmc/utils/Makefile \
2620     xbmc/main/Makefile \
2621     project/cmake/xbmc-config.cmake"
2622
2623 if test "$use_wayland" = "yes"; then
2624 OUTPUT_FILES="$OUTPUT_FILES xbmc/windowing/tests/wayland/Makefile"
2625 fi
2626
2627 if test "$use_skin_touched" = "yes"; then
2628 OUTPUT_FILES="$OUTPUT_FILES addons/skin.touched/media/Makefile"
2629 fi
2630
2631 if test "$use_codec_libstagefright" = "yes"; then
2632 OUTPUT_FILES="$OUTPUT_FILES xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/Makefile"
2633 fi
2634
2635 OUTPUT_FILES="$OUTPUT_FILES \
2636   xbmc/interfaces/python/Makefile \
2637   xbmc/interfaces/python/test/Makefile"
2638
2639 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
2640 # .dummy.am does nothing.
2641 AC_CONFIG_FILES([.dummy])
2642
2643 AC_CONFIG_FILES([${OUTPUT_FILES}])
2644 OUTPUT_FILES="$OUTPUT_FILES \
2645   .dummy"
2646 AC_SUBST(CFLAGS)
2647 AC_SUBST(CXXFLAGS)
2648 AC_SUBST(INCLUDES)
2649 AC_SUBST(LDFLAGS)
2650 AC_SUBST(CXX_FOR_BUILD)
2651 AC_SUBST(CC_FOR_BUILD)
2652 AC_SUBST(CFLAGS_FOR_BUILD)
2653 AC_SUBST(CXXFLAGS_FOR_BUILD)
2654 AC_SUBST(LDFLAGS_FOR_BUILD)
2655 AC_SUBST(SDL_DEFINES)
2656 AC_SUBST(BUILD_DVDCSS)
2657 AC_SUBST(DISABLE_WAVEFORM)
2658 AC_SUBST(DISABLE_SPECTRUM)
2659 AC_SUBST(DISABLE_GOOM)
2660 AC_SUBST(DISABLE_RSXS)
2661 AC_SUBST(DISABLE_FISHBMC)
2662 AC_SUBST(DISABLE_PROJECTM)
2663 AC_SUBST(USE_SKIN_TOUCHED)
2664 AC_SUBST(USE_EXTERNAL_FFMPEG)
2665 AC_SUBST(USE_STATIC_FFMPEG)
2666 AC_SUBST(USE_LIBAV_HACKS)
2667 AC_SUBST(PYTHON_VERSION)
2668 AC_SUBST(OUTPUT_FILES)
2669 AC_SUBST(HAVE_XBMC_NONFREE)
2670 AC_SUBST(USE_ASAP_CODEC)
2671 AC_SUBST(LIBCURL_BASENAME)
2672 AC_SUBST(LIBFLAC_BASENAME)
2673 AC_SUBST(LIBVORBISFILE_BASENAME)
2674 AC_SUBST(LIBMODPLUG_BASENAME)
2675 AC_SUBST(LIBMAD_BASENAME)
2676 AC_SUBST(LIBOGG_BASENAME)
2677 AC_SUBST(LIBVORBISENC_BASENAME)
2678 AC_SUBST(LIBVORBIS_BASENAME)
2679 AC_SUBST(LIBASS_BASENAME)
2680 AC_SUBST(LIBMEPG2_BASENAME)
2681 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
2682 AC_SUBST(USE_OPENGL)
2683 AC_SUBST(USE_OPENGLES)
2684 AC_SUBST(USE_VDPAU)
2685 AC_SUBST(USE_VAAPI)
2686 AC_SUBST(USE_CRYSTALHD)
2687 AC_SUBST(USE_LIBSMBCLIENT)
2688 AC_SUBST(USE_LIBNFS)
2689 AC_SUBST(USE_LIBAFPCLIENT)
2690 AC_SUBST(USE_AIRPLAY)
2691 AC_SUBST(USE_OPENMAX)
2692 AC_SUBST(USE_PULSE)
2693 AC_SUBST(HAVE_LIBPULSE)
2694 AC_SUBST(USE_XRANDR)
2695 AC_SUBST(USE_ALSA)
2696 AC_SUBST(USE_TEXTUREPACKER)
2697 AC_SUBST(USE_AIRTUNES)
2698 AC_SUBST(USE_LIBUDEV)
2699 AC_SUBST(USE_LIBUSB)
2700 AC_SUBST(USE_LIBCEC)
2701 AC_SUBST(USE_MYSQL)
2702 AC_SUBST(USE_WAYLAND)
2703 AC_SUBST(USE_WEB_SERVER)
2704 AC_SUBST(USE_UPNP)
2705 AC_SUBST(USE_XKBCOMMON)
2706 AC_SUBST(USE_OMXLIB)
2707 AC_SUBST(USE_ANDROID)
2708 AC_SUBST(GTEST_CONFIGURED)
2709 AC_SUBST(USE_DOXYGEN)
2710 AC_SUBST(USE_PVR_ADDONS)
2711 AC_SUBST(GNUTLS_ALL_LIBS)
2712 AC_SUBST(HOGWEED_ALL_LIBS)
2713 AC_SUBST(VORBISENC_ALL_LIBS)
2714 # oskwon
2715 AC_SUBST(USE_DVBBOX_EGL)
2716
2717 # pushd and popd are not available in other shells besides bash, so implement
2718 # our own pushd/popd functions
2719 XB_DIRSTACK="$PWD"
2720 xb_pushd()
2721 {
2722   local dirname="$1"
2723   if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
2724     cd "$dirname"
2725     XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
2726     return 0
2727   else
2728     AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
2729   fi
2730 }
2731 xb_popd()
2732 {
2733   if [[ -n "$XB_DIRSTACK" ]]; then
2734     XB_DIRSTACK="${XB_DIRSTACK#* }"
2735     cd "${XB_DIRSTACK%% *}"
2736     return 0
2737   else
2738     AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
2739   fi
2740 }
2741
2742 # Function to run the configure scripts in our submodules
2743 # Consists of three paramaters, the path to the submodule, the configure command
2744 # with appropriate arguments, and a third parameter set to 1 if we are to skip
2745 # running the script, anything else if not.
2746 AC_DEFUN([XB_CONFIG_MODULE],[
2747 AC_CONFIG_COMMANDS_POST([
2748 if [[ $3 != "1" ]]; then
2749     if [[ -d $1 ]]; then
2750       xb_pushd $1
2751       $2
2752       if [[ $? -ne 0 ]]; then
2753         xb_popd
2754         AC_MSG_ERROR([[Submodule $1 failed to configure]])
2755       else
2756         xb_popd
2757       fi
2758     else
2759       AC_MSG_ERROR([[Submodule $1 does not exist]])
2760     fi
2761 else
2762     AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
2763 fi
2764 ])
2765 ])
2766
2767 XB_CONFIG_MODULE([lib/ffmpeg], [
2768   if test "$host_vendor" = "apple" ; then
2769     ffmpg_config="--target-os=$ffmpeg_target_os"
2770     # handle disables first, we do individual enables later
2771     ffmpg_config="$ffmpg_config --disable-muxers   --disable-encoders"
2772     ffmpg_config="$ffmpg_config --disable-devices  --disable-doc"
2773     ffmpg_config="$ffmpg_config --disable-ffplay   --disable-ffmpeg"
2774     ffmpg_config="$ffmpg_config --disable-ffprobe  --disable-ffserver"
2775     ffmpg_config="$ffmpg_config --enable-vda       --disable-crystalhd"
2776     ffmpg_config="$ffmpg_config --disable-decoder=mpeg_xvmc"
2777
2778     # handle conditional enables/disables
2779     if test "$use_debug" = "no"; then
2780       ffmpg_config="$ffmpg_config --disable-debug"
2781     fi
2782     if test "$use_cpu"  != "no";  then
2783       ffmpg_config="$ffmpg_config --cpu=$use_cpu"
2784     fi
2785     if test "$use_arch" != "no"; then
2786       ffmpg_config="$ffmpg_config --arch=$use_arch --enable-cross-compile"
2787     fi
2788     if test "$use_arch"  = "arm"; then
2789       ffmpg_config="$ffmpg_config --enable-pic"
2790       ffmpg_config="$ffmpg_config --disable-armv5te --disable-armv6t2"
2791       if test "$use_neon"  = "yes"; then
2792         ffmpg_config="$ffmpg_config --enable-neon"
2793       else
2794         ffmpg_config="$ffmpg_config --disable-neon"
2795       fi
2796     else
2797       ffmpg_config="$ffmpg_config --disable-amd3dnow"
2798     fi
2799     if test "$use_ffmpeg_libvorbis" = "yes"; then
2800       ffmpg_config="$ffmpg_config --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis"
2801     else
2802       ffmpg_config="$ffmpg_config --disable-libvorbis"
2803     fi
2804     if test "$have_gnutls" = "yes"; then
2805       ffmpg_config="$ffmpg_config --enable-gnutls"
2806     fi
2807
2808     # handle individual enables
2809     ffmpg_config="$ffmpg_config --enable-gpl"
2810     ffmpg_config="$ffmpg_config --enable-postproc"
2811     ffmpg_config="$ffmpg_config --enable-static      --enable-pthreads"
2812     ffmpg_config="$ffmpg_config --enable-muxer=spdif --enable-muxer=adts --enable-muxer=asf --enable-muxer=ipod"
2813     ffmpg_config="$ffmpg_config --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2"
2814     ffmpg_config="$ffmpg_config --enable-protocol=http"
2815     ffmpg_config="$ffmpg_config --enable-runtime-cpudetect"
2816
2817     # ffmpeg will not compile with llvm-gcc-4.2, use clang instead
2818     case $CC in
2819       *llvm-gcc-4.2*)
2820         ffmpg_config="$ffmpg_config --cc=clang" ;;
2821       *)
2822         ffmpg_config="$ffmpg_config --cc=$CC" ;;
2823     esac
2824     
2825     # extra-cflags must be passed alone or it gets expanded wrong by the ffmpeg configure
2826     FFMPEG_EXTRACFLAGS="$CFLAGS $FFMPEG_EXTRACFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated="
2827
2828     LDFLAGS="$LDFLAGS" ./configure --extra-cflags="$FFMPEG_EXTRACFLAGS" $ffmpg_config --as="$AS"
2829
2830     # if using llvm-gcc-4.2 as assembler, -MMD is not enough to generate
2831     # dependency files in the right place, replace it with something that works
2832     case $AS in
2833       *llvm-gcc-4.2*)
2834         sed -ie "s#AS_DEPFLAGS=-MMD#AS_DEPFLAGS=-MMD -MF \$(\@:.o=.d) -MT \$\@#" config.mak ;;
2835     esac
2836
2837     # ffmpeg will use yasm found at ${prefix}/bin during configure
2838     # but then hardcodes 'yasm' in config.mak, fix it.
2839     sed -ie "s#YASM=yasm#YASM=${YASM}#" config.mak
2840     sed -ie "s#YASMDEP=yasm#YASMDEP=${YASM}#" config.mak
2841     sed -ie "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak
2842   else # oskwon : disable mips arch at ffmpeg configure.
2843     CFLAGS="" \
2844     CPPFLAGS="" \
2845     CXXFLAGS="" \
2846     LDFLAGS="$(echo "$LDFLAGS" | sed "s/-Wl,-Bsymbolic-functions//g")" \
2847     ./configure \
2848       --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
2849       `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
2850       `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
2851       `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
2852       `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
2853       `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
2854       --target-os=$ffmpeg_target_os \
2855       --disable-muxers \
2856       --enable-muxer=spdif \
2857       --enable-muxer=adts \
2858       --enable-muxer=asf \
2859       --enable-muxer=ipod \
2860       --disable-encoders \
2861       --enable-encoder=ac3 \
2862       --enable-encoder=aac \
2863       --enable-encoder=wmav2 \
2864       `if test "$use_ffmpeg_libvorbis" = "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
2865       --disable-decoder=mpeg_xvmc \
2866       --disable-devices \
2867       --disable-ffprobe \
2868       --disable-ffplay \
2869       --disable-ffserver \
2870       --disable-ffmpeg \
2871       --disable-crystalhd \
2872       `if test "$use_static_ffmpeg" = "yes"; then echo --enable-static --disable-shared; else echo --disable-static --enable-shared; fi` \
2873       --disable-doc \
2874       --enable-postproc \
2875       --enable-gpl \
2876       `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
2877       `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
2878       `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \
2879       --enable-protocol=http \
2880       `if test "$have_gnutls" = "yes"; then echo --enable-gnutls; fi` \
2881       --enable-pthreads \
2882       --enable-runtime-cpudetect \
2883       --enable-runtime-cpudetect \
2884       --disable-gnutls \
2885       --disable-mips32r2 \
2886       --disable-mipsdspr1 \
2887       --disable-mipsdspr2 \
2888       --disable-mipsfpu \
2889       `if test "$use_hardcoded_tables" = "yes"; then echo --enable-hardcoded-tables; else echo --disable-hardcoded-tables; fi`\
2890       `if test "$target_platform" = "target_android"; then echo "--custom-libname-with-major=\\$(SLIBPREF)\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; \
2891        else echo "--custom-libname-with-major=\\$(FULLNAME)-\\$(LIBMAJOR)-${ARCH}\\$(SLIBSUF)"; fi` \
2892       `case $host_cpu in i?86*) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
2893       --cc="$CC" &&
2894       sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
2895       sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
2896   fi
2897 ], [$USE_EXTERNAL_FFMPEG])
2898
2899 XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
2900   ./configure \
2901     CC="$CC" \
2902     CXX="$CXX" \
2903     CFLAGS="$CFLAGS $DROID_DVDLIB_SEEK64" \
2904     --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2905     --host=$host_alias \
2906     --build=$build_alias \
2907     --target=$target_alias \      
2908     --disable-doc \
2909     --enable-static \
2910     --with-pic
2911 ], [$SKIP_CONFIG_DVDCSS])
2912
2913 XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
2914   ./configure2 \
2915     --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src $DROID_DVDLIB_SEEK64" \
2916     --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2917     --host=$host_alias \
2918     --build=$build_alias \
2919     --target=$target_alias \      
2920     --enable-static \
2921     --disable-shared \
2922     --disable-strip \
2923     --disable-opts \
2924     --cc="$CC" &&
2925   mkdir -p `pwd`/../includes/dvdread
2926   cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
2927   cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
2928 ], [0])
2929
2930 XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
2931   ./configure2 \
2932     --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes $DROID_DVDLIB_SEEK64" \
2933     --extra-ldflags="-L`pwd`/../libdvdread/obj" \
2934     --with-dvdread-config="`pwd`/../dvdread-config" \
2935     --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2936     --host=$host_alias \
2937     --build=$build_alias \
2938     --target=$target_alias \      
2939     --enable-static \
2940     --disable-shared \
2941     --cc="$CC"
2942 ], [0])
2943
2944 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
2945   set -x
2946   rm -f CMakeCache.txt &&                              \
2947   CC="$ORIGCC" CXX="$ORIGCXX" LDFLAGS="$LDFLAGS" cmake \
2948     -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF        \
2949     -DCMAKE_C_FLAGS:STRING="${CPPFLAGS} ${CFLAGS}"     \
2950     -DCMAKE_CXX_FLAGS:STRING="${CPPFLAGS} ${CXXFLAGS}" \
2951     -DCMAKE_INSTALL_PREFIX="${prefix}"                 \
2952     -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}"            \
2953     -DINCLUDE_INSTALL_DIR:PATH="${includedir}"         \
2954     -DLIB_INSTALL_DIR:PATH="${libdir}"                 \
2955     -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}"         \
2956     -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . &&
2957   if test "$host_vendor" = "apple" ; then
2958     # cmake has hardcoded paths to macports which bork our darwin depends cross/ppc, remove them
2959     sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/link.txt
2960     sed -ie "s|-L/opt/local/lib| |" CMakeFiles/projectM.dir/flags.make
2961     sed -ie "s|-I/opt/local/include| |" CMakeFiles/projectM.dir/flags.make
2962   fi
2963   set +x
2964 ], [$DISABLE_PROJECTM])
2965
2966 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
2967   ./configure  \
2968     CFLAGS="$CFLAGS" \ 
2969     CXXFLAGS="$CXXFLAGS" \
2970     --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2971     --host=$host_alias \
2972     --build=$build_alias \
2973     --target=$target_alias \      
2974     --disable-shared \
2975     --enable-static \
2976     --with-pic
2977 ], [$DISABLE_GOOM])
2978
2979 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
2980   if test "$host_vendor" = "apple"; then
2981     # clang treats inlines different
2982     case $CC in
2983       *clang*)
2984         TEMPCFLAGS="$CFLAGS";;
2985       *)
2986         TEMPCFLAGS="${CFLAGS} -fgnu89-inline";;
2987     esac
2988   else
2989     TEMPCFLAGS="$CFLAGS";
2990   fi
2991   ./configure \
2992     CC="$CC" \
2993     CXX="$CXX" \
2994     CFLAGS="$TEMPCFLAGS" \ 
2995     CXXFLAGS="$CXXFLAGS" \
2996     `if test "$host_vendor" = "apple"; then echo --with-png=${prefix} --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib; fi` \
2997     --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
2998     --host=$host_alias \
2999     --build=$build_alias \
3000     --target=$target_alias \      
3001     --without-xscreensaver \
3002     --disable-sound \
3003     --disable-cyclone \
3004     --disable-fieldlines \
3005     --disable-flocks \
3006     --disable-flux \
3007     --disable-helios \
3008     --disable-hyperspace \
3009     --disable-lattice \
3010     --disable-skyrocket
3011   if echo "$ARCH" | grep -q freebsd ; then
3012     sed -i.back "s;\(STDBOOL_H = \)stdbool.h;\1;" lib/Makefile
3013   fi
3014 ], [$DISABLE_RSXS])
3015
3016 XB_CONFIG_MODULE([lib/cpluff], [
3017   ./configure --disable-nls \
3018     --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
3019     --host=$host_alias \
3020     --build=$build_alias \
3021     --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
3022     #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"    
3023 ], [0])
3024
3025 XB_CONFIG_MODULE([lib/gtest], [
3026   ./configure \
3027     CC="$CC" \
3028     CXX="$CXX" \
3029     CFLAGS="$CFLAGS" \
3030     --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
3031     --host=$host_alias \
3032     --build=$build_alias \
3033     --target=$target_alias \
3034     --disable-shared \
3035     --enable-static \
3036     --with-pthreads
3037 ], [$SKIP_CONFIG_GTEST])
3038
3039 XB_CONFIG_MODULE([pvr-addons], [
3040   ./configure \
3041     --prefix="${prefix}" \
3042     --host=$host_alias \
3043     --build=$build_alias \
3044     --target=$target_alias \
3045     CC="$CC" \
3046     CXX="$CXX" \
3047     CFLAGS="$CFLAGS" \
3048     CXXFLAGS="$CXXFLAGS"
3049 ], [$DISABLE_PVR_ADDON_CONFIG])
3050
3051 AC_OUTPUT
3052
3053 final_message="$final_message\n  prefix:\t$prefix\n$dashes"
3054 echo -e "$final_message\n"