]> git.sesse.net Git - vlc/blobdiff - configure.ac.in
Added sout.* and subtitles.*
[vlc] / configure.ac.in
index 1558101e051f5156d21287cb53d5b868b4807d75..abab55146537ea574efef1e222660be85ae19de5 100644 (file)
@@ -1,6 +1,6 @@
 dnl Autoconf settings for vlc
 
-AC_INIT(vlc,0.5.0-cvs)
+AC_INIT(vlc,0.5.2)
 
 CONFIGURE_LINE="$0 $*"
 CODENAME="Natalya"
@@ -11,7 +11,7 @@ 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.5.2)
 AM_CONFIG_HEADER(config.h)
 
 dnl
@@ -33,6 +33,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 +55,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
 
@@ -99,10 +91,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*)
@@ -133,12 +126,12 @@ case "x${target_os}" in
         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_access_ftp="${LDFLAGS_access_ftp} -lws2_32"
         LDFLAGS_access_output_udp="${LDFLAGS_access_output_udp} -lws2_32"
-        LDFLAGS_rc="${LDFLAGS_rc} -lws2_32"
         LDFLAGS_sap="${LDFLAGS_sap} -lws2_32"
+        LDFLAGS_slp="${LDFLAGS_slp} -lws2_32"
+        LDFLAGS_httpd="${LDFLAGS_httpd} -lws2_32"
     fi
     ;;
   x*nto*)
@@ -163,7 +156,8 @@ case "x${target_os}" in
     dnl BONE or not BONE ?
     AC_CHECK_LIB( bind, inet_ntoa,
         [ LDFLAGS_access_mms="${LDFLAGS_access_mms} -lbind"
-          LDFLAGS_ipv4="${LDFLAGS_ipv4} -lbind"],
+          LDFLAGS_ipv4="${LDFLAGS_ipv4} -lbind"
+          LDFALGS_httpd="${LDFLAGS_httpd} -lbind"],
         [])
     ;;
   x*)
@@ -174,6 +168,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.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"
+else
+  AC_CHECK_FUNCS(textdomain,,[
+    AC_CHECK_LIB(intl,textdomain,
+      LDFLAGS_vlc="${LDFLAGS_vlc} -lintl"
+      LDFLAGS_plugins="${LDFLAGS_plugins} -lintl"
+    )
+  ])
+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})
 
@@ -195,13 +209,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
 
@@ -253,50 +273,31 @@ need_libc=false
 AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol isatty vasprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 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_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(
@@ -310,22 +311,13 @@ if test x$ac_cv_type_socklen_t != xno; then
             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_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"],
@@ -336,7 +328,8 @@ 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"
@@ -346,6 +339,9 @@ AC_CHECK_LIB(m,pow,
   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"
+)
 
 dnl Check for pthreads - borrowed from XMMS
 THREAD_LIB=error
@@ -359,23 +355,96 @@ 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
+])
+
+if test "x${SYS}" != "xmingw32"; then
+  LDFLAGS_vlc="${LDFLAGS_vlc} ${THREAD_LIB}"
+  LDFLAGS_plugins="${LDFLAGS_plugins} ${THREAD_LIB}"
+fi
+
+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)])
+
+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)
@@ -393,15 +462,23 @@ 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
+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)
 ])
 
 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
@@ -419,15 +496,24 @@ dnl Build the gtk_main plugins?
 NEED_GTK_MAIN=no
 NEED_GNOME_MAIN=no
 
+dnl build the qte plugin ?
+NEED_QTE_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_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
@@ -558,21 +644,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
 
@@ -663,6 +755,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
@@ -681,35 +786,57 @@ case "${ARCH}" in
     ;;
 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 idct idctclassic motion"
