]> git.sesse.net Git - vlc/blobdiff - configure.ac
Qt: enable the recents menu again after adding an element
[vlc] / configure.ac
index 7e6ab4ed371a0004a19b1919f14b13da31b1757e..4f37ad26adb89bdc8093e08f5d6329e68e7bb126 100644 (file)
@@ -1,19 +1,19 @@
 dnl Autoconf settings for vlc
 
-AC_COPYRIGHT([Copyright 2002-2011 the VideoLAN team])
+AC_COPYRIGHT([Copyright 2002-2011 VLC authors and VideoLAN])
 
-AC_INIT(vlc, 1.2.0-pre1)
+AC_INIT(vlc, 1.3.0-git)
 VERSION_MAJOR=1
-VERSION_MINOR=2
+VERSION_MINOR=3
 VERSION_REVISION=0
 VERSION_EXTRA=0
-VERSION_DEV=pre1
+VERSION_DEV=git
 
 PKGDIR="vlc"
 AC_SUBST(PKGDIR)
 
 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
-CODENAME="Twoflower"
+CODENAME="Rincewind"
 COPYRIGHT_YEARS="1996-2011"
 
 AC_CONFIG_SRCDIR(src/libvlc.c)
@@ -78,11 +78,6 @@ AC_C_CONST
 AC_C_INLINE
 AC_C_RESTRICT
 
-dnl
-dnl  Save *FLAGS
-dnl
-VLC_SAVE_FLAGS
-
 dnl Extend the --help string at the current spot.
 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
 
@@ -96,86 +91,6 @@ AS_IF([test -n "${with_binary_version}"],[
          [Binary specific version])
 ])
 
-dnl
-dnl  Check for the contrib directory
-dnl
-AC_ARG_WITH(contrib,
-  [AS_HELP_STRING([--with-contrib[=DIR]],
-    [search for 3rd party libraries in DIR/include and DIR/lib])
-])
-AC_MSG_CHECKING([for 3rd party libraries path])
-AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
-  CONTRIB_DIR="${srcdir}/contrib/${host}"
-  AS_IF([test ! -d "${CONTRIB_DIR}"], [
-    echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
-    CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
-    AS_IF([test ! -d "${CONTRIB_DIR}"], [
-      echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
-      CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
-      AS_IF([test ! -d "${CONTRIB_DIR}"], [
-        echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
-        CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
-        AS_IF([test ! -d "${CONTRIB_DIR}"], [
-          echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
-          CONTRIB_DIR=""
-          AC_MSG_RESULT([not found])
-        ])
-      ])
-    ])
-  ])
-], [
-  AS_IF([test "${with_contrib}" != "no"], [
-    CONTRIB_DIR="${with_contrib}"
-  ], [
-    CONTRIB_DIR=""
-    AC_MSG_RESULT([disabled])
-  ])
-])
-AS_IF([test -n "${CONTRIB_DIR}"], [
-  AS_IF([test -d "${CONTRIB_DIR}/lib"],[
-    CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
-  ], [
-    echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
-    CONTRIB_DIR=""
-    AC_MSG_RESULT([not usable])
-  ])
-
-])
-AS_IF([test -n "${CONTRIB_DIR}"], [
-  AC_MSG_RESULT([${CONTRIB_DIR}])
-  export PATH=${CONTRIB_DIR}/bin:$PATH
-  CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
-  CPPFLAGS_save="${CPPFLAGS_save} -I${CONTRIB_DIR}/include"
-  CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
-  CFLAGS_save="${CFLAGS_save} -I${CONTRIB_DIR}/include"
-  CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
-  CXXFLAGS_save="${CXXFLAGS_save} -I${CONTRIB_DIR}/include"
-  OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
-  OBJCFLAGS_save="${OBJCFLAGS_save} -I${CONTRIB_DIR}/include"
-  AS_IF([test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"], [
-    export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
-  ], [
-    export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
-  ])
-  LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
-  LDFLAGS_save="${LDFLAGS_save} -L${CONTRIB_DIR}/lib"
-
-  AS_IF([test "${SYS}" = "darwin"], [
-    export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
-    export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
-  ])
-], [
-  AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
-    AC_MSG_ERROR([Third party libraries not found!])
-  ])
-])
-AC_SUBST(CONTRIB_DIR)
-
-dnl
-dnl  Set default values
-dnl
-LDFLAGS_vlc="${LDFLAGS}"
-
 dnl
 dnl  Check the operating system
 dnl
@@ -189,24 +104,20 @@ case "${host_os}" in
     ;;
   bsdi*)
     SYS=bsdi
-    CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
+    CFLAGS="${CFLAGS} -pthread"
     VLC_ADD_LIBS([vcd cdda vcdx],[-ldvd])
     ;;
   *bsd*)
     SYS="${host_os}"
-    CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
+    CFLAGS="${CFLAGS} -pthread"
     case "${host_os}" in
       freebsd*)
-        CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
-        CPPFLAGS="${CPPFLAGS_save}"
-        LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
-        LDFLAGS="${LDFLAGS_save}"
+        CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
+        LDFLAGS="${LDFLAGS} -L/usr/local/lib"
         ;;
       openbsd*)
-        CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include -I/usr/X11R6/include"
-        CPPFLAGS="${CPPFLAGS_save}"
-        LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib -L/usr/X11R6/lib/"
-        LDFLAGS="${LDFLAGS_save}"
+        CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
+        LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
         ;;
     esac
     ;;
@@ -215,7 +126,7 @@ case "${host_os}" in
     dnl Force gcc "-arch" flag
     ARCH_flag=""
     case "${host}" in
-      i386*)
+      i?86*)
         ARCH_flag="-arch i386"
       ;;
       ppc64*)
@@ -230,88 +141,41 @@ case "${host_os}" in
     esac
 
     SYS=darwin
-    CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"; CFLAGS="${CFLAGS_save}"
-    CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"; CXXFLAGS="${CXXFLAGS_save}"
-    CPPFLAGS_save="${CPPFLAGS_save} ${ARCH_flag}"; CPPFLAGS="${CPPFLAGS_save}"
-    OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"; OBJCFLAGS="${OBJCFLAGS_save}"
-    LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names ${ARCH_flag}"; LDFLAGS="${LDFLAGS_save}"
+    CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
+    CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
+    CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
+    OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"
+    LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
     VLC_ADD_LIBS([mkv mp4 motion], [-Wl,-framework,IOKit,-framework,CoreFoundation])
     VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup])
     VLC_ADD_LIBS([avcodec avformat access_avio swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
     VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation])
-    AC_ARG_ENABLE(macosx-defaults,
-      AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration on Mac OS X (default enabled)]))
-    if test "x${enable_macosx_defaults}" != "xno"
-    then
-        echo ""
-        echo "Building with Mac OS X defaults:"
-        build_dir=`pwd`
-        echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
-        ac_default_prefix="${build_dir}/vlc_install_dir"
-        enable_faad="yes"
-        echo "  Assuming --enable-faad"
-        enable_flac="yes"
-        echo "  Assuming --enable-flac"
-        enable_theora="yes"
-        echo "  Assuming --enable-theora"
-        enable_shout="yes"
-        echo "  Assuming --enable-shout"
-        enable_vcdx="yes"
-        echo "  Assuming --enable-vcdx"
-        enable_caca="yes"
-        echo "  Assuming --enable-caca"
-        enable_ncurses="yes"
-        echo "  Assuming --enable-ncurses"
-        enable_twolame="yes"
-        echo "  Assuming --enable-twolame"
-        enable_realrtsp="yes"
-        echo "  Assuming --enable-realrtsp"
-        enable_libass="yes"
-        echo "  Assuming --enable-libass"
-
-        enable_skins2="no"
-        echo "  Assuming --disable-skins2"
-        enable_xcb="no"
-        echo "  Assuming --disable-xcb"
-    fi
+
     dnl
     dnl  Check for Mac OS X SDK settings
     dnl
     AC_ARG_WITH(macosx-sdk,
       [AS_HELP_STRING([--with-macosx-sdk=DIR],
         [compile using the SDK in DIR])])
-    if test "${with_macosx_sdk}" != "" ; then
-        CPP="${CPP} -isysroot ${with_macosx_sdk}"
-        CC="${CC} -isysroot ${with_macosx_sdk}"
-        CXX="${CXX} -isysroot ${with_macosx_sdk}"
-        OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
-        LD="${LD} -syslibroot ${with_macosx_sdk}"
-    else
-        echo "  No desired SDK version given, falling back to 10.5"
-        CPP="${CPP} -isysroot /Developer/SDKs/MacOSX10.5.sdk"
-        CC="${CC} -isysroot /Developer/SDKs/MacOSX10.5.sdk"
-        CXX="${CXX} -isysroot /Developer/SDKs/MacOSX10.5.sdk"
-        OBJC="${OBJC} -isysroot /Developer/SDKs/MacOSX10.5.sdk"
-        LD="${LD} -syslibroot /Developer/SDKs/MacOSX10.5.sdk"
-        with_macosx_version_min="10.5"
-        echo "  Assuming --with-macosx-version-min=10.5"
-    fi
+    test "${with_macosx_sdk}" = "" && with_macosx_sdk=/Developer/SDKs/MacOSX10.6.sdk
+    ! test -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
     AC_ARG_WITH(macosx-version-min,
       [AS_HELP_STRING([--with-macosx-version-min=VERSION],
         [compile for MacOS X VERSION and above])])
