]> git.sesse.net Git - vlc/blobdiff - configure.in
Patch for using libgpewidget library for full GPE support.
[vlc] / configure.in
index a607ad89161427e849def69726073b820eee18fb..7b05bd19f6240c297dad942ec0cbc8497c152589 100644 (file)
-dnl Autoconf settings for vlc and libdvdcss
-AC_INIT(include/common.h)
+dnl Autoconf settings for vlc
+AC_INIT(include/main.h)
 AC_CONFIG_HEADER(include/defs.h)
 AC_CONFIG_HEADER(include/defs.h)
-
 AC_CANONICAL_SYSTEM
 
 AC_CANONICAL_SYSTEM
 
-HAVE_VLC=0
-if test -r src/interface/main.c; then
-  HAVE_VLC=1
-  VLC_VERSION=0.2.83
-  AC_SUBST(VLC_VERSION)
-  VLC_CODENAME=Ourumov
-  AC_SUBST(VLC_CODENAME)
-fi
-
-HAVE_LIBDVDCSS=0
-if test -r extras/libdvdcss/libdvdcss.c; then
-  HAVE_LIBDVDCSS=1
-  LIBDVDCSS_VERSION=0.0.3
-  AC_SUBST(LIBDVDCSS_VERSION)
-fi
+PACKAGE="vlc"
+VERSION="0.4.4"
+CODENAME=Ourumov
 
 dnl Save CFLAGS and LDFLAGS
 save_CFLAGS="${CFLAGS}"
 
 dnl Save CFLAGS and LDFLAGS
 save_CFLAGS="${CFLAGS}"
+save_CPPFLAGS="${CPPFLAGS}"
 save_LDFLAGS="${LDFLAGS}"
 
 dnl Check for tools
 AC_PROG_MAKE_SET
 AC_PROG_CC
 AC_PROG_CPP
 save_LDFLAGS="${LDFLAGS}"
 
 dnl Check for tools
 AC_PROG_MAKE_SET
 AC_PROG_CC
 AC_PROG_CPP
-AC_PROG_RANLIB
+
+dnl Find the right ranlib, even when cross-compiling
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
+dnl Check for GNU make
+AC_PATH_PROG(GMAKE, gmake, no)
+if test "x$GMAKE" = "xno"; then
+  AC_CACHE_CHECK([whether GNU make is installed],
+      [ac_cv_gmake],
+      [if make --version | grep -q -i gnu; then
+         ac_cv_gmake="yes"
+       else
+         echo "This software needs you to install GNU make to compile properly."
+         echo "You can get it from http://www.gnu.org/."
+         exit
+       fi])
+  VLC_MAKE="make"
+else
+  VLC_MAKE="gmake"
+fi
+
+dnl Gettext stuff
+ALL_LINGUAS="de en_GB fr ja no ru nl pl"
+
+AC_DEFINE_UNQUOTED(VLC_PACKAGE, "$PACKAGE", [Package name])
+AC_DEFINE_UNQUOTED(VLC_VERSION, "$VERSION", [Package version])
+AM_GNU_GETTEXT
 
 dnl AM_PROG_LIBTOOL
 AC_PROG_INSTALL
 
 
 dnl AM_PROG_LIBTOOL
 AC_PROG_INSTALL
 
-dnl Check for endianness
-dnl if we cross compile for win32, we don't need to test it.
-dnl quick and udly hack. Gonna search the way to do it better.
-if eval "test $CC = gcc"; then
-AC_C_BIGENDIAN
+dnl
+dnl  Check the operating system
+dnl
+case x"${target_os}" in
+  x)
+    SYS=unknown
+    ;;
+  xlinux*)
+    SYS=linux
+    ;;
+  xbsdi*)
+    SYS=bsdi
+    save_CFLAGS="${save_CFLAGS} -pthread"
+    dvd_LDFLAGS="${dvd_LDFLAGS} -ldvd"
+    vcd_LDFLAGS="${vcd_LDFLAGS} -ldvd"
+    ;;
+  x*bsd*)
+    SYS="${target_os}"
+    save_CFLAGS="${save_CFLAGS} -pthread"
+    ;;
+  xdarwin*)
+    SYS=darwin
+    save_CFLAGS="${save_CFLAGS} -no-cpp-precomp"
+    ;;
+  x*mingw32*)
+    SYS=mingw32
+    AC_CHECK_TOOL(WINDRES, windres, :)
+    save_CFLAGS="${save_CFLAGS} -D_OFF_T_ -D_off_t=long"
+    vlc_LDFLAGS="${vlc_LDFLAGS} -mwindows -Xlinker --force-exe-suffix"
+    vlc_LDFLAGS="${vlc_LDFLAGS} -lws2_32 -lnetapi32"
+    ipv4_LDFLAGS="${ipv4_LDFLAGS} -lws2_32"
+    ipv6_LDFLAGS="${ipv6_LDFLAGS} -lws2_32"
+    http_LDFLAGS="${http_LDFLAGS} -lws2_32"
+    rc_LDFLAGS="${rc_LDFLAGS} -lws2_32"
+    ;;
+  x*nto*)
+    SYS=nto
+    x11_LDFLAGS="${x11_LDFLAGS} -lsocket"
+    xvideo_LDFLAGS="${xvideo_LDFLAGS} -lsocket"
+    ;;
+  xbeos)
+    SYS=beos
+    save_CFLAGS="${save_CFLAGS} -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual"
+    vlc_LDFLAGS="${vlc_LDFLAGS} -lbe"
+    plugins_LDFLAGS="${plugins_LDFLAGS} -nostart"
+    beos_LDFLAGS="${beos_LDFLAGS} -lbe -lgame -lroot -ltracker -ltranslation -lstdc++.r4"
+    ipv4_LDFLAGS="${ipv4_LDFLAGS} -lbind"
+    ;;
+  x*)
+    SYS="${target_os}"
+    ;;
+esac
+
+dnl Flags for plugin compilation
+if test x"${SYS}" != xmingw32; then
+  plugins_CFLAGS="${plugins_CFLAGS} -fPIC"
 fi
 
 fi
 
+dnl The -DSYS_FOO flag
+save_CFLAGS="${save_CFLAGS} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"
+
 dnl Check for system libs needed
 dnl Check for system libs needed
-AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol)
-AC_CHECK_FUNCS(setenv putenv)
+AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol isatty vasprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 atoll)
+
 AC_CHECK_FUNC(connect,,[
 AC_CHECK_FUNC(connect,,[
-  AC_CHECK_LIB(socket,connect,LIB="${LIB} -lsocket")
+  AC_CHECK_LIB(socket,connect,
+    ipv4_LDFLAGS="${ipv4_LDFLAGS} -lsocket"
+    vlc_LDFLAGS="${vlc_LDFLAGS} -lsocket"
+)])
+AC_CHECK_FUNC(gethostbyname,,[
+  AC_CHECK_LIB(nsl,gethostbyname,ipv4_LDFLAGS="${ipv4_LDFLAGS} -lnsl")
 ])
 AC_CHECK_FUNC(gethostbyname,,[
 ])
 AC_CHECK_FUNC(gethostbyname,,[
-  AC_CHECK_LIB(nsl,gethostbyname,LIB="${LIB} -lnsl")
+  AC_CHECK_LIB(bind,gethostbyname,ipv4_LDFLAGS="${ipv4_LDFLAGS} -lbind")
 ])
 ])
-AC_CHECK_FUNC(nanosleep,,[
-  AC_CHECK_LIB(rt,nanosleep,LIB="${LIB} -lrt",[
-    AC_CHECK_LIB(posix4,nanosleep,LIB="${LIB} -lposix4")
-  ])
+have_nanosleep=0
+AC_CHECK_FUNC(nanosleep,have_nanosleep=1,[
+  AC_CHECK_LIB(rt,nanosleep,
+    [vlc_LDFLAGS="${vlc_LDFLAGS} -lrt"; have_nanosleep=1],
+    [AC_CHECK_LIB(posix4,nanosleep,
+        [vlc_LDFLAGS="${vlc_LDFLAGS} -lposix4"; have_nanosleep=1])]
+  )
 ])
 ])
-AC_CHECK_FUNCS(usleep)
+if test x$have_nanosleep = x1; then
+  AC_DEFINE(HAVE_NANOSLEEP, 1,
+            Define if nanosleep is available.)
+fi
 AC_CHECK_FUNC(inet_aton,,[
 AC_CHECK_FUNC(inet_aton,,[
-  AC_CHECK_LIB(resolv,inet_aton,LIB="${LIB} -lresolv")
+  AC_CHECK_LIB(resolv,inet_aton,ipv4_LDFLAGS="${ipv4_LDFLAGS} -lresolv")
+])
+AC_CHECK_FUNC(textdomain,,[
+  AC_CHECK_LIB(intl,textdomain,save_LDFLAGS="${save_LDFLAGS} -lintl")
 ])
 ])
-AC_CHECK_FUNCS(vasprintf)
-AC_CHECK_FUNCS(swab)
-AC_CHECK_FUNCS([memalign valloc])
-
-AC_CHECK_FUNCS(sigrelse)
 
 dnl Check for getopt
 NEED_GETOPT=0
 AC_CHECK_FUNC(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
 [ # FreeBSD has a gnugetopt library for this:
   AC_CHECK_LIB([gnugetopt],[getopt_long],
 
 dnl Check for getopt
 NEED_GETOPT=0
 AC_CHECK_FUNC(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) LIB="${LIB} -lgnugetopt"],
+    [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) vlc_LDFLAGS="${vlc_LDFLAGS} -lgnugetopt"],
     [NEED_GETOPT=1])])
 
     [NEED_GETOPT=1])])
 
-AC_FUNC_MMAP
 AC_TYPE_SIGNAL
 AC_TYPE_SIGNAL
-AC_CHECK_LIB(dl,dlopen,LIB="${LIB} -ldl")
-AC_CHECK_LIB(m,pow,LIB_YUV="${LIB_YUV} -lm")
+AC_CHECK_LIB(dl,dlopen,vlc_LDFLAGS="${vlc_LDFLAGS} -ldl")
+AC_CHECK_LIB(m,cos,
+  imdct_LDFLAGS="${imdct_LDFLAGS} -lm"
+  filter_distort_LDFLAGS="${filter_distort_LDFLAGS} -lm")
+AC_CHECK_LIB(m,pow,
+  imdct_LDFLAGS="${imdct_LDFLAGS} -lm"
+  imdct3dn_LDFLAGS="${imdct3dn_LDFLAGS} -lm"
+  imdctsse_LDFLAGS="${imdctsse_LDFLAGS} -lm"
+  chroma_i420_rgb_LDFLAGS="${chroma_i420_rgb_LDFLAGS} -lm"
+)
 
 dnl Check for pthreads - borrowed from XMMS
 THREAD_LIB=error
 
 dnl Check for pthreads - borrowed from XMMS
 THREAD_LIB=error
@@ -105,16 +190,49 @@ AC_EGREP_HEADER(strncasecmp,strings.h,[
             Define if <strings.h> defines strncasecmp.)])
 
 dnl Check for headers
             Define if <strings.h> defines strncasecmp.)])
 
 dnl Check for headers
-AC_CHECK_HEADERS(stddef.h getopt.h strings.h)
-AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/time.h)
-AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h)
+AC_CHECK_HEADERS(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)
 AC_CHECK_HEADERS(dlfcn.h image.h)
 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
 AC_CHECK_HEADERS(dlfcn.h image.h)
 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
-AC_CHECK_HEADERS(machine/param.h)
+AC_CHECK_HEADERS(machine/param.h sys/shm.h)
+AC_CHECK_HEADERS(linux/version.h)
+
+AC_HEADER_TIME
+
+dnl Mac OS X and other OSes don't have declaration for nanosleep
+AC_EGREP_HEADER(nanosleep,time.h,[
+  AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
+            Define if <time.h> defines nanosleep.)
+])
+
+dnl Make sure we have timespecs
+AC_EGREP_HEADER(timespec,sys/time.h,[
+  AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
+            Define if <sys/time.h> defines struct timespec.)
+])
 
 dnl Check for threads library
 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
 
 
 dnl Check for threads library
 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
 
