]> git.sesse.net Git - vlc/blobdiff - configure.ac.in
* SAP can now handle SAP-announced IPv6 streams
[vlc] / configure.ac.in
index 8d5a6e6bb58784988a96213777ca468ee173f020..1c628544090e77a196729fc9afdafa3e54a1beec 100644 (file)
@@ -1,17 +1,18 @@
 dnl Autoconf settings for vlc
 
-AC_INIT(vlc,0.5.0-cvs)
+AC_INIT(vlc,0.6.0-test3)
 
 CONFIGURE_LINE="$0 $*"
-CODENAME="Natalya"
+CODENAME="Trevelyan"
 
 AC_PREREQ(2.50)
 AC_CONFIG_SRCDIR(src/libvlc.c)
+AC_CONFIG_AUX_DIR(autotools)
 AC_CANONICAL_SYSTEM
 
 dnl XXX: we don't put any flags here, because automake 1.5 doesn't support
 dnl them. And we need the comma otherwize automake will choke on it.
-AM_INIT_AUTOMAKE(vlc,0.5.0-cvs)
+AM_INIT_AUTOMAKE(vlc,0.6.0-test3)
 AM_CONFIG_HEADER(config.h)
 
 dnl
@@ -33,6 +34,10 @@ AC_PROG_CXX
 AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 
+dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right
+dnl now otherwise it might be set in an obscure if statement.
+AC_EGREP_CPP(foo,foo)
+
 dnl AC_PROG_OBJC doesn't seem to exist, this is the KDE workaround
 AC_MSG_CHECKING(for an Objective-C compiler)
 OBJC="${CXX}"
@@ -51,18 +56,6 @@ AC_CHECK_TOOL(STRIP, strip, :)
 AC_CHECK_TOOL(AR, ar, :)
 AC_CHECK_TOOL(LD, ld, :)
 
-dnl
-dnl Gettext stuff
-dnl
-ALL_LINGUAS="de en_GB fr ja no ru nl pl se"
-AM_GNU_GETTEXT_VERSION(0.10.40)
-AM_GNU_GETTEXT
-if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
-  AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
-  INCLUDES="${INCLUDES} -I\\\$(top_srcdir)/intl"
-fi
-AM_CONDITIONAL(BUILD_INTL, test "${nls_cv_force_use_gnu_gettext}" = "yes")
-
 dnl AM_PROG_LIBTOOL
 AC_PROG_INSTALL
 
@@ -92,6 +85,7 @@ case "x${target_os}" in
     LDFLAGS_dvd="${LDFLAGS_dvd} -ldvd"
     LDFLAGS_dvdcss="${LDFLAGS_dvdcss} -ldvd"
     LDFLAGS_vcd="${LDFLAGS_vcd} -ldvd"
+    LDFLAGS_cdda="${LDFLAGS_cdda} -ldvd"
     ;;
   x*bsd*)
     SYS="${target_os}"
@@ -99,10 +93,11 @@ case "x${target_os}" in
     ;;
   xdarwin*)
     SYS=darwin
-    CFLAGS_save="${CFLAGS_save} -no-cpp-precomp"; CFLAGS="${CFLAGS_save}"
-    CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp"; CXXFLAGS="${CXXFLAGS_save}"
-    OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp"; OBJCFLAGS="${OBJCFLAGS_save}"
+    CFLAGS_save="${CFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
+    CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
+    OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
     LDFLAGS_vlc="${LDFLAGS_vlc} -all_load"
+    LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} -all_load"
     LIBEXT=".dylib"
     ;;
   x*mingw32* | x*cygwin*)
@@ -128,15 +123,18 @@ case "x${target_os}" in
         # add ws2_32 for closesocket, select, recv
         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"
         CPPFLAGS="${CPPFLAGS_save}"
-        LDFLAGS_vlc="${LDFLAGS_vlc} -lws2_32 -lnetapi32 -mwindows"
+        LDFLAGS_vlc="${LDFLAGS_vlc} -lws2_32 -lnetapi32 -lwinmm -mwindows"
         LDFLAGS_ipv4="${LDFLAGS_ipv4} -lws2_32"
         LDFLAGS_ipv6="${LDFLAGS_ipv6} -lws2_32"
         LDFLAGS_access_http="${LDFLAGS_access_http} -lws2_32"
         LDFLAGS_access_mms="${LDFLAGS_access_mms} -lws2_32"
-        LDFLAGS_access_rtp="${LDFLAGS_access_rtp} -lws2_32"
         LDFLAGS_access_udp="${LDFLAGS_access_udp} -lws2_32"
-        LDFLAGS_rc="${LDFLAGS_rc} -lws2_32"
+        LDFLAGS_access_ftp="${LDFLAGS_access_ftp} -lws2_32"
+        LDFLAGS_access_output_udp="${LDFLAGS_access_output_udp} -lws2_32"
         LDFLAGS_sap="${LDFLAGS_sap} -lws2_32"
+        LDFLAGS_slp="${LDFLAGS_slp} -lws2_32"
+        LDFLAGS_http="${LDFLAGS_http} -lws2_32"
+        LDFLAGS_httpd="${LDFLAGS_httpd} -lws2_32"
     fi
     ;;
   x*nto*)
@@ -153,16 +151,16 @@ case "x${target_os}" in
     ;;
   xbeos)
     SYS=beos
-    CFLAGS_save="${CFLAGS_save} -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual"; CFLAGS="${CFLAGS_save}"
-    CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual"; CXXFLAGS="${CXXFLAGS_save}"
+    CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
+    CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
     LDFLAGS_vlc="${LDFLAGS_vlc} -lbe"
-    LDFLAGS_plugins="${LDFLAGS_plugins} -nostart"
-    LDFLAGS_beos="${LDFLAGS_beos} -lbe -lmedia -lroot -ltracker -lstdc++.r4 -ltranslation"
-    dnl BONE or not BONE ?
-    AC_CHECK_LIB( bind, inet_ntoa,
-        [ LDFLAGS_access_mms="${LDFLAGS_access_mms} -lbind"
-          LDFLAGS_ipv4="${LDFLAGS_ipv4} -lbind"],
-        [])
+    LDFLAGS_beos="${LDFLAGS_beos} -lbe -lmedia -ltranslation -ltracker -lgame -lstdc++.r4"
+    dnl Check if we have BONE (old net_server doesn't have libsocket.so)
+    AC_CHECK_LIB( socket, connect,
+        LDFLAGS_vlc="${LDFLAGS_vlc} -lsocket -lbind" 
+        LDFLAGS_access_mms="${LDFLAGS_access_mms} -lsocket -lbind"
+        LDFLAGS_ipv4="${LDFLAGS_ipv4} -lsocket -lbind"
+        LDFLAGS_httpd="${LDFLAGS_httpd} -lsocket -lbind" )
     ;;
   x*)
     SYS="${target_os}"
@@ -172,6 +170,26 @@ AM_CONDITIONAL(HAVE_BEOS, test "x${SYS}" = "xbeos")
 AM_CONDITIONAL(HAVE_DARWIN, test "x${SYS}" = "xdarwin")
 AM_CONDITIONAL(HAVE_WIN32, test "x${SYS}" = "xmingw32")
 
+dnl
+dnl Gettext stuff
+dnl
+ALL_LINGUAS="de en_GB fr it ja no ru nl pl sv"
+AM_GNU_GETTEXT_VERSION(0.11.5)
+AM_GNU_GETTEXT
+if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
+  AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
+  INCLUDES="${INCLUDES} -I\\\$(top_srcdir)/intl"
+else
+  AC_CHECK_FUNCS(textdomain,,[
+    AC_CHECK_LIB(intl,textdomain,
+      LDFLAGS_vlc="${LDFLAGS_vlc} ${LIBINTL}",,
+      ${LIBINTL}
+    )
+  ])
+fi
+AM_CONDITIONAL(BUILD_INTL, test "${nls_cv_force_use_gnu_gettext}" = "yes")
+XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS"
+
 AC_MSG_CHECKING(for suffix of libraries)
 AC_MSG_RESULT(${LIBEXT})
 
@@ -193,13 +211,19 @@ then
         [CFLAGS="${CFLAGS_save} -mms-bitfields"
          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
     if test x"$ac_cv_c_mms_bitfields" != x"no"; then
-        CFLAGS_mingw32_special="-mms-bitfields"
+        CFLAGS_save="${CFLAGS_save} -mms-bitfields";
+        CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
     else
-        CFLAGS_mingw32_special="-fnative-struct"
+        AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
+            [ac_cv_c_fnative_struct],
+            [CFLAGS="${CFLAGS_save} -fnative-struct"
+             AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
+        if test x"$ac_cv_c_fnative_struct" != x"no"; then
+            CFLAGS_save="${CFLAGS_save} -fnative-struct";
+            CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
+        fi
     fi
 
-    CFLAGS_save="${CFLAGS_save} ${CFLAGS_mingw32_special}";
-    CXXFLAGS_save="${CXXFLAGS_save} ${CFLAGS_mingw32_special}";
     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
 fi
 
@@ -248,51 +272,35 @@ CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcd
 dnl Check for system libs needed
 need_libc=false
 
-AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol isatty vasprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 atoll getenv putenv setenv)
+AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol isatty vasprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 if_nametoindex atoll getenv putenv setenv)
 
 dnl Check for usual libc functions
-AC_CHECK_FUNCS(strdup,,[need_libc=:])
-AC_CHECK_FUNCS(strndup,,[need_libc=:])
-AC_CHECK_FUNCS(atof,,[need_libc=:])
-AC_CHECK_FUNCS(lseek,,[need_libc=:])
-AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp,,[need_libc=:])])
-AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp,,[need_libc=:])])
-
-AM_CONDITIONAL(BUILD_LIBC, ${need_libc})
+AC_CHECK_FUNCS(strdup strndup atof lseek)
+AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
+AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
 
