]> git.sesse.net Git - vlc/blobdiff - configure.ac
Fixes
[vlc] / configure.ac
index 9d198957c216ab50be5115bfdefd1a1dab109111..c5223e184017d33c76b2dc72e1ca6806e2de2e20 100644 (file)
@@ -10,7 +10,7 @@ CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
 CODENAME="Grishenko"
 COPYRIGHT_YEARS="1996-2008"
 
-AC_PREREQ(2.59) dnl this really should be 2.59c
+AC_PREREQ(2.59c)
 AC_CONFIG_SRCDIR(src/libvlc.c)
 AC_CONFIG_AUX_DIR(autotools)
 AC_CANONICAL_BUILD
@@ -174,7 +174,7 @@ case "${host_os}" in
     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
-    VLC_ADD_LDFLAGS([ffmpeg i420_rgb_mmx],[-Wl,-read_only_relocs,suppress])
+    VLC_ADD_LDFLAGS([ffmpeg i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,Cocoa,-framework,CoreFoundation])
     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
@@ -222,9 +222,6 @@ case "${host_os}" in
         echo "  Assuming --disable-glx"
         enable_xvideo="no"
         echo "  Assuming --disable-xvideo"
-
-        with_macosx_sdk=""
-        echo "  Compiling with default SDK"
     fi
     if test ".`uname -p`" = ".i386"; then
         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
@@ -275,6 +272,9 @@ case "${host_os}" in
     AC_CHECK_TOOL(WINDRES, windres, :)
 
     case "${host_os}" in
+      *wince* | *mingwce* | *mingw32ce* | *pe*)
+        SYS=mingwce
+        ;;
       *mingw32*)
         SYS=mingw32
         ;;
@@ -287,9 +287,6 @@ case "${host_os}" in
              #endif],
             SYS=mingw32, SYS=cygwin)
         ;;
-      *wince* | *mingwce* | *pe*)
-        SYS=mingwce
-        ;;
     esac
 
     if test "${SYS}" = "mingw32"; then
@@ -304,7 +301,8 @@ case "${host_os}" in
         # add ws2 for closesocket, select, recv
         VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)])
         VLC_ADD_LDFLAGS([libvlc vlc],[-e WinMainCRTStartup])
-        VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp sap http netsync],[-lws2])
+        VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp sap http netsync audioscrobbler growl rtp stream_out_rtp],[-lws2])
+        VLC_ADD_LIBS([libvlc],[-lmmtimer])
    fi
     ;;
   *nto*)
@@ -392,7 +390,7 @@ lt_cv_deplibs_check_method=pass_all
 dnl
 dnl Gettext stuff
 dnl
-AM_GNU_GETTEXT_VERSION(0.16.1)
+AM_GNU_GETTEXT_VERSION([0.17])
 AM_GNU_GETTEXT([external])
 VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
 
@@ -459,9 +457,6 @@ dnl Plugin compilation stuff
 
 VLC_LIBRARY_SUFFIX
 
-VLC_SYMBOL_PREFIX
-AC_SUBST(SYMPREF)
-
 dnl The -DSYS_FOO flag
 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
 
@@ -850,7 +845,8 @@ then
   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
     [ AC_DEFINE( HAVE_HAL_1, 1 , [Define if you have the new HAL library API])
       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
-      VLC_ADD_PLUGINS([hal probe_hal]) 
+      VLC_ADD_PLUGINS([hal])
+      VLC_ADD_PLUGINS([probe_hal])
       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],   
     dnl No hal 0.5 Test for 0.2
@@ -970,15 +966,6 @@ CFLAGS="${CFLAGS_save}"
 RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var])
 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
 