-    if test "${with_macosx_version_min}" != "" ; then
-        CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
-        CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
-        CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
-        OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
-        LD="${LD} -macosx_version_min=${with_macosx_version_min}"
-        CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
-        CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
-        OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
-        MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
-        export MACOSX_DEPLOYMENT_TARGET
+    if test "${with_macosx_version_min}" = "" ; then
+       with_macosx_version_min=10.5
     fi
+    MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
+    CPP="${CPP} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
+    CC="${CC} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
+    CXX="${CXX} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
+    OBJC="${OBJC} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
+    LD="${LD} -syslibroot ${with_macosx_sdk} -mmacosx_version_min=${with_macosx_version_min}"
+    CFLAGS="${CFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
+    CXXFLAGS="${CXXFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
+    OBJCFLAGS="${OBJCFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
+    export MACOSX_DEPLOYMENT_TARGET
     ;;
   *mingw32* | *cygwin* | *wince* | *mingwce*)
     AC_CHECK_TOOL(WINDRES, windres, :)
@@ -351,7 +215,7 @@ case "${host_os}" in
         dnl NSIS Installer prefix and WIN64
         dnl
         case "${host}" in
-            amd64*|i686-w64*|x86_64*)
+            amd64*|x86_64*)
                 HAVE_WIN64="1"
                 PROGRAMFILES="PROGRAMFILES64"
             ;;
@@ -383,7 +247,7 @@ case "${host_os}" in
     ;;
   *os2*)
     SYS=os2
-    LDFLAGS_save="${LDFLAGS_save} -Zomf -Zbin-files -Zargs-wild"; LDFLAGS="${LDFLAGS_save}"
+    LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild"
     ;;
   *)
     SYS="${host_os}"
@@ -398,7 +262,77 @@ AM_CONDITIONAL(HAVE_WINCE,   test "${SYS}" = "mingwce")
 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
 
 dnl
-dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
+dnl  Check for the contrib directory
+dnl
+AC_ARG_WITH(contrib,
+  [AS_HELP_STRING([--with-contrib[=DIR]],
+    [search for 3rd party libraries in DIR/include and DIR/lib])
+])
+AC_MSG_CHECKING([for 3rd party libraries path])
+AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
+  CONTRIB_DIR="${srcdir}/contrib/${host}"
+  AS_IF([test ! -d "${CONTRIB_DIR}"], [
+    echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
+    CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
+    AS_IF([test ! -d "${CONTRIB_DIR}"], [
+      echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
+      CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
+      AS_IF([test ! -d "${CONTRIB_DIR}"], [
+        echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
+        CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
+        AS_IF([test ! -d "${CONTRIB_DIR}"], [
+          echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
+          CONTRIB_DIR=""
+          AC_MSG_RESULT([not found])
+        ])
+      ])
+    ])
+  ])
+], [
+  AS_IF([test "${with_contrib}" != "no"], [
+    CONTRIB_DIR="${with_contrib}"
+  ], [
+    CONTRIB_DIR=""
+    AC_MSG_RESULT([disabled])
+  ])
+])
+AS_IF([test -n "${CONTRIB_DIR}"], [
+  AS_IF([test -d "${CONTRIB_DIR}/lib"],[
+    CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
+  ], [
+    echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
+    CONTRIB_DIR=""
+    AC_MSG_RESULT([not usable])
+  ])
+
+])
+AS_IF([test -n "${CONTRIB_DIR}"], [
+  AC_MSG_RESULT([${CONTRIB_DIR}])
+  export PATH=${CONTRIB_DIR}/bin:$PATH
+  CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
+  CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
+  CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
+  OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
+  AS_IF([test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"], [
+    export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
+  ], [
+    export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
+  ])
+  LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
+
+  AS_IF([test "${SYS}" = "darwin"], [
+    export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
+    export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
+  ])
+], [
+  AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
+    AC_MSG_ERROR([Third party libraries not found!])
+  ])
+])
+AC_SUBST(CONTRIB_DIR)
+
+dnl
+dnl Sadly autoconf does not think about testing foo.exe when ask to test
 dnl for program foo on win32
 
 case "${build_os}" in
@@ -480,7 +414,6 @@ AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
     ])
     dnl force use of mingw provided c99 *printf over msvcrt
     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
-    CPPFLAGS_save="${CPPFLAGS_save} -D__USE_MINGW_ANSI_STDIO=1"
 ])
 
 dnl Check for the need to include the mingwex lib for mingw32
@@ -493,25 +426,21 @@ fi
 
 dnl Check for fnative-struct or mms-bitfields support for mingw32
 if test "${SYS}" = "mingw32" ; then
+    VLC_SAVE_FLAGS
+    CFLAGS="${CFLAGS} -mms-bitfields"
+    CXXFLAGS="${CXXFLAGS} -mms-bitfields"
     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
         [ac_cv_c_mms_bitfields],
-        [CFLAGS="${CFLAGS_save} -mms-bitfields"
-         AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
-    if test "${ac_cv_c_mms_bitfields}" != "no"; then
-        CFLAGS_save="${CFLAGS_save} -mms-bitfields";
-        CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
-    else
+        [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
+    if test "${ac_cv_c_mms_bitfields}" = "no"; then
+        VLC_RESTORE_FLAGS
+        CFLAGS="${CFLAGS} -fnative-struct"
+        CXXFLAGS="${CXXFLAGS} -fnative-struct"
         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
             [ac_cv_c_fnative_struct],
-            [CFLAGS="${CFLAGS_save} -fnative-struct"
-             AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
-        if test "${ac_cv_c_fnative_struct}" != "no"; then
-            CFLAGS_save="${CFLAGS_save} -fnative-struct";
-            CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
-        fi
+            [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
+        "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
     fi
-
-    CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
 fi
 
 dnl
@@ -534,8 +463,6 @@ AC_PREPROC_IFELSE([AC_LANG_SOURCE([
     AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
 work-around for this. Check with your distribution vendor on how to update the
 glibc run-time. Alternatively, build with --disable-nls.])
-  ], [
-    AC_DEFINE(DISABLE_BUGGY_GLIBC_CHECK, 1, [Disables runtime check for buggy glibc.])
   ])
 ])
 
@@ -549,12 +476,27 @@ need_libc=false
 dnl Check for usual libc functions
 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
 AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r if_nameindex if_nametoindex isatty lstat memalign mmap openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp uselocale])
-AC_REPLACE_FUNCS([asprintf atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r inet_pton lldiv localtime_r nrand48 rewind setenv strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab tdestroy vasprintf])
+AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r inet_pton lldiv localtime_r nrand48 rewind setenv strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab tdestroy])
 AC_CHECK_FUNCS(fdatasync,,
   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
 ])
 
-# Windows CE doesn't have strcoll()
+dnl mingw64 implements those as static inline, not functions with C linkage
+AC_LINK_IFELSE([
+    AC_LANG_PROGRAM([#include <stdio.h>], [
+        char *c;
+        if (asprintf(&c, "%s %d", "string", 1) == -1)
+            c = NULL;
+    ])],[AC_DEFINE([HAVE_ASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([asprintf])])
+AC_LINK_IFELSE([
+    AC_LANG_PROGRAM([#include <stdio.h>], [
+        char *c;
+        va_list ap;
+        if (vasprintf(&c, "%s %d", ap) == -1)
+            c = NULL;
+    ])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])])
+
+# Windows CE does not have strcoll()
 AC_FUNC_STRCOLL
 
 dnl Check for non-standard system calls
@@ -582,7 +524,7 @@ AC_CHECK_TYPES([struct pollfd],,,
 ])
 
 dnl Check for connect
-LIBS_save="$LIBS"
+VLC_SAVE_FLAGS
 SOCKET_LIBS=""
 AC_SEARCH_LIBS(connect, [socket], [
   AS_IF([test "$ac_cv_search_connect" != "none required"], [
@@ -596,7 +538,7 @@ AC_SEARCH_LIBS(connect, [socket], [
     SOCKET_LIBS="-lws2"
   ])
 ])
-LIBS="$LIBS_save"
+VLC_RESTORE_FLAGS
 AS_IF([test -n "$SOCKET_LIBS"], [
   VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout sap stream_out_select stream_out_standard stream_out_rtp stream_out_raop vod_rtsp access_realrtsp rtp oldrc netsync gnutls flac ts audioscrobbler lua remoteosd zvbi audiobargraph_a netsync],[${SOCKET_LIBS}])
 ])
@@ -604,7 +546,7 @@ AC_SUBST(SOCKET_LIBS)
 
 dnl Check for socklen_t
 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