-AC_CHECK_FUNC(connect,,[
+AC_CHECK_FUNCS(connect,,[
   AC_CHECK_LIB(socket,connect,
     LDFLAGS_ipv4="${LDFLAGS_ipv4} -lsocket"
     LDFLAGS_vlc="${LDFLAGS_vlc} -lsocket"
 )])
 
-AC_CHECK_FUNC(send,,[
+AC_CHECK_FUNCS(send,,[
   AC_CHECK_LIB(socket,send,
     LDFLAGS_access_http="${LDFLAGS_access_http} -lsocket"
     LDFLAGS_access_mms="${LDFLAGS_access_mms} -lsocket"
-    LDFLAGS_access_rtp="${LDFLAGS_access_rtp} -lsocket"
     LDFLAGS_access_udp="${LDFLAGS_access_udp} -lsocket"
+    LDFLAGS_access_ftp="${LDFLAGS_access_ftp} -lsocket"
     LDFLAGS_sap="${LDFLAGS_sap} -lsocket"
+    LDFLAGS_http="${LDFLAGS_http} -lsocket"
+    LDFLAGS_access_output_udp="${LDFLAGS_access_output_udp} -lsocket"
 )])
 
-AC_CHECK_FUNC(gethostbyname,,[
-  AC_CHECK_LIB(nsl,gethostbyname,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lnsl",[
-    AC_CHECK_LIB(bind,gethostbyname,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lbind")])
+AC_CHECK_FUNCS(gethostbyname,,[
+  AC_CHECK_LIB(nsl,gethostbyname,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lnsl" LDFLAGS_httpd="${LDFLAGS_httpd} -lnsl",[
+    AC_CHECK_LIB(bind,gethostbyname,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lbind" LDFLAGS_httpd="${LDFLAGS_httpd} -lbind")])
 ])
 
-have_nanosleep=false
-AC_CHECK_FUNC(nanosleep,have_nanosleep=:,[
-  AC_CHECK_LIB(rt,nanosleep,
-    [LDFLAGS_vlc="${LDFLAGS_vlc} -lrt"; have_nanosleep=:],
-    [AC_CHECK_LIB(posix4,nanosleep,
-        [LDFLAGS_vlc="${LDFLAGS_vlc} -lposix4"; have_nanosleep=:])]
-  )
-])
-if ${have_nanosleep}; then
-  AC_DEFINE(HAVE_NANOSLEEP, 1,
-            Define if nanosleep is available.)
-fi
-
 dnl Check for socklen_t
 AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
   [AC_TRY_COMPILE(
@@ -302,47 +310,65 @@ AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
      ac_cv_type_socklen_t=yes,
      ac_cv_type_socklen_t=no)])
 if test x$ac_cv_type_socklen_t != xno; then
-  AC_DEFINE(HAVE_SOCKLEN_T, 1,
-            Define if <sys/socket.h> defines socklen_t.)
-fi
-
-dnl HP/UX port
-AC_CHECK_LIB(rt,sem_init, [LDFLAGS_vlc="${LDFLAGS_vlc} -lrt"])
-
-AC_CHECK_FUNC(inet_aton,,[
-  AC_CHECK_LIB(resolv,inet_aton,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lresolv")
-])
-AC_CHECK_FUNC(textdomain,,[
-  AC_CHECK_LIB(intl,textdomain,
-    LDFLAGS_vlc="${LDFLAGS_vlc} -lintl"
-    LDFLAGS_plugins="${LDFLAGS_plugins} -lintl"
-  )
+  AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
+fi
+
+dnl Check for va_copy
+AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
+  AC_TRY_LINK(
+    [#include <stdarg.h>],
+    [va_list ap1, ap2; va_copy(ap1,ap2);],
+    [ac_cv_c_va_copy="yes"],
+    [ac_cv_c_va_copy="no"]))
+if test "$ac_cv_c_va_copy" = "yes"; then
+  AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
+fi
+AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
+  AC_TRY_LINK(
+    [#include <stdarg.h>],
+    [va_list ap1, ap2; __va_copy(ap1,ap2);],
+    [ac_cv_c___va_copy="yes"],
+    [ac_cv_c___va_copy="no"]))
+if test "$ac_cv_c___va_copy" = "yes"; then
+  AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
+fi
+
+AC_CHECK_FUNCS(inet_aton,,[
+  AC_CHECK_LIB(resolv,inet_aton,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lresolv" LDFLAGS_httpd="${LDFLAGS_httpd} -lresolv")
 ])
 
 dnl Check for getopt
 need_getopt=false
-AC_CHECK_FUNC(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
+AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
 [ # FreeBSD has a gnugetopt library for this:
   AC_CHECK_LIB([gnugetopt],[getopt_long],
     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) LDFLAGS_vlc="${LDFLAGS_vlc} -lgnugetopt"],
     [need_getopt=:])])
 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
 
+if test "x$SYS" != "xmingw32"; then
 AC_TYPE_SIGNAL
 AC_CHECK_LIB(dl,dlopen,LDFLAGS_vlc="${LDFLAGS_vlc} -ldl")
 AC_CHECK_LIB(m,cos,
   LDFLAGS_imdct="${LDFLAGS_imdct} -lm"
-  LDFLAGS_filter_distort="${LDFLAGS_filter_distort} -lm"
+  LDFLAGS_adjust="${LDFLAGS_adjust} -lm"
+  LDFLAGS_distort="${LDFLAGS_distort} -lm"
   LDFLAGS_a52tofloat32="${LDFLAGS_a52tofloat32} -lm")
 AC_CHECK_LIB(m,pow,
   LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} -lm"
+  LDFLAGS_stream_out_transcode="${LDFLAGS_stream_out_transcode} -lm"
   LDFLAGS_imdct="${LDFLAGS_imdct} -lm"
   LDFLAGS_imdct3dn="${LDFLAGS_imdct3dn} -lm"
   LDFLAGS_imdctsse="${LDFLAGS_imdctsse} -lm"
   LDFLAGS_i420_rgb="${LDFLAGS_i420_rgb} -lm"
   LDFLAGS_faad="${LDFLAGS_faad} -lm"
 )
+AC_CHECK_LIB(m,sqrt,
+  LDFLAGS_headphone_channel_mixer="${LDFLAGS_headphone_channel_mixer} -lm"
+)
+fi # end "x$SYS" != "xmingw32"
 
+if test "x$SYS" != "xmingw32"; then
 dnl Check for pthreads - borrowed from XMMS
 THREAD_LIB=error
 if test "x${THREAD_LIB}" = "xerror"; then
@@ -355,31 +381,105 @@ if test "x${THREAD_LIB}" = "xerror"; then
   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
 fi
 if test "x${THREAD_LIB}" = "xerror"; then
-  AC_CHECK_FUNC(pthread_mutex_lock)
+  AC_CHECK_FUNCS(pthread_mutex_lock)
   THREAD_LIB=""
 fi
 
 dnl Check for cthreads under GNU/Hurd for instance
 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
 
+dnl
+dnl  GNU portable threads
+dnl
+AC_ARG_ENABLE(pth,
+  [  --enable-pth            GNU Pth support (default disabled)],
+  [ if test "x${enable_pth}" = "xyes"; then
+    AC_CHECK_LIB(pth,pth_init)
+    AC_MSG_CHECKING(for pth_init in pth.h)
+    AC_EGREP_HEADER(pth_init,pth.h,[
+      AC_MSG_RESULT(yes)
+      AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
+                Define if <pth.h> defines pth_init)
+      THREAD_LIB="-lpth"
+    ],[
+      AC_MSG_RESULT(no)
+    ])
+    fi
+])
+
+dnl
+dnl  State Threads
+dnl
+AC_ARG_ENABLE(st,
+  [  --enable-st             State Threads (default disabled)],
+  [ if test "x${enable_st}" = "xyes"; then
+    AC_CHECK_LIB(st,st_init)
+    AC_MSG_CHECKING(for st_init in st.h)
+    AC_EGREP_HEADER(st_init,st.h,[
+      AC_MSG_RESULT(yes)
+      AC_DEFINE(ST_INIT_IN_ST_H, 1,
+                Define if <st.h> defines st_init)
+      THREAD_LIB="-lst"
+    ],[
+      AC_MSG_RESULT(yes)
+    ])
+    fi
+])
+
+LDFLAGS_vlc="${LDFLAGS_vlc} ${THREAD_LIB}"
+LDFLAGS_plugins="${LDFLAGS_plugins} ${THREAD_LIB}"
+
+dnl Don't link with rt when using GNU-pth
+if test "x${THREAD_LIB}" != "x-lpth" && test "x${THREAD_LIB}" != "x-lst"; then
+  dnl HP/UX port
+  AC_CHECK_LIB(rt,sem_init, [LDFLAGS_vlc="${LDFLAGS_vlc} -lrt"])
+
+  have_nanosleep=false
+  AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
+    AC_CHECK_LIB(rt,nanosleep,
+      [LDFLAGS_vlc="${LDFLAGS_vlc} -lrt"; have_nanosleep=:],
+      [AC_CHECK_LIB(posix4,nanosleep,
+          [LDFLAGS_vlc="${LDFLAGS_vlc} -lposix4"; have_nanosleep=:])]
+    )
+  ])
+  if ${have_nanosleep}; then
+    AC_DEFINE(HAVE_NANOSLEEP, 1,
+              Define if nanosleep is available.)
+  fi
+fi
+
 dnl Check for misc headers
+AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
+  AC_MSG_RESULT(yes)
   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
-            Define if <pthread.h> defines pthread_cond_t.)])
+            Define if <pthread.h> defines pthread_cond_t.)],[
+  AC_MSG_RESULT(no)])
+
+AC_MSG_CHECKING(for pthread_once in pthread.h)
 AC_EGREP_HEADER(pthread_once,pthread.h,[
+  AC_MSG_RESULT(yes)
   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
-            Define if <pthread.h> defines pthread_once.)])
+            Define if <pthread.h> defines pthread_once.)],[
+  AC_MSG_RESULT(no)])
+fi # end "x$SYS" != "xmingw32"
+
+AC_MSG_CHECKING(for strncasecmp in strings.h)
 AC_EGREP_HEADER(strncasecmp,strings.h,[
+  AC_MSG_RESULT(yes)
   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
-            Define if <strings.h> defines strncasecmp.)])
+            Define if <strings.h> defines strncasecmp.)],[
+  AC_MSG_RESULT(no)])
 
 dnl Check for headers
 AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h getopt.h strings.h inttypes.h sys/int_types.h)
 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
 AC_CHECK_HEADERS(dlfcn.h image.h)
 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
+if test "x$SYS" != "xmingw32"; then
 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
 AC_CHECK_HEADERS(linux/version.h)
+fi # end "x$SYS" != "xmingw32"
 
 AC_HEADER_TIME
 
@@ -389,19 +489,31 @@ AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
 
 dnl Mac OS X and other OSes don't have declaration for nanosleep
+if test "x$SYS" != "xmingw32"; then
+AC_MSG_CHECKING(for nanosleep in time.h)
 AC_EGREP_HEADER(nanosleep,time.h,[
+  AC_MSG_RESULT(yes)
   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
             Define if <time.h> defines nanosleep.)
+],[
+  AC_MSG_RESULT(no)
 ])
+fi # end "x$SYS" != "xmingw32"
 
 dnl Make sure we have timespecs
+AC_MSG_CHECKING(for timespec in sys/time.h)
 AC_EGREP_HEADER(timespec,sys/time.h,[
+  AC_MSG_RESULT(yes)
   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
             Define if <sys/time.h> defines struct timespec.)
+],[
+  AC_MSG_RESULT(no)
 ])
 
 dnl Check for threads library
+if test "x$SYS" != "xmingw32"; then
 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
+fi # end "x$SYS" != "xmingw32"
 
 dnl Default X headers and libraries
 if test "x${x_includes}" = "xNONE"; then
@@ -414,19 +526,11 @@ fi
 dnl Build the gtk_main plugins?
 NEED_GTK_MAIN=no
 NEED_GNOME_MAIN=no
+NEED_GTK2_MAIN=no
+NEED_GNOME2_MAIN=no
 
