]> git.sesse.net Git - vlc/blobdiff - configure.ac
Enqueue the item ID instead of pointer for preparse
[vlc] / configure.ac
index b658f66b2e7c12f937bed4f9de411da26c5cf93a..196885f8c6f3f2e48112231d36b86bff65f481d4 100644 (file)
@@ -1,10 +1,10 @@
 dnl Autoconf settings for vlc
 dnl $Id$
 
-AC_INIT(vlc,0.8.4-svn)
+AC_INIT(vlc,0.8.5-svn)
 VERSION_MAJOR="0"
 VERSION_MINOR="8"
-VERSION_REVISION="4"
+VERSION_REVISION="5"
 VERSION_EXTRA="svn"
 
 CONFIGURE_LINE="$0 $*"
@@ -17,9 +17,12 @@ AC_CANONICAL_SYSTEM
 
 dnl XXX: we don't put any flags here, because automake 1.5 doesn't support
 dnl them. And we need the comma otherwize automake will choke on it.
-AM_INIT_AUTOMAKE(vlc,0.8.4-svn)
+AM_INIT_AUTOMAKE(vlc,0.8.5-svn)
 AM_CONFIG_HEADER(config.h)
 
+dnl HA! HA!
+AM_MAINTAINER_MODE
+
 dnl
 dnl  Save *FLAGS
 dnl
@@ -73,38 +76,49 @@ AC_C_INLINE
 dnl
 dnl  Check for the contrib directory
 dnl
-topdir="`dirname $0`"
-if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
-  topdir="`pwd`/$topdir"
-fi
-
-if test -d ${topdir}/extras/contrib/lib; then
-  export PATH=${topdir}/extras/contrib/bin:$PATH
-  CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
-  CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
-  CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
-  CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
-  CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
-  CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
-  OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
-  OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
-  if test -d ${topdir}/extras/contrib/vlc-lib; then
-    LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/vlc-lib"
-    LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/vlc-lib"
-  fi
-  LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
-  LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
-  with_livedotcom_tree=${topdir}/extras/contrib/src/live
-  with_goom_tree=${topdir}/extras/contrib/src/goom
-  if test ".`uname -s`" = ".Darwin"; then
-    export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
-    export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
-  elif test ".`uname -s`" = ".BeOS"; then
-    export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
-    export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
+AC_ARG_WITH(contrib,
+    [  --without-contrib       do not use the libraries in extras/contrib],[],[])
+  if test "${with_contrib}" != "no"; then 
+
+    topdir="`dirname $0`"
+    if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
+       topdir="`pwd`/$topdir"
+    fi
+
+  if test -d ${topdir}/extras/contrib/lib; then
+    export PATH=${topdir}/extras/contrib/bin:$PATH
+dnl kludge because only the debian package provides a ffmpeg-config
+    with_ffmpeg_config_path=${topdir}/extras/contrib/bin       
+    CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
+    CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
+    CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
+    CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
+    CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
+    CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
+    OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
+    OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
+    if test $build = $host; then
+       export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
+    else
+       export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
+    fi
+    if test -d ${topdir}/extras/contrib/vlc-lib; then
+      LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/vlc-lib"
+      LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/vlc-lib"
+    fi
+    LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
+    LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
+    with_livedotcom_tree=${topdir}/extras/contrib/src/live
+    with_goom_tree=${topdir}/extras/contrib/src/goom
+    if test ".`uname -s`" = ".Darwin"; then
+      export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
+      export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
+    elif test ".`uname -s`" = ".BeOS"; then
+      export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
+      export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
+    fi
   fi
 fi
-
 dnl
 dnl  Set default values
 dnl
@@ -129,7 +143,8 @@ case "${target_os}" in
     SYS="${target_os}"
     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
     ;;
-  darwin*)
+  darwin1.[0123])
+    dnl Mac OS X < 10.3
     SYS=darwin
     CFLAGS_save="${CFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
     CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
@@ -140,6 +155,15 @@ case "${target_os}" in
     VLC_ADD_CFLAGS([vlc],[-x objective-c])
     VLC_ADD_LDFLAGS([vlc],[-Wl,-m -Wl,-multiply_defined -Wl,suppress])
     ;;
+  darwin*)
+    SYS=darwin
+    CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
+    CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
+    OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
+    VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
+    VLC_ADD_CFLAGS([libvlc],[-x objective-c])
+    VLC_ADD_CFLAGS([vlc],[-x objective-c])
+    ;;
   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
     AC_CHECK_TOOL(WINDRES, windres, :)
 
@@ -167,7 +191,6 @@ case "${target_os}" in
         VLC_ADD_LDFLAGS([vlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows])
         VLC_ADD_LDFLAGS([vcdx cddax],[-lwinmm])
         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap slp http stream_out_standard stream_out_rtp vod_rtsp telnet netsync],[-lws2_32])
-        VLC_ADD_LDFLAGS([ipv4],[-liphlpapi])
     fi
     if test "${SYS}" = "mingwce"; then
         # add ws2 for closesocket, select, recv
@@ -175,7 +198,6 @@ case "${target_os}" in
         VLC_ADD_CPPFLAGS([vlc],[-Dmain(a,b)=maince(a,b)])
         VLC_ADD_LDFLAGS([vlc],[-lws2 -e WinMainCRTStartup])
         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
-         VLC_ADD_LDFLAGS([ipv4],[-liphlpapi])
    fi
     ;;
   *nto*)
@@ -196,9 +218,15 @@ case "${target_os}" in
     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
     VLC_ADD_CXXFLAGS([beos],[])
-    VLC_ADD_LDFLAGS([vlc beos],[-lbe])
+    VLC_ADD_LDFLAGS([vlc beos logger],[-lbe])
     VLC_ADD_LDFLAGS([beos],[-lmedia -ltranslation -ltracker -lgame])
-    VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc],[-lnet])
+
+    dnl Check for BONE
+    if test -f /boot/beos/system/lib/libbind.so; then
+        VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc],[-lbind -lsocket])
+    else
+        VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc],[-lnet])
+    fi
 
     dnl Ugly check for Zeta
     if test -f /boot/beos/system/lib/libzeta.so; then
@@ -214,10 +242,24 @@ AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
 
+dnl
+dnl  Check for Mac OS X SDK settings
+dnl
+AC_ARG_WITH(macosx-sdk,
+   [  --with-macosx-sdk       compile for Mac OS X 10.3 SDK],[], with_macosx_sdk=no)
+if test "${with_macosx_sdk}" != "no" ; then
+  CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CFLAGS="${CFLAGS_save}"
+  CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CXXFLAGS="${CXXFLAGS_save}"
+  OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; OBJCFLAGS="${OBJCFLAGS_save}"
+  LDFLAGS_save="${LDFLAGS_save} -isysroot /Developer/SDKs/MacOSX10.3.9.sdk -Wl,-syslibroot,/Developer/SDKs/MacOSX10.3.9.sdk"; LDFLAGS="${LDFLAGS_save}"
+  export MACOSX_DEPLOYMENT_TARGET=10.3
+  MACOSX_DEPLOYMENT_TARGET="10.3"
+fi
+
 dnl
 dnl Gettext stuff
 dnl
-ALL_LINGUAS="ca da de en_GB es fr it ja nl pt_BR ro ru tr zh_TW"
+ALL_LINGUAS="ca da de en_GB es fr it ja ka ko nl pt_BR ro ru sv tr zh_CN zh_TW"
 AM_GNU_GETTEXT_VERSION(0.11.5)
 AM_GNU_GETTEXT
 if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
@@ -237,8 +279,10 @@ XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS"
 dnl
 dnl Iconv stuff
 dnl
+if test "${SYS}" != "mingwce"; then
 AS_IF([test "$am_cv_func_iconv" != "yes"],
        [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
+fi
 VLC_ADD_CFLAGS([vlc],[${INCICONV}])
 VLC_ADD_LDFLAGS([vlc],[${LIBICONV}])
 
@@ -321,7 +365,7 @@ CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcd
 dnl Check for system libs needed
 need_libc=false
 
-AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir)
+AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir fork bsearch)
 
 dnl Check for usual libc functions
 AC_CHECK_FUNCS(strdup strndup atof)
@@ -462,7 +506,7 @@ AC_CHECK_LIB(m,cos,[
   VLC_ADD_LDFLAGS([adjust distort a52tofloat32 dtstofloat32 x264 goom],[-lm])
 ])
 AC_CHECK_LIB(m,pow,[
-  VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer vlc freetype],[-lm])
+  VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer vlc freetype mpc],[-lm])
 ])
 AC_CHECK_LIB(m,sqrt,[
   VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex],[-lm])
@@ -657,6 +701,7 @@ AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
 AC_CHECK_HEADERS(linux/version.h)
+AC_CHECK_HEADERS(syslog.h)
 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
 
 AC_HEADER_TIME
@@ -693,26 +738,40 @@ if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
 