-dnl This helps detect broken plugins with undefined symbols
-dnl Better fail loudly at build-time than silenty at run-time.
-dnl Unfortunately, this sucks on FreeBSD (won't even link with -lc)
-if test `uname -s` != FreeBSD; then
-  RDC_PROG_LINK_FLAGS_IFELSE([-Wl,-z,defs], [
-    VLC_ADD_LDFLAGS([plugin],[-Wl,-z,defs])
-  ])
-fi
-
 dnl Check for various optimization flags
 AC_CACHE_CHECK([if \$CC accepts -Os],
     [ac_cv_c_os],
@@ -1062,6 +1049,10 @@ if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
 fi
 
 dnl Check for -fvisibility=hidden
+dnl Don't test on mingw32, because it is going to work with just a warning
+dnl even if it doesn't support it
+if test "${SYS}" != "mingw32"
+then
 AC_CACHE_CHECK([if \$CC accepts -fvisibility=hidden],
     [ac_cv_c_visibility_hidden],
     [CFLAGS="${CFLAGS_save} -fvisibility=hidden"
@@ -1069,6 +1060,7 @@ AC_CACHE_CHECK([if \$CC accepts -fvisibility=hidden],
 if test "${ac_cv_c_visibility_hidden}" != "no"; then
     VLC_ADD_CFLAGS([libvlc plugin],[-fvisibility=hidden])
 fi
+fi
 
 AM_CONDITIONAL(HAVE_COMPILER_EXPORT, [test "$SYS" = "mingw32" -o "${ac_cv_c_visibility_hidden}" != "no"])
 
@@ -1191,21 +1183,118 @@ test "${enable_cprof}" != "yes" && enable_cprof="no"
 dnl
 dnl  default modules
 dnl
-VLC_ADD_PLUGINS([dummy logger memcpy])
-VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 vc1 demux_cdg cdg ps pva avi asf mp4 rawdv rawvid nsv real aiff mjpeg demuxdump flacsys tta])
-VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec subsusf t140 dvbsub cc mpeg_audio lpcm a52 dts cinepak flac])
-VLC_ADD_PLUGINS([deinterlace invert adjust transform wave ripple psychedelic gradient motionblur rv32 rotate noise grain extract sharpen seamcarving])
-VLC_ADD_PLUGINS([converter_fixed mono])
-VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
-VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
-VLC_ADD_PLUGINS([playlist export nsc xtag])
-VLC_ADD_PLUGINS([i420_rgb grey_yuv rawvideo blend scale image logo magnify puzzle colorthres])
-VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv smf])
-VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
-VLC_ADD_PLUGINS([access_http access_mms access_ftp access_rtmp])
+VLC_ADD_PLUGINS([dummy])
+VLC_ADD_PLUGINS([logger])
+VLC_ADD_PLUGINS([memcpy])
+dnl Demuxers:
+VLC_ADD_PLUGINS([mpgv])
+VLC_ADD_PLUGINS([mpga])
+VLC_ADD_PLUGINS([m4v])
+VLC_ADD_PLUGINS([m4a])
+VLC_ADD_PLUGINS([h264])
+VLC_ADD_PLUGINS([vc1])
+VLC_ADD_PLUGINS([demux_cdg])
+VLC_ADD_PLUGINS([cdg])
+VLC_ADD_PLUGINS([ps])
+VLC_ADD_PLUGINS([pva])
+VLC_ADD_PLUGINS([avi])
+VLC_ADD_PLUGINS([asf])
+VLC_ADD_PLUGINS([mp4])
+VLC_ADD_PLUGINS([rawdv])
+VLC_ADD_PLUGINS([rawvid])
+VLC_ADD_PLUGINS([nsv])
+VLC_ADD_PLUGINS([real])
+VLC_ADD_PLUGINS([aiff])
+VLC_ADD_PLUGINS([mjpeg])
+VLC_ADD_PLUGINS([wav])
+VLC_ADD_PLUGINS([voc])
+VLC_ADD_PLUGINS([smf])
+VLC_ADD_PLUGINS([demuxdump])
+VLC_ADD_PLUGINS([flacsys])
+VLC_ADD_PLUGINS([tta])
+VLC_ADD_PLUGINS([subtitle])
+VLC_ADD_PLUGINS([vobsub])
+VLC_ADD_PLUGINS([a52sys])
+VLC_ADD_PLUGINS([dtssys])
+VLC_ADD_PLUGINS([au])
+VLC_ADD_PLUGINS([ty])
+VLC_ADD_PLUGINS([xa])
+VLC_ADD_PLUGINS([nuv])
+dnl Text codecs:
+VLC_ADD_PLUGINS([cvdsub])
+VLC_ADD_PLUGINS([svcdsub])
+VLC_ADD_PLUGINS([spudec])
+VLC_ADD_PLUGINS([subsdec])
+VLC_ADD_PLUGINS([subsusf])
+VLC_ADD_PLUGINS([t140])
+VLC_ADD_PLUGINS([dvbsub])
+VLC_ADD_PLUGINS([cc])
+dnl Video codecs:
+VLC_ADD_PLUGINS([cinepak])
+dnl Audio codecs:
+VLC_ADD_PLUGINS([araw])
+VLC_ADD_PLUGINS([adpcm])
+VLC_ADD_PLUGINS([mpeg_audio])
+VLC_ADD_PLUGINS([lpcm])
+VLC_ADD_PLUGINS([a52])
+VLC_ADD_PLUGINS([dts])
+VLC_ADD_PLUGINS([flac])
+dnl Video filters:
+VLC_ADD_PLUGINS([deinterlace])
+VLC_ADD_PLUGINS([invert])
+VLC_ADD_PLUGINS([adjust])
+VLC_ADD_PLUGINS([transform])
+VLC_ADD_PLUGINS([wave])
+VLC_ADD_PLUGINS([ripple])
+VLC_ADD_PLUGINS([psychedelic])
+VLC_ADD_PLUGINS([gradient])
+VLC_ADD_PLUGINS([motionblur])
+VLC_ADD_PLUGINS([rv32])
+VLC_ADD_PLUGINS([rotate])
+VLC_ADD_PLUGINS([noise])
+VLC_ADD_PLUGINS([grain])
+VLC_ADD_PLUGINS([extract])
+VLC_ADD_PLUGINS([sharpen])
+VLC_ADD_PLUGINS([seamcarving])
+VLC_ADD_PLUGINS([croppadd])
+VLC_ADD_PLUGINS([blendbench])
+VLC_ADD_PLUGINS([blend])
+VLC_ADD_PLUGINS([scale])
+VLC_ADD_PLUGINS([image])
+VLC_ADD_PLUGINS([vmem])
+VLC_ADD_PLUGINS([logo])
+VLC_ADD_PLUGINS([magnify])
+VLC_ADD_PLUGINS([puzzle])
+VLC_ADD_PLUGINS([colorthres])
+dnl Meta demuxers:
+VLC_ADD_PLUGINS([playlist])
+VLC_ADD_PLUGINS([export])
+VLC_ADD_PLUGINS([nsc])
+VLC_ADD_PLUGINS([xtag])
+dnl Channel mixing audio filters:
+VLC_ADD_PLUGINS([converter_fixed])
+VLC_ADD_PLUGINS([mono])
+VLC_ADD_PLUGINS([trivial_channel_mixer])
+dnl Resampling audio filters:
+VLC_ADD_PLUGINS([trivial_resampler])
+VLC_ADD_PLUGINS([ugly_resampler])
+dnl Audio mixers:
+VLC_ADD_PLUGINS([trivial_mixer])
+dnl Video chromas:
+VLC_ADD_PLUGINS([i420_rgb])
+VLC_ADD_PLUGINS([grey_yuv])
+dnl Video codecs:
+VLC_ADD_PLUGINS([rawvideo])
+dnl Access filters:
+VLC_ADD_PLUGINS([access_filter_timeshift])
+VLC_ADD_PLUGINS([access_filter_record])
+VLC_ADD_PLUGINS([access_filter_dump])
 VLC_ADD_PLUGINS([access_filter_bandwidth])
-VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
-VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
+dnl Packetizers:
+VLC_ADD_PLUGINS([packetizer_mpegvideo])
+VLC_ADD_PLUGINS([packetizer_h264])
+VLC_ADD_PLUGINS([packetizer_mpeg4video])
+VLC_ADD_PLUGINS([packetizer_mpeg4audio])
 VLC_ADD_PLUGINS([packetizer_vc1])
 
 ALIASES="${ALIASES} cvlc"
@@ -1218,14 +1307,49 @@ VLC_ADD_PLUGINS([spatializer])
 AC_LANG_POP(C++)
 
 if test "${SYS}" != "mingwce"; then