+dnl Check for DPMS
+if test x$SYS != xmingw32
+then
+  if test x$x_includes = xNONE; then
+    x_includes=/usr/X11R6/include
+  fi
+  if test x$x_libraries = xNONE; then
+    x_libraries=/usr/X11R6/lib
+  fi
+  CPPFLAGS="$save_CPPFLAGS -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="$save_CPPFLAGS"
+fi
+
 dnl Check for ntohl, etc.
 AC_CACHE_CHECK([for ntohl in sys/param.h],
     [ac_cv_c_ntohl_sys_param_h],
 dnl Check for ntohl, etc.
 AC_CACHE_CHECK([for ntohl in sys/param.h],
     [ac_cv_c_ntohl_sys_param_h],
@@ -135,13 +253,108 @@ if test x"$ac_cv_c_inline_limit" != x"no"; then
     save_CFLAGS="${save_CFLAGS} -finline-limit-30000"
 fi
 
     save_CFLAGS="${save_CFLAGS} -finline-limit-30000"
 fi
 
+dnl Check for -W or -w flags
+AC_CACHE_CHECK([if \$CC accepts -Wall -Winline],
+    [ac_cv_c_Wall_Winline],
+    [CFLAGS="${save_CFLAGS} -Wall -Winline"
+     AC_TRY_COMPILE([],,ac_cv_c_Wall_Winline=yes, ac_cv_c_Wall_Winline=no)])
+if test x"$ac_cv_c_Wall_Winline" != x"no"; then
+    save_CFLAGS="${save_CFLAGS} -Wall -Winline"
+else
+    AC_CACHE_CHECK([if \$CC accepts -wall -winline],
+        [ac_cv_c_wall_winline],
+        [CFLAGS="${save_CFLAGS} -wall -winline"
+         AC_TRY_COMPILE([],,ac_cv_c_wall_winline=yes, ac_cv_c_wall_winline=no)])
+    if test x"$ac_cv_c_wall_winline" != x"no"; then
+        save_CFLAGS="${save_CFLAGS} -wall -winline"
+    fi
+fi
+
+dnl Check for -pipe
+AC_CACHE_CHECK([if \$CC accepts -pipe],
+    [ac_cv_c_pipe],
+    [CFLAGS="${save_CFLAGS} -pipe"
+     AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
+if test x"$ac_cv_c_pipe" != x"no"; then
+    save_CFLAGS="${save_CFLAGS} -pipe"
+fi
+
+dnl Check for various optimization flags
+AC_CACHE_CHECK([if \$CC accepts -O3],
+    [ac_cv_c_o3],
+    [CFLAGS="${save_CFLAGS} -O3"
+     AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
+if test x"$ac_cv_c_o3" != x"no"; then
+    CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
+else
+    AC_CACHE_CHECK([if \$CC accepts -O2],
+        [ac_cv_c_o2],
+        [CFLAGS="${save_CFLAGS} -O2"
+         AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
+    if test x"$ac_cv_c_o2" != x"no"; then
+        CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
+    else
+        AC_CACHE_CHECK([if \$CC accepts -O],
+            [ac_cv_c_o],
+            [CFLAGS="${save_CFLAGS} -O"
+             AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
+        if test x"$ac_cv_c_o" != x"no"; then
+            CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
+        fi
+    fi
+fi
+
+dnl Check for -ffast-math
+AC_CACHE_CHECK([if \$CC accepts -ffast-math],
+    [ac_cv_c_fast_math],
+    [CFLAGS="${save_CFLAGS} -ffast-math"
+     AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
+if test x"$ac_cv_c_fast_math" != x"no"; then
+    CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
+fi
+
+dnl Check for -funroll-loops
+AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
+    [ac_cv_c_unroll_loops],
+    [CFLAGS="${save_CFLAGS} -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" != x"no"; then
+    CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
+fi
+
+dnl Check for -fomit-frame-pointer
+AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
+    [ac_cv_c_omit_frame_pointer],
+    [CFLAGS="${save_CFLAGS} -fomit-frame-pointer"
+     AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
+if test x"$ac_cv_c_omit_frame_pointer" != x"no"; then
+    CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
+fi
+
+dnl Check for fnative-struct or mms-bitfields support for mingw32
+if test x$SYS = xmingw32
+then
+    AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
+        [ac_cv_c_mms_bitfields],
+        [CFLAGS="${save_CFLAGS} -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
+        save_CFLAGS="${save_CFLAGS} -mms-bitfields"
+        plugins_CFLAGS="${plugins_CFLAGS} -mms-bitfields"
+    else
+        save_CFLAGS="${save_CFLAGS} -fnative-struct"
+        plugins_CFLAGS="${plugins_CFLAGS} -fnative-struct"
+    fi
+fi
+
 dnl Check for Darwin plugin linking flags
 dnl Check for Darwin plugin linking flags
-AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
+AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error -lcc_dynamic],
     [ac_cv_ld_darwin],
     [ac_cv_ld_darwin],
-    [CFLAGS="${save_CFLAGS} -bundle -undefined error"
+    [CFLAGS="${save_CFLAGS} -bundle -undefined error -lcc_dynamic"
      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
 if test x"$ac_cv_ld_darwin" != x"no"; then
      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
 if test x"$ac_cv_ld_darwin" != x"no"; then
-    PLCFLAGS="${PLCFLAGS} -bundle -undefined error"
+    plugins_LDFLAGS="${plugins_LDFLAGS} -bundle -undefined error -lcc_dynamic"
 fi
 
 dnl Check for standard plugin linking flags
 fi
 
 dnl Check for standard plugin linking flags
@@ -150,44 +363,47 @@ AC_CACHE_CHECK([if \$CC accepts -shared],
     [CFLAGS="${save_CFLAGS} -shared"
      AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
 if test x"$ac_cv_ld_plugins" != x"no"; then
     [CFLAGS="${save_CFLAGS} -shared"
      AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
 if test x"$ac_cv_ld_plugins" != x"no"; then
-    PLCFLAGS="${PLCFLAGS} -shared"
+    plugins_LDFLAGS="${plugins_LDFLAGS} -shared"
 fi
         
 fi
         
-dnl Check for soname setting
-if test x"${SOFLAGS}" = x; then
-    AC_CACHE_CHECK([for soname setting],
-        [ac_cv_ld_soname],
-        [
-        # Standard
-        try_SOFLAGS="-Wl,-soname -Wl,"
-        LDFLAGS="${save_LDFLAGS} ${try_SOFLAGS}foo.so.0"
-        AC_TRY_LINK([],,ac_cv_ld_soname="${try_SOFLAGS}", [
-            # SunOS
-            try_SOFLAGS="-Wl,-h -Wl,"
-            LDFLAGS="${save_LDFLAGS} ${try_SOFLAGS}foo.so.0"
-            AC_TRY_LINK([],,ac_cv_ld_soname="${try_SOFLAGS}",
-                ac_cv_ld_soname=none)
-        ])])
-    if test x"$ac_cv_ld_soname" != x"none"; then
-        SOFLAGS=$ac_cv_ld_soname
-    else
-        echo "
-------------
-Your system doesn't seem to have support for dynamic linking. You may
-have problems using libdvdcss.
-------------
-"
-       fi
+dnl Check for variadic macros
+AC_CACHE_CHECK([for variadic cpp macros],
+    [ac_cv_cpp_variadic_macros],
+    [CFLAGS="${save_CFLAGS}"
+     AC_TRY_COMPILE(
+         [#include <stdio.h>
+          #define a(b,c...) printf(b,##c)],
+         [a("foo");a("%s","bar");a("%s%s","baz","quux");],
+         ac_cv_cpp_variadic_macros=yes,
+         ac_cv_cpp_variadic_macros=no)])
+if test x"$ac_cv_cpp_variadic_macros" != x"no"; then
+    AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
+fi
+
+dnl Checks for __attribute__(aligned()) directive
+AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
+    [ac_cv_c_attribute_aligned],
+    [ac_cv_c_attribute_aligned=0
+        CFLAGS="${save_CFLAGS} -Werror"
+    for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
+        AC_TRY_COMPILE([],
+        [static char c __attribute__ ((aligned($ac_cv_c_attr_align_try))) = 0; return c;],
+        [ac_cv_c_attribute_aligned=$ac_cv_c_attr_align_try])
+    done])
+if test x"$ac_cv_c_attribute_aligned" != x"0"; then
+    AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
+        [$ac_cv_c_attribute_aligned],[Maximum supported data alignment])
 fi
 
 dnl End of the bizarre compilation tests
 CFLAGS="${save_CFLAGS}"
 fi
 
 dnl End of the bizarre compilation tests
 CFLAGS="${save_CFLAGS}"
+CPPFLAGS="${save_CPPFLAGS}"
 LDFLAGS="${save_LDFLAGS}"
 
 dnl Check for boolean_t
 AC_CACHE_CHECK([for boolean_t in sys/types.h],
     [ac_cv_c_boolean_t_sys_types_h],
 LDFLAGS="${save_LDFLAGS}"
 
 dnl Check for boolean_t
 AC_CACHE_CHECK([for boolean_t in sys/types.h],
     [ac_cv_c_boolean_t_sys_types_h],
-    [AC_TRY_COMPILE([#include <sys/types.h>], [void quux() { boolean_t foo; }],
+    [AC_TRY_COMPILE([#include <sys/types.h>], [boolean_t foo;],
      ac_cv_c_boolean_t_sys_types_h=yes, ac_cv_c_boolean_t_sys_types_h=no)])
 if test x"$ac_cv_c_boolean_t_sys_types_h" != x"no"; then
     AC_DEFINE(BOOLEAN_T_IN_SYS_TYPES_H, 1, Define if <sys/types.h> defines boolean_t.)
      ac_cv_c_boolean_t_sys_types_h=yes, ac_cv_c_boolean_t_sys_types_h=no)])
 if test x"$ac_cv_c_boolean_t_sys_types_h" != x"no"; then
     AC_DEFINE(BOOLEAN_T_IN_SYS_TYPES_H, 1, Define if <sys/types.h> defines boolean_t.)
@@ -195,7 +411,7 @@ fi
 
 AC_CACHE_CHECK([for boolean_t in pthread.h],
     [ac_cv_c_boolean_t_pthread_h],
 
 AC_CACHE_CHECK([for boolean_t in pthread.h],
     [ac_cv_c_boolean_t_pthread_h],
-    [AC_TRY_COMPILE([#include <pthread.h>], [void quux() { boolean_t foo; }],
+    [AC_TRY_COMPILE([#include <pthread.h>], [boolean_t foo;],
      ac_cv_c_boolean_t_pthread_h=yes, ac_cv_c_boolean_t_pthread_h=no)])
 if test x"$ac_cv_c_boolean_t_pthread_h" != x"no"; then
     AC_DEFINE(BOOLEAN_T_IN_PTHREAD_H, 1, Define if <pthread.h> defines boolean_t.)
      ac_cv_c_boolean_t_pthread_h=yes, ac_cv_c_boolean_t_pthread_h=no)])
 if test x"$ac_cv_c_boolean_t_pthread_h" != x"no"; then
     AC_DEFINE(BOOLEAN_T_IN_PTHREAD_H, 1, Define if <pthread.h> defines boolean_t.)
@@ -203,94 +419,105 @@ fi
 
 AC_CACHE_CHECK([for boolean_t in cthreads.h],
     [ac_cv_c_boolean_t_cthreads_h],
 
 AC_CACHE_CHECK([for boolean_t in cthreads.h],
     [ac_cv_c_boolean_t_cthreads_h],
-    [AC_TRY_COMPILE([#include <cthreads.h>], [void quux() { boolean_t foo; }],
+    [AC_TRY_COMPILE([#include <cthreads.h>], [boolean_t foo;],
      ac_cv_c_boolean_t_cthreads_h=yes, ac_cv_c_boolean_t_cthreads_h=no)])
 if test x"$ac_cv_c_boolean_t_cthreads_h" != x"no"; then
     AC_DEFINE(BOOLEAN_T_IN_CTHREADS_H, 1, Define if <cthreads.h> defines boolean_t.)
 fi
 
      ac_cv_c_boolean_t_cthreads_h=yes, ac_cv_c_boolean_t_cthreads_h=no)])
 if test x"$ac_cv_c_boolean_t_cthreads_h" != x"no"; then
     AC_DEFINE(BOOLEAN_T_IN_CTHREADS_H, 1, Define if <cthreads.h> defines boolean_t.)
 fi
 
-dnl Checks for typedefs, structures, and compiler characteristics.
-AC_C_CONST
-AC_TYPE_SIZE_T
-AC_HEADER_TIME
-
-dnl Checks for __attribute__(aligned()) directive
-AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
-    [ac_cv_c_attribute_aligned],
-    [ac_cv_c_attribute_aligned=0
-    for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
-        AC_TRY_COMPILE([],
-        [static char c __attribute__ ((aligned($ac_cv_c_attr_align_try))) = 0; return c;],
-        [ac_cv_c_attribute_aligned=$ac_cv_c_attr_align_try])
-    done])
-if test x"$ac_cv_c_attribute_aligned" != x"0"; then
-    AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
-        [$ac_cv_c_attribute_aligned],[Maximum supported data alignment])
-fi
-
-
-
-ARCH=${target_cpu}
+dnl
+dnl  Check the CPU
+dnl
+case x"${target_cpu}" in
+  x)
+    ARCH=unknown
+    ;;
+  *)
+    ARCH="${target_cpu}"
+    ;;
+esac
 
 dnl
 dnl  default modules
 dnl
 
 dnl
 dnl  default modules
 dnl
-BUILTINS="${BUILTINS} es ps ts yuv idct idctclassic motion imdct downmix"
-PLUGINS="${PLUGINS}"
+BUILTINS="${BUILTINS} idct idctclassic motion imdct downmix chroma_i420_rgb chroma_i420_yuy2 chroma_i422_yuy2 chroma_i420_ymga mpeg_adec ac3_adec mpeg_vdec"
+PLUGINS="${PLUGINS} dummy null rc logger mpeg_es mpeg_ps mpeg_ts mpeg_audio file memcpy lpcm_adec ac3_spdif spudec filter_deinterlace filter_invert filter_wall filter_transform filter_distort filter_clone filter_crop fx_scope"
+
+dnl
+dnl  Network modules
+dnl
+NETWORK_MODULES="udp http rtp ipv4"
 
 dnl
 dnl  Accelerated modules
 dnl
 
 dnl
 dnl  Accelerated modules
 dnl
-MMX_MODULES="yuvmmx idctmmx motionmmx"
-MMXEXT_MODULES="idctmmxext motionmmxext"
-THREEDNOW_MODULES="imdct3dn downmix3dn"
+MMX_MODULES="memcpymmx idctmmx motionmmx chroma_i420_rgb_mmx chroma_i420_yuy2_mmx chroma_i422_yuy2_mmx chroma_i420_ymga_mmx"
+MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext"
+THREEDNOW_MODULES="memcpy3dn imdct3dn downmix3dn"
 SSE_MODULES="imdctsse downmixsse"
 SSE_MODULES="imdctsse downmixsse"
-ALTIVEC_MODULES="idctaltivec motionaltivec"
+ALTIVEC_MODULES="idctaltivec motionaltivec memcpyaltivec"
+
+if test x$SYS != xbeos
+then
+    PLUGINS="${PLUGINS} ${NETWORK_MODULES}"
+fi
 
 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
     [ac_cv_mmx_inline],
 
 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
     [ac_cv_mmx_inline],
-    [AC_TRY_COMPILE(,[void quux(){void *p;asm("packuswb %%mm1,%%mm2"::"r"(p));}],
-       ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
+    [AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
+                    ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
 if test x"$ac_cv_mmx_inline" != x"no"; then
   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
 fi
 
 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
     [ac_cv_mmxext_inline],
 if test x"$ac_cv_mmx_inline" != x"no"; then
   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
 fi
 
 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
     [ac_cv_mmxext_inline],
-    [AC_TRY_COMPILE(,[void quux(){void *p;asm("maskmovq %%mm1,%%mm2"::"r"(p));}],
-       ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
+    [AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
+                    ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
 if test x"$ac_cv_mmxext_inline" != x"no"; then
   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
 fi
 
 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
     [ac_cv_3dnow_inline],
 if test x"$ac_cv_mmxext_inline" != x"no"; then
   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
 fi
 
 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
     [ac_cv_3dnow_inline],
-    [AC_TRY_COMPILE(,[void quux(){void *p;asm("pfadd %%mm1,%%mm2"::"r"(p));}],
-       ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
+    [AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
+                    ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
 if test x"$ac_cv_3dnow_inline" != x"no"; then
 if test x"$ac_cv_3dnow_inline" != x"no"; then
+  AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
 fi
 
 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
     [ac_cv_sse_inline],
   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
 fi
 
 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
     [ac_cv_sse_inline],
-    [AC_TRY_COMPILE(,[void quux(){void *p;asm("xorps %%xmm1,%%xmm2"::"r"(p));}],
-       ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
-if test x"$ac_cv_sse_inline" != x"no"; then
+    [AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
+                    ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
+if test x"$ac_cv_sse_inline" != x"no" -a x$SYS != xmingw32; then
+  AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
 fi
 
   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],
 AC_CACHE_CHECK([if \$CC groks Altivec inline assembly],
     [ac_cv_altivec_inline],
-    [AC_TRY_COMPILE(,[void quux(){asm("mtspr 256,%0"::"r"(-1));}],
+    [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
          ac_cv_altivec_inline=yes,
          [save_CFLAGS=$CFLAGS
           CFLAGS="$CFLAGS -Wa,-m7400"
          ac_cv_altivec_inline=yes,
          [save_CFLAGS=$CFLAGS
           CFLAGS="$CFLAGS -Wa,-m7400"
-          AC_TRY_COMPILE(,[void quux(){asm("mtspr 256,%0"::"r"(-1));}],
-            [ac_cv_altivec_inline=yes; CFLAGS_ALTIVEC="-Wa,-m7400"],
-               ac_cv_altivec_inline=no)
+          AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
+            [ac_cv_altivec_inline="-Wa,-m7400"],
+            ac_cv_altivec_inline=no)
           CFLAGS=$save_CFLAGS
          ])])
 if test x"$ac_cv_altivec_inline" != x"no"; then
           CFLAGS=$save_CFLAGS
          ])])
 if test x"$ac_cv_altivec_inline" != x"no"; then
+  AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks ALTIVEC inline assembly.)
+  if test x"$ac_cv_altivec_inline" != x"yes"; then
+    idctaltivec_CFLAGS="$idctaltivec_CFLAGS $ac_cv_altivec_inline"
+    motionaltivec_CFLAGS="$motionaltivec_CFLAGS $ac_cv_altivec_inline"
+    memcpyaltivec_CFLAGS="$memcpyaltivec_CFLAGS $ac_cv_altivec_inline"
+    vlc_CFLAGS="$vlc_CFLAGS $ac_cv_altivec_inline"
+  fi
   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
 fi
 
   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
 fi
 
@@ -299,18 +526,22 @@ AC_CACHE_CHECK([if \$CC groks Altivec C extensions],
     [save_CFLAGS=$CFLAGS
      CFLAGS="$CFLAGS -faltivec"
      # Darwin test
     [save_CFLAGS=$CFLAGS
      CFLAGS="$CFLAGS -faltivec"
      # Darwin test
-     AC_TRY_COMPILE(,[void quux(){vec_mtvscr((vector unsigned int)(0));}],
+     AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
         ac_cv_c_altivec=-faltivec, [
         # Linux/PPC test
         ac_cv_c_altivec=-faltivec, [
         # Linux/PPC test
-        CFLAGS="$save_CFLAGS $CFLAGS_ALTIVEC -fvec"
-        AC_TRY_COMPILE(,[void quux(){vec_mtvscr((vector unsigned int)(0));}],
+        CFLAGS="$save_CFLAGS $idctaltivec_CFLAGS -fvec"
+        AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
             [ac_cv_c_altivec="-fvec"], ac_cv_c_altivec=no)
         ])
      CFLAGS=$save_CFLAGS
     ])
 if test x"$ac_cv_c_altivec" != x"no"; then
             [ac_cv_c_altivec="-fvec"], ac_cv_c_altivec=no)
         ])
      CFLAGS=$save_CFLAGS
     ])
 if test x"$ac_cv_c_altivec" != x"no"; then
-  AC_DEFINE(HAVE_C_ALTIVEC, 1, Define if your compiler groks C altivec extensions.)
-  CFLAGS_ALTIVEC="$CFLAGS_ALTIVEC $ac_cv_c_altivec"
+  AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C altivec extensions.)
+  idctaltivec_CFLAGS="$idctaltivec_CFLAGS $ac_cv_c_altivec"
+  motionaltivec_CFLAGS="$motionaltivec_CFLAGS $ac_cv_c_altivec"
+  memcpyaltivec_CFLAGS="$memcpyaltivec_CFLAGS $ac_cv_c_altivec"
+  vlc_CFLAGS="$vlc_CFLAGS $ac_cv_c_altivec"
+  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
 fi
 
 AC_CACHE_CHECK([if linker needs -framework vecLib],
 fi
 
 AC_CACHE_CHECK([if linker needs -framework vecLib],
@@ -321,141 +552,55 @@ AC_CACHE_CHECK([if linker needs -framework vecLib],
      LDFLAGS=$save_LDFLAGS
     ])
 if test x"$ac_cv_ld_altivec" != x"no"; then
      LDFLAGS=$save_LDFLAGS
     ])
 if test x"$ac_cv_ld_altivec" != x"no"; then
-  LIB_ALTIVEC="-framework vecLib"
+  idctaltivec_LDFLAGS="${idctaltivec_LDFLAGS} -framework vecLib"
+  motionaltivec_LDFLAGS="${motionaltivec_LDFLAGS} -framework vecLib"
+  memcpyaltivec_LDFLAGS="${memcpyaltivec_LDFLAGS} -framework vecLib"
+  vlc_LDFLAGS="${vlc_LDFLAGS} -framework vecLib"
 fi
 fi
-
-dnl
-dnl  libdvdcss: check for DVD ioctls
-dnl
-
-dnl  default is no
-CAN_BUILD_LIBDVDCSS=0
-
-dnl  for windoze
-AC_CHECK_HEADERS(winioctl.h,[
-  CAN_BUILD_LIBDVDCSS="${HAVE_LIBDVDCSS}"
-])
-
-dnl  for Un*x and BeOS
-AC_CHECK_HEADERS(sys/ioctl.h,[
-  CAN_BUILD_LIBDVDCSS="${HAVE_LIBDVDCSS}"
-  AC_CHECK_HEADERS(sys/cdio.h sys/dvdio.h linux/cdrom.h dvd.h)
-  BSD_DVD_STRUCT=0
-  LINUX_DVD_STRUCT=0
-  dnl
-  dnl Old FreeBSD: sys/cdio.h
-  dnl
-  AC_EGREP_HEADER(dvd_struct,sys/dvdio.h,[
-    AC_DEFINE(DVD_STRUCT_IN_SYS_DVDIO_H, 1,
-              Define if <sys/dvdio.h> defines dvd_struct.)
-    BSD_DVD_STRUCT=1
-  ])
-  dnl
-  dnl Newer FreeBSD: sys/dvdio.h
-  dnl
-  AC_EGREP_HEADER(dvd_struct,sys/cdio.h,[
-    AC_DEFINE(DVD_STRUCT_IN_SYS_CDIO_H, 1,
-              Define if <sys/cdio.h> defines dvd_struct.)
-    BSD_DVD_STRUCT=1
-  ])
-  dnl
-  dnl Linux: linux/cdrom.h
-  dnl
-  AC_EGREP_HEADER(dvd_struct,linux/cdrom.h,[
-    AC_DEFINE(DVD_STRUCT_IN_LINUX_CDROM_H, 1,
-              Define if <linux/cdrom.h> defines DVD_STRUCT.)
-    LINUX_DVD_STRUCT=1
-  ])
-  dnl
-  dnl BSDI: dvd.h
-  dnl
-  NEED_BSDI_LIBDVD=0
-  AC_EGREP_HEADER(dvd_struct,dvd.h,[
-    AC_DEFINE(DVD_STRUCT_IN_DVD_H, 1,
-              Define if <dvd.h> defines DVD_STRUCT.)
-    LIB_LIBDVDCSS="${LIB_LIBDVDCSS} -ldvd"
-    LINUX_DVD_STRUCT=1
-  ],[
-    dnl
-    dnl BSDI: /sys/dev/scsi/scsi_ioctl.h, using our own libdvd
-    dnl
-    AC_CHECK_HEADERS(/sys/dev/scsi/scsi_ioctl.h,[
-      NEED_BSDI_LIBDVD=1
-      AC_DEFINE(DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H, 1,
-                Define if <extras/BSDI_dvdioctl/dvd.h> defines DVD_STRUCT.)
-      OBJ_LIBDVDCSS="${OBJ_LIBDVDCSS} bsdi_dvdioctl.o"
-      LINUX_DVD_STRUCT=1
-    ])
-  ])
-  dnl
-  dnl Solaris: sys/scsi/scsi_types.h, sys/scsi/impl/uscsi.h
-  dnl
-  AC_CHECK_HEADER(sys/scsi/scsi_types.h,[
-    AC_CHECK_HEADER(sys/scsi/impl/uscsi.h,[
-      AC_DEFINE(SOLARIS_USCSI, 1, Have userspace SCSI headers.)
-    ])
-  ])
-  dnl
-  dnl Final tests to check what was detected
-  dnl
-  if test x$LINUX_DVD_STRUCT = x1; then
-    AC_DEFINE(HAVE_LINUX_DVD_STRUCT, 1,
-              Define if Linux-like dvd_struct is defined.)
-  else
-    if test x$BSD_DVD_STRUCT = x1; then
-      AC_DEFINE(HAVE_BSD_DVD_STRUCT, 1,
-                Define if BSD-like dvd_struct is defined.)
-    fi
-  fi
-])
+fi # end if mingw32
 
 
 
 
-dnl
-dnl  Check the operating system
-dnl
-case ${target_os} in
-  bsdi*)
-    SYS=bsdi
-    ;;
-  darwin*)
-    SYS=darwin
-    ;;
-  *)
-    SYS=${target_os}
-    ;;
-esac
+AC_ARG_WITH(,[])
+AC_ARG_WITH(,[Optimization options:])
 
 dnl
 dnl  Special arch tuning
 dnl
 AC_ARG_WITH(tuning,
 
 dnl
 dnl  Special arch tuning
 dnl
 AC_ARG_WITH(tuning,
-[  --with-tuning=[arch]    Enable special tuning for an architecture
+[  --with-tuning=ARCH      enable special tuning for an architecture
                           (default i686 on IA-32 and 750 on PPC)])
                           (default i686 on IA-32 and 750 on PPC)])
-if test "x$withval" != "x"; then
-    TUNING=$withval
+if test "x$with_tuning" != "x"; then
+    TUNING="$with_tuning"
 else
 else
-    if test x$ARCH = xi686; then TUNING="pentiumpro"
+    if test x${target_cpu} = xi686 -o x${target_cpu} = xi586 -o x${target_cpu} = xi486 -o x${target_cpu} = xi386; then TUNING="pentiumpro"
     else
     else
-        if test x$ARCH = ppc; then TUNING="750"; fi
+        if test x${target_cpu} = xpowerpc; then TUNING="750"; fi
     fi
 fi
 
 dnl
     fi
 fi
 
 dnl
-dnl  MMX acceleration
+dnl  x86 accelerations
 dnl
 dnl
-AC_ARG_ENABLE(mmx,
-[  --disable-mmx           Disable MMX optimizations (default enabled for x86)],
-[ if test x$enableval = xyes; then ARCH="${ARCH} mmx";
-    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ],
-[ 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";
-    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ])
+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"
+    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"
+fi
+
+dnl
+dnl  Enable/disable optimizations
+dnl
+AC_ARG_ENABLE(optimizations,
+[  --disable-optimizations disable compiler optimizations (default enabled)],
+[ if test x$enable_optimizations = xno; then OPTIMS=0; fi ],
+[ OPTIMS=1 ])
 
 dnl
 dnl  AltiVec acceleration
 dnl
 AC_ARG_ENABLE(altivec,
 
 dnl
 dnl  AltiVec acceleration
 dnl
 AC_ARG_ENABLE(altivec,
-[  --disable-altivec       Disable altivec optimizations (default enabled on PPC)],
-[ if test x$enableval = xyes; then ARCH="${ARCH} altivec";
+[  --disable-altivec       disable altivec optimizations (default enabled on PPC)],
+[ if test x$enable_altivec = xyes; then ARCH="${ARCH} altivec";
     BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ],
 [ if test x${target_cpu} = xpowerpc; then ARCH="${ARCH} altivec";
     BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ])
     BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ],
 [ if test x${target_cpu} = xpowerpc; then ARCH="${ARCH} altivec";
     BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ])
@@ -465,288 +610,552 @@ dnl  Debugging mode
 dnl
 DEBUG=0
 AC_ARG_ENABLE(debug,
 dnl
 DEBUG=0
 AC_ARG_ENABLE(debug,
-[  --enable-debug          Enable debug mode (default disabled)],
-[ if test x$enableval = xyes; then DEBUG=1; fi ])
+[  --enable-debug          debug mode (default disabled)],
+[ if test x$enable_debug = xyes; then DEBUG=1; fi ])
 
 dnl
 
 dnl
-dnl  Trace mode
+dnl  Enable release-specific flags
 dnl
 dnl
-TRACE=0
-AC_ARG_ENABLE(trace,
-[  --enable-trace          Enable trace mode (default disabled)],
-[ if test x$enableval = xyes; then TRACE=1; fi ])
+RELEASE=0
+AC_ARG_ENABLE(release,
+[  --enable-release        activate extra optimizations (default disabled)],
+[ if test x$enable_release = xyes; then RELEASE=1; fi ],
+[ VERSION="${VERSION}_`date +%Y-%m-%d`" ])
 
 dnl
 
 dnl
-dnl  Profiling
+dnl  Input plugins
 dnl
 dnl
-GPROF=0
-AC_ARG_ENABLE(gprof,
-[  --enable-gprof          Enable gprof profiling (default disabled)],
-[ if test x$enableval = xyes; then GPROF=1; fi ])
 
 
-CPROF=0
-AC_ARG_ENABLE(cprof,
-[  --enable-cprof          Enable cprof profiling (default disabled)],
-[ if test x$enableval = xyes;
-  then
-    LIB="${LIB} -lcprof"
-    CPROF=1
-  fi
-])
+AC_ARG_WITH(,[Input plugins:])
 
 dnl
 
 dnl
-dnl  Enable/disable optimizations
+dnl  DVD module: optionally check for installed libdvdcss
 dnl
 dnl
-AC_ARG_ENABLE(optimizations,
-[  --disable-optimizations Disable compiler optimizations (default enabled)],
-[ if test x$enableval = xno; then OPTIMS=0; fi ],
-[ OPTIMS=1 ])
+AC_ARG_ENABLE(dvd,
+[  --enable-dvd            DVD input module (default enabled)])
+if test "x$enable_dvd" != "xno"
+then
+  AC_ARG_WITH(dvdcss, 
+  [    --with-dvdcss=PATH    libdvdcss headers and libraries])
+  AC_ARG_WITH(dvdcss-tree, 
+  [    --with-dvdcss-tree=PATH libdvdcss tree for static linking])
+  case "x$with_dvdcss" in
+  x|xyes)
+    if test "x$with_dvdcss_tree" = x
+    then
+      AC_CHECK_HEADERS(dvdcss/dvdcss.h,
+        [ PLUGINS="${PLUGINS} dvd"
+          dvd_LDFLAGS="${dvd_LDFLAGS} -ldvdcss" ],
+        [ AC_MSG_WARN([libdvdcss is no longer provided with vlc; please get libdvdcss from http://www.videolan.org/libdvdcss/ and build it. Then either use --with-dvdcss=<path/where/libdvdcss/was/installed> for dynamic linking (recommended under Unix) or --with-dvdcss-tree=<path/where/libdvdcss/was/built> for static linking (recommended under BeOS, Windows, MacOS X). Alternatively you can use --disable-dvd to disable the DVD plugin.])
+          AC_MSG_ERROR([cannot find libdvdcss headers]) ])
+    else
+      AC_MSG_CHECKING(for libdvdcss.a in ${with_dvdcss_tree})
+      real_dvdcss_tree="`cd ${with_dvdcss_tree} 2>/dev/null && pwd`"
+      if test "x$real_dvdcss_tree" = x
+      then
+        dnl  The given directory can't be found
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot cd to ${with_dvdcss_tree}])
+      fi
+      if test -f "${real_dvdcss_tree}/src/.libs/libdvdcss.a"
+      then
+        dnl  Use a custom libdvdcss
+        AC_MSG_RESULT(${real_dvdcss_tree}/src/.libs/libdvdcss.a)
+        BUILTINS="${BUILTINS} dvd"
+        dvd_LDFLAGS="${dvd_LDFLAGS} ${real_dvdcss_tree}/src/.libs/libdvdcss.a"
+        dvd_CFLAGS="${dvd_CFLAGS} -I${real_dvdcss_tree}/src"
+      else
+        dnl  The given libdvdcss wasn't built
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot find ${real_dvdcss_tree}/src/.libs/libdvdcss.a, make sure you compiled libdvdcss in ${with_dvdcss_tree}])
+      fi
+    fi
+  ;;
+  xno)
+    dnl  Compile without dvdcss (dlopen version, works only under Linux)
+    PLUGINS="${PLUGINS} dvd"
+    dvd_CFLAGS="${dvd_CFLAGS} -DGOD_DAMN_DMCA"
+    dvd_LDFLAGS="${dvd_LDFLAGS} -ldl"
+  ;;
+  *)
+    AC_MSG_CHECKING(for dvdcss headers in ${with_dvdcss})
+    if test -f ${with_dvdcss}/include/dvdcss/dvdcss.h
+    then
+      dnl  Use ${with_dvdcss}/include/dvdcss/dvdcss.h
+      AC_MSG_RESULT(yes)
+      PLUGINS="${PLUGINS} dvd"
+      dvd_LDFLAGS="${dvd_LDFLAGS} -L${with_dvdcss}/lib -ldvdcss"
+      dvd_CFLAGS="${dvd_CFLAGS} -I${with_dvdcss}/include"
+    else
+      dnl  No libdvdcss could be found, sorry
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${with_dvdcss}/include/dvdcss/dvdcss.h])
+    fi
+  ;;
+  esac
+fi
 
 dnl
 
 dnl
-dnl  GNU portable threads
+dnl dvdread module: check for libdvdread plugin
 dnl
 dnl
-AC_ARG_ENABLE(pth,
-  [  --enable-pth            Enable GNU Pth support (default disabled)],
-  [ if test x$enableval = 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])
-])
-
-LIB="${LIB} ${THREAD_LIB}"
+AC_ARG_ENABLE(dvdread,
+[  --enable-dvdread        dvdread input module (default disabled)])
+if test "x$enable_dvdread" != "xno"
+then
+  AC_ARG_WITH(dvdread, 
+  [    --with-dvdread=PATH   libdvdread headers and libraries])
+  if test "x$with_dvdread" = x
+  then
+    test_LDFLAGS=""
+    test_CFLAGS=""
+  else
+    test_LDFLAGS="-L${with_dvdread}/lib"
+    test_CFLAGS="-I${with_dvdread}/include"
+  fi
+  CPPFLAGS="$save_CPPFLAGS $test_CFLAGS"
+  AC_CHECK_HEADERS(dvdread/dvd_reader.h, [
+     AC_TRY_COMPILE([#include <dvdread/dvd_reader.h>],
+        [void foo() { int i=DVD_VIDEO_LB_LEN; }],[
+          PLUGINS="${PLUGINS} dvdread"
+          dvdread_LDFLAGS="${dvdread_LDFLAGS} ${test_LDFLAGS} -ldvdread"
+          dvdread_CFLAGS="${dvdread_CFLAGS} ${test_CFLAGS}"
+        ],[
+          if test "x$enable_dvdread" != x
+          then
+            AC_MSG_ERROR([Cannot find DVD_VIDEO_LB_LEN in dvdread/dvd_reader.h, please install libdvdread version 0.9.2 or later])
+          fi
+        ])
+  ],[
+    if test "x$enable_dvdread" != x
+    then
+      if test "x$with_dvdread" != x
+      then
+        AC_MSG_ERROR([Cannot find dvdread/dvd_reader.h in ${with_dvdread}/include])
+      else
+        AC_MSG_ERROR([Cannot find dvdread/dvd_reader.h])
+      fi
+    fi
+  ])
+  CPPFLAGS="$save_CPPFLAGS"
+fi
 
 dnl
 
 dnl
-dnl  DVD module: check for installed libdvdcss or local libdvdcss
+dnl  libdvbpsi ts demux
 dnl
 dnl
-NEED_LIBDVDCSS=0
-STATIC_LIBDVDCSS=0
-DUMMY_LIBDVDCSS=0
-AC_ARG_WITH(dvdcss,
-  [  --with-dvdcss[=name]    way to use libdvdcss, either 'yes' or 'no',
-                          or 'local-static', 'local-shared', or a path to
-                          another libdvdcss such as '/usr/local'
-                          (default 'local-static')],
-  [ case "x${withval}" in
-    xlocal-static|xyes)
-      # local libdvdcss, statically linked
-      if test x${CAN_BUILD_LIBDVDCSS} = x1
-      then
-        NEED_LIBDVDCSS=1
-        STATIC_LIBDVDCSS=1
-        BUILTINS="${BUILTINS} dvd"
-        CFLAGS_DVD="${CFLAGS_DVD} -I../../extras/libdvdcss"
-        LIB_DVD="${LIB_DVD} lib/libdvdcss.a ${LIB_LIBDVDCSS}"
-        LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} ../../lib/libdvdcss.a ${LIB_LIBDVDCSS}"
-      fi
-    ;;
-    xlocal-shared)
-      # local libdvdcss, dynamically linked
-      if test x${CAN_BUILD_LIBDVDCSS} = x1
+AC_ARG_ENABLE(dvbpsi,
+[  --enable-dvbpsi        dvbpsi ts demux module (default disabled)])
+if test "x$enable_dvbpsi" != "xno"
+then
+  AC_ARG_WITH(dvbpsi, 
+  [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
+  AC_ARG_WITH(dvbpsi,
+  [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
+  case "x$with_dvbpsi" in
+  x|xyes)
+    if test "x$with_dvbpsi_tree" = x
+    then
+      AC_CHECK_HEADERS(dvbpsi/dr.h,
+        [ PLUGINS="${PLUGINS} mpeg_ts_dvbpsi"
+          mpeg_ts_dvbpsi_LDFLAGS="${mpeg_ts_dvbpsi_LDFLAGS} -ldvbpsi" ], [],
+        [  AC_MSG_ERROR([cannot find libdvbpsi headers]) ])
+    else
+      AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
+      real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
+      if test "x$real_dvbpsi_tree" = x
       then
       then
-        NEED_LIBDVDCSS=1
-        BUILTINS="${BUILTINS} dvd"
-        CFLAGS_DVD="${CFLAGS_DVD} -I../../extras/libdvdcss"
-        LIB_DVD="${LIB_DVD} -Llib -ldvdcss"
-        LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} -L../../lib -ldvdcss"
+        dnl  The given directory can't be found
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
       fi
       fi
-    ;;
-    xno)
-      # don't use libdvdcss at all, build a DVD module that can dlopen() it
-      DUMMY_LIBDVDCSS=1
-      BUILTINS="${BUILTINS} dvd"
-      OBJ_DVD="${OBJ_DVD} dummy_dvdcss.o"
-      CFLAGS_DVD="${CFLAGS_DVD} -DGOD_DAMN_DMCA"
-      CFLAGS_DVD="${CFLAGS_DVD} -DLIBDVDCSS_VERSION=\"${LIBDVDCSS_VERSION}\""
-      LIB_DVD="${LIB_DVD} -ldl"
-      LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} -ldl"
-    ;;
-    *)
-      # existing libdvdcss
-      BUILTINS="${BUILTINS} dvd"
-      if test "x$withval" != "xyes"
+      if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
       then
       then
-        LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} -L"$withval"/lib"
-        CFLAGS_DVD="${CFLAGS_DVD} -I"$withval"/include"
+        dnl  Use a custom libdvbpsi
+        AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
+        BUILTINS="${BUILTINS} mpeg_ts_dvbpsi"
+        mpeg_ts_dvbpsi_LDFLAGS="${mpeg_ts_dvbpsi_LDFLAGS} ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
+        mpeg_ts_dvbpsi_CFLAGS="${mpeg_ts_dvbpsi_CFLAGS} -I${real_dvbpsi_tree}/src"
+      else
+        dnl  The given libdvbpsi wasn't built
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
       fi
       fi
-      LIB_DVD="${LIB_DVD} -ldvdcss"
-      LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} -ldvdcss"
-    esac ],
-  # user didn't decide, we choose to use local libdvdcss and link statically
-  # if libdvdcss is in the archive, or to use the dummy replacement otherwise.
-  [ if test x${CAN_BUILD_LIBDVDCSS} = x1
+    fi
+  ;;
+  xno)
+    dnl  Compile without dvbpsi (dlopen version, works only under Linux)
+  ;;
+  *)
+    AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
+    if test "x$with_dvbpsi" = x
     then
     then
-      NEED_LIBDVDCSS=1
-      STATIC_LIBDVDCSS=1
-      BUILTINS="${BUILTINS} dvd"
-      CFLAGS_DVD="${CFLAGS_DVD} -I../../extras/libdvdcss"
-      LIB_DVD="${LIB_DVD} lib/libdvdcss.a ${LIB_LIBDVDCSS}"
-      LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} ../../lib/libdvdcss.a ${LIB_LIBDVDCSS}"
+      test_LDFLAGS=""
+      test_CFLAGS=""
     else
     else
-      # XXX: no check for libdl is done, don't try this at home !
-      DUMMY_LIBDVDCSS=1
-      BUILTINS="${BUILTINS} dvd"
-      OBJ_DVD="${OBJ_DVD} dummy_dvdcss.o"
-      CFLAGS_DVD="${CFLAGS_DVD} -DGOD_DAMN_DMCA"
-      LIB_DVD="${LIB_DVD} -ldl"
-      LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} -ldl"
-    fi ])
+      test_LDFLAGS="-L${with_dvbpsi}/lib"
+      test_CFLAGS="-I${with_dvbpsi}/include"
+    fi
+    CPPFLAGS="$save_CPPFLAGS $test_CFLAGS"
+    AC_CHECK_HEADER([dvbpsi/dr.h],[
+      PLUGINS="${PLUGINS} mpeg_ts_dvbpsi"
+      mpeg_ts_dvbpsi_LDFLAGS="${mpeg_ts_dvbpsi_LDFLAGS} ${test_LDFLAGS} -ldvbpsi"
+      mpeg_ts_dvbpsi_CFLAGS="${mpeg_ts_dvbpsi_CFLAGS} ${test_CFLAGS}"
+      ],[
+      if test "x$enable_dvbpsi" != x
+      then
+        AC_MSG_ERROR([Could not find libdvbpsi on your system: you may get it from www.videolan.org, you'll need at least version 0.1.1])
+      fi
+    ])
+    CPPFLAGS="$save_CPPFLAGS"
+  ;;
+  esac
+fi
 
 dnl
 
 dnl
-dnl  dummy plugin
+dnl  VCD module
 dnl
 dnl
-AC_ARG_ENABLE(dummy,
-  [  --disable-dummy         dummy module (default enabled)])
+AC_ARG_ENABLE(vcd,
+  [  --enable-vcd            VCD support for Linux, FreeBSD and MacOS X (default enabled)])
 
 
-if test x$enable_dummy != xno
+if test x$enable_vcd != xno
 then
 then
-  BUILTINS="${BUILTINS} dummy"
+  AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
+    PLUGINS="${PLUGINS} vcd"
+  ])
+  
+  AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
+    PLUGINS="${PLUGINS} vcd"
+    AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
+  ])
+  
+  if test "x${SYS}" = "xbsdi"
+  then
+    PLUGINS="${PLUGINS} vcd"
+  fi
+
+  if test "x${SYS}" = "xdarwin"
+  then
+    # No need to add vcd to PLUGINS, Darwin is already based on FreeBSD
+    vcd_LDFLAGS="${vcd_LDFLAGS} -framework IOKit -framework CoreFoundation" 
+  fi
 fi
 
 dnl
 fi
 
 dnl