-dnl Default X headers and libraries
-if test "${x_includes}" = "NONE"; then
-  x_includes="/usr/X11R6/include"
-fi
-if test "${x_libraries}" = "NONE"; then
-  x_libraries="/usr/X11R6/lib"
+dnl Find where are the X headers and libraries
+AC_PATH_X()
+
+dnl The rest of configure doesn't work if x_includes is null.
+dnl Cleaner way to do it welcomes
+if test -z ${x_includes} ;then
+       x_includes="/usr/includes"
 fi
 
+dnl it seems that autoconf do the pkg-config detection only for the first PKG_CHECK_MODULES in the configure.ac ( which is logical) but in our case it is nested in a if so it was not working if you're not on linux or have disable hal.
+
+PKG_PROG_PKG_CONFIG()
+
 dnl Check for hal
 AC_ARG_ENABLE(hal,
   [  --enable-hal            Linux HAL services discovery (default enabled)])
  
-if test "${enable_hal}" != "no"
+if test "${enable_hal}" != "no" -a "${SYS}" = "linux"
 then
-  PKG_CHECK_MODULES(HAL, hal >= 0.2.97,
-    [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
-     VLC_ADD_PLUGINS([hal])
-     VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
-     VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],
-    [AC_MSG_WARN(HAL library not found)])
+  PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
+    [ AC_DEFINE( HAVE_HAL_1, [] , [Define if you have the new HAL library API])
+      AC_DEFINE( HAVE_HAL, [], [Define if you have the HAL library] )
+      VLC_ADD_PLUGINS([hal]) 
+      VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
+      VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],   
+    dnl No hal 0.5 Test for 0.2
+    [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
+       [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
+        VLC_ADD_PLUGINS([hal])
+        VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
+        VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],
+       [AC_MSG_WARN(HAL library not found)])
+    ]
+  )
 fi
 
 dnl Build the gtk_main plugins?
@@ -876,15 +935,12 @@ if test "${ac_cv_c_dynamic_no_pic}" != "no"; then
 fi
 
 dnl Check for Darwin plugin linking flags
-AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error -lcc_dynamic],
+AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
     [ac_cv_ld_darwin],
-    [CFLAGS="${CFLAGS_save} -bundle -undefined error -lcc_dynamic"
+    [CFLAGS="${CFLAGS_save} -bundle -undefined error"
      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
 if test "${ac_cv_ld_darwin}" != "no"; then
     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
-    AC_CHECK_LIB(cc_dynamic, main,[
-      VLC_ADD_LDFLAGS([plugin],[-lcc_dynamic])
-    ])
 fi
 
 dnl Check for standard plugin linking flags
@@ -986,8 +1042,8 @@ VLC_ADD_PLUGINS([deinterlace invert adjust transform distort motionblur rv32])
 VLC_ADD_PLUGINS([fixed32tos16 s16tofixed32 u8tofixed32])
 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
-VLC_ADD_PLUGINS([playlist export sgimb m3u xtag])
-VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo])
+VLC_ADD_PLUGINS([playlist export sgimb m3u nsc xtag])
+VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo magnify])
 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv])
 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
 VLC_ADD_PLUGINS([access_http access_mms access_ftp ipv4])
@@ -997,12 +1053,12 @@ VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
 if test "${SYS}" != "mingwce"; then
 dnl  VLC_ADD_PLUGINS([externrun])
   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record])
-  VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf time marq sap shout fake])
+  VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf time marq podcast shout sap fake])
   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop])
   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
-  VLC_ADD_PLUGINS([headphone_channel_mixer normvol equalizer])
+  VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer])
   VLC_ADD_PLUGINS([fixed32tofloat32 float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif s16tofloat32 s16tofloat32swab s8tofloat32 u8tofloat32 audio_format])
 fi
 
@@ -1022,7 +1078,7 @@ dnl
 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
     VLC_ADD_PLUGINS([screensaver])
 elif test "${SYS}" != "mingwce"; then
-    VLC_ADD_PLUGINS([ntservice access_smb dmo])
+    VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
     VLC_ADD_LDFLAGS([dmo],[-lole32])
 else
     VLC_ADD_PLUGINS([win32text])
@@ -1055,6 +1111,31 @@ if test "${ac_cv_mmx_inline}" != "no"; then
   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
 fi
 