-AC_CACHE_CHECK([for socklen_t in sys/socket.h],
+AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
 ac_cv_type_socklen_t,
 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
 [#include <sys/types.h>
@@ -620,8 +562,8 @@ AS_IF([test "$ac_cv_type_socklen_t" = no],
  [AC_DEFINE(socklen_t, int)])
 
 dnl Check for struct sockaddr_storage
-AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
-AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
+AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
+AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
   [AC_TRY_COMPILE(
     [#include <sys/types.h>
@@ -642,9 +584,9 @@ AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
 dnl getaddrinfo, getnameinfo and gai_strerror check
 dnl  -lnsl and -lsocket are needed on Solaris;
 dnl  we purposedly make the test fail on Windows
-LIBS_save="${LIBS}"
+VLC_SAVE_FLAGS
 AC_SEARCH_LIBS([getaddrinfo], [nsl],,, [${SOCKET_LIBS}])
-LIBS="${LIBS_save}"
+VLC_RESTORE_FLAGS
 
 dnl FreeBSD has a gnugetopt library for this:
 GNUGETOPT_LIBS=""
@@ -656,7 +598,7 @@ AC_CHECK_FUNC(getopt_long,, [
 AC_SUBST(GNUGETOPT_LIBS)
 
 AC_CHECK_LIB(m,cos,[
-  VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene kate flac lua chorus_flanger freetype avcodec avformat access_avio swscale postproc i420_rgb faad twolame equalizer spatializer param_eq samplerate freetype mod mpc dmo quicktime realvideo qt4 compressor headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball access_imem hotkeys mosaic gaussianblur dbus x264],[-lm])
+  VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene kate flac lua chorus_flanger freetype avcodec avformat access_avio swscale postproc i420_rgb faad twolame equalizer spatializer param_eq samplerate freetype mod mpc dmo quicktime realvideo qt4 compressor headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball access_imem hotkeys mosaic gaussianblur dbus x264 hqdn3d],[-lm])
   LIBM="-lm"
 ], [
   LIBM=""
@@ -671,14 +613,14 @@ AC_CHECK_LIB(m,lrintf, [
 dnl Check for dynamic plugins
 LIBDL=""
 have_dynamic_objects="no"
-LIBS_save="$LIBS"
+VLC_SAVE_FLAGS
 AC_SEARCH_LIBS(dlopen, [dl svld], [
   AS_IF([test "$ac_cv_search_dlopen" != "none required"], [
     LIBDL="$ac_cv_search_dlopen"
   ])
   have_dynamic_objects="yes"
 ])
-LIBS="$LIBS_save"
+VLC_RESTORE_FLAGS
 
 # Windows
 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
@@ -702,23 +644,13 @@ VLC_ADD_LIBS([realvideo lua],[$LIBDL])
 
 dnl Check for thread library
 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
-  dnl Check for pthreads - borrowed from XMMS
-  THREAD_LIB=error
-  if test "${THREAD_LIB}" = "error"; then
-    AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
-  fi
-  if test "${THREAD_LIB}" = "error"; then
-    AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
-  fi
-  if test "${THREAD_LIB}" = "error"; then
-    AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
-  fi
-  if test "${THREAD_LIB}" = "error"; then
-    AC_CHECK_FUNCS(pthread_mutex_lock)
-    THREAD_LIB=""
-  fi
 
-  VLC_ADD_LIBS([libvlccore libvlc vlc plugin],[${THREAD_LIB}])
+  VLC_SAVE_FLAGS
+  LIBS=""
+  AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
+    VLC_ADD_LIBS([libvlccore libvlc vlc plugin],[${LIBS}])
+  ])
+  VLC_RESTORE_FLAGS
 
   AC_CHECK_LIB(rt, clock_nanosleep, [
     VLC_ADD_LIBS([libvlccore],[-lrt])
@@ -767,7 +699,7 @@ if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
 
 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
-AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
+AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
 AC_CHECK_TYPE(ssize_t,, [
   AC_DEFINE(ssize_t, int)
 ])
@@ -874,18 +806,19 @@ fi
 esac
 
 dnl Check for ntohl, etc.
+VLC_SAVE_FLAGS
+CFLAGS="${CFLAGS} -Wall -Werror"
 AC_CACHE_CHECK([for ntohl in sys/param.h],
     [ac_cv_c_ntohl_sys_param_h],
-    [CFLAGS="${CFLAGS_save} -Wall -Werror"
-     AC_TRY_COMPILE([#include <sys/param.h>],
+    [     AC_TRY_COMPILE([#include <sys/param.h>],
         [int meuh; ntohl(meuh);],
         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
 fi
+VLC_RESTORE_FLAGS
 
 EXTEND_HELP_STRING([Optimization options:])
-VLC_RESTORE_FLAGS
 dnl
 dnl  Compiler warnings
 dnl
@@ -947,25 +880,20 @@ AS_IF([test "${enable_coverage}" != "no"], [
   LDFLAGS="-lgcov ${LDFLAGS}"
 ])
 
-VLC_SAVE_FLAGS
-
 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
+  VLC_SAVE_FLAGS
+  CFLAGS="${CFLAGS} -fvisibility=hidden"
+  CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
+  OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
   AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
                  [ac_cv_c_visibility_hidden], [
-    CFLAGS="${CFLAGS_save} -fvisibility=hidden"
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
       ac_cv_c_visibility_hidden=yes
     ], [
       ac_cv_c_visibility_hidden=no
     ])
   ])
-  AS_IF([test "${ac_cv_c_visibility_hidden}" != "no"], [
-    VLC_RESTORE_FLAGS
-    CFLAGS="${CFLAGS} -fvisibility=hidden"
-    CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
-    OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
-    VLC_SAVE_FLAGS
-  ])
+  AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
 ])
 
 
@@ -976,113 +904,91 @@ AC_ARG_ENABLE(optimizations,
   [AS_HELP_STRING([--disable-optimizations],
     [disable compiler optimizations (default enabled)])],,
   [enable_optimizations="yes"])
-AS_IF([test "${enable_optimizations}" != "no"], [
-  enable_optimizations="speed"
-])
 
 dnl Check for various optimization flags
 AS_IF([test "${enable_optimizations}" != "no"], [
 
-  C_O=""
   dnl -O4 and -O3 only in production builds
   AS_IF([test "{enable_debug}" = "no"], [
+    VLC_SAVE_FLAGS
+    CFLAGS="${CFLAGS} -O4"
+    CXXFLAGS="${CXXFLAGS} -O4"
+    OBJCFLAGS="${OBJCFLAGS} -O4"
     AC_CACHE_CHECK([if $CC accepts -O4], [ac_cv_c_o4], [
-      CFLAGS="${CFLAGS_save} -O4"
       AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
         ac_cv_c_o4=yes
       ], [
         ac_cv_c_o4=no
       ])
     ])
-    AS_IF([test "${ac_cv_c_o4}" != "no"], [
-      C_O="-O4"
-    ], [
+    AS_IF([test "${ac_cv_c_o4}" = "no"], [
+      VLC_RESTORE_FLAGS
+      CFLAGS="${CFLAGS} -O3"
+      CXXFLAGS="${CXXFLAGS} -O3"
+      OBJCFLAGS="${OBJCFLAGS} -O3"
       AC_CACHE_CHECK([if $CC accepts -O3],  [ac_cv_c_o3], [
-        CFLAGS="${CFLAGS_save} -O3"
         AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
           ac_cv_c_o3=yes
         ], [
           ac_cv_c_o3=no
         ])
       ])
-      AS_IF([test "${ac_cv_c_o3}" != "no"], [
-        C_O="-O3"
-      ])
+      AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
     ])
   ])
 
-  VLC_RESTORE_FLAGS
-  CFLAGS="${CFLAGS} ${C_O}"
-  CXXFLAGS="${CXXFLAGS} ${C_O}"
-  OBJCFLAGS="${OBJCFLAGS} ${C_O}"
-  VLC_SAVE_FLAGS
-
   dnl Check for -ffast-math
+  VLC_SAVE_FLAGS
+  CFLAGS="${CFLAGS} -ffast-math"
+  CXXFLAGS="${CXXFLAGS} -ffast-math"
+  OBJCFLAGS="${OBJCFLAGS} -ffast-math"
   AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
-    CFLAGS="${CFLAGS_save} -ffast-math"
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
       ac_cv_c_fast_math=yes
     ], [
       ac_cv_c_fast_math=no
     ])
   ])
-  AS_IF([test "${ac_cv_c_fast_math}" != "no"], [
-    VLC_RESTORE_FLAGS
-    CFLAGS="${CFLAGS} -ffast-math"
-    CXXFLAGS="${CXXFLAGS} -ffast-math"
-    OBJCFLAGS="${OBJCFLAGS} -ffast-math"
-    VLC_SAVE_FLAGS
-  ])
+  AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
 
   dnl Check for -funroll-loops
+  VLC_SAVE_FLAGS
+  CFLAGS="${CFLAGS} -funroll-loops"
+  CXXFLAGS="${CXXFLAGS} -funroll-loops"
+  OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
   AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
-    CFLAGS="${CFLAGS_save} -funroll-loops"
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
       ac_cv_c_unroll_loops=yes
     ], [
       ac_cv_c_unroll_loops=no
     ])
   ])
-  AS_IF([test "${ac_cv_c_unroll_loops}" != "no"], [
-    VLC_RESTORE_FLAGS
-    CFLAGS="${CFLAGS} -funroll-loops"
-    CXXFLAGS="${CXXFLAGS} -funroll-loops"
-    OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
-    VLC_SAVE_FLAGS
-  ])
+  AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
 
   AS_IF([test "$enable_debug" = "no"], [
     dnl Check for -fomit-frame-pointer
+    VLC_SAVE_FLAGS
+    CFLAGS="${CFLAGS} -fomit-frame-pointer"
+    CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
+    OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
     AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
       [ac_cv_c_omit_frame_pointer], [
-      CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
       AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
         ac_cv_c_omit_frame_pointer=yes
       ], [
         ac_cv_c_omit_frame_pointer=no
       ])
     ])