-dnl  null plugin
+dnl  Satellite input module
 dnl
 dnl
-AC_ARG_ENABLE(null,
-  [  --disable-null          Null module (default enabled)])
+AC_ARG_ENABLE(satellite,
+  [  --enable-satellite      satellite card support (default disabled)],
+  [ if test x$enable_satellite = xyes
+    then
+      PLUGINS="${PLUGINS} satellite"
+    fi])
 
 
-if test x$enable_null != xno
+dnl
+dnl  ipv6 plugin - not for QNX yet
+dnl
+if test x$SYS != xnto && test "x$SYS" != "xmingw32"
+then
+  AC_CHECK_FUNC(inet_pton,[PLUGINS="${PLUGINS} ipv6"])
+fi
+if test "x$SYS" = "xmingw32"
 then
 then
-  BUILTINS="${BUILTINS} null"
+  AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
+  AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
+    PLUGINS="${PLUGINS} ipv6"],[AC_MSG_RESULT(no)])
 fi
 
 dnl
 fi
 
 dnl
-dnl  rc plugin
+dnl  AVI demux plugin
 dnl
 dnl
-AC_ARG_ENABLE(rc,
-  [  --disable-rc            rc module (default enabled)])
-
-if test x$enable_rc != xno
+AC_ARG_ENABLE(avi,
+  [  --enable-avi            AVI demux module (default enabled)])
+if test x$enable_avi != xno
 then
 then