-  VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record access_filter_dump])
-  VLC_ADD_PLUGINS([gestures rc telnet hotkeys showintf marq podcast shout sap fake folder])
-  VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop erase bluescreen alphamask gaussianblur])
-  VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga i422_i420 yuy2_i422 yuy2_i420 chroma_chain])
-  VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
-  VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
-  VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq])
-  VLC_ADD_PLUGINS([converter_float a52tospdif dtstospdif audio_format])
+  VLC_ADD_PLUGINS([gestures])
+  VLC_ADD_PLUGINS([rc])
+  VLC_ADD_PLUGINS([telnet])
+  VLC_ADD_PLUGINS([hotkeys])
+  VLC_ADD_PLUGINS([showintf])
+  VLC_ADD_PLUGINS([marq])
+  VLC_ADD_PLUGINS([podcast])
+  VLC_ADD_PLUGINS([shout])
+  VLC_ADD_PLUGINS([sap])
+  VLC_ADD_PLUGINS([fake])
+  VLC_ADD_PLUGINS([folder])
+  VLC_ADD_PLUGINS([rss])
+  VLC_ADD_PLUGINS([mosaic])
+  VLC_ADD_PLUGINS([wall])
+  VLC_ADD_PLUGINS([motiondetect])
+  VLC_ADD_PLUGINS([clone])
+  VLC_ADD_PLUGINS([crop])
+  VLC_ADD_PLUGINS([erase])
+  VLC_ADD_PLUGINS([bluescreen])
+  VLC_ADD_PLUGINS([alphamask])
+  VLC_ADD_PLUGINS([gaussianblur])
+  VLC_ADD_PLUGINS([i420_yuy2])
+  VLC_ADD_PLUGINS([i422_yuy2])
+  VLC_ADD_PLUGINS([i420_ymga])
+  VLC_ADD_PLUGINS([i422_i420])
+  VLC_ADD_PLUGINS([yuy2_i422])
+  VLC_ADD_PLUGINS([yuy2_i420])
+  VLC_ADD_PLUGINS([chroma_chain])
+  VLC_ADD_PLUGINS([aout_file])
+  VLC_ADD_PLUGINS([linear_resampler])
+  VLC_ADD_PLUGINS([bandlimited_resampler])
+  VLC_ADD_PLUGINS([float32_mixer])
+  VLC_ADD_PLUGINS([spdif_mixer])
+  VLC_ADD_PLUGINS([simple_channel_mixer])
+  VLC_ADD_PLUGINS([dolby_surround_decoder])
+  VLC_ADD_PLUGINS([headphone_channel_mixer])
+  VLC_ADD_PLUGINS([normvol])
+  VLC_ADD_PLUGINS([equalizer])
+  VLC_ADD_PLUGINS([param_eq])
+  VLC_ADD_PLUGINS([converter_float])
+  VLC_ADD_PLUGINS([a52tospdif])
+  VLC_ADD_PLUGINS([dtstospdif])
+  VLC_ADD_PLUGINS([audio_format])
   ALIASES="${ALIASES} rvlc"
 fi
 
@@ -1233,9 +1357,14 @@ dnl
 dnl Some plugins aren't useful on some platforms
 dnl
 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
-    VLC_ADD_PLUGINS([screensaver motion])
+    VLC_ADD_PLUGINS([screensaver])
+    VLC_ADD_PLUGINS([motion])
+    VLC_ADD_PLUGINS([dynamicoverlay])
 elif test "${SYS}" != "mingwce"; then
-    VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
+    VLC_ADD_PLUGINS([ntservice])
+    VLC_ADD_PLUGINS([access_smb])
+    VLC_ADD_PLUGINS([dmo])
+    VLC_ADD_PLUGINS([msn])
     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
 else
     VLC_ADD_PLUGINS([win32text])
@@ -1248,20 +1377,27 @@ fi
 dnl
 dnl  Accelerated modules
 dnl
-MMX_MODULES="memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx"
-#MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
-MMXEXT_MODULES="memcpymmxext"
-#MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
-THREEDNOW_MODULES="memcpy3dn"
-SSE_MODULES=""
-SSE2_MODULES="i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2"
-ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
-#ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
-
-dnl  Check for fully workin MMX intrinsics
+AC_ARG_WITH(,[])
+AC_ARG_WITH(,[Optimization options:])
+
+dnl  Check for fully working 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_ARG_ENABLE(mmx,
+[  --disable-mmx       disable MMX optimizations (default auto)],,[
+  case "${host_cpu}" in
+    i?86|x86_64)
+      enable_mmx="yes"
+      ;;
+    *)
+      enable_mmx="no"
+      ;;
+  esac
+])
+AS_IF([test "${enable_mmx}" != "no"], [
+  ARCH="${ARCH} mmx"
+
+  AC_CACHE_CHECK([if $CC groks MMX intrinsics],
     [ac_cv_c_mmx_intrinsics],
     [CFLAGS="${CFLAGS_save} -O -mmmx"
      AC_TRY_COMPILE([#include <mmintrin.h>
@@ -1278,15 +1414,57 @@ AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
                      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([${MMX_MODULES}],[-mmmx])
-fi
+  AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
+    AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
+              [Define to 1 if MMX intrinsics are available.])
+    VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
+  ])
+
+  AC_CACHE_CHECK([if $CC groks MMX inline assembly],
+    [ac_cv_mmx_inline],
+    [CFLAGS="${CFLAGS_save}"
+     AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
+                    ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
+  AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
+    AC_DEFINE(CAN_COMPILE_MMX, 1,
+              [Define to 1 inline MMX assembly is available.])
+    VLC_ADD_PLUGINS([memcpymmx])
+    VLC_ADD_PLUGINS([i420_rgb_mmx])
+    VLC_ADD_PLUGINS([i420_yuy2_mmx])
+    VLC_ADD_PLUGINS([i422_yuy2_mmx])
+    VLC_ADD_PLUGINS([i420_ymga_mmx])
+  ])
+
+  AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
+    [ac_cv_mmxext_inline],
+    [CFLAGS="${CFLAGS_save}"
+     AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
+                    ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
+  AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
+    AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
+              [Define to 1 if MMX EXT inline assembly is available.])
+    VLC_ADD_PLUGINS([memcpymmxext])
+  ])
+])
 
 dnl  Check for fully workin SSE2 intrinsics
 dnl  We need support for -mmmx, we need <emmintrin.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 SSE2 intrinsics],