-dnl Check for DPMS
-if test "x${SYS}" != "xmingw32"
-then
-  CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
-  AC_CHECK_HEADERS(X11/extensions/dpms.h, [
-    AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
-      AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
-                Define if <X11/extensions/dpms.h> defines DPMSInfo.)
-    ])
-  ])
-  CPPFLAGS="${CPPFLAGS_save}"
-fi
+dnl build the qte plugin ?
+NEED_QTE_MAIN=no
 
 dnl Check for ntohl, etc.
 AC_CACHE_CHECK([for ntohl in sys/param.h],
@@ -502,17 +606,17 @@ if test "x${ac_cv_c_Wall}" != "xno"; then
 fi
 
 if test "x${ac_cv_c_Wunreachable_code}" != "xno"; then
-    CFLAGS_save="-Wunreachable-code ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
-    CXXFLAGS_save="-Wunreachable-code ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
-    OBJCFLAGS_save="-Wunreachable-code ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
+#    CFLAGS_save="-Wunreachable-code ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
+#    CXXFLAGS_save="-Wunreachable-code ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
+#    OBJCFLAGS_save="-Wunreachable-code ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
 
     dnl -Wunreachable-code means gcc-3.x, we can use -Wconversion and we can
     dnl activate -Winline for C++, it won't choke on system headers.
-    if test "x${ac_cv_c_Wconversion}" != "xno"; then
-        CFLAGS_save="-Wconversion ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
-        CXXFLAGS_save="-Wconversion ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
-        OBJCFLAGS_save="-Wconversion ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
-    fi
+#    if test "x${ac_cv_c_Wconversion}" != "xno"; then
+#        CFLAGS_save="-Wconversion ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
+#        CXXFLAGS_save="-Wconversion ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
+#        OBJCFLAGS_save="-Wconversion ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
+#    fi
     if test "x${ac_cv_c_Winline}" != "xno"; then
         CXXFLAGS_save="-Winline ${CXXFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
     fi
@@ -554,21 +658,27 @@ AC_CACHE_CHECK([if \$CC accepts -O3],
      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
 if test "x${ac_cv_c_o3}" != "xno"; then
     CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
-else
-    AC_CACHE_CHECK([if \$CC accepts -O2],
-        [ac_cv_c_o2],
-        [CFLAGS="${CFLAGS_save} -O2"
-         AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
-    if test "x${ac_cv_c_o2}" != "xno"; then
+fi
+
+AC_CACHE_CHECK([if \$CC accepts -O2],
+    [ac_cv_c_o2],
+    [CFLAGS="${CFLAGS_save} -O2"
+     AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
+if test "x${ac_cv_c_o2}" != "xno"; then
+    if test "x${ac_cv_c_o3}" = "xno"; then
         CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
-    else
-        AC_CACHE_CHECK([if \$CC accepts -O],
-            [ac_cv_c_o],
-            [CFLAGS="${CFLAGS_save} -O"
-             AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
-        if test "x${ac_cv_c_o}" != "xno"; then
+    fi
+    CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O2"
+else
+    AC_CACHE_CHECK([if \$CC accepts -O],
+        [ac_cv_c_o],
+        [CFLAGS="${CFLAGS_save} -O"
+         AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
+    if test "x${ac_cv_c_o}" != "xno"; then
+        if test "x${ac_cv_c_o3}" = "xno"; then
             CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
-        fi
+       fi
+        CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O"
     fi
 fi
 
@@ -582,12 +692,16 @@ if test "x${ac_cv_c_fast_math}" != "xno"; then
 fi
 
 dnl Check for -funroll-loops
-AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
-    [ac_cv_c_unroll_loops],
-    [CFLAGS="${CFLAGS_save} -funroll-loops"
-     AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
-if test "x${ac_cv_c_unroll_loops}" != "xno"; then
-    CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
+dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
+if test "x${SYS}" != "xbeos"
+then
+  AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
+      [ac_cv_c_unroll_loops],
+      [CFLAGS="${CFLAGS_save} -funroll-loops"
+       AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
+  if test "x${ac_cv_c_unroll_loops}" != "xno"; then
+      CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
+  fi
 fi
 
 dnl Check for -fomit-frame-pointer
@@ -621,12 +735,17 @@ if test "x${ac_cv_ld_darwin}" != "xno"; then
 fi
 
 dnl Check for standard plugin linking flags
-AC_CACHE_CHECK([if \$CC accepts -shared],
-    [ac_cv_ld_plugins],
-    [CFLAGS="${CFLAGS_save} -shared"
-     AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
-if test "x${ac_cv_ld_plugins}" != "xno"; then
-    LDFLAGS_plugins="${LDFLAGS_plugins} -shared"
+dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
+if test "x${SYS}" = "xbeos"; then
+    LDFLAGS_plugins="${LDFLAGS_plugins} -nostart"
+else
+    AC_CACHE_CHECK([if \$CC accepts -shared],
+        [ac_cv_ld_plugins],
+        [CFLAGS="${CFLAGS_save} -shared"
+         AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
+    if test "x${ac_cv_ld_plugins}" != "xno"; then
+        LDFLAGS_plugins="${LDFLAGS_plugins} -shared"
+    fi
 fi
 
 dnl Check for variadic macros
@@ -659,6 +778,19 @@ if test "x${ac_cv_c_attribute_aligned}" != "x0"; then
         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
 fi
 
+dnl Checks for __attribute__(format()) directive
+AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
+    [ac_cv_c_attribute_format],
+    [ac_cv_c_attribute_format=no
+        CFLAGS="${CFLAGS_save} -Werror"
+        AC_TRY_COMPILE([],
+        [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
+        [ac_cv_c_attribute_format=yes])
+        CFLAGS="${CFLAGS_save}"])
+if test "x${ac_cv_c_attribute_format}" != "xno"; then
+    AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
+fi
+
 dnl
 dnl  Check the CPU
 dnl
@@ -673,38 +805,74 @@ esac
 
 case "${ARCH}" in
   hppa64)
-    CFLAGS_mpeg_video="${CFLAGS_mpeg_video} -ffunction-sections"
+    CFLAGS_mpeg_video_old="${CFLAGS_mpeg_video_old} -ffunction-sections"
     ;;
 esac
 
+dnl
+dnl  Enable profiling
+dnl
+AC_ARG_ENABLE(gprof,
+[  --enable-gprof          gprof profiling (default disabled)])
+AC_ARG_ENABLE(cprof,
+[  --enable-cprof          cprof profiling (default disabled)])
+AM_CONDITIONAL(GPROF, test "${enable_gprof}" = "yes")
+AM_CONDITIONAL(CPROF, test "${enable_gprof}" = "yes")
+
 dnl
 dnl  default modules
 dnl
-PLUGINS="${PLUGINS} dummy rc logger access_file memcpy"
-PLUGINS="${PLUGINS} es audio mpeg_system ps ts"
-PLUGINS="${PLUGINS} idct idctclassic motion mpeg_video spudec mpeg_audio"
-#PLUGINS="${PLUGINS} a52old imdct downmix"
-PLUGINS="${PLUGINS} lpcm a52"
+#BUILTINS="${BUILTINS} mpeg_video_old idct idctclassic motion"
+PLUGINS="${PLUGINS} dummy rc logger gestures memcpy"
+PLUGINS="${PLUGINS} es audio m4v mpeg_system ps ts avi asf aac mp4 rawdv"
+PLUGINS="${PLUGINS} spudec mpeg_audio lpcm a52 dts cinepak"
 PLUGINS="${PLUGINS} deinterlace invert adjust wall transform distort clone crop motionblur"
-PLUGINS="${PLUGINS} float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif fixed32tofloat32 fixed32tos16 s16tofloat32 s16tofloat32swab s8tofloat32 u8tofixed32 u8tofloat32"
-PLUGINS="${PLUGINS} trivial_resampler ugly_resampler linear_resampler"
-PLUGINS="${PLUGINS} trivial_channel_mixer"
+PLUGINS="${PLUGINS} float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif fixed32tofloat32 fixed32tos16 s16tofixed32 s16tofloat32 s16tofloat32swab s8tofloat32 u8tofixed32 u8tofloat32"
+PLUGINS="${PLUGINS} trivial_resampler ugly_resampler linear_resampler bandlimited_resampler"
+PLUGINS="${PLUGINS} trivial_channel_mixer headphone_channel_mixer"
 PLUGINS="${PLUGINS} trivial_mixer spdif_mixer float32_mixer"
 PLUGINS="${PLUGINS} aout_file"
 #PLUGINS="${PLUGINS} scope"
 PLUGINS="${PLUGINS} i420_rgb i420_yuy2 i422_yuy2 i420_ymga"
 PLUGINS="${PLUGINS} id3 m3u"
-PLUGINS="${PLUGINS} wav araw demuxdump demuxsub adpcm"
-PLUGINS="${PLUGINS} access_udp access_http access_rtp ipv4 access_mms sap"
+PLUGINS="${PLUGINS} rawvideo"
+PLUGINS="${PLUGINS} wav araw demuxdump demuxsub adpcm a52sys au"
+PLUGINS="${PLUGINS} access_file access_udp access_http ipv4 access_mms"
+PLUGINS="${PLUGINS} access_ftp access_directory sap httpd http"
+
+dnl
+dnl  Switch to enable a version of VLC where most modules will be builtin
+dnl
+AC_ARG_ENABLE(mostly-builtin,
+[  --enable-mostly-builtin most modules will be built-in (default disabled)])
+if test "x${enable_mostly_builtin}" = "xyes"; then
+  BUILTINS="${BUILTINS} ${PLUGINS}"
+  PLUGINS=""
+fi
+
+dnl
+dnl Some plugins aren't useful on some platforms
+dnl
+if test "x${SYS}" != "xmingw32"; then
+    PLUGINS="${PLUGINS} screensaver"
+fi
 
 dnl
 dnl  Accelerated modules
 dnl
-MMX_MODULES="memcpymmx idctmmx motionmmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx"
-MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext"
-THREEDNOW_MODULES="memcpy3dn imdct3dn downmix3dn"
-SSE_MODULES="imdctsse downmixsse"
-ALTIVEC_MODULES="idctaltivec motionaltivec memcpyaltivec"
+MMX_MODULES="memcpymmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
+#MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
+MMXEXT_MODULES="memcpymmxext"
+#MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
+THREEDNOW_MODULES="memcpy3dn"
+SSE_MODULES=""
+ALTIVEC_MODULES="memcpyaltivec"
+#ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
+
+if test "${enable_gprof}" != "yes"
+then
+  MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
+fi
 
 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
     [ac_cv_mmx_inline],
@@ -744,8 +912,6 @@ if test "x${ac_cv_sse_inline}" != "xno" -a "x${SYS}" != "xmingw32"; then
   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
 fi
 
-# don't try to grok AltiVec with native mingw32 it doesn't work right now
-# we should be able to remove this test with future versions of mingw32
 if test "x${SYS}" != "xmingw32"; then
 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
     [ac_cv_altivec_inline],
@@ -801,7 +967,7 @@ if test "x${ac_cv_ld_altivec}" != "xno"; then
   LDFLAGS_memcpyaltivec="${LDFLAGS_memcpyaltivec} -framework vecLib"
   LDFLAGS_vlc="${LDFLAGS_vlc} -framework vecLib"
 fi
-fi # end if mingw32
+fi # end "x$SYS" != "xmingw32"
 
 AC_ARG_WITH(,[])
 AC_ARG_WITH(,[Optimization options:])
@@ -831,7 +997,7 @@ dnl
 if test "x${target_cpu}" = "xi686" -o "x${target_cpu}" = "xi586" -o "x${target_cpu}" = "xx86" -o "x${target_cpu}" = "xi386"
 then
     ARCH="${ARCH} mmx"
-    PLUGINS="${PLUGINS} ${ACCEL_MODULES}"
+    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"
 fi
 
 dnl
@@ -865,6 +1031,31 @@ AC_ARG_ENABLE(release,
 [  --enable-release        activate extra optimizations (default disabled)])
 AM_CONDITIONAL(RELEASE, test "x${enable_release}" = "xyes")
 
+dnl
+dnl Stream output
+dnl
+AC_ARG_ENABLE(sout,
+  [  --enable-sout           Stream output modules (default enabled)])
+if test "x${enable_sout}" != "xno"
+then
+  PLUGINS="${PLUGINS} access_output_dummy access_output_udp access_output_file access_output_http"
+  PLUGINS="${PLUGINS} mux_ts mux_ps mux_avi mux_dummy"
+  PLUGINS="${PLUGINS} packetizer_mpegaudio packetizer_mpegvideo packetizer_a52"
+  PLUGINS="${PLUGINS} packetizer_mpeg4video packetizer_mpeg4audio"
+  PLUGINS="${PLUGINS} packetizer_copy"
+
+  PLUGINS="${PLUGINS} stream_out_dummy stream_out_standard stream_out_es"
+  PLUGINS="${PLUGINS} stream_out_duplicate stream_out_display"
+
+    dnl Ogg/ogm
+    AC_CHECK_HEADERS(ogg/ogg.h, [
+      AC_CHECK_LIB( ogg, ogg_stream_packetin, [
+        PLUGINS="${PLUGINS} mux_ogg"
+        LDFLAGS_mux_ogg="${LDFLAGS_mux_ogg} -logg" ])
+    ],[])
+fi
+
+
 dnl
 dnl  Input plugins
 dnl
@@ -876,7 +1067,7 @@ dnl  DVD module: optionally check for installed libdvdcss
 dnl
 AC_ARG_ENABLE(dvd,
 [  --enable-dvd            DVD input module (default enabled)])
-if test "x${enable_dvd}" != "xno" -a "x${enable_dvd}" != "x"
+if test "x${enable_dvd}" != "xno"
 then
   AC_ARG_WITH(dvdcss,
   [    --with-dvdcss=PATH    libdvdcss headers and libraries])
@@ -906,8 +1097,8 @@ then
         dnl  Use a custom libdvdcss
         AC_MSG_RESULT(${real_dvdcss_tree}/src/.libs/libdvdcss.a)
         BUILTINS="${BUILTINS} dvd"
-        LDFLAGS_dvd="${LDFLAGS_dvd} ${real_dvdcss_tree}/src/.libs/libdvdcss.a"
-        LDFLAGS_dvdcss="${LDFLAGS_dvdcss} ${real_dvdcss_tree}/src/.libs/libdvdcss.a"
+        LDFLAGS_dvd="${LDFLAGS_dvd} -L${real_dvdcss_tree}/src/.libs -ldvdcss"
+        LDFLAGS_dvdcss="${LDFLAGS_dvdcss} -L${real_dvdcss_tree}/src/.libs -ldvdcss"
         CPPFLAGS_dvd="${CPPFLAGS_dvd} -I${real_dvdcss_tree}/src"
       else
         dnl  The given libdvdcss wasn't built
@@ -978,7 +1169,7 @@ then
         dnl  Use a custom libdvdread
         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
         BUILTINS="${BUILTINS} dvdread"
-        LDFLAGS_dvdread="${LDFLAGS_dvdread} ${real_dvdread_tree}/dvdread/.libs/libdvdread.a ${LDFLAGS_dvdcss}"
+        LDFLAGS_dvdread="${LDFLAGS_dvdread} -L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}"
         CPPFLAGS_dvdread="${CPPFLAGS_dvdread} -I${real_dvdread_tree}"
       else
         dnl  The given libdvdread wasn't built
@@ -1007,7 +1198,7 @@ dnl
 dnl dvdplay module: check for libdvdplay
 dnl
 AC_ARG_ENABLE(dvdplay,
-[  --enable-dvdplay        dvdplay input module (default disabled)])
+[  --enable-dvdplay        dvdplay input module (default enabled)])
 if test "x${enable_dvdplay}" != "xno"
 then
   AC_ARG_WITH(dvdplay,
@@ -1041,7 +1232,7 @@ then
         dnl  Use a custom libdvdplay
         AC_MSG_RESULT(${real_dvdplay_tree}/src/.libs/libdvdplay.a)
         BUILTINS="${BUILTINS} dvdplay"
-        LDFLAGS_dvdplay="${LDFLAGS_dvdplay} ${real_dvdplay_tree}/src/.libs/libdvdplay.a ${LDFLAGS_dvdread} ${LDFLAGS_dvdcss}"
+        LDFLAGS_dvdplay="${LDFLAGS_dvdplay} -L${real_dvdplay_tree}/src/.libs -ldvdplay ${LDFLAGS_dvdread} ${LDFLAGS_dvdcss}"
         CPPFLAGS_dvdplay="${CPPFLAGS_dvdplay} ${CPPFLAGS_dvdread} -I${real_dvdplay_tree}/src"
       else
         dnl  The given libdvdplay wasn't built
@@ -1067,10 +1258,10 @@ then
 fi
 
 dnl
-dnl  libdvbpsi ts demux
+dnl  libdvbpsi ts demux/mux
 dnl
 AC_ARG_ENABLE(dvbpsi,
-[  --enable-dvbpsi         dvbpsi ts demux module (default enabled)])
+[  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
 if test "x${enable_dvbpsi}" != "xno"
 then
   AC_ARG_WITH(dvbpsi,
@@ -1083,9 +1274,15 @@ then
     then
       AC_CHECK_HEADERS(dvbpsi/dr.h,
         [ PLUGINS="${PLUGINS} ts_dvbpsi"
-          LDFLAGS_ts_dvbpsi="${LDFLAGS_ts_dvbpsi} -ldvbpsi" ],
+          LDFLAGS_ts_dvbpsi="${LDFLAGS_ts_dvbpsi} -ldvbpsi" 
+          PLUGINS="${PLUGINS} mux_ts_dvbpsi"
+          LDFLAGS_mux_ts_dvbpsi="${LDFLAGS_mux_ts_dvbpsi} -ldvbpsi" ],
         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
-        [#include <stdint.h>
+        [#if defined( HAVE_STDINT_H )
+#   include <stdint.h>
+#elif defined( HAVE_INTTYPES_H )
+#   include <inttypes.h>
+#endif
 #include <dvbpsi/dvbpsi.h>
 #include <dvbpsi/descriptor.h>
 #include <dvbpsi/pat.h>
@@ -1104,8 +1301,13 @@ then
         dnl  Use a custom libdvbpsi
         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
         BUILTINS="${BUILTINS} ts_dvbpsi"
-        LDFLAGS_ts_dvbpsi="${LDFLAGS_ts_dvbpsi} ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
+        LDFLAGS_ts_dvbpsi="${LDFLAGS_ts_dvbpsi} -L${real_dvbpsi_tree}/src/.libs -ldvbpsi"
         CPPFLAGS_ts_dvbpsi="${CPPFLAGS_ts_dvbpsi} -I${real_dvbpsi_tree}/src"
+
+        BUILTINS="${BUILTINS} mux_ts_dvbpsi"
+        LDFLAGS_mux_ts_dvbpsi="${LDFLAGS_mux_ts_dvbpsi} -L${real_dvbpsi_tree}/src/.libs -ldvbpsi"
+        CPPFLAGS_mux_ts_dvbpsi="${CPPFLAGS_mux_ts_dvbpsi} -I${real_dvbpsi_tree}/src"
+
       else
         dnl  The given libdvbpsi wasn't built
         AC_MSG_RESULT(no)
@@ -1131,6 +1333,10 @@ then
       PLUGINS="${PLUGINS} ts_dvbpsi"
       LDFLAGS_ts_dvbpsi="${LDFLAGS_ts_dvbpsi} ${LDFLAGS_test} -ldvbpsi"
       CPPFLAGS_ts_dvbpsi="${CPPFLAGS_ts_dvbpsi} ${CPPFLAGS_test}"
+      PLUGINS="${PLUGINS} mux_ts_dvbpsi"
+      LDFLAGS_mux_ts_dvbpsi="${LDFLAGS_mux_ts_dvbpsi} ${LDFLAGS_test} -ldvbpsi"
+      CPPFLAGS_mux_ts_dvbpsi="${CPPFLAGS_mux_ts_dvbpsi} ${CPPFLAGS_test}"
+
       ],[
       if test "x${enable_dvbpsi}" != "x"
       then
@@ -1149,11 +1355,21 @@ AC_ARG_ENABLE(v4l,
   [  --enable-v4l            Video4Linux input support (default disabled)])
 if test "x${enable_v4l}" = "xyes"
 then
-  AC_CHECK_HEADERS(libv4l/v4l.h, [
+  AC_CHECK_HEADERS(linux/videodev.h, [
     PLUGINS="${PLUGINS} v4l"
    ],[])
 fi
 
+dnl
+dnl  special access module for Hauppauge PVR cards
+dnl
+AC_ARG_ENABLE(pvr,
+  [  --enable-pvr            PVR cards access module (default disabled)])
+if test "x${enable_pvr}" = "xyes"
+then
+  PLUGINS="${PLUGINS} pvr"
+fi
+
 dnl
 dnl  VCD module
 dnl
@@ -1162,29 +1378,42 @@ AC_ARG_ENABLE(vcd,
 
 if test "x${enable_vcd}" != "xno"
 then
+  AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
-    PLUGINS="${PLUGINS} vcd"
+    AC_MSG_RESULT(yes)
+    PLUGINS="${PLUGINS} vcd cdda"
+  ],[
+    AC_MSG_RESULT(no)
   ])
 
+  AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
-    PLUGINS="${PLUGINS} vcd"
+    AC_MSG_RESULT(yes)
+    PLUGINS="${PLUGINS} vcd cdda"
     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
+  ],[
+    AC_MSG_RESULT(no)
   ])
 
+  AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
-    PLUGINS="${PLUGINS} vcd"
+    AC_MSG_RESULT(yes)
+    PLUGINS="${PLUGINS} vcd cdda"
     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
+  ],[
+    AC_MSG_RESULT(no)
   ])
 
   if test "x${SYS}" = "xbsdi" -o "x${SYS}" = "xmingw32"
   then
-    PLUGINS="${PLUGINS} vcd"
+    PLUGINS="${PLUGINS} vcd cdda"
   fi
 
   if test "x${SYS}" = "xdarwin"
   then
-    PLUGINS="${PLUGINS} vcd"
+    PLUGINS="${PLUGINS} vcd cdda"
     LDFLAGS_vcd="${LDFLAGS_vcd} -framework IOKit -framework CoreFoundation"
+    LDFLAGS_cdda="${LDFLAGS_cdda} -framework IOKit -framework CoreFoundation"
   fi
 fi
 
@@ -1204,7 +1433,7 @@ dnl
 if test "x${SYS}" != "xnto" && test "x${SYS}" != "xmingw32"
 then
   have_ipv6=false
-  AC_CHECK_FUNC(inet_pton,[have_ipv6=:],[
+  AC_CHECK_FUNCS(inet_pton,[have_ipv6=:],[
     AC_CHECK_LIB(resolv,inet_pton,
       [have_ipv6=:
        LDFLAGS_ipv6="${LDFLAGS_ipv6} -lresolv"])
@@ -1223,36 +1452,6 @@ then
     PLUGINS="${PLUGINS} ipv6"],[AC_MSG_RESULT(no)])
 fi
 
-dnl
-dnl  AVI demux plugin
-dnl
-AC_ARG_ENABLE(avi,
-  [  --enable-avi            AVI demux module (default enabled)])
-if test "x${enable_avi}" != "xno"
-then
-  PLUGINS="${PLUGINS} avi"
-fi
-
-dnl
-dnl  ASF demux plugin
-dnl
-AC_ARG_ENABLE(asf,
-  [  --enable-asf            ASF demux module (default enabled)])
-if test "x${enable_asf}" != "xno"
-then
-  PLUGINS="${PLUGINS} asf"
-fi
-
-dnl
-dnl  AAC demux plugin
-dnl
-AC_ARG_ENABLE(aac,
-  [  --enable-aac            AAC demux module (default enabled)])
-if test "x${enable_aac}" != "xno"
-then
-  PLUGINS="${PLUGINS} aac"
-fi
-
 dnl
 dnl  ogg plugin
 dnl
@@ -1279,15 +1478,15 @@ dnl
 dnl  mad plugin
 dnl
 AC_ARG_ENABLE(mad,
-  [  --enable-mad            libmad module (default disabled)])
-if test "x${enable_mad}" = "xyes"
+  [  --enable-mad            libmad module (default enabled)])
+if test "x${enable_mad}" != "xno"
 then
   AC_ARG_WITH(mad,
     [    --with-mad=PATH       path to libmad],[],[])
   if test "x${with_mad}" != "xno" -a "x${with_mad}" != "x"
   then
-    CPPFLAGS_mad="${CPPFLAGS_mad} -I${with_mad}/include"
-    LDFLAGS_mad="${LDFLAGS_mad} -L${with_mad}/lib"
+    CPPFLAGS_mpgatofixed32="${CPPFLAGS_mpgatofixed32} -I${with_mad}/include"
+    LDFLAGS_mpgatofixed32="${LDFLAGS_mpgatofixed32} -L${with_mad}/lib"
   fi
 
   AC_ARG_WITH(mad-tree,
@@ -1306,12 +1505,12 @@ then
     if test -f ${real_mad_tree}/libmad/mad.h
     then
       AC_MSG_RESULT(yes)
-      CPPFLAGS_mad="${CPPFLAGS_mad} -I${real_mad_tree}/libmad"
-      LDFLAGS_mad="${LDFLAGS_mad} -L${real_mad_tree}/libmad/.libs"
-      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mad}"
+      CPPFLAGS_mpgatofixed32="${CPPFLAGS_mpgatofixed32} -I${real_mad_tree}/libmad"
+      LDFLAGS_mpgatofixed32="${LDFLAGS_mpgatofixed32} -L${real_mad_tree}/libmad/.libs"
+      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
       AC_CHECK_LIB(mad, mad_bit_init, [
-        BUILTINS="${BUILTINS} mad"
-        LDFLAGS_mad="${LDFLAGS_mad} -lmad"
+        BUILTINS="${BUILTINS} mpgatofixed32"
+        LDFLAGS_mpgatofixed32="${LDFLAGS_mpgatofixed32} -lmad"
         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
       ],[])
       LDFLAGS="${LDFLAGS_save}"
@@ -1320,13 +1519,13 @@ then
       AC_MSG_ERROR([the specified tree doesn't have mad.h])
     fi
   else
-    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mad}"
-    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mad}"
+    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
+    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
     AC_CHECK_HEADERS(mad.h, ,
-      [ AC_MSG_ERROR([Cannot find development headers for libmad...]) ])
+      [ AC_MSG_ERROR([Could not find libmad on your system: you may get it from http://www.underbit.com/products/mad/. Alternatively you can use --disable-mad to disable the mad plugin.]) ])
     AC_CHECK_LIB(mad, mad_bit_init, [
-      PLUGINS="${PLUGINS} mad"
-      LDFLAGS_mad="${LDFLAGS_mad} -lmad" ],
+      PLUGINS="${PLUGINS} mpgatofixed32"
+      LDFLAGS_mpgatofixed32="${LDFLAGS_mpgatofixed32} -lmad" ],
       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
     CPPFLAGS="${CPPFLAGS_save}"
     LDFLAGS="${LDFLAGS_save}"
@@ -1337,67 +1536,80 @@ dnl
 dnl   libid3tag support
 dnl
 AC_CHECK_HEADERS(id3tag.h, [
-  LDFLAGS_id3tag="${LDFLAGS_id3tag} -lz -lid3tag"
-  PLUGINS="${PLUGINS} id3tag"])
+  AC_CHECK_HEADERS(zlib.h, [
+    LDFLAGS_id3tag="${LDFLAGS_id3tag} -lid3tag -lz"
+    PLUGINS="${PLUGINS} id3tag"]) ])
 
 dnl
 dnl  ffmpeg decoder plugin
 dnl
 AC_ARG_ENABLE(ffmpeg,
-[  --enable-ffmpeg         ffmpeg codec (default disabled)])
-if test "x${enable_ffmpeg}" = "xyes"
+[  --enable-ffmpeg         ffmpeg codec (default enabled)])
+if test "x${enable_ffmpeg}" != "xno"
 then
-  AC_ARG_WITH(ffmpeg,
-    [    --with-ffmpeg=PATH    path to ffmpeg installation],[],[])
-  if test "x${with_ffmpeg}" != "xno" -a "x${with_ffmpeg}" != "x"
-  then
-    CPPFLAGS_ffmpeg="${CPPFLAGS_ffmpeg} -I${with_ffmpeg}/include/libffmpeg"
-    LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} -L${with_ffmpeg}/lib"
-  fi
-
-  dnl Add postprocessing modules
-  PLUGINS="${PLUGINS} postprocessing_c"
-  if test "x${ac_cv_mmx_inline}" != "xno"; then
-    PLUGINS="${PLUGINS} postprocessing_mmx"
-  fi
+  AC_ARG_WITH(ffmpeg-tree,
+    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
 
-  if test "x${ac_cv_mmxext_inline}" != "xno"; then
-    PLUGINS="${PLUGINS} postprocessing_mmxext"
+  dnl
+  dnl test for !(--with-ffmpeg-tree)
+  dnl
+  if test "x${with_ffmpeg_tree}" == "xno" -o "x${with_ffmpeg_tree}" == "x";then
+    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
+    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
+    AC_CHECK_HEADERS(ffmpeg/avcodec.h postproc/postprocess.h)
+    AC_CHECK_LIB(avcodec, avcodec_init, [
+      BUILTINS="${BUILTINS} ffmpeg stream_out_transcode"
+      LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} -lavcodec"
+      dnl  XXX: we don't link with -lavcodec a 2nd time because the OS X
+      dnl       linker would miserably barf on multiple definitions.
+      LDFLAGS_stream_out_transcode="${LDFLAGS_stream_out_transcode}" ],
+       [ AC_MSG_ERROR([Could not find ffmpeg on your system: you may get it from http://ffmpeg.sf.net/ (cvs version is recommended). Alternatively you can use --disable-ffmpeg to disable the ffmpeg plugins.]) ])
+    LDFLAGS="${LDFLAGS_save}"
+    CPPFLAGS="${CPPFLAGS_save}"
   fi
 
-  AC_ARG_WITH(ffmpeg-tree,
-  [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
-  if test "x${with_ffmpeg_tree}" != "x"
-  then
+  dnl
+  dnl test for --with-ffmpeg-tree
+  dnl
+  if test "x${with_ffmpeg_tree}" != "xno" -a "x${with_ffmpeg_tree}" != "x";then
     AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
-    if test "x${real_ffmpeg_tree}" = x
-    then
+    if test "x${real_ffmpeg_tree}" = x; then
       dnl  The given directory can't be found
       AC_MSG_RESULT(no)
       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
     fi
-    if test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"
-    then
+    if test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
       dnl  Use a custom libffmpeg
       AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
-      BUILTINS="${BUILTINS} ffmpeg"
-      LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} ${real_ffmpeg_tree}/libavcodec/libavcodec.a"
+      BUILTINS="${BUILTINS} ffmpeg stream_out_transcode"
+      LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} -L${real_ffmpeg_tree}/libavcodec -lavcodec"
       CPPFLAGS_ffmpeg="${CPPFLAGS_ffmpeg} -I${real_ffmpeg_tree}/libavcodec"
+
+      dnl  XXX: we don't link with -lavcodec a 2nd time because the OS X
+      dnl       linker would miserably barf on multiple definitions.
+      LDFLAGS_stream_out_transcode="${LDFLAGS_stream_out_transcode} -L${real_ffmpeg_tree}/libavcodec"
+      CPPFLAGS_stream_out_transcode="${CPPFLAGS_stream_out_transcode} -I${real_ffmpeg_tree}/libavcodec"
     else
       dnl  The given libavcodec wasn't built
       AC_MSG_RESULT(no)
       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
     fi
-  else
-    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
-    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
-    AC_CHECK_LIB(avcodec, avcodec_init, [
-      BUILTINS="${BUILTINS} ffmpeg"
-      LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} -lavcodec" ],
-      [ AC_MSG_ERROR([Cannot find libavcodec library...]) ])
-    LDFLAGS="${LDFLAGS_save}"
-    CPPFLAGS="${CPPFLAGS_save}"
+  fi
+
+  dnl Duplicate the ffmpeg CPPFLAGS and LDFLAGS for the encoder
+  CPPFLAGS_encoder_ffmpeg="${CPPFLAGS_ffmpeg}"
+  dnl XXX: we don't link with -lavcodec blah blah blah
+  #LDFLAGS_encoder_ffmpeg="${LDFLAGS_ffmpeg}"
+
+  dnl Add postprocessing modules
+  PLUGINS="${PLUGINS} postprocessing_c"
+  if test "x${ac_cv_mmx_inline}" != "xno"; then
+    PLUGINS="${PLUGINS} postprocessing_mmx"
+  fi
+
+  if test "x${ac_cv_mmxext_inline}" != "xno"; then
+    PLUGINS="${PLUGINS} postprocessing_mmxext"
   fi
 fi
 
@@ -1408,15 +1620,6 @@ AC_ARG_ENABLE(faad,
 [  --enable-faad           faad codec (default disabled)])
 if test "x${enable_faad}" = "xyes"
 then
-  AC_ARG_WITH(faad,
-    [    --with-faad=PATH      path to faad installation],[],[])
-  if test "x${with_faad}" != "xno" -a "x${with_faad}" != "x"
-  then
-    CPPFLAGS_faad="${CPPFLAGS_faad} -I${with_faad}/include"
-    LDFLAGS_faad="${LDFLAGS_faad} -L${with_faad}/lib"
-  fi
-  LDFLAGS_faad="${LDFLAGS_faad}"
-
   AC_ARG_WITH(faad-tree,
   [    --with-faad-tree=PATH faad tree for static linking])
   if test "x${with_faad_tree}" != "x"
@@ -1434,8 +1637,16 @@ then
       dnl  Use a custom faad
       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
       BUILTINS="${BUILTINS} faad"
-      LDFLAGS_faad="${LDFLAGS_faad} ${real_faad_tree}/libfaad/.libs/libfaad.a"
+      LDFLAGS_faad="${LDFLAGS_faad} -L${real_faad_tree}/libfaad/.libs -lfaad"
       CPPFLAGS_faad="${CPPFLAGS_faad} -I${real_faad_tree}/include"
+      CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
+      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
+      AC_TRY_COMPILE([#include <faad.h>],
+        [faacDecHandle a; faacDecFrameInfo *b; unsigned char *c;
+         unsigned long d; faacDecDecode(a,b,c,d);],
+        [], [AC_DEFINE(HAVE_OLD_FAAD2, 1, Define if FAAD2 < 1.2)])
+      LDFLAGS="${LDFLAGS_save}"
+      CPPFLAGS="${CPPFLAGS_save}"
     else
       dnl  The given libfaad wasn't built
       AC_MSG_RESULT(no)
@@ -1448,7 +1659,11 @@ then
       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
     AC_CHECK_LIB(faad, faacDecOpen, [
       PLUGINS="${PLUGINS} faad"
-      LDFLAGS_faad="${LDFLAGS_faad} -lfaad" ],
+      LDFLAGS_faad="${LDFLAGS_faad} -lfaad"
+      AC_TRY_COMPILE([#include <faad.h>],
+        [faacDecHandle a; faacDecFrameInfo *b; unsigned char *c;
+         unsigned long d; faacDecDecode(a,b,c,d);],
+        [], [AC_DEFINE(HAVE_OLD_FAAD2, 1, Define if FAAD2 < 1.2)]) ],
       [ AC_MSG_ERROR([Cannot find libfaad library...]) ])
     LDFLAGS="${LDFLAGS_save}"
     CPPFLAGS="${CPPFLAGS_save}"
@@ -1489,7 +1704,7 @@ then
       dnl  Use a custom xvid
       AC_MSG_RESULT(${real_xvid_tree}/build/generic/libxvidcore.a)
       BUILTINS="${BUILTINS} xvid"
-      LDFLAGS_xvid="${LDFLAGS_xvid} ${real_xvid_tree}/build/generic/libxvidcore.a"
+      LDFLAGS_xvid="${LDFLAGS_xvid} -L${real_xvid_tree}/build/generic -lxvidcore"
       CPPFLAGS_xvid="${CPPFLAGS_xvid} -I${real_xvid_tree}/src"
     else
       dnl  The given libxvidcore wasn't built
@@ -1501,29 +1716,52 @@ then
     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xvid}"
     AC_CHECK_HEADERS(xvid.h, ,
       [ AC_MSG_ERROR([Cannot find development headers for libxvidcore...]) ])
-    AC_CHECK_LIB(xvid, xvid_init, [
+    AC_CHECK_LIB(xvidcore, xvid_init, [
       PLUGINS="${PLUGINS} xvid"
-      LDFLAGS_xvid="${LDFLAGS_xvid} -lxvid" ],
+      LDFLAGS_xvid="${LDFLAGS_xvid} -lxvidcore" ],
       [ AC_MSG_ERROR([Cannot find libxvidcore library...]) ])
     LDFLAGS="${LDFLAGS_save}"
     CPPFLAGS="${CPPFLAGS_save}"
   fi
-fi
 
+  dnl Duplicate the xvid CPPFLAGS and LDFLAGS for the encoder
+  LDFLAGS_encoder_xvid=${LDFLAGS_xvid}
+  CPPFLAGS_encoder_xvid=${CPPFLAGS_xvid}
+fi
 
+dnl
+dnl  QuickTime plugin
+dnl
+AC_ARG_ENABLE(quicktime,
+  [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
+if test "x${enable_quicktime}" != "xno" &&
+  (test "x${SYS}" = "xdarwin" || test "x${enable_quicktime}" = "xyes")
+then
+  AC_CHECK_HEADERS(QuickTime/QuickTime.h,
+    [ BUILTINS="${BUILTINS} quicktime"
+      LDFLAGS_quicktime="${LDFLAGS_quicktime} -framework QuickTime -framework Carbon"
+    ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
+fi
 
 dnl
 dnl MP4 module
 dnl
-AC_ARG_ENABLE(mp4,
-  [  --enable-mp4            MP4 demux module (default enabled)])
-if test "x${enable_mp4}" != "xno"
-then
+AC_CHECK_HEADERS(zlib.h, [
+  LDFLAGS_mp4="${LDFLAGS_mp4} -lz"
+  LDFLAGS_skins="${LDFLAGS_skins} -lz"
+  LDFLAGS_basic_skins="${LDFLAGS_basic_skins} -lz"
+] )
+
+
+dnl
+dnl skins module
+dnl
+AC_CHECK_HEADERS(libtar.h, [
+  LDFLAGS_skins="${LDFLAGS_skins} -ltar"
+  LDFLAGS_basic_skins="${LDFLAGS_basic_skins} -ltar"
+] )
+
 
-    PLUGINS="${PLUGINS} mp4"
-    AC_CHECK_HEADERS(zlib.h,
-              [ LDFLAGS_mp4="${LDFLAGS_mp4} -lz" ] )
-fi
 
 dnl
 dnl  a52 AC3 decoder plugin
@@ -1579,18 +1817,15 @@ then
       LDFLAGS_test="-L${with_a52}/lib"
       CPPFLAGS_test="-I${with_a52}/include"
     fi
-    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
-    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test}"
+    CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
+    LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
     AC_CHECK_HEADERS(a52dec/a52.h, [
       AC_CHECK_LIB(a52, a52_free, [
         PLUGINS="${PLUGINS} a52tofloat32"
         LDFLAGS_a52tofloat32="${LDFLAGS_test} -la52 ${LDFLAGS_a52tofloat32}"
         CPPFLAGS_a52tofloat32="${CPPFLAGS_a52tofloat32} ${CPPFLAGS_test}"
       ],[
-        if test "x${enable_dvbpsi}" != "x"
-        then
-          AC_MSG_ERROR([Could not find a52 on your system: you may get it from http://liba52.sf.net])
-        fi
+        AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
       ])
     ])
     CPPFLAGS="${CPPFLAGS_save}"
@@ -1598,21 +1833,11 @@ then
   fi
 fi
 
-dnl
-dnl  cinepak plugin
-dnl
-AC_ARG_ENABLE(cinepak,
-  [  --enable-cinepak        Cinepak decoder (default enabled)])
-if test "x${enable_cinepak}" != "xno"
-then
-  PLUGINS="${PLUGINS} cinepak"
-fi
-
 dnl
 dnl  DV plugin
 dnl
 AC_ARG_ENABLE(dv,
-  [  --enable-dv             DV decoder support (default disabled)])
+  [  --enable-dv             DV decoder support (deprecated in favor of ffmpeg) (default disabled)])
 if test "x${enable_dv}" = "xyes"
 then
   AC_CHECK_HEADERS(libdv/dv.h, [
@@ -1621,6 +1846,72 @@ then
    ],[])
 fi
 
+dnl
+dnl  Flac plugin
+dnl
+AC_ARG_ENABLE(flac,
+  [  --enable-flac           flac decoder support (default disabled)])
+if test "x${enable_flac}" = "xyes"
+then
+  AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
+    PLUGINS="${PLUGINS} flac flacdec"
+    LDFLAGS_flacdec="${LDFLAGS_flacdec} -lFLAC"
+   ],[])
+fi
+
+dnl
+dnl  Libmpeg2 plugin
+dnl
+AC_ARG_ENABLE(libmpeg2,
+  [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
+if test "x${enable_libmpeg2}" != "xno"
+then
+  AC_ARG_WITH(libmpeg2-tree,
+  [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
+  if test "x${with_libmpeg2_tree}" != "x"
+  then
+    AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
+    real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
+    if test "x${real_libmpeg2_tree}" = x
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
+    fi
+    if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
+    then
+      dnl  Use a custom libmpeg2
+      AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
+      PLUGINS="${PLUGINS} libmpeg2"
+      LDFLAGS_libmpeg2="${LDFLAGS_libmpeg2} -L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2"
+      CFLAGS_libmpeg2="${CFLAGS_libmpeg2} -I${real_libmpeg2_tree}/include"
+      eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
+    else
+      dnl  The given libmpeg2 wasn't built
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
+    fi
+  else
+    AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
+      AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
+      AC_EGREP_CPP(yes,
+        [#include <mpeg2dec/mpeg2.h>
+         #ifdef MPEG2_RELEASE
+         #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
+         yes
+         #endif
+         #endif],
+        [AC_MSG_RESULT([yes])
+          PLUGINS="${PLUGINS} libmpeg2"
+          LDFLAGS_libmpeg2="${LDFLAGS_libmpeg2} -lmpeg2"],
+        [AC_MSG_RESULT([no])
+          AC_MSG_ERROR([Your libmpeg2 is too old (you need the cvs version): you may get a more recent one from http://libmpeg2.sf.net/. Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])])],
+
+      [AC_MSG_ERROR([Could not find libmpeg2 on your system: you may get it from http://libmpeg2.sf.net/ (you need the cvs version). Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])]
+    )
+  fi
+fi
+
 dnl
 dnl  Vorbis plugin
 dnl
@@ -1698,6 +1989,25 @@ dnl
 
 AC_ARG_WITH(,[Video plugins:])
 
+dnl Check for DPMS
+if test "x${SYS}" != "xmingw32"
+then
+  CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
+  AC_CHECK_HEADERS(X11/extensions/dpms.h, [
+    AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
+    AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
+      AC_MSG_RESULT(yes)
+      AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
+                Define if <X11/extensions/dpms.h> defines DPMSInfo.)
+    ],[
+      AC_MSG_RESULT(no)
+    ])
+  ],,[
+    #include <X11/Xlib.h>
+  ])
+  CPPFLAGS="${CPPFLAGS_save}"
+fi
+
 dnl
 dnl  X11 module
 dnl  (enabled by default except on win32)
@@ -1711,6 +2021,13 @@ if test "x${enable_x11}" != "xno" &&
     PLUGINS="${PLUGINS} x11"
     LDFLAGS_x11="${LDFLAGS_x11} -L${x_libraries} -lX11 -lXext"
     CPPFLAGS_x11="${CPPFLAGS_x11} -I${x_includes}"
+    AC_CHECK_HEADERS(X11/extensions/Xinerama.h, [
+      CFLAGS="${CFLAGS_save} -L${x_libraries} -lX11 -lXext"
+      AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
+        AC_DEFINE(HAVE_XINERAMA,1,[Define this if you have libXinerama installed])
+        LDFLAGS_x11="${LDFLAGS_x11} -lXinerama")
+      CFLAGS="${CFLAGS_save}"
+    ])
   ])
   CPPFLAGS="${CPPFLAGS_save}"
 fi
@@ -1740,6 +2057,11 @@ if test "x${enable_xvideo}" != "xno" &&
         :
       )
     )
+    AC_CHECK_HEADERS(X11/extensions/Xinerama.h, [
+      AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
+        AC_DEFINE(HAVE_XINERAMA,1,[Define this if you have libXinerama installed])
+        LDFLAGS_xvideo="${LDFLAGS_xvideo} -lXinerama")
+    ])
     CFLAGS="${CFLAGS_save}"
   ]
   CPPFLAGS="${CPPFLAGS_save}")
@@ -1773,20 +2095,32 @@ then
     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
     SDL_HEADER="SDL/SDL.h"
   fi
+  # check for cross-compiling
+  SDL_PREFIX=
+  AC_ARG_WITH(sdl-prefix,
+    [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
+                               e.g use as:
+                               --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
+  if test "x${with_sdl_prefix}" != "xno" -a "x${with_sdl_prefix}" != "x"
+  then
+    SDL_PREFIX="--prefix=${with_sdl_prefix}"
+  fi
   if test "x${SDL_CONFIG}" != "xno"
   then
     PLUGINS="${PLUGINS} vout_sdl aout_sdl"
-    CFLAGS_vout_sdl="${CFLAGS_vout_sdl} `${SDL_CONFIG} --cflags | sed 's,SDL,,'`"
-    LDFLAGS_vout_sdl="${LDFLAGS_vout_sdl} `${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`"
-    CFLAGS_aout_sdl="${CFLAGS_aout_sdl} `${SDL_CONFIG} --cflags | sed 's,SDL,,'`"
-    LDFLAGS_aout_sdl="${LDFLAGS_aout_sdl} `${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`"
+    CFLAGS_vout_sdl="${CFLAGS_vout_sdl} `${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`"
+    LDFLAGS_vout_sdl="${LDFLAGS_vout_sdl} `${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`"
+    CFLAGS_aout_sdl="${CFLAGS_aout_sdl} `${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`"
+    LDFLAGS_aout_sdl="${LDFLAGS_aout_sdl} `${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`"
     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
+      [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
+          As a last resort we also test for SDL.h presence),
       [ AC_MSG_ERROR([The development package for SDL is not installed.
 Please install it and try again. Alternatively you can also configure with
 --disable-sdl.])
-      ])
+      ])])
     CPPFLAGS="${CPPFLAGS_save}"
     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
     then
@@ -1802,6 +2136,36 @@ from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
   fi
 fi
 
+dnl
+dnl  freetype module
+dnl
+AC_ARG_ENABLE(freetype,
+  [  --enable-freetype       freetype support (default enabled)])
+if test "x${enable_freetype}" != "xno"
+then
+  FREETYPE_PATH="${PATH}"
+  AC_ARG_WITH(freetype-config-path,
+    [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
+    [ if test "x${with_freetype_config_path}" != "xno"
+      then
+        FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
+      fi ])
+  AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
+
+  if test "x${FREETYPE_CONFIG}" != "xno"
+  then
+    PLUGINS="${PLUGINS} osdtext"
+    CFLAGS_osdtext="${CFLAGS_osdtext} `${FREETYPE_CONFIG} --cflags`"
+    LDFLAGS_osdtext="${LDFLAGS_osdtext} `${FREETYPE_CONFIG} --libs`"
+    CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_freetype}"
+  elif test "x${enable_freetype}" =  "xyes"
+  then
+    AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
+from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
+    ])
+  fi
+fi
+
 dnl
 dnl  Qt Embedded module
 dnl  (disabled by default)
@@ -1815,24 +2179,17 @@ then
   if test "x${with_qte}" != "xno" -a "x${with_qte}" != "x"
   then
     LDFLAGS_qte="${LDFLAGS_qte} -L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte"
-    CFLAGS_qte="${CFLAGS_qte} -I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti"
+    CPPFLAGS_qte="${CPPFLAGS_qte} -I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti"
   else
     LDFLAGS_qte="${LDFLAGS_qte} -L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte"
-    CFLAGS_qte="${CFLAGS_qte} -I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti"
+    CPPFLAGS_qte="${CPPFLAGS_qte} -I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti"
   fi
   PLUGINS="${PLUGINS} qte"
-  CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_qte}"
-#  ac_cv_qte_headers=yes
+  NEED_QTE_MAIN=yes
+  CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_qte}"
   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
-#    ac_cv_qte_headers=no
     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
   ] )
-  if test "x${ac_cv_qte_headers}" = "xyes"
-  then
-#    CFLAGS_qte="${CFLAGS_qte} -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti"
-#    LDFLAGS_qte="${LDFLAGS_qte} -ljpeg -lqte"
-#    PLUGINS="${PLUGINS} qte"
-  fi
   CPPFLAGS="${CPPFLAGS_save}"
 fi
 
@@ -2029,8 +2386,15 @@ AC_ARG_ENABLE(alsa,
      AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
      if test "x${have_alsa}" = "xtrue"
      then
-       #PLUGINS="${PLUGINS} alsa"
+       AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
+                       #define ALSA_PCM_NEW_SW_PARAMS_API
+                       #include <alsa/asoundlib.h>],
+          [void foo() { snd_pcm_hw_params_get_period_time(0,0,0); }],
+           AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
+       PLUGINS="${PLUGINS} alsa"
        LDFLAGS_alsa="${LDFLAGS_alsa} -lasound -lm -ldl"
+     else
+       AC_MSG_ERROR([Could not find ALSA development headers])
      fi
    fi])
 
@@ -2046,6 +2410,26 @@ if test "x${enable_waveout}" != "xno"; then
   fi
 fi
 
+dnl
+dnl  CoreAudio plugin
+dnl
+AC_ARG_ENABLE(coreaudio,
+  [  --enable-coreaudio      CoreAudio module (default enabled on MacOS X)])
+if test "x${enable_coreaudio}" != "xno" &&
+  (test "x${SYS}" = "xdarwin" || test "x${enable_coreaudio}" = "xyes")
+then
+  AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
+    [ BUILTINS="${BUILTINS} coreaudio"
+      LDFLAGS_coreaudio="${LDFLAGS_coreaudio} -framework CoreAudio"
+      AC_MSG_CHECKING(for kAudioConverterPrimeMethod in AudioToolbox/AudioConverter.h)
+      AC_EGREP_HEADER(kAudioConverterPrimeMethod,AudioToolbox/AudioConverter.h,[
+        AC_MSG_RESULT(yes)
+        PLUGINS="${PLUGINS} coreaudio_resampler"
+        LDFLAGS_coreaudio_resampler="${LDFLAGS_coreaudio_resampler} -framework AudioToolbox"
+      ],[ AC_MSG_RESULT(no) ])
+    ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
+fi
+
 dnl
 dnl  Interface plugins
 dnl
@@ -2058,6 +2442,77 @@ then
     PLUGINS="${PLUGINS} beos"
 fi
 
+dnl
+dnl Skins module
+dnl
+AC_ARG_ENABLE(skins,
+  [  --enable-skins          Skins interface module (default enabled on Win32)])
+if test "x${enable_skins}" != "xno"; then
+  WXWINDOWS_PATH="${PATH}"
+  AC_ARG_WITH(skins-wx-config-path,
+    [    --with-skins-wx-config-path=PATH wx-config path for the skins plugin (default search in \$PATH)],
+    [ if test "x${with_skins_wx_config_path}" != "xno"
+      then
+        WXWINDOWS_PATH="${with_skins_wx_config_path}:${PATH}"
+      fi ])
+  # look for wx-config
+  AC_PATH_PROG(WX_CONFIG_SKINS, wx-config, no, ${WXWINDOWS_PATH})
+  if test "x${WX_CONFIG_SKINS}" != "xno"
+  then
+    if expr 2.3.0 \> `${WX_CONFIG_SKINS} --version` >/dev/null
+    then
+      AC_MSG_ERROR([Your development package for wxWindows is too old, you need at least version 2.3.0. Please upgrade and try again. Alternatively you can also configure with --disable-skins.])
+    fi
+    CPPFLAGS_skins="${CPPFLAGS_skins} `${WX_CONFIG_SKINS} --cxxflags` -DWX_SKINS"
+    LDFLAGS_skins="${LDFLAGS_skins} `${WX_CONFIG_SKINS} --libs`"
+  fi
+
+  if test "x${SYS}" = "xmingw32" -o "x${SYS}" = "xcygwin"; then
+    PLUGINS="${PLUGINS} skins"
+    CPPFLAGS_skins="${CPPFLAGS_skins} -O2 -U_OFF_T_ -U_off_t -fno-rtti -Imodules/gui/skins"
+    LDFLAGS_skins="${LDFLAGS_skins} -loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lstdc++ -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32"
+  else
+    if test "x${enable_skins}" = "xyes"; then
+      IMLIB2_PATH="${PATH}"
+      AC_PATH_PROG(IMLIB2_CONFIG_SKINS, imlib2-config, no, ${IMLIB2_PATH})
+      if test "x${IMLIB2_CONFIG_SKINS}" = "xno"; then
+        AC_MSG_ERROR([Couldn't find the imlib2 package. You can download imlib2 from http://enlightenment.org/, or configure with --disable-skins.])
+      fi
+
+      PLUGINS="${PLUGINS} skins"
+      CPPFLAGS_skins="${CPPFLAGS_skins} -O2 -fno-rtti -Imodules/gui/skins -I${x_includes} `${IMLIB2_CONFIG_SKINS} --cflags` -DX11_SKINS"
+      LDFLAGS_skins="${LDFLAGS_skins} -lstdc++ -L${x_libraries} -lXext -lX11 `${IMLIB2_CONFIG_SKINS} --libs`"
+      PLUGINS="${PLUGINS} skins"
+    fi
+  fi
+fi
+
+dnl
+dnl Basic skins module (i.e. without wxWindows dialogs)
+dnl
+AC_ARG_ENABLE(basic-skins,
+  [  --enable-basic-skins    Skins interface module without wxWindows dialogs (default disabled)])
+if test "x${enable_basic_skins}" = "xyes"; then
+  if test "x${SYS}" = "xmingw32" -o "x${SYS}" = "xcygwin"; then
+
+    CPPFLAGS_basic_skins="${CPPFLAGS_basic_skins} -O2 -U_OFF_T_ -U_off_t -fno-rtti -Imodules/gui/skins"
+    LDFLAGS_basic_skins="${LDFLAGS_basic_skins} -loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lstdc++ -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32"
+
+  else
+    IMLIB2_PATH="${PATH}"
+    AC_PATH_PROG(IMLIB2_CONFIG_SKINS, imlib2-config, no, ${IMLIB2_PATH})
+    if test "x${IMLIB2_CONFIG_SKINS}" = "xno"; then
+    AC_MSG_ERROR([Couldn't find the imlib2 package. You can download imlib2 from http://enlightenment.org/, or configure with --disable-basic-skins.])
+    fi
+
+    CPPFLAGS_basic_skins="${CPPFLAGS_basic_skins} -O2 -fno-rtti -Imodules/gui/skins -I${x_includes} `${IMLIB2_CONFIG_SKINS} --cflags` -DX11_SKINS"
+    LDFLAGS_basic_skins="${LDFLAGS_basic_skins} -lstdc++ -L${x_libraries} -lXext -lX11 `${IMLIB2_CONFIG_SKINS} --libs`"
+  fi
+
+  PLUGINS="${PLUGINS} basic_skins"
+  CPPFLAGS_basic_skins="${CPPFLAGS_basic_skins} -DBASIC_SKINS"
+fi
+
 dnl
 dnl  Gtk+ module
 dnl
@@ -2111,6 +2566,22 @@ then
   fi
 fi
 
+dnl
+dnl  Gtk+2 module
+dnl
+AC_ARG_ENABLE(gtk2,
+  [  --enable-gtk2           Gtk2 support (default disabled)])
+if test "x${enable_gtk2}" = "xyes"
+then
+  PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
+  CFLAGS_gtk2="${CFLAGS_gtk2} ${GTK2_CFLAGS}"
+  LDFLAGS_gtk2="${LDFLAGS_gtk2} ${GTK2_LIBS}"
+  PLUGINS="${PLUGINS} gtk2"
+  if test "x${SYS}" != "xmingw32"; then
+    NEED_GTK2_MAIN=yes
+  fi
+fi
+
 dnl
 dnl  Familiar module uses Gtk+ library
 dnl
@@ -2138,7 +2609,7 @@ then
     [    --with-gtk-prefix=PATH path to libgtk (needed for cross-compiling),
                           e.g use as:
                           --with-gtk-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
-  if test "x$with_gtk_prefix" != "xno" -a "x$with_gtk_prefix" != "x"
+  if test "x${with_gtk_prefix}" != "xno" -a "x${with_gtk_prefix}" != "x"
   then
     GTK_PREFIX="--prefix=$with_gtk_prefix"
   fi
@@ -2157,6 +2628,11 @@ then
       ac_cv_gtk_headers=no
       echo "Cannot find gtk development headers."
     ])
+    if test "x${ac_cv_gtk_headers}" = "xyes"
+    then
+      PLUGINS="${PLUGINS} familiar"
+    fi
+    CPPFLAGS="${CPPFLAGS_save}"
 
     # now look for gpe support
     AC_ARG_WITH(gpe-prefix,
@@ -2175,9 +2651,6 @@ then
       AC_CHECK_HEADERS(gpe/init.h, ,
         [ ac_cv_gpe_headers=no
           AC_MSG_ERROR([Cannot find development headers for libgpewidget...]) ])
-#      AC_CHECK_LIB(gpewidget, gpe_application_init,
-#        [ LDFLAGS_gpe="${LDFLAGS_gpe} -lgpewidget" ],
-#        [ AC_MSG_ERROR([Cannot find libgpewidget library...]) ])
       CFLAGS=$CFLAGS_save
       LDFLAGS=$LDFLAG_save
       if test "x${ac_cv_gpe_headers}" = "xyes"
@@ -2185,14 +2658,10 @@ then
         CFLAGS_familiar="${CFLAGS_familiar} ${CFLAGS_gpe}"
         LDFLAGS_familiar="${LDFLAGS_familiar} ${LDFLAGS_gpe}"
       fi
-    fi
-    if test "x${ac_cv_gtk_headers}" = "xyes"
-    then
-      PLUGINS="${PLUGINS} familiar"
-      NEED_GTK_MAIN=yes
-    fi
-    CPPFLAGS="${CPPFLAGS_save}"
-  fi
+    else
+         NEED_GTK_MAIN=yes
+    fi # end gpe support
+  fi # end gtk+ support
 fi
 
 dnl
@@ -2215,6 +2684,13 @@ AC_ARG_ENABLE(gnome,
       NEED_GTK_MAIN=yes
       NEED_GNOME_MAIN=yes
       ALIASES="${ALIASES} gnome-vlc"
+      dnl We need this because of some moronic gnomesupport.h flavours
+      AC_MSG_CHECKING(for strndup in gnome.h)
+      AC_EGREP_HEADER(strndup,gnome.h,[
+        AC_MSG_RESULT(yes)
+        AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
+                  Define if <gnome.h> defines strndup.)],[
+        AC_MSG_RESULT(no)])
      ],[
       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
 developement tools or remove the --enable-gnome option])
@@ -2222,6 +2698,22 @@ developement tools or remove the --enable-gnome option])
     CPPFLAGS="${CPPFLAGS_save}"
   fi])
 
+dnl
+dnl  Gnome2 module
+dnl
+AC_ARG_ENABLE(gnome2,
+  [  --enable-gnome2         Gnome2 support (default disabled)])
+if test "x${enable_gnome2}" = "xyes"
+then
+  PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
+  CFLAGS_gnome2="${CFLAGS_gnome2} ${GNOME2_CFLAGS}"
+  LDFLAGS_gnome2="${LDFLAGS_gnome2} ${GNOME2_LIBS}"
+  PLUGINS="${PLUGINS} gnome2"
+  if test "x${SYS}" != "xmingw32"; then
+    NEED_GNOME2_MAIN=yes
+  fi
+fi
+
 dnl
 dnl  wxWindows module
 dnl
@@ -2244,10 +2736,10 @@ then
     then
       AC_MSG_ERROR([Your development package for wxWindows is too old, you need at least version 2.3.0. Please upgrade and try again. Alternatively you can also configure with --disable-wxwindows.])
     fi
-    CXXFLAGS_wxwindows="${CXXFLAGS_wxwindows} `${WX_CONFIG} --cflags`"
+    CXXFLAGS_wxwindows="${CXXFLAGS_wxwindows} `${WX_CONFIG} --cxxflags`"
     LDFLAGS_wxwindows="${LDFLAGS_wxwindows} `${WX_CONFIG} --libs`"
     # now look for the wxprec.h header
-    CPPFLAGS="${save_CPPFLAGS} ${CXXFLAGS_wxwindows}"
+    CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwindows}"
     ac_cv_wx_headers=yes
     AC_CHECK_HEADERS(wx/wxprec.h, , [
       ac_cv_wx_headers=no
@@ -2258,7 +2750,7 @@ then
       PLUGINS="${PLUGINS} wxwindows"
       ALIASES="${ALIASES} wxvlc"
     fi
-    CPPFLAGS="${save_CPPFLAGS}"
+    CPPFLAGS="${CPPFLAGS_save}"
   fi
 fi
 
@@ -2270,8 +2762,17 @@ AC_ARG_ENABLE(qt,
   [if test "x${enable_qt}" = "xyes"; then
      PLUGINS="${PLUGINS} qt"
      ALIASES="${ALIASES} qvlc"
-     LDFLAGS_qt="${LDFLAGS_qt} -lqt -L${QTDIR}/lib"
-     CPPFLAGS_qt="${CPPFLAGS_qt} -I/usr/include/qt -I${QTDIR}/include"
+     LDFLAGS_qt="${LDFLAGS_qt} -L${QTDIR}/lib"
+     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
+     AC_CHECK_LIB(qt-mt,main,[
+       LDFLAGS_qt="${LDFLAGS_qt} -lqt-mt"
+     ],[
+       AC_CHECK_LIB(qt,main,[
+         LDFLAGS_qt="${LDFLAGS_qt} -lqt"
+       ])
+     ])
+     LDFLAGS="${LDFLAGS_save}"
+     CPPFLAGS_qt="${CPPFLAGS_qt} -I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include"
      if test -x ${QTDIR}/bin/moc
      then
        MOC=${QTDIR}/bin/moc
@@ -2288,8 +2789,22 @@ AC_ARG_ENABLE(kde,
   [if test "x${enable_kde}" = "xyes"; then
      PLUGINS="${PLUGINS} kde"
      ALIASES="${ALIASES} kvlc"
-     LDFLAGS_kde="${LDFLAGS_kde} -L${KDEDIR}/lib -lkfile"
-     CPPFLAGS_kde="${CPPFLAGS_kde} -I/usr/include/kde -I/usr/include/qt"
+     LDFLAGS_kde="${LDFLAGS_kde} -L${KDEDIR}/lib"
+     dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
+     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
+     AC_CHECK_LIB(kfile,main,[
+       LDFLAGS_kde="${LDFLAGS_kde} -lkfile"
+     ])
+     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
+     AC_CHECK_LIB(kdeui,main,[
+       LDFLAGS_kde="${LDFLAGS_kde} -lkdeui"
+     ])
+     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
+     AC_CHECK_LIB(kio,main,[
+       LDFLAGS_kde="${LDFLAGS_kde} -lkio"
+     ])
+     LDFLAGS="${LDFLAGS_save}"
+     CPPFLAGS_kde="${CPPFLAGS_kde} -I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt"
      CPPFLAGS_kde="${CPPFLAGS_kde} -I${KDEDIR}/include -I${QTDIR}/include"
      if test -x ${QTDIR}/bin/moc
      then
@@ -2309,33 +2824,27 @@ AC_ARG_ENABLE(opie,
      [    --with-qte=PATH       Qt Embedded headers and libraries])
      if test "x${with_qte}" != "xno" -a "x${with_qte}" != "x"
      then
-       LDFLAGS_test="-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'`"
-       CFLAGS_test="-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'`"
+       LDFLAGS_qte="-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte"
+       CPPFLAGS_qte="-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti"
      else
-       LDFLAGS_test="-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`"
-       CFLAGS_test="-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`"
+       LDFLAGS_qte="-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`"
+       CPPFLAGS_qte="-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`"
      fi
-     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_test}"
-     ac_cv_qte_headers=yes
+     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_qte}"
      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
-       ac_cv_qte_headers=no
        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
      ] )
-     if test "x${ac_cv_qte_headers}" = "xyes"
-     then
-       CFLAGS_qte="${CFLAGS_qte} ${CFLAGS_test} -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti"
-       LDFLAGS_qte="${LDFLAGS_qte} ${LDFLAGS_test} -ljpeg -lqte"
-     fi
      CPPFLAGS="${CPPFLAGS_save}"
 
      PLUGINS="${PLUGINS} opie"
+     NEED_QTE_MAIN=yes
      LDFLAGS_opie="${LDFLAGS_opie} -lqpe ${LDFLAGS_qte}"
      CPPFLAGS_opie="${CPPFLAGS_opie} ${CPPFLAGS_qte}"
-     if test -x ${QTEDIR}/bin/moc
+     if test "x${with_qte}" != "xno" -a "x${with_qte}" != "x"
      then
-       MOC=${QTEDIR}/bin/moc
+       MOC=${with_qte}/bin/moc
      else
-       MOC=moc
+       MOC=${QTDIR}/bin/moc
      fi
    fi])
 
@@ -2347,11 +2856,11 @@ AC_ARG_ENABLE(macosx,
   [if test "x${enable_macosx}" = "xyes"
    then
      BUILTINS="${BUILTINS} macosx"
-     LDFLAGS_macosx="${LDFLAGS_macosx} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC"
+     LDFLAGS_macosx="${LDFLAGS_macosx} -framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC"
    fi],
   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
      BUILTINS="${BUILTINS} macosx"
-     LDFLAGS_macosx="${LDFLAGS_macosx} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC"
+     LDFLAGS_macosx="${LDFLAGS_macosx} -framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC"
    )])
 
 dnl
@@ -2367,22 +2876,6 @@ AC_ARG_ENABLE(qnx,
       ])
     fi
 
-dnl
-dnl  Windows native interface module, built with Borland C++ Builder
-dnl
-AC_ARG_ENABLE(intfwin,
-[  --enable-intfwin        Win32 interface support (default disabled)],
-[ if test "x${enable_intfwin}" != "xno"
-  then
-    AC_ARG_WITH(bcbuilder,
-    [    --with-bcbuilder=PATH Borland C++ Builder installation path])
-    if test "x${with_bcbuilder}" != "x"
-    then
-      BCBUILDER="${with_bcbuilder}"
-    fi
-    PLUGINS="${PLUGINS} win32"
-  fi ])
-
 dnl
 dnl  ncurses module
 dnl
@@ -2401,9 +2894,13 @@ AC_ARG_ENABLE(xosd,
 if test "x${enable_xosd}" = "xyes"
 then
   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
-  AC_TRY_COMPILE([#include <xosd.h>],
-     [void foo() { xosd_init("foo","bar",12,XOSD_top,2,12,42); }],,
-      AC_DEFINE(HAVE_OLD_XOSD_H, 1, Define if <xosd.h> is pre-1.0.0))
+  AC_CHECK_LIB(xosd,xosd_set_offset,
+      AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
+    AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
+        AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
+      AC_TRY_COMPILE([#include <xosd.h>],
+         [void foo() { xosd_init("foo","bar",12,XOSD_top,2,12,42); }],,
+          AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
   if test "x${have_xosd}" = "xtrue"
   then
     PLUGINS="${PLUGINS} xosd"
@@ -2411,6 +2908,40 @@ then
   fi
 fi
 
+dnl
+dnl  SLP access plugin
+dnl
+AC_ARG_ENABLE(slp,
+  [  --enable-slp            SLP service discovery support (default enabled)])
+if test "x${enable_slp}" != "xno"
+then
+  AC_ARG_WITH(slp,
+  [    --with-slp=PATH       libslp headers and libraries])
+  if test "x${with_slp}" = x
+  then
+    AC_CHECK_HEADER(slp.h, have_slp="true", have_slp="false")
+    if test "x${have_slp}" = "xtrue"
+    then
+      PLUGINS="${PLUGINS} slp"
+      LDFLAGS_slp="-lslp ${LDFLAGS_slp}"
+    fi
+  else
+    AC_MSG_CHECKING(for slp headers in ${with_slp})
+    if test -f ${with_slp}/slp.h
+    then
+      dnl  Use ${with_slp}/libslp/slp.h
+      AC_MSG_RESULT(yes)
+      PLUGINS="${PLUGINS} slp"
+      LDFLAGS_slp="-L${with_slp} -lslp ${LDFLAGS_slp}"
+      CPPFLAGS_slp="${CPPFLAGS_slp} -I${with_slp}"
+    else
+      dnl  No libslp could be found, sorry
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${with_slp}/slp.h])
+    fi
+  fi
+fi
+
 dnl
 dnl  Lirc plugin
 dnl
@@ -2487,49 +3018,6 @@ then
   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
 fi
 
-dnl
-dnl  Profiling
-dnl
-AC_ARG_ENABLE(gprof,
-[  --enable-gprof          gprof profiling (default disabled)])
-AC_ARG_ENABLE(cprof,
-[  --enable-cprof          cprof profiling (default disabled)])
-AM_CONDITIONAL(GPROF, test "x${enable_gprof}" = "xyes")
-AM_CONDITIONAL(CPROF, test "x${enable_gprof}" = "xyes")
-
-dnl
-dnl  GNU portable threads
-dnl
-AC_ARG_ENABLE(pth,
-  [  --enable-pth            GNU Pth support (default disabled)],
-  [ if test "x${enable_pth}" = "xyes"; then
-    AC_CHECK_LIB(pth,pth_init)
-    AC_EGREP_HEADER(pth_init,pth.h,[
-      AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
-                Define if <pth.h> defines pth_init)
-    THREAD_LIB="-lpth"
-    fi])
-])
-
-dnl
-dnl  State Threads
-dnl
-AC_ARG_ENABLE(st,
-  [  --enable-st             State Threads (default disabled)],
-  [ if test "x${enable_st}" = "xyes"; then
-    AC_CHECK_LIB(st,st_init)
-    AC_EGREP_HEADER(st_init,st.h,[
-      AC_DEFINE(ST_INIT_IN_ST_H, 1,
-                Define if <st.h> defines st_init)
-    THREAD_LIB="-lst"
-    fi])
-])
-
-if test "x${SYS}" != "xmingw32"; then
-  LDFLAGS_vlc="${LDFLAGS_vlc} ${THREAD_LIB}"
-  LDFLAGS_plugins="${LDFLAGS_plugins} ${THREAD_LIB}"
-fi
-
 dnl
 dnl  Mozilla plugin
 dnl
@@ -2588,6 +3076,7 @@ if test "x${NEED_GTK_MAIN}" != "xno"
 then
     PLUGINS="${PLUGINS} gtk_main"
     CFLAGS_gtk="${CFLAGS_gtk} -DNEED_GTK_MAIN"
+    CFLAGS_familiar="${CFLAGS_familiar} -DNEED_GTK_MAIN"
     CFLAGS_gtk_main="${CFLAGS_gtk_main} ${CFLAGS_gtk} ${CFLAGS_familiar}"
     LDFLAGS_gtk_main="${LDFLAGS_gtk_main} ${LDFLAGS_gtk} ${LDFLAGS_familiar}"
 fi
@@ -2599,6 +3088,35 @@ then
     LDFLAGS_gnome_main="${LDFLAGS_gnome_main} ${LDFLAGS_gtk} ${LDFLAGS_familiar} ${LDFLAGS_gnome}"
 fi
 
+if test "x${NEED_GTK2_MAIN}" != "xno"
+then
+    PLUGINS="${PLUGINS} gtk2_main"
+    CFLAGS_gtk2="${CFLAGS_gtk2} -DNEED_GTK2_MAIN"
+    CFLAGS_gtk2_main="${CFLAGS_gtk2_main} ${CFLAGS_gtk2}"
+    LDFLAGS_gtk2_main="${LDFLAGS_gtk2_main} ${LDFLAGS_gtk2}"
+fi
+
+if test "x${NEED_GNOME2_MAIN}" != "xno"
+then
+    PLUGINS="${PLUGINS} gnome2_main"
+    CFLAGS_gnome2_main="${CFLAGS_gnome2_main} ${CFLAGS_gtk2} ${CFLAGS_gnome2}"
+    LDFLAGS_gnome2_main="${LDFLAGS_gnome2_main} ${LDFLAGS_gtk2} ${LDFLAGS_gnome2}"
+fi
+
+dnl
+dnl  qte_main plugin
+dnl
+if test "x${NEED_QTE_MAIN}" != "xno"
+then
+    PLUGINS="${PLUGINS} qte_main"
+    CPPFLAGS_qte="${CPPFLAGS_qte} -DNEED_QTE_MAIN"
+    CPPFLAGS_opie="${CPPFLAGS_opie} -DNEED_QTE_MAIN"
+    CFLAGS_vout_sdl="${CFLAGS_vout_sdl} -DNEED_QTE_MAIN"
+    CPPFLAGS_qte_main="${CFLAGS_qte_main} ${CPPFLAGS_qte}"
+    LDFLAGS_qte_main="${LDFLAGS_qte_main} ${LDFLAGS_qte}"
+fi
+
+
 dnl
 dnl  Plugin and builtin checks
 dnl
@@ -2653,17 +3171,17 @@ dnl
 dnl  Stuff used by the program
 dnl
 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
-AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VideoLAN Client - version ${VERSION} ${CODENAME} - (c) 1996-2002 VideoLAN", [Copyright string])
+AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2003 VideoLAN", [Copyright string])
 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
 
-VLC_SYMBOL="`echo ${VERSION} | tr .- __`"
+VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-/__/'`"
 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
 AC_DEFINE_UNQUOTED(LIBEXT, "${LIBEXT}", [Dynamic object extension])
 
-DATA_PATH="${ac_tool_prefix}/share/videolan"
+DATA_PATH="${ac_tool_prefix}/share/vlc"
 AC_SUBST(DATA_PATH)
-PLUGIN_PATH="${ac_tool_prefix}/share/videolan"
+PLUGIN_PATH="${ac_tool_prefix}/lib/vlc"
 AC_SUBST(PLUGIN_PATH)
 
 dnl
@@ -2698,14 +3216,15 @@ AC_SUBST(ALIASES)
 AC_SUBST(ASM)
 AC_SUBST(MOC)
 AC_SUBST(WINDRES)
-AC_SUBST(BCBUILDER)
 AC_SUBST(XPIDL)
 AC_SUBST(LIBEXT)
 AC_SUBST(INCLUDES)
+AC_SUBST(ALL_LINGUAS)
 
 AC_SUBST(CFLAGS_TUNING)
 AC_SUBST(CFLAGS_OPTIM)
 AC_SUBST(CFLAGS_OPTIM_NODEBUG)
+AC_SUBST(CFLAGS_NOOPTIM)
 AC_SUBST(LDFLAGS)
 
 AC_SUBST(CFLAGS_vlc)
@@ -2724,6 +3243,7 @@ AC_SUBST(LDFLAGS_mozilla)
 
 AC_OUTPUT([
   Makefile
+  autotools/Makefile
   debian/Makefile
   doc/Makefile
   intl/Makefile