-    AS_IF([test "${ac_cv_c_omit_frame_pointer}" != "no"], [
-      VLC_RESTORE_FLAGS
-      AS_IF([test "${SYS}" != "darwin"], [
-        CFLAGS="${CFLAGS} -fomit-frame-pointer"
-        CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
-      ], [
-        dnl On darwin we explicitely disable it.
-        CFLAGS="${CFLAGS} -fno-omit-frame-pointer"
-        CXXFLAGS="${CXXFLAGS} -fno-omit-frame-pointer"
-        OBJCFLAGS="${OBJCFLAGS} -fno-omit-frame-pointer"
-      ])
-      VLC_SAVE_FLAGS
-    ])
+    AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
   ])
 ])
 
 dnl Check for Darwin plugin linking flags
 AS_IF([test "${SYS}" = "darwin"], [
+  VLC_SAVE_FLAGS
+  CFLAGS="${CFLAGS} -bundle -undefined error"
   AC_CACHE_CHECK([if $CC accepts -bundle -undefined error],
     [ac_cv_ld_darwin], [
-    CFLAGS="${CFLAGS_save} -bundle -undefined error"
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
       ac_cv_ld_darwin=yes
     ], [
@@ -1092,19 +998,21 @@ AS_IF([test "${SYS}" = "darwin"], [
   AS_IF([test "${ac_cv_ld_darwin}" != "no"], [
     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
   ])
+  VLC_RESTORE_FLAGS
 ])
 
 dnl Checks for __attribute__(aligned()) directive
+VLC_SAVE_FLAGS
+CFLAGS="${CFLAGS} -Werror"
 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
     [ac_cv_c_attribute_aligned],
     [ac_cv_c_attribute_aligned=0
-        CFLAGS="${CFLAGS_save} -Werror"
     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
         AC_TRY_COMPILE([],
         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
-    done
-        CFLAGS="${CFLAGS_save}"])
+    done])
+VLC_RESTORE_FLAGS
 if test "${ac_cv_c_attribute_aligned}" != "0"; then
     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
@@ -1179,31 +1087,35 @@ have_mmx="no"
 have_mmxext="no"
 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>
-                     #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])])
+  VLC_SAVE_FLAGS
+  CFLAGS="${CFLAGS} -O -mmmx"
+  AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+[#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
+    ])
+  ])
+  VLC_RESTORE_FLAGS
   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
-    AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
-              [Define to 1 if MMX intrinsics are available.])
+    AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
   ])
 
+  VLC_SAVE_FLAGS
+  CFLAGS="${CFLAGS} -mmmx"
   AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
-    CFLAGS="${CFLAGS_save} -mmmx"
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
 void *p;
 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
@@ -1215,14 +1127,12 @@ asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
     ])
   ])
   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
-    AC_DEFINE(CAN_COMPILE_MMX, 1,
-              [Define to 1 inline MMX assembly is available.])
+    AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
     have_mmx="yes"
   ])
 
   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
                  [ac_cv_mmxext_inline], [
-    CFLAGS="${CFLAGS_save} -mmmx"
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
 void *p;
 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
@@ -1233,9 +1143,9 @@ asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
       ac_cv_mmxext_inline=no
     ])
   ])
+  VLC_RESTORE_FLAGS
   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
-    AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
-              [Define to 1 if MMX EXT inline assembly is available.])
+    AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
     have_mmxext="yes"
   ])
 ])
@@ -1261,30 +1171,35 @@ have_sse2="no"
 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>
-                     #include <stdint.h>
-                     uint64_t frobzor;],
-                    [__m128i a, b, c;
-                     a = b = c = _mm_set1_epi64((__m64)frobzor);
-                     a = _mm_slli_epi16(a, 3);
-                     a = _mm_adds_epi16(a, b);
-                     c = _mm_srli_epi16(c, 8);
-                     c = _mm_slli_epi16(c, 3);
-                     b = _mm_adds_epi16(b, c);
-                     a = _mm_unpacklo_epi8(a, b);
-                     frobzor = (uint64_t)_mm_movepi64_pi64(a);],
-                    [ac_cv_c_sse2_intrinsics=yes],
-                    [ac_cv_c_sse2_intrinsics=no])])
+  VLC_SAVE_FLAGS
+  CFLAGS="${CFLAGS} -O -msse2"
+  AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+[#include <emmintrin.h>
+#include <stdint.h>
+uint64_t frobzor;]], [
+[__m128i a, b, c;
+a = b = c = _mm_set1_epi64((__m64)frobzor);
+a = _mm_slli_epi16(a, 3);
+a = _mm_adds_epi16(a, b);
+c = _mm_srli_epi16(c, 8);
+c = _mm_slli_epi16(c, 3);
+b = _mm_adds_epi16(b, c);
+a = _mm_unpacklo_epi8(a, b);
+frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
+      ac_cv_c_sse2_intrinsics=yes
+    ], [
+      ac_cv_c_sse2_intrinsics=no
+    ])
+  ])
+  VLC_RESTORE_FLAGS
   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
-    AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
-              [Define to 1 if SSE2 intrinsics are available.])
+    AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
   ])
 
+  VLC_SAVE_FLAGS
+  CFLAGS="${CFLAGS} -msse"
   AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
-    CFLAGS="${CFLAGS_save} -msse"
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
 void *p;
 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
@@ -1295,13 +1210,12 @@ asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
       ac_cv_sse_inline=no
     ])
   ])
+
   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_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
   ])
 
   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
-    CFLAGS="${CFLAGS_save} -msse"
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
 void *p;
 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
@@ -1313,14 +1227,12 @@ asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
     ])
   ])
   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.])
+    AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
     have_sse2="yes"
   ])
 
   # SSE3
   AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
-    CFLAGS="${CFLAGS_save} -msse"
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
 void *p;
 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
@@ -1331,12 +1243,11 @@ asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
       ac_cv_sse3_inline=no
     ])
   ])
+
   AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
-    AC_DEFINE(CAN_COMPILE_SSE3, 1,
-              [Define to 1 if SSE3 inline assembly is available.]) ])
+    AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
   # SSSE3
   AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
-    CFLAGS="${CFLAGS_save} -msse"
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
 void *p;
 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
@@ -1347,14 +1258,13 @@ asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
       ac_cv_ssse3_inline=no
     ])
   ])
+
   AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
-    AC_DEFINE(CAN_COMPILE_SSSE3, 1,
-              [Define to 1 if SSSE3 inline assembly is available.]) ])
+    AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
 
   # SSE4.1
   AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
                  [ac_cv_sse4_1_inline], [
-    CFLAGS="${CFLAGS_save} -msse"
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
 void *p;
 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
@@ -1365,14 +1275,13 @@ asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
       ac_cv_sse4_1_inline=no
     ])
   ])
+
   AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
-    AC_DEFINE(CAN_COMPILE_SSE4_1, 1,
-              [Define to 1 if SSE4_1 inline assembly is available.]) ])
+    AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
 
   # SSE4.2
   AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
                  [ac_cv_sse4_2_inline], [
-    CFLAGS="${CFLAGS_save} -msse"
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
 void *p;
 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
@@ -1383,13 +1292,12 @@ asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
       ac_cv_sse4_2_inline=no
     ])
   ])
+
   AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
-    AC_DEFINE(CAN_COMPILE_SSE4_2, 1,
-              [Define to 1 if SSE4_2 inline assembly is available.]) ])
+    AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
 
   # SSE4A
   AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
-    CFLAGS="${CFLAGS_save} -msse"
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
 void *p;
 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
@@ -1400,15 +1308,16 @@ asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
       ac_cv_sse4a_inline=no
     ])
   ])
+  VLC_RESTORE_FLAGS
   AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
-    AC_DEFINE(CAN_COMPILE_SSE4A, 1,
-              [Define to 1 if SSE4A inline assembly is available.]) ])
+    AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
 ])
 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
 
+VLC_SAVE_FLAGS
+CFLAGS="${CFLAGS} -mmmx"
 have_3dnow="no"
 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
-  CFLAGS="${CFLAGS_save} -mmmx"
   AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
 void *p;
 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
@@ -1419,6 +1328,7 @@ asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
     ac_cv_3dnow_inline=no
   ])
 ])
+VLC_RESTORE_FLAGS
 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
             [Define to 1 if 3D Now! inline assembly is available.])
