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