+AC_ARG_ENABLE(sse,
+[  --disable-sse       disable SSE (1 and 2) optimizations (default auto)],, [
+  case "${host_cpu}" in
+    i686|x86_64)
+      enable_sse=yes
+      ;;
+    *)
+      enable_sse=no
+      ;;
+  esac
+])
+AS_IF([test "${enable_sse}" != "no"], [
+  ARCH="${ARCH} sse sse2"
+
+  AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
     [ac_cv_c_sse2_intrinsics],
     [CFLAGS="${CFLAGS_save} -O -msse2"
      AC_TRY_COMPILE([#include <emmintrin.h>
@@ -1303,83 +1481,77 @@ AC_CACHE_CHECK([if \$CC groks SSE2 intrinsics],
                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
                     [ac_cv_c_sse2_intrinsics=yes],
                     [ac_cv_c_sse2_intrinsics=no])])
-if test "${ac_cv_c_sse2_intrinsics}" != "no"; then
-  AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, Define if SSE2 intrinsics are available.)
-  VLC_ADD_CFLAGS([${SSE2_MODULES}],[-msse2])
-fi
-
-AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
-    [ac_cv_mmx_inline],
-    [CFLAGS="${CFLAGS_save}"
-     AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
-                    ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
-if test "${ac_cv_mmx_inline}" != "no"; then
-  AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
-  ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
-fi
-
-AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
-    [ac_cv_mmxext_inline],
-    [CFLAGS="${CFLAGS_save}"
-     AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
-                    ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
-if test "${ac_cv_mmxext_inline}" != "no"; then
-  AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
-  ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
-fi
-
-AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
-    [ac_cv_3dnow_inline],
-    [CFLAGS="${CFLAGS_save}"
-     AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
-                    ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
-if test "${ac_cv_3dnow_inline}" != "no"; then
-  AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
-  ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
-fi
+  AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
+    AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
+              [Define to 1 if SSE2 intrinsics are available.])
+    VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
+  ])
 
-AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
+  AC_CACHE_CHECK([if $CC groks SSE inline assembly],
     [ac_cv_sse_inline],
     [CFLAGS="${CFLAGS_save}"
      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
-if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"; then
-  AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
-  ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
-fi
+  AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
+    AC_DEFINE(CAN_COMPILE_SSE, 1,
+              [Define to 1 if SSE inline assembly is available.])
+  ])
 
-AC_CACHE_CHECK([if \$CC groks SSE2 inline assembly],
+  AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
     [ac_cv_sse2_inline],
     [CFLAGS="${CFLAGS_save}"
      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
-if test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"; then
-  AC_DEFINE(CAN_COMPILE_SSE2, 1, Define if \$CC groks SSE2 inline assembly.)
-  ACCEL_MODULES="${ACCEL_MODULES} ${SSE2_MODULES}"
-fi
+  AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
+    AC_DEFINE(CAN_COMPILE_SSE2, 1,
+              [Define to 1 if SSE2 inline assembly is available.])
+    VLC_ADD_PLUGINS([i420_rgb_sse2])
+    VLC_ADD_PLUGINS([i420_yuy2_sse2])
+    VLC_ADD_PLUGINS([i422_yuy2_sse2])
+  ])
+])
 
-if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
-AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
+AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
+    [ac_cv_3dnow_inline],
+    [CFLAGS="${CFLAGS_save}"
+     AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
+                    ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
+AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
+  AC_DEFINE(CAN_COMPILE_3DNOW, 1,
+            [Define to 1 if 3D Now! inline assembly is available.])
+  VLC_ADD_PLUGINS([memcpy3dn])
+])
+
+AC_ARG_ENABLE(altivec,
+[  --disable-altivec       disable AltiVec optimizations (default auto)],, [
+  AS_IF([test "${host_cpu}" = "powerpc"],
+        [enable_altivec=yes], [enable_altivec=no])
+])
+AS_IF([test "${enable_altivec}" = "yes"], [
+  ARCH="${ARCH} altivec";
+  AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
     [ac_cv_altivec_inline],
     [CFLAGS="${CFLAGS_save}"
      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
-         ac_cv_altivec_inline=yes,
+         ac_cv_altivec_inline="yes",
          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
             [ac_cv_altivec_inline="-Wa,-m7400"],
             ac_cv_altivec_inline=no)
          ])])
-if test "${ac_cv_altivec_inline}" != "no"; then
-  AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
-  if test "${ac_cv_altivec_inline}" != "yes"; then
-    VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
-    VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
-    VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
-    VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
-    VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
-  fi
-  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
-fi
+  AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
+    AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
+              [Define to 1 if AltiVec inline assembly is available.])
+    AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
+      VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
+      VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
+      VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
+      VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
+      VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
+    ])
+    VLC_ADD_PLUGINS([memcpyaltivec])
+    VLC_ADD_PLUGINS([i420_yuy2_altivec])
+  ])
 
 dnl The AltiVec C extensions
 dnl
@@ -1391,7 +1563,7 @@ 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_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"
@@ -1427,42 +1599,33 @@ AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
      ])
    CFLAGS="${CFLAGS_save}"
   ])
+  AS_IF([test "${ac_cv_c_altivec}" != "no"], [
+    CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
+  ])
 
-if test "${ac_cv_c_altivec}" != "no"; then
-  CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
-fi
-
-AS_IF( test "${enable_altivec}" != "no",
-[
   AC_CHECK_HEADERS(altivec.h)
   CPPFLAGS="${CPPFLAGS_save}"
   
-  if test "${ac_cv_c_altivec}" != "no"; then
-    AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
+  AS_IF([test "${ac_cv_c_altivec}" != "no"], [
+    AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
+              [Define to 1 if C AltiVec extensions are available.])
     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
-    if test "${ac_cv_altivec_inline}" = "no"; then
-      ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
-    fi
-  fi
-],[
-  CPPFLAGS="${CPPFLAGS_save}"
-])
+    VLC_ADD_PLUGINS([memcpyaltivec])
+    VLC_ADD_PLUGINS([i420_yuy2_altivec])
+  ])
 
