]> git.sesse.net Git - vlc/blobdiff - configure.ac
Update bookmark list before showing dialog.
[vlc] / configure.ac
index 39a5f25701ea293d19cbea19ef2b20526e5c090b..58d5122d62eee8e58963735d44d34b35f3e141c9 100644 (file)
@@ -1,10 +1,10 @@
 dnl Autoconf settings for vlc
 
-AC_COPYRIGHT([Copyright 2002-2013 VLC authors and VideoLAN])
+AC_COPYRIGHT([Copyright 1999-2015 VLC authors and VideoLAN])
 
-AC_INIT(vlc, 2.1.0-git)
-VERSION_MAJOR=2
-VERSION_MINOR=1
+AC_INIT(vlc, 3.0.0-git)
+VERSION_MAJOR=3
+VERSION_MINOR=0
 VERSION_REVISION=0
 VERSION_EXTRA=0
 VERSION_DEV=git
@@ -13,8 +13,8 @@ PKGDIR="vlc"
 AC_SUBST(PKGDIR)
 
 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
-CODENAME="Rincewind"
-COPYRIGHT_YEARS="1996-2013"
+CODENAME="Vetinari"
+COPYRIGHT_YEARS="1996-2015"
 
 AC_CONFIG_SRCDIR(src/libvlc.c)
 AC_CONFIG_AUX_DIR(autotools)
@@ -56,7 +56,11 @@ AC_PROG_CC_C99
 AC_USE_SYSTEM_EXTENSIONS
 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to 2 to get glibc warnings.])
 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
-AC_DEFINE([_REENTRANT],, [Define to expose reentrant functions.])
+AH_TOP([
+#ifndef _REENTRANT
+# define _REENTRANT
+#endif
+])
 AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.])
 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
 AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
@@ -73,6 +77,7 @@ AM_PROG_AS
 
 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
 AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
+AC_PATH_PROG(YASM, yasm)
 
 dnl Check for compiler properties
 AC_C_CONST
@@ -96,6 +101,20 @@ dnl
 dnl  Check the operating system
 dnl
 HAVE_WIN64="0"
+HAVE_IOS="0"
+HAVE_OSX="0"
+
+YASMFLAGS=""
+case "${host}" in
+    i?86*)
+    YASMFLAGS="-f elf32"
+        ;;
+    x86_64*)
+    YASMFLAGS="-f elf64"
+        ;;
+esac
+
+
 case "${host_os}" in
   "")
     SYS=unknown
@@ -106,7 +125,6 @@ case "${host_os}" in
   bsdi*)
     SYS=bsdi
     CFLAGS="${CFLAGS} -pthread"
-    VLC_ADD_LIBS([vcd cdda vcdx],[-ldvd])
     ;;
   freebsd*)
     SYS=freebsd
@@ -132,6 +150,7 @@ case "${host_os}" in
     case "${host}" in
       i?86*)
         ARCH_flag="-arch i386"
+        YASMFLAGS="-f macho32"
       ;;
       ppc64*)
         ARCH_flag="-arch ppc64"
@@ -141,6 +160,7 @@ case "${host_os}" in
       ;;
       x86_64*)
         ARCH_flag="-arch x86_64"
+        YASMFLAGS="-f macho64"
       ;;
       arm*)
         ac_cv_c_bigendian="no"
@@ -154,11 +174,16 @@ case "${host_os}" in
     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([motion rotate], [-Wl,-framework,IOKit,-framework,CoreFoundation])
     VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
-    VLC_ADD_LIBS([avcodec access_avio swscale postproc i420_rgb_mmx x264 x26410b],[-Wl,-read_only_relocs,suppress])
-    VLC_ADD_CFLAGS([motion rotate],[-fconstant-cfstrings])
-    VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation])
+    VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,CoreServices])
+
+    AC_EGREP_CPP(yes,
+            [#import <TargetConditionals.h>
+             #if TARGET_OS_IPHONE
+             yes
+             #endif],
+             [HAVE_IOS="1"],
+             [HAVE_OSX="1"])
 
     dnl Allow binaries created on Lion to run on earlier releases
     AC_EGREP_CPP(yes,
@@ -189,31 +214,30 @@ case "${host_os}" in
       [AS_HELP_STRING([--with-macosx-version-min=VERSION],
         [compile for Mac OS X VERSION and above])])
     if test "${with_macosx_version_min}" != "" ; then
-        MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
         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} -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
     fi
     ;;
   *mingw32* | *cygwin* | *wince* | *mingwce*)
     AC_CHECK_TOOL(WINDRES, windres, :)
     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