+PLUGINS="${PLUGINS} dummy rc logger gestures access_file 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} float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif fixed32tofloat32 fixed32tos16 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 access_ftp"
+PLUGINS="${PLUGINS} wav araw demuxdump demuxsub adpcm a52sys au"
+PLUGINS="${PLUGINS} access_udp access_http ipv4 access_mms access_ftp"
+PLUGINS="${PLUGINS} sap httpd"
+
+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"
+MMX_MODULES="memcpymmx idctmmx motionmmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
 MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext"
-THREEDNOW_MODULES="memcpy3dn imdct3dn downmix3dn"
-SSE_MODULES="imdctsse downmixsse"
+THREEDNOW_MODULES="memcpy3dn"
+SSE_MODULES=""
 ALTIVEC_MODULES="idctaltivec motionaltivec memcpyaltivec"
 
+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],
     [CFLAGS="${CFLAGS_save}"
@@ -835,7 +962,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
@@ -876,10 +1003,20 @@ 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"
-  PLUGINS="${PLUGINS} mux_ts mux_ps mux_dummy"
+  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_copy"
+  PLUGINS="${PLUGINS} packetizer_mpeg4video packetizer_mpeg4audio"
+  PLUGINS="${PLUGINS} packetizer_copy"
+
+  PLUGINS="${PLUGINS} vout_encoder"
+
+    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
 
 
@@ -924,8 +1061,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
@@ -996,7 +1133,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
@@ -1059,7 +1196,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
@@ -1085,10 +1222,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,
@@ -1101,7 +1238,9 @@ 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>
 #include <dvbpsi/dvbpsi.h>
@@ -1122,8 +1261,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)
@@ -1149,6 +1293,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
@@ -1180,18 +1328,30 @@ 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,[
+    AC_MSG_RESULT(yes)
     PLUGINS="${PLUGINS} vcd"
+  ],[
+    AC_MSG_RESULT(no)
   ])
 
+  AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
+    AC_MSG_RESULT(yes)
     PLUGINS="${PLUGINS} vcd"
     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,[
+    AC_MSG_RESULT(yes)
     PLUGINS="${PLUGINS} vcd"
     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"
@@ -1222,7 +1382,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"])
@@ -1241,36 +1401,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
@@ -1298,14 +1428,14 @@ dnl  mad plugin
 dnl
 AC_ARG_ENABLE(mad,
   [  --enable-mad            libmad module (default disabled)])
-if test "x${enable_mad}" = "xyes"
+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,
@@ -1324,12 +1454,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}"
@@ -1338,13 +1468,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_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}"
@@ -1355,8 +1485,9 @@ 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
@@ -1400,7 +1531,7 @@ 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"
+      LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} -L${real_ffmpeg_tree}/libavcodec -lavcodec"
       CPPFLAGS_ffmpeg="${CPPFLAGS_ffmpeg} -I${real_ffmpeg_tree}/libavcodec"
     else
       dnl  The given libavcodec wasn't built
@@ -1452,7 +1583,7 @@ 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"
     else
       dnl  The given libfaad wasn't built
@@ -1507,7 +1638,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
@@ -1519,9 +1650,9 @@ 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}"
@@ -1533,15 +1664,9 @@ fi
 dnl
 dnl MP4 module
 dnl
-AC_ARG_ENABLE(mp4,
-  [  --enable-mp4            MP4 demux module (default enabled)])
-if test "x${enable_mp4}" != "xno"
-then
-
-    PLUGINS="${PLUGINS} mp4"
-    AC_CHECK_HEADERS(zlib.h,
-              [ LDFLAGS_mp4="${LDFLAGS_mp4} -lz" ] )
-fi
+AC_CHECK_HEADERS(zlib.h, [
+  LDFLAGS_mp4="${LDFLAGS_mp4} -lz"
+] )
 
 dnl
 dnl  a52 AC3 decoder plugin
