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