+dnl  Check for fully workin MMX intrinsics
+dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
+dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
+AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
+    [ac_cv_c_mmx_intrinsics],
+    [CFLAGS="${CFLAGS_save} -O -mmmx"
+     AC_TRY_COMPILE([#include <mmintrin.h>
+                     #include <stdint.h>
+                     uint64_t frobzor;],
+                    [__m64 a, b, c;
+                     a = b = c = (__m64)frobzor;
+                     a = _mm_slli_pi16(a, 3);
+                     a = _mm_adds_pi16(a, b);
+                     c = _mm_srli_pi16(c, 8);
+                     c = _mm_slli_pi16(c, 3);
+                     b = _mm_adds_pi16(b, c);
+                     a = _mm_unpacklo_pi8(a, b);
+                     frobzor = (uint64_t)a;],
+                    [ac_cv_c_mmx_intrinsics=yes],
+                    [ac_cv_c_mmx_intrinsics=no])])
+if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
+  AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
+  VLC_ADD_CFLAGS([i420_rgb_mmx],[-mmmx])
+fi
+
 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
     [ac_cv_mmxext_inline],
     [CFLAGS="${CFLAGS_save}"
@@ -1108,43 +1189,59 @@ if test "${ac_cv_altivec_inline}" != "no"; then
   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
 fi
 
-dnl Check for <altivec.h>, gcc 4.x needs -maltivec for it
-AC_CACHE_CHECK([if \$CC accepts -maltivec],
-    [ac_cv_c_maltivec],
-    [CFLAGS="${CFLAGS_save} -maltivec"
-     AC_TRY_COMPILE([],,ac_cv_c_maltivec=yes, ac_cv_c_maltivec=no)])
-if test "${ac_cv_c_maltivec}" != "no"; then
-  CPPFLAGS="${CPPFLAGS_save} -maltivec"
+dnl The AltiVec C extensions
+dnl
+dnl There are several possible cases:
+dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
+dnl                      need <altivec.h>
+dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
+dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
+dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
+dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
+dnl - Others: test should fail
+AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
+  [ac_cv_c_altivec],
+  [# OS X/PPC test (gcc 4.x)
+   CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
+   AC_TRY_COMPILE([],
+     [vec_ld(0, (unsigned char *)0);],
+     [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
+     [# OS X/PPC test (gcc 3.x)
+      CFLAGS="${CFLAGS_save} -faltivec"
+      AC_TRY_COMPILE([],
+        [vec_ld(0, (unsigned char *)0);],
+        [ac_cv_c_altivec="-faltivec"],
+        dnl Below this are the Linux tests
+        [# Linux/PPC test (gcc 4.x)
+         CFLAGS="${CFLAGS_save} -maltivec"
+         AC_TRY_COMPILE([#include <altivec.h>],
+           [vec_ld(0, (unsigned char *)0);],
+           [ac_cv_c_altivec="-maltivec"],
+           [# Linux/PPC test (gcc 3.3)
+            CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
+            AC_TRY_COMPILE([#include <altivec.h>],
+              [vec_ld(0, (unsigned char *)0);],
+              [ac_cv_c_altivec=""
+               ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
+              [# Linux/PPC test (gcc 3.3)
+               CFLAGS="${CFLAGS_save} -fvec"
+               AC_TRY_COMPILE([#include <altivec.h>],
+                 [vec_ld(0, (unsigned char *)0);],
+                 [ac_cv_c_altivec="-fvec"],
+                 [ac_cv_c_altivec=no])
+              ])
+           ])
+        ])
+     ])
+   CFLAGS="${CFLAGS_save}"
+  ])
+
+if test "${ac_cv_c_altivec}" != "no"; then
+  CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
 fi
 AC_CHECK_HEADERS(altivec.h)
 CPPFLAGS="${CPPFLAGS_save}"
 
-AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
-    [ac_cv_c_altivec],
-    [# Darwin test
-     CFLAGS="${CFLAGS_save} -faltivec"
-     AC_TRY_COMPILE([],
-       [vec_ld(0, (unsigned char *)0);],
-       [ac_cv_c_altivec="-faltivec"],
-       [# Linux/PPC test (no flags)
-        CFLAGS="${CFLAGS_save} ${CFLAGS_idctaltivec} -maltivec -mabi=altivec"
-        AC_TRY_COMPILE([#ifdef HAVE_ALTIVEC_H
-                        #include <altivec.h>
-                        #endif],
-          [vec_ld(0, (unsigned char *)0);],
-          [ac_cv_c_altivec=""
-           ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
-          [# Linux/PPC test (old GCC versions)
-           CFLAGS="${CFLAGS_save} ${CFLAGS_idctaltivec} -fvec"
-           AC_TRY_COMPILE([#ifdef HAVE_ALTIVEC_H
-                           #include <altivec.h>
-                           #endif],
-             [vec_ld(0, (unsigned char *)0);],
-             [ac_cv_c_altivec="-fvec"],
-             [ac_cv_c_altivec=no])
-           ])
-        ])
-     CFLAGS="${CFLAGS_save}"])
 if test "${ac_cv_c_altivec}" != "no"; then
   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
   VLC_ADD_CFLAGS([vlc],[${ac_cv_c_altivec}])
@@ -1174,7 +1271,9 @@ AC_ARG_WITH(tuning,
 [  --with-tuning=ARCH      enable special tuning for an architecture
                           (default Pentium 2 on IA-32 and 750 on PPC)])
 if test -n "${with_tuning}"; then
-    CFLAGS_TUNING="-mtune=${with_tuning}"
+    if test "${with_tuning}" != "no"; then
+        CFLAGS_TUNING="-mtune=${with_tuning}"
+    fi
 else
     if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "i486" -o "${target_cpu}" = "i386"; then
         CFLAGS_TUNING="-mtune=pentium2"
@@ -1183,20 +1282,23 @@ else
     elif test "${target_cpu}" = "powerpc"; then
         CFLAGS_TUNING="-mtune=750";
     fi
+fi
 
-    dnl NOTE: this can't be cached cleanly
-    AS_IF([test "${CFLAGS_TUNING}"],
-       [CFLAGS_save="${CFLAGS}"
-        CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
+dnl NOTE: this can't be cached cleanly
+AS_IF([test "${CFLAGS_TUNING}"],
+   [CFLAGS_save="${CFLAGS}"
+    CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
 
-        AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
-        AC_COMPILE_IFELSE([ ], [tuning="yes"],
-                               [CFLAGS_TUNING=""; tuning="no"])
+    AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
+    AC_COMPILE_IFELSE([ ],
+                      [tuning="yes"],
+                      [CFLAGS_TUNING=""; tuning="no"
+                       AS_IF([test "${with_tuning}"],
+                             [AC_MSG_ERROR([requested tuning not supported])])])
 
-        AC_MSG_RESULT([$tuning])
-        CFLAGS="${CFLAGS_save}"
-    ])
-fi
+    AC_MSG_RESULT([$tuning])
+    CFLAGS="${CFLAGS_save}"
+])
 
 dnl
 dnl  x86 accelerations
@@ -1247,6 +1349,15 @@ AC_ARG_ENABLE(release,
 [  --enable-release        activate extra optimizations (default disabled)])
 test "${enable_release}" != "yes" && enable_release="no"
 
+dnl
+dnl  Is the shared libvlc forced ?
+dnl
+build_pic=no
+AC_ARG_ENABLE(shared-libvlc,
+  [  --enable-shared-libvlc  shared libvlc (default disabled EXPERIMENTAL)],
+  ,[shared_libvlc=no])
+
+
 dnl
 dnl Stream output
 dnl
@@ -1265,6 +1376,18 @@ then
   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
 fi
 
+dnl Check for libshout
+AC_ARG_ENABLE(shout,
+  [  --enable-shout          libshout output plugin (default disabled)])
+if test "${enable_shout}" = "yes"; then
+  PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
+    [AC_DEFINE(HAVE_SHOUT, [], [Define if you have the libshout library])
+     VLC_ADD_PLUGINS([access_output_shout])
+     VLC_ADD_LDFLAGS([vlc access_output_shout],[$SHOUT_LIBS])
+     VLC_ADD_CFLAGS([vlc access_output_shout],[$SHOUT_CFLAGS])],
+    [AC_MSG_WARN(libshout library not found)])
+fi
+
 dnl
 dnl HTTP daemon
 dnl
@@ -1328,7 +1451,7 @@ AC_ARG_WITH(,[Input plugins:])
 dnl  live.com input
 dnl
 AC_ARG_ENABLE(livedotcom,
-[  --enable-livedotcom     live.com input plugin (default disabled)])
+[  --enable-livedotcom     live.com RTSP input plugin (default disabled)])
 if test "${enable_livedotcom}" = "yes"; then
   AC_ARG_WITH(livedotcom-tree,
     [    --with-livedotcom-tree=PATH live.com tree for static linking])
@@ -1396,6 +1519,128 @@ if test "${enable_livedotcom}" = "yes"; then
   fi
 fi
 
+dnl
+dnl dv module: digital video module check for libraw1394
+dnl
+AC_ARG_ENABLE(dv,
+[  --enable-dv             dv input module (default disabled)])
+if test "${enable_dv}" = "yes"
+then
+  AC_ARG_WITH(dv-raw1394,
+  [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
+  AC_ARG_WITH(dv-raw1394-tree,
+  [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
+
+  if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
+  then
+    AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
+    if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
+    then
+      dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
+      AC_MSG_RESULT(yes)
+      VLC_ADD_PLUGINS([access_dv])
+      VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
+      VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
+    else
+      dnl  No libraw1394 could be found, sorry
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
+    fi
+  else
+    AC_CHECK_HEADERS(libraw1394/raw1394.h,
+    [ VLC_ADD_PLUGINS([access_dv])
+        VLC_ADD_LDFLAGS([access_dv],[-lraw1394 -lavc1394])
+    ],[
+        if test -n "${enable_dv}"
+        then
+          AC_MSG_ERROR([cannot find libraw1394 headers])
+        fi
+    ])
+  fi
+
+  dnl Check for static linking of libraw1394
+  if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
+  then
+    AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
+    real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
+    if test -z "${real_dv_raw1394_tree}"
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
+    fi
+    if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
+    then
+      dnl  Use a custom libraw1394
+      AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
+      VLC_ADD_BUILTINS([access_dv])
+      VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
+      VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
+    else
+      dnl  The given libraw1394 wasn't built
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
+    fi
+  fi
+
+  dnl
+  dnl Check for libavc1394
+  dnl
+
+  AC_ARG_WITH(dv-avc1394,
+  [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
+  AC_ARG_WITH(dv-avc1394-tree,
+  [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
+
+  if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
+  then
+    AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
+    if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
+    then
+      dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
+      AC_MSG_RESULT(yes)
+      VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
+      VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
+    else
+      dnl  No libavc1394 could be found, sorry
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
+    fi
+  else
+    AC_CHECK_HEADERS(libavc1394/avc1394.h,
+    [ VLC_ADD_LDFLAGS([access_dv],[-lavc1394 -lrom1394 -lpthread])
+    ],[
+        if test -n "${enable_dv}"
+        then
+          AC_MSG_ERROR([cannot find libavc1394 headers])
+        fi
+    ])
+  fi
+
+  dnl Check for static linking of libavc1394
+  if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
+  then
+    AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
+    real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
+    if test -z "${real_dv_avc1394_tree}"
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
+    fi
+    if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
+    then
+      dnl  Use a custom libavc1394
+      AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
+      VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
+      VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
+    else
+      dnl  The given libavc1394 wasn't built
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
+    fi
+  fi
+fi
 
 dnl
 dnl dvdread module: check for libdvdread
@@ -1503,10 +1748,12 @@ if test "${enable_dshow}" != "no"
 then
   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
   then
+    AC_LANG_PUSH(C++)
       AC_CHECK_HEADERS(dshow.h,
       [ VLC_ADD_PLUGINS([dshow])
         VLC_ADD_CXXFLAGS([dshow],[])
         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
+    AC_LANG_POP(C++)
   fi
 fi
 
@@ -1522,13 +1769,16 @@ if test "${enable_smb}" != "no"; then
     [ if test -n "${enable_smb}"; then
         AC_MSG_ERROR([cannot find libsmbclient headers])
      fi ])
+  AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
+    AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
+    [#include <libsmbclient.h>])
 fi
 
 dnl
 dnl  libdvbpsi ts demux/mux
 dnl
 AC_ARG_ENABLE(dvbpsi,
-[  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
+  [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
 if test "${enable_dvbpsi}" != "no"
 then
   AC_ARG_WITH(dvbpsi,
@@ -1573,7 +1823,7 @@ then
           VLC_ADD_BUILTINS([mux_ts])
         fi
         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
-        VLC_ADD_LDFLAGS([mux_ts ts dvb],[-L${real_dvbpsi_tree}/src/.libs -ldvbpsi])
+        VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
       else
         dnl  The given libdvbpsi wasn't built
         AC_MSG_RESULT(no)
@@ -1612,6 +1862,10 @@ then
     CPPFLAGS="${CPPFLAGS_save}"
   ;;
   esac
+  AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
+    AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
+  ], [], [${LDFLAGS_ts}])
+
 fi
 
 dnl
@@ -1645,10 +1899,26 @@ then
   VLC_ADD_PLUGINS([pvr])
 fi
 
+dnl
+dnl  gnomeVFS access module
+dnl
+AC_ARG_ENABLE(gnomevfs,
+  [  --enable-gnomevfs       GnomeVFS access module (default enabled)])
+if test "${enable_gnomevfs}" != "no" -a  "${SYS}" = "linux" 
+then
+  PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
+    VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
+    VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
+    VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
+    VLC_ADD_PLUGINS([access_gnomevfs]),
+    AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
+fi
+
 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
 AC_ARG_ENABLE(libcdio,
   [  --enable-libcdio        CD input and control library support (default enabled)])
+
+
 have_libcdio=no
 have_libvcdinfo=no
 if test "${enable_libcdio}" != "no"
@@ -1851,10 +2121,10 @@ have_ipv6=no
 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
   AC_CHECK_LIB(resolv,inet_pton,
     [have_ipv6=yes
-     VLC_ADD_LDFLAGS([ipv6],[-lresolv])])
+     VLC_ADD_LDFLAGS([ipv6 vlc],[-lresolv])])
 ])
 
-AS_IF([test "${have_ipv6}" == "yes"], [
+AS_IF([test "${have_ipv6}" = "yes"], [
   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
 
 if test "${SYS}" != "nto" &&
@@ -1880,14 +2150,43 @@ AC_ARG_ENABLE(ogg,
   [  --enable-ogg            Ogg demux support (default enabled)])
 if test "${enable_ogg}" != "no"
 then
-  AC_CHECK_HEADERS(ogg/ogg.h, [
-    AC_CHECK_LIB( ogg, oggpack_read, [
+  AC_ARG_WITH(ogg-tree,
+  [    --with-ogg-tree=PATH  ogg tree for static linking])
+  if test -n "${with_ogg_tree}"
+  then
+    AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
+    real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
+    if test -z "${real_ogg_tree}"
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
+    fi
+    if test -f "${real_ogg_tree}/src/.libs/libogg.a"
+    then
+      dnl  Use a custom ogg
+      AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
       VLC_ADD_PLUGINS([ogg])
       if test "${enable_sout}" != "no"; then
         VLC_ADD_PLUGINS([mux_ogg])
       fi
-      VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
-   ],[])
+      VLC_ADD_LDFLAGS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
+      VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
+    else
+      dnl  The given ogg wasn't built
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
+    fi
+  else
+    AC_CHECK_HEADERS(ogg/ogg.h, [
+      AC_CHECK_LIB( ogg, oggpack_read, [
+        VLC_ADD_PLUGINS([ogg])
+        if test "${enable_sout}" != "no"; then
+          VLC_ADD_PLUGINS([mux_ogg])
+        fi
+        VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
+     ],[])
+  fi
 fi
 
 dnl
@@ -1898,11 +2197,11 @@ AC_ARG_ENABLE(mkv,
 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
   AC_LANG_PUSH(C++)
   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
-    AC_MSG_CHECKING(for libebml version >= 0.7.3)
+    AC_MSG_CHECKING(for libebml version >= 0.7.6)
     AC_EGREP_CPP(yes,
       [#include <ebml/EbmlVersion.h>
        #ifdef LIBEBML_VERSION
-       #if LIBEBML_VERSION >= 0x000703
+       #if LIBEBML_VERSION >= 0x000706
        yes
        #endif
        #endif],
@@ -1953,12 +2252,51 @@ AC_ARG_ENABLE(mod,
   [  --enable-mod            Mod demux support (default enabled)])
 if test "${enable_mod}" != "no"
 then
-  AC_CHECK_HEADERS(libmodplug/modplug.h, [
-    VLC_ADD_PLUGINS([mod])
-    VLC_ADD_CXXFLAGS([mod],[])
-    VLC_ADD_LDFLAGS([mod],[-lmodplug])])
+  AC_ARG_WITH(mod-tree,
+  [    --with-mod-tree=PATH mod tree for static linking])
+  if test -n "${with_mod_tree}"
+  then
+    AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
+    real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
+    if test -z "${real_mod_tree}"
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
+    fi
+    if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
+    then
+      dnl  Use a custom mod
+      AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
+      VLC_ADD_PLUGINS([mod])
+      VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a])
+      VLC_ADD_CFLAGS([mod],[-I${real_mod_tree}/include])
+    else
+      dnl  The given mod wasn't built
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
+    fi
+  else
+    AC_CHECK_HEADERS(libmodplug/modplug.h, [
+      VLC_ADD_PLUGINS([mod])
+      VLC_ADD_CXXFLAGS([mod],[])
+      VLC_ADD_LDFLAGS([mod],[-lmodplug])])
+  fi
+fi
+
+dnl
+dnl  mpc demux plugin
+dnl
+AC_ARG_ENABLE(mpc,
+  [  --enable-mpc            Mpc demux support (default enabled)])
+if test "${enable_mpc}" != "no"
+then
+  AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
+    VLC_ADD_PLUGINS([mpc])
+    VLC_ADD_LDFLAGS([mpc],[-lmpcdec])])
 fi
 
+
 dnl
 dnl  Codec plugins
 dnl
@@ -1981,7 +2319,7 @@ then
   fi
 
   AC_ARG_WITH(mad-tree,
-    [    --with-mad-tree=PATH  mad tree for static linking],[],[])
+    [    --with-mad-tree=PATH   mad tree for static linking],[],[])
   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
   then
     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
@@ -2034,59 +2372,169 @@ AC_CHECK_HEADERS(id3tag.h, [
 dnl
 dnl  ffmpeg decoder/demuxer plugin
 dnl
+dnl we try to find ffmpeg using : 1- given tree 2- ffmpeg-config, 3- pkg-config
+dnl                            4- default place, 
+
 AC_ARG_ENABLE(ffmpeg,
 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
 if test "${enable_ffmpeg}" != "no"
 then
+
+dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
+
+ AC_ARG_WITH(ffmpeg-mp3lame,
+   [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
+   [
+     if test "$with_ffmpeg_mp3lame" = "yes";   then
+       VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
+     fi])
+
+ AC_ARG_WITH(ffmpeg-faac,
+   [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
+   [
+     if test "$with_ffmpeg_faac" = "yes"; then
+       VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
+     fi])
+
+ AC_ARG_WITH(ffmpeg-dts,
+   [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
+   [
+     if test "$with_ffmpeg_dts" = "yes"; then
+             LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
+             AC_CHECK_LIB(dts_pic, dts_free, 
+               [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
+               [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
+             LDFLAGS="${LDFLAGS_save}"
+     fi])
+
+ AC_ARG_WITH(ffmpeg-zlib,
+   [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
+   [
+     if test "$with_ffmpeg_zlib" = "yes"; then
+               VLC_ADD_LDFLAGS([ffmpeg],[-lz])
+     fi])
+
+ dnl
+ dnl test for --with-ffmpeg-tree
+ dnl
+ AC_ARG_WITH(ffmpeg-tree,
+   [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
+
+ if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
+   AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
+   real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
+   if test -z "${real_ffmpeg_tree}"; then
+     dnl  The given directory can't be found
+     AC_MSG_RESULT(no)
+     AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
+   fi
+   if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
+     dnl  The given libavcodec wasn't built
+     AC_MSG_RESULT(no)
+     AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
+   fi
+   if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
+     dnl  The given libavcodec wasn't built with --enable-pp
+     AC_MSG_RESULT(no)
+     AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
+   fi
+   dnl  Use a custom libffmpeg
+   AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
+
+   if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
+     if test "${with_ffmpeg_zlib}" != "yes"; then
+       VLC_ADD_LDFLAGS([ffmpeg],[-lz])
+     fi
+   fi
+   if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
+     if test "${with_ffmpeg_mp3lame}" != "yes"; then
+       VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
+     fi
+   fi
+   if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
+     if test "${with_ffmpeg_faac}" != "yes"; then
+       VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
+     fi
+   fi
+   if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
+     if test "${with_ffmpeg_dts}" != "yes"; then
+       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
+       AC_CHECK_LIB(dts_pic, dts_free, 
+         [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
+         [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
+       LDFLAGS="${LDFLAGS_save}"
+     fi
+   fi
+   if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
+     VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
+   fi
+   if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
+     VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
+   fi
+   if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
+     VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
+   fi
+
+   VLC_ADD_BUILTINS([ffmpeg])
+   if test "${enable_sout}" != "no"; then
+     VLC_ADD_BUILTINS([stream_out_switcher])
+   fi
+
+   if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
+     VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
+     VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
+   fi
+
+   VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
+   VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
+
+   if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
+     AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
+     VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
+     VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
+   fi
+else    
+    
 dnl Look for a ffmpeg-config (we are on debian )
  
-   FFMPEG_PATH="${PATH}"
-   AC_ARG_WITH(ffmpeg-config-path,
-     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
-     [ if test "${with_ffmpeg_config_path}" != "no"
-       then
-         FFMPEG_PATH="${with_ffmpeg_config_path}"
-       fi ])
-   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
-   if test "${FFMPEG_CONFIG}" != "no"
-   then
+  FFMPEG_PATH="${PATH}"
+  AC_ARG_WITH(ffmpeg-config-path,
+    [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
+    [ if test "${with_ffmpeg_config_path}" != "no"
+      then
+        FFMPEG_PATH="${with_ffmpeg_config_path}"
+      fi ])
+  AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
+  if test "${FFMPEG_CONFIG}" != "no"
+  then
+    AC_CHECK_HEADERS(ffmpeg/avcodec.h)
+    AC_CHECK_HEADERS(postproc/postprocess.h)
+    VLC_ADD_PLUGINS([ffmpeg])
+    if test "${enable_sout}" != "no"; then
+        VLC_ADD_PLUGINS([stream_out_switcher])
+    fi
+    VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
+    VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
+ else
+
+dnl Trying with pkg-config
+   PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
+    [
      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
      AC_CHECK_HEADERS(postproc/postprocess.h)
-     VLC_ADD_PLUGINS([ffmpeg])
+     VLC_ADD_BUILTINS([ffmpeg])
      if test "${enable_sout}" != "no"; then
-         VLC_ADD_PLUGINS([stream_out_switcher])
+         VLC_ADD_BUILTINS([stream_out_switcher])
      fi
-     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
-     VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
-  
-  else
-    AC_ARG_WITH(ffmpeg-mp3lame,
-      [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
-      [
-        VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame]) ])
-
-    AC_ARG_WITH(ffmpeg-faac,
-      [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
-      [
-        VLC_ADD_LDFLAGS([ffmpeg],[-lfaac]) ])
-
-    AC_ARG_WITH(ffmpeg-dts,
-      [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
-      [
-        VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
-
-    AC_ARG_WITH(ffmpeg-zlib,
-      [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
-      [
-        VLC_ADD_LDFLAGS([ffmpeg],[-lz]) ])
-
-    AC_ARG_WITH(ffmpeg-tree,
-      [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
+     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
+     VLC_ADD_LDFLAGS([ffmpeg],[${FFMPEG_LIBS}])
 
+    ],[
+     
     dnl
-    dnl test for !(--with-ffmpeg-tree)
+    dnl last chance: at the default place
     dnl
-    if test "${with_ffmpeg_tree}" = "no" -o -z "${with_ffmpeg_tree}"; then
       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
@@ -2098,6 +2546,8 @@ dnl Look for a ffmpeg-config (we are on debian )
 
       AC_CHECK_LIB(avcodec, avcodec_init, [
         VLC_ADD_BUILTINS([ffmpeg])
+
+
         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
         if test "${enable_sout}" != "no"; then
             VLC_ADD_BUILTINS([stream_out_switcher])
@@ -2106,93 +2556,20 @@ dnl Look for a ffmpeg-config (we are on debian )
       AC_CHECK_LIB(avformat, av_open_input_stream, [
         AC_DEFINE(HAVE_LIBAVFORMAT, 1,
         [Define if you have ffmpeg's libavformat.])
-        VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz])
+        VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
       LDFLAGS="${LDFLAGS_save}"
       CPPFLAGS="${CPPFLAGS_save}"
-    fi
-
-    dnl
-    dnl test for --with-ffmpeg-tree
-    dnl
-    if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
-      AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
-      real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
-      if test -z "${real_ffmpeg_tree}"; then
-        dnl  The given directory can't be found
-        AC_MSG_RESULT(no)
-        AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
-      fi
-      if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
-        dnl  The given libavcodec wasn't built
-        AC_MSG_RESULT(no)
-        AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
-      fi
-      if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
-        dnl  The given libavcodec wasn't built with --enable-pp
-        AC_MSG_RESULT(no)
-        AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
-      fi
-      dnl  Use a custom libffmpeg
-      AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
-
-      if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
-        if test "${with_ffmpeg_zlib}" != "yes"; then
-          VLC_ADD_LDFLAGS([ffmpeg],[-lz])
-        fi
-      fi
-      if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
-        if test "${with_ffmpeg_mp3lame}" != "yes"; then
-          VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
-        fi
-      fi
-      if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
-        if test "${with_ffmpeg_faac}" != "yes"; then
-          VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
-        fi
-      fi
-      if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
-        if test "${with_ffmpeg_dts}" != "yes"; then
-          VLC_ADD_LDFLAGS([ffmpeg],[-ldts])
-        fi
-      fi
-      if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
-        VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
-      fi
-      if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
-        VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
-      fi
-      if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
-        VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
-      fi
-
-      VLC_ADD_BUILTINS([ffmpeg])
-      if test "${enable_sout}" != "no"; then
-        VLC_ADD_BUILTINS([stream_out_switcher])
-      fi
-
-      if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
-        VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
-        VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
-      fi
-
-      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
-      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
-
-      if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
-        AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
-        VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
-        VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
-      fi
-    fi
+    ])
   fi
+ fi 
 fi
 
 dnl
-dnl  ffmpeg decoder/demuxer plugin
+dnl  ffmpegaltivec plugin
 dnl
 AC_ARG_ENABLE(ffmpegaltivec,
 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
-if test "${enable_ffmpegaltivec}" == "yes"
+if test "${enable_ffmpegaltivec}" = "yes"
 then
   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
@@ -2340,6 +2717,24 @@ then
   fi
 fi
 
+dnl
+dnl  Real plugin
+dnl
+AC_ARG_ENABLE(real,
+  [  --enable-real           Real audio module (default disabled)])
+if test "${enable_real}" = "yes"; then
+  VLC_ADD_PLUGINS([realaudio])
+fi
+
+dnl
+dnl  Real RTSP plugin
+dnl
+AC_ARG_ENABLE(realrtsp,
+  [  --enable-realrtsp       Real RTSP module (default disabled)])
+if test "${enable_realrtsp}" = "yes"; then
+  VLC_ADD_PLUGINS([access_realrtsp])
+fi
+
 dnl
 dnl MP4 module
 dnl
@@ -2509,9 +2904,35 @@ AC_ARG_ENABLE(flac,
   [  --enable-flac           flac decoder support (default disabled)])
 if test "${enable_flac}" = "yes"
 then
-  AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
-    VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
-   ],[])
+  AC_ARG_WITH(flac-tree,
+  [    --with-flac-tree=PATH flac tree for static linking])
+  if test -n "${with_flac_tree}"
+  then
+    AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
+    real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
+    if test -z "${real_flac_tree}"
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
+    fi
+    if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
+    then
+      dnl  Use a custom flac
+      AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
+      VLC_ADD_LDFLAGS([flacdec],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
+      VLC_ADD_CFLAGS([flacdec],[-I${real_flac_tree}/include])
+      AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
+    else
+      dnl  The given flac wasn't built
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
+    fi
+  else
+    AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
+      VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
+     ],[])
+  fi
 fi
 
 dnl
@@ -2574,12 +2995,38 @@ AC_ARG_ENABLE(vorbis,
   [  --enable-vorbis         Vorbis decoder support (default enabled)])
 if test "${enable_vorbis}" != "no"
 then
-  AC_CHECK_HEADERS(vorbis/codec.h, [
-    VLC_ADD_PLUGINS([vorbis])
-    VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
+  AC_ARG_WITH(vorbis-tree,
+  [    --with-vorbis-tree=PATH vorbis tree for static linking])
+  if test -n "${with_vorbis_tree}"
+  then
+    AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
+    real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
+    if test -z "${real_vorbis_tree}"
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
+    fi
+    if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
+    then
+      dnl  Use a custom vorbis 
+      AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
+      VLC_ADD_PLUGINS([vorbis])
+      VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
+      VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
+    else
+      dnl  The given vorbis wasn't built
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
+    fi
+  else
+    AC_CHECK_HEADERS(vorbis/codec.h, [
+      VLC_ADD_PLUGINS([vorbis])
+      VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
 
-  AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
-    VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
+    AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
+      VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
+  fi
 fi
 
 dnl
@@ -2602,16 +3049,42 @@ AC_ARG_ENABLE(speex,
   [  --enable-speex          Speex decoder support (default enabled)])
 if test "${enable_speex}" != "no"
 then
-  AC_CHECK_HEADERS(speex/speex.h, [
-    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
-    AC_CHECK_LIB(speex, speex_decode_int, [
+  AC_ARG_WITH(speex-tree,
+  [    --with-speex-tree=PATH speex tree for static linking])
+  if test -n "${with_speex_tree}"
+  then
+    AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
+    real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
+    if test -z "${real_speex_tree}"
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
+    fi
+    if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
+    then
+      dnl  Use a custom speex
+      AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
       VLC_ADD_PLUGINS([speex])
-      VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
-      [ AC_MSG_RESULT([no])
-        AC_MSG_WARN([Your libspeex is too old, please get the development
-                     version.]) ],[])
-    LDFLAGS="${LDFLAGS_save}"
-    ],[])
+      VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
+      VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
+    else
+      dnl  The given speex wasn't built
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
+    fi
+  else
+    AC_CHECK_HEADERS(speex/speex.h, [
+      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
+      AC_CHECK_LIB(speex, speex_decode_int, [
+        VLC_ADD_PLUGINS([speex])
+        VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
+        [ AC_MSG_RESULT([no])
+          AC_MSG_WARN([Your libspeex is too old, please get the development
+                       version.]) ],[])
+      LDFLAGS="${LDFLAGS_save}"
+      ],[])
+  fi
 fi
 
 dnl
@@ -2670,12 +3143,11 @@ dnl
 AC_ARG_ENABLE(dirac,
 [  --enable-dirac          experimental dirac codec (default disabled)])
 if test "${enable_dirac}" = "yes"; then
-  AC_CHECK_HEADERS(libdirac_decoder/dirac_parser.h, [
-    AC_CHECK_LIB(dirac_decoder, dirac_decoder_init, [
+  PKG_CHECK_MODULES(DIRAC,dirac, [
       VLC_ADD_PLUGINS([dirac])
-      VLC_ADD_LDFLAGS([dirac],[-ldirac_decoder -ldirac_encoder -lstdc++]) ],[
-      AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])],
-      [-lstdc++])
+      VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
+      VLC_ADD_LDFLAGS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
+      AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
   ])
 fi
 
@@ -2721,7 +3193,7 @@ if test "${enable_x264}" != "no"; then
       AC_MSG_RESULT(yes)
       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
-      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264}"
+      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
       AC_CHECK_LIB(x264, x264_encoder_open, [
         VLC_ADD_BUILTINS([x264])
         VLC_ADD_LDFLAGS([x264],[-lx264])
@@ -2734,7 +3206,7 @@ if test "${enable_x264}" != "no"; then
       AC_MSG_ERROR([the specified tree doesn't have x264.h])
     fi
   else
-    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264}"
+    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
     AC_CHECK_HEADERS(x264.h, [
       AC_CHECK_LIB(x264, x264_encoder_open, [
         VLC_ADD_PLUGINS([x264])
@@ -2956,7 +3428,7 @@ then
   if test "${SDL_CONFIG}" != "no"
   then
     # SDL on Darwin is heavily patched and can only run SDL_image
-    if test "${SYS}" != "darwin"; then
+    if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
     fi
     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
@@ -2973,6 +3445,12 @@ Please install it and try again. Alternatively you can also configure with
     AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
       <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
       VLC_ADD_PLUGINS([sdl_image])
+      AC_CHECK_LIB(png, png_set_rows,
+        [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
+      AC_CHECK_LIB(jpeg, jpeg_start_decompress,
+        [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
+      AC_CHECK_LIB(tiff, TIFFClientOpen,
+        [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
       VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
       [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
           As a last resort we also test for SDL_image.h presence),
@@ -2986,6 +3464,7 @@ You should install it alongside your SDL package.])
 Please install it and try again. Alternatively you can also configure with
 --disable-sdl.])
     fi
+
   elif test "${enable_sdl}" =  "yes"
   then
     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
@@ -3094,7 +3573,7 @@ dnl  SVG module
 dnl
 AC_ARG_ENABLE(svg,
   [  --enable-svg            SVG support (default disabled)])
-if test "${enable_svg}" == "yes"
+if test "${enable_svg}" = "yes"
 then
   PKG_CHECK_MODULES(SVG, 
        librsvg-2.0 >= 2.5.0,
@@ -3105,6 +3584,16 @@ then
         [AC_MSG_WARN(SVG library not found)])
 fi
 
+dnl
+dnl Snapshot vout module (with cache)
+dnl
+AC_ARG_ENABLE(snapshot,
+  [  --enable-snapshot       snapshot module (default disabled)])
+if test "${enable_snapshot}" = "yes"
+then
+  VLC_ADD_PLUGINS([snapshot])
+fi
+
 dnl
 dnl  Qt Embedded module
 dnl  (disabled by default)
@@ -3250,6 +3739,41 @@ then
   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
 fi
 
+dnl
+dnl  DirectFB module
+dnl
+AC_ARG_ENABLE(directfb,
+  [  --enable-directfb       DirectFB support (default disabled)])
+if test "${enable_directfb}" = "yes"
+then
+  if test "${with_directfb}" = "no"
+  then
+    AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
+    if test "${have_directfb}"= "true"
+    then
+        VLC_ADD_PLUGINS([directfb])
+        VLC_ADD_LDFLAGS([directfb],[-ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
+        VLC_ADD_CPPFLAGS([directfb],[-I/usr/include/directfb -D_REENTRANT])
+    else
+        AC_MSG_ERROR([cannot find /usr/include/directfb headers, make sure directfb is installed on your system or use --disable-directfb])
+    fi
+  else
+    CPPFLAGS_save="${CPPFLAGS}"
+    CPPFLAGS="${CPPFLAGS} -I${with_directfb}/include"
+    AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
+    CPPFLAGS="${CPPFLAGS_save}"
+    AC_ARG_WITH(directfb,
+        [    --with-directfb=PATH  path to directfb],
+        [ if test "${with_directfb}" != "no" -a -n "${with_directfb}"
+        then
+            VLC_ADD_PLUGINS([directfb])
+            VLC_ADD_CPPFLAGS([directfb],[-I${with_directfb}/include -D_REENTRANT])
+            VLC_ADD_LDFLAGS([directfb],[-L${with_directfb}/lib -ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
+        fi ],
+        [ AC_MSG_ERROR([cannot find directfb headers in ${with_directfb}/include]) ])
+  fi
+fi
+
 dnl
 dnl  GGI module
 dnl
@@ -3420,6 +3944,7 @@ then
   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
   if test "${have_alsa}" = "true"
   then
+    CFLAGS="${CFLAGS_save}"
     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
                     #define ALSA_PCM_NEW_SW_PARAMS_API
                     #include <alsa/asoundlib.h>],
@@ -3452,14 +3977,14 @@ fi
 dnl
 dnl  CoreAudio plugin
 dnl
-AC_ARG_ENABLE(coreaudio,
-  [  --enable-coreaudio      CoreAudio module (default enabled on MacOS X)])
-if test "${enable_coreaudio}" != "no" &&
-  (test "${SYS}" = "darwin" || test "${enable_coreaudio}" = "yes")
+AC_ARG_ENABLE(macosx-audio,
+  [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
+if test "${enable_macosx-audio}" != "no" &&
+  (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
 then
   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
-    [ VLC_ADD_BUILTINS([coreaudio auhal])
-      VLC_ADD_LDFLAGS([coreaudio auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox])
+    [ VLC_ADD_BUILTINS([auhal])
+      VLC_ADD_LDFLAGS([auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox])
     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
 fi
 
@@ -3479,49 +4004,89 @@ then
   AC_LANG_POP([C++])
 fi
 
+dnl
+dnl  JACK module
+dnl
+AC_ARG_ENABLE(jack,
+ [  --enable-jack           JACK audio module (default disabled)],
+ [if test "${enable_jack}" = "yes"
+  then
+    AC_CHECK_HEADERS(jack/jack.h, [
+      VLC_ADD_PLUGINS([jack])
+      VLC_ADD_LDFLAGS([jack],[-ljack]) ])
+  fi])
+
 dnl
 dnl  CyberLink for C++ UPnP stack
 dnl
 AC_ARG_ENABLE(cyberlink,
   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
-if test "${CXX}" != "" -a "${enable_cyberlink}" = "yes" || (test "${enable_cyberlink}" != "no"); then
+AS_IF([test "${CXX}" != "" -a "${enable_cyberlink}" = "yes" || (test "${enable_cyberlink}" != "no")], [
   AC_ARG_WITH(cyberlink-tree,
     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
 
   dnl
   dnl test for --with-cyberlink-tree
   dnl
-  if test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""; then
+  AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
     AC_LANG_PUSH(C++)
     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
-    if test -z "${real_cyberlink_tree}"
-    then
+    AS_IF([test -z "${real_cyberlink_tree}"], [
       dnl  The given directory can't be found
       AC_MSG_RESULT(no)
       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
-    fi
-    CXXFLAGS_save="${CXXFLAGS}"
-    CXXFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
-    CXXFLAGS="${CXXFLAGS} ${CXXFLAGS_cyberlink}"
+    ])
+    CPPFLAGS_save="${CPPFLAGS}"
+    CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
+    CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
-      [ VLC_ADD_CXXFLAGS([upnp], [${CXXFLAGS_cyberlink}])
+      [ VLC_ADD_CXXFLAGS([upnp], [${CPPFLAGS_cyberlink}])
         VLC_ADD_PLUGINS([upnp]) 
       ],[
         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
       ])
     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
-    if test -f "${real_cyberlink_tree}/lib/unix/libclink.a"
-    then
+    AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
-      VLC_ADD_LDFLAGS([upnp], [${real_cyberlink_tree}/lib/unix/libclink.a -lexpat])
-    else
+      dnl The mere fact that we have to make such an ugly check sucks
+      AC_MSG_CHECKING(for XML parser to link CyberLink with)
+      LIBS_save="$LIBS"
+      LIBS_cclink="no"
+      for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
+        LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
+        AC_LINK_IFELSE([AC_LANG_PROGRAM([
+#include <cybergarage/upnp/media/player/MediaPlayer.h>
+using namespace CyberLink;
+
+class testclass : public SearchResponseListener, public MediaPlayer
+{
+    virtual void deviceSearchResponseReceived( SSDPPacket *)
+    {
+    }
+
+    public:
+      testclass (void)
+      {
+        addSearchResponseListener (this);
+       start ();
+      }
+};
+],[testclass l;])],[LIBS_cclink="$l"])
+      done
+      LIBS="${LIBS_save}"
+      dnl should not happen - otherwise this needs fixing - hence FAILURE
+      AS_IF([test "${LIBS_cclink}" == "no"],
+        [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
+      AC_MSG_RESULT([${LIBS_cclink}])
+      VLC_ADD_LDFLAGS([upnp], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
+    ], [
       AC_MSG_RESULT(no)
-       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
-    fi
-    CXXFLAGS="${CXXFLAGS_save}"
+      AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
+    ])
+    CPPFLAGS="${CPPFLAGS_save}"
     AC_LANG_POP([C++])
-  fi
-fi
+  ])
+])
 
 dnl
 dnl  Interface plugins
@@ -3764,6 +4329,12 @@ then
     fi
     VLC_ADD_LDFLAGS([wxwidgets],[`${WX_CONFIG} --libs`])
     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
+    if ${WX_CONFIG} --unicode
+    then 
+      # wxwidgets should provide the following flags but does not
+      # the following is required to compile for win32
+      VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
+    fi
     if test "$have_libcdio" = "yes"
     then 
       VLC_ADD_LDFLAGS([wxwidgets],[$LIBCDIO_LIBS])
@@ -4060,43 +4631,6 @@ then
   fi
 fi
 
-dnl
-dnl  SLP access plugin
-dnl
-AC_ARG_ENABLE(slp,
-  [  --enable-slp            SLP service discovery support (default disabled)])
-if test "${enable_slp}" = "yes"
-then
-  AC_ARG_WITH(slp,
-  [    --with-slp=PATH       libslp headers and libraries])
-  if test -z "${with_slp}"
-  then
-    AC_CHECK_HEADERS(slp.h, have_slp="true", have_slp="false")
-    if test "${have_slp}" = "true"
-    then
-      VLC_ADD_PLUGINS([slp])
-      VLC_ADD_LDFLAGS([slp],[-lslp])
-      VLC_ADD_LDFLAGS([stream_out_standard],[-lslp])
-    fi
-  else
-    AC_MSG_CHECKING(for slp headers in ${with_slp})
-    if test -f ${with_slp}/slp.h
-    then
-      dnl  Use ${with_slp}/libslp/slp.h
-      AC_MSG_RESULT(yes)
-      VLC_ADD_PLUGINS([slp])
-      VLC_ADD_LDFLAGS([slp],[-L${with_slp} -lslp])
-      VLC_ADD_LDFLAGS([stream_out_standard],[-L${with_slp} -lslp])
-      VLC_ADD_CPPFLAGS([slp],[-I${with_slp}])
-      AC_DEFINE(HAVE_SLP_H)
-    else
-      dnl  No libslp could be found, sorry
-      AC_MSG_RESULT(no)
-      AC_MSG_ERROR([cannot find ${with_slp}/slp.h])
-    fi
-  fi
-fi
-
 dnl
 dnl DAAP access plugin and services discovery 
 dnl
@@ -4111,6 +4645,23 @@ then
       [AC_MSG_WARN(DAAP library not found)])
 fi
 
+dnl
+dnl  Bonjour services discovery
+dnl
+AC_ARG_ENABLE(bonjour,
+  [  --enable-bonjour        Bonjour services discovery (default enabled)])
+if test "${enable_bonjour}" != "no"
+then
+  PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
+    [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
+       [AC_DEFINE(HAVE_AVAHI_06, [], [Define if you have avahi-client 0.6 or greater])],)
+      AC_DEFINE(HAVE_AVAHI_CLIENT, [], [Define if you have the avahi-client library])
+      VLC_ADD_LDFLAGS([bonjour access_output_http],[$BONJOUR_LIBS])
+      VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
+      VLC_ADD_PLUGINS([bonjour]) ],
+    [AC_MSG_WARN(avahi-client library not found)])
+fi
+
 dnl
 dnl  Lirc plugin
 dnl
@@ -4126,14 +4677,6 @@ then
   fi
 fi
 
-dnl 
-dnl  Joystick plugin
-dnl
-AC_ARG_ENABLE(joystick,
-  [  --enable-joystick       joystick control (default enabled)])
-if test "${enable_joystick}" = "yes"; then
-  AC_CHECK_HEADER(linux/joystick.h, [VLC_ADD_PLUGINS([joystick])])
-fi
 
 dnl
 dnl corba (ORBit) plugin
@@ -4233,6 +4776,8 @@ AS_IF([test "${enable_loader}" = "yes"],
     VLC_ADD_LDFLAGS([dmo],[../../../loader/libloader.a])
     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/loader])
     VLC_ADD_LDFLAGS([quicktime],[../../loader/libloader.a])
+    VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/loader -DLOADER])
+    VLC_ADD_LDFLAGS([realaudio],[../../loader/libloader.a])
   ])
 
 dnl
@@ -4246,16 +4791,21 @@ then
   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
   then
     AC_CHECK_PROGS(MIDL, [midl widl], no)
+    AC_LANG_PUSH(C++)
     AC_CHECK_HEADERS(ole2.h olectl.h,
       [ VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
         VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
         AC_CHECK_HEADERS(objsafe.h,
-          VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER])
+          VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
+          [#if HAVE_OLE2_H
+           #   include <ole2.h>
+           #endif]
         )
         activex=:
       ],
       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
     )
+    AC_LANG_POP(C++)
   fi
 fi
 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
@@ -4268,64 +4818,108 @@ dnl
 mozilla=false
 AC_ARG_ENABLE(mozilla,
   [  --enable-mozilla        build a vlc-based Mozilla plugin (default disabled)])
-if test "${enable_mozilla}" = "yes" -a "${SYS}" != "mingw32"
+AC_ARG_WITH(mozilla-sdk-path,
+  [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
+
+if test "${enable_mozilla}" = "yes" 
 then
-  AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
-  if test "${MOZILLA_CONFIG}" = "no"
+  if test "${with_mozilla_sdk_path}" = ""
   then
-    AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
+    AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
+    if test "${MOZILLA_CONFIG}" = "no"
+    then
+      AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
+    else
+      if test "${SYS}" != "mingw32"; then
+        LDFLAGS="${LDFLAGS_save} -L${x_libraries}"
+        AC_CHECK_LIB(Xt,XtStrings,
+         [VLC_ADD_LDFLAGS([mozilla],[-L${x_libraries} -lXt -lX11 -lSM -lICE])],
+         [],
+         [[-L${x_libraries} -lX11 -lSM -lICE]
+        ])
+        LDFLAGS="${LDFLAGS_save}"
+      fi
+      mozilla=:
+      dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
+      VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
+      VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
+      CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
+      AC_CHECK_HEADERS(mozilla-config.h)
+      CPPFLAGS="${CPPFLAGS_save}"
+      XPIDL_INCL="`${MOZILLA_CONFIG} --cflags plugin xpcom java` \
+      `${MOZILLA_CONFIG} --idlflags plugin xpcom java` "
+      xpidl_path="`${MOZILLA_CONFIG} --prefix`/bin"
+    fi
   else
-    if test "${SYS}" != "mingw32"; then
-      LDFLAGS="${LDFLAGS_save} -L${x_libraries}"
-      AC_CHECK_LIB(Xt,XtStrings,
-       [VLC_ADD_LDFLAGS([mozilla],[-L${x_libraries} -lXt -lX11 -lSM -lICE])],
-       [],
-       [[-L${x_libraries} -lX11 -lSM -lICE]
-      ])
-      LDFLAGS="${LDFLAGS_save}"
+    dnl special case for mingw32
+    if test "${SYS}" = "mingw32"
+    then
+      AC_CHECK_TOOL(CYGPATH, cygpath, "")
+      dnl latest gecko sdk does not have an xpcom directory
+      if test -d "${with_mozilla_sdk_path}/xpcom"; then
+          mozilla_sdk_xpcom="/xpcom"
+      fi
     fi
-    mozilla=:
-    dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
-    VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
-    VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
-    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
-    AC_CHECK_HEADERS(mozilla-config.h)
-    CPPFLAGS="${CPPFLAGS_save}"
-  fi
-
-dnl special case for mingw32
-elif test "${enable_mozilla}" = "yes"
-then
-  AC_CHECK_TOOL(CYGPATH, cygpath, "")
-  AC_ARG_WITH(mozilla-sdk-path,
-    [    --with-mozilla-sdk-path=PATH path to win32 mozilla sdk], [
+  
     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
-    CPPFLAGS="${CPPFLAGS_save} ${real_mozilla_sdk}"
+    CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
     AC_CHECK_HEADERS(mozilla-config.h, [
       mozilla=:
-      VLC_ADD_CPPFLAGS([mozilla],[-DXPCOM_GLUE -I${real_mozilla_sdk} -I${real_mozilla_sdk}/embedstring/include -I${real_mozilla_sdk}/xpcom/include -I${real_mozilla_sdk}/nspr/include -I${real_mozilla_sdk}/string/include -I${real_mozilla_sdk}/plugin/include -I${real_mozilla_sdk}/java/include])
-      VLC_ADD_LDFLAGS([mozilla],[-L${real_mozilla_sdk}/embedstring/bin -L${real_mozilla_sdk}/xpcom/bin -L${real_mozilla_sdk}/nspr/bin -L${real_mozilla_sdk}/string/bin -lnspr4 -lplds4 -lplc4 -lembedstring -lxpcomglue -Wl,--kill-at])
-      XPIDL_INCL="-I${real_mozilla_sdk}/xpcom/idl"
+      VLC_ADD_CPPFLAGS([mozilla],[-DXPCOM_GLUE -DHAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include -I${real_mozilla_sdk}/embedstring/include -I${real_mozilla_sdk}/xpcom/include -I${real_mozilla_sdk}/nspr/include -I${real_mozilla_sdk}/string/include -I${real_mozilla_sdk}/plugin/include -I${real_mozilla_sdk}/java/include])
+      VLC_ADD_LDFLAGS([mozilla],[-L${real_mozilla_sdk}/embedstring/bin -L${real_mozilla_sdk}/xpcom/bin -L${real_mozilla_sdk}/nspr/bin -L${real_mozilla_sdk}/string/bin -L${real_mozilla_sdk}/lib -lnspr4 -lplds4 -lplc4 -lxpcomglue])
+      if test "${SYS}" = "mingw32"; then
+        LDFLAGS="${LDFLAGS_save} -L${x_libraries}"
+        dnl latest gecko sdk does not have embedstring
+        if test -d "${real_mozilla_sdk}/embedstring/bin"
+        then
+          VLC_ADD_LDFLAGS([mozilla],[-lembedstring -Wl,--kill-at])
+        fi
+      fi
+  
+      XPIDL_INCL="-I${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl"
+      xpidl_path="${real_mozilla_sdk}${mozilla_sdk_xpcom}/bin"
+  
       if test -n "${CYGPATH}"; then
-        XPIDL="${real_mozilla_sdk}/xpcom/bin/xpidl"
         real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
-        XPIDL_INCL="${XPIDL_INCL} -I\"${real_mozilla_sdk}/xpcom/idl\""
+        XPIDL_INCL="${XPIDL_INCL} -I\"${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl\""
       fi ])
     CPPFLAGS="${CPPFLAGS_save}"
-  ])
+  fi
+  
+  if test "${mozilla}" != "false"
+  then
+    build_pic=yes
+    AC_PATH_PROG(XPIDL, xpidl, no, ${xpidl_path} /usr/lib/mozilla)
+    if test "${XPIDL}" = "no"; then
+      AC_MSG_ERROR([Please install the Mozilla development tools, xpidl was not found.])
+    fi
+  fi
 fi
+AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
 
-dnl Not necessarily in ${PATH}
-if test -z "${XPIDL}" -o ! -x "${XPIDL}"; then
-  XPIDL="/usr/lib/mozilla/xpidl"
+dnl
+dnl  Python bindings
+dnl
+AC_ARG_ENABLE(python-bindings,
+  [  --enable-python-bindings    Enable Python bindings (default disabled)])
+dnl TODO: look for python dev headers
+AM_CONDITIONAL( BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"] )
+if test "${enable_python_bindings}" = "yes"
+then
+  build_pic=yes
 fi
-AS_IF([test "${MOZILLA_CONFIG}"], [
-  if test -z "${XPIDL_INCL}"; then
-    XPIDL_INCL="`${MOZILLA_CONFIG} --cflags plugin xpcom java` \
-    `${MOZILLA_CONFIG} --idlflags plugin xpcom java` "
-  fi
-])
-AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
+
+dnl
+dnl  Java bindings
+dnl
+AC_ARG_ENABLE(java-bindings,
+  [  --enable-java-bindings  Enable Java bindings (default disabled)])
+AM_CONDITIONAL( BUILD_JAVA, [test "${enable_java_bindings}" = "yes"] )
+if test "${enable_java_bindings}" = "yes"
+then
+  build_pic=yes
+fi
+
 
 dnl
 dnl  test plugins
@@ -4439,20 +5033,18 @@ then
 fi]
 AM_CONDITIONAL(HAVE_BUILTINS, ${builtin_support})
 
-AC_ARG_ENABLE(shared-libvlc,
-  [  --enable-shared-libvlc  shared libvlc (default disabled EXPERIMENTAL)],
-  ,[shared_libvlc=no])
-
+dnl
+dnl Pic and shared libvlc stuff
+dnl
 AM_CONDITIONAL(BUILD_SHARED, [test "${shared_libvlc}" != "no"])
+AM_CONDITIONAL(BUILD_PIC, [test "${build_pic}" = "yes" -o "${shared_libvlc}" != "no"] )
 AS_IF([test "${shared_libvlc}" != "no"], [
   AC_DEFINE(HAVE_SHARED_LIBVLC, 1, [Define to 1 if libvlc is built as a shared library.])
 ])
 
 pic=no
-AS_IF([test "${shared_libvlc}" != "no"], [pic=pic])
-AS_IF([${mozilla}], [pic=pic])
+AS_IF([test "${shared_libvlc}" != "no" -o "${build_pic}" = "yes"], [pic=pic])
 AS_IF([test "${SYS}" = "mingw32"], [pic=no])
-
 AS_IF([test "${pic}" = "no"], [pic=])
 AC_SUBST(pic)
 
@@ -4472,24 +5064,23 @@ AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor numb
 AC_SUBST(VERSION_MAJOR)
 AC_SUBST(VERSION_MINOR)
 AC_SUBST(VERSION_REVISION)
+AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
+AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure]) 
+AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
+AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
 
 dnl Old definitions for version-dependant plugins
 dnl VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`"
 dnl AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
 dnl AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
 
-dnl New definitions with value matching 0.8.2 release
+dnl New definitions with value matching 0.8.4 release
 module_symbol="0_8_4"
 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${module_symbol}", [String suffix for module functions])
 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $module_symbol, [Symbol suffix for module functions])
 VLC_ENTRY="vlc_entry__${module_symbol}"
 AC_SUBST(VLC_ENTRY)
 
-DATA_PATH="${ac_tool_prefix}/share/vlc"
-AC_SUBST(DATA_PATH)
-PLUGIN_PATH="${ac_tool_prefix}/lib/vlc"
-AC_SUBST(PLUGIN_PATH)
-
 dnl
 dnl  Handle substvars that use $(top_srcdir)
 dnl
@@ -4522,6 +5113,7 @@ AC_SUBST(XPIDL_INCL)
 AC_SUBST(LIBEXT)
 AC_SUBST(INCLUDES)
 AC_SUBST(ALL_LINGUAS)
+AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
 
 dnl Import substitutions generated by bootstrap
 VLC_SUBSTS
@@ -4533,6 +5125,9 @@ AC_CONFIG_FILES([
   Makefile
   activex/Makefile
   activex/axvlc.inf
+  bindings/Makefile
+  bindings/java/Makefile
+  bindings/python/Makefile
   debian/Makefile
   doc/Makefile
   intl/Makefile
@@ -4554,6 +5149,7 @@ AC_CONFIG_FILES([
   modules/access/pvr/Makefile
   modules/access/v4l/Makefile
   modules/access/cdda/Makefile
+  modules/access/rtsp/Makefile
   modules/access/vcd/Makefile
   modules/access/vcdx/Makefile
   modules/access/screen/Makefile
@@ -4627,6 +5223,12 @@ dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modu
 dnl echo "Enabled plugin modules :"
 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
 
+dnl Shortcut to nice compile message
+rm -f compile
+echo '#! /bin/sh' >compile
+echo "PATH=$PATH LANG=C make \$* 2>&1| ${srcdir}/extras/make.pl" >>compile
+chmod a+x compile
+
 printf "
 vlc configuration
 --------------------
@@ -4643,6 +5245,6 @@ echo "
 vlc aliases           :${ALIASES}
 
 You can tune the compiler flags in vlc-config.
-To build vlc and its plugins, type \`make'.
+To build vlc and its plugins, type \`./compile' or \`make'.
 "