@@ -1433,8 +1343,9 @@ AC_ARG_ENABLE(neon,
   AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
 ])
 AS_IF([test "${enable_neon}" != "no"], [
+  VLC_SAVE_FLAGS
+  CFLAGS="${CFLAGS} -mfpu=neon"
   AC_CACHE_CHECK([if $CC groks NEON inline assembly], [ac_cv_neon_inline], [
-    CFLAGS="${CFLAGS_save} -mfpu=neon"
     AC_COMPILE_IFELSE([
       AC_LANG_PROGRAM(,[[
 asm volatile("vqmovun.s64 d0, q1":::"d0");
@@ -1445,12 +1356,11 @@ asm volatile("ssat r0, #1, r0":::"r0"); /* assume ARMv6 */
     ], [
       ac_cv_neon_inline="no"
     ])
-    CFLAGS="${CFLAGS_save}"
   ])
+  VLC_RESTORE_FLAGS
   AS_IF([test "$ac_cv_neon_inline" != "no"], [
     NEON_CFLAGS="$ac_cv_neon_inline"
-    AC_DEFINE([CAN_COMPILE_NEON], 1,
-      [Define to 1 if NEON (and ARMv6) assembly is available with NEON_CFLAGS.])
+    AC_DEFINE([CAN_COMPILE_NEON], 1, [Define to 1 if NEON (and ARMv6) assembly is available with NEON_CFLAGS.])
   ])
 ], [
   ac_cv_neon_inline="no"
@@ -1468,16 +1378,17 @@ AC_ARG_ENABLE(altivec,
 have_altivec="no"
 AS_IF([test "${enable_altivec}" = "yes"], [
   ARCH="${ARCH} altivec";
+  VLC_SAVE_FLAGS
   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_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
          ac_cv_altivec_inline="yes",
-         [CFLAGS="${CFLAGS_save} -Wa,-m7400"
+         [CFLAGS="${CFLAGS} -Wa,-m7400"
           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
             [ac_cv_altivec_inline="-Wa,-m7400"],
             ac_cv_altivec_inline=no)
          ])])
+  VLC_RESTORE_FLAGS
   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
               [Define to 1 if AltiVec inline assembly is available.])
@@ -1499,32 +1410,33 @@ 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
+  VLC_SAVE_FLAGS
   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"
+   CFLAGS="${CFLAGS} -mpim-altivec -force_cpusubtype_ALL"
    AC_TRY_COMPILE([vector unsigned char foo;],
      [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"
+      CFLAGS="${CFLAGS} -faltivec"
       AC_TRY_COMPILE([vector unsigned char foo;],
         [vec_ld(1 * sizeof(vector float), (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"
+         CFLAGS="${CFLAGS} -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"
+            CFLAGS="${CFLAGS} -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"
+               CFLAGS="${CFLAGS} -fvec"
                AC_TRY_COMPILE([#include <altivec.h>],
                  [vec_ld(0, (unsigned char *)0);],
                  [ac_cv_c_altivec="-fvec"],
@@ -1533,29 +1445,24 @@ dnl - Others: test should fail
            ])
         ])
      ])
-   CFLAGS="${CFLAGS_save}"
   ])
-  AS_IF([test "${ac_cv_c_altivec}" != "no"], [
-    CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
-  ])
-
-  AC_CHECK_HEADERS(altivec.h)
-  CPPFLAGS="${CPPFLAGS_save}"
 
+  VLC_RESTORE_FLAGS
   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
-    AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
-              [Define to 1 if C AltiVec extensions are available.])
+    CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
+    AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
     VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
     have_altivec="yes"
   ])
+  AC_CHECK_HEADERS(altivec.h)
 
+  VLC_SAVE_FLAGS
+  LDFLAGS="${LDFLAGS} -Wl,-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}"
-    ])
+    [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
+  VLC_RESTORE_FLAGS
   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
     VLC_ADD_LIBS([libvlccore memcpyaltivec],[-Wl,-framework,vecLib])
   ])
@@ -1587,19 +1494,17 @@ else
 fi
 
 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([AC_LANG_SOURCE([])],
-                      [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}"
+AS_IF([test -n "${CFLAGS_TUNING}"], [
+  VLC_SAVE_FLAGS
+  CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
+  AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
+  AC_COMPILE_IFELSE([AC_LANG_SOURCE([])], [
+    AC_MSG_RESULT([yes])
+  ], [
+    VLC_RESTORE_FLAGS
+    AC_MSG_RESULT([no])
+    AS_IF([test "${with_tuning}"], [AC_MSG_ERROR([requested tuning not supported])])
+  ])
 ])
 
 dnl
@@ -1737,125 +1642,90 @@ dnl
 AC_ARG_ENABLE(live555,
   [AS_HELP_STRING([--enable-live555],
     [enable RTSP input through live555 (default enabled)])])
-AC_ARG_WITH(live555-tree,
-  [AS_HELP_STRING([--with-live555-tree=PATH],
-    [live555 tree for static linking])])
 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
-  dnl
-  dnl test for --with-live555-tree
-  dnl
-  if test -z "${with_live555_tree}"; then
-    AC_LANG_PUSH(C++)
-    CPPFLAGS_save="${CPPFLAGS}"
-    if test -z "${CONTRIB_DIR}"; then
-        CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
-    else
-        CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
-    fi
-    if test "${SYS}" = "solaris"; then
-      CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
-    fi
-    CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
-
-    AC_CHECK_HEADERS(liveMedia_version.hh, [
-      AC_MSG_CHECKING(for liveMedia version >= 1275091200 )
-      AC_EGREP_CPP(yes,
-        [#include <liveMedia_version.hh>
-         #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
-         #if LIVEMEDIA_LIBRARY_VERSION_INT < 1275091200
-         yes
-         #endif
-         #endif],
-        [AC_MSG_RESULT([no])
-          AC_MSG_WARN([The installed liveMedia version is too old:
+  AC_LANG_PUSH(C++)
+  VLC_SAVE_FLAGS
+  AS_IF([test -z "${CONTRIB_DIR}"], [
+    CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
+  ], [
+    CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
+  ])
+  AS_IF([test "${SYS}" = "solaris"], [
+    CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
+  ])
+  CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
+
+  AC_CACHE_CHECK([for live555 version 1275091200 or later], [ac_cv_live555], [
+    AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
+[#include <liveMedia_version.hh>
+#if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1275091200)
+# error BOOM
+#endif]])
+    ], [
+      ac_cv_live555="yes"
+    ], [
+      ac_cv_live555="no"
+    ])
+  ])
+  AS_IF([test "$ac_cv_live555" = "no"], [
+    AC_MSG_WARN([liveMedia is missing or its installed version is too old:
 Version 2010.05.29 or later is required to proceed.
 You can get an updated one from http://www.live555.com/liveMedia .])
-          AS_IF([test "${enable_live555}" = "yes"], [
-            AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable the plugin.])
-          ])
-        ],[
-          AC_MSG_RESULT([yes])
-          other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
-          other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
-          if test "${SYS}" = "mingw32"; then
-            # add ws2_32 for closesocket, select, recv
-            other_libs="$other_libs -lws2_32"
-          elif test "${SYS}" = "mingwce"; then
-            # add ws2 for closesocket, select, recv
-            other_libs="$other_libs -lws2"
-          fi
-
-          dnl We need to check for pic because live555 don't provide shared libs
-          dnl and we want to build a plugins so we need -fPIC on some arch.
-          VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
-          AC_CHECK_LIB(liveMedia_pic, main, [
-            VLC_ADD_PLUGIN([live555])
-            VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
-          ],[
-            AC_CHECK_LIB(liveMedia, main, [
-            VLC_ADD_PLUGIN([live555])
-            VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
-          ],[],[${other_libs}]) ],[${other_libs_pic}])
-
-          CPPFLAGS="${CPPFLAGS_save}"
-          AC_LANG_POP(C++)
-        ])
-      ])
-  else
-    AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
-    real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
-    if test -z "${real_live555_tree}"; then
-      dnl  The given directory can't be found
-      AC_MSG_RESULT(no)
-      AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
-    fi
-    if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
-      AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
-
-      AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
-        AC_MSG_CHECKING(for liveMedia version >= 1275091200 )
-        AC_EGREP_CPP(yes,
-          [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
-           #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
-           #if LIVEMEDIA_LIBRARY_VERSION_INT < 1275091200
-           yes
-           #endif
-           #endif],
-          [AC_MSG_RESULT([no])
-           AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
-lternatively you can use --disable-live555 to disable the liveMedia plugin.])
-        ],[
-       AC_MSG_RESULT([yes])
-       ])
+    AS_IF([test -n "${enable_live555}"], [
+      AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
+    ])
+    ac_cv_live555_usable=""
+  ], [
+    dnl Check that live555 is patched correctly.
+    AC_CACHE_CHECK([for live555 usability], [ac_cv_live555_usable], [
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+[#include <locale.h>
+#ifdef __APPLE__
+# include <xlocale.h>
+#endif
+#undef LC_ALL
+#define LC_ALL BOOM
+#ifdef LC_ALL_MASK
+#include <Locale.hh>
+#endif
+#include <GroupsockHelper.hh>]], [
+[struct in_addr addr;
+our_inet_ntoa(addr, NULL);]])
+      ], [
+        ac_cv_live555_usable="yes"
+      ], [
+        ac_cv_live555_usable="no"
       ])
+    ])
+    AS_IF([test "$ac_cv_live555_usable" = "no"], [
+      AC_MSG_ERROR([liveMedia lacks patches and is not usable.
+Please apply our patches from the VLC contrib (contrib/src/live555/).
+You can also disable RTSP input with --disable-live555. You were warned.])
+    ])
+    other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
+    other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
+    AS_IF([test "${SYS}" = "mingw32"], [
+      # add ws2_32 for closesocket, select, recv
+      other_libs="$other_libs -lws2_32"
+    ], [test "${SYS}" = "mingwce"], [
+      # add ws2 for closesocket, select, recv
+      other_libs="$other_libs -lws2"
+    ])
 
+    dnl We need to check for pic because live555 don't provide shared libs
+    dnl and we want to build a plugins so we need -fPIC on some arch.
+    VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
+    AC_CHECK_LIB(liveMedia_pic, main, [
       VLC_ADD_PLUGIN([live555])
-
-      if test "${SYS}" = "mingw32"; then
-        # add ws2_32 for closesocket, select, recv
-        VLC_ADD_LIBS([live555],[-lws2_32])
-      fi
-
-      VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
-      VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
-      VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
-      VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
-
-      VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
-      VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
-      VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
-      VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
-      if test "${SYS}" = "solaris"; then
-        VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
-      fi
-    else
-      dnl  The given live555 wasn't built
-        AC_MSG_RESULT(no)
-      if test "${enable_live555}" = "yes"; then
-        AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
-      fi
-    fi
-  fi
+      VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
+    ],[
+      AC_CHECK_LIB(liveMedia, main, [
+        VLC_ADD_PLUGIN([live555])
+        VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
+      ],[],[${other_libs}])],[${other_libs_pic}])
+  ])
+  VLC_RESTORE_FLAGS
+  AC_LANG_POP(C++)
 ])
 
 dnl