@@ -1597,18 +1722,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 a52 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}"
@@ -1616,16 +1738,6 @@ 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
@@ -1639,6 +1751,32 @@ 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 disabled)])
+if test "x${enable_libmpeg2}" = "xyes"
+then
+  AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
+    PLUGINS="${PLUGINS} libmpeg2"
+    LDFLAGS_libmpeg2="${LDFLAGS_libmpeg2} -lmpeg2"
+   ],[])
+fi
+
 dnl
 dnl  Vorbis plugin
 dnl
@@ -1651,7 +1789,7 @@ then
     LDFLAGS_vorbis="${LDFLAGS_vorbis} -lvorbis -logg"
    ],[])
 fi
-
+         
 dnl
 dnl  Tremor plugin
 dnl
@@ -1851,6 +1989,7 @@ then
     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"
+  NEED_QTE_MAIN=yes
   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_qte}"
   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
@@ -2051,8 +2190,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
+       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])
 
@@ -2182,7 +2328,6 @@ then
     if test "x${ac_cv_gtk_headers}" = "xyes"
     then
       PLUGINS="${PLUGINS} familiar"
-      NEED_GTK_MAIN=yes
     fi
     CPPFLAGS="${CPPFLAGS_save}"
 
@@ -2209,8 +2354,9 @@ then
       then
         CFLAGS_familiar="${CFLAGS_familiar} ${CFLAGS_gpe}"
         LDFLAGS_familiar="${LDFLAGS_familiar} ${LDFLAGS_gpe}"
-        NEED_GTK_MAIN=no
       fi
+    else
+         NEED_GTK_MAIN=yes
     fi # end gpe support
   fi # end gtk+ support
 fi
@@ -2235,6 +2381,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])
@@ -2264,10 +2417,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
@@ -2278,7 +2431,7 @@ then
       PLUGINS="${PLUGINS} wxwindows"
       ALIASES="${ALIASES} wxvlc"
     fi
-    CPPFLAGS="${save_CPPFLAGS}"
+    CPPFLAGS="${CPPFLAGS_save}"
   fi
 fi
 
@@ -2308,7 +2461,21 @@ 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"
+     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/qt"
      CPPFLAGS_kde="${CPPFLAGS_kde} -I${KDEDIR}/include -I${QTDIR}/include"
      if test -x ${QTDIR}/bin/moc
@@ -2342,6 +2509,7 @@ AC_ARG_ENABLE(opie,
      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${with_qte}" != "xno" -a "x${with_qte}" != "x"
@@ -2387,12 +2555,8 @@ 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
+    AC_CHECK_TOOL(BPR2MAK, bpr2mak, AC_ERROR(bpr2mak not found))
+    AC_CHECK_TOOL(BCMAKE, bcmake, AC_ERROR(bcmake not found))
     PLUGINS="${PLUGINS} win32"
   fi ])
 
@@ -2414,9 +2578,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"
@@ -2424,6 +2592,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="${LDFLAGS_slp} -lslp"
+    fi
+  else
+    AC_MSG_CHECKING(for slp headers in ${with_slp})
+    if test -f ${with_slp}/slp.h
+    then
+      dnl  Use ${with_slp}/libslp/slp.h
+      AC_MSG_RESULT(yes)
+      PLUGINS="${PLUGINS} slp"
+      LDFLAGS_slp="${LDFLAGS_slp} -L${with_slp} -lslp"
+      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
@@ -2500,49 +2702,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
@@ -2601,6 +2760,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
@@ -2612,6 +2772,19 @@ then
     LDFLAGS_gnome_main="${LDFLAGS_gnome_main} ${LDFLAGS_gtk} ${LDFLAGS_familiar} ${LDFLAGS_gnome}"
 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"
+    CPPFLAGS_qte_main="${CFLAGS_qte_main} ${CPPFLAGS_qte}"
+    LDFLAGS_qte_main="${LDFLAGS_qte_main} ${LDFLAGS_qte}"
+fi
+
+
 dnl
 dnl  Plugin and builtin checks
 dnl
@@ -2666,17 +2839,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
@@ -2711,14 +2884,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)