-AC_CACHE_CHECK([if linker needs -framework vecLib],
+  AC_CACHE_CHECK([if linker needs -framework vecLib],
     [ac_cv_ld_altivec],
     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
      LDFLAGS="${LDFLAGS_save}"
     ])
-if test "${ac_cv_ld_altivec}" != "no"; then
-  VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
-fi
-fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
-
-AC_ARG_WITH(,[])
-AC_ARG_WITH(,[Optimization options:])
+  AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
+    VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
+  ])
+])
 
 dnl
 dnl  Special arch tuning
@@ -1502,24 +1665,6 @@ AS_IF([test "${CFLAGS_TUNING}"],
     CFLAGS="${CFLAGS_save}"
 ])
 
-dnl
-dnl  x86 accelerations
-dnl
-AC_ARG_ENABLE(mmx,
-[  --disable-mmx       disable MMX optimizations (default enabled on x86)],
-[ if test "${enable_mmx}" = "yes"; then ARCH="${ARCH} mmx";
-    VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
-[ if test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "x86" -o "${host_cpu}" = "i386" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "x86_64"; then
-    ARCH="${ARCH} mmx"
-    VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
-
-AC_ARG_ENABLE(sse,
-[  --disable-sse       disable SSE (1 and 2) optimizations (default enabled on i686 and x86_64)],
-[ if test "${enable_sse}" = "yes"; then ARCH="${ARCH} sse sse2";
-    VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
-[ if test "${host_cpu}" = "i686" -o "${host_cpu}" = "x86_64"; then ARCH="${ARCH} sse sse2";
-    VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
-
 dnl
 dnl  Memory usage
 dnl
@@ -1542,16 +1687,6 @@ if test "${enable_optimizations}" != "no"; then
    fi
 fi
 
-dnl
-dnl  AltiVec acceleration
-dnl
-AC_ARG_ENABLE(altivec,
-[  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
-[ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
-    VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
-[ if test "${host_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
-    VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
-
 dnl
 dnl  Debugging mode
 dnl
@@ -1592,15 +1727,37 @@ AC_ARG_ENABLE(sout,
   [  --enable-sout           Stream output modules (default enabled)])
 if test "${enable_sout}" != "no"
 then
-  VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
-  VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
+  dnl Access outputs:
+  VLC_ADD_PLUGINS([access_output_dummy])
+  VLC_ADD_PLUGINS([access_output_udp])
+  VLC_ADD_PLUGINS([access_output_file])
+  VLC_ADD_PLUGINS([access_output_http])
+  dnl Muxers:
+  VLC_ADD_PLUGINS([mux_ps])
+  VLC_ADD_PLUGINS([mux_avi])
+  VLC_ADD_PLUGINS([mux_mp4])
+  VLC_ADD_PLUGINS([mux_asf])
+  VLC_ADD_PLUGINS([mux_dummy])
+  VLC_ADD_PLUGINS([mux_wav])
+  VLC_ADD_PLUGINS([mux_mpjpeg])
+  dnl Packetizers (FIXME: why are the others outside --enable-sout??):
   VLC_ADD_PLUGINS([packetizer_copy])
-
-  VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
-  VLC_ADD_PLUGINS([stream_out_duplicate stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge stream_out_autodel])
+  dnl Stream outputs:
+  VLC_ADD_PLUGINS([stream_out_dummy])
+  VLC_ADD_PLUGINS([stream_out_standard])
+  VLC_ADD_PLUGINS([stream_out_es])
+  VLC_ADD_PLUGINS([stream_out_rtp])
+  VLC_ADD_PLUGINS([stream_out_description])
+  VLC_ADD_PLUGINS([stream_out_duplicate])
+  VLC_ADD_PLUGINS([stream_out_display])
+  VLC_ADD_PLUGINS([stream_out_transcode])
+  VLC_ADD_PLUGINS([stream_out_bridge])
+  VLC_ADD_PLUGINS([stream_out_mosaic_bridge])
+  VLC_ADD_PLUGINS([stream_out_autodel])
   VLC_ADD_PLUGINS([stream_out_gather])
 #  VLC_ADD_PLUGINS([stream_out_transrate])
-#  VLC_ADD_PLUGINS([rtcp])
+  dnl Misc:
+  VLC_ADD_PLUGINS([vod_rtsp])
   VLC_ADD_PLUGINS([profile_parser])
 
   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
@@ -1632,22 +1789,22 @@ then
     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
     PKG_CHECK_MODULES(LUA, lua >= 5.1,
       [ have_lua=yes ],
-      [ 
+      [
         have_lua=yes
-        AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h], 
-         [],  
+        AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
+          [],
           [ have_lua=no ] )
-       AC_CHECK_LIB(  lua5.1 , luaL_newstate, 
+        AC_CHECK_LIB(  lua5.1 , luaL_newstate,
           [LUA_LIBS="-llua5.1"],
-         AC_CHECK_LIB( lua51 , luaL_newstate, 
+          AC_CHECK_LIB( lua51 , luaL_newstate,
             [LUA_LIBS="-llua51"],
-                 AC_CHECK_LIB( lua , luaL_newstate, 
-                   [LUA_LIBS="-llua"],
-             [ have_lua=no
+            AC_CHECK_LIB( lua , luaL_newstate,
+              [LUA_LIBS="-llua"],
+              [ have_lua=no
                 AC_MSG_WARN([lua >= 5.1 not found!])
               ])
-           )
-         )
+          )
+        )
       ])
     ])
   if test "x${have_lua}" = "xyes" ;  then
@@ -1657,6 +1814,7 @@ then
      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
   fi
 fi
+AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
 
 dnl
 dnl HTTP daemon
@@ -1668,6 +1826,7 @@ then
   VLC_ADD_PLUGINS([http])
   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
 fi
+AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
 
 dnl
 dnl VideoLAN manager
@@ -2497,7 +2656,8 @@ then
   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
     AC_MSG_RESULT(yes)
-    VLC_ADD_PLUGINS([vcd cdda])
+    VLC_ADD_PLUGINS([vcd])
+    VLC_ADD_PLUGINS([cdda])
   ],[
     AC_MSG_RESULT(no)
   ])
@@ -2505,7 +2665,8 @@ then
   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
     AC_MSG_RESULT(yes)
-    VLC_ADD_PLUGINS([vcd cdda])
+    VLC_ADD_PLUGINS([vcd])
+    VLC_ADD_PLUGINS([cdda])
     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
   ],[
     AC_MSG_RESULT(no)
@@ -2514,7 +2675,8 @@ then
   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
     AC_MSG_RESULT(yes)
-    VLC_ADD_PLUGINS([vcd cdda])
+    VLC_ADD_PLUGINS([vcd])
+    VLC_ADD_PLUGINS([cdda])
     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
   ],[
     AC_MSG_RESULT(no)
@@ -2522,12 +2684,14 @@ then
 
   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
   then
-    VLC_ADD_PLUGINS([vcd cdda])
+    VLC_ADD_PLUGINS([vcd])
+    VLC_ADD_PLUGINS([cdda])
   fi
 
   if test "${SYS}" = "darwin"
   then
-    VLC_ADD_PLUGINS([vcd cdda])
+    VLC_ADD_PLUGINS([vcd])
+    VLC_ADD_PLUGINS([cdda])
     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
   fi
@@ -2577,9 +2741,11 @@ AC_ARG_ENABLE(screen,
   [  --enable-screen         Screen capture support (default enabled)])
 if test "${enable_screen}" != "no"; then
   if test "${SYS}" = "darwin"; then
-    AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
-      VLC_ADD_PLUGINS([screen])
-      VLC_ADD_LDFLAGS([screen],[-Wl,-framework,ApplicationServices])
+    AC_CHECK_HEADERS(OpenGL/gl.h, [
+      AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
+        VLC_ADD_PLUGINS([screen])
+        VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
+      ])
     ])
   elif test "${SYS}" = "mingw32"; then
     VLC_ADD_PLUGINS([screen])
@@ -3004,9 +3170,9 @@ dnl Those options have to be here because the .pc can be bogus for ffmpeg previo
         VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
      else
-       dnl  The given libavcodec wasn't built with --enable-pp
+       dnl  The given libavcodec wasn't built with --enable-postproc
        AC_MSG_RESULT(no)
-       AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-pp])
+       AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-postproc])
      fi
    fi
    dnl  Use a custom libffmpeg
@@ -3017,11 +3183,28 @@ dnl Those options have to be here because the .pc can be bogus for ffmpeg previo
    PKG_CONFIG_LIBDIR_save="$PKG_CONFIG_LIBDIR"
    export PKG_CONFIG_PATH=""
    export PKG_CONFIG_LIBDIR="${real_ffmpeg_tree}"
+   VLC_SAVE_FLAGS
 
-   PKG_CHECK_MODULES( [FFMPEG],[libavcodec libavformat libpostproc], [
+   PKG_CHECK_MODULES( [FFMPEG],[libavformat libavcodec libpostproc], [
         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher], ${FFMPEG_CFLAGS})
         VLC_ADD_LIBS([ffmpeg stream_out_switcher], ${FFMPEG_LIBS})]
-      ,[])
+        AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
+      )
+   AS_IF([ test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"],[
+     AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.])
+     PKG_CHECK_MODULES( [SWSCALE],[libswscale], [
+     VLC_ADD_LIBS([ffmpeg],[${SWSCALE_LIBS}])
+     VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[${SWSCALE_CFLAGS}])])
+     ])
+   CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS} ${SWSCALE_CFLAGS}"
+   CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS} ${SWSCALE_CFLAGS}"
+   
+   AC_CHECK_HEADERS(ffmpeg/avcodec.h libavcodec/avcodec.h)
+   AC_CHECK_HEADERS(ffmpeg/avformat.h libavformat/avformat.h)
+   AC_CHECK_HEADERS(ffmpeg/avutil.h libavutil/avutil.h)
+   AC_CHECK_HEADERS([ffmpeg/swscale.h libswscale/swscale.h])
+
+   VLC_RESTORE_FLAGS
    AS_IF([test -n "${PKG_CONFIG_PATH_save}"],[
          export PKG_CONFIG_PATH="${PKG_CONFIG_PATH_save}"
    ],[
@@ -3038,17 +3221,7 @@ dnl Those options have to be here because the .pc can be bogus for ffmpeg previo
      VLC_ADD_BUILTINS([stream_out_switcher])
    fi
 
-   if test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"; then
-     AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.])
-     VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libswscale ${real_ffmpeg_tree}/libswscale/libswscale.a])
-     VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libswscale])
-   fi
 