@@ -1882,8 +1752,6 @@ fi
 dnl
 dnl dvdread module: check for libdvdread
 dnl
-dnl prepend -ldvdcss on OS that need it
-AS_CASE(["${SYS}"], [mingw32|darwin], [VLC_ADD_LIBS([dvdread], [-ldvdcss])])
 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread], [dvdread input module], [auto])
 
 dnl
@@ -1894,9 +1762,6 @@ AC_ARG_ENABLE(dvdnav,
     [disable DVD navigation with libdvdnav (default auto)])])
 if test "${enable_dvdnav}" != "no"
 then
-  dnl prepend -ldvdcss on OS that need it
-  AS_CASE(["${SYS}"], [mingw32|darwin], [VLC_ADD_LIBS([dvdnav], [-ldvdcss])])
-
   PKG_CHECK_MODULES(DVDNAV, dvdnav, [
     VLC_ADD_PLUGIN([dvdnav])
     VLC_ADD_CFLAGS([dvdnav],[${DVDNAV_CFLAGS}])
@@ -1932,7 +1797,7 @@ fi
 dnl
 dnl  Blu-ray Disc Support with libbluray
 dnl
-PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.2 libxml-2.0 >= 2.6 ], (libbluray for Blu-ray disc support ) )
+PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.2.1], (libbluray for Blu-ray disc support ) )
 
 dnl
 dnl  OpenCV wrapper and example filters
@@ -2008,13 +1873,14 @@ then
   then
     VLC_ADD_CPPFLAGS([decklink],[-I${with_decklink_sdk}/include])
   fi
-  CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_decklink}"
+  VLC_SAVE_FLAGS
+  CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
   AC_LANG_PUSH(C++)
   AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
     VLC_ADD_PLUGIN([decklink])
   ],[AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)])
   AC_LANG_POP(C++)
-  CPPFLAGS="${CPPFLAGS_save}"
+  VLC_RESTORE_FLAGS
 fi
 
 
@@ -2137,8 +2003,6 @@ if test "${enable_screen}" != "no"; then
   elif test "${SYS}" = "mingw32"; then
     VLC_ADD_PLUGIN([screen])
     VLC_ADD_LIBS([screen],[-lgdi32])
-  elif test "${SYS}" = "mingwce"; then
-    CPPFLAGS="${CPPFLAGS_save}"
   fi
 fi
 
@@ -2172,7 +2036,7 @@ then
   VLC_ADD_PLUGIN([qtcapture])
   VLC_ADD_PLUGIN([qtsound])
 fi
-AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" && "x${enable_macosx_qtkit}" != "xno"])
+AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
 
 
 dnl
@@ -2380,7 +2244,7 @@ AC_ARG_ENABLE(iomx,
   [  --enable-iomx           iomx codec module (default disabled)])
 if test "${enable_iomx}" = "yes"
 then
-  CPPFLAGS_save="${CPPFLAGS}"
+  VLC_SAVE_FLAGS
   CPPFLAGS="${CPPFLAGS} -I${srcdir}/modules/codec/omxil" # For the OMX headers
   AC_LANG_PUSH([C++])
   AC_CHECK_HEADER(media/stagefright/OMXClient.h, [
@@ -2391,7 +2255,7 @@ then
     AC_MSG_ERROR("Could not find IOMX headers")
   ])
   AC_LANG_POP([C++])
-  CPPFLAGS="${CPPFLAGS_save}"
+  VLC_RESTORE_FLAGS
 fi
 
 dnl
@@ -2447,7 +2311,7 @@ then
     then
       dnl  The given directory can't be found
       AC_MSG_RESULT(no)
-      AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
+      AC_MSG_ERROR([${with_mad_tree} directory does not exist])
     fi
     dnl  Use a custom libmad
     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
@@ -2456,28 +2320,29 @@ then
       AC_MSG_RESULT(yes)
       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
-      LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
+      VLC_SAVE_FLAGS
+      LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
       AC_CHECK_LIB(mad, mad_bit_init, [
         VLC_ADD_PLUGIN([mpgatofixed32])
         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
-        ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
+        ],[ AC_MSG_ERROR([the specified tree has not been compiled ])
       ],[])
-      LDFLAGS="${LDFLAGS_save}"
+      VLC_RESTORE_FLAGS
     else
       AC_MSG_RESULT(no)