-  BUILTINS="${BUILTINS} rc"
+  PLUGINS="${PLUGINS} avi"
 fi
 
 fi
 
-dnl special case for BeOS
-if test x$SYS = xbeos
-then
-    BUILTINS="${BUILTINS} beos"
-    LIB_BEOS="-lbe -lgame -lroot -ltracker"
-    PLCFLAGS="${PLCFLAGS} -nostart"
+dnl
+dnl  Codec plugins
+dnl
 
 
-dnl default case
-else
+AC_ARG_WITH(,[Codec plugins:])
 
 dnl
 
 dnl
-dnl  OSS /dev/dsp module
+dnl  mad plugin
 dnl
 dnl
-AC_ARG_ENABLE(dsp,
-  [  --disable-dsp           Linux /dev/dsp support (default enabled)])
-
-if test x$enable_dsp != xno
+AC_ARG_ENABLE(mad,
+  [  --enable-mad            libmad module (default disabled)])
+if test x$enable_mad = xyes
 then
 then
-  if test -c /dev/dsp
+  AC_ARG_WITH(mad,
+    [    --with-mad=PATH       path to libmad],[],[])
+  if test "x$with_mad" != "xno" -a "x$with_mad" != "x"
   then
   then
-    PLUGINS="${PLUGINS} dsp"
+    mad_CFLAGS="${mad_CFLAGS} -I$with_mad/include"
+    mad_LDFLAGS="${mad_LDFLAGS} -L$with_mad/lib"
   fi
   fi