-    if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
-      AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
-      VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat -lavformat -lz])
-      VLC_ADD_CPPFLAGS([ffmpeg],[-I${real_ffmpeg_tree}/libavformat])
-    fi
 else
 
 
@@ -3118,7 +3291,7 @@ dnl Trying with pkg-config
 
       AC_CHECK_LIB(postproc, pp_postprocess, [
         VLC_ADD_LIBS([ffmpeg],[-lpostproc])],
-      AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]),
+      AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-postproc.]),
         [$LDAVUTIL])
 
       AC_CHECK_LIB(avformat, av_open_input_stream, [
@@ -3156,9 +3329,9 @@ then
       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
     fi
     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
-      dnl  The given libavcodecaltivec wasn't built with --enable-pp
+      dnl  The given libavcodecaltivec wasn't built with --enable-postproc
       AC_MSG_RESULT(no)
-      AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
+      AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-postproc])
     fi
     dnl  Use a custom libffmpeg
     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
@@ -3718,12 +3891,14 @@ AC_CHECK_HEADERS(png.h, [
   AC_CHECK_LIB(png, png_set_rows, [
     VLC_ADD_LIBS([png],[-lpng -lz])
     VLC_ADD_PLUGINS([png])
-    VLC_ADD_PLUGINS([osdmenu osd_parser])
+    VLC_ADD_PLUGINS([osdmenu])
+    VLC_ADD_PLUGINS([osd_parser])
     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
     [],[-lz])
-  LDFLAGS="${LDFLAGS_save}"
+    LDFLAGS="${LDFLAGS_save}"
   ])
 fi
+AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
 
 dnl
 dnl H264 encoder plugin (using libx264)
@@ -3801,7 +3976,7 @@ dnl
 AC_ARG_ENABLE(zvbi,
   [  --enable-zvbi           VBI (inc. Teletext) decoding support with libzvbi (default enabled)])
 AC_ARG_ENABLE(telx,
-  [  --enable-telx,          Teletext decoding module (conflicting with zvbi) (default disabled)])
+  [  --enable-telx           Teletext decoding module (conflicting with zvbi) (default disabled)])
 
 AS_IF( [test "${enable_zvbi}" != "no"],[
   AS_IF( [test "${enable_telx}" = "yes"],[
@@ -4036,12 +4211,14 @@ dnl
       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
+      VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
       ac_cv_have_xf86vidmode="yes"
     ],[
       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
         VLC_ADD_LIBS([x11],[-lXxf86vm])
         VLC_ADD_LIBS([glx],[-lXxf86vm])
+        VLC_ADD_LIBS([xvmc],[-lXxf86vm])
         ac_cv_have_xf86vidmode="yes"
       ])
     ])
