]> git.sesse.net Git - vlc/blobdiff - configure.ac
* modules/demux/mp4/mp4.c: fixed bug with some HE-AAC audio tracks.
[vlc] / configure.ac
index 077d8fa86e88d9a6af83bf5296d8552b16a49575..07c3ced2a3a19d2585232c42119f3db95912722e 100644 (file)
@@ -4,8 +4,8 @@ dnl $Id$
 AC_INIT(vlc,0.8.5-svn)
 VERSION_MAJOR="0"
 VERSION_MINOR="8"
-VERSION_REVISION="4"
-VERSION_EXTRA="test1"
+VERSION_REVISION="5"
+VERSION_EXTRA="svn"
 
 CONFIGURE_LINE="$0 $*"
 CODENAME="Janus"
@@ -87,6 +87,8 @@ AC_ARG_WITH(contrib,
 
   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"
@@ -95,6 +97,11 @@ AC_ARG_WITH(contrib,
     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"
@@ -228,7 +235,7 @@ AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
 dnl
 dnl Gettext stuff
 dnl
-ALL_LINGUAS="ca da de en_GB es fr it ja ko nl pt_BR ro ru tr zh_CN zh_TW"
+ALL_LINGUAS="ca da de en_GB es fr it ja 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
@@ -670,6 +677,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
@@ -724,12 +732,21 @@ AC_ARG_ENABLE(hal,
  
 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?
@@ -1014,7 +1031,7 @@ 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 shout sap 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])
@@ -1039,7 +1056,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])
@@ -1153,7 +1170,8 @@ fi
 dnl The AltiVec C extensions
 dnl
 dnl There are several possible cases:
-dnl - OS X PPC, gcc 4.x: use -mpim-altivec, don't need <altivec.h>
+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
@@ -1162,10 +1180,10 @@ 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"
+   CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
    AC_TRY_COMPILE([],
      [vec_ld(0, (unsigned char *)0);],
-     [ac_cv_c_altivec="-mpim-altivec"],
+     [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
      [# OS X/PPC test (gcc 3.x)
       CFLAGS="${CFLAGS_save} -faltivec"
       AC_TRY_COMPILE([],
@@ -1231,7 +1249,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"
@@ -1307,6 +1327,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
@@ -1468,6 +1497,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
@@ -1729,7 +1880,7 @@ dnl  gnomeVFS access module
 dnl
 AC_ARG_ENABLE(gnomevfs,
   [  --enable-gnomevfs      GnomeVFS access module (default enabled)])
-if test "${enable_gnomevfs}" != "no"
+if test "${enable_gnomevfs}" != "no" -a  "${SYS}" = "linux" 
 then
   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
@@ -1975,14 +2126,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
@@ -2048,10 +2228,36 @@ 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
@@ -2179,8 +2385,7 @@ dnl Those options have to be here because the .pc can be bogus for ffmpeg previo
       [
         if test "$with_ffmpeg_mp3lame" = "yes";        then
                VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
-       fi
-       ])
+       fi])
 
     AC_ARG_WITH(ffmpeg-faac,
       [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
@@ -2193,7 +2398,11 @@ dnl Those options have to be here because the .pc can be bogus for ffmpeg previo
       [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
       [
         if test "$with_ffmpeg_dts" = "yes"; then
-               VLC_ADD_LDFLAGS([ffmpeg],[-ldts])
+                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,
@@ -2288,7 +2497,11 @@ dnl Trying with pkg-config
       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])
+          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
@@ -2667,9 +2880,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
@@ -2732,12 +2971,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
@@ -2760,16 +3025,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
@@ -2879,7 +3170,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])
@@ -2892,7 +3183,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])
@@ -3650,44 +3941,42 @@ 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_CPPFLAGS([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
+    ], [
       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
@@ -4232,43 +4521,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
@@ -4290,7 +4542,7 @@ 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.3 avahi-client < 0.6,
     [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])
@@ -4313,14 +4565,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
@@ -4524,6 +4768,34 @@ AS_IF([test "${MOZILLA_CONFIG}"], [
   fi
 ])
 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
+if test "${mozilla}" != "false"
+then
+  build_pic=yes
+fi
+
+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
+
+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
@@ -4637,20 +4909,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)
 
@@ -4735,6 +5005,9 @@ AC_CONFIG_FILES([
   Makefile
   activex/Makefile
   activex/axvlc.inf
+  bindings/Makefile
+  bindings/java/Makefile
+  bindings/python/Makefile
   debian/Makefile
   doc/Makefile
   intl/Makefile
@@ -4830,6 +5103,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
 --------------------
@@ -4846,6 +5125,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'.
 "