-      AC_MSG_ERROR([the specified tree doesn't have mad.h])
+      AC_MSG_ERROR([the specified tree does not have mad.h])
     fi
   else
-    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
-    LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
+    VLC_SAVE_FLAGS
+    CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_mpgatofixed32}"
+    LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
     AC_CHECK_HEADERS(mad.h, ,
       [ AC_MSG_ERROR([Could not find libmad on your system: you may get it from http://www.underbit.com/products/mad/. Alternatively you can use --disable-mad to disable the mad plugin.]) ])
     AC_CHECK_LIB(mad, mad_bit_init, [
       VLC_ADD_PLUGIN([mpgatofixed32])
       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
-    CPPFLAGS="${CPPFLAGS_save}"
-    LDFLAGS="${LDFLAGS_save}"
+    VLC_RESTORE_FLAGS
   fi
 fi
 
@@ -2488,12 +2353,12 @@ AC_ARG_ENABLE(merge-ffmpeg,
 ])
 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
 
+VLC_SAVE_FLAGS
+LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
 AC_CACHE_CHECK([if linker supports -Bsymbolic],
   [ac_cv_ld_bsymbolic],
-  [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
-    AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
-    LDFLAGS="${LDFLAGS_save}"
-  ])
+  [AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)])
+VLC_RESTORE_FLAGS
 
 dnl
 dnl  avcodec decoder/encoder plugin
@@ -2578,7 +2443,9 @@ AS_IF([test "${enable_dxva2}" != "no"], [
     AS_IF([test "${enable_dxva2}" = "yes"],
           [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
               [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
-        ])
+        ], [#undef _WIN32_WINNT
+            /* DXVA2 is only available in Vista and above */
+            #define _WIN32_WINNT 0x600])
       ],[
     AS_IF([test "${enable_dxva2}" = "yes"],
               [AC_MSG_ERROR([Could not find required dxva2api.h])],
@@ -2724,8 +2591,9 @@ then
       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
     fi
   else
-    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
-    LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
+    VLC_SAVE_FLAGS
+    CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
+    LDFLAGS="${LDFLAGS} ${LIBS_faad}"
     AC_CHECK_HEADERS(faad.h, ,
       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
     AC_CHECK_LIB(faad, faacDecOpen, [
@@ -2735,8 +2603,7 @@ then
         VLC_ADD_PLUGIN([faad])
         VLC_ADD_LIBS([faad],[-lfaad]) ],
         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
-    LDFLAGS="${LDFLAGS_save}"
-    CPPFLAGS="${CPPFLAGS_save}"
+    VLC_RESTORE_FLAGS
   fi
 fi
 
@@ -2788,7 +2655,7 @@ then
     then
       dnl  The given directory can't be found
       AC_MSG_RESULT(no)
-      AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
+      AC_MSG_ERROR([${with_a52_tree} directory does not exist])
     fi
     dnl  Use a custom a52dec
     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
@@ -2797,7 +2664,8 @@ then
       AC_MSG_RESULT(yes)
       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
-      LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
+      VLC_SAVE_FLAGS
+      LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
       AC_CHECK_LIB(a52, a52_free, [
         VLC_ADD_PLUGIN([a52tofloat32])
         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
@@ -2807,13 +2675,12 @@ then
         then
           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
         else
-          AC_MSG_ERROR([the specified tree hasn't been compiled])
+          AC_MSG_ERROR([the specified tree has not been compiled])
         fi
       ])
-      LDFLAGS="${LDFLAGS_save}"
     else
       AC_MSG_RESULT(no)
-      AC_MSG_ERROR([the specified tree doesn't have a52.h])
+      AC_MSG_ERROR([the specified tree does not have a52.h])
     fi
   else
     if test -z "${with_a52}"
@@ -2824,8 +2691,9 @@ then
       LDFLAGS_test="-L${with_a52}/lib"
       CPPFLAGS_test="-I${with_a52}/include"
     fi
-    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
-    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
+    VLC_SAVE_FLAGS
+    CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
+    LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
     AC_CHECK_HEADERS(a52dec/a52.h, [
       AC_CHECK_LIB(a52, a52_free, [
         VLC_ADD_PLUGIN([a52tofloat32])
@@ -2837,8 +2705,7 @@ then
     ],[
       AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
     ])
-    CPPFLAGS="${CPPFLAGS_save}"
-    LDFLAGS="${LDFLAGS_save}"
+    VLC_RESTORE_FLAGS
   fi
 fi
 
@@ -2920,12 +2787,13 @@ AC_ARG_ENABLE(png,
   [  --enable-png            PNG support (default enabled)])
 if test "${enable_png}" != "no"; then
 AC_CHECK_HEADERS(png.h, [
-  LDFLAGS="${LDFLAGS_save} -lz"
+  VLC_SAVE_FLAGS
+  LDFLAGS="${LDFLAGS} -lz"
   AC_CHECK_LIB(png, png_set_rows, [
     VLC_ADD_LIBS([png],[-lpng -lz -lm])
     VLC_ADD_PLUGIN([png osdmenu osd_parser])],
     [],[-lz])
-    LDFLAGS="${LDFLAGS_save}"
+  VLC_RESTORE_FLAGS
   ])
 fi
 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
@@ -2945,7 +2813,7 @@ if test "${enable_x264}" != "no"; then
     then
       dnl  The given directory can't be found
       AC_MSG_RESULT(no)
-      AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
+      AC_MSG_ERROR([${with_x264_tree} directory does not exist])
     fi
     dnl  Use a custom libx264
     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
@@ -2962,12 +2830,11 @@ if test "${enable_x264}" != "no"; then
           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
         fi
       ],[
-        AC_MSG_ERROR([the specified tree hasn't been compiled])
+        AC_MSG_ERROR([the specified tree has not been compiled])
       ])
-      LDFLAGS="${LDFLAGS_save}"
     else
       AC_MSG_RESULT(no)
-      AC_MSG_ERROR([the specified tree doesn't have x264.h])
+      AC_MSG_ERROR([the specified tree does not have x264.h])
     fi
   else
       PKG_CHECK_MODULES(X264,x264 >= 0.86, [
@@ -2987,7 +2854,6 @@ if test "${enable_x264}" != "no"; then
             AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
           fi
       ])
-    LDFLAGS="${LDFLAGS_save}"
   fi
 fi
 
@@ -3423,12 +3289,10 @@ if test "${enable_directfb}" = "yes"; then
     LIBS_mydirectfb=
     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
         dnl Trying the given location
-        CPPFLAGS_save="${CPPFLAGS}"
-        LIBS_save="${LIBS}"
+        VLC_SAVE_FLAGS
 
         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
-        LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
-        LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
+        LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
 
         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
         LIBS="${LIBS} ${LIBS_new}"
@@ -3442,9 +3306,7 @@ if test "${enable_directfb}" = "yes"; then
             ], have_directfb="false")
         ], have_directfb="false")
 
-        dnl Restore flags
-        CPPFLAGS="${CPPFLAGS_save}"
-        LIBS="${LIBS_save}"
+        VLC_RESTORE_FLAGS
 
         if test "${have_directfb}" = "true"; then
             LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
@@ -3498,6 +3360,29 @@ dnl  libcaca plugin
 dnl
 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
 
+dnl
+dnl  OS/2 KVA plugin
+dnl
+AC_ARG_ENABLE(kva,
+  [AS_HELP_STRING([--enable-kva],
+    [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
+  AS_IF([test "$SYS" = "os2"], [
+    enable_kva="yes"
+  ])
+])
+have_kva="no"
+KVA_LIBS=""
+AS_IF([test "$enable_kva" != "no"], [
+  AC_CHECK_HEADERS([kva.h], [
+    have_kva="yes"
+    AC_CHECK_LIB(kva, main, [
+      KVA_LIBS="-lkva"
+    ])
+  ])
+])
+AC_SUBST(KVA_LIBS)
+AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
+
 dnl
 dnl  Audio plugins
 dnl
@@ -3676,58 +3561,6 @@ dnl
 
 EXTEND_HELP_STRING([Interface plugins:])
 
-dnl
-dnl Skins2 module
-dnl
-AC_ARG_ENABLE(skins2,
-  [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
-AS_IF([test "${enable_skins2}" != "no"], [
-  have_skins_deps="yes"
-  AS_IF([test "${SYS}" = "mingw32"], [
-    VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
-    VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
-    VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32  -lmsimg32 -luser32])
-
-  ], [test "${SYS}" = "darwin"], [
-    VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
-    VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
-    VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
-
-  ], [
-    PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
-    PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
-    PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
-    VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
-    VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
-    VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
-
-  ])
-  AS_IF([test "${have_freetype}" != "yes"], [
-    have_skins_deps="no"
-  ])
-
-  AS_IF([test "${have_skins_deps}" = "no"], [
-    AS_IF([test "x${enable_skins2}" = "x"], [
-      AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
-    ], [
-      AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
-    ])
-    enable_skins2="no"
-  ], [
-    VLC_ADD_PLUGIN([skins2])
-    ALIASES="${ALIASES} svlc"
-  ])
-])
-AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
-
-AC_ARG_ENABLE(libtar,
-  [  --enable-libtar         libtar support for skins2 (default auto)])
-AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
-  AC_CHECK_HEADERS(libtar.h, [
-    VLC_ADD_LIBS([skins2],[-ltar])
-  ])
-])
-
 dnl
 dnl Hildon UI
 dnl
@@ -3769,7 +3602,7 @@ AS_IF([test "${enable_qt4}" != "no"], [
     ALIASES="${ALIASES} qvlc"
 
     AC_LANG_PUSH([C++])
-    CPPFLAGS_save="${CPPFLAGS}"
+    VLC_SAVE_FLAGS
 
     AC_MSG_CHECKING([whether Qt uses X11])
     CPPFLAGS="${CPPFLAGS} ${QT4_CFLAGS}"
@@ -3786,7 +3619,7 @@ AS_IF([test "${enable_qt4}" != "no"], [
       AC_MSG_RESULT([no])
     ])
 
-    CPPFLAGS="${CPPFLAGS_save}"
+    VLC_RESTORE_FLAGS
     AC_LANG_POP([C++])
 
     AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
@@ -3812,8 +3645,69 @@ AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
 dnl
 dnl Simple test for skins2 dependency
 dnl
-AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
-  AC_MSG_ERROR([The skins2 module depends on a the Qt4 development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the Qt4 development package or alternatively you can also configure with: --disable-qt4 --disable-skins2.])
+AS_IF([test "x$enable_qt4" = "xno"], [
+  AS_IF([test "${enable_skins2}" = "yes"], [
+    AC_MSG_ERROR([The skins2 module depends on the Qt4 interface. Without it you will not be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the Qt4 development package or alternatively you can also configure with: --disable-qt4 --disable-skins2.])
+  ], [
+    enable_skins2="no"
+    AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
+  ])
+])
+
+dnl
+dnl Skins2 module
+dnl
+AC_ARG_ENABLE(skins2,
+  [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
+AS_IF([test "${enable_skins2}" != "no"], [
+  have_skins_deps="yes"
+
+  dnl Win32
+  AS_IF([test "${SYS}" = "mingw32"], [
+    VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
+    VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
+    VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
+  dnl MacOS
+  ], [test "${SYS}" = "darwin"], [
+    VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
+    VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
+    VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
+  dnl Linux/Unix
+  ], [
+    PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
+    PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
+    PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
+    VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
+    VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
+    VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
+  ])
+
+  dnl we need freetype
+  AS_IF([test "${have_freetype}" != "yes"], [
+    have_skins_deps="no"
+  ])
+
+  AS_IF([test "${have_skins_deps}" = "no"], [
+    AS_IF([test "x${enable_skins2}" = "x"], [
+      AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
+    ], [
+      AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
+    ])
+    enable_skins2="no"
+  ], [
+    VLC_ADD_PLUGIN([skins2])
+    ALIASES="${ALIASES} svlc"
+    enable_skins2="yes"
+  ])
+])
+AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
+
+AC_ARG_ENABLE(libtar,
+  [  --enable-libtar         libtar support for skins2 (default auto)])
+AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
+  AC_CHECK_HEADERS(libtar.h, [
+    VLC_ADD_LIBS([skins2],[-ltar])
+  ])
 ])
 
 dnl
@@ -3821,26 +3715,28 @@ dnl  MacOS X gui module
 dnl
 AC_ARG_ENABLE(macosx,
   [  --enable-macosx         Mac OS X gui support (default enabled on Mac OS X)])
-if test "x${enable_macosx}" != "xno" &&
-(test "${SYS}" = "darwin" || test "${enable_macosx}" = "yes")
+if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
 then
-  VLC_ADD_LIBS([macosx minimal_macosx],[-Wl,-framework,Cocoa])
-  VLC_ADD_LIBS([macosx minimal_macosx],[-Wl,-framework,OpenGL])
-  VLC_ADD_LIBS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
-  VLC_ADD_LIBS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
-  VLC_ADD_LIBS([macosx minimal_macosx],            [-Wl,-framework,AGL])
-  VLC_ADD_LIBS([macosx],                           [-Wl,-framework,QTKit])
-  VLC_ADD_LIBS([macosx],                           [-Wl,-framework,IOKit])
-  VLC_ADD_LIBS([macosx],                           [-F${CONTRIB_DIR}/Sparkle -Wl,-framework,Sparkle])
-  VLC_ADD_OBJCFLAGS([macosx],                         [-F${CONTRIB_DIR}/Sparkle])
-  VLC_ADD_LIBS([macosx],                           [-F${CONTRIB_DIR}/BGHUDAppKit -Wl,-framework,BGHUDAppKit])
-  VLC_ADD_OBJCFLAGS([macosx],                         [-F${CONTRIB_DIR}/BGHUDAppKit])
-  dnl For bug report
-  VLC_ADD_LIBS([macosx],                           [-Wl,-framework,AddressBook])
-  VLC_ADD_LIBS([macosx],                           [-Wl,-framework,WebKit])
+  VLC_ADD_LIBS([macosx minimal_macosx], [-Wl,-framework,Cocoa -Wl,-framework,OpenGL -Wl,-framework,Carbon -Wl,-framework,CoreServices -Wl,-framework,AGL])
   VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
-
   VLC_ADD_PLUGIN([macosx minimal_macosx])
+
+  VLC_ADD_LIBS([macosx], [-Wl,-framework,QTKit -Wl,-framework,IOKit -Wl,-framework,AddressBook -Wl,-framework,WebKit])
+
+  if ! test -d ${CONTRIB_DIR}/Sparkle.framework
+  then
+    AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
+  fi
+  VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
+  VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
+
+  if ! test -d ${CONTRIB_DIR}/BGHUDAppKit.framework
+  then
+    AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
+  fi
+  VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
+  VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
+
 fi
 
 dnl
@@ -3859,31 +3755,27 @@ dnl
 dnl  ncurses module
 dnl
 AC_ARG_ENABLE(ncurses,
-  [  --disable-ncurses       ncurses interface support (default disabled)],
-  [if test "${enable_ncurses}" != "no"; then
-    AC_CHECK_HEADER(ncurses.h,
-      [AC_CHECK_LIB(ncursesw, mvprintw,
-        [VLC_ADD_PLUGIN([ncurses])
-        VLC_ADD_LIBS([ncurses],[-lncursesw])
+[AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
+if test "${enable_ncurses}" != "no"; then
+  VLC_SAVE_FLAGS
+  LIBS=""
+  AC_CHECK_HEADER(ncurses.h, [
+    AC_CHECK_LIB(ncursesw, mvprintw, [
+      AC_SEARCH_LIBS([tgetent], [ncursesw tinfow tinfo], [
+        VLC_ADD_PLUGIN([ncurses])
         ALIASES="${ALIASES} nvlc"
-        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 "${enable_ncurses}" = "yes"],
-                [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
-               )])])
-            ]
-          )
-        )
-        ],
-          [AS_IF([test "${enable_ncurses}" = "yes"], [
-            AC_MSG_ERROR([libncursesw not found])])]
-        )],
-        [AS_IF([test "${enable_ncurses}" = "yes"], [
-          AC_MSG_ERROR([ncurses.h not found])])]
-        )
-  fi]
-)
+        VLC_ADD_LIBS([ncurses],[-lncursesw ${LIBS}])
+      ], [
+        AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([tgetent not found])])
+      ])
+    ], [
+      AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([libncursesw not found])])
+    ])
+  ], [
+    AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([ncurses.h not found])])
+  ])
+  VLC_RESTORE_FLAGS
+fi
 
 dnl
 dnl  XOSD plugin
@@ -3894,8 +3786,13 @@ if test "${enable_xosd}" = "yes"
 then
   AC_CHECK_HEADERS(xosd.h,
     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
-      VLC_ADD_PLUGIN([xosd])
-      VLC_ADD_LIBS([xosd],[-lxosd])
+      AS_IF([test "${no_x}" != "yes"], [
+          VLC_ADD_PLUGIN([xosd])
+          VLC_ADD_LIBS([xosd],[-lxosd ${X_LIBS} ${X_PRE_LIBS} -lX11])
+          VLC_ADD_CFLAGS([xosd],[${X_CFLAGS}])
+        ],[
+          AC_MSG_ERROR([Xlib is required with xosd.])
+        ])
     ])
   )
 fi
@@ -4027,11 +3924,6 @@ AS_IF([test "${enable_libgcrypt}" != "no"], [
   )
 ])
 