@@ -4129,7 +4306,8 @@ then
   then
     # SDL on Darwin is heavily patched and can only run SDL_image
     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
-      VLC_ADD_PLUGINS([vout_sdl aout_sdl])
+      VLC_ADD_PLUGINS([vout_sdl])
+      VLC_ADD_PLUGINS([aout_sdl])
     fi
     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
@@ -4184,9 +4362,9 @@ AC_ARG_ENABLE(fribidi,
   [  --enable-fribidi        fribidi support (default enabled)])
 if test "${enable_freetype}" != "no"
 then
-   PKG_CHECK_MODULES(FREETYPE, freetype2,[  
+   PKG_CHECK_MODULES(FREETYPE, freetype2,[
       VLC_ADD_PLUGINS([freetype])
-      have_freetype=yes     
+      have_freetype=yes
       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
       if test "${SYS}" = "mingw32"; then
@@ -4378,7 +4556,8 @@ then
     if test -z "${with_directx}"
     then
       AC_CHECK_HEADERS(ddraw.h,
-      [ VLC_ADD_PLUGINS([vout_directx aout_directx])
+      [ VLC_ADD_PLUGINS([vout_directx])
+        VLC_ADD_PLUGINS([aout_directx])
         VLC_ADD_LIBS([vout_directx],[-lgdi32])
       ])
       AC_CHECK_HEADERS(GL/gl.h,
@@ -4393,7 +4572,8 @@ then
       AC_MSG_CHECKING(for directX headers in ${with_directx})
       if test -f ${with_directx}/ddraw.h
       then
-        VLC_ADD_PLUGINS([vout_directx aout_directx])
+        VLC_ADD_PLUGINS([vout_directx])
+       VLC_ADD_PLUGINS([aout_directx])
         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
         VLC_ADD_LIBS([vout_directx],[-lgdi32])
         AC_MSG_RESULT(yes)
@@ -4609,7 +4789,8 @@ if test "${enable_wingdi}" != "no"; then
     VLC_ADD_LIBS([wingdi],[-lgdi32])
   fi
   if test "${SYS}" = "mingwce"; then
-    VLC_ADD_PLUGINS([wingdi wingapi])
+    VLC_ADD_PLUGINS([wingdi])
+    VLC_ADD_PLUGINS([wingapi])
   fi
 fi
 
@@ -4776,7 +4957,8 @@ AC_ARG_ENABLE(jack,
 
 AS_IF([test "${enable_jack}" != "no"], [
   AC_CHECK_HEADERS(jack/jack.h, [
-    VLC_ADD_PLUGINS([access_jack jack])
+    VLC_ADD_PLUGINS([access_jack])
+    VLC_ADD_PLUGINS([jack])
     VLC_ADD_LIBS([access_jack jack],[-ljack])
   ],[AC_MSG_ERROR([cannot find JACK headers])])
 ])
@@ -4931,7 +5113,7 @@ if test "${enable_skins2}" = "yes" ||
     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
   fi fi fi
 fi
-
+AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
 
 dnl dnl
 dnl dnl  Gtk+ module
@@ -5020,6 +5202,7 @@ then
     NEED_GTK2_MAIN=yes
   fi
 fi
+AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
 
 dnl dnl
 dnl dnl  Gnome module
@@ -5196,9 +5379,9 @@ AS_IF([test "${enable_qt4}" != "no" &&
       AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
       ],
       AS_IF([test "${enable_qt4}" = "yes"],[
-    AC_MSG_ERROR(QT4 library not found)
+        AC_MSG_ERROR(QT4 library not found)
       ],[
-    AC_MSG_WARN(QT4 library not found)
+        AC_MSG_WARN(QT4 library not found)
       ])
     )
 ])
@@ -5207,17 +5390,21 @@ AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
 dnl
 dnl  WinCE GUI module
 dnl
-if test "${SYS}" = "mingwce"; then
-  VLC_ADD_BUILTINS([wince])
-  VLC_ADD_CXXFLAGS([wince],[])
-  VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
-  dnl Gross hack
-  VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
-elif test "${SYS}" = "mingw32"; then
-  VLC_ADD_CXXFLAGS([wince],[])
-  VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
-  dnl Gross hack
-  VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
+AC_ARG_ENABLE(wince,
+  [  --enable-wince          Windows CE interface (default enabled with MinGW)])
+if test "${enable_wince}" != "no"; then
+  if test "${SYS}" = "mingwce"; then
+    VLC_ADD_BUILTINS([wince])
+    VLC_ADD_CXXFLAGS([wince],[])
+    VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
+    dnl Gross hack
+    VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
+  elif test "${SYS}" = "mingw32"; then
+    VLC_ADD_CXXFLAGS([wince],[])
+    VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
+    dnl Gross hack
+    VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
+  fi
 fi
 
 dnl
@@ -5378,11 +5565,26 @@ AC_ARG_ENABLE(ncurses,
         VLC_ADD_LIBS([ncurses],[-lncursesw])
         ALIASES="${ALIASES} nvlc"
         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
+        AC_CHECK_LIB(ncursesw, tgetent, [],
+          AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
+            [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
+              [AS_IF([test "x${enable_ncurses}" != "x"],
+                [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
+               )])])
+            ]
+          )
+        )
         ],
         [AC_CHECK_LIB( ncurses, mvprintw,
           [VLC_ADD_PLUGINS([ncurses])
           ALIASES="${ALIASES} nvlc"
-          VLC_ADD_LIBS([ncurses],[-lncurses])],
+          VLC_ADD_LIBS([ncurses],[-lncurses])
+          AC_CHECK_LIB(ncurses, tgetent, [],
+            [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
+              [AS_IF([test "x${enable_ncurses}" != "x"],
+                [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
+            )]
+          )],
           [AS_IF([test "x${enable_ncurses}" != "x"], [
             AC_MSG_ERROR([libncurses not found])])]
         )]
@@ -5707,6 +5909,15 @@ AS_IF([test "${enable_loader}" = "yes"],
     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la])
   ])
 