-    AC_PATH_PROGS(GENDEF,[${GENDEF} gendef], [false])
-    AS_IF([test "${GENDEF}" = "false"], [
-        AC_MSG_ERROR([Could not find gendef.])
-    ])
-    AH_TOP([#if defined(WIN32) && !defined(_WIN32_WINNT)])
+    AH_TOP([#if defined(_WIN32) && !defined(_WIN32_WINNT)])
     AH_TOP([# define _WIN32_WINNT 0x0502 /* Windows XP SP2 */])
     AH_TOP([#endif])
     AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
     AC_DEFINE([_UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
     AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
+    AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
+    AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
+    AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
+    AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
+    AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
+    AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
+    AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
+    AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
 
     case "${host_os}" in
       *mingw32*)
@@ -223,7 +247,7 @@ case "${host_os}" in
         dnl Check if we are using the mno-cygwin mode in which case we are
         dnl actually dealing with a mingw32 compiler.
         AC_EGREP_CPP(yes,
-            [#ifdef WIN32
+            [#ifdef _WIN32
              yes
              #endif],
             SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
@@ -231,10 +255,9 @@ case "${host_os}" in
     esac
 
     if test "${SYS}" = "mingw32"; then
-        VLC_ADD_LIBS([libvlccore],[-lwinmm])
-        VLC_ADD_LDFLAGS([vlc],[-mwindows])
-        VLC_ADD_LIBS([win32text],[-lgdi32])
-        VLC_ADD_LIBS([vcdx],[-lwinmm])
+        # DEP, ASLR, NO SEH
+        LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
+
         AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
         ac_default_prefix="`pwd`/_win32"
         DESTDIR="`pwd`/_win32/"
@@ -247,10 +270,12 @@ case "${host_os}" in
                 HAVE_WIN64="1"
                 WINDOWS_ARCH="x64"
                 PROGRAMFILES="PROGRAMFILES64"
+                YASMFLAGS="-f win64"
             ;;
             *)
                 WINDOWS_ARCH="x86"
                 PROGRAMFILES="PROGRAMFILES"
+                YASMFLAGS="-f win32"
             ;;
         esac
         AC_SUBST(WINDOWS_ARCH)
@@ -272,7 +297,8 @@ case "${host_os}" in
     ;;
   *os2*)
     SYS=os2
-    LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild"
+    LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
+    AC_LIBOBJ([freeaddrinfo])
     ;;
   *)
     SYS="${host_os}"
@@ -284,6 +310,10 @@ AM_CONDITIONAL(HAVE_OS2,     test "${SYS}" = "os2")
 AM_CONDITIONAL(HAVE_WIN32,   test "${SYS}" = "mingw32")
 AM_CONDITIONAL(HAVE_WIN64,   test "${HAVE_WIN64}" = "1")
 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
+AM_CONDITIONAL(HAVE_IOS,   test "${HAVE_IOS}" = "1")
+AM_CONDITIONAL(HAVE_OSX,   test "${HAVE_OSX}" = "1")
+
+AC_SUBST(YASMFLAGS)
 
 dnl
 dnl Sadly autoconf does not think about testing foo.exe when ask to test
@@ -366,11 +396,7 @@ AS_IF([test -n "${CONTRIB_DIR}"], [
   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"
-  ])
+  export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
   LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
 
   AS_IF([test "${SYS}" = "darwin"], [
@@ -384,6 +410,13 @@ AS_IF([test -n "${CONTRIB_DIR}"], [
 ])
 AC_SUBST(CONTRIB_DIR)
 
+dnl Add extras/tools to the PATH
+TOOLS_DIR="${srcdir}/extras/tools/build/bin"
+AS_IF([test -d "${TOOLS_DIR}"], [
+    TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
+    export PATH="${TOOLS_DIR}":$PATH
+])
+
 dnl
 dnl  Libtool
 dnl  It's very bad, but our former custom system was worst
@@ -402,9 +435,6 @@ LT_LANG([Windows Resource])
 
 DOLT
 
-m4_undefine([AC_DEPLIBS_CHECK_METHOD])
-m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
-
 lt_cv_deplibs_check_method=pass_all
 
 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
@@ -414,7 +444,7 @@ AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
 dnl
 dnl Gettext stuff
 dnl
-AM_GNU_GETTEXT_VERSION([0.18.1])
+AM_GNU_GETTEXT_VERSION([0.19.2])
 AM_GNU_GETTEXT([external], [need-ngettext])
 
 dnl
@@ -425,6 +455,7 @@ AM_ICONV
 dnl
 dnl checks for mingw
 AS_IF([test "${SYS}" = "mingw32"], [
+
 dnl Check for broken versions of mingw-runtime compatability library
     AC_MSG_CHECKING(for broken mingw-runtime)
     AC_PREPROC_IFELSE([AC_LANG_SOURCE([
@@ -442,10 +473,14 @@ dnl Check for broken versions of mingw-runtime compatability library
         AC_MSG_RESULT([present])
         AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher, or mingw-w64 version 3.0 or higher!])
     ])
+
     dnl force use of mingw provided c99 *printf over msvcrt
     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
 
-dnl Check for the need to include the mingwex lib for mingw32
+    dnl Add WinMainCRTStartup entry point to show it's a WinMain application
+    VLC_ADD_LDFLAGS([vlc],[-mwindows])
+
+    dnl Check for the need to include the mingwex lib for mingw32
     VLC_SAVE_FLAGS
     AC_CHECK_LIB(mingwex,opendir,
         AC_CHECK_LIB(mingw32,opendir,,
@@ -453,7 +488,7 @@ dnl Check for the need to include the mingwex lib for mingw32
     )
     VLC_RESTORE_FLAGS
 
-dnl Check for fnative-struct or mms-bitfields support for mingw32
+    dnl Check for fnative-struct or mms-bitfields support for mingw32
     VLC_SAVE_FLAGS
     CFLAGS="${CFLAGS} -mms-bitfields"
     CXXFLAGS="${CXXFLAGS} -mms-bitfields"
@@ -475,10 +510,17 @@ AC_ARG_ENABLE(winstore_app,
      AS_HELP_STRING([--enable-winstore-app],
                     [Build targetted for Windows Store apps (default disabled)]))
 
-AS_IF([test "${SYS}" = "mingw32"], [
-    AS_IF([test "${enable_winstore_app}" == "yes"], [
-       AC_DEFINE(WINAPI_FAMILY_APP, 1, [Define if you want to build for Windows Store apps])])
+vlc_winstore_app=0
+AS_IF([test "${SYS}" = "mingw32"],[
+  AS_IF([test "${enable_winstore_app}" = "yes"], [
+    vlc_winstore_app=1
+     VLC_ADD_LIBS([libvlccore], [-lole32 -lruntimeobject])
+    ],[
+     VLC_ADD_LIBS([libvlccore],[-lwinmm])
     ])
+  ])
+AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
+AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
 
 
 dnl
@@ -513,27 +555,17 @@ 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 isatty lstat memalign mmap openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale])
-AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r lldiv localtime_r nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp])
+AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r isatty lstat memalign mmap open_memstream openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale pthread_cond_timedwait_monotonic_np pthread_condattr_setclock])
+AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid lldiv nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp])
 AC_CHECK_FUNCS(fdatasync,,
   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
 ])
 
 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>
-                     #include <stdarg.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])])
+VLC_REPLACE_DECL([asprintf], [#include <stdio.h>])
+VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>])
+VLC_REPLACE_DECL([gmtime_r], [#include <time.h>])
+VLC_REPLACE_DECL([localtime_r], [#include <time.h>])
 
 dnl C11 static_assert()
 AC_MSG_CHECKING([for static_assert in assert.h])
@@ -566,7 +598,7 @@ AC_CHECK_TYPES([struct pollfd],,,
 [#include <sys/types.h>
 #if HAVE_POLL
 # include <poll.h>
-#elif defined (WIN32)
+#elif defined (_WIN32)
 # include <winsock2.h>
 #endif
 ])
@@ -584,17 +616,21 @@ AC_SEARCH_LIBS(connect, [socket], [
   ])
 ])
 
-AC_SEARCH_LIBS([getaddrinfo], [nsl], [
- AS_IF([test "$ac_cv_search_getaddrinfo" != "none required"], [
-    SOCKET_LIBS="$ac_cv_search_getaddrinfo $SOCKET_LIBS"
+AC_SEARCH_LIBS([inet_pton], [nsl], [
+ AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
+    SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
   ])
 ],, [${SOCKET_LIBS}])
 
 LIBS="${LIBS} ${SOCKET_LIBS}"
 AC_LINK_IFELSE([
-    AC_LANG_PROGRAM([#ifdef WIN32
+    AC_LANG_PROGRAM([#ifdef _WIN32
+        # if _WIN32_WINNT < 0x600
+        #  error Needs vista+
+        # endif
         #include <ws2tcpip.h>
         #else
+        #include <sys/socket.h>
         #include <arpa/inet.h>
         #endif], [
         char dst[[sizeof(struct in_addr)]];
@@ -602,10 +638,6 @@ AC_LINK_IFELSE([
     ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
 AC_CHECK_FUNCS([if_nameindex if_nametoindex])
 VLC_RESTORE_FLAGS
-
-AS_IF([test -n "$SOCKET_LIBS"], [
-  VLC_ADD_LIBS([access_http access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout sap stream_out_standard stream_out_rtp stream_out_raop vod_rtsp rtp oldrc netsync gnutls ts audioscrobbler lua remoteosd zvbi audiobargraph_a],[${SOCKET_LIBS}])
-])
 AC_SUBST(SOCKET_LIBS)
 
 dnl Check for socklen_t
@@ -614,7 +646,7 @@ 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>
-#ifdef WIN32
+#ifdef _WIN32
 # include <winsock2.h>
 # include <ws2tcpip.h>
 #else
@@ -631,7 +663,7 @@ AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.
 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
   [AC_TRY_COMPILE(
     [#include <sys/types.h>
-     #if defined( WIN32 )
+     #if defined( _WIN32 )
      # include <winsock2.h>
      #else
      # include <sys/socket.h>
@@ -653,7 +685,6 @@ 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 panoramix rotate noise grain scene kate lua chorus_flanger freetype avcodec access_avio swscale postproc i420_rgb faad twolame equalizer spatializer param_eq samplerate freetype mpc dmo quicktime qt4 compressor headphone_channel_mixer normvol audiobargraph_a speex opus mono colorthres extract ball access_imem hotkeys mosaic gaussianblur x26410b hqdn3d anaglyph oldrc ncurses],[-lm])
   LIBM="-lm"
 ], [
   LIBM=""
@@ -664,14 +695,17 @@ AC_CHECK_LIB(m,lrintf, [
   AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
   VLC_ADD_LIBS([skins2],[-lm])
 ])
+AC_CHECK_LIB(m,nanf,
+  AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
+)
 
 dnl Check for dynamic plugins
 LIBDL=""
 have_dynamic_objects="no"
 VLC_SAVE_FLAGS
-AC_SEARCH_LIBS(dlopen, [dl svld], [
-  AS_IF([test "$ac_cv_search_dlopen" != "none required"], [
-    LIBDL="$ac_cv_search_dlopen"
+AC_SEARCH_LIBS(dlsym, [dl svld], [
+  AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
+    LIBDL="$ac_cv_search_dlsym"
   ])
   have_dynamic_objects="yes"
 ])
@@ -689,7 +723,6 @@ AS_IF([test "${enable_shared}" = "no"], [
 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
 
 AC_SUBST(LIBDL)
-VLC_ADD_LIBS([lua],[$LIBDL])
 
 dnl Check for thread library
 LIBPTHREAD=""
@@ -721,26 +754,28 @@ AS_IF([test "${SYS}" != "mingw32"], [
 ])
 AC_SUBST(LIBPTHREAD)
 
+dnl
 dnl Check for headers
-AC_CHECK_HEADERS([search.h])
-AC_CHECK_HEADERS(getopt.h locale.h xlocale.h)
-AC_CHECK_HEADERS([sys/time.h sys/ioctl.h])
-AC_CHECK_HEADERS([arpa/inet.h netinet/udplite.h sys/eventfd.h])
+dnl
+
+dnl  POSIX
+AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h sys/shm.h sys/socket.h])
 AC_CHECK_HEADERS([net/if.h], [], [],
-  [
-    #include <sys/types.h>
-    #include <sys/socket.h>
-  ])
-AC_CHECK_HEADERS([sys/mount.h], [], [],
-  [
-    #include <sys/param.h>
-  ])
+[
+#include <sys/types.h>
+#include <sys/socket.h>
+])
+AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
+AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])
+
+dnl  BSD
+AC_CHECK_HEADERS([netinet/udplite.h sys/param.h sys/mount.h])
+
+dnl  GNU/Linux
+AC_CHECK_HEADERS([getopt.h linux/dccp.h linux/magic.h mntent.h sys/eventfd.h])
 
-if test "${SYS}" != "mingw32"; then
-  AC_CHECK_HEADERS(machine/param.h sys/shm.h)
-  AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
-  AC_CHECK_HEADERS(syslog.h mntent.h)
-fi # end "${SYS}" != "mingw32"
+dnl  MacOS
+AC_CHECK_HEADERS([xlocale.h])
 
 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.]) dnl ` (fix VIM syntax highlight
@@ -748,11 +783,6 @@ AC_CHECK_TYPE(ssize_t,, [
   AC_DEFINE(ssize_t, int)
 ])
 
-dnl Check for threads library
-if test "${SYS}" != "mingw32"; then
-  AC_CHECK_HEADERS(pthread.h)
-fi # end "${SYS}" != "mingw32"
-
 dnl It seems that autoconf detects pkg-config only during the first
 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
 dnl it is nested within a conditional block, so it was not working right.
@@ -776,14 +806,14 @@ AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
 if test "${have_zlib}" = "yes"
 then
-  VLC_ADD_LIBS([access_http skins2 sap unzip zip],[-lz])
+  VLC_ADD_LIBS([skins2 sap unzip zip],[-lz])
   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
     AC_CHECK_HEADERS([unzip.h], [
       have_minizip=yes
       MINIZIP_LIBS="-lminizip -lz"
     ], [
       VLC_ADD_CPPFLAGS([skins2], [-I\\\$(top_srcdir)/modules/access/zip/unzip])
-      VLC_ADD_LIBS([skins2], [\\\$(top_builddir)/modules/access/libunzip.la])
+      VLC_ADD_LIBS([skins2], [\\\$(top_builddir)/modules/libunzip.la])
       have_minizip=no
     ])
   ])
@@ -810,7 +840,7 @@ AC_ARG_ENABLE(dbus,
     [compile D-Bus message bus support (default enabled)])])
 have_dbus="no"
 AS_IF([test "${enable_dbus}" != "no"], [
-  PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.0.0], [
+  PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
     have_dbus="yes"
   ], [
     AS_IF([test -n "${enable_dbus}"], [
@@ -822,6 +852,16 @@ AS_IF([test "${enable_dbus}" != "no"], [
 ])
 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
 
+
+dnl Check for systemd
+PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
+  have_systemd="yes"
+], [
+  AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
+])
+AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])
+
+
 dnl Check for ntohl, etc.
 VLC_SAVE_FLAGS
 CFLAGS="${CFLAGS} -Wall -Werror"
@@ -840,7 +880,7 @@ dnl
 dnl  Compiler warnings
 dnl
 
-RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast write-strings missing-prototypes volatile-register-var error-implicit-function-declaration])
+RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast write-strings missing-prototypes volatile-register-var error-implicit-function-declaration init-self logical-op])
 RDC_PROG_CC_FLAGS([-pipe])
 AC_LANG_PUSH([C++])
 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
@@ -925,33 +965,20 @@ AC_ARG_ENABLE(optimizations,
 dnl Check for various optimization flags
 AS_IF([test "${enable_optimizations}" != "no"], [
 
-  dnl -O4 and -O3 only in production builds
-  AS_IF([test "{enable_debug}" = "no"], [
+  dnl -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} -O3"
+    CXXFLAGS="${CXXFLAGS} -O3"
+    OBJCFLAGS="${OBJCFLAGS} -O3"
+    AC_CACHE_CHECK([if $CC accepts -O3],  [ac_cv_c_o3], [
       AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
-        ac_cv_c_o4=yes
+        ac_cv_c_o3=yes
       ], [
-        ac_cv_c_o4=no
-      ])
-    ])
-    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], [
-        AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
-          ac_cv_c_o3=yes
-        ], [
-          ac_cv_c_o3=no
-        ])
+        ac_cv_c_o3=no
       ])
-      AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
     ])
+    AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
   ])
 
   dnl Check for -ffast-math
@@ -969,8 +996,13 @@ AS_IF([test "${enable_optimizations}" != "no"], [
   AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
   AH_BOTTOM([
 #ifndef __FAST_MATH__
-# pragma STDC FENV_ACCESS OFF
-# pragma STDC FP_CONTRACT ON
+# ifndef _MSC_VER
+#  pragma STDC FENV_ACCESS OFF
+#  pragma STDC FP_CONTRACT ON
+# else
+#  pragma fenv_access(off)
+#  pragma fp_contract(on)
+# endif
 #endif
 ])
 
@@ -1006,23 +1038,18 @@ AS_IF([test "${enable_optimizations}" != "no"], [
   ])
 ])
 
-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], [
-    AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
-      ac_cv_ld_darwin=yes
-    ], [
-      ac_cv_ld_darwin=no
-    ])
-  ])
-  AS_IF([test "${ac_cv_ld_darwin}" != "no"], [
-    VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
+VLC_SAVE_FLAGS
+LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
+AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
+  AC_TRY_LINK([],, [
+    ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
+  ], [
+    ac_cv_ld_bsymbolic=""
   ])
-  VLC_RESTORE_FLAGS
 ])
+VLC_RESTORE_FLAGS
+SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
+AC_SUBST(SYMBOLIC_LDFLAGS)
 
 dnl Checks for __attribute__(aligned()) directive
 VLC_SAVE_FLAGS
@@ -1372,10 +1399,11 @@ AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_arm_neon}" = "yes"])
 AC_ARG_ENABLE(altivec,
   [AS_HELP_STRING([--disable-altivec],
     [disable AltiVec optimizations (default auto)])],, [
-  AS_IF([test "${host_cpu}" = "powerpc"],
+  AS_CASE("${host_cpu}", [powerpc*],
         [enable_altivec=yes], [enable_altivec=no])
 ])
 have_altivec="no"
+ALTIVEC_CFLAGS=""
 AS_IF([test "${enable_altivec}" = "yes"], [
   ARCH="${ARCH} altivec";
   VLC_SAVE_FLAGS
@@ -1383,9 +1411,9 @@ AS_IF([test "${enable_altivec}" = "yes"], [
     [ac_cv_altivec_inline],
     [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
          ac_cv_altivec_inline="yes",
-         [CFLAGS="${CFLAGS} -Wa,-m7400"
+         [CFLAGS="${CFLAGS} -Wa,-maltivec"
           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
-            [ac_cv_altivec_inline="-Wa,-m7400"],
+            [ac_cv_altivec_inline="-Wa,-maltivec"],
             ac_cv_altivec_inline=no)
          ])])
   VLC_RESTORE_FLAGS
@@ -1393,66 +1421,31 @@ AS_IF([test "${enable_altivec}" = "yes"], [
     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([memcpyaltivec],[${ac_cv_altivec_inline}])
-      VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
+      ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
       VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
     ])
     have_altivec="yes"
   ])
 
-dnl The AltiVec C extensions
-dnl
-dnl There are several possible cases:
-dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
-dnl                      need <altivec.h>
-dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
-dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
-dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
-dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
-dnl - Others: test should fail
   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} -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} -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} -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} -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} -fvec"
-               AC_TRY_COMPILE([#include <altivec.h>],
-                 [vec_ld(0, (unsigned char *)0);],
-                 [ac_cv_c_altivec="-fvec"],
-                 [ac_cv_c_altivec=no])
-              ])
-           ])
-        ])
-     ])
+  [ac_cv_c_altivec], [
+    CFLAGS="${CFLAGS} -maltivec"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+[#include <altivec.h>]], [
+[vec_ld(0, (unsigned char *)0);]])], [
+      ac_cv_c_altivec="-maltivec"
+    ], [
+      ac_cv_c_altivec="no"
+    ])
   ])
-
   VLC_RESTORE_FLAGS
   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
     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}])
+    ALTIVEC_CFLAGS="$ALTIVEC_FLAGS ${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}"
+    VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
     have_altivec="yes"
   ])
   AC_CHECK_HEADERS(altivec.h)
@@ -1464,9 +1457,10 @@ dnl - Others: test should fail
     [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])
+    VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
   ])
 ])
+AC_SUBST(ALTIVEC_CFLAGS)
 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
 
 dnl
@@ -1507,34 +1501,38 @@ AC_ARG_ENABLE(lua,
     [disable LUA scripting support (default enabled)])])
 if test "${enable_lua}" != "no"
 then
-  PKG_CHECK_MODULES(LUA, lua5.1,
+  PKG_CHECK_MODULES(LUA, lua5.2,
     [ have_lua=yes ],
     [
-    AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
-    PKG_CHECK_MODULES(LUA, lua >= 5.1,
+    AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
+
+    PKG_CHECK_MODULES(LUA, lua5.1,
       [ have_lua=yes ],
       [
-        AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
-        have_lua=yes
-        AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
-          [],
-          [ have_lua=no ] )
-        AC_CHECK_LIB(  lua5.1 , luaL_newstate,
-          [LUA_LIBS="-llua5.1"],
-          AC_CHECK_LIB( lua51 , luaL_newstate,
-            [LUA_LIBS="-llua51"],
-            AC_CHECK_LIB( lua , luaL_newstate,
-              [LUA_LIBS="-llua"],
-              [ have_lua=no
-              ], [-lm])
-          )
-        )
+      AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
+      PKG_CHECK_MODULES(LUA, lua >= 5.1,
+        [ have_lua=yes ],
+        [
+          AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
+          have_lua=yes
+          AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
+            [],
+            [ have_lua=no ] )
+          AC_CHECK_LIB(  lua5.2 , luaL_newstate,
+            [LUA_LIBS="-llua5.2"],
+          AC_CHECK_LIB( lua5.1 , luaL_newstate,
+            [LUA_LIBS="-llua5.1"],
+            AC_CHECK_LIB( lua51 , luaL_newstate,
+              [LUA_LIBS="-llua51"],
+              AC_CHECK_LIB( lua , luaL_newstate,
+                [LUA_LIBS="-llua"],
+                [ have_lua=no
+                ], [-lm])
+            )))
+        ])
       ])
     ])
-  if test "x${have_lua}" = "xyes" ;  then
-     VLC_ADD_LIBS([lua],[$LUA_LIBS])
-     VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
-  else
+  if test "x${have_lua}" != "xyes" ;  then
       AC_MSG_ERROR([Could not find lua. Lua is needed for some interfaces (rc, telnet, http) as well as many other custom scripts. Use --disable-lua to ignore this error.])
   fi
   AC_ARG_VAR([LUAC], [LUA byte compiler])
@@ -1542,7 +1540,7 @@ then
   AS_IF([test "${LUAC}" = "false"], [
     AC_MSG_ERROR([Could not find the LUA byte compiler.])
   ])
-  AS_IF([test -f ${CONTRIB_DIR}/lib/liblua.a -a `echo|${LUAC} -o - -|od -j 8 -N 2 -t x2|head -n 1|cut -d' ' -f2` != 0404], [
+  AS_IF([test -d "${CONTRIB_DIR}" -a -f "${CONTRIB_DIR}/lib/liblua.a" -a `echo|${LUAC} -o - -|od -j 8 -N 2 -t x2|head -n 1|tr -s ' '|cut -d' ' -f2` != 0404], [
     AC_MSG_ERROR([You need 32-bits luac when using using lua from contrib.])
   ])
 fi
@@ -1578,6 +1576,19 @@ AS_IF([test "${enable_vlm}" != "no"], [
 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
 
 
+dnl
+dnl Addons manager storage and repositories modules
+dnl
+AC_ARG_ENABLE(addonmanagermodules,
+  [AS_HELP_STRING([--disable-addonmanagermodules],
+    [disable the addons manager modules (default enabled)])])
+if test "${enable_addonmanagermodules}" != "no"
+then
+  AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
+fi
+AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
+
+
 dnl
 dnl  Input plugins
 dnl
@@ -1585,21 +1596,9 @@ dnl
 EXTEND_HELP_STRING([Input plugins:])
 
 dnl
-dnl libproxy support
+dnl  libarchive access module
 dnl
-AC_ARG_ENABLE(libproxy,
-  [AS_HELP_STRING([--enable-libproxy],[support libproxy (default auto)])])
-AS_IF([test "${enable_libproxy}" != "no"], [
-  PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
-    AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
-    VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
-    VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
-  ], [
-    AS_IF([test -n "${enable_libproxy}"], [
-      AC_MSG_ERROR([${LIBPROXY_PKG_ERRORS}.])
-    ])
-  ])
-])
+PKG_ENABLE_MODULES_VLC([ARCHIVE], [access_archive], [libarchive >= 3.1.0], (libarchive support), [auto])
 
 dnl
 dnl  live555 input
@@ -1609,74 +1608,83 @@ AC_ARG_ENABLE(live555,
     [enable RTSP input through live555 (default enabled)])])
 
 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
-  AC_LANG_PUSH(C++)
-  VLC_SAVE_FLAGS
-
-  dnl detect include paths
-  AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment.hh"], [
-    CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
+  PKG_CHECK_MODULES(LIVE555, live555, [
+    VLC_ADD_PLUGIN([live555])
+    VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
+    VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
   ], [
-    AS_IF([test ${SYS} != "os2"], [
-      LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
-      CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
+    AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
+
+    AC_LANG_PUSH(C++)
+    VLC_SAVE_FLAGS
+
+    dnl detect include paths
+    AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment.hh"], [
+      CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
     ], [
-      LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
-      CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
-      LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
+      AS_IF([test "${SYS}" != "os2"], [
+        LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
+        CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
+      ], [
+        LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
+        CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
+        LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
+      ])
     ])
-  ])
 
-  dnl CPP Flags
-  AS_IF([test "${SYS}" = "solaris"], [
-    CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
-  ])
-  CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
-  LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
+    dnl CPP Flags
+    AS_IF([test "${SYS}" = "solaris"], [
+      CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
+    ])
+    CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
+    LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
 
-  dnl version check
-  AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
-    AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
+    dnl version check
+    AC_CACHE_CHECK([for live555 version 1324598400 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 < 1324598400)
 # error BOOM
 #endif]])
-    ], [
-      ac_cv_live555="yes"
-    ], [
-      ac_cv_live555="no"
+      ], [
+        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:
+    AS_IF([test "$ac_cv_live555" = "no"], [
+      AC_MSG_WARN([live555 is missing or its installed version is too old:
 Version 2011.12.23 or later is required to proceed.
 You can get an updated one from http://www.live555.com/liveMedia .])
-    AS_IF([test -n "${enable_live555}"], [
-      AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
-    ])
-  ], [
-    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"
-    ])
+      AS_IF([test -n "${enable_live555}"], [
+        AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
+      ])
+    ], [
+      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"
+      ])
 
-    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}])
-    VLC_ADD_LDFLAGS([live555], [${LDFLAGS_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, [
+      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}])
+      VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
+      AC_CHECK_LIB(liveMedia_pic, main, [
         VLC_ADD_PLUGIN([live555])
-        VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
-      ],[],[${other_libs}])],[${other_libs_pic}])
+        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++)
   ])
-  VLC_RESTORE_FLAGS
-  AC_LANG_POP(C++)
 ])
 
 dnl
@@ -1691,46 +1699,29 @@ dnl
 AC_ARG_ENABLE(linsys,
   [AS_HELP_STRING([--enable-linsys],
     [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
-if test "$SYS" = "linux" -a "${enable_linsys}" != "no"; then
+AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
   VLC_ADD_PLUGIN([linsys_hdsdi])
-  PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28],
-    [ VLC_ADD_LIBS([linsys_sdi],[$LINSYS_SDI_LIBS])
-      VLC_ADD_CFLAGS([linsys_sdi],[$LINSYS_SDI_CFLAGS])
-      VLC_ADD_PLUGIN([linsys_sdi]) ],
-    [AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])]
-  )
-fi
+  PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
+    VLC_ADD_PLUGIN([linsys_sdi])
+  ], [
+    AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
+  ])
+])
 
 dnl
 dnl dvdread module: check for libdvdread
 dnl
-PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread], [dvdread input module], [auto])
+PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 4.9.0], [dvdread input module], [auto])
 
 dnl
 dnl libdvdnav plugin
 dnl
-AC_ARG_ENABLE(dvdnav,
-  [AS_HELP_STRING([--disable-dvdnav],
-    [disable DVD navigation with libdvdnav (default auto)])])
-if test "${enable_dvdnav}" != "no"
-then
-  PKG_CHECK_MODULES(DVDNAV, dvdnav, [
-    VLC_ADD_PLUGIN([dvdnav])
-    VLC_ADD_CFLAGS([dvdnav],[${DVDNAV_CFLAGS}])
-    VLC_ADD_LIBS([dvdnav],[${DVDNAV_LIBS}])
-    AC_CHECK_LIB(dvdnav, dvdnav_get_video_resolution,
-      AC_DEFINE(HAVE_DVDNAV_GET_VIDEO_RESOLUTION, 1, [Define if you have dvdnav_get_video_resolution.]),
-        [], [${LIBS_dvdnav}])
-    AC_CHECK_LIB(dvdnav, dvdnav_describe_title_chapters,
-      AC_DEFINE(HAVE_DVDNAV_DESCRIBE_TITLE_CHAPTERS, 1, [Define if you have dvdnav_describe_title_chapters.]),
-        [], [${LIBS_dvdnav}])],
-      [AC_MSG_WARN([${DVDNAV_PKG_ERRORS}.])])
-fi
+PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav > 4.9.0], [DVD with navigation input module (dvdnav)], [auto])
 
 dnl
 dnl  Blu-ray Disc Support with libbluray
 dnl
-PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.2.1], (libbluray for Blu-ray disc support ) )
+PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.5.0], (libbluray for Blu-ray disc support ) )
 
 dnl
 dnl  OpenCV wrapper and example filters
@@ -1741,13 +1732,18 @@ PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0]
 dnl
 dnl  libsmbclient plugin
 dnl
-PKG_ENABLE_MODULES_VLC([SMBCLIENT], [access_smb], [smbclient], (SMB/CIFS support), [auto])
+PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smb], [smbclient], (SMB/CIFS support), [auto])
+AS_IF([test "${SYS}" = "mingw32"], [ VLC_ADD_PLUGIN([smb]) ])
 
+dnl
+dnl  liBDSM access module
+dnl
+PKG_ENABLE_MODULES_VLC([DSM], [dsm], [libdsm >= 0.0.4], [libdsm SMB/CIFS access/sd module], [auto])
 
 dnl
 dnl sftp access support
 dnl
-PKG_ENABLE_MODULES_VLC([SFTP], [access_sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
+PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
 
 dnl
 dnl  Video4Linux 2
@@ -1795,7 +1791,7 @@ AM_CONDITIONAL(HAVE_DECKLINK, [ test "${have_decklink}" != "no" ])
 dnl
 dnl  gnomeVFS access module
 dnl
-PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
+PKG_ENABLE_MODULES_VLC([GNOMEVFS], [gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
 
 dnl
 dnl  VCDX modules
@@ -1841,18 +1837,11 @@ then
     AC_MSG_RESULT(no)
   ])
 
-  if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2"
+  if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
   then
     VLC_ADD_PLUGIN([vcd cdda])
   fi
 
-  if test "${SYS}" = "darwin"
-  then
-    VLC_ADD_PLUGIN([vcd cdda])
-    VLC_ADD_LIBS([vcd vcdx cdda],[-Wl,-framework,IOKit,-framework,CoreFoundation])
-    VLC_ADD_LIBS([vcdx cdda],[-liconv])
-  fi
-
   if test "$enable_libcddb" != "no"; then
     PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
       HAVE_LIBCDDB=yes
@@ -1892,22 +1881,21 @@ AC_ARG_ENABLE(screen,
     [disable screen capture (default enabled)])])
 if test "${enable_screen}" != "no"; then
   if test "${SYS}" = "darwin"; then
-    AC_CHECK_HEADERS(OpenGL/gl.h, [
-      AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
-        VLC_ADD_PLUGIN([screen])
-      ])
+    AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
+      VLC_ADD_PLUGIN([screen])
     ])
   fi
 fi
+AM_CONDITIONAL(HAVE_MAC_SCREEN, [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
 
 dnl
 dnl  VNC/RFB access module
 dnl
-PKG_ENABLE_MODULES_VLC([LIBVNC], [libvnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
+PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
 
 dnl  RDP/Remote Desktop access module
 dnl
-PKG_ENABLE_MODULES_VLC([LIBFREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
+PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
 
 dnl
 dnl  Real RTSP plugin
@@ -1915,7 +1903,7 @@ dnl
 AC_ARG_ENABLE(realrtsp,
   [  --enable-realrtsp       Real RTSP module (default disabled)])
 if test "${enable_realrtsp}" = "yes"; then
-  VLC_ADD_PLUGIN([realrtsp])
+  VLC_ADD_PLUGIN([access_realrtsp])
 fi
 
 dnl
@@ -1925,7 +1913,6 @@ AC_ARG_ENABLE(macosx-eyetv,
 if test "x${enable_macosx_eyetv}" != "xno" &&
   (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
 then
-  VLC_ADD_LIBS([access_eyetv], [-Wl,-framework,Foundation])
   VLC_ADD_PLUGIN([access_eyetv])
 fi
 
@@ -1941,6 +1928,30 @@ then
 fi
 AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
 
+dnl
+dnl AVFoundation
+AC_SUBST(have_avfoundation, ["no"])
+AC_ARG_ENABLE(macosx-avfoundation,
+  [  --enable-macosx-avfoundation Mac OS X avcapture (video) module (default enabled on Mac OS X)])
+if test "x${enable_macosx_avfoundation}" != "xno" &&
+  (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
+then
+  SAVED_LIBS="${LIBS}"
+  LIBS="-framework AVFoundation"
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
+  LIBS="${SAVED_LIBS}"
+  if test "${have_avfoundation}" != "no"
+  then
+    VLC_ADD_PLUGIN([avcapture])
+  fi
+fi
+AM_CONDITIONAL(HAVE_AVFOUNDATION, [test "${have_avfoundation}" != "no"])
+
+dnl
+dnl  DCP plugin (using asdcplib)
+dnl
+PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
+AM_CONDITIONAL(HAVE_ASDCP, [test "${have_asdcp}" = "yes"])
 
 dnl
 dnl  Demux plugins
@@ -1952,7 +1963,7 @@ dnl
 dnl  libdvbpsi check for ts mux/demux
 dnl
 have_dvbpsi="no"
-PKG_WITH_MODULES([DVBPSI], [libdvbpsi], [have_dvbpsi="yes"])
+PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.0.0], [have_dvbpsi="yes"])
 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
 
 
@@ -2008,9 +2019,12 @@ AS_IF([test "${enable_sid}" != "no"], [
 dnl
 dnl  ogg demux plugin
 dnl
-PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
+PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
+PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
+    AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
+],[true])
+PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
 if test "${enable_sout}" != "no"; then
-    PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg mux support], [auto])
 dnl Check for libshout
     PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
 fi
@@ -2044,7 +2058,6 @@ if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
              #endif],
             [AC_MSG_RESULT([yes])
               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
-              VLC_ADD_CXXFLAGS([mkv],[])
               AC_CHECK_LIB(ebml_pic, main, [
                 VLC_ADD_PLUGIN([mkv])
                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
@@ -2077,6 +2090,7 @@ if test "${enable_mod}" != "no" ; then
     PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
           VLC_ADD_PLUGIN([mod])
           VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
+          VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
           VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
     ],[
        AS_IF([test -n "${enable_mod}"],
@@ -2117,14 +2131,10 @@ then
 fi
 
 dnl
-dnl shine fixed point mp3 encoder
+dnl shine encoder plugin
 dnl
-AC_ARG_ENABLE(shine,
-  [  --enable-shine          shine mp3 encoding module (default disabled)])
-if test "${enable_shine}" = "yes"
-then
-  VLC_ADD_PLUGIN([shine])
-fi
+PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
+
 
 dnl
 dnl openmax il codec plugin
@@ -2189,61 +2199,45 @@ fi
 dnl
 dnl  mad plugin
 dnl
+have_mad="no"
+MAD_CFLAGS=""
+MAD_LIBS=""
+
+AC_ARG_WITH(mad, [  --with-mad=PATH         path to libmad], [
+  enable_mad="yes"
+], [
+  with_mad="no"
+])
+AS_IF([test "${with_mad}" != "no"], [
+  MAD_CFLAGS="-I${with_mad}/include"
+  MAD_LIBS="-L${with_mad}/lib"
+])
+
 AC_ARG_ENABLE(mad,
   [  --enable-mad            libmad module (default enabled)])
-if test "${enable_mad}" != "no"
-then
-  AC_ARG_WITH(mad,
-    [  --with-mad=PATH         path to libmad],[],[])
-  if test "${with_mad}" != "no" -a -n "${with_mad}"
-  then
-    VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
-    VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
-  fi
-
-  AC_ARG_WITH(mad-tree,
-    [  --with-mad-tree=PATH    mad tree for static linking],[],[])
-  if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
-  then
-    real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
-    if test -z "${real_mad_tree}"
-    then
-      dnl  The given directory can't be found
-      AC_MSG_RESULT(no)
-      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})
-    if test -f ${real_mad_tree}/mad.h
-    then
-      AC_MSG_RESULT(yes)
-      VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
-      VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
-      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 has not been compiled ])
-      ],[])
-      VLC_RESTORE_FLAGS
-    else
-      AC_MSG_RESULT(no)
-      AC_MSG_ERROR([the specified tree does not have mad.h])
-    fi
-  else
-    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.]) ])
+AS_IF([test "${enable_mad}" != "no"], [
+  VLC_SAVE_FLAGS
+  CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
+  LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
+  AC_CHECK_HEADERS(mad.h, [
     AC_CHECK_LIB(mad, mad_bit_init, [
-      VLC_ADD_PLUGIN([mpgatofixed32])
-      VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
-      [ AC_MSG_ERROR([Cannot find libmad library...]) ])
-    VLC_RESTORE_FLAGS
-  fi
-fi
+      have_mad="yes"
+      MAD_LIBS="${MAD_LIBS} -lmad"
+    ])
+  ])
+  VLC_RESTORE_FLAGS
+  AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
+    AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
+  ])
+])
+AC_SUBST(MAD_CFLAGS)
+AC_SUBST(MAD_LIBS)
+AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
+
+dnl  mpg123 plugin
+dnl
+dnl
+PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
 
 
 AC_ARG_ENABLE(merge-ffmpeg,
@@ -2252,12 +2246,39 @@ 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],
-  [AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)])
-VLC_RESTORE_FLAGS
+AC_MSG_CHECKING([for libavutil variant])
+PKG_CHECK_EXISTS([libavutil], [
+  libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
+  libavutil_micro="${libavutil_version##*.}"
+  AS_IF([test ${libavutil_micro} -le 99], [
+    avfork="libav"
+  ], [
+    avfork="ffmpeg"
+  ])
+], [
+  avfork="none"
+])
+AC_MSG_RESULT([${avfork}])
+
+dnl
+dnl gstreamer stuff
+dnl
+AC_ARG_ENABLE(gst-decode,
+  [  --enable-gst-decode     GStreamer based decoding support (currently supports only video decoding) (default auto)])
+
+have_gst_decode="no"
+AS_IF([test "${enable_gst_decode}" != "no"], [
+  PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
+    PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
+      have_gst_decode="yes"
+    ], [
+      AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
+    ])
+  ], [
+    AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
+  ])
+])
+AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
 
 dnl
 dnl  avcodec decoder/encoder plugin
@@ -2265,21 +2286,15 @@ dnl
 AC_ARG_ENABLE(avcodec,
 [  --enable-avcodec        libavcodec codec (default enabled)])
 AS_IF([test "${enable_avcodec}" != "no"], [
-  PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 53.34.0 libavutil >= 51.22.0], [
-    PKG_CHECK_EXISTS([libavcodec < 56],, [
-      AC_MSG_ERROR([libavcodec versions 56 and later are not supported yet.])
-    ])
+  PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 54.25.0 libavutil >= 52.0.0], [
+    dnl PKG_CHECK_EXISTS([libavcodec < 56],, [
+    dnl   AC_MSG_ERROR([libavcodec versions 56 and later are not supported yet.])
+    dnl ])
     VLC_SAVE_FLAGS
     CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
     CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
     AC_CHECK_HEADERS(libavcodec/avcodec.h)
     AC_CHECK_HEADERS(libavutil/avutil.h)
-    VLC_ADD_PLUGIN([avcodec])
-    VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
-    AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
-      VLC_ADD_LIBS([avcodec],[-Wl,-Bsymbolic])
-    ])
-    VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
     VLC_RESTORE_FLAGS
     have_avcodec="yes"
   ],[
@@ -2288,6 +2303,7 @@ AS_IF([test "${enable_avcodec}" != "no"], [
 ], [
   have_avcodec="no"
 ])
+AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
 
 dnl
 dnl libva needs avcodec
@@ -2298,30 +2314,50 @@ AC_ARG_ENABLE(libva,
 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
   AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
 ])
-have_avcodec_vaapi="no"
-AS_IF([test "${enable_libva}" != "no" -a "${have_avcodec}" == "yes"], [
-  PKG_CHECK_MODULES(LIBVA, [libva libva-x11], [
-    VLC_SAVE_FLAGS
-    CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
-    CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
-    AC_CHECK_HEADERS(libavcodec/vaapi.h, [
-      AC_MSG_NOTICE([VAAPI acceleration activated])
-      have_avcodec_vaapi="yes"
-    ],[
-      AS_IF([test -n "${enable_libva}"], [
-        AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
-      ], [
-        AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
-      ])
-    ])
-    VLC_RESTORE_FLAGS
-  ],[
+
+have_vaapi="no"
+have_vaapi_drm="no"
+have_vaapi_x11="no"
+AS_IF([test "${enable_libva}" != "no"], [
+  PKG_CHECK_EXISTS([libva], [
+    have_vaapi="yes"
+  ], [
     AS_IF([test -n "${enable_libva}"], [
       AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
     ], [
       AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
     ])
   ])
+  PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
+    have_vaapi_drm="yes"
+  ], [
+    AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
+  ])
+  PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
+    have_vaapi_x11="yes"
+  ], [
+    AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
+  ])
+])
+AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
+AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
+
+have_avcodec_vaapi="no"
+AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
+  VLC_SAVE_FLAGS
+  CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
+  CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
+  AC_CHECK_HEADERS([libavcodec/vaapi.h], [
+    AC_MSG_NOTICE([VAAPI acceleration activated])
+    have_avcodec_vaapi="yes"
+  ],[
+    AS_IF([test -n "${enable_libva}"], [
+      AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
+    ], [
+      AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
+    ])
+  ])
+  VLC_RESTORE_FLAGS
 ])
 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
 
@@ -2390,7 +2426,13 @@ AS_IF([test "${enable_vda}" != "no"], [
       AC_MSG_ERROR([--enable-vda and --disable-avcodec options are mutually exclusive.])
     ])
  ])
-  fi
+ AS_IF([test "${have_avcodec_vda}" = "yes"], [
+     SAVE_LIBS=$LIBS
+     LIBS="$LIBS $AVCODEC_LIBS"
+     AC_CHECK_FUNCS([av_vda_alloc_context])
+     LIBS=$SAVE_LIBS
+ ])
+ fi
 ])
 AM_CONDITIONAL([HAVE_AVCODEC_VDA], [test "${have_avcodec_vda}" = "yes"])
 
@@ -2402,31 +2444,25 @@ AC_ARG_ENABLE(avformat,
 [  --enable-avformat       libavformat containers (default enabled)],, [
   enable_avformat="${have_avcodec}"
 ])
-if test "${enable_avformat}" != "no"
-then
-  PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil],
-    [
+have_avformat="no"
+AS_IF([test "${enable_avformat}" != "no"], [
+  PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
+      have_avformat="yes"
       VLC_SAVE_FLAGS
       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
       AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
+      AC_CHECK_HEADERS(libavcodec/avcodec.h)
       AC_CHECK_HEADERS(libavutil/avutil.h)
       AS_IF([test "$enable_merge_ffmpeg" = "no"], [
-        VLC_ADD_PLUGIN([avformat access_avio])
-        VLC_ADD_LIBS([access_avio],[$AVFORMAT_LIBS $AVUTIL_LIBS])
-        VLC_ADD_CFLAGS([access_avio],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
-        AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
-          VLC_ADD_LDFLAGS([avformat access_avio],[-Wl,-Bsymbolic])
-        ])
-      ], [
-        VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
-        VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
+        have_avformat="no"
       ])
       VLC_RESTORE_FLAGS
     ],[
       AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
   ])
-fi
+])
+AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
 
 dnl
 dnl  swscale image scaling and conversion plugin
@@ -2443,11 +2479,12 @@ then
       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
       AC_CHECK_HEADERS(libswscale/swscale.h)
+      AC_CHECK_HEADERS(libavutil/avutil.h)
       VLC_ADD_PLUGIN([swscale])
       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
-      AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
-        VLC_ADD_LIBS([swscale],[-Wl,-Bsymbolic])
+      AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
+        VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
       ])
       VLC_RESTORE_FLAGS
     ],[
@@ -2470,8 +2507,6 @@ then
       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
       AC_CHECK_HEADERS(postproc/postprocess.h)
       VLC_ADD_PLUGIN([postproc])
-      VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
-      VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
       VLC_RESTORE_FLAGS
     ],[
       AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
@@ -2483,47 +2518,46 @@ dnl  faad decoder plugin
 dnl
 AC_ARG_ENABLE(faad,
 [  --enable-faad           faad codec (default auto)])
-if test "${enable_faad}" != "no"; then
-  AC_ARG_WITH(faad-tree,  [  --with-faad-tree=PATH   faad tree for static linking])
-  if test -n "${with_faad_tree}"; then
-    AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
-    real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
-    if test -z "${real_faad_tree}"; then
-      dnl  The given directory can't be found
-      AC_MSG_RESULT(no)
-      AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
-    fi
-    if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"; then
-      dnl  Use the custom faad
-      AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
+have_faad="no"
+AS_IF([test "${enable_faad}" != "no"], [
+  AC_CHECK_HEADERS([faad.h], [
+    AC_CHECK_LIB(faad, faacDecOpen, [have_faad="yes"],, [$LIBM])
+    AC_CHECK_LIB(faad, NeAACDecOpen, [have_faad="yes"],, [$LIBM])
+
+    AS_IF([test "${have_faad}" = "yes"], [
       VLC_ADD_PLUGIN([faad])
-      VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
-      VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
-    else
-      dnl  The given libfaad wasn't built
-      AC_MSG_RESULT(no)
-      AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
-    fi
-  else
-    VLC_SAVE_FLAGS
-    CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
-    LDFLAGS="${LDFLAGS} ${LIBS_faad}"
-    AC_CHECK_HEADERS(faad.h,
-      [ AC_CHECK_LIB(faad, faacDecOpen, [
-          VLC_ADD_PLUGIN([faad])
-          VLC_ADD_LIBS([faad],[-lfaad]) ], [
-            AC_CHECK_LIB(faad, NeAACDecOpen, [
-              VLC_ADD_PLUGIN([faad])
-              VLC_ADD_LIBS([faad],[-lfaad]) ], [
-                AS_IF([test "${enable_faad}" = "yes"],
-                [ AC_MSG_ERROR([Cannot find libfaad library...]) ],
-                [ AC_MSG_WARN([Cannot find libfaad library...]) ]) ]) ])
-      ] , [ AS_IF([test "${enable_faad}" = "yes"],
-        [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ],
-        [ AC_MSG_WARN([Cannot find development headers for libfaad...]) ]) ])
-    VLC_RESTORE_FLAGS
-  fi
-fi
+      VLC_ADD_LIBS([faad],[-lfaad])
+    ], [
+      AS_IF([test "${enable_faad}" = "yes"], [
+        AC_MSG_ERROR([cannot find FAAD library])
+      ], [
+        AC_MSG_WARN([cannot find FAAD library])
+      ])
+    ])
+  ])
+])
+
+dnl
+dnl libvpx decoder plugin
+dnl
+AC_ARG_ENABLE(vpx,
+    AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 decoder (default auto)]))
+AS_IF([test "${enable_vpx}" != "no"],[
+    PKG_CHECK_MODULES([VPX], [vpx] , [
+        VLC_ADD_PLUGIN([vpx])
+        VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
+        VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
+        AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
+            VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
+        ], [], [${VPX_LIBS}])
+        AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
+            VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
+        ], [], [${VPX_LIBS}])
+    ], [
+    AS_IF([test "${enable_vpx}" = "yes"],[
+        AC_MSG_ERROR([libvpx was not found])
+    ])])
+])
 
 dnl
 dnl twolame encoder plugin
@@ -2560,43 +2594,6 @@ if test "${enable_a52}" != "no"
 then
   AC_ARG_WITH(a52,
     [  --with-a52=PATH         a52 headers and libraries])
-  AC_ARG_WITH(a52-tree,
-    [  --with-a52-tree=PATH    a52dec tree for static linking ],[],[])
-  if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
-  then
-    real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
-    if test -z "${real_a52_tree}"
-    then
-      dnl  The given directory can't be found
-      AC_MSG_RESULT(no)
-      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)
-    if test -f ${real_a52_tree}/include/a52.h
-    then
-      AC_MSG_RESULT(yes)
-      VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
-      VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
-      VLC_SAVE_FLAGS
-      LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
-      AC_CHECK_LIB(a52, a52_free, [
-        VLC_ADD_PLUGIN([a52tofloat32])
-        VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
-        VLC_ADD_LIBS([a52tofloat32],[-la52])
-        ],[
-        if test -f ${real_a52_tree}/liba52/.libs/liba52.a
-        then
-          AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
-        else
-          AC_MSG_ERROR([the specified tree has not been compiled])
-        fi
-      ])
-    else
-      AC_MSG_RESULT(no)
-      AC_MSG_ERROR([the specified tree does not have a52.h])
-    fi
-  else
     if test -z "${with_a52}"
     then
       LDFLAGS_test=""
@@ -2620,7 +2617,6 @@ 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.])
     ])
     VLC_RESTORE_FLAGS
-  fi
 fi
 
 dnl
@@ -2652,7 +2648,6 @@ if test "${enable_tremor}" = "yes"
 then
   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
     VLC_ADD_PLUGIN([tremor])
-    VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
    ],[])
 fi
 
@@ -2673,7 +2668,7 @@ AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
 dnl
 dnl  Opus plugin
 dnl
-PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus], [Opus support], [auto])
+PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
 
 dnl
 dnl  theora decoder plugin
@@ -2681,9 +2676,9 @@ dnl
 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
 
 dnl
-dnl  dirac encoder plugin
+dnl  Daala decoder plugin
 dnl
-PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
+PKG_ENABLE_MODULES_VLC([DAALA], [], [ogg daaladec daalaenc], [experimental daala codec], [disabled])
 
 dnl
 dnl  schroedinger decoder plugin (for dirac format video)
@@ -2700,53 +2695,71 @@ AC_CHECK_HEADERS(png.h, [
   VLC_SAVE_FLAGS
   LDFLAGS="${LDFLAGS} -lz $LIBM"
   AC_CHECK_LIB(png, png_set_rows, [
-    VLC_ADD_LIBS([png],[-lpng -lz $LIBM])
     VLC_ADD_PLUGIN([png])
   ], [], [-lz $LIBM])
   VLC_RESTORE_FLAGS
   ])
 ])
 
+dnl
+dnl  JPEG decoder module
+dnl
+AC_ARG_ENABLE(jpeg,
+  [  --enable-jpeg           JPEG support (default enabled)])
+AS_IF([test "${enable_jpeg}" != "no"], [
+AC_CHECK_HEADERS(jpeglib.h, [
+  VLC_ADD_PLUGIN([jpeg])
+  ])
+])
+
+dnl
+dnl  BPG decoder module
+dnl
+AC_ARG_ENABLE(bpg,
+  [  --enable-bpg           BPG support (default disabled)])
+AS_IF([test "${enable_bpg}" != "no"], [
+AC_CHECK_HEADERS(libbpg.h, [
+  VLC_ADD_PLUGIN([bpg])
+  ])
+])
+
+dnl
+dnl H262 encoder plugin (lib262)
+dnl
+AC_ARG_ENABLE(x262,
+  [  --enable-x262           H262 encoding support with static libx262 (default disabled)])
+if test "${enable_x262}" != "no"; then
+    PKG_CHECK_MODULES(X262, x262, [
+        VLC_ADD_PLUGIN([x262])
+        VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
+        AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
+          VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
+        ])
+        VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
+        if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
+          VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
+        fi
+    ], [
+       if test "${enable_x262}" = "yes"; then
+        AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
+       fi
+    ])
+fi
+
+dnl x265 encoder
+PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
+
 dnl
 dnl H264 encoder plugin (10-bit lib264)
 dnl
 AC_ARG_ENABLE(x26410b,
   [  --enable-x26410b           H264 10-bit encoding support with static libx264 (default disabled)])
 if test "${enable_x26410b}" != "no"; then
-AC_ARG_WITH(x26410b-tree,
-  [ --with-x26410b-tree=PATH      H264 10-bit encoding module with libx264 (static linking)],[],[])
-  if test "${with_x26410b_tree}" != "no" -a -n "${with_x26410b_tree}"
-  then
-    real_x26410b_tree="̧`cd ${with_x26410b_tree} 2>/dev/null && pwd`"
-    if test -z "${real_x26410b_tree}"
-    then
-      AC_MSG_RESULT(no)
-      AC_MSG_ERROR([${with_x26410b_tree} directory does not exist])
-    fi
-    AC_MSG_CHECKING(for x264.h in ${real_x26410b_tree})
-    if test -f ${with_x26410b_tree}/x264_config.h
-    then
-      AC_MSG_RESULT(yes)
-      AC_MSG_CHECKING(for 10-bit build of x264)
-      if grep -q "BIT_DEPTH.*10"  ${with_x26410b_tree}/x264_config.h ;then
-        AC_MSG_RESULT(yes)
-        VLC_ADD_PLUGIN([x26410b])
-        VLC_ADD_CFLAGS([x26410b],[-I${with_x26410b_tree}])
-        VLC_ADD_LIBS([x26410b],[-L${with_x26410b_tree} -lm -lpthread -lx264])
-      else
-        AC_MSG_RESULT(no)
-        AC_MSG_ERROR([${with_x26410b_tree} isnt build 10-bit])
-      fi
-    else
-      AC_MSG_RESULT(no)
-      AC_MSG_ERROR([${with_x26410b_tree} doesnt have x264_config.h])
-    fi
-  else
     PKG_CHECK_MODULES(X26410B, x26410b, [
         VLC_ADD_PLUGIN([x26410b])
-        VLC_ADD_LDFLAGS([x26410b],[${X26410B_LIBS}])
-        AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
-          VLC_ADD_LIBS([x26410b],[-Wl,-Bsymbolic])
+        VLC_ADD_LIBS([x26410b],[${X26410B_LIBS}])
+        AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
+          VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
         ])
         VLC_ADD_CFLAGS([x26410b],[${X26410B_CFLAGS}])
         if echo ${X26410B_LIBS} |grep -q 'pthreadGC2'; then
@@ -2757,7 +2770,6 @@ AC_ARG_WITH(x26410b-tree,
         AC_MSG_ERROR([x26410b module doesn't work without staticly compiled libx264.a])
        fi
     ])
-  fi
 fi
 
 
@@ -2767,45 +2779,12 @@ dnl
 AC_ARG_ENABLE(x264,
   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
 if test "${enable_x264}" != "no"; then
-  AC_ARG_WITH(x264-tree,
-    [  --with-x264-tree=PATH   x264 tree for static linking ],[],[])
-  if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
-  then
-    real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
-    if test -z "${real_x264_tree}"
-    then
-      dnl  The given directory can't be found
-      AC_MSG_RESULT(no)
-      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})
-    if test -f ${real_x264_tree}/x264.h
-    then
-      AC_MSG_RESULT(yes)
-      VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
-      VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
-      PKG_CHECK_MODULES(X264,x264, [
-        VLC_ADD_PLUGIN([x264])
-        VLC_ADD_LIBS([x264],[${X264_LIBS}])
-        VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
-        if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
-          VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
-        fi
-      ],[
-        AC_MSG_ERROR([the specified tree has not been compiled])
-      ])
-    else
-      AC_MSG_RESULT(no)
-      AC_MSG_ERROR([the specified tree does not have x264.h])
-    fi
-  else
       PKG_CHECK_MODULES(X264,x264 >= 0.86, [
         VLC_ADD_PLUGIN([x264])
-        VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
+        VLC_ADD_LIBS([x264],[${X264_LIBS}])
 
-        AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
-          VLC_ADD_LIBS([x264],[-Wl,-Bsymbolic])
+        AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
+          VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
         ])
 
         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
@@ -2817,9 +2796,13 @@ if test "${enable_x264}" != "no"; then
             AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
           fi
       ])
-  fi
 fi
 
+dnl
+dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
+dnl
+PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
+
 dnl
 dnl libfluidsynth (MIDI synthetizer) plugin
 dnl
@@ -2841,11 +2824,6 @@ AC_ARG_ENABLE(telx,
 AS_IF( [test "${enable_zvbi}" != "no"],[
     PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
         [
-          VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
-          if test "${SYS}" = "mingw32"; then
-              VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
-          fi
-          VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
           VLC_ADD_PLUGIN([zvbi])
           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
           AS_IF( [test "${enable_telx}" = "yes"],[
@@ -2867,8 +2845,6 @@ AC_ARG_ENABLE(libass,
 AS_IF( [test "${enable_libass}" != "no"], [
   PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
       [
-        VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
-        VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
         VLC_ADD_PLUGIN([libass])
 
         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
@@ -2880,6 +2856,29 @@ AS_IF( [test "${enable_libass}" != "no"], [
       ])
   ])
 
+dnl
+dnl ARIB subtitles rendering module
+dnl
+AC_ARG_ENABLE(aribsub,
+  [  --enable-aribsub        ARIB Subtitles support (default enabled)])
+AS_IF( [test "${enable_aribsub}" != "no" ],[
+  PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
+      have_aribb24="yes"
+      VLC_ADD_PLUGIN([aribsub])
+      VLC_ADD_LIBS([aribsub],[-laribb24])
+      AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
+    ],[
+      AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
+      have_aribb24="no"
+  ])
+])
+AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
+
+dnl
+dnl ARIB B25
+dnl
+PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
+
 dnl
 dnl  kate decoder plugin
 dnl
@@ -2892,9 +2891,7 @@ AC_ARG_ENABLE(tiger,
 [  --enable-tiger          Tiger rendering library for Kate streams (default auto)])
 AS_IF([test "${enable_tiger}" != "no"], [
   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
-      AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
-      VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
-      VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
+      AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
         AS_IF([test -n "${enable_tiger}"], [
           AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
         ])
@@ -2911,34 +2908,41 @@ EXTEND_HELP_STRING([Video plugins:])
 dnl
 dnl  OpenGL
 dnl
+PKG_CHECK_MODULES([EGL], [egl], [
+  have_egl="yes"
+], [
+  have_egl="no"
+])
+AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
+
+have_gl="no"
 PKG_CHECK_MODULES([GL], [gl], [
   have_gl="yes"
 ], [
-  AC_CHECK_HEADER([GL/gl.h], [
-    have_gl="yes"
-    GL_CFLAGS=""
-    GL_LIBS="-lGL"
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#ifdef _WIN32
+# include <GL/glew.h>
+#endif
+#include <GL/gl.h>
+]], [
+    [int t0 = GL_TEXTURE0;]])
   ], [
-    have_gl="no"
+    GL_CFLAGS=""
+    have_gl="yes"
+    AS_IF([test "${SYS}" != "mingw32"], [
+      GL_LIBS="-lGL"
+    ], [
+      GL_LIBS="-lopengl32"
+    ])
   ])
 ])
+AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
 
 dnl OpenGL ES 2: depends on EGL 1.1
 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
 dnl OpenGL ES 1: depends on EGL 1.0
 PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [disabled])
 
-AC_ARG_ENABLE(egl,
-  [  --enable-egl            OpenGL support through EGL (default disabled)],, [
-  enable_egl="no"
-])
-AS_IF([test "$enable_egl" != "no"], [
-  PKG_CHECK_MODULES([EGL], [egl], [
-    VLC_ADD_PLUGIN([gl])
-    VLC_ADD_PLUGIN([egl])
-  ])
-])
-
 dnl
 dnl  Xlib
 dnl
@@ -2961,96 +2965,117 @@ AC_ARG_ENABLE(xvideo,
   [  --enable-xvideo         XVideo support (default enabled)],, [
     enable_xvideo="$enable_xcb"
 ])
-AC_ARG_ENABLE(glx,
-  [  --enable-glx            OpenGL support through GLX (default enabled)],, [
-  enable_glx="$enable_xcb"
-])
 
 have_xcb="no"
+have_xcb_keysyms="no"
+have_xcb_randr="no"
+have_xcb_xvideo="no"
 AS_IF([test "${enable_xcb}" != "no"], [
   dnl libxcb
   PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
   have_xcb="yes"
   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
   PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
+  PKG_CHECK_MODULES(XPROTO, [xproto])
 
   AS_IF([test "${enable_xvideo}" != "no"], [
-    PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
-      VLC_ADD_PLUGIN([xcb_xv])
-    ])
-  ])
-
-  PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
-    VLC_ADD_PLUGIN([panoramix])
-    VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
-    VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
-  ], [
-    AC_MSG_WARN([${XCB_RANDR_PKG_ERRORS}. Panoramix filter will not be supported.])
+    PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [have_xcb_xvideo="yes"])
   ])
 
-  PKG_CHECK_MODULES(XPROTO, [xproto], [
-    VLC_ADD_PLUGIN([xwd])
+  PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [have_xcb_randr="yes"])
 
-    dnl xcb-utils
-    PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
-      VLC_ADD_PLUGIN([globalhotkeys])
-      VLC_ADD_CFLAGS([xcb_window], [-DHAVE_XCB_KEYSYMS])
-    ], [
-      AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
-    ])
-  ], [
-    AC_MSG_WARN([${XPROTO_PKG_ERRORS}. Hotkeys and XWD will not work.])
-  ])
-
-  AS_IF([test "${enable_glx}" != "no"], [
-    AS_IF([test "${have_gl}" != "yes"], [
-      AC_MSG_ERROR([${GL_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
-    ])
-    VLC_ADD_PLUGIN([xcb_glx])
-    VLC_ADD_PLUGIN([glx])
-    VLC_ADD_PLUGIN([gl])
+  dnl xcb-utils
+  PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [have_xcb_keysyms="yes"], [
+    AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
   ])
 ])
 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
+AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
+AM_CONDITIONAL([HAVE_XCB_RANDR], [test "${have_xcb_randr}" = "yes"])
+AM_CONDITIONAL([HAVE_XCB_XVIDEO], [test "${have_xcb_xvideo}" = "yes"])
 
 
 dnl
-dnl VDPAU needs X11 and avcodec
+dnl VDPAU needs X11
 dnl
 AC_ARG_ENABLE(vdpau,
-  [AS_HELP_STRING([--enable-vdpau],
-    [VDPAU hardware decoder support (default auto)])])
+  [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
 have_vdpau="no"
-AS_IF([test "${enable_vdpau}" != "no" -a "${have_avcodec}" == "yes"], [
-  PKG_CHECK_MODULES([VDPAU], [vdpau], [
+AS_IF([test "${enable_vdpau}" != "no"], [
+  PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
     have_vdpau="yes"
     AS_IF([test "${no_x}" = "yes"], [
       AC_MSG_ERROR([VDPAU requires Xlib (X11).])
     ])
-    AC_MSG_NOTICE([VDPAU acceleration activated])
   ], [
     AS_IF([test -n "${enable_vdpau}"], [
       AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
     ])
   ])
 ])
-dnl AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
+AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
 
 have_avcodec_vdpau="no"
-AS_IF([test "${have_vdpau}" = "yes"], [
-  PKG_CHECK_EXISTS([libavutil >= 0.52.4 libavcodec >= 54.36.0], [
+AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
+  case "${avfork}" in
+    libav) av_vdpau_ver="55.26.0" ;;
+    ffmpeg) av_vdpau_ver="55.42.100" ;;
+  esac
+  PKG_CHECK_EXISTS([libavutil >= 52.4.0 libavcodec >= ${av_vdpau_ver}], [
     have_avcodec_vdpau="yes"
+    AC_MSG_NOTICE([VDPAU decoding acceleration activated])
   ], [
     AS_IF([test -n "${enable_vdpau}"], [
-      AC_MSG_ERROR([libavutil >= 0.52.4 and libavcodec >= 54.36.0 are required for VDPAU decoding.])
+      AC_MSG_ERROR([libav libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
     ], [
-      AC_MSG_WARN([libavutil >= 0.52.4 and libavcodec >= 54.36.0 are required for VDPAU decoding.])
+      AC_MSG_WARN([libav libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
     ])
   ])
 ])
 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
 
 
+dnl
+dnl  Wayland
+dnl
+AC_ARG_ENABLE(wayland,
+  [AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)])])
+have_wayland="no"
+AC_ARG_VAR([WAYLAND_SCANNER], [Wayland scanner utility])
+
+AS_IF([test "${enable_wayland}" != "no"], [
+  AC_MSG_CHECKING([for the Wayland scanner])
+  AS_IF([test -z "$WAYLAND_SCANNER"], [
+    PKG_CHECK_EXISTS([wayland-scanner], [
+      WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
+    ], [
+      WAYLAND_SCANNER="wayland-scanner"
+    ])
+  ])
+  AC_MSG_RESULT([$WAYLAND_SCANNER])
+
+  PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91], [
+    have_wayland="yes"
+  ], [
+    AS_IF([test -n "${enable_wayland}"], [
+      AC_MSG_ERROR([${WAYLAND_CLIENT_PKG_ERRORS}.])
+    ])
+  ])
+
+  AS_IF([test "${have_egl}" = "yes"], [
+    PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl], [
+      have_wayland_egl="yes"
+    ], [
+      AS_IF([test -n "${enable_wayland}"], [
+        AC_MSG_ERROR([${WAYLAND_EGL_PKG_ERRORS}.])
+      ])
+    ])
+  ])
+])
+AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
+AM_CONDITIONAL([HAVE_WAYLAND_EGL], [test "${have_wayland_egl}" = "yes"])
+
+
 dnl
 dnl  SDL module
 dnl
@@ -3065,18 +3090,11 @@ then
       if test "${SYS}" != "darwin"; then
         VLC_ADD_PLUGIN([vout_sdl])
       fi
-      if test "${SYS}" != "mingw32" -a "${SYS}" != "os2"; then
-        VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
-      fi
-      VLC_ADD_CFLAGS([vout_sdl],[${SDL_CFLAGS}])
-      VLC_ADD_LIBS([vout_sdl],[${SDL_LIBS}])
 
       # SDL_image
       AS_IF([ test "${enable_sdl_image}" != "no"],[
         PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
-          VLC_ADD_PLUGIN([sdl_image])
-          VLC_ADD_LIBS([sdl_image],[${SDL_IMAGE_LIBS}])
-          VLC_ADD_CFLAGS([sdl_image], [${SDL_IMAGE_CFLAGS}])],
+          VLC_ADD_PLUGIN([sdl_image])],
           [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
           ])
       ])
@@ -3085,20 +3103,6 @@ then
    ])
 fi
 
-
-dnl
-dnl Mac Vout
-AC_ARG_ENABLE(macosx-vout,
-  [  --enable-macosx-vout    Mac OS X video output module (default enabled on Mac OS X)])
-if test "x${enable_macosx_vout}" != "xno" &&
-  (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
-then
-  VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,Cocoa])
-  VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,OpenGL])
-  VLC_ADD_PLUGIN([vout_macosx])
-fi
-
-
 dnl
 dnl  freetype module
 dnl
@@ -3109,47 +3113,66 @@ AC_ARG_ENABLE(fribidi,
 AC_ARG_ENABLE(fontconfig,
   [  --enable-fontconfig     fontconfig support (default auto)])
 
+AC_ARG_WITH([default-font],
+    AS_HELP_STRING([--with-default-font=PATH],
+        [Path to the default font]),
+        [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
+            "$withval", [Default font])])
+AC_ARG_WITH([default-monospace-font],
+    AS_HELP_STRING([--with-default-monospace-font=PATH],
+        [Path to the default font]),
+        [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
+            "$withval", [Default monospace font])])
+
+AC_ARG_WITH([default-font-family],
+    AS_HELP_STRING([--with-default-font-family=NAME],
+        [Path to the default font family]),
+        [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
+            "$withval", [Default font family])])
+AC_ARG_WITH([default-monospace-font-family],
+    AS_HELP_STRING([--with-default-monospace-font-family=NAME],
+        [Path to the default font family]),
+        [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
+            "$withval", [Default monospace font family])])
+
+have_freetype="no"
+have_fontconfig="no"
+have_fribidi="no"
+
 if test "${enable_freetype}" != "no"; then
    PKG_CHECK_MODULES(FREETYPE, freetype2, [
-      have_freetype=yes
-      VLC_ADD_PLUGIN([freetype])
-      VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
-      if test "${SYS}" = "mingw32"; then
-        VLC_ADD_LIBS([freetype],[-liconv -lz])
-      fi
-      VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
-
-      AC_CHECK_HEADERS(Carbon/Carbon.h,
-                       [VLC_ADD_LIBS([freetype],[-Wl,-framework,Carbon])])
+      have_freetype="yes"
+      VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
+      VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
 
       dnl fontconfig support
       if test "${SYS}" != "mingw32"; then
           if test "${enable_fontconfig}" != "no"; then
             AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
-              VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
-              VLC_ADD_LIBS([freetype],[-lfontconfig])
+              have_fontconfig="yes"
             ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
           fi
-      else
-          VLC_ADD_LIBS([freetype],[-lgdi32])
       fi
 
       dnl fribidi support
       if test "${enable_fribidi}" != "no"; then
         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
-          VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
-          VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
+          have_fribidi="yes"
+          VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
+          VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
         ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
       fi
-
   ],[
-  have_freetype=no
   AS_IF([test -n "${enable_freetype}"],[
     AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
     ])
   ])
 fi
 
+AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
+AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
+AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
+
 
 dnl
 dnl  QuartzText vout module (iOS/Mac OS)
@@ -3160,13 +3183,13 @@ if test "x${enable_macosx_quartztext}" != "xno" &&
   (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
 then
   VLC_ADD_PLUGIN([quartztext])
-  VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
 fi
 
 dnl
-dnl  SVG module
+dnl  SVG module (text rendering and image decoding)
 dnl
 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
+PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
 
 dnl
 dnl  android surface module
@@ -3174,33 +3197,14 @@ dnl
 AC_ARG_ENABLE(android-surface,
   [  --enable-android-surface   Android Surface video output module (default disabled)])
 if test "${enable_android_surface}" = "yes"; then
-  if test "${HAVE_ANDROID}" = "1"; then
      VLC_ADD_PLUGIN([android_surface])
-     VLC_ADD_LDFLAGS([android_surface], [-ldl])
-  fi
-fi
-
-
-dnl
-dnl  iOS vout module
-dnl
-AC_ARG_ENABLE(ios-vout,
-  [  --enable-ios-vout    iOS video output module (default disabled)])
-if test "${enable_ios_vout}" = "yes"
-then
-  VLC_ADD_PLUGIN([vout_ios])
-  VLC_ADD_LIBS([vout_ios], [-Wl,-framework,OpenGLES,-framework,QuartzCore,-framework,UIKit,-framework,Foundation])
+     VLC_ADD_PLUGIN([android_window])
 fi
 
 dnl
 dnl  Windows DirectX module
 dnl
 
-if test "${SYS}" = "mingw32"
-then
-  VLC_ADD_PLUGIN([panoramix])
-fi
-
 AC_ARG_ENABLE(directx,
   [AS_HELP_STRING([--enable-directx],
     [Microsoft DirectX support (default enabled on Windows)])],, [
@@ -3227,9 +3231,14 @@ AS_IF([test "${enable_directx}" != "no"], [
     #include <GL/gl.h>
   ])
 
-  dnl Direct3D
+  dnl Direct3D11
+  AC_CHECK_HEADERS(d3d11.h, [
+    VLC_ADD_PLUGIN([direct3d11])
+  ])
+
+  dnl Direct3D9
   AC_CHECK_HEADERS(d3d9.h, [
-    VLC_ADD_PLUGIN([direct3d])
+    VLC_ADD_PLUGIN([direct3d9])
   ])
 
   dnl Direct2D
@@ -3322,10 +3331,6 @@ then
   if test "${have_aa}" = "true"
   then
     VLC_ADD_PLUGIN([aa])
-    VLC_ADD_LIBS([aa],[-laa])
-    if test "${SYS}" != "mingw32"; then
-      VLC_ADD_LIBS([aa],[${X_LIBS} ${X_PRE_LIBS} -lX11])
-    fi
   fi
 fi
 
@@ -3357,6 +3362,35 @@ AS_IF([test "$enable_kva" != "no"], [
 AC_SUBST(KVA_LIBS)
 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
 
+dnl
+dnl MMAL plugin
+dnl
+AC_ARG_ENABLE(mmal,
+  AS_HELP_STRING([--enable-mmal],
+    [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
+if test "${enable_mmal}" != "no"; then
+  VLC_SAVE_FLAGS
+  LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
+  CPPFLAGS="${CPPFLAGS} -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux"
+  AC_CHECK_HEADERS(interface/mmal/mmal.h,
+    [ AC_CHECK_LIB(bcm_host, vc_tv_unregister_callback_full, [
+        have_mmal="yes"
+        VLC_ADD_PLUGIN([mmal])
+        VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
+        VLC_ADD_CFLAGS([mmal],[ -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux ])
+        VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lvchostif ]) ], [
+          AS_IF([test "${enable_mmal}" = "yes"],
+            [ AC_MSG_ERROR([Cannot find bcm library...]) ],
+            [ AC_MSG_WARN([Cannot find bcm library...]) ])
+          ],
+        [])
+    ] , [ AS_IF([test "${enable_mmal}" = "yes"],
+      [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
+      [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
+  VLC_RESTORE_FLAGS
+fi
+AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
+
 dnl
 dnl  Audio plugins
 dnl
@@ -3371,23 +3405,11 @@ AC_ARG_ENABLE(pulse,
     [use the PulseAudio client library (default auto)])])
 have_pulse="no"
 AS_IF([test "${enable_pulse}" != "no"], [
-  PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.22], [
+  PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
     have_pulse="yes"
   ], [
-    PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.16], [
-      AS_IF([test "${no_x}" != "yes"], [
-        have_pulse="yes"
-        PULSE_LIBS="$PULSE_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11"
-      ], [
-        AS_IF([test "${enable_pulse}" = "yes"], [
-          AC_MSG_ERROR([Xlib is required with PulseAudio pre-0.9.22 versions
-(see http://www.pulseaudio.org/ticket/799 for further reference).])
-        ])
-      ])
-    ], [
-      AS_IF([test "x${enable_pulse}" != "x"], [
-        AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 0.9.22 or later required.])
-      ])
+    AS_IF([test "x${enable_pulse}" != "x"], [
+      AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
     ])
   ])
 ])
@@ -3475,32 +3497,6 @@ AS_IF([test "$enable_wasapi" != "no"], [
 ])
 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
 
-dnl
-dnl  win32 waveOut plugin
-dnl
-AC_ARG_ENABLE(waveout,
-  [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
-if test "${enable_waveout}" != "no"; then
-  if test "${SYS}" = "mingw32"; then
-    VLC_ADD_PLUGIN([waveout])
-    VLC_ADD_LIBS([waveout],[-lwinmm])
-  fi
-fi
-
-dnl
-dnl  CoreAudio plugin
-dnl
-AC_ARG_ENABLE(macosx-audio,
-  [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
-if test "x${enable_macosx_audio}" != "xno" &&
-  (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
-then
-  AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
-    [ VLC_ADD_PLUGIN([auhal])
-      VLC_ADD_LIBS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,CoreServices])
-    ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
-fi
-
 dnl
 dnl  AudioQueue plugin
 dnl
@@ -3509,13 +3505,31 @@ AC_ARG_ENABLE(audioqueue,
 if test "${enable_audioqueue}" = "yes"
 then
   VLC_ADD_PLUGIN([audioqueue])
-  VLC_ADD_LIBS([audioqueue], [-Wl,-framework,AudioToolbox,-framework,CoreFoundation])
 fi
 
 dnl
 dnl  JACK modules
 dnl
-PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
+AC_ARG_ENABLE(jack,
+  [AS_HELP_STRING([--disable-jack],
+    [do not use jack (default auto)])])
+have_jack="no"
+AS_IF([test "${enable_jack}" != "no"], [
+    PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
+      [ have_jack=yes ],
+      [
+      AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
+
+      PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
+      [ have_jack=yes ],
+      [
+      AS_IF([test -n "${enable_jack}"],
+         [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
+         [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
+      ])
+    ])
+])
+AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
 
 dnl
 dnl  OpenSLES Android
@@ -3558,6 +3572,41 @@ AS_IF([test "$enable_kai" != "no"], [
 AC_SUBST(KAI_LIBS)
 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
 
+dnl
+dnl  chromaprint audio track fingerprinter
+dnl
+m4_pushdef([libchromaprint_version], 0.6.0)
+PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
+    VLC_ADD_PLUGIN([stream_out_chromaprint]),
+    AS_IF([test "${enable_chromaprint}" = "yes"],
+        [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
+        [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
+         ),
+    [(Chromaprint based audio fingerprinter)],[auto])
+m4_popdef([libchromaprint_version])
+
+dnl
+dnl  Chromecast streaming support
+dnl
+m4_pushdef([protobuf_lite_version], 2.5.0)
+AC_ARG_VAR(PROTOC, [protobuf compiler])
+AC_PATH_PROGS(PROTOC, protoc, no)
+PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
+    AS_IF([test "x${PROTOC}" != "xno"], [
+        build_chromecast="yes"
+    ], [
+    AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
+    ])
+], [
+    AS_IF([test "${enable_chromecast}" = "yes"],
+        AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
+        AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
+    )
+    enable_chromecast="no"
+], [(Chromecast streaming support)], [auto])
+AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
+m4_popdef([protobuf_lite_version])
+
 dnl
 dnl  Interface plugins
 dnl
@@ -3574,55 +3623,36 @@ AC_ARG_ENABLE(qt, [
   ])
 ])
 AS_IF([test "${enable_qt}" != "no"], [
-  PKG_CHECK_MODULES([QT], [QtCore >= 5 QtWidgets QtGui],, [
-    PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [
-      AS_IF([test -n "${enable_qt}"],[
-        AC_MSG_ERROR([${QT_PKG_ERRORS}.])
+  PKG_CHECK_MODULES([QT], [Qt5Core >= 5.1.0 Qt5Widgets Qt5Gui], [
+      PKG_CHECK_MODULES([QTX11], [Qt5X11Extras], [
+          VLC_ADD_LIBS([qt4],[${QTX11_LIBS}])
+          VLC_ADD_CXXFLAGS([qt4],[${QTX11_CFLAGS} -DQT5_HAS_X11])
       ],[
-        AC_MSG_WARN([${QT_PKG_ERRORS}.])
+          AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
       ])
-      enable_qt="no"
+      QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
+      QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
+      AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
+      AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
+      AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
+    ], [
+      PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [
+        AS_IF([test -n "${enable_qt}"],[
+          AC_MSG_ERROR([${QT_PKG_ERRORS}.])
+        ],[
+          AC_MSG_WARN([${QT_PKG_ERRORS}.])
+        ])
+        enable_qt="no"
+      ])
+      QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
+      AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
+      AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
+      AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
     ])
-  ])
 ])
 AS_IF([test "${enable_qt}" != "no"], [
   VLC_ADD_PLUGIN([qt4])
-  VLC_ADD_LIBS([qt4],[${QT_LIBS}])
-  VLC_ADD_CXXFLAGS([qt4],[${QT_CFLAGS}])
   ALIASES="${ALIASES} qvlc"
-
-  AC_LANG_PUSH([C++])
-  VLC_SAVE_FLAGS
-
-  AC_MSG_CHECKING([whether Qt uses Xlib])
-  CPPFLAGS="${CPPFLAGS} ${QT_CFLAGS}"
-  AC_PREPROC_IFELSE([AC_LANG_SOURCE([
-#include <QWidget>
-#if !defined (Q_WS_X11)
-# error Fail
-#endif
-  ])], [
-    AC_MSG_RESULT([yes])
-    VLC_ADD_LIBS([qt4],[${X_LIBS} ${X_PRE_LIBS} -lX11])
-    VLC_ADD_CXXFLAGS([qt4],[${X_CFLAGS}])
-  ], [
-    AC_MSG_RESULT([no])
-  ])
-
-  VLC_RESTORE_FLAGS
-  AC_LANG_POP([C++])
-
-  AS_IF([test "${SYS}" = "mingw32"], [
-      VLC_ADD_LIBS([qt4],[-lole32])
-  ])
-  AS_IF([test "${SYS}" = "darwin" ],[
-       VLC_ADD_LIBS([qt4], [-Wl,-framework,Cocoa])
-  ])
-
-  QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
-  AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
-  AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
-  AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
 ])
 AM_CONDITIONAL(ENABLE_QT4, [test "$enable_qt" != "no"])
 
@@ -3654,6 +3684,9 @@ AS_IF([test "${enable_skins2}" != "no"], [
   ], [test "${SYS}" = "darwin"], [
     VLC_ADD_CPPFLAGS([skins2],[ -DMACOSX_SKINS])
     VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
+  dnl OS/2
+  ], [test "${SYS}" = "os2"], [
+    VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
   dnl Linux/Unix
   ], [
     PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
@@ -3754,11 +3787,10 @@ dnl  ncurses module
 dnl
 AC_ARG_ENABLE(ncurses,
 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
+have_ncurses="no"
 AS_IF([test "${enable_ncurses}" != "no"] ,[
   PKG_CHECK_MODULES([NCURSES], [ncursesw], [
-    VLC_ADD_PLUGIN([ncurses])
-    VLC_ADD_CFLAGS([ncurses],[${NCURSES_CFLAGS}])
-    VLC_ADD_LIBS([ncurses],[${NCURSES_LIBS}])
+    have_ncurses="yes"
     ALIASES="${ALIASES} nvlc"
   ], [
     AS_IF([test -n "${enable_ncurses}"], [
@@ -3766,21 +3798,22 @@ AS_IF([test "${enable_ncurses}" != "no"] ,[
     ])
   ])
 ])
+AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
 
 dnl
 dnl  Lirc plugin
 dnl
 AC_ARG_ENABLE(lirc,
   [  --enable-lirc           lirc support (default disabled)])
-if test "${enable_lirc}" = "yes"
-then
-  AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
-  if test "${have_lirc}" = "true"
-  then
-    VLC_ADD_PLUGIN([lirc])
-    VLC_ADD_LIBS([lirc],[-llirc_client])
-  fi
-fi
+have_lirc="no"
+AS_IF([test "${enable_lirc}" = "yes"], [
+  AC_CHECK_HEADER(lirc/lirc_client.h, [
+    AC_CHECK_LIB(lirc_client, lirc_init, [
+      have_lirc="true"
+    ])
+  ])
+])
+AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
 
 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
 dnl
@@ -3798,9 +3831,7 @@ AS_IF([test "${enable_projectm}" != "no"],
     PKG_CHECK_MODULES(PROJECTM, libprojectM,
     [
       VLC_ADD_PLUGIN([projectm])
-      VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
-      VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
-      PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
+      PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
         [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
         [ AC_MSG_WARN( [Using libprojectM version 1] )
       ])
@@ -3819,8 +3850,6 @@ AS_IF([test "${enable_vsxu}" != "no"],
     PKG_CHECK_MODULES(VSXU, libvsxu,
     [
       VLC_ADD_PLUGIN([vsxu])
-      VLC_ADD_CXXFLAGS([vsxu],[$VSXU_CFLAGS])
-      VLC_ADD_LIBS([vsxu],[$VSXU_LIBS])
     ],[
       AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
     ])
@@ -3834,13 +3863,10 @@ AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
                 (default enabled)]),, [enable_atmo="yes"])
 AS_IF([test "${enable_atmo}" != no], [
   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
-    AC_LANG_PUSH(C++)
     VLC_ADD_PLUGIN([atmo])
-    AC_LANG_POP(C++)
   ])
 ])
 
-
 EXTEND_HELP_STRING([Service Discovery plugins:])
 dnl
 dnl  Bonjour services discovery
@@ -3858,7 +3884,6 @@ dnl
 dnl UPnP Plugin (Intel SDK)
 dnl
 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
-VLC_ADD_CXXFLAGS([upnp],[${UPNP_CFLAGS}])
 
 EXTEND_HELP_STRING([Misc options:])
 
@@ -3882,10 +3907,10 @@ AS_IF([test "${enable_libgcrypt}" != "no"], [
       GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
       GCRYPT_LIBS="`libgcrypt-config --libs`"
     ], [
-      AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
+      AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or pass --disable-libgcrypt.])
     ], [`libgcrypt-config --libs`])
   ], [
-    AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
+    AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
   ], [#include <gcrypt.h>]
   )
 ])
@@ -3900,7 +3925,7 @@ dnl
 AC_ARG_ENABLE(gnutls,
   [  --enable-gnutls         GNU TLS TLS/SSL support (default enabled)])
 AS_IF([test "${enable_gnutls}" != "no"], [
-  PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.0.20], [
+  PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.2.0], [
     VLC_ADD_PLUGIN([gnutls])
   ], [
     AS_IF([test -n "${enable_gnutls}"], [
@@ -3917,10 +3942,8 @@ AC_ARG_ENABLE(taglib,
   [AS_HELP_STRING([--disable-taglib],
     [do not use TagLib (default enabled)])])
 AS_IF([test "${enable_taglib}" != "no"], [
-  PKG_CHECK_MODULES(TAGLIB, taglib >= 1.6.1, [
+  PKG_CHECK_MODULES(TAGLIB, taglib >= 1.9, [
     VLC_ADD_PLUGIN([taglib])
-    VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
-    VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS])
   ], [
     AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
 ])
@@ -4003,23 +4026,6 @@ AS_IF([test "${with_kde_solid}" != "no"], [
 AC_SUBST(soliddatadir)
 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
 
-dnl
-dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
-dnl
-loader=false
-AC_ARG_ENABLE(loader,
-  AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
-          (default disabled)]))
-AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
-AS_IF([test "${enable_loader}" = "yes"],
-  [ VLC_ADD_PLUGIN([dmo])
-    VLC_ADD_CPPFLAGS([dmo quicktime ],[-I\\\$(srcdir)/loader])
-    VLC_ADD_LIBS([dmo quicktime ],[libloader.la])
-    VLC_ADD_LIBS([dmo quicktime], [-lpthread])
-  ])
-
-AS_IF([test "${SYS}" = "mingw32"], [VLC_ADD_PLUGIN([dmo]) VLC_ADD_LIBS([dmo],[-lole32 -luuid]) ])
-
 EXTEND_HELP_STRING([Components:])
 
 dnl
@@ -4093,39 +4099,13 @@ AC_CONFIG_FILES([
   lib/Makefile
   bin/Makefile
   test/Makefile
-  modules/access/Makefile
-  modules/access/rtp/Makefile
-  modules/access_output/Makefile
-  modules/audio_filter/Makefile
-  modules/audio_mixer/Makefile
-  modules/audio_output/Makefile
-  modules/codec/Makefile
-  modules/control/Makefile
-  modules/demux/Makefile
-  modules/gui/Makefile
+  modules/gui/ios_dialog_provider/Makefile
   modules/gui/macosx/Makefile
   modules/gui/minimal_macosx/Makefile
   modules/gui/macosx_dialog_provider/Makefile
   modules/gui/qt4/Makefile
   modules/gui/skins2/Makefile
-  modules/lua/Makefile
-  modules/meta_engine/Makefile
-  modules/misc/Makefile
-  modules/mux/Makefile
-  modules/notify/Makefile
-  modules/packetizer/Makefile
-  modules/services_discovery/Makefile
-  modules/stream_filter/Makefile
-  modules/stream_out/Makefile
-  modules/text_renderer/Makefile
-  modules/video_chroma/Makefile
-  modules/video_filter/Makefile
-  modules/video_output/Makefile
-  modules/visualization/Makefile
-  modules/mmx/Makefile
-  modules/sse2/Makefile
-  modules/altivec/Makefile
-  modules/arm_neon/Makefile
+  modules/hw/mmal/Makefile
 ])
 
 AM_COND_IF([HAVE_WIN32], [
@@ -4160,11 +4140,12 @@ if test -n $SHELL; then
   SHELL=${CONFIG_SHELL-/bin/sh}
 fi
 rm -f compile
+compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
 echo "#! $SHELL
 rm -f .error\$\$
 ERROR=0
 export PATH=\"$PATH\" LANG=C
-($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| `sed -ne \"s/^top_srcdir *= *//p\" < Makefile`/extras/buildsystem/make.pl
+($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
 test -f .error\$\$ && ERROR=1
 rm -f .error\$\$
 exit \$ERROR" >compile