-if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
-  AS_IF([test "${have_libgcrypt}" = "yes"],[
-    VLC_ADD_LIBS([rtp stream_out_rtp], [${GCRYPT_LIBS}])
-  ])
-fi
 AC_SUBST(GCRYPT_CFLAGS)
 AC_SUBST(GCRYPT_LIBS)
 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
@@ -4051,14 +3943,6 @@ AS_IF([test "${have_libgcrypt}" != "yes"], [
 AS_IF([test "${enable_gnutls}" != "no"], [
   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.0.0], [
     VLC_ADD_PLUGIN([gnutls])
-    VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
-    AS_IF([test "${SYS}" = "mingw32"], [
-      dnl pkg-config --libs gnutls omits these
-      VLC_ADD_LIBS([gnutls], [-lz ${LTLIBINTL} -lcrypt32])
-    ])
-    VLC_ADD_LIBS([gnutls], [${GCRYPT_LIBS}])
-    VLC_ADD_CFLAGS([gnutls], [${GCRYPT_CFLAGS}])
-    VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
   ], [
     AS_IF([test -n "${enable_gnutls}"], [
       AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
@@ -4067,36 +3951,6 @@ AS_IF([test "${enable_gnutls}" != "no"], [
 ])
 
 
-dnl
-dnl RemoteOSD plugin (VNC client as video filter)
-dnl
-AC_MSG_CHECKING([whether to enable the RemoteOSD plugin])
-AS_IF([test "${have_libgcrypt}" = "yes"],[
-  AC_MSG_RESULT(yes)
-  VLC_ADD_PLUGIN([remoteosd])
-  VLC_ADD_LIBS([remoteosd], ${GCRYPT_LIBS})
-  VLC_ADD_CFLAGS([remoteosd], ${GCRYPT_CFLAGS})
-], [
-  AC_MSG_RESULT(no)
-  AC_MSG_WARN([libgcrypt support required for RemoteOSD plugin])
-])
-
-
-dnl
-dnl RAOP plugin
-dnl
-AC_MSG_CHECKING([whether to enable the RAOP plugin])
-AS_IF([test "${have_libgcrypt}" = "yes"], [
-  AC_MSG_RESULT(yes)
-  VLC_ADD_PLUGIN([stream_out_raop])
-  VLC_ADD_LIBS([stream_out_raop], [${GCRYPT_LIBS} -lgpg-error])
-  VLC_ADD_CFLAGS([stream_out_raop], [${GCRYPT_CFLAGS}])
-], [
-  AC_MSG_RESULT(no)
-  AC_MSG_WARN([libgcrypt support required for RAOP plugin])
-])
-
-
 dnl
 dnl Nokia MCE plugin (Maemo screen unblanking)
 dnl
@@ -4147,10 +4001,10 @@ AC_ARG_ENABLE(growl,
   [  --enable-growl          growl notification plugin (default disabled)],,
   [enable_growl=no])
 AS_IF([test "${enable_growl}" != "no"], [
-    AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl/Growl.framework/Versions/A/Headers/GrowlDefines.h, [
+    AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/GrowlDefines.h, [
       VLC_ADD_PLUGIN([growl])
-      VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR}/Growl -Wl,-framework,Growl,-framework,CoreFoundation])
-      VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}/Growl])
+      VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,CoreFoundation])
+      VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
       VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
     ])
   ]
@@ -4212,7 +4066,7 @@ AC_ARG_WITH(kde-solid,
   AS_HELP_STRING([--with-kde-solid=PATH],
                  [KDE Solid actions directory (auto)]),, [
 
-if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ; then
+if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" ; then
   with_kde_solid="yes"
 fi
 ])
@@ -4286,12 +4140,7 @@ AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
 dnl
 dnl  Handle substvars that use $(top_srcdir)
 dnl
-CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
-
-dnl
-dnl  Restore *FLAGS
-dnl
-VLC_RESTORE_FLAGS
+CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
 
 dnl
 dnl Sort the modules list
@@ -4332,6 +4181,7 @@ AC_CONFIG_FILES([
   modules/access/Makefile
   modules/access/bd/Makefile
   modules/access/dshow/Makefile
+  modules/access/dvb/Makefile
   modules/access/mms/Makefile
   modules/access/rtp/Makefile
   modules/access/rtsp/Makefile
@@ -4437,15 +4287,13 @@ echo rm -f .error\$\$ >>compile
 echo exit \$ERROR >>compile
 chmod a+x compile
 
-printf "
+echo "
 libvlc configuration
 --------------------
 version               : ${VERSION}
 system                : ${SYS}
 architecture          : ${ARCH}
-build flavour         : "
-test "${enable_optimizations}" != "no" && printf ${enable_optimizations}
-echo ""
+optimizations         : ${enable_optimizations}"
 if test "${enable_vlc}" != "no"; then
 echo "vlc aliases           :${ALIASES}"
 else