+AC_ARG_WITH(,[Components:])
+
+dnl
+dnl  the VLC binary
+dnl
+AC_ARG_ENABLE(vlc,
+  [  --enable-vlc            build the VLC media player (default enabled)])
+AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
+
 dnl
 dnl  Microsoft ActiveX support
 dnl
@@ -5959,11 +6170,17 @@ dnl  Mediacontrol Python bindings
 dnl
 AC_ARG_ENABLE(python-bindings,
   [  --enable-python-bindings Enable Python bindings (default disabled)])
-dnl TODO: look for python dev headers
-AS_IF([test "${enable_python_bindings}" = "yes"],
-      PLUGINS_BINDINGS="${PLUGINS_BINDINGS} python"
-     ) 
 
+if test "${enable_python_bindings}" = "yes"; then
+  AC_PATH_PROG(PYTHON_CONFIG, python-config, no)
+  CFLAGS="${CFLAGS_save} `${PYTHON_CONFIG} --cflags`"
+  AC_CHECK_HEADER([Python.h],
+    PLUGINS_BINDINGS="${PLUGINS_BINDINGS} python",
+    AC_MSG_ERROR([You have to install python-dev to build the bindings]),
+    []
+  )
+  CFLAGS="${CFLAGS_save}"
+fi
 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"])
 
 dnl
@@ -5973,17 +6190,16 @@ AC_ARG_ENABLE(java-bindings,
   [  --enable-java-bindings  Enable Java bindings (default disabled)])
 if test "${enable_java_bindings}" = "yes"
 then
-  AS_IF([test "x${JAVA_HOME}" == "x"],
-       [AC_MSG_ERROR([Please set the JAVA_HOME variable to your JDK environment])])
-  AC_PROG_JAVAC
-  AC_PROG_JAVA
-  PLUGINS_BINDINGS="${PLUGINS_BINDINGS} java"
-  if test "${JAVAC}" == "javac${EXEEXT}"
-  then
-    JAVAC="javac${EXEEXT} -cp ./ "
-  fi
+        echo ""
+        echo "****** WARNING **** WARNING ***** WARNING *************"
+        echo "*** To compile the java bindings go to the "
+        echo "*** bindings/java folder and run mvn install. "
+       echo "*** You need maven2 installed. "
+       echo "*** This configuration will continue, so you will be "
+       echo "*** able to compile VideoLAN as usual. "
+        echo "*******************************************************"
+        echo ""
 fi
-AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"])
 
 dnl
 dnl  test plugins
@@ -6000,7 +6216,10 @@ then
   dnl  this one is needed until automake knows what to do
   VLC_ADD_LIBS([test3],[-lobjc])
 
-  VLC_ADD_PLUGINS([${TESTS}])
+  VLC_ADD_PLUGINS([test1])
+  VLC_ADD_PLUGINS([test2])
+  VLC_ADD_PLUGINS([test3])
+  VLC_ADD_PLUGINS([test4])
 fi
 
 dnl
@@ -6078,12 +6297,11 @@ AS_IF([test "${enable_shared}" = "no"], [
 AS_IF([test "${plugin_support}" != "no"], [
   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
 ])
-
 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
 
 dnl Temporary(?) hack for plugins/builtins transition
-VLC_ADD_PLUGINS([${BUILTINS}])
-BUILTINS=""
+dnl VLC_ADD_PLUGINS([${BUILTINS}])
+dnl BUILTINS=""
 
 dnl
 dnl Pic and shared libvlc stuff
@@ -6162,8 +6380,6 @@ AC_CONFIG_FILES([
   projects/activex/Makefile
   projects/activex/axvlc.inf
   bindings/Makefile
-  bindings/java/Makefile
-  bindings/java/src/Makefile
   bindings/python/Makefile
   doc/Makefile
   extras/package/ipkg/Makefile
@@ -6175,6 +6391,7 @@ AC_CONFIG_FILES([
   po/Makefile.in
   share/Makefile
   src/Makefile
+  test/Makefile
 ])
 
 AC_CONFIG_FILES([
@@ -6245,6 +6462,7 @@ AC_CONFIG_FILES([
   modules/video_chroma/Makefile
   modules/video_filter/Makefile
   modules/video_filter/atmo/Makefile
+  modules/video_filter/dynamicoverlay/Makefile
   modules/video_output/Makefile
   modules/video_output/msw/Makefile
   modules/video_output/qte/Makefile
@@ -6282,9 +6500,9 @@ echo exit \$ERROR >>compile
 chmod a+x compile
 
 printf "
-vlc configuration
+libvlc configuration
 --------------------
-vlc version           : ${VERSION}
+version               : ${VERSION}
 system                : ${SYS}
 architecture          : ${ARCH}
 build flavour         : "
@@ -6293,9 +6511,13 @@ test "${enable_cprof}" = "yes" && printf "cprof "
 test "${enable_gprof}" = "yes" && printf "gprof "
 test "${enable_optimizations}" = "yes" && printf "optim "
 test "${enable_release}" = "yes" && printf "release " || printf "devel "
-echo "
-vlc aliases           :${ALIASES}
-plugins/bindings      :${PLUGINS_BINDINGS}
+echo ""
+if test "${enable_vlc}" != "no"; then
+echo "vlc aliases           :${ALIASES}"
+else
+echo "build vlc executable  : no"
+fi
+echo "plugins/bindings      :${PLUGINS_BINDINGS}
 
 You can check which modules have been enabled 
 with \`./vlc-config --list plugin'.