-fi
+
+  AC_ARG_WITH(mad-tree,
+    [    --with-mad-tree=PATH  mad tree for static linking],[],[])
+  if test "x$with_mad_tree" != "xno" -a "x$with_mad_tree" != "x"
+  then
+    real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
+    if test "x$real_mad_tree" = x
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
+    fi
+    dnl  Use a custom libmad
+    AC_MSG_CHECKING(for mad.h in ${real_mad_tree}/libmad)
+    if test -f ${real_mad_tree}/libmad/mad.h
+    then
+      AC_MSG_RESULT(yes)
+      mad_CFLAGS="${mad_CFLAGS} -I${real_mad_tree}/libmad"
+      mad_LDFLAGS="${mad_LDFLAGS} -L${real_mad_tree}/libmad/.libs"
+      save_LDFLAGS=$LDFLAGS
+      LDFLAGS=$mad_LDFLAGS
+      AC_CHECK_LIB(mad, mad_bit_init, [
+        BUILTINS="${BUILTINS} mad"
+        mad_LDFLAGS="${mad_LDFLAGS} -lmad"
+        ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
+      ],[])
+      LDFLAGS=$save_LDFLAGS
+    else
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([the specified tree doesn't have mad.h])
+    fi
+  else
+    save_CFLAGS=$CFLAGS
+    save_LDFLAGS=$LDFLAGS
+    CFLAGS="$CFLAGS $mad_CFLAGS"
+    LDFLAGS="$LDFLAGS $mad_LDFLAGS"
+    AC_CHECK_HEADERS(mad.h, ,
+      [ AC_MSG_ERROR([Cannot find development headers for libmad...]) ])
+    AC_CHECK_LIB(mad, mad_bit_init, [
+      PLUGINS="${PLUGINS} mad"
+      mad_LDFLAGS="${mad_LDFLAGS} -lmad" ],
+      [ AC_MSG_ERROR([Cannot find libmad library...]) ])
+    CFLAGS=$save_CFLAGS
+    LDFLAGS=$save_LDFLAGS
+  fi
+fi
 
 dnl
 
 dnl
-dnl  Esound module
-dnl
-AC_ARG_ENABLE(esd,
-  [  --enable-esd            Esound library support (default disabled)],
-  [if test x$enable_esd = xyes
-   then
-     AC_PATH_PROG(ESD_CONFIG, esd-config, no)
-     if test x${ESD_CONFIG} != xno
-     then
-       PLUGINS="${PLUGINS} esd"
-       LIB_ESD="`${ESD_CONFIG} --libs`"
-     fi
-   fi])
+dnl  ffmpeg decoder plugin
+dnl
+AC_ARG_ENABLE(ffmpeg,
+[  --enable-ffmpeg         ffmpeg codec (default disabled)])
+if test "x$enable_ffmpeg" = "xyes"
+then
+  AC_ARG_WITH(ffmpeg,
+    [    --with-ffmpeg=PATH    path to ffmpeg installation],[],[])
+  if test "x$with_ffmpeg" != "xno" -a "x$with_ffmpeg" != "x"
+  then
+    ffmpeg_CFLAGS="${ffmpeg_CFLAGS} -I$with_ffmpeg/include/libffmpeg"
+    ffmpeg_LDFLAGS="${ffmpeg_LDFLAGS} -L$with_ffmpeg/lib"
+  fi
+
+  AC_ARG_WITH(ffmpeg-tree, 
+  [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
+  if test "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
+      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
+      dnl  Use a custom libffmpeg
+      AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
+      BUILTINS="${BUILTINS} ffmpeg"
+      ffmpeg_LDFLAGS="${ffmpeg_LDFLAGS} ${real_ffmpeg_tree}/libavcodec/libavcodec.a"
+      if test x$SYS != xbeos
+      then
+        ffmpeg_LDFLAGS="${ffmpeg_LDFLAGS} -lm"
+      fi
+      ffmpeg_CFLAGS="${ffmpeg_CFLAGS} -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
+    save_CFLAGS=$CFLAGS
+    save_LDFLAGS=$LDFLAGS
+    CFLAGS="$CFLAGS $ffmpeg_CFLAGS"
+    LDFLAGS="$LDFLAGS $ffmpeg_LDFLAGS"
+    if test x$SYS != xbeos
+    then
+      ffmpeg_LDFLAGS="${ffmpeg_LDFLAGS} -lm"
+    fi
+    AC_CHECK_LIB(avcodec, avcodec_init, [
+      BUILTINS="${BUILTINS} ffmpeg"
+      ffmpeg_LDFLAGS="${ffmpeg_LDFLAGS} -lavcodec"
+      if test x$SYS != xbeos
+      then
+        ffmpeg_LDFLAGS="${ffmpeg_LDFLAGS} -lm"
+      fi ],
+      [ AC_MSG_ERROR([Cannot find libavcodec library...]) ])
+    CFLAGS=$save_CFLAGS
+    LDFLAGS=$save_LDFLAGS
+  fi
+fi
+
+
+dnl special case for BeOS
+if test x$SYS = xbeos
+then
+    PLUGINS="${PLUGINS} beos"
+fi
 
 dnl
 
 dnl
-dnl  Darwin module
+dnl  a52 AC3 decoder plugin
 dnl
 dnl
-AC_ARG_ENABLE(darwin,
-  [  --enable-darwin         Darwin sound support (default enabled on MacOS X)],
-  [if test x$enable_darwin = xyes; then
-     PLUGINS="${PLUGINS} darwin"
-     LIB_DARWIN="-framework CoreAudio"
-   fi])
+AC_ARG_ENABLE(a52,
+  [  --enable-a52            AC3 support with liba52 (default enabled)])
+if test "x$enable_a52" != "xno"
+then
+  AC_ARG_WITH(a52-tree,
+    [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
+  if test "x$with_a52_tree" != "xno" -a "x$with_a52_tree" != "x"
+  then
+    real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
+    if test "x$real_a52_tree" = x
+    then
+      dnl  The given directory can't be found
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
+    fi
+    dnl  Use a custom a52dec
+    AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
+    if test -f ${real_a52_tree}/include/a52.h
+    then
+      AC_MSG_RESULT(yes)
+      a52_CFLAGS="${a52_CFLAGS} -I${real_a52_tree}"
+      a52_LDFLAGS="${a52_LDFLAGS} -L${real_a52_tree}/liba52/.libs"
+      save_LDFLAGS=$LDFLAGS
+      LDFLAGS="$a52_LDFLAGS $LDFLAGS"
+      AC_CHECK_LIB(a52, a52_free, [
+        BUILTINS="${BUILTINS} a52"
+        a52_LDFLAGS="${a52_LDFLAGS} -la52 -lm"
+        a52_CFLAGS="${a52_CFLAGS} -DUSE_A52DEC_TREE"
+        ],[
+        if test -f ${real_a52_tree}/liba52/.libs/liba52.a
+        then
+          AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
+        else
+          AC_MSG_ERROR([the specified tree hasn't been compiled])
+        fi
+      ],[-lm])
+      LDFLAGS=$save_LDFLAGS
+    else
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([the specified tree doesn't have a52.h])
+    fi
+  else dnl  no with args
+    AC_CHECK_HEADERS(a52dec/a52.h, [
+      AC_CHECK_LIB(a52, a52_free, [
+        BUILTINS="${BUILTINS} a52"
+        a52_LDFLAGS="${a52_LDFLAGS} -la52 -lm"
+        a52_CFLAGS="${a52_CFLAGS}"
+      ],[],[-lm])
+    ])
+  fi
+fi
 
 dnl
 
 dnl
-dnl  MacOS X module
+dnl  ogg vorbis plugin
 dnl
 dnl
-AC_ARG_ENABLE(macosx,
-  [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
-  [if test x$enable_macosx = xyes
-   then
-     BUILTINS="${BUILTINS} macosx"
-     LIB_MACOSX="-framework CoreAudio -framework Carbon -framework AGL"
-     LIB_TS="${LIB_TS} -framework AGL -framework Carbon"
-     LIB_SDL="${LIB_SDL} -framework AGL -framework Carbon"
-   fi],
-  [AC_CHECK_HEADERS(Carbon/Carbon.h,
-     BUILTINS="${BUILTINS} macosx"
-     LIB_MACOSX="-framework CoreAudio -framework Carbon -framework AGL"
-     LIB_TS="${LIB_TS} -framework AGL -framework Carbon"
-     LIB_SDL="${LIB_SDL} -framework AGL -framework Carbon"
-   )])
+AC_ARG_ENABLE(vorbis,
+  [  --enable-vorbis         Ogg/Vorbis decoder support (default enabled)])
+if test "x$enable_vorbis" != "xno"
+then
+  AC_CHECK_HEADERS(ogg/ogg.h, [
+    dnl disabled for the moment
+    #PLUGINS="${PLUGINS} vorbis"
+    vorbis_LDFLAGS="${vorbis_LDFLAGS} -lvorbis"
+   ],[])
+fi
 
 dnl
 
 dnl
-dnl  QNX RTOS module
+dnl  Video plugins
 dnl
 dnl
-AC_ARG_ENABLE(qnx,
-  [  --disable-qnx           QNX RTOS support (default enabled on QNX RTOS)])
-    if test x$enable_qnx != xno
-    then
-      AC_CHECK_HEADERS(Ph.h, [
-        PLUGINS="${PLUGINS} qnx"
-        LIB_QNX="-lasound -lph"
-      ])
-    fi
+
+AC_ARG_WITH(,[Video plugins:])
 
 dnl
 
 dnl
-dnl  Linux framebuffer module
+dnl  X11 module
+dnl  (enabled by default except on win32)
 dnl
 dnl
-AC_ARG_ENABLE(fb,
-  [  --enable-fb             Linux framebuffer support (default disabled)],
-  [ if test x$enable_fb = xyes
-    then
-      PLUGINS="${PLUGINS} fb"
-    fi ])
+AC_ARG_ENABLE(x11,
+  [  --enable-x11            X11 support (default enabled)])
+if test x$enable_x11 != xno &&
+  (test x$SYS != xmingw32 || test x$enable_x11 = xyes); then
+  if test x$x_includes = xNONE; then
+    x_includes=/usr/X11R6/include
+  fi
+  if test x$x_libraries = xNONE; then
+    x_libraries=/usr/X11R6/lib
+  fi
+  CPPFLAGS="$save_CPPFLAGS -I$x_includes"
+  AC_CHECK_HEADERS(X11/Xlib.h, [
+    PLUGINS="${PLUGINS} x11"
+    x11_LDFLAGS="${x11_LDFLAGS} -L$x_libraries -lX11 -lXext"
+    x11_CFLAGS="${x11_CFLAGS} -I$x_includes"
+  ])
+  CPPFLAGS="$save_CPPFLAGS"
+fi
 
 dnl
 
 dnl
-dnl  GGI module
+dnl  XVideo module
+dnl  (enabled by default except on win32)
 dnl
 dnl
-AC_ARG_WITH(ggi,
-  [  --with-ggi[=name]       GGI support (default disabled)],
-  [ if test "x$withval" != "xno"
-    then
-      PLUGINS="${PLUGINS} ggi"
-      if test "x$withval" != "xyes"
-      then
-        LIB_GGI="-l"$withval
-      else
-        LIB_GGI="-lggi"
-      fi
-    fi ])
+AC_ARG_ENABLE(xvideo,
+  [  --enable-xvideo         XVideo support (default enabled)])
+if test x$enable_xvideo != xno &&
+  (test x$SYS != xmingw32 || test x$enable_xvideo = xyes); then
+  if test x$x_includes = xNONE; then
+    x_includes=/usr/X11R6/include
+  fi
+  if test x$x_libraries = xNONE; then
+    x_libraries=/usr/X11R6/lib
+  fi
+  save_CPPFLAGS=$CPPFLAGS
+  CPPFLAGS="$save_CPPFLAGS -I$x_includes"
+  AC_CHECK_HEADERS(X11/extensions/Xv.h, [
+    save_CFLAGS=$CFLAGS
+    CFLAGS="$CFLAGS -L$x_libraries -lX11 -lXext"
+    AC_CHECK_LIB(Xv_pic,XvSetPortAttribute,
+      # We have Xv_pic, that's good, we can build an xvideo.so plugin !
+      PLUGINS="${PLUGINS} xvideo"
+      xvideo_LDFLAGS="${xvideo_LDFLAGS} -L$x_libraries -lX11 -lXext -lXv_pic"
+      xvideo_CFLAGS="${xvideo_CFLAGS} -I$x_includes",
+      # We don't have Xv_pic, let's make xvideo.a as builtin
+      BUILTINS="${BUILTINS} xvideo"
+      xvideo_LDFLAGS="${xvideo_LDFLAGS} -L$x_libraries -lX11 -lXext -lXv"
+      xvideo_CFLAGS="${xvideo_CFLAGS} -I$x_includes")
+    CFLAGS="$save_CFLAGS"
+  ]
+  CPPFLAGS="$save_CPPFLAGS")
+fi
 
 dnl
 dnl  SDL module
 dnl
 AC_ARG_ENABLE(sdl,
 
 dnl
 dnl  SDL module
 dnl
 AC_ARG_ENABLE(sdl,
-  [  --disable-sdl           SDL support (default enabled)])
+  [  --enable-sdl            SDL support (default enabled)])
 if test "x$enable_sdl" != "xno"
 then
   SDL_PATH=$PATH
   AC_ARG_WITH(sdl-config-path,
 if test "x$enable_sdl" != "xno"
 then
   SDL_PATH=$PATH
   AC_ARG_WITH(sdl-config-path,
-    [  --with-sdl-config-path=path sdl-config path (default search in \$PATH)],
-    [ if test "x$withval" != "xno"
+    [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
+    [ if test "x$with_sdl_config_path" != "xno"
       then
       then
-        SDL_PATH=$withval:$PATH
+        SDL_PATH="$with_sdl_config_path:$PATH"
       fi ])
   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, $SDL_PATH)
   SDL_CONFIG=${SDL12_CONFIG}
       fi ])
   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, $SDL_PATH)
   SDL_CONFIG=${SDL12_CONFIG}
@@ -765,17 +1174,16 @@ then
   if test x${SDL_CONFIG} != xno
   then
     PLUGINS="${PLUGINS} sdl"
   if test x${SDL_CONFIG} != xno
   then
     PLUGINS="${PLUGINS} sdl"
-    CFLAGS_SDL="`${SDL_CONFIG} --cflags`"
-    LIB_SDL="`${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`"
-    save_CPPFLAGS=$CPPFLAGS
-    CPPFLAGS="$CPPFLAGS $CFLAGS_SDL"
+    sdl_CFLAGS="${sdl_CFLAGS} `${SDL_CONFIG} --cflags`"
+    sdl_LDFLAGS="${sdl_LDFLAGS} `${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`"
+    CPPFLAGS="$save_CPPFLAGS $sdl_CFLAGS"
     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_MSG_ERROR([The development package for SDL is not installed. 
 Please install it and try again. Alternatively you can also configure with 
 --disable-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_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=$save_CPPFLAGS
+    CPPFLAGS="$save_CPPFLAGS"
     if expr 1.1.5 \> `$SDL_CONFIG --version` >/dev/null
     then
       AC_MSG_ERROR([The development package for SDL is not installed.
     if expr 1.1.5 \> `$SDL_CONFIG --version` >/dev/null
     then
       AC_MSG_ERROR([The development package for SDL is not installed.
@@ -790,58 +1198,345 @@ from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
   fi
 fi
 
   fi
 fi
 
+dnl
+dnl  Qt Embedded module
+dnl  (disabled by default)
+dnl
+AC_ARG_ENABLE(qte,
+  [  --enable-qte            QT Embedded support (default disabled)])
+if test "x${enable_qte}" != "xno"
+then
+  AC_ARG_WITH(qte,
+  [    --with-qte=PATH    Qt Embedded headers and libraries])
+  if test "x${with_qte}" = "x"
+  then
+    test_LDFLAGS="-L${QTDIR}/lib"
+    test_CFLAGS="-I${QTDIR}/include"
+  else
+    test_LDFLAGS="-L${with_qte}/lib"
+    test_CFLAGS="-I${with_qte}/include"
+  fi
+
+  CPPFLAGS="${save_CPPFLAGS} ${test_CFLAGS}"
+  AC_CHECK_HEADERS(qt.h, [
+    qte_CFLAGS="${qte_CFLAGS} ${test_CFLAGS} -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti"
+    qte_LDFLAGS="${qte_LDFLAGS} ${test_LDFLAGS} -lqpe -lqte"
+    if test "x${with_qte}" = "x"
+    then
+      PLUGINS="${PLUGINS} qte"
+    else
+      BUILTINS="${BUILTINS} qte"
+    fi
+  ])
+  CPPFLAGS="${save_CPPFLAGS}"
+fi
+
 dnl
 dnl  Windows DirectX module
 dnl
 dnl
 dnl  Windows DirectX module
 dnl
-AC_ARG_WITH(directx,
-  [  --with-directx[=name]   Windows DirectX support (default enabled)],
-  [ if test "x$withval" != "xno"
+AC_ARG_ENABLE(directx,
+  [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
+if test "x$enable_directx" != "xno"
+then
+  if test x$SYS = xmingw32
+  then
+    AC_ARG_WITH(directx, 
+    [    --with-directx=PATH   Win32 DirectX headers and libraries])
+    if test "x$with_directx" = "x"
     then
     then
-      PLUGINS="${PLUGINS} directx"
-      if test "x$withval" != "xyes"
+      AC_CHECK_HEADERS(ddraw.h,
+      [ PLUGINS="${PLUGINS} directx"
+        directx_LDFLAGS="${directx_LDFLAGS} -lgdi32" ])
+    else
+      AC_MSG_CHECKING(for directX headers in ${with_directx})
+      if test -f ${with_directx}/ddraw.h
       then
       then
-        LIB_DIRECTX="${LIB_DIRECTX} -L"$withval"/lib -lgdi32 -ldxguid"
-        INCLUDE="${INCLUDE} -I"$withval"/include"
+        PLUGINS="${PLUGINS} directx"
+        directx_LDFLAGS="${directx_LDFLAGS} -L${with_directx}/lib -lgdi32"
+        directx_CFLAGS="${directx_CFLAGS} -I${with_directx}"
+        AC_MSG_RESULT(yes)
       else
       else
-        AC_CHECK_HEADERS(directx.h, , 
-         AC_MSG_ERROR([Cannot find DirectX headers !])
-       )
-        LIB_DIRECTX="${LIB_DIRECTX} -L/usr/lib -lgdi32 -ldxguid"
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
       fi
       fi
-    fi ])
-    if test "x$withval" = "x"
+    fi
+  fi
+fi
+
+dnl
+dnl  Linux framebuffer module
+dnl
+AC_ARG_ENABLE(fb,
+  [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
+    if test x$enable_fb != xno
     then
     then
-      AC_CHECK_HEADERS(directx.h,
-      [PLUGINS="${PLUGINS} directx"
-       LIB_DIRECTX="${LIB_DIRECTX} -L/usr/lib -lgdi32 -ldxguid"])
+      AC_CHECK_HEADERS(linux/fb.h, [
+        PLUGINS="${PLUGINS} fb"
+      ])
     fi
 
 dnl
     fi
 
 dnl
-dnl  Glide module
+dnl  Linux MGA module
 dnl
 dnl
-AC_ARG_WITH(glide,
-  [  --with-glide[=name]     Glide (3dfx) support (default disabled)],
-  [ if test "x$withval" != "xno"
+AC_ARG_ENABLE(mga,
+  [  --enable-mga            Linux kernel Matrox support (default disabled)],
+  [ if test x$enable_mga = xyes
     then
     then
-      PLUGINS="${PLUGINS} glide"
-      if test "x$withval" != "xyes"
-      then
-        LIB_GLIDE="-l"$withval" -lm"
-      else
-        LIB_GLIDE="-lglide2x -lm"
-      fi
+      PLUGINS="${PLUGINS} mga xmga"
     fi ])
 
 dnl
     fi ])
 
 dnl
-dnl  ncurses module
+dnl  GGI module
 dnl
 dnl
-AC_ARG_ENABLE(ncurses,
-  [  --enable-ncurses        ncurses interface support (default disabled)],
-  [if test x$enable_ncurses = xyes; then
-     PLUGINS="${PLUGINS} ncurses"
-     LIB_NCURSES="-lncurses"
+AC_ARG_ENABLE(ggi,
+  [  --enable-ggi            GGI support (default disabled)])
+if test x$enable_ggi = xyes
+then
+  PLUGINS="${PLUGINS} ggi"
+  ggi_LDFLAGS="${ggi_LDFLAGS} -lggi"
+  AC_ARG_WITH(ggi,
+    [    --with-ggi=PATH       path to libggi],
+    [ if test "x$with_ggi" != "xno" -a "x$with_ggi" != "x"
+      then
+        CFLAGS_GGI="${CFLAGS_GGI} -I$with_ggi/include"
+        ggi_LDFLAGS="${ggi_LDFLAGS} -L$with_ggi/lib"
+      fi ])
+fi
+
+dnl
+dnl  Glide module
+dnl
+AC_ARG_ENABLE(glide,
+  [  --enable-glide          Glide (3dfx) support (default disabled)])
+if test x$enable_glide = xyes
+then
+  PLUGINS="${PLUGINS} glide"
+  glide_LDFLAGS="${glide_LDFLAGS} -lglide2x -lm"
+  glide_CFLAGS="${glide_CFLAGS} -I/usr/include/glide"
+  AC_ARG_WITH(glide,
+    [    --with-glide=PATH     path to libglide],
+    [ if test "x$with_glide" != "xno" -a "x$with_glide" != "x"
+      then
+        glide_CFLAGS="${glide_CFLAGS} -I$with_glide/include"
+        glide_LDFLAGS="${glide_LDFLAGS} -L$with_glide/lib"
+      fi ])
+fi
+
+dnl
+dnl  AA plugin
+dnl
+AC_ARG_ENABLE(aa,
+  [  --enable-aa             aalib output (default disabled)])
+if test x$enable_aa = xyes
+then
+  AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
+  if test x$have_aa = xtrue
+  then
+    PLUGINS="${PLUGINS} aa"
+    aa_LDFLAGS="${aa_LDFLAGS} -laa"
+  fi
+fi
+
+dnl
+dnl  Audio plugins
+dnl
+
+AC_ARG_WITH(,[Audio plugins:])
+
+dnl
+dnl  OSS /dev/dsp module (enabled by default except on win32)
+dnl
+AC_ARG_ENABLE(dsp,
+  [  --enable-dsp            Linux /dev/dsp support (enabled on Linux)])
+
+if test x$enable_dsp != xno &&
+  (test x$SYS != xmingw32 || test x$enable_dsp = xyes)
+then
+  AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
+    PLUGINS="${PLUGINS} dsp"
+    AC_CHECK_LIB(ossaudio,main,dsp_LDFLAGS="${dsp_LDFLAGS} -lossaudio")
+  ])
+fi
+
+dnl
+dnl  Esound module
+dnl
+AC_ARG_ENABLE(esd,
+  [  --enable-esd            Esound library support (default disabled)],
+  [if test x$enable_esd = xyes
+   then
+     AC_PATH_PROG(ESD_CONFIG, esd-config, no)
+     if test x${ESD_CONFIG} != xno
+     then
+       PLUGINS="${PLUGINS} esd"
+       esd_CFLAGS="${esd_CFLAGS} `${ESD_CONFIG} --cflags`"
+       esd_LDFLAGS="${esd_LDFLAGS} `${ESD_CONFIG} --libs`"
+     fi
+   fi])
+
+dnl
+dnl  aRts module
+dnl
+AC_ARG_ENABLE(arts,
+  [  --enable-arts           aRts sound server (default disabled)],
+  [if test x$enable_arts = xyes
+   then
+     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
+     if test x${ARTS_CONFIG} != xno
+     then
+       PLUGINS="${PLUGINS} arts"
+       arts_CFLAGS="${arts_CFLAGS} `${ARTS_CONFIG} --cflags`"
+       arts_LDFLAGS="${arts_LDFLAGS} `${ARTS_CONFIG} --libs `"
+     fi
+   fi])
+
+dnl
+dnl  ALSA module
+dnl
+AC_ARG_ENABLE(alsa,
+  [  --enable-alsa           ALSA sound support for Linux (default disabled)],
+  [if test x$enable_alsa = xyes
+   then
+     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"
+       alsa_LDFLAGS="${alsa_LDFLAGS} -lasound -lm -ldl"
+     fi
    fi])
 
    fi])
 
+dnl
+dnl  win32 waveOut plugin
+dnl
+AC_ARG_ENABLE(waveout,
+  [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
+if test "x$enable_waveout" != "xno" -a x$SYS = xmingw32
+  then
+    PLUGINS="${PLUGINS} waveout"
+    waveout_LDFLAGS="-lwinmm"
+fi
+
+dnl
+dnl  Interface plugins
+dnl
+
+AC_ARG_WITH(,[Interface plugins:])
+
+dnl
+dnl  Gtk+ module
+dnl
+AC_ARG_ENABLE(gtk,
+  [  --enable-gtk            Gtk+ support (default enabled)])
+if test x$enable_gtk != xno
+then
+  GTK_PATH=$PATH
+  AC_ARG_WITH(gtk-config-path,
+    [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
+    [ if test "x$with_gtk_config_path" != "xno"
+      then
+        GTK_PATH="$with_gtk_config_path:$PATH"
+      fi ])
+  # look for gtk-config
+  AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, $GTK_PATH)
+  GTK_CONFIG=${GTK12_CONFIG}
+  if test x${GTK_CONFIG} = xno
+  then
+    AC_PATH_PROG(GTK_CONFIG, gtk-config, no, $GTK_PATH)
+  fi
+  if test x${GTK_CONFIG} != xno
+  then
+    if expr 1.2.0 \> `$GTK_CONFIG --version` >/dev/null
+    then
+      AC_MSG_ERROR([Your development package for Gtk+ is too old, you need at least version 1.2.0. Please upgrade and try again. Alternatively you can also configure with --disable-gtk.])
+    fi
+    gtk_CFLAGS="${gtk_CFLAGS} `${GTK_CONFIG} --cflags gtk`"
+    gtk_LDFLAGS="${gtk_LDFLAGS} `${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`"
+    # now look for the gtk.h header
+    CPPFLAGS="$save_CPPFLAGS $gtk_CFLAGS"
+    ac_cv_gtk_headers=yes
+    AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
+      ac_cv_gtk_headers=no
+      echo "Cannot find gtk development headers."
+    ])
+    if test "x$ac_cv_gtk_headers" = xyes
+    then
+      PLUGINS="${PLUGINS} gtk"
+      ALIASES="${ALIASES} gvlc"
+    fi
+    CPPFLAGS="$save_CPPFLAGS"
+  fi
+fi
+
+dnl
+dnl  Familiar module uses Gtk+ library
+dnl
+AC_ARG_ENABLE(familiar,
+  [  --enable-familiar       Familiar Gtk+ support (default disabled)])
+if test "x${enable_familiar}" = "xyes"
+then
+  GTK_PATH="${PATH}"
+  AC_ARG_WITH(gtk-config-path,
+    [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
+    [ if test "x${with_gtk_config_path}" != "xno"
+      then
+        GTK_PATH="${with_gtk_config_path}:${PATH}"
+      fi ])
+  # look for gtk-config
+  AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
+  GTK_CONFIG=${GTK12_CONFIG}
+  if test "x${GTK_CONFIG}" = "xno"
+  then
+    AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
+  fi
+  if test "x${GTK_CONFIG}" != "xno"
+  then
+    if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
+    then
+      AC_MSG_ERROR([Your development package for Gtk+ is too old, you need at least version 1.2.0. Please upgrade and try again. Alternatively you can also configure with --disable-familiar.])
+    fi
+    familiar_CFLAGS="${familiar_CFLAGS} `${GTK_CONFIG} --cflags gtk gthread`"
+    familiar_LDFLAGS="${familiar_LDFLAGS} `${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`"
+    # now look for the gtk.h header
+    CPPFLAGS="${save_CPPFLAGS} ${familiar_CFLAGS}"
+    ac_cv_gtk_headers=yes
+    AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
+      ac_cv_gtk_headers=no
+      echo "Cannot find gtk development headers."
+    ])
+    if test "x${ac_cv_gtk_headers}" = "xyes"
+    then
+      PLUGINS="${PLUGINS} familiar"
+      NEED_GTK_MAIN=yes
+    fi
+    CPPFLAGS="${save_CPPFLAGS}"
+  fi
+fi
+
+dnl
+dnl  Gnome module
+dnl
+AC_ARG_ENABLE(gnome,
+  [  --enable-gnome          Gnome interface support (default disabled)],
+  [if test x$enable_gnome = xyes; then
+    # look for gnome-config
+    AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
+    if test -x ${GNOME_CONFIG}
+    then
+       gnome_CFLAGS="${gnome_CFLAGS} `${GNOME_CONFIG} --cflags gtk gnomeui`"
+       gnome_LDFLAGS="${gnome_LDFLAGS} `${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`"
+    fi
+    # now look for the gnome.h header
+    CPPFLAGS="$save_CPPFLAGS $gnome_CFLAGS"
+    AC_CHECK_HEADERS(gnome.h, [
+      PLUGINS="${PLUGINS} gnome"
+      ALIASES="${ALIASES} gnome-vlc"
+     ],[
+      AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
+developement tools or remove the --enable-gnome option])
+     ])
+    CPPFLAGS="$save_CPPFLAGS"
+  fi])
+
 dnl
 dnl  Qt module
 dnl
 dnl
 dnl  Qt module
 dnl
@@ -850,7 +1545,8 @@ AC_ARG_ENABLE(qt,
   [if test x$enable_qt = xyes; then
      PLUGINS="${PLUGINS} qt"
      ALIASES="${ALIASES} qvlc"
   [if test x$enable_qt = xyes; then
      PLUGINS="${PLUGINS} qt"
      ALIASES="${ALIASES} qvlc"
-     LIB_QT="-lqt -L${QTDIR}/lib"
+     qt_LDFLAGS="${qt_LDFLAGS} -lqt -L${QTDIR}/lib"
+     qt_CFLAGS="${qt_CFLAGS} -I/usr/include/qt -I${QTDIR}/include"
      if test -x ${QTDIR}/bin/moc
      then
        MOC=${QTDIR}/bin/moc
      if test -x ${QTDIR}/bin/moc
      then
        MOC=${QTDIR}/bin/moc
@@ -867,7 +1563,9 @@ AC_ARG_ENABLE(kde,
   [if test x$enable_kde = xyes; then
      PLUGINS="${PLUGINS} kde"
      ALIASES="${ALIASES} kvlc"
   [if test x$enable_kde = xyes; then
      PLUGINS="${PLUGINS} kde"
      ALIASES="${ALIASES} kvlc"
-     LIB_KDE="-L${KDEDIR}/lib -lkfile"
+     kde_LDFLAGS="${kde_LDFLAGS} -L${KDEDIR}/lib -lkfile"
+     kde_CFLAGS="${kde_CFLAGS} -I/usr/include/kde -I/usr/include/qt"
+     kde_CFLAGS="${kde_CFLAGS} -I${KDEDIR}/include -I${QTDIR}/include"
      if test -x ${QTDIR}/bin/moc
      then
        MOC=${QTDIR}/bin/moc
      if test -x ${QTDIR}/bin/moc
      then
        MOC=${QTDIR}/bin/moc
@@ -877,130 +1575,246 @@ AC_ARG_ENABLE(kde,
    fi])
 
 dnl
    fi])
 
 dnl
-dnl  Gnome module
+dnl  Opie QT embedded module
 dnl
 dnl
-AC_ARG_ENABLE(gnome,
-  [  --enable-gnome          Gnome interface support (default disabled)],
-  [if test x$enable_gnome = xyes; then
-    # look for gnome-config
-    AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
-    if test -x ${GNOME_CONFIG}
+AC_ARG_ENABLE(opie,
+  [  --enable-opie           Qt embedded interface support (default disabled)],
+  [if test "x${enable_opie}" = "xyes"; then
+     AC_ARG_WITH(qte,
+     [    --with-qte=PATH    Qt Embedded headers and libraries])
+     if test "x${with_qte}" = "x"
+     then
+       test_LDFLAGS="-L${QTDIR}/lib"
+       test_CFLAGS="-I${QTDIR}/include"
+     else
+       test_LDFLAGS="-L${with_qte}/lib"
+       test_CFLAGS="-I${with_qte}/include"
+     fi
+
+     PLUGINS="${PLUGINS} opie"
+     opie_LDFLAGS="${opie_LDFLAGS} ${test_LDFLAGS} -lqpe -lqte"
+     opie_CFLAGS="${opie_CFLAGS} ${test_CFLAGS}-DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti"
+     if test -x ${QTDIR}/bin/moc
+     then
+       MOC=${QTDIR}/bin/moc
+     else
+       MOC=moc
+     fi
+   fi])
+
+dnl
+dnl  MacOS X module
+dnl
+AC_ARG_ENABLE(macosx,
+  [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
+  [if test x$enable_macosx = xyes
+   then
+     BUILTINS="${BUILTINS} macosx"
+     macosx_LDFLAGS="${macosx_LDFLAGS} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework AGL -framework QuickTime -lobjc -ObjC"
+   fi],
+  [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
+     BUILTINS="${BUILTINS} macosx"
+     macosx_LDFLAGS="${macosx_LDFLAGS} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework AGL -framework QuickTime -lobjc -ObjC"
+   )])
+
+dnl
+dnl  QNX RTOS module
+dnl
+AC_ARG_ENABLE(qnx,
+  [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
+    if test x$enable_qnx != xno
     then
     then
-       CFLAGS_GNOME="`${GNOME_CONFIG} --cflags gnomeui`"
-       LIB_GNOME="`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`"
+      AC_CHECK_HEADERS(Ph.h, [
+        PLUGINS="${PLUGINS} qnx"
+        qnx_LDFLAGS="${qnx_LDFLAGS} -lasound -lph"
+      ])
     fi
     fi
-    # now look for the gnome.h header
-    saved_CPPFLAGS=$CPPFLAGS
-    CPPFLAGS="$CPPFLAGS $CFLAGS_GNOME"
-    AC_CHECK_HEADERS(gnome.h, [
-      PLUGINS="${PLUGINS} gnome"
-      ALIASES="${ALIASES} gnome-vlc"
-     ],[
-      AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
-developement librairie or remove the --enable-gnome option])
-     ])
-  
-    CPPFLAGS=$saved_CPPFLAGS
-  fi])
 
 dnl
 
 dnl
-dnl  Gtk+ module
+dnl  Windows native interface module, built with Borland C++ Builder
 dnl
 dnl
-AC_ARG_ENABLE(gtk,
-  [  --disable-gtk           Gtk+ support (default enabled)])
-if test x$enable_gtk != xno
+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} intfwin"
+  fi ])
+
+dnl
+dnl  ncurses module
+dnl
+AC_ARG_ENABLE(ncurses,
+  [  --enable-ncurses        ncurses interface support (default disabled)],
+  [if test x$enable_ncurses = xyes; then
+     PLUGINS="${PLUGINS} ncurses"
+     ncurses_LDFLAGS="${ncurses_LDFLAGS} -lncurses"
+   fi])
+
+dnl
+dnl  Lirc plugin
+dnl
+AC_ARG_ENABLE(lirc,
+  [  --enable-lirc           lirc support (default disabled)])
+if test x$enable_lirc = xyes
 then
 then
-  # look for gtk-config
-  AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
-  if test -x ${GTK_CONFIG}
+  AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
+  if test x$have_lirc = xtrue
   then
   then
-    CFLAGS_GTK="`${GTK_CONFIG} --cflags gtk`"
-    LIB_GTK="`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`"
+    PLUGINS="${PLUGINS} lirc"
+    lirc_LDFLAGS="${lirc_LDFLAGS} -llirc_client"
   fi
   fi
-  # now look for the gtk.h header
-  saved_CPPFLAGS=$CPPFLAGS
-  CPPFLAGS="$CPPFLAGS $CFLAGS_GTK"
-  AC_CHECK_HEADERS(gtk/gtk.h, [
-    PLUGINS="${PLUGINS} gtk"
-    ALIASES="${ALIASES} gvlc"
-  ])
-  CPPFLAGS=$saved_CPPFLAGS
 fi
 
 fi
 
+AC_ARG_WITH(,[Misc options:])
+
 dnl
 dnl
-dnl  X11 module
+dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
 dnl
 dnl
-AC_ARG_ENABLE(x11,
-  [  --disable-x11           X11 support (default enabled)])
-if test x$enable_x11 != xno; then
-  if test x$x_includes = xNONE; then
-    x_includes=/usr/X11R6/include
-  fi
-  if test x$x_libraries = xNONE; then
-    x_libraries=/usr/X11R6/lib
-  fi
-  saved_CPPFLAGS=$CPPFLAGS
-  CPPFLAGS="$CPPFLAGS -I$x_includes"
-  AC_CHECK_HEADERS(X11/Xlib.h, [
-    PLUGINS="${PLUGINS} x11"
-    LIB_X11="-L$x_libraries -lX11 -lXext"
-    CFLAGS_X11="-I$x_includes"
-  ]
-  CPPFLAGS=$saved_CPPFLAGS)
+dnl  We give the user the opportunity to specify
+dnl  --with-words=big or --with-words=little ; otherwise, try to guess
+dnl
+AC_ARG_WITH(words,
+  [  --with-words=endianness set endianness (big or little)])
+  case "x$with_words" in
+    xbig)
+      ac_cv_c_bigendian=yes
+      ;;
+    xlittle)
+      ac_cv_c_bigendian=no
+      ;;
+    *)
+      dnl  Try to guess endianness by matching patterns on a compiled
+      dnl  binary, by looking for an ASCII or EBCDIC string
+      AC_CACHE_CHECK([whether the byte order is big-endian],
+        [ac_cv_c_bigendian],
+        [ac_cv_c_bigendian=unknown
+        [cat >conftest.c <<EOF
+        short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
+        short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
+        void _a(void) { char*s = (char*)am; s = (char *)ai; }
+        short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
+        short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
+        void _e(void) { char*s = (char*)em; s = (char*)ei; }
+        int main(void) { _a(); _e(); return 0; }
+EOF
+        ]
+        if test -f conftest.c
+        then 
+          if ${CC-cc} -c conftest.c -o conftest.o >config.log 2>&1 \
+              && test -f conftest.o
+          then
+            if test "`strings conftest.o | grep BIGenDianSyS`"
+            then
+              ac_cv_c_bigendian=yes
+            fi
+            if test "`strings conftest.o | grep LiTTleEnDian`"
+            then
+              ac_cv_c_bigendian=no
+            fi
+          fi
+        fi
+      ])
+      if test x$ac_cv_c_bigendian = xunknown
+      then
+        AC_MSG_ERROR([Could not guess endianness, please use --with-words])
+      fi
+      ;;
+  esac
+dnl  Now we know what to use for endianness, just put it in the header
+if test $ac_cv_c_bigendian = yes
+then
+  AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
 fi
 
 dnl
 fi
 
 dnl
-dnl  XVideo module
+dnl  Profiling
 dnl
 dnl
-AC_ARG_ENABLE(xvideo,
-  [  --disable-xvideo        XVideo support (default enabled)])
-if test x$enable_xvideo != xno; then
-  if test x$x_includes = xNONE; then
-    x_includes=/usr/X11R6/include
-  fi
-  if test x$x_libraries = xNONE; then
-    x_libraries=/usr/X11R6/lib
+GPROF=0
+AC_ARG_ENABLE(gprof,
+[  --enable-gprof          gprof profiling (default disabled)],
+[ if test "x$enable_gprof" = "xyes"; then GPROF=1; fi ])
+
+CPROF=0
+AC_ARG_ENABLE(cprof,
+[  --enable-cprof          cprof profiling (default disabled)],
+[ if test "x$enable_cprof" = "xyes";
+  then
+    LDFLAGS="${LDFLAGS} -lcprof"
+    CPROF=1
   fi
   fi
-  saved_CPPFLAGS=$CPPFLAGS
-  CPPFLAGS="$CPPFLAGS -I$x_includes"
-  AC_CHECK_HEADERS(X11/extensions/Xv.h, [
-    PLUGINS="${PLUGINS} xvideo"
-    LIB_XVIDEO="-L$x_libraries -lX11 -lXext -lXv"
-    CFLAGS_X11="-I$x_includes"
-  ]
-  CPPFLAGS=$saved_CPPFLAGS)
-fi
+])
 
 dnl
 
 dnl
-dnl  ALSA module
+dnl  GNU portable threads
 dnl
 dnl
-AC_ARG_ENABLE(alsa,
-  [  --enable-alsa           Alsa sound drivers support (Only for linux)
-                          (default disabled)],
-  [if test x$enable_alsa = xyes
-   then
-     AC_CHECK_HEADER(sys/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"
-       LIB_ALSA="-lasound"
-     fi
-   fi])
+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  end of non-BeOS stuff
-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])
+])
+
+LDFLAGS="${LDFLAGS} ${THREAD_LIB}"
 
 dnl
 dnl  Plug-ins - this must be AT THE END
 dnl
 AC_ARG_ENABLE(plugins,
 
 dnl
 dnl  Plug-ins - this must be AT THE END
 dnl
 AC_ARG_ENABLE(plugins,
-  [  --disable-plugins       Make all plug-ins built-in (default plug-ins enabled)],
+  [  --disable-plugins       make all plug-ins built-in (default plug-ins enabled)],
   [if test x$enable_plugins = xno
    then
      BUILTINS="${BUILTINS} ${PLUGINS}"
      PLUGINS=
    fi])
 
   [if test x$enable_plugins = xno
    then
      BUILTINS="${BUILTINS} ${PLUGINS}"
      PLUGINS=
    fi])
 
+dnl Automagically disable plug-ins if there is no system support for .so files
+dnl don't forget vlc-win32 still can load .so as plugins
+if test x$ac_cv_header_dlfcn_h = xno -a x$ac_cv_header_image_h = xno -a x$SYS != xmingw32
+then
+  echo "*** Your system doesn't have plug-in support. All plug-ins will be compiled"
+  echo "as built-in"
+  BUILTINS="${BUILTINS} ${PLUGINS}"
+  PLUGINS=
+fi
+
+dnl
+dnl  Stuff used by the program
+dnl
+AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "vlc $VERSION $CODENAME Copyright 1996-2002 VideoLAN", [Simple version string])
+AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VideoLAN Client - version $VERSION $CODENAME - (c) 1996-2002 VideoLAN", [Copyright string])
+
+VLC_SYMBOL="`echo ${VERSION} | tr .- __`"
+AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__MODULE_$VLC_SYMBOL", [String suffix for module functions])
+AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $VLC_SYMBOL, [Symbol suffix for module functions])
+
+DATA_PATH="${ac_tool_prefix}/share/videolan"
+AC_SUBST(DATA_PATH)
+PLUGIN_PATH="${ac_tool_prefix}/share/videolan"
+AC_SUBST(PLUGIN_PATH)
 
 dnl 
 dnl  Configuration is finished
 
 dnl 
 dnl  Configuration is finished
@@ -1010,110 +1824,123 @@ AC_SUBST(ARCH)
 AC_SUBST(PLUGINS)
 AC_SUBST(BUILTINS)
 AC_SUBST(ALIASES)
 AC_SUBST(PLUGINS)
 AC_SUBST(BUILTINS)
 AC_SUBST(ALIASES)
-AC_SUBST(DEFINE)
-AC_SUBST(INCLUDE)
 AC_SUBST(DEBUG)
 AC_SUBST(ASM)
 AC_SUBST(DEBUG)
 AC_SUBST(ASM)
-AC_SUBST(TRACE)
 AC_SUBST(CPROF)
 AC_SUBST(GPROF)
 AC_SUBST(OPTIMS)
 AC_SUBST(TUNING)
 AC_SUBST(CPROF)
 AC_SUBST(GPROF)
 AC_SUBST(OPTIMS)
 AC_SUBST(TUNING)
-AC_SUBST(NEED_GETOPT)
+AC_SUBST(RELEASE)
 AC_SUBST(MOC)
 AC_SUBST(WINDRES)
 AC_SUBST(MOC)
 AC_SUBST(WINDRES)
+AC_SUBST(BCBUILDER)
+AC_SUBST(PACKAGE)
+AC_SUBST(VERSION)
+AC_SUBST(NEED_GETOPT)
 
 
-AC_SUBST(LCFLAGS)
-AC_SUBST(PLCFLAGS)
-AC_SUBST(SOFLAGS)
-
-AC_SUBST(LIB)
-AC_SUBST(LIB_ALSA)
-AC_SUBST(LIB_ALTIVEC)
-AC_SUBST(LIB_BEOS)
-AC_SUBST(LIB_DARWIN)
-AC_SUBST(LIB_DVD)
-AC_SUBST(LIB_DVD_PLUGIN)
-AC_SUBST(LIB_ESD)
-AC_SUBST(LIB_GGI)
-AC_SUBST(LIB_GLIDE)
-AC_SUBST(LIB_GNOME)
-AC_SUBST(LIB_GTK)
-AC_SUBST(LIB_LIBDVDCSS)
-AC_SUBST(LIB_KDE)
-AC_SUBST(LIB_MACOSX)
-AC_SUBST(LIB_QNX)
-AC_SUBST(LIB_NCURSES)
-AC_SUBST(LIB_QT)
-AC_SUBST(LIB_TS)
-AC_SUBST(LIB_SDL)
-AC_SUBST(LIB_DIRECTX)
-AC_SUBST(LIB_X11)
-AC_SUBST(LIB_XVIDEO)
-AC_SUBST(LIB_YUV)
-
-AC_SUBST(CFLAGS_VLC)
-AC_SUBST(CFLAGS_ALTIVEC)
-AC_SUBST(CFLAGS_DVD)
-AC_SUBST(CFLAGS_LIBDVDCSS)
-AC_SUBST(CFLAGS_GTK)
-AC_SUBST(CFLAGS_SDL)
-AC_SUBST(CFLAGS_X11)
-
-AC_SUBST(OBJ_DVD)
-AC_SUBST(OBJ_LIBDVDCSS)
-
-AC_SUBST(NEED_LIBDVDCSS)
-
-AC_OUTPUT([Makefile.opts include/config.h])
+AC_SUBST(CFLAGS_OPTIM)
+AC_SUBST(CFLAGS_OPTIM_NODEBUG)
+AC_SUBST(LDFLAGS)
+
+AC_SUBST(vlc_CFLAGS)
+AC_SUBST(plugins_CFLAGS)
+AC_SUBST(builtins_CFLAGS)
+
+AC_SUBST(a52_CFLAGS)
+AC_SUBST(arts_CFLAGS)
+AC_SUBST(dvd_CFLAGS)
+AC_SUBST(dvdread_CFLAGS)
+AC_SUBST(mpeg_ts_dvbpsi_CFLAGS)
+AC_SUBST(directx_CFLAGS)
+AC_SUBST(esd_CFLAGS)
+AC_SUBST(familiar_CFLAGS)
+AC_SUBST(ffmpeg_CFLAGS)
+AC_SUBST(glide_CFLAGS)
+AC_SUBST(gnome_CFLAGS)
+AC_SUBST(gtk_CFLAGS)
+AC_SUBST(kde_CFLAGS)
+AC_SUBST(idctaltivec_CFLAGS)
+AC_SUBST(macosx_CFLAGS)
+AC_SUBST(mad_CFLAGS)
+AC_SUBST(memcpyaltivec_CFLAGS)
+AC_SUBST(motionaltivec_CFLAGS)
+AC_SUBST(opie_CFLAGS)
+AC_SUBST(qt_CFLAGS)
+AC_SUBST(qte_CFLAGS)
+AC_SUBST(sdl_CFLAGS)
+AC_SUBST(x11_CFLAGS)
+AC_SUBST(xvideo_CFLAGS)
+
+AC_SUBST(vlc_LDFLAGS)
+AC_SUBST(plugins_LDFLAGS)
+AC_SUBST(builtins_LDFLAGS)
+
+AC_SUBST(a52_LDFLAGS)
+AC_SUBST(aa_LDFLAGS)
+AC_SUBST(alsa_LDFLAGS)
+AC_SUBST(arts_LDFLAGS)
+AC_SUBST(beos_LDFLAGS)
+AC_SUBST(chroma_i420_rgb_LDFLAGS)
+AC_SUBST(directx_LDFLAGS)
+AC_SUBST(dsp_LDFLAGS)
+AC_SUBST(dvd_LDFLAGS)
+AC_SUBST(dvdread_LDFLAGS)
+AC_SUBST(mpeg_ts_dvbpsi_LDFLAGS)
+AC_SUBST(esd_LDFLAGS)
+AC_SUBST(familiar_LDFLAGS)
+AC_SUBST(filter_distort_LDFLAGS)
+AC_SUBST(ffmpeg_LDFLAGS)
+AC_SUBST(ggi_LDFLAGS)
+AC_SUBST(glide_LDFLAGS)
+AC_SUBST(gnome_LDFLAGS)
+AC_SUBST(gtk_LDFLAGS)
+AC_SUBST(http_LDFLAGS)
+AC_SUBST(idctaltivec_LDFLAGS)
+AC_SUBST(imdct_LDFLAGS)
+AC_SUBST(imdct3dn_LDFLAGS)
+AC_SUBST(imdctsse_LDFLAGS)
+AC_SUBST(ipv4_LDFLAGS)
+AC_SUBST(ipv6_LDFLAGS)
+AC_SUBST(kde_LDFLAGS)
+AC_SUBST(lirc_LDFLAGS)
+AC_SUBST(macosx_LDFLAGS)
+AC_SUBST(mad_LDFLAGS)
+AC_SUBST(memcpyaltivec_LDFLAGS)
+AC_SUBST(motionaltivec_LDFLAGS)
+AC_SUBST(ncurses_LDFLAGS)
+AC_SUBST(opie_LDFLAGS)
+AC_SUBST(qnx_LDFLAGS)
+AC_SUBST(qt_LDFLAGS)
+AC_SUBST(qte_LDFLAGS)
+AC_SUBST(rc_LDFLAGS)
+AC_SUBST(sdl_LDFLAGS)
+AC_SUBST(vcd_LDFLAGS)
+AC_SUBST(vorbis_LDFLAGS)
+AC_SUBST(waveout_LDFLAGS)
+AC_SUBST(x11_LDFLAGS)
+AC_SUBST(xvideo_LDFLAGS)
+
+AC_OUTPUT([Makefile.config Makefile.opts po/Makefile.in])
 
 echo "
 
 echo "
-global configuration
+vlc configuration
 --------------------
 --------------------
+vlc version           : ${VERSION}
 system                : ${SYS}
 architecture          : ${ARCH}
 optimizations         : ${OPTIMS}
 system                : ${SYS}
 architecture          : ${ARCH}
 optimizations         : ${OPTIMS}
-tuning:               : ${TUNING}"
-
-if test x${HAVE_VLC} = x1
-then
-  echo "
-vlc configuration
------------------
-vlc version           : ${VLC_VERSION}
+tuning                : ${TUNING}
 debug mode            : ${DEBUG}
 debug mode            : ${DEBUG}
-trace mode            : ${TRACE}
+release               : ${RELEASE}
 cprof/gprof support   : ${CPROF}/${GPROF}
 need builtin getopt   : ${NEED_GETOPT}
 built-in modules      :${BUILTINS}
 plug-in modules       :${PLUGINS}
 cprof/gprof support   : ${CPROF}/${GPROF}
 need builtin getopt   : ${NEED_GETOPT}
 built-in modules      :${BUILTINS}
 plug-in modules       :${PLUGINS}
-vlc aliases           :${ALIASES}"
-fi
-
-echo "
-libdvdcss configuration
------------------------
-can be built          : ${CAN_BUILD_LIBDVDCSS}
-will be built         : ${NEED_LIBDVDCSS}"
-if test x${NEED_LIBDVDCSS} = x1
-then
-  echo "need BSDI libdvd      : ${NEED_BSDI_LIBDVD}"
-  echo "link statically       : ${STATIC_LIBDVDCSS}"
-else
-  echo "use dummy replacement : ${DUMMY_LIBDVDCSS}"
-fi
+vlc aliases           :${ALIASES}
 
 
-echo "
 You may now tune Makefile.opts at your convenience, for instance to choose
 which modules get compiled as plugins.
 You may now tune Makefile.opts at your convenience, for instance to choose
 which modules get compiled as plugins.
+
+To build vlc and its plugins, type \`$VLC_MAKE'.
 "
 "
-if test x${HAVE_VLC} = x1
-then
-  echo "To build vlc and its plugins, type \`make vlc'."
-fi
-if test x${HAVE_LIBDVDCSS} = x1
-then
-  echo "To build libdvdcss only, type \`make libdvdcss'."
-fi
-echo ""