[live] added: avahi-daemon package. Fixed up backport of r35560.
[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], [10.0], [http://trac.xbmc.org])
6 AC_CONFIG_HEADERS([config.h])
7 AH_TOP([#pragma once])
8
9 AC_CONFIG_AUX_DIR([build-aux])
10 AM_INIT_AUTOMAKE([foreign])
11 AC_CANONICAL_HOST
12
13 tolower(){
14   echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
15 }
16
17 # check for library basenames
18 AC_DEFUN([XB_FIND_SONAME],
19 [
20   AC_MSG_CHECKING([for lib$2 soname])
21   $1_SONAME=$( $CC -print-file-name=lib$2.so | \
22     while read output; do objdump -p $output | \
23       grep "SONAME" | \
24       sed -e 's/ \+SONAME \+//'; done 2> /dev/null )
25   if [[ -z "$$1_SONAME" ]]; then
26     AC_MSG_RESULT([no])
27     if test -z "$3" || test "x${$3}" = "xyes"; then
28       AC_MSG_ERROR([Unable to determine soname of lib$2 library])
29     else
30       AC_MSG_WARN([Unable to determine soname of lib$2 library])
31       $3=no
32       AC_MSG_WARN([lib$2 support disabled])
33     fi
34   else
35     AC_MSG_RESULT([$$1_SONAME])
36     AC_SUBST($1_SONAME)
37   fi
38 ])
39
40 # General message strings
41 configure_debug="ERROR: this is a configure debug statement"
42 missing_library="Could not find a required library. Please see the README for your platform."
43 missing_headers="Could not find some required headers. Please see the README for your platform."
44 missing_program="Could not find a required program. Please see the README for your platform."
45 xrandr_not_found="== Could not find libXRandR. SDL will be used for resolution support. =="
46 xrandr_disabled="== XRandR support disabled. SDL will be used for resolution support. =="
47 goom_enabled="== GOOM enabled. =="
48 goom_disabled="== GOOM disabled. =="
49 pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
50 pulse_disabled="== PulseAudio support manually disabled. =="
51 faac_not_found="== Could not find libfaac. FAAC support disabled. =="
52 faac_disabled="== FAAC support manually disabled. =="
53 dvdcss_enabled="== DVDCSS support enabled. =="
54 dvdcss_disabled="== DVDCSS support disabled. =="
55 hal_not_found="== Could not find hal. HAL support disabled. =="
56 halstorage_not_found="== Could not find hal-storage. HAL support disabled. =="
57 hal_disabled="== HAL support disabled. =="
58 avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
59 avahi_disabled="== Avahi support disabled. =="
60 vdpau_not_found="== Could not find libvdpau. VDPAU support disabled. =="
61 vdpau_disabled="== VDPAU support manually disabled. =="
62 vaapi_not_found="== Could not find libva. VAAPI support disabled. =="
63 vaapi_disabled="== VAAPI support manually disabled. =="
64 crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. =="
65 crystalhd_disabled="== CrystalHD support manually disabled. =="
66 vdadecoder_enabled="== VDADecoder support enabled. =="
67 vdadecoder_disabled="== VDADecoder support manually disabled. =="
68 openmax_disabled="== OpenMax support manually disabled. =="
69 openmax_not_found="== Could not find libnvomx. OpenMax support disabled. =="
70 libass_using_internal="== External Libass not found, using internal. =="
71 ssh_not_found="== Could not find libssh. SSH FTP VFS support disabled. =="
72 librtmp_not_found="== Could not find libRTMP. RTMP support disabled. =="
73 librtmp_disabled="== RTMP support disabled. =="
74
75 # External library message strings
76 external_libraries_enabled="== Use of all supported external libraries enabled. =="
77 external_libraries_disabled="== Use of all supported external libraries disabled. =="
78 external_ffmpeg_enabled="== Use of external ffmpeg enabled. =="
79 external_ffmpeg_disabled="== Use of external ffmpeg disabled. =="
80 external_liba52_enabled="== Use of external liba52 enabled. =="
81 external_liba52_disabled="== Use of external liba52 disabled. =="
82 external_libdts_enabled="== Use of external libdts enabled. =="
83 external_libdts_disabled="== Use of external libdts disabled. =="
84 external_python_enabled="== Use of external python enabled. =="
85 external_python_disabled="== Use of external python disabled. =="
86 ffmpeg_vdpau_not_supported="== External ffmpeg doesn't support VDPAU. VDPAU support disabled. =="
87 dashes="------------------------"
88 final_message="\n  XBMC Configuration:"
89 final_message="\n$dashes$final_message\n$dashes"
90
91
92 AC_ARG_ENABLE([debug],
93   [AS_HELP_STRING([--enable-debug],
94   [enable debugging information (default is yes)])],
95   [use_debug=$enableval],
96   [use_debug=yes])
97
98 AC_ARG_WITH([arch],
99   [AS_HELP_STRING([--with-arch],
100   [build with given arch passing to internal ffmpeg (default is no, needed for crosscompiling)])],
101   [use_arch=$withval],
102   [use_arch=no])
103
104 AC_ARG_WITH([cpu],
105   [AS_HELP_STRING([--with-cpu],
106   [build with given cpu passing to ffmpeg (default is no)])],
107   [use_cpu=$withval],
108   [use_cpu=no])
109
110 AC_ARG_ENABLE([optimizations],
111   [AS_HELP_STRING([--enable-optimizations],
112   [enable optimization (default is yes)])],
113   [use_optimizations=$enableval],
114   [use_optimizations=yes])
115
116 AC_ARG_ENABLE([gl],
117   [AS_HELP_STRING([--enable-gl],
118   [enable OpenGL rendering (default is yes)])],
119   [use_gl=$enableval],
120   [use_gl=yes])
121
122 AC_ARG_ENABLE([gles],
123   [AS_HELP_STRING([--enable-gles],
124   [enable OpenGLES rendering (default is no)])],
125   [use_gles=$enableval],
126   [use_gles=no])
127
128 AC_ARG_ENABLE([vdpau],
129   [AS_HELP_STRING([--enable-vdpau],
130   [enable VDPAU decoding (default is auto)])],
131   [use_vdpau=$enableval],
132   [use_vdpau=auto])
133
134 AC_ARG_ENABLE([vaapi],
135   [AS_HELP_STRING([--enable-vaapi],
136   [enable VAAPI decoding (default is auto)])],
137   [use_vaapi=$enableval],
138   [use_vaapi=auto])
139
140 AC_ARG_ENABLE([crystalhd],
141   [AS_HELP_STRING([--enable-crystalhd],
142   [enable CrystalHD decoding (default is auto)])],
143   [use_crystalhd=$enableval],
144   [use_crystalhd=auto])
145
146 AC_ARG_ENABLE([vdadecoder],
147   [AS_HELP_STRING([--enable-vdadecoder],
148   [enable VDADecoder decoding (default is auto)])],
149   [use_vdadecoder=$enableval],
150   [use_vdadecoder=auto])
151
152 AC_ARG_ENABLE([openmax],
153   [AS_HELP_STRING([--enable-openmax],
154   [enable OpenMax decoding (default is yes)])],
155   [use_openmax=$enableval],
156   [use_openmax=yes])
157
158 AC_ARG_ENABLE([tegra],
159   [AS_HELP_STRING([--enable-tegra],
160   [enable Tegra2 arm (default is no)])],
161   [use_tegra=$enableval],
162   [use_tegra=no])
163
164 AC_ARG_ENABLE([profiling],
165   [AS_HELP_STRING([--enable-profiling],
166   [enable gprof profiling (default is no)])],
167   [use_profiling=$enableval],
168   [use_profiling=no])
169
170 AC_ARG_ENABLE([joystick],
171   [AS_HELP_STRING([--enable-joystick],
172   [enable SDL joystick support (default is yes)])],
173   [use_joystick=$enableval],
174   [use_joystick=yes])
175
176 AC_ARG_ENABLE([xrandr],
177   [AS_HELP_STRING([--enable-xrandr],
178   [enable XRandR support (default is yes)])],
179   [use_xrandr=$enableval],
180   [use_xrandr=yes])
181
182 AC_ARG_ENABLE([goom],
183   [AS_HELP_STRING([--enable-goom],
184   [enable GOOM visualisation (default is no)])],
185   [use_goom=$enableval],
186   [use_goom=no])
187
188 AC_ARG_ENABLE([ccache],
189   [AS_HELP_STRING([--enable-ccache],
190   [enable building with ccache feature (default is auto)])],
191   [use_ccache=$enableval],
192   [use_ccache=auto])
193
194 AC_ARG_ENABLE([pulse],
195   [AS_HELP_STRING([--enable-pulse],
196   [enable PulseAudio support (default is auto)])],
197   [use_pulse=$enableval],
198   [use_pulse=auto])
199
200 AC_ARG_ENABLE([rtmp],
201   [AS_HELP_STRING([--enable-rtmp],
202   [enable RTMP support via librtmp (default is auto)])],
203   [use_librtmp=$enableval],
204   [use_librtmp=auto])
205
206 AC_ARG_ENABLE([ffmpeg_libvorbis],
207   [AS_HELP_STRING([--enable-ffmpeg-libvorbis],
208   [enable FFmpeg vorbis encoding (default is no)])],
209   [use_ffmpeg_libvorbis=$enableval],
210   [use_ffmpeg_libvorbis=no])
211
212 AC_ARG_ENABLE([faac],
213   [AS_HELP_STRING([--enable-faac],
214   [enable FAAC support (default is yes)])],
215   [use_faac=$enableval],
216   [use_faac=yes])
217
218 AC_ARG_ENABLE([dvdcss],
219   [AS_HELP_STRING([--enable-dvdcss],
220   [enable DVDCSS support (default is yes)])],
221   [use_dvdcss=$enableval],
222   [use_dvdcss=yes])
223
224 AC_ARG_ENABLE([mid],
225   [AS_HELP_STRING([--enable-mid],
226   [enable MID support (default is no)])],
227   [use_mid=$enableval],
228   [use_mid=no])
229
230 AC_ARG_ENABLE([hal],
231   [AS_HELP_STRING([--disable-hal],
232   [disable HAL support (default is enabled if hal and hal-storage is found)])],
233   [use_hal=$enableval],
234   [use_hal=yes])
235
236 AC_ARG_ENABLE([avahi],
237   [AS_HELP_STRING([--disable-avahi],
238   [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
239   [use_avahi=$enableval],
240   [use_avahi=yes])
241
242 AC_ARG_ENABLE([non-free],
243   [AS_HELP_STRING([--disable-non-free],
244   [disable componentents with non-compliant licenses])],
245   [use_nonfree=$enableval],
246   [use_nonfree=yes])
247
248 AC_ARG_ENABLE([asap-codec],
249   [AS_HELP_STRING([--enable-asap-codec],
250   [enable ASAP ADPCM support])],
251   [use_asap=$enableval],
252   [use_asap=no])
253
254 AC_ARG_ENABLE([webserver],
255   [AS_HELP_STRING([--disable-webserver],
256   [disable webserver])],
257   [use_webserver=$enableval],
258   [use_webserver=yes])
259
260 AC_ARG_ENABLE([libdts],
261   [AS_HELP_STRING([--enable-libdts],
262   [enable deprecated libdts support])],
263   [use_libdts=$enableval],
264   [use_libdts=no])
265
266 AC_ARG_ENABLE([liba52],
267   [AS_HELP_STRING([--enable-liba52],
268   [enable deprecated liba52 support])],
269   [use_liba52=$enableval],
270   [use_liba52=no])
271
272 AC_ARG_ENABLE([libbluray],
273   [AS_HELP_STRING([--enable-libbluray],
274   [enable libbluray support])],
275   [use_libbluray=$enableval],
276   [use_libbluray=auto])
277
278 AC_ARG_WITH([lirc-device],
279   [AS_HELP_STRING([--with-lirc-device=file],
280   [specify the default LIRC device (default is /dev/lircd)])],
281   [lirc_device=$withval],
282   [lirc_device=/dev/lircd])
283 AC_DEFINE_UNQUOTED([LIRC_DEVICE], ["$lirc_device"], [Default LIRC device])
284
285 ### External libraries options
286 AC_ARG_ENABLE([external-libraries],
287   [AS_HELP_STRING([--enable-external-libraries],
288   [enable use of all supported external libraries (default is no) 'Linux only'])],
289   [use_external_libraries=$enableval],
290   [use_external_libraries=no])
291
292 AC_ARG_ENABLE([external-ffmpeg],
293   [AS_HELP_STRING([--enable-external-ffmpeg],
294   [enable use of external ffmpeg libraries (default is no) 'Linux only'])],
295   [use_external_ffmpeg=$enableval],
296   [use_external_ffmpeg=$use_external_libraries])
297
298 AC_ARG_ENABLE([external-liba52],
299   [AS_HELP_STRING([--enable-external-liba52],
300   [enable use of external liba52 library (default is no) 'Linux only'])],
301   [use_external_liba52=$enableval],
302   [use_external_liba52=$use_external_libraries])
303
304 AC_ARG_ENABLE([external-libdts],
305   [AS_HELP_STRING([--enable-external-libdts],
306   [enable use of external libdts library (default is no) 'Linux only'])],
307   [use_external_libdts=$enableval],
308   [use_external_libdts=$use_external_libraries])
309
310 AC_ARG_ENABLE([external-python],
311   [AS_HELP_STRING([--enable-external-python],
312   [enable use of external python library (default is no) 'Linux only'])],
313   [use_external_python=$enableval],
314   [use_external_python=$use_external_libraries])
315
316 use_external_libass="yes"
317 ### End of external library options
318 DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT"
319 if test "x$host_vendor" = "xapple"; then
320   DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4"
321 else
322   DEFAULT_COMPILE_FLAGS="$DEFAULT_COMPILE_FLAGS -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
323 fi
324 # Checks for programs.
325 PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
326 AC_PROG_CXX
327 CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
328 PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
329 AC_PROG_CC
330 CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
331 AC_PROG_AWK
332 AC_PROG_LN_S
333 AC_PROG_MAKE_SET
334
335 # host detection and setup
336 case $host in
337   i*86*-linux-gnu*)
338      ARCH="i486-linux"
339      ;;
340   x86_64-*-linux-gnu*)
341      ARCH="x86_64-linux"
342      ;;
343   i386-apple-darwin*)
344      ARCH="x86-osx"
345      # define i386 or x86_64, cannot use $HOSTTYPE as it reports x86_64 on 10.6 regardless of kernel flavor
346      ARCHTYPE=`uname -m`
347      AC_SUBST([ARCHTYPE])
348      ;;
349   powerpc-apple-darwin*)
350      ARCH="powerpc-osx"
351      # define ppc
352      ARCHTYPE=`arch`
353      AC_SUBST([ARCHTYPE])
354      ;;
355   powerpc-*-linux-gnu*)
356      ARCH="powerpc-linux"
357      AC_SUBST(ARCH_DEFINES, "-D_POWERPC")
358      ;;
359   powerpc64-*-linux-gnu*)
360      ARCH="powerpc64-linux"
361      AC_SUBST(ARCH_DEFINES, "-D_POWERPC64")
362      ;;
363   arm*-*-linux-gnu*)
364      ARCH="arm"
365      AC_SUBST(ARCH_DEFINES, "-D_ARMEL")
366      ;;
367   *)
368      AC_MSG_ERROR(unsupported host ($host))
369 esac
370 AC_SUBST([ARCH])
371 if test "$use_debug" = "yes"; then
372   final_message="$final_message\n  Debugging:\tYes"
373   if test "$use_profiling" = "yes"; then
374     final_message="$final_message\n  Profiling:\tYes"
375     DEBUG_FLAGS="-g -pg -D_DEBUG -Wall"
376   else
377     final_message="$final_message\n  Profiling:\tNo"
378     DEBUG_FLAGS="-g -D_DEBUG -Wall"
379   fi
380 else
381   final_message="$final_message\n  Debugging:\tNo"
382   if test "$use_profiling" = "yes"; then
383     final_message="$final_message\n  Profiling:\tYes"
384     DEBUG_FLAGS="-pg -DNDEBUG=1"
385   else
386     final_message="$final_message\n  Profiling:\tNo"
387     DEBUG_FLAGS="-DNDEBUG=1"
388   fi
389 fi
390
391 CFLAGS="$CFLAGS $DEBUG_FLAGS"
392 CXXFLAGS="$CXXFLAGS $DEBUG_FLAGS"
393
394 if test "$use_optimizations" = "yes"; then
395   final_message="$final_message\n  Optimization:\tYes"
396   CXXFLAGS="$CXXFLAGS -O2"
397   CFLAGS="$CFLAGS -O2"
398 else
399   final_message="$final_message\n  Optimization:\tNo"
400 fi
401
402
403 # platform specific flags
404 if test "$host_vendor" = "apple" ; then
405   AC_SUBST(MACOSX_DEPLOYMENT_TARGET, "10.4")
406   # need these in CFLAGS/CXXFLAGS so AC_CHECK_LIB works
407   CFLAGS="$CFLAGS -I/opt/local/include"
408   CXXFLAGS="$CXXFLAGS -I/opt/local/include"
409   # standard xbmc paths
410   INCLUDES="$INCLUDES -I\$(abs_top_srcdir)/xbmc/osx"
411   LDFLAGS="$LDFLAGS -mmacosx-version-min=10.4"
412   LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk"
413   LDFLAGS="$LDFLAGS -L/opt/local/lib"
414   LDFLAGS="$LDFLAGS -L/opt/local/lib/mysql5/mysql"
415   LDFLAGS="$LDFLAGS -L/opt/local/lib/samba3"
416   LIBS="$LIBS -framework IOKit"
417   LIBS="$LIBS -framework Cocoa"
418   LIBS="$LIBS -framework OpenGL"
419   LIBS="$LIBS -framework AppKit"
420   LIBS="$LIBS -framework Carbon"
421   LIBS="$LIBS -framework CoreAudio"
422   LIBS="$LIBS -framework QuickTime"
423   LIBS="$LIBS -framework AudioUnit"
424   LIBS="$LIBS -framework Foundation"
425   LIBS="$LIBS -framework CoreServices"
426   LIBS="$LIBS -framework CoreVideo"
427   LIBS="$LIBS -framework CoreAudio"
428   LIBS="$LIBS -framework AudioToolbox"
429   LIBS="$LIBS -framework CoreFoundation"
430   LIBS="$LIBS -framework DiskArbitration"
431   LIBS="$LIBS -framework ApplicationServices"
432 elif expr "X$host_cpu" : 'Xarm.*' > /dev/null; then
433   use_arch=arm
434   CFLAGS="$CFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
435   CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
436   FFMPEG_EXTRACFLAGS="-mfloat-abi=softfp"
437   if test "$use_tegra" = "yes"; then
438     # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support 
439     SAVE_CFLAGS="$CFLAGS"
440     CFLAGS="-mfpu=vfpv3-d16"
441     AC_COMPILE_IFELSE(
442       [int foo;],
443       [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
444         CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
445         FFMPEG_EXTRACFLAGS+=" -mtune=cortex-a9 -mfpu=vfpv3-d16"
446         use_cpu=cortex-a9],
447       [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
448         CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"    
449         use_cpu=cortex-a8])
450   else
451     # Compile for ARMv7a architecture, CortexA8 cpu and NEON coprocessor
452     CFLAGS+=" -Wa,-march=armv7a -mcpu=cortex-a8 -mfpu=neon -mvectorize-with-neon-quad"
453     CXXFLAGS+=" -Wa,-march=armv7a -mcpu=cortex-a8 -mfpu=neon -mvectorize-with-neon-quad"
454     FFMPEG_EXTRACFLAGS+=" -mfpu=neon"
455   fi
456 fi
457
458 # Checks for library functions.
459 AC_FUNC_ALLOCA
460 AC_FUNC_CHOWN
461 AC_FUNC_CLOSEDIR_VOID
462 AC_FUNC_ERROR_AT_LINE
463 AC_FUNC_FSEEKO
464 AC_PROG_GCC_TRADITIONAL
465 AC_FUNC_LSTAT
466 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
467 AC_FUNC_MEMCMP
468 AC_FUNC_MKTIME
469 AC_FUNC_MMAP
470 # Boxee is apparently having compile problems
471 # if HAVE_REALLOC is defined.  Sort this later.
472 #AC_FUNC_REALLOC
473 AC_FUNC_SELECT_ARGTYPES
474 AC_FUNC_SETVBUF_REVERSED
475 AC_TYPE_SIGNAL
476 AC_FUNC_STAT
477 AC_FUNC_STRCOLL
478 AC_FUNC_STRFTIME
479 AC_FUNC_STRTOD
480 AC_FUNC_UTIME_NULL
481 AC_FUNC_VPRINTF
482 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])
483
484 # Check for various sizes
485 AC_CHECK_SIZEOF([int])
486 AC_CHECK_SIZEOF([size_t])
487
488 # Add top source directory for all builds so we can use config.h
489 INCLUDES="$INCLUDES -I\$(abs_top_srcdir)"
490
491 # Checks for boost headers using CXX instead of CC
492 AC_LANG_PUSH([C++])
493 AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
494 AC_LANG_POP([C++])
495
496 # Checks for platforms libraries.
497 if test "$use_gles" = "yes"; then
498   # GLES overwrites GL if both set to yes.
499   AC_CHECK_LIB([EGL],     [main],, AC_MSG_ERROR($missing_library))
500   AC_CHECK_LIB([GLESv2],  [main],, AC_MSG_ERROR($missing_library))
501 else
502   if test "$use_gl" = "yes"; then
503     if test "$host_vendor" = "apple" ; then
504       # linking to OpenGL.framework instead of libGL, libGLU
505       AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
506     else
507       AC_CHECK_LIB([GL],  [main],, AC_MSG_ERROR($missing_library))
508       AC_CHECK_LIB([GLEW],[main],, AC_MSG_ERROR($missing_library))
509       AC_CHECK_LIB([GLU], [main],, AC_MSG_ERROR($missing_library))
510     fi
511   else
512     AC_MSG_RESULT(== WARNING: OpenGL support is disabled. XBMC will run VERY slow. ==)
513     AC_CHECK_LIB([SDL_gfx],[main])
514   fi
515 fi
516
517 # platform independent libraries
518 AC_CHECK_HEADER([mad.h],,            AC_MSG_ERROR($missing_library))
519 AC_CHECK_HEADER([jpeglib.h],,        AC_MSG_ERROR($missing_library))
520 AC_CHECK_HEADER([samplerate.h],,     AC_MSG_ERROR($missing_library))
521 AC_CHECK_HEADER([ogg/ogg.h],,        AC_MSG_ERROR($missing_library))
522 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
523 AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_library))
524 AC_CHECK_LIB([ass], [ass_set_message_cb],,use_external_libass="no")
525 AC_CHECK_LIB([bz2],         [main],, AC_MSG_ERROR($missing_library))
526 AC_CHECK_LIB([jpeg],        [main],, AC_MSG_ERROR($missing_library)) # check for cximage
527 AC_CHECK_LIB([pthread],     [main],, AC_MSG_ERROR($missing_library))
528 AC_CHECK_LIB([lzo2],        [main],, AC_MSG_ERROR($missing_library))
529 AC_CHECK_LIB([z],           [main],, AC_MSG_ERROR($missing_library))
530 AC_CHECK_LIB([ssl],         [main],, AC_MSG_ERROR($missing_library))
531 AC_CHECK_LIB([crypto],      [main],, AC_MSG_ERROR($missing_library))
532 AC_CHECK_LIB([wavpack],     [main],, AC_MSG_ERROR($missing_library))
533 AC_CHECK_LIB([mpeg2],       [main],, AC_MSG_ERROR($missing_library))
534 AC_CHECK_LIB([mpeg2convert],[main],, AC_MSG_ERROR($missing_library))
535 AC_CHECK_LIB([ssh],         [sftp_tell64],, AC_MSG_RESULT([Could not find suitable version of libssh]))
536 PKG_CHECK_MODULES([MAD],        [mad],
537   [INCLUDES="$INCLUDES $MAD_CFLAGS"; LIBS="$LIBS $MAD_LIBS"],
538   AC_MSG_ERROR($missing_library))
539 PKG_CHECK_MODULES([FONTCONFIG], [fontconfig],
540   [INCLUDES="$INCLUDES $FONTCONFIG_CFLAGS"; LIBS="$LIBS $FONTCONFIG_LIBS"],
541   AC_MSG_ERROR($missing_library))
542 PKG_CHECK_MODULES([FRIBIDI],    [fribidi],
543   [INCLUDES="$INCLUDES $FRIBIDI_CFLAGS"; LIBS="$LIBS $FRIBIDI_LIBS"],
544   AC_MSG_ERROR($missing_library))
545 PKG_CHECK_MODULES([SQLITE3],    [sqlite3],
546   [INCLUDES="$INCLUDES $SQLITE3_CFLAGS"; LIBS="$LIBS $SQLITE3_LIBS"],
547   AC_MSG_ERROR($missing_library))
548 PKG_CHECK_MODULES([PNG],        [libpng],
549   [INCLUDES="$INCLUDES $PNG_CFLAGS"; LIBS="$LIBS $PNG_LIBS"],
550   AC_MSG_ERROR($missing_library))
551 PKG_CHECK_MODULES([PCRE],       [libpcre],
552   [INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
553   AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
554   AC_MSG_ERROR($missing_library))
555 PKG_CHECK_MODULES([PCRECPP],    [libpcrecpp],
556   [INCLUDES="$INCLUDES $PCRECPP_CFLAGS"; LIBS="$LIBS $PCRECPP_LIBS"]; \
557   AC_DEFINE([HAVE_LIBPCRECPP],[1],["Define to 1 if libpcrecpp is installed"]),
558   AC_MSG_ERROR($missing_library))
559 PKG_CHECK_MODULES([CDIO],       [libcdio],
560   [INCLUDES="$INCLUDES $CDIO_CFLAGS"; LIBS="$LIBS $CDIO_LIBS"],
561   AC_MSG_ERROR($missing_library))
562 PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
563   [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
564   AC_MSG_ERROR($missing_library))
565 PKG_CHECK_MODULES([MMS],        [libmms],
566   [INCLUDES="$INCLUDES $MMS_CFLAGS"; LIBS="$LIBS $MMS_LIBS"],
567   AC_MSG_ERROR($missing_library))
568 PKG_CHECK_MODULES([FREETYPE2],  [freetype2],
569   [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
570   AC_MSG_ERROR($missing_library))
571 PKG_CHECK_MODULES([OGG],        [ogg],
572   [INCLUDES="$INCLUDES $OGG_CFLAGS"; LIBS="$LIBS $OGG_LIBS"],
573   AC_MSG_ERROR($missing_library))
574 PKG_CHECK_MODULES([VORBIS],     [vorbis],
575   [INCLUDES="$INCLUDES $VORBIS_CFLAGS"; LIBS="$LIBS $VORBIS_LIBS"],
576   AC_MSG_ERROR($missing_library))
577 PKG_CHECK_MODULES([VORBISENC],     [vorbisenc],
578   [INCLUDES="$INCLUDES $VORBISENC_CFLAGS"; LIBS="$LIBS $VORBISENC_LIBS"],
579   AC_MSG_ERROR($missing_library))
580
581 # check for libbluray
582 AS_CASE([x$use_libbluray],
583   [xyes],[
584     PKG_CHECK_MODULES([LIBBLURAY],[libbluray],[use_libbluray="yes"], AC_MSG_ERROR($missing_library))
585   ],
586   [xauto],[
587     PKG_CHECK_MODULES([LIBBLURAY],[libbluray],[use_libbluray="yes"], [use_libbluray="no"])
588   ])
589
590 AS_CASE([x$use_libbluray],
591   [xyes],[
592     INCLUDES="$INCLUDES $LIBBLURAY_CFLAGS";
593     if test "$host_vendor" != "apple"; then
594       XB_FIND_SONAME([BLURAY], [bluray], [use_libbluray])
595     fi;
596     AC_DEFINE([HAVE_LIBBLURAY], 1, [System has libbluray library])
597     AC_SUBST([HAVE_LIBBLURAY], 1)
598   ],[
599 #    AC_DEFINE([HAVE_LIBBLURAY], 0, [System has libbluray library])
600     AC_SUBST([HAVE_LIBBLURAY], 0)
601   ]
602 )
603
604 # platform dependent libraries
605 if test "$host_vendor" = "apple" ; then
606   AC_CHECK_LIB([iconv],     [main],, AC_MSG_ERROR($missing_library))
607   AC_CHECK_LIB([mysqlclient], [main],, AC_MSG_ERROR($missing_library))
608   AC_CHECK_LIB([smbclient], [main],, AC_MSG_ERROR($missing_library))
609   PKG_CHECK_MODULES([VORBISFILE],     [vorbisfile],
610     [INCLUDES="$INCLUDES $VORBISFILE_CFLAGS"; LIBS="$LIBS $VORBISFILE_LIBS"],
611     AC_MSG_ERROR($missing_library))
612 else
613   AC_CHECK_PROG(MYSQL_CONFIG, mysql_config, "yes", "no")
614   if test $MYSQL_CONFIG = "yes"; then
615     INCLUDES="$INCLUDES `mysql_config --include`"
616     LIBS="$LIBS `mysql_config --libs`"
617   else
618     AC_MSG_ERROR($missing_program)
619   fi
620   # don't combine with mysqlclient check in apple section above, Linux needs
621   # paths from mysql_config
622   AC_CHECK_LIB([modplug],    [main],, AC_MSG_ERROR($missing_library))
623   AC_CHECK_LIB([mysqlclient],[main],, AC_MSG_ERROR($missing_library))
624   AC_CHECK_LIB([faad],       [main],, AC_MSG_ERROR($missing_library))
625   AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
626   AC_CHECK_LIB([smbclient],  [main],, AC_MSG_ERROR($missing_library))
627   AC_CHECK_LIB([SDL_mixer],  [main],, AC_MSG_ERROR($missing_library))
628   AC_CHECK_LIB([dl],         [main],, AC_MSG_ERROR($missing_library))
629   AC_CHECK_LIB([resolv],     [main],, AC_MSG_ERROR($missing_library))
630   AC_CHECK_LIB([jasper],     [main],, AC_MSG_ERROR($missing_library)) # check for cximage
631   AC_CHECK_LIB([tiff],       [main],, AC_MSG_ERROR($missing_library))
632   AC_CHECK_LIB([rt],         [clock_gettime],, AC_MSG_ERROR($missing_library))
633   AC_CHECK_LIB([SDL_image],  [main],, AC_MSG_ERROR($missing_library))
634   
635   PKG_CHECK_MODULES([ALSA],  [alsa],
636     [INCLUDES="$INCLUDES $ALSA_CFLAGS"; LIBS="$LIBS $ALSA_LIBS"],
637     AC_MSG_ERROR($missing_library))
638   PKG_CHECK_MODULES([ENCA],  [enca],
639     [INCLUDES="$INCLUDES $ENCA_CFLAGS"; LIBS="$LIBS $ENCA_LIBS"],
640     AC_MSG_ERROR($missing_library))
641   PKG_CHECK_MODULES([XT],    [xt],
642     [INCLUDES="$INCLUDES $XT_CFLAGS"; LIBS="$LIBS $XT_LIBS"],
643     AC_MSG_ERROR($missing_library))
644   PKG_CHECK_MODULES([XTST],  [xtst],
645     [INCLUDES="$INCLUDES $XTST_CFLAGS"; LIBS="$LIBS $XTST_LIBS"],
646     AC_MSG_ERROR($missing_library))
647   PKG_CHECK_MODULES([XEXT],  [xext],
648     [INCLUDES="$INCLUDES $XEXT_CFLAGS"; LIBS="$LIBS $XEXT_LIBS"],
649     AC_MSG_ERROR($missing_library))
650   PKG_CHECK_MODULES([XMU],   [xmu],
651     [INCLUDES="$INCLUDES $XMU_CFLAGS"; LIBS="$LIBS $XMU_LIBS"],
652     AC_MSG_ERROR($missing_library))
653   PKG_CHECK_MODULES([XINERAMA],[xinerama],
654     [INCLUDES="$INCLUDES $XINERAMA_CFLAGS"; LIBS="$LIBS $XINERAMA_LIBS"],
655     AC_MSG_ERROR($missing_library))
656   PKG_CHECK_MODULES([CURL],  [libcurl],
657     [INCLUDES="$INCLUDES $CURL_CFLAGS"; LIBS="$LIBS $CURL_LIBS"],
658     AC_MSG_ERROR($missing_library))
659   PKG_CHECK_MODULES([DBUS],  [dbus-1],
660     [INCLUDES="$INCLUDES $DBUS_CFLAGS"; LIBS="$LIBS $DBUS_LIBS"],
661     AC_MSG_ERROR($missing_library))
662   PKG_CHECK_MODULES([SDL],   [sdl],
663     [INCLUDES="$INCLUDES $SDL_CFLAGS"; LIBS="$LIBS $SDL_LIBS"],
664     AC_MSG_ERROR($missing_library))
665 fi
666
667 # This is used to skip some submodule configuration on non-Apple hardware
668 HOST_NOT_APPLE=1
669 if [[ "$host_vendor" = "apple" ]]; then
670   HOST_NOT_APPLE=0
671 fi
672
673 if test "$host_vendor" != "apple"; then
674   XB_FIND_SONAME([CURL],        [curl])
675   XB_FIND_SONAME([FLAC],        [FLAC])
676   XB_FIND_SONAME([VORBISFILE],  [vorbisfile])
677   XB_FIND_SONAME([MODPLUG],     [modplug])
678   XB_FIND_SONAME([FAAD],        [faad])
679   XB_FIND_SONAME([MAD],         [mad])
680   XB_FIND_SONAME([OGG],         [ogg])
681   XB_FIND_SONAME([VORBISENC],   [vorbisenc])
682   XB_FIND_SONAME([VORBIS],      [vorbis])
683 fi
684
685 # WebServer
686 if test "$host_vendor" != "apple" ; then
687   if test "$use_webserver" = "yes"; then
688     AC_CHECK_LIB([microhttpd],  [main],, AC_MSG_ERROR($missing_library))
689   fi
690 else
691   if test "$use_webserver" = "yes"; then
692     AC_DEFINE([HAVE_LIBMICROHTTPD], [1],)
693   fi
694 fi
695
696 # PulseAudio
697 if test "x$use_pulse" != "xno"; then
698   if test "$host_vendor" = "apple" ; then
699     if test "x$use_pulse" = "xyes"; then
700       AC_MSG_ERROR($pulse_disabled)
701     else
702       use_pulse="no"
703       AC_MSG_RESULT($pulse_disabled)
704     fi
705   else
706     AC_CHECK_LIB([pulse], [main],,
707       [if test "x$use_pulse" = "xyes"; then
708         AC_MSG_ERROR($pulse_not_found)
709       else
710         use_pulse=no
711         AC_MSG_RESULT($pulse_not_found)
712       fi])
713   fi
714 else
715   AC_MSG_RESULT($pulse_disabled)
716 fi
717
718 # FAAC
719 if test "$host_vendor" = "apple" ; then
720   use_faac="no"
721   AC_MSG_RESULT($faac_disabled)
722 else
723   if test "$use_faac" = "yes"; then
724     AC_CHECK_LIB([faac], [main],,
725       use_faac=no;AC_MSG_RESULT($faac_not_found))
726   else
727     AC_MSG_RESULT($faac_disabled)
728   fi
729 fi
730
731 # HAL
732 if test "$host_vendor" = "apple" ; then
733   use_hal="no"
734   AC_MSG_RESULT($hal_disabled)
735 else
736   if test "$use_hal" = "yes"; then
737     PKG_CHECK_MODULES([HAL], [hal],
738       [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
739       use_hal=no;AC_MSG_RESULT($hal_not_found))
740     PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
741       [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
742       use_hal=no;AC_MSG_RESULT($halstorage_not_found))
743   else
744     AC_MSG_RESULT($hal_disabled)
745   fi
746   if test "$use_hal" = "yes"; then
747     AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
748   fi
749 fi
750
751 # avahi
752 if test "$host_vendor" = "apple" ; then
753   use_avahi="no"
754   AC_MSG_RESULT($avahi_disabled)
755 else
756   if test "$use_avahi" = "yes"; then
757     AC_CHECK_LIB([avahi-common], [main],,
758       use_avahi=no;AC_MSG_RESULT($avahi_not_found))
759         if test "$use_avahi" = "yes"; then
760                 #either both libs or none
761     AC_CHECK_LIB([avahi-client], [main],,
762       use_avahi=no;AC_MSG_RESULT($avahi_not_found))
763         fi
764     else
765      AC_MSG_RESULT($avahi_disabled)
766    fi
767 fi
768
769 # XRandR
770 if test "$host_vendor" = "apple" ; then
771   use_xrandr="no"
772   AC_MSG_RESULT($xrandr_disabled)
773 else
774   if test "$use_xrandr" = "yes" ; then
775     AC_CHECK_LIB([Xrandr], [main],, 
776       use_xrandr="no";AC_MSG_RESULT($xrandr_not_found))
777   else
778     AC_MSG_RESULT($xrandr_disabled)
779   fi
780 fi
781
782 # GOOM
783 if test "$host_vendor" = "apple" ; then
784   AC_MSG_NOTICE($goom_disabled)
785   BUILD_GOOM=1
786 else
787   if test "$use_goom" = "yes"; then
788     AC_MSG_NOTICE($goom_enabled)
789     BUILD_GOOM=0
790   else
791     AC_MSG_NOTICE($goom_disabled)
792     BUILD_GOOM=1
793   fi
794 fi
795
796 # libRTMP
797 if test "$use_librtmp" != "no"; then
798   AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
799    [if test "$use_librtmp" = "yes"; then
800       AC_MSG_ERROR($librtmp_not_found)
801     elif test "$use_librtmp" != "no"; then
802       AC_MSG_NOTICE($librtmp_not_found)
803       use_librtmp="no"
804     fi
805    ])
806   if test "$use_librtmp" != "no" && test "$host_vendor" != "apple"; then
807     XB_FIND_SONAME([RTMP], [rtmp], [use_librtmp])
808   fi
809   if test "$use_librtmp" != "no"; then
810     AC_DEFINE([HAS_LIBRTMP], [1], [Whether to use libRTMP library.])
811   fi
812 else
813   AC_MSG_NOTICE($librtmp_disabled)
814 fi
815
816 ### External libraries checks
817 # External FFmpeg
818 if test "$use_external_ffmpeg" = "yes"; then
819   PKG_CHECK_MODULES([FFMPEG], [libavcodec libavformat libavutil libpostproc libswscale],
820                     [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"],
821                     AC_MSG_ERROR($missing_library))
822
823   # Determine whether AVPacket and relevant functions are defined in libavformat
824   # or libavcodec
825   AC_CHECK_LIB([avcodec], [av_free_packet],
826   [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavcodec. ==)],
827   [AC_MSG_NOTICE(== AVPacket and relevant functions defined in libavformat. ==)
828    AC_DEFINE([AVPACKET_IN_AVFORMAT], [1], [Whether AVPacket is in libavformat.])])
829
830   # in case the headers are in a custom directory
831   SAVE_CPPFLAGS="$CPPFLAGS"
832   CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
833
834   # Possible places the ffmpeg headers may be
835   AC_CHECK_HEADERS([libavcodec/avcodec.h libavformat/avformat.h libavutil/avutil.h libpostproc/postprocess.h libswscale/swscale.h],,
836   [AC_CHECK_HEADERS([ffmpeg/avcodec.h ffmpeg/avformat.h ffmpeg/avutil.h postproc/postprocess.h ffmpeg/swscale.h],,
837   [AC_MSG_ERROR($missing_headers)])])
838
839   # We'll support the use of rgb2rgb.h if it exists.
840   AC_CHECK_HEADERS([libswscale/rgb2rgb.h],,)
841   AC_CHECK_HEADERS([ffmpeg/rgb2rgb.h],,)
842
843   AC_MSG_NOTICE($external_ffmpeg_enabled)
844   USE_EXTERNAL_FFMPEG=1
845   AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
846
847   # Disable vdpau support if external libavcodec doesn't have it
848   AC_CHECK_LIB([avcodec], [ff_vdpau_vc1_decode_picture],,
849     [if test "x$use_vdpau" = "xyes"; then
850       AC_MSG_ERROR($ffmpeg_vdpau_not_supported)
851     else
852       use_vdpau=no
853       AC_MSG_RESULT($ffmpeg_vdpau_not_supported)
854     fi])
855
856   # Check for 'PIX_FMT_VDPAU_MPEG4' from libavutil
857   if test "x$use_vdpau" != "xno"; then
858     AC_LANG_PUSH([C++])
859     AC_LINK_IFELSE(
860       [ #include <libavutil/pixfmt.h>
861         int main() { PixelFormat format = PIX_FMT_VDPAU_MPEG4; }],
862       [AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1],
863       [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])],)
864     AC_LANG_POP([C++])
865   fi
866   CPPFLAGS="$SAVE_CPPFLAGS"
867 else
868   AC_MSG_NOTICE($external_ffmpeg_disabled)
869   USE_EXTERNAL_FFMPEG=0
870   AC_DEFINE([PIX_FMT_VDPAU_MPEG4_IN_AVUTIL], [1], [Whether AVUtil defines PIX_FMT_VDPAU_MPEG4.])
871 fi
872
873 # External liba52 if deprecated a52 support is enabled
874 if test "$use_liba52" = "yes" && "$use_external_liba52" = "yes"; then
875   AC_CHECK_LIB([a52],          [main],, AC_MSG_ERROR($missing_library))
876
877   AC_MSG_NOTICE($external_liba52_enabled)
878   USE_EXTERNAL_LIBA52=1
879   AC_DEFINE([USE_EXTERNAL_LIBA52], [1], [Whether to use external liba52 library.])
880   USE_INTERNAL_LIBA52=0
881   SKIP_CONFIG_LIBA52=1
882 else
883   AC_MSG_NOTICE($external_liba52_disabled)
884   USE_EXTERNAL_LIBA52=0
885 fi
886
887 # External libdts if deprecated dts support enabled
888 if test "$use_libdts" = "yes" && "$use_external_libdts" = "yes"; then
889   AC_CHECK_LIB([dts],          [main],, AC_MSG_ERROR($missing_library))
890
891   AC_MSG_NOTICE($external_libdts_enabled)
892   USE_EXTERNAL_LIBDTS=1
893   AC_DEFINE([USE_EXTERNAL_LIBDTS], [1], [Whether to use external libdts library.])
894   USE_INTERNAL_LIBDTS=0
895   SKIP_CONFIG_LIBDTS=1
896 else
897   AC_MSG_NOTICE($external_libdts_disabled)
898   USE_EXTERNAL_LIBDTS=0
899 fi
900
901 # External Python
902 if test "$use_external_python" = "yes"; then
903   AC_CHECK_LIB([python2.6], [main],
904     [AC_DEFINE([HAVE_LIBPYTHON2_6], [1],
905     [Define to 1 if you have the 'python2.6' library.])
906     USE_PYTHON2_6=1],
907   [AC_CHECK_LIB([python2.5], [main],
908     [AC_DEFINE([HAVE_LIBPYTHON2_5], [1],
909     [Define to 1 if you have the 'python2.5' library.])
910     USE_PYTHON2_5=1],
911   [AC_CHECK_LIB([python2.4], [main],
912     [AC_DEFINE([HAVE_LIBPYTHON2_4], [1],
913     [Define to 1 if you have the 'python2.4' library.])
914     USE_PYTHON2_4=1],
915   [AC_MSG_ERROR($missing_library)] )] )] )
916
917   AC_MSG_NOTICE($external_python_enabled)
918   test "$USE_PYTHON2_6" && AC_MSG_NOTICE([Using Python 2.6])
919   test "$USE_PYTHON2_5" && AC_MSG_NOTICE([Using Python 2.5])
920   test "$USE_PYTHON2_4" && AC_MSG_NOTICE([Using Python 2.4])
921   USE_EXTERNAL_PYTHON=1
922   AC_DEFINE([USE_EXTERNAL_PYTHON], [1], [Whether to use external python library.])
923 else
924   AC_MSG_NOTICE($external_python_disabled)
925   USE_EXTERNAL_PYTHON=0
926 fi
927
928 # VDPAU
929 if test "x$use_vdpau" != "xno"; then
930   if test "$host_vendor" = "apple" ; then
931     if test "x$use_vdpau" = "xyes"; then
932       AC_MSG_ERROR([VDPAU not supported on this platform])
933     else
934       use_vdpau="no"
935       AC_MSG_NOTICE($vdpau_disabled)
936     fi
937   else
938     AC_CHECK_HEADER([vdpau/vdpau.h],AC_DEFINE([HAVE_LIBVDPAU], [],
939       [Define to 1 if you have the 'vdpau' library (-lvdpau).]),
940     [if test "x$use_vdpau" = "xyes"; then 
941       AC_MSG_ERROR([$vdpau_not_found])
942     else
943       use_vdpau="no"
944       AC_MSG_RESULT($vdpau_not_found)
945     fi])
946   fi
947 else
948   AC_MSG_NOTICE($vdpau_disabled)
949 fi
950
951 # VAAPI
952 if test "x$use_vaapi" != "xno"; then
953   if test "$host_vendor" = "apple" ; then
954     if test "x$use_vaapi" = "xyes"; then
955       AC_MSG_ERROR([VAAPI not supported on this platform])
956     else
957       use_vaapi="no"
958       AC_MSG_NOTICE($vaapi_disabled)
959     fi
960   else
961     initial_val=$use_vaapi
962     AC_CHECK_LIB([va], main, :, use_vaapi=no)
963     if test "x$use_vaapi" != "xno"; then
964       AC_CHECK_LIB([va-glx], main, LIBS="-lva -lva-glx $LIBS", use_vaapi=no, -lva)
965     fi
966
967     if test "x$use_vaapi" = "xno"; then
968       if test "x$initial_val" = "xyes"; then
969         AC_MSG_ERROR($vaapi_not_found)
970       else
971         AC_MSG_RESULT($vaapi_not_found)
972       fi
973     else
974       AC_DEFINE([HAVE_LIBVA], [1], [Define to 1 if you have the 'vaapi' libraries (-lva AND -lva-glx)])
975     fi
976   fi
977 else
978   AC_MSG_NOTICE($vaapi_disabled)
979 fi
980
981 # CrystalHD
982 if test "x$use_crystalhd" != "xno"; then
983   AC_CHECK_HEADER([libcrystalhd/libcrystalhd_if.h], [], 
984     [ if test "x$use_crystalhd" = "xyes"; then
985         AC_MSG_ERROR($crystalhd_not_found)
986       else
987         use_crystalhd=no
988         AC_MSG_RESULT($crystalhd_not_found)
989       fi],
990     [#define __LINUX_USER__])
991     if test "$host_vendor" != "apple"; then
992       XB_FIND_SONAME([CRYSTALHD], [crystalhd], [use_crystalhd])
993     fi
994     if test "x$use_crystalhd" != "xno"; then
995       SAVE_CFLAGS="$CFLAGS"
996       CFLAGS="-llibcrystalhd"
997       # check for new crystalhd lib
998       AC_COMPILE_IFELSE(
999         [ #define __LINUX_USER__
1000           #include <libcrystalhd/bc_dts_types.h>
1001           #include <libcrystalhd/bc_dts_defs.h>
1002           PBC_INFO_CRYSTAL bCrystalInfo;],
1003         [ AC_DEFINE([HAVE_LIBCRYSTALHD], [2], [Define to 2 if you have the 'New Broadcom Crystal HD' library.]) ], 
1004         [ AC_DEFINE([HAVE_LIBCRYSTALHD], [1], [Define to 1 if you have the 'Old Broadcom Crystal HD' library.]) ])
1005       CFLAGS="$SAVE_CFLAGS"
1006     fi
1007 else
1008   AC_MSG_NOTICE($crystalhd_disabled)
1009 fi
1010
1011 # VDADecoder
1012 if test "x$use_vdadecoder" != "xno"; then
1013   if test "$host_vendor" = "apple" ; then
1014     HAVE_LIBVDADECODER=1
1015     AC_DEFINE([HAVE_LIBVDADECODER], [1], [Define to 1 if you have the 'VDADecoder' library.])
1016     AC_MSG_NOTICE($vdadecoder_enabled)
1017   else
1018     if test "x$use_vdadecoder" = "xyes"; then
1019       AC_MSG_ERROR([VDA Decoder not supported on this platform])
1020     else
1021       use_vdadecoder="no"
1022       AC_MSG_NOTICE($vdadecoder_disabled)
1023     fi
1024   fi
1025 else
1026   AC_MSG_NOTICE($vdadecoder_disabled)
1027 fi
1028
1029 # OpenMax
1030 if test "$host_vendor" = "apple" ; then
1031   use_openmax="no"
1032   AC_MSG_NOTICE($openmax_disabled)
1033 else
1034   if test "$use_openmax" = "yes"; then
1035     AC_CHECK_HEADER([OpenMAX/IL/OMX_Types.h],
1036       AC_DEFINE([HAVE_LIBOPENMAX], [1], [Define to 1 if you have the 'OpenMax' library.]),
1037       use_openmax=no;AC_MSG_RESULT($openmax_not_found))
1038     if test "$use_openmax" = "yes"; then
1039       INCLUDES="$INCLUDES -I/usr/include/OpenMAX/IL"
1040     fi
1041   else
1042     AC_MSG_NOTICE($openmax_disabled)
1043   fi
1044 fi
1045
1046 # platform specific bin utilities
1047 if test "$host_vendor" != "apple" ; then
1048   AC_CHECK_PROG(HAVE_GAWK,gawk,"yes","no",)
1049   if test "$HAVE_GAWK" = "no" ; then
1050     AC_MSG_ERROR($missing_program)
1051   fi
1052 fi
1053
1054 AC_CHECK_PROG(HAVE_CMAKE,cmake,"yes","no",)
1055 if test "$HAVE_CMAKE" = "no" ; then
1056   AC_MSG_ERROR($missing_program)
1057 fi
1058
1059 AC_CHECK_PROG(HAVE_GPERF,gperf,"yes","no",)
1060 if test "$HAVE_GPERF" = "no" ; then
1061   AC_MSG_ERROR($missing_program)
1062 fi
1063
1064 AC_CHECK_PROG(HAVE_UNZIP,unzip,"yes","no",)
1065 if test "$HAVE_UNZIP" = "no" ; then
1066   AC_MSG_ERROR($missing_program)
1067 fi
1068
1069 AC_CHECK_PROG(HAVE_ZIP,zip,"yes","no",)
1070 if test "$HAVE_ZIP" = "no" ; then
1071   AC_MSG_ERROR($missing_program)
1072 fi
1073
1074 if test "$ARCH" != "x86_64-linux"; then
1075   AC_CHECK_PROG(HAVE_NASM,nasm,"yes","no",)
1076   if test "$HAVE_NASM" = "no" ; then
1077     AC_MSG_ERROR($missing_program)
1078   fi
1079 fi
1080
1081 AC_CHECK_PROG(HAVE_SVNVERSION,svnversion,"yes","no",)
1082 AC_CHECK_PROG(HAVE_GIT,git,"yes","no",)
1083
1084 # Checks for header files.
1085 AC_HEADER_DIRENT
1086 AC_HEADER_STDC
1087 AC_HEADER_SYS_WAIT
1088 AC_CHECK_HEADERS([lzo/lzo1.h])
1089 AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h \
1090   malloc.h memory.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h \
1091   strings.h sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
1092   sys/time.h sys/timeb.h sys/vfs.h termios.h unistd.h utime.h wchar.h wctype.h])
1093 AC_CHECK_HEADERS([cdio/iso9660.h],,AC_MSG_ERROR([$missing_headers]))
1094
1095 # Checks for typedefs, structures, and compiler characteristics.
1096 AC_HEADER_STAT
1097 AC_HEADER_STDBOOL
1098 AC_C_CONST
1099 AC_TYPE_UID_T
1100 AC_C_INLINE
1101 AC_TYPE_INT8_T
1102 AC_TYPE_INT16_T
1103 AC_TYPE_INT32_T
1104 AC_TYPE_INT64_T
1105 AC_TYPE_MODE_T
1106 AC_TYPE_OFF_T
1107 AC_TYPE_PID_T
1108 AC_C_RESTRICT
1109 AC_TYPE_SIZE_T
1110 AC_TYPE_SSIZE_T
1111 AC_CHECK_MEMBERS([struct stat.st_rdev])
1112 AC_HEADER_TIME
1113 AC_STRUCT_TM
1114 AC_TYPE_UINT8_T
1115 AC_TYPE_UINT16_T
1116 AC_TYPE_UINT32_T
1117 AC_TYPE_UINT64_T
1118 AC_C_BIGENDIAN
1119
1120 if test "$cross_compiling" = "yes"; then
1121   final_message="$final_message\n  Crosscomp.:\tYes"
1122 else
1123   final_message="$final_message\n  Crosscomp.:\tNo"
1124 fi
1125
1126 final_message="$final_message\n  target ARCH:\t$use_arch"
1127 final_message="$final_message\n  target CPU:\t$use_cpu"
1128
1129 if test "$use_gles" = "yes"; then
1130   final_message="$final_message\n  OpenGLES:\tYes"
1131 else
1132   if test "$use_gl" = "yes"; then
1133     final_message="$final_message\n  OpenGL:\tYes"
1134   else
1135     final_message="$final_message\n  OpenGL:\tNo (Very Slow)"
1136     SDL_DEFINES="-DHAS_SDL_2D"
1137   fi
1138 fi
1139
1140 if test "x$use_vdpau" != "xno"; then
1141   final_message="$final_message\n  VDPAU:\tYes"
1142 else
1143   final_message="$final_message\n  VDPAU:\tNo"
1144 fi
1145
1146 if test "x$use_vaapi" != "xno"; then
1147   final_message="$final_message\n  VAAPI:\tYes"
1148 else
1149   final_message="$final_message\n  VAAPI:\tNo"
1150 fi
1151
1152 if test "x$use_crystalhd" != "xno"; then
1153   final_message="$final_message\n  CrystalHD:\tYes"
1154 else
1155   final_message="$final_message\n  CrystalHD:\tNo"
1156 fi
1157
1158 if test "x$use_vdadecoder" != "xno"; then
1159   final_message="$final_message\n  VDADecoder:\tYes"
1160 else
1161   final_message="$final_message\n  VDADecoder:\tNo"
1162 fi
1163
1164 if test "$use_openmax" != "no"; then
1165   final_message="$final_message\n  OpenMax:\tYes"
1166 else
1167   final_message="$final_message\n  OpenMax:\tNo"
1168 fi
1169
1170 if test "$use_joystick" = "yes"; then
1171   final_message="$final_message\n  Joystick:\tYes"
1172   SDL_DEFINES="$SDL_DEFINES -DHAS_SDL_JOYSTICK"
1173 else
1174   final_message="$final_message\n  Joystick:\tNo"
1175 fi
1176
1177 if test "$use_xrandr" = "yes"; then
1178   final_message="$final_message\n  XRandR:\tYes"
1179 else
1180   final_message="$final_message\n  XRandR:\tNo"
1181 fi
1182
1183 if test "$use_goom" = "yes"; then
1184   final_message="$final_message\n  GOOM:\t\tYes"
1185 else
1186   final_message="$final_message\n  GOOM:\t\tNo"
1187 fi
1188
1189 if test "$use_libbluray" = "yes"; then
1190   final_message="$final_message\n  Bluray:\tYes"
1191 else
1192   final_message="$final_message\n  Bluray:\tNo"
1193 fi
1194
1195 if test "$use_mid" = "yes"; then
1196   final_message="$final_message\n  MID Support:\tYes"
1197   SDL_DEFINES="$SDL_DEFINES -DMID"
1198 else
1199   final_message="$final_message\n  MID Support:\tNo"
1200 fi
1201
1202 if test -d "/usr/include/lzo"; then
1203   INCLUDES="$INCLUDES -I/usr/include/lzo"
1204 else
1205   INCLUDES="$INCLUDES"
1206 fi
1207
1208 if test "x$use_ccache" != "xno"; then
1209   AC_PATH_PROG(CCACHE,ccache,none)
1210   if test "$ac_cv_path_CCACHE" = "none"; then
1211     if test "x$use_ccache" = "xyes"; then
1212       AC_MSG_ERROR([ccache not found.]);
1213     else
1214       AC_MSG_NOTICE([ccache not found. Falling back to default CC])
1215       final_message="$final_message\n  ccache:\tNo"
1216     fi
1217   else
1218     CC="$ac_cv_path_CCACHE $CC"
1219     CXX="$ac_cv_path_CCACHE $CXX"
1220     AC_MSG_NOTICE(enabling ccache)
1221     final_message="$final_message\n  ccache:\tYes"
1222   fi
1223 else
1224   final_message="$final_message\n  ccache:\tNo"
1225 fi
1226
1227 if test "x$use_pulse" != "xno"; then
1228   XBMC_STANDALONE_SH_PULSE=tools/Linux/xbmc-standalone.sh.pulse
1229   final_message="$final_message\n  PulseAudio:\tYes"
1230 else
1231   XBMC_STANDALONE_SH_PULSE=/dev/null
1232   final_message="$final_message\n  PulseAudio:\tNo"
1233 fi
1234
1235 if test "$use_hal" = "yes"; then
1236   final_message="$final_message\n  HAL Support:\tYes"
1237 else
1238   final_message="$final_message\n  HAL Support:\tNo"
1239 fi
1240
1241 if test "$use_faac" = "yes"; then
1242   final_message="$final_message\n  FAAC:\t\tYes"
1243 else
1244   final_message="$final_message\n  FAAC:\t\tNo"
1245 fi
1246
1247 # DVDCSS
1248 if test "$use_dvdcss" = "yes"; then
1249   AC_MSG_NOTICE($dvdcss_enabled)
1250   final_message="$final_message\n  DVDCSS:\tYes"
1251   BUILD_DVDCSS=1
1252   SKIP_CONFIG_DVDCSS=0
1253   DVDREAD_CFLAGS="-D_XBMC -DHAVE_DVDCSS_DVDCSS_H"
1254 else
1255   AC_MSG_NOTICE($dvdcss_disabled)
1256   final_message="$final_message\n  DVDCSS:\tNo"
1257   BUILD_DVDCSS=0
1258   SKIP_CONFIG_DVDCSS=1
1259   DVDREAD_CFLAGS="-D_XBMC -UHAVE_DVDCSS_DVDCSS_H"
1260 fi
1261 if test "$use_avahi" = "yes"; then
1262   final_message="$final_message\n  Avahi:\tYes"
1263 else
1264   final_message="$final_message\n  Avahi:\tNo"
1265 fi
1266
1267 if ! test -n "$SVN_REV" -a "$SVN_REV" != "" ; then
1268   if test "$HAVE_SVNVERSION" = "yes" ; then
1269     SVN_REV=$(svnversion -n -c 2>/dev/null | grep -iv ^exported | sed -e 's/.*\://')
1270   fi
1271   if test "$SVN_REV" = ""; then
1272     if test "$HAVE_GIT" = "yes"; then
1273       SVN_REV=$(./gitrev.sh)
1274     fi
1275   fi
1276   if test "$SVN_REV" = ""; then
1277     SVN_REV="Unknown"
1278   fi
1279 fi
1280 if test "$host_vendor" = "apple"; then
1281   echo "#define SVN_REV \"$SVN_REV\"" > svn_revision.h
1282 else
1283   SDL_DEFINES="$SDL_DEFINES -D'SVN_REV=\"$SVN_REV\"'"
1284 fi
1285
1286 if test "$use_nonfree" = "yes"; then
1287   final_message="$final_message\n  Non-free:\tYes"
1288   HAVE_XBMC_NONFREE=1
1289   AC_DEFINE([HAVE_XBMC_NONFREE], [1], [Define to 1 to enable non-free components.])
1290 else
1291   HAVE_XBMC_NONFREE=0
1292   final_message="$final_message\n  Non-free:\tNo"
1293 fi
1294
1295 if test "$use_asap" = "yes"; then
1296   AC_CHECK_PROG(HAVE_GDC,gdc,"yes","no")
1297   if test "$HAVE_GDC" = "no"; then
1298     AC_MSG_ERROR($missing_program);
1299   fi
1300   AC_CHECK_PROG(HAVE_FPC,fpc,"yes","no")
1301   if test "$HAVE_FPC" = "no"; then
1302     AC_MSG_ERROR($missing_program);
1303   fi
1304   USE_ASAP_CODEC=1
1305   AC_DEFINE([USE_ASAP_CODEC], [1], [Define to 1 to enable ASAP codec.])
1306   final_message="$final_message\n  ASAP Codec:\tYes"
1307 else
1308   USE_ASAP_CODEC=0
1309   final_message="$final_message\n  ASAP Codec:\tNo"
1310 fi
1311
1312 if test "$use_webserver" = "yes"; then
1313   final_message="$final_message\n  Webserver:\tYes"
1314 else
1315   final_message="$final_message\n  Webserver:\tNo"
1316 fi
1317
1318 if test "$use_librtmp" != "no"; then
1319   final_message="$final_message\n  libRTMP support:\tYes"
1320 else
1321   final_message="$final_message\n  libRTMP support:\tNo"
1322 fi
1323
1324 if test "$use_libdts" = "yes"; then
1325   USE_LIBDTS_DECODER=1
1326   AC_DEFINE([USE_LIBDTS_DECODER], [1], [Define to 1 to enable deprecated libdts support])
1327   if ! test "$USE_EXTERNAL_LIBDTS" = "1"; then
1328     USE_INTERNAL_LIBDTS=1
1329     SKIP_CONFIG_LIBDTS=0
1330   fi
1331   final_message="$final_message\n  Deprecated libdts:\tYes"
1332 else
1333   USE_INTERNAL_LIBDTS=0
1334   SKIP_CONFIG_LIBDTS=1
1335   final_message="$final_message\n  Deprecated libdts:\tNo"
1336 fi
1337
1338 if test "$use_liba52" = "yes"; then
1339   USE_LIBA52_DECODER=1
1340   AC_DEFINE([USE_LIBA52_DECODER], [1], [Define to 1 to enable deprecated liba52 support])
1341   if ! test "$USE_EXTERNAL_LIBA52" = "1"; then
1342     USE_INTERNAL_LIBA52=1
1343     SKIP_CONFIG_LIBA52=0
1344   fi
1345   final_message="$final_message\n  Deprecated liba52:\tYes"
1346 else
1347   USE_INTERNAL_LIBA52=0
1348   SKIP_CONFIG_LIBA52=1
1349   final_message="$final_message\n  Deprecated liba52:\tNo"
1350 fi
1351
1352 ### External libraries messages
1353 if test "$use_external_ffmpeg" = "yes"; then
1354   final_message="$final_message\n  External FFmpeg:\tYes"
1355 else
1356   final_message="$final_message\n  External FFmpeg:\tNo"
1357 fi
1358 if test "$use_liba52" = "yes"; then
1359   if test "$use_external_liba52" = "yes"; then
1360     final_message="$final_message\n  External liba52:\tYes"
1361   else
1362     final_message="$final_message\n  External liba52:\tNo"
1363   fi
1364 fi
1365 if test "$use_libdts" = "yes"; then
1366   if test "$use_external_libdts" = "yes"; then
1367     final_message="$final_message\n  External libdts:\tYes"
1368   else
1369     final_message="$final_message\n  External libdts:\tNo"
1370   fi
1371 fi
1372 if test "$use_external_python" = "yes"; then
1373   final_message="$final_message\n  External Python:\tYes"
1374 else
1375   final_message="$final_message\n  External Python:\tNo"
1376 fi
1377
1378 OUTPUT_FILES="Makefile \
1379     Makefile.include \
1380     xbmc/Makefile \
1381     xbmc/cdrip/Makefile \
1382     xbmc/cores/Makefile \
1383     xbmc/cores/VideoRenderers/Makefile \
1384     xbmc/cores/dvdplayer/Makefile \
1385     xbmc/cores/dvdplayer/Codecs/Makefile \
1386     xbmc/cores/dvdplayer/Codecs/libdvd/Makefile \
1387     xbmc/cores/dvdplayer/DVDCodecs/Makefile \
1388     xbmc/cores/dvdplayer/DVDCodecs/Audio/Makefile \
1389     xbmc/cores/dvdplayer/DVDCodecs/Overlay/Makefile \
1390     xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile \
1391     xbmc/cores/dvdplayer/DVDDemuxers/Makefile \
1392     xbmc/cores/dvdplayer/DVDSubtitles/Makefile \
1393     xbmc/cores/AudioRenderers/Makefile \
1394     xbmc/cores/paplayer/Makefile \
1395     xbmc/cores/paplayer/timidity/Makefile \
1396     xbmc/cores/paplayer/AC3Codec/Makefile \
1397     xbmc/cores/paplayer/ADPCMCodec/Makefile \
1398     xbmc/cores/paplayer/asap/Makefile \
1399     xbmc/cores/paplayer/NSFCodec/Makefile \
1400     xbmc/cores/paplayer/SIDCodec/Makefile \
1401     xbmc/cores/paplayer/vgmstream/Makefile \
1402     xbmc/cores/paplayer/SPCCodec/SNES/SNESAPU/Makefile \
1403     xbmc/cores/paplayer/YMCodec/StSoundLibrary/Makefile \
1404     xbmc/cores/playercorefactory/Makefile \
1405     xbmc/karaoke/Makefile \
1406     xbmc/osx/Makefile \
1407     guilib/Makefile \
1408     guilib/common/Makefile \
1409     xbmc/lib/libXBMS/Makefile \
1410     xbmc/lib/libRTV/Makefile \
1411     xbmc/lib/libexif/Makefile \
1412     xbmc/lib/libXDAAP/Makefile \
1413     xbmc/lib/libhdhomerun/Makefile \
1414     xbmc/lib/libhttpapi/Makefile \
1415     lib/jsoncpp/jsoncpp/src/lib_json/Makefile \
1416     xbmc/lib/libjsonrpc/Makefile \
1417     xbmc/lib/libsquish/Makefile \
1418     xbmc/lib/libid3tag/Makefile \
1419     xbmc/lib/cximage-6.0/Makefile \
1420     xbmc/lib/libPython/linux/Makefile \
1421     xbmc/lib/libUPnP/Makefile \
1422     xbmc/DllPaths_generated.h \
1423     xbmc/linux/Makefile \
1424     xbmc/FileSystem/Makefile \
1425     xbmc/screensavers/rsxs-0.9/xbmc/Makefile \
1426     xbmc/visualizations/XBMCProjectM/Makefile \
1427     xbmc/visualizations/Goom/Makefile \
1428     xbmc/visualizations/OpenGLSpectrum/Makefile \
1429     xbmc/visualizations/WaveForm/Makefile \
1430     xbmc/visualizations/iTunes/Makefile \
1431     xbmc/FileSystem/Makefile \
1432     tools/Linux/xbmc.sh \
1433     tools/Linux/xbmc-standalone.sh \
1434     tools/TexturePacker/Makefile \
1435     tools/EventClients/Clients/OSXRemote/Makefile"
1436
1437 if test "$host_vendor" = "apple"; then
1438   OUTPUT_FILES="$OUTPUT_FILES \
1439     xbmc/cores/paplayer/FLACCodec/Makefile"
1440 fi
1441
1442 if test "$use_external_libass" = "no"; then
1443   OUTPUT_FILES="$OUTPUT_FILES \
1444     lib/libass/xbmc/Makefile"
1445   USE_EXTERNAL_LIBASS=0
1446   AC_MSG_NOTICE($libass_using_internal)
1447 else
1448   AC_DEFINE([USE_EXTERNAL_LIBASS], [1], [Whether to use external libass library.])
1449   USE_EXTERNAL_LIBASS=1
1450 fi
1451
1452 # Line below is used so we can use AM_INIT_AUTOMAKE. The corresponding
1453 # .dummy.am does nothing.
1454 AC_CONFIG_FILES([.dummy])
1455
1456 AC_CONFIG_FILES([${OUTPUT_FILES}])
1457 OUTPUT_FILES="$OUTPUT_FILES \
1458   .dummy"
1459 AC_SUBST(CFLAGS)
1460 AC_SUBST(CXXFLAGS)
1461 AC_SUBST(INCLUDES)
1462 AC_SUBST(LDFLAGS)
1463 AC_SUBST(SDL_DEFINES)
1464 AC_SUBST(BUILD_DVDCSS)
1465 AC_SUBST(BUILD_GOOM)
1466 AC_SUBST(USE_EXTERNAL_FFMPEG)
1467 AC_SUBST(USE_EXTERNAL_LIBA52)
1468 AC_SUBST(USE_INTERNAL_LIBA52)
1469 AC_SUBST(USE_EXTERNAL_LIBASS)
1470 AC_SUBST(USE_EXTERNAL_LIBDTS)
1471 AC_SUBST(USE_INTERNAL_LIBDTS)
1472 AC_SUBST(USE_EXTERNAL_LIBMPEG2)
1473 AC_SUBST(USE_EXTERNAL_LIBWAVPACK)
1474 AC_SUBST(USE_EXTERNAL_PYTHON)
1475 AC_SUBST(USE_PYTHON2_6)
1476 AC_SUBST(USE_PYTHON2_5)
1477 AC_SUBST(USE_PYTHON2_4)
1478 AC_SUBST(OUTPUT_FILES)
1479 AC_SUBST(HAVE_XBMC_NONFREE)
1480 AC_SUBST(USE_ASAP_CODEC)
1481 AC_SUBST(LIBCURL_BASENAME)
1482 AC_SUBST(LIBFLAC_BASENAME)
1483 AC_SUBST(LIBVORBISFILE_BASENAME)
1484 AC_SUBST(LIBMODPLUG_BASENAME)
1485 AC_SUBST(LIBFAAD_BASENAME)
1486 AC_SUBST(LIBMAD_BASENAME)
1487 AC_SUBST(LIBOGG_BASENAME)
1488 AC_SUBST(LIBVORBISENC_BASENAME)
1489 AC_SUBST(LIBVORBIS_BASENAME)
1490 AC_SUBST_FILE(XBMC_STANDALONE_SH_PULSE)
1491
1492 # pushd and popd are not available in other shells besides bash, so implement
1493 # our own pushd/popd functions
1494 XB_DIRSTACK="$PWD"
1495 xb_pushd()
1496 {
1497   local dirname="$1"
1498   if [[ -d "$dirname" ]] && [[ -x "$dirname" ]]; then
1499     cd "$dirname"
1500     XB_DIRSTACK="$dirname ${XB_DIRSTACK:-$PWD}"
1501     return 0
1502   else
1503     AC_MSG_ERROR(xb_pushd: unable to change to $dirname)
1504   fi
1505 }
1506 xb_popd()
1507 {
1508   if [[ -n "$XB_DIRSTACK" ]]; then
1509     XB_DIRSTACK="${XB_DIRSTACK#* }"
1510     cd "${XB_DIRSTACK%% *}"
1511     return 0
1512   else
1513     AC_MSG_ERROR(xb_popd: unable to go back to previous directory)
1514   fi
1515 }
1516
1517 # Function to run the configure scripts in our submodules
1518 # Consists of three paramaters, the path to the submodule, the configure command
1519 # with appropriate arguments, and a third parameter set to 1 if we are to skip
1520 # running the script, anything else if not.
1521 AC_DEFUN([XB_CONFIG_MODULE],[
1522 AC_CONFIG_COMMANDS_POST([
1523 if [[ $3 != "1" ]]; then
1524     if [[ -d $1 ]]; then
1525       xb_pushd $1
1526       $2
1527       if [[ $? -ne 0 ]]; then
1528         xb_popd
1529         AC_MSG_ERROR([[Submodule $1 failed to configure]])
1530       else
1531         xb_popd
1532       fi
1533     else
1534       AC_MSG_ERROR([[Submodule $1 does not exist]])
1535     fi
1536 else
1537     AC_MSG_NOTICE([[Skipping configuration of submodule $1.]])
1538 fi
1539 ])
1540 ])
1541
1542 XB_CONFIG_MODULE([xbmc/lib/libPython/Python], [
1543   if test "$host_vendor" = "apple" ; then
1544     ./configure \
1545       --enable-ipv6 \
1546       --enable-unicode=ucs4 \
1547       --without-cxx \
1548       --enable-shared \
1549       --without-pymalloc \
1550       --with-suffix=.exe \
1551       LDFLAGS="-L/opt/local/lib" \
1552       OPT="-Wno-deprecated-declarations -I/opt/local/include" \
1553       MACOSX_DEPLOYMENT_TARGET=10.4 CFLAGS="$CFLAGS" &&
1554     sed -i bak -e "s/define HAVE_GETC_UNLOCKED 1/undef HAVE_GETC_UNLOCKED/" pyconfig.h && 
1555     sed -i bak -e "s/define HAVE_FSEEKO 1/undef HAVE_FSEEKO/" pyconfig.h &&
1556     sed -i bak -e "s/define HAVE_FTELLO 1/undef HAVE_FTELLO/" pyconfig.h &&
1557     sed -i bak -e "s/define HAVE_FTRUNCATE 1/undef HAVE_FTRUNCATE/" pyconfig.h &&
1558     sed -i bak -e "s/define HAVE_FPATHCONF 1/undef HAVE_FPATHCONF/" pyconfig.h &&
1559     sed -i bak -e "s/define HAVE_FSYNC 1/undef HAVE_FSYNC/" pyconfig.h &&
1560     sed -i bak -e "s/define HAVE_FCHDIR 1/undef HAVE_FCHDIR/" pyconfig.h &&
1561     sed -i bak -e "s/define _POSIX_C_SOURCE 200112L/undef _POSIX_C_SOURCE/" pyconfig.h &&
1562     sed -i bak -e "s/define _XOPEN_SOURCE 600/undef _XOPEN_SOURCE/" pyconfig.h &&
1563     sed -i bak -e "s/define _XOPEN_SOURCE_EXTENDED 1/undef _XOPEN_SOURCE_EXTENDED/" pyconfig.h &&
1564     echo "#define   SETPGRP_HAVE_ARG 1" >> pyconfig.h &&
1565     cp pyconfig.h Include       
1566   else
1567     ./configure \
1568       --host=$host_alias \
1569       --build=$build_alias \
1570       --target=$target_alias \
1571       --disable-ipv6 \
1572       --enable-unicode=ucs4 \
1573       --without-cxx \
1574       --enable-shared \
1575       --without-pymalloc \
1576       --prefix=`pwd`/../linux/python-lib CFLAGS="$CFLAGS" \
1577       CC="$CC" \
1578       CXX="$CXX" &&
1579     sed -i -e "s/define HAVE_GETC_UNLOCKED 1/undef HAVE_GETC_UNLOCKED/" pyconfig.h &&
1580     sed -i -e "s/define _POSIX_C_SOURCE 200112L/undef _POSIX_C_SOURCE/" pyconfig.h &&
1581     sed -i -e "s/define _XOPEN_SOURCE 600/undef _XOPEN_SOURCE/" pyconfig.h &&
1582     cp pyconfig.h Include
1583   fi
1584 ], [$USE_EXTERNAL_PYTHON])
1585
1586 XB_CONFIG_MODULE([xbmc/cores/paplayer/FLACCodec/flac-1.2.1], [
1587   if test "$host_vendor" = "apple" ; then
1588     CFLAGS="$CFLAGS -fno-common" \ 
1589     ./configure MACOSX_DEPLOYMENT_TARGET=10.4 -C \
1590       --with-pic \
1591       --disable-asm-optimizations \
1592       --disable-xmms-plugin \
1593       --disable-cpplibs \
1594       CC="$CC" \
1595       CXX="$CXX"
1596   fi
1597 ], [$HOST_NOT_APPLE])
1598
1599 XB_CONFIG_MODULE([xbmc/cores/dvdplayer/Codecs/ffmpeg], [
1600   if test "$host_vendor" = "apple" ; then
1601     ./configure \
1602       --extra-cflags="$CFLAGS -w -D_DARWIN_C_SOURCE -Dattribute_deprecated=" \
1603       --disable-amd3dnow \
1604       --disable-static \
1605       `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
1606       --disable-muxers \
1607       --enable-muxer=spdif \
1608       --enable-muxer=adts \
1609       --disable-encoders \
1610       --enable-encoder=ac3 \
1611       --enable-encoder=aac \
1612       `if test "$use_ffmpeg_libvorbis" == "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
1613       --disable-devices \
1614       --disable-ffplay \
1615       --disable-ffserver \
1616       --disable-ffmpeg \
1617       --enable-shared \
1618       --disable-decoder=mpeg_xvmc \
1619       --enable-postproc \
1620       --enable-gpl \
1621       --enable-protocol=http \
1622       --enable-pthreads \
1623       --enable-runtime-cpudetect \
1624       --cc="$CC" &&
1625     sed -i "" -e "s#define HAVE_POSIX_MEMALIGN 1#define HAVE_POSIX_MEMALIGN 0#" config.h &&
1626     sed -i "" -e "s#YASM=yasm#YASM=/opt/local/bin/yasm#" config.mak &&
1627     sed -i "" -e "s# -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 # #" config.mak &&
1628     sed -i "" -e "s#libswscale_VERSION_MAJOR=0#libswscale_VERSION_MAJOR=0.7.1#" config.mak &&
1629     sed -i "" -e "s#libavfilter_VERSION_MAJOR=0#libavfilter_VERSION_MAJOR=0.4.0#" config.mak
1630
1631   else
1632     CFLAGS="" \
1633     ./configure \
1634       --extra-cflags="$PASSED_CFLAGS $FFMPEG_EXTRACFLAGS" \
1635       --disable-static \
1636       `if test "$use_debug" = "no"; then echo --disable-debug; fi` \
1637       `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \
1638       `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
1639       `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
1640       --target-os=$(tolower $(uname -s)) \
1641       --disable-muxers \
1642       --enable-muxer=spdif \
1643       --enable-muxer=adts \
1644       --disable-encoders \
1645       --enable-encoder=ac3 \
1646       --enable-encoder=aac \
1647       `if test "$use_ffmpeg_libvorbis" == "yes"; then echo --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis; else echo --disable-libvorbis; fi` \
1648       --disable-decoder=mpeg_xvmc \
1649       --disable-devices \
1650       --disable-ffplay \
1651       --disable-ffserver \
1652       --disable-ffmpeg \
1653       --enable-shared \
1654       --enable-postproc \
1655       --enable-gpl \
1656       `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \
1657       `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \
1658       --enable-libfaad \
1659       --enable-protocol=http \
1660       --enable-pthreads \
1661       --enable-runtime-cpudetect \
1662       `case $host_cpu in i?86) echo --disable-pic ;; *) echo --enable-pic ;; esac` \
1663       --cc="$CC" &&
1664       sed -i -e "s#define HAVE_SYMVER 1#define HAVE_SYMVER 0#" config.h &&
1665       sed -i -e "s#define HAVE_SYMVER_GNU_ASM 1#define HAVE_SYMVER_GNU_ASM 0#" config.h
1666   fi
1667 ], [$USE_EXTERNAL_FFMPEG])
1668
1669 XB_CONFIG_MODULE([xbmc/cores/dvdplayer/Codecs/libdts], [
1670   if test "$host_vendor" = "apple" ; then
1671     CFLAGS="$CFLAGS -fno-common"
1672     LDFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4" \
1673     ./configure \
1674       --disable-oss \
1675       --disable-solaris-audio \
1676       --disable-al-audio \
1677       --disable-win
1678   else
1679     ./configure \
1680       --host=$host_alias \
1681       --build=$build_alias \
1682       --target=$target_alias \      
1683       --disable-oss \
1684       --disable-solaris-audio \
1685       --disable-al-audio \
1686       --disable-win \
1687       CFLAGS="$CFLAGS"
1688   fi
1689 ], [$SKIP_CONFIG_LIBDTS])
1690
1691 XB_CONFIG_MODULE([xbmc/cores/dvdplayer/Codecs/libdvd/libdvdcss], [
1692   if test "$host_vendor" = "apple" ; then
1693     ./configure MACOSX_DEPLOYMENT_TARGET=10.4 \
1694     CFLAGS="$CFLAGS -fno-common" \
1695       --disable-doc \
1696       --enable-static \
1697       --with-pic
1698   else
1699     ./configure \
1700       CC="$CC" \
1701       CXX="$CXX" \
1702       CFLAGS="$CFLAGS" \
1703       --host=$host_alias \
1704       --build=$build_alias \
1705       --target=$target_alias \      
1706       --disable-doc \
1707       --enable-static \
1708       --with-pic
1709   fi
1710 ], [$SKIP_CONFIG_DVDCSS])
1711
1712 XB_CONFIG_MODULE([xbmc/cores/dvdplayer/Codecs/libdvd/libdvdread], [
1713   if test "$host_vendor" = "apple" ; then
1714     ./configure2 MACOSX_DEPLOYMENT_TARGET=10.4 \
1715       --extra-cflags="$CFLAGS -fno-common $DVDREAD_CFLAGS -D__DARWIN__ -I`pwd`/../libdvdcss/src" \
1716       --enable-static \
1717       --disable-shared \
1718       --cc="$CC" &&
1719     make dvdread-config &&
1720     mkdir -p `pwd`/../includes/dvdread
1721     cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
1722   else
1723     ./configure2 \
1724       --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src" \
1725       --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
1726       --host=$host_alias \
1727       --build=$build_alias \
1728       --target=$target_alias \      
1729       --enable-static \
1730       --disable-shared \
1731       --disable-strip \
1732       --disable-opts \
1733       --cc="$CC" &&
1734     make dvdread-config &&
1735     mkdir -p `pwd`/../includes/dvdread
1736     cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
1737   fi
1738
1739 ], [0])
1740
1741 XB_CONFIG_MODULE([xbmc/cores/dvdplayer/Codecs/libdvd/libdvdnav], [
1742   if test "$host_vendor" = "apple" ; then
1743     ./configure2 MACOSX_DEPLOYMENT_TARGET=10.4 \
1744       --extra-cflags="$CFLAGS -fno-common $DVDREAD_CFLAGS -I`pwd`/../includes" \
1745       --extra-ldflags="-L`pwd`/../libdvdread/obj" \
1746       --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
1747       --enable-static \
1748       --disable-shared \
1749       --cc="$CC"
1750   else
1751     ./configure2 \
1752       --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
1753       --extra-ldflags="-L`pwd`/../libdvdread/obj" \
1754       --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
1755       --host=$host_alias \
1756       --build=$build_alias \
1757       --target=$target_alias \      
1758       --enable-static \
1759       --disable-shared \
1760       --cc="$CC"
1761   fi
1762 ], [0])
1763
1764 XB_CONFIG_MODULE([xbmc/cores/dvdplayer/Codecs/libfaad2], [
1765   if test "$host_vendor" = "apple" ; then
1766     CFLAGS="$CFLAGS -O3 -fno-common" \
1767     ./configure MACOSX_DEPLOYMENT_TARGET=10.4 \
1768       --with-pic
1769   fi
1770 ], [$HOST_NOT_APPLE])
1771
1772 XB_CONFIG_MODULE([xbmc/cores/dvdplayer/Codecs/liba52], [
1773   if test "$host_vendor" = "apple" ; then
1774     CFLAGS="$CFLAGS -fno-common" \
1775     ./configure MACOSX_DEPLOYMENT_TARGET=10.4 \
1776       --with-pic \
1777       --disable-static \
1778       --enable-shared \
1779       --disable-oss \
1780       --disable-solaris-audio \
1781       --disable-win \
1782       --disable-al-audio
1783   else
1784     ./configure \
1785       --host=$host_alias \
1786       --build=$build_alias \
1787       --target=$target_alias \      
1788       --with-pic \
1789       --disable-static \
1790       --enable-shared \
1791       --disable-oss \
1792       --disable-solaris-audio \
1793       --disable-win \
1794       --disable-al-audio \
1795       CFLAGS="$CFLAGS"
1796   fi
1797 ], [$SKIP_CONFIG_LIBA52])
1798
1799 XB_CONFIG_MODULE([xbmc/cores/dvdplayer/Codecs/libmad], [
1800   if test "$host_vendor" = "apple" ; then
1801     CFLAGS="$CFLAGS -fno-common" \
1802     ./configure MACOSX_DEPLOYMENT_TARGET=10.4 \
1803       --with-pic
1804   fi
1805 ], [$HOST_NOT_APPLE])
1806
1807 XB_CONFIG_MODULE([xbmc/lib/cximage-6.0/zlib], [
1808   if test "$host_vendor" = "apple" ; then
1809     export MACOSX_DEPLOYMENT_TARGET=10.4
1810     CFLAGS="$CFLAGS -fno-common" \
1811     ./configure
1812   fi
1813 ], [0])
1814
1815 XB_CONFIG_MODULE([lib/libass], [
1816   if test "$host_vendor" = "apple" ; then
1817     CFLAGS="$CFLAGS -fno-common" \
1818     ./configure MACOSX_DEPLOYMENT_TARGET=10.4
1819   else
1820     CFLAGS="$CFLAGS" \
1821     ./configure \
1822       --host=$host_alias \
1823       --build=$build_alias \
1824       --target=$target_alias
1825   fi
1826 ], [$USE_EXTERNAL_LIBASS])
1827
1828 XB_CONFIG_MODULE([xbmc/lib/libid3tag/libid3tag],[
1829   if test "$host_vendor" = "apple" ; then
1830     CFLAGS="$CFLAGS -fno-common" \
1831     ./configure MACOSX_DEPLOYMENT_TARGET=10.4 \
1832       --disable-static \
1833       --disable-debugging \
1834       --with-pic
1835   else
1836     ./configure \
1837       CC="$CC" \
1838       CXX="$CXX" \
1839       CFLAGS="$CFLAGS" \ 
1840       CXXFLAGS="$CXXFLAGS" \
1841       --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
1842       --host=$host_alias \
1843       --build=$build_alias \
1844       --target=$target_alias \      
1845       --disable-static \
1846       --with-pic
1847   fi
1848 ], [0])
1849
1850 XB_CONFIG_MODULE([xbmc/visualizations/XBMCProjectM/libprojectM],[
1851   if test "$host_vendor" = "apple" ; then
1852     rm -f CMakeCache.txt && CC="" CXX=""  cmake -D CMAKE_C_FLAGS:STRING="${CFLAGS} -fno-common" -D CMAKE_CXX_FLAGS:STRING="${CXXFLAGS} -fno-common" -D CMAKE_BUILD_TYPE:STRING=RelWithDebInfo -D USE_FTGL:BOOL=OFF .
1853   else
1854 set -x
1855     rm -f CMakeCache.txt && CC="$CC" CXX="$CXX" cmake -DCMAKE_BUILD_TYPE=None -DUSE_FTGL:BOOL=OFF \
1856       -DCMAKE_C_FLAGS:STRING="${CFLAGS}" -DCMAKE_CXX_FLAGS:STRING="${CXXFLAGS}" \
1857       -DCMAKE_INSTALL_PREFIX="${prefix}" -DCMAKE_INSTALL_LIBDIR:PATH="${libdir}" \
1858       -DINCLUDE_INSTALL_DIR:PATH="${includedir}" -DLIB_INSTALL_DIR:PATH="${libdir}" \
1859       -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" -DSHARE_INSTALL_PREFIX:PATH="${datadir}" .
1860 set +x
1861   fi
1862 ], [0])
1863
1864 XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[
1865   if test "$host_vendor" != "apple" ; then
1866     ./configure  \
1867         CFLAGS="$CFLAGS" \ 
1868         CXXFLAGS="$CXXFLAGS" \
1869       --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
1870       --host=$host_alias \
1871       --build=$build_alias \
1872       --target=$target_alias \      
1873       --disable-shared \
1874       --enable-static \
1875       --with-pic
1876   fi
1877 ], [$BUILD_GOOM])
1878
1879 XB_CONFIG_MODULE([xbmc/screensavers/rsxs-0.9/], [
1880 if expr "X$host_cpu" : 'Xarm.*' > /dev/null; then :; else
1881   if test "$host_vendor" = "apple" ; then
1882     ./configure \
1883       CFLAGS="$CFLAGS" \
1884       CXXFLAGS="$CXXFLAGS" \
1885       LDFLAGS="-L/opt/local/lib" \
1886       LIBS="-lz" \
1887       --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib \
1888       --without-xscreensaver \
1889       --disable-sound \
1890       --disable-cyclone \
1891       --disable-fieldlines \
1892       --disable-flocks \
1893       --disable-flux \
1894       --disable-helios \
1895       --disable-hyperspace \
1896       --disable-lattice \
1897       --disable-skyrocket
1898   else
1899     ./configure \
1900       CC="$CC" \
1901       CXX="$CXX" \
1902       CFLAGS="$CFLAGS" \ 
1903       CXXFLAGS="$CXXFLAGS" \
1904       --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
1905       --host=$host_alias \
1906       --build=$build_alias \
1907       --target=$target_alias \      
1908       --without-xscreensaver \
1909       --disable-sound \
1910       --disable-cyclone \
1911       --disable-fieldlines \
1912       --disable-flocks \
1913       --disable-flux \
1914       --disable-helios \
1915       --disable-hyperspace \
1916       --disable-lattice \
1917       --disable-skyrocket
1918   fi
1919 fi
1920 ], [0])
1921
1922 XB_CONFIG_MODULE([xbmc/lib/libapetag], [
1923   if test "$host_vendor" = "apple" ; then
1924     CFLAGS="$CFLAGS -fno-common" \
1925     ./configure MACOSX_DEPLOYMENT_TARGET=10.4 --disable-shared
1926   else
1927     ./configure \
1928       --host=$host_alias \
1929       --build=$build_alias \
1930       --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX"
1931   fi
1932 ], [0])
1933
1934 XB_CONFIG_MODULE([lib/libmodplug], [
1935   if test "$host_vendor" = "apple" ; then
1936     CFLAGS="$CFLAGS -fno-common" \
1937     CXXFLAGS="$CXXFLAGS -fno-common" \
1938     ./configure MACOSX_DEPLOYMENT_TARGET=10.4 --with-pic --disable-shared --enable-static
1939   fi
1940 ], [$HOST_NOT_APPLE])
1941
1942 XB_CONFIG_MODULE([lib/libmicrohttpd], [
1943   if test "$host_vendor" = "apple" ; then
1944     CFLAGS="$CFLAGS -fno-common" \
1945     CXXFLAGS="$CXXFLAGS -fno-common" \
1946     ./configure MACOSX_DEPLOYMENT_TARGET=10.4 --with-pic --disable-shared --enable-static --with-libgcrypt-prefix=/dev/null
1947   fi
1948 ], [$HOST_NOT_APPLE])
1949
1950 XB_CONFIG_MODULE([lib/cpluff], [
1951   if test "$host_vendor" = "apple" ; then
1952     ./configure --disable-nls --with-libiconv-prefix=/opt/local --with-libintl-prefix=/opt/local --without-readline CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS"
1953   else
1954     ./configure --disable-nls \
1955       --host=$host_alias \
1956       --build=$build_alias \
1957       --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX"
1958   fi
1959 ], [0])
1960
1961 AC_OUTPUT
1962
1963 final_message="$final_message\n  prefix:\t$prefix\n$dashes"
1964 echo -e "$final_message\n"