]> git.sesse.net Git - vlc/blobdiff - configure.in
* ./plugins/win32/win32.cpp: fixed `--intf intfwin' which wasn't working.
[vlc] / configure.in
index fb34f89d0ba37e503fcfcf389e58087fef226629..23b9d42c5bf3421aad3b42ef5c4cd03d85031b82 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_CANONICAL_SYSTEM
 
 AC_CONFIG_HEADER(include/defs.h)
 
 AC_CANONICAL_SYSTEM
 
-HAVE_VLC=0
-if test -r src/interface/main.c; then
-  HAVE_VLC=1
-  VLC_VERSION="0.2.92-dev"
-  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="1.0.1-dev"
-  AC_SUBST(LIBDVDCSS_VERSION)
-  if test -r extras/libdvdcss/csskeys.h; then
-    AC_DEFINE(HAVE_CSSKEYS,1,css decryption with player keys)
-  fi
-fi
+VERSION="0.3.0"
+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
+
+dnl Find the right ranlib, even when cross-compiling
 AC_CHECK_TOOL(RANLIB, ranlib, :)
 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
 
 dnl Gettext stuff
-ALL_LINGUAS="de fr"
-PACKAGE="vlc"
-VERSION="$VLC_VERSION"
+ALL_LINGUAS="de fr ja no ru nl"
 
 
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
+AC_DEFINE_UNQUOTED(VLC_PACKAGE, "vlc", [Package name])
+AC_DEFINE_UNQUOTED(VLC_VERSION, "$VERSION", [Package version])
 AM_GNU_GETTEXT
 
 dnl AM_PROG_LIBTOOL
 AC_PROG_INSTALL
 
 dnl
 AM_GNU_GETTEXT
 
 dnl AM_PROG_LIBTOOL
 AC_PROG_INSTALL
 
 dnl
-dnl  Endianness check, with a special test for cross-compilation
+dnl  Check the operating system
 dnl
 dnl
-if test x${cross_compiling} != xyes; then
-  AC_C_BIGENDIAN
+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} -fnative-struct -D_OFF_T_ -D_off_t=long"
+    save_LDFLAGS="${save_LDFLAGS} -mwindows -Xlinker --force-exe-suffix"
+    vlc_LDFLAGS="${vlc_LDFLAGS} -lws2_32 -lnetapi32"
+    ipv4_LDFLAGS="${ipv4_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
+    vlc_LDFLAGS="${vlc_LDFLAGS} -lbe"
+    plugins_LDFLAGS="${plugins_LDFLAGS} -nostart"
+    beos_LDFLAGS="${beos_LDFLAGS} -lbe -lgame -lroot -ltracker"
+    ipv4_LDFLAGS="${ipv4_LDFLAGS} -lbind"
+    ;;
+  x*)
+    SYS="${target_os}"
+    ;;
+esac
+
+dnl Flags needed for clean BeOS compilation
+if test x"${SYS}" != xbeos
+then
+  save_CFLAGS="${save_CFLAGS} -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual"
+fi
+
+dnl Flags for plugin compilation
+if test x"${SYS}" = xmingw32
+then
+  plugins_CFLAGS="${plugins_CFLAGS} -fnative-struct"
 else
 else
-  dnl  We are crosscompiling, give the user the opportunity to specify
-  dnl  --with-words=big or --with-words=little ; otherwise, try to guess
-  AC_ARG_WITH(words,
-    [  --with-words=endianness Set endianness (big or little)])
-  case "x$withval" 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_cv_c_bigendian=unknown
-      AC_MSG_CHECKING(what the byte order looks to be)[
-        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} conftest.c -o conftest.o >config.log 2>&1 \
-            && test -f conftest.o
-        then
-          if test `grep -l BIGenDianSyS conftest.o`
-          then
-            AC_MSG_RESULT("big endian")
-            ac_cv_c_bigendian=yes
-          fi
-          if test `grep -l LiTTleEnDian conftest.o`
-          then
-            AC_MSG_RESULT("little endian")
-            ac_cv_c_bigendian=no
-          fi
-        fi
-      fi
-      if test $ac_cv_c_bigendian = xunknown
-      then
-        AC_MSG_ERROR([Could not guess endianness, please use --with-words])
-      fi
-      dnl  Now we know what to use for endianness, just put it in the header
-      if test $ac_cv_c_bigendian = yes
-      then
-        cat >> confdefs.h <<\EOF
-#define WORDS_BIGENDIAN 1
-EOF
-      fi
-      ;;
-  esac
+  plugins_CFLAGS="${plugins_CFLAGS} -fPIC"
 fi
 
 fi
 
+dnl The -DSYS_FOO flag
+save_CFLAGS="${save_CFLAGS} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr '[a-z].' '[A-Z]_'`"
+
 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 usleep vasprintf swab sigrelse getpwuid memalign posix_memalign)
+
 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_FUNC(nanosleep,,[
-  AC_CHECK_LIB(rt,nanosleep,LIB="${LIB} -lrt",[
-    AC_CHECK_LIB(posix4,nanosleep,LIB="${LIB} -lposix4")
+  AC_CHECK_LIB(rt,nanosleep,vlc_LDFLAGS="${vlc_LDFLAGS} -lrt",[
+    AC_CHECK_LIB(posix4,nanosleep,vlc_LDFLAGS="${vlc_LDFLAGS} -lposix4")
   ])
 ])
   ])
 ])
-AC_CHECK_FUNCS(usleep)
 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,vlc_LDFLAGS="${vlc_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,cos,LIB_IMDCT="${LIB_IMDCT} -lm")
-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
@@ -175,16 +189,37 @@ 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(getopt.h strings.h)
 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/time.h sys/times.h)
 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/time.h sys/times.h)
-AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.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 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],
@@ -205,13 +240,91 @@ 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 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
@@ -220,41 +333,14 @@ 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
-fi
-
 dnl Checks for __attribute__(aligned()) directive
 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
     [ac_cv_c_attribute_aligned],
     [ac_cv_c_attribute_aligned=0
 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"
+        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;],
     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;],
@@ -267,6 +353,7 @@ fi
 
 dnl End of the bizarre compilation tests
 CFLAGS="${save_CFLAGS}"
 
 dnl End of the bizarre compilation tests
 CFLAGS="${save_CFLAGS}"
+CPPFLAGS="${save_CPPFLAGS}"
 LDFLAGS="${save_LDFLAGS}"
 
 dnl Check for boolean_t
 LDFLAGS="${save_LDFLAGS}"
 
 dnl Check for boolean_t
@@ -294,25 +381,28 @@ 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_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
-
-
-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} mpeg_es mpeg_ps mpeg_ts memcpy yuv2rgb8 idct idctclassic motion imdct downmix mpeg_adec lpcm_adec ac3_adec mpeg_vdec"
-BUILTINS="${BUILTINS} mpeg_es mpeg_ps mpeg_ts memcpy idct idctclassic motion imdct downmix mpeg_adec lpcm_adec ac3_adec mpeg_vdec"
-PLUGINS="${PLUGINS} ac3_spdif spudec"
+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 file udp http ipv4 memcpy lpcm_adec ac3_spdif spudec filter_deinterlace filter_invert filter_wall filter_transform filter_distort fx_scope"
 
 dnl
 dnl  Accelerated modules
 dnl
 
 dnl
 dnl  Accelerated modules
 dnl
-MMX_MODULES="memcpymmx idctmmx motionmmx"
+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"
 MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext"
 THREEDNOW_MODULES="memcpy3dn imdct3dn downmix3dn"
 SSE_MODULES="imdctsse downmixsse"
@@ -352,6 +442,9 @@ if test x"$ac_cv_sse_inline" != x"no"; then
   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_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
 AC_CACHE_CHECK([if \$CC groks Altivec inline assembly],
     [ac_cv_altivec_inline],
     [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
@@ -366,7 +459,10 @@ AC_CACHE_CHECK([if \$CC groks Altivec inline assembly],
 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
 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
-    CFLAGS_ALTIVEC="$CFLAGS_ALTIVEC $ac_cv_altivec_inline"
+    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
   fi
   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
 fi
@@ -379,7 +475,7 @@ AC_CACHE_CHECK([if \$CC groks Altivec C extensions],
      AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
         ac_cv_c_altivec=-faltivec, [
         # Linux/PPC test
      AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
         ac_cv_c_altivec=-faltivec, [
         # Linux/PPC test
-        CFLAGS="$save_CFLAGS $CFLAGS_ALTIVEC -fvec"
+        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)
         ])
         AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
             [ac_cv_c_altivec="-fvec"], ac_cv_c_altivec=no)
         ])
@@ -387,7 +483,10 @@ AC_CACHE_CHECK([if \$CC groks Altivec C extensions],
     ])
 if test x"$ac_cv_c_altivec" != x"no"; then
   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C altivec extensions.)
     ])
 if test x"$ac_cv_c_altivec" != x"no"; then
   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C altivec extensions.)
-  CFLAGS_ALTIVEC="$CFLAGS_ALTIVEC $ac_cv_c_altivec"
+  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
 
   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
 fi
 
@@ -399,157 +498,22 @@ 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"
-fi
-
-dnl
-dnl  Check the operating system
-dnl
-case ${target_os} in
-  linux*)
-    SYS=linux
-       ;;
-  bsdi*)
-    SYS=bsdi
-    ;;
-  darwin*)
-    SYS=darwin
-    ;;
-  *mingw32*)
-    SYS=mingw32
-    ;;
-  *nto*)
-    SYS=nto
-    LIB_X11="${LIB_X11} -lsocket"
-    LIB_XVIDEO="${LIB_XVIDEO} -lsocket"
-    ;;
-  *)
-    SYS=${target_os}
-    ;;
-esac
-
-dnl
-dnl Windoze specific section
-dnl
-if test $SYS = mingw32; then
-AC_CHECK_TOOL(WINDRES, windres, :)
-LIB_MPEG_TS="-lws2_32"
-LIB_RC="-lws2_32"
+  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
-  OPENBSD_DVD_STRUCT=0
-  dnl
-  dnl Old FreeBSD: sys/cdio.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.)
-    AC_EGREP_HEADER(struct dvd_struct,sys/cdio.h,[
-                    BSD_DVD_STRUCT=1],[LINUX_DVD_STRUCT=1; OPENBSD_DVD_STRUCT=1])
-  ])
-  dnl
-  dnl Newer FreeBSD: sys/dvdio.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.)
-    AC_EGREP_HEADER(struct dvd_struct,sys/dvdio.h,[
-                    BSD_DVD_STRUCT=1],[LINUX_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.)
-    if test x$OPENBSD_DVD_STRUCT = x1; then
-      AC_DEFINE(HAVE_OPENBSD_DVD_STRUCT, 1,
-                Define if OpenBSD-like dvd_struct is defined.)
-    fi
-  else
-    if test x$BSD_DVD_STRUCT = x1; then
-      AC_DEFINE(HAVE_BSD_DVD_STRUCT, 1,
-                Define if FreeBSD-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)])
 if test "x$withval" != "x"; then
     TUNING=$withval
                           (default i686 on IA-32 and 750 on PPC)])
 if test "x$withval" != "x"; then
     TUNING=$withval
@@ -561,29 +525,27 @@ else
 fi
 
 dnl
 fi
 
 dnl
-dnl  Enable release-specific flags
+dnl  x86 accelerations
 dnl
 dnl
-AC_ARG_ENABLE(release,
-[  --enable-release        Activate extra optimizations (default disabled)],
-[ if test x$enableval = xyes; then RELEASE=1; fi ],
-[ VLC_VERSION="${VLC_VERSION}_`date +%Y-%m-%d`";
-  LIBDVDCSS_VERSION="${LIBDVDCSS_VERSION}_`date +%Y-%m-%d`"; ])
+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
-dnl  MMX acceleration
+dnl  Enable/disable optimizations
 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 ])
+AC_ARG_ENABLE(optimizations,
+[  --disable-optimizations disable compiler optimizations (default enabled)],
+[ if test x$enableval = 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)],
+[  --disable-altivec       disable altivec optimizations (default enabled on PPC)],
 [ if test x$enableval = xyes; then ARCH="${ARCH} altivec";
     BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ],
 [ if test x${target_cpu} = xpowerpc; then ARCH="${ARCH} altivec";
 [ if test x$enableval = xyes; then ARCH="${ARCH} altivec";
     BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ],
 [ if test x${target_cpu} = xpowerpc; then ARCH="${ARCH} altivec";
@@ -594,353 +556,304 @@ dnl  Debugging mode
 dnl
 DEBUG=0
 AC_ARG_ENABLE(debug,
 dnl
 DEBUG=0
 AC_ARG_ENABLE(debug,
-[  --enable-debug          Enable debug mode (default disabled)],
+[  --enable-debug          debug mode (default disabled)],
 [ if test x$enableval = xyes; then DEBUG=1; fi ])
 
 dnl
 [ if test x$enableval = xyes; then DEBUG=1; fi ])
 
 dnl
-dnl  Trace mode
-dnl
-TRACE=0
-AC_ARG_ENABLE(trace,
-[  --enable-trace          Enable trace mode (default disabled)],
-[ if test x$enableval = xyes; then TRACE=1; fi ])
-
-dnl
-dnl  Profiling
-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
-])
-
-dnl
-dnl  Enable/disable optimizations
+dnl  Enable release-specific flags
 dnl
 dnl
-AC_ARG_ENABLE(optimizations,
-[  --disable-optimizations Disable compiler optimizations (default enabled)],
-[ if test x$enableval = xno; then OPTIMS=0; fi ],
-[ OPTIMS=1 ])
+RELEASE=0
+AC_ARG_ENABLE(release,
+[  --enable-release        activate extra optimizations (default disabled)],
+[ if test x$enableval = xyes; then RELEASE=1; fi ],
+[ VERSION="${VERSION}_`date +%Y-%m-%d`" ])
 
 dnl
 
 dnl
-dnl  GNU portable threads
+dnl  Input plugins
 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_WITH(,[Input plugins:])
 
 dnl
 
 dnl
-dnl  DVD module: check for installed libdvdcss or local libdvdcss
+dnl  DVD module: optionally check for installed libdvdcss
 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
+AC_ARG_ENABLE(dvd,
+[  --enable-dvd            DVD input module (default enabled)])
+if test "x$enableval" != "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
       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}"
+        dnl  The given directory can't be found
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot cd to ${with_dvdcss_tree}])
       fi
       fi
-    ;;
-    xlocal-shared)
-      # local libdvdcss, dynamically linked
-      if test x${CAN_BUILD_LIBDVDCSS} = x1
+      if test -f "${real_dvdcss_tree}/src/.libs/libdvdcss.a"
       then
       then
-        NEED_LIBDVDCSS=1
+        dnl  Use a custom libdvdcss
+        AC_MSG_RESULT(${real_dvdcss_tree}/src/.libs/libdvdcss.a)
         BUILTINS="${BUILTINS} dvd"
         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"
-      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"
-      then
-        LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} -L"$withval"/lib"
-        CFLAGS_DVD="${CFLAGS_DVD} -I"$withval"/include"
+        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
-      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 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
     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}"
+      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
     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 ])
+      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 DVDREAD module: check for libdvdread plugin
+dnl dvdread module: check for libdvdread plugin
 dnl
 AC_ARG_ENABLE(dvdread,
 dnl
 AC_ARG_ENABLE(dvdread,
-[  --enable-dvdread          Enable dvdread support (default disabled)],
-[ if test x$enableval = xyes
-  then
-    NEED_LIBDVDCSS=1
-    STATIC_LIBDVDCSS=1
-    BUILTINS="${BUILTINS} dvdread" 
-    CFLAGS_DVDREAD="${CFLAGS_DVDREAD} -I../../extras/libdvdread"
-    LIB_DVDREAD="${LIB_DVDREAD} lib/libdvdread.a lib/libdvdcss.a"
-  fi ])
+[  --enable-dvdread        dvdread input module (default disabled)])
+if test "x$enableval" != "xno"
+then
+  AC_ARG_WITH(dvdread, 
+  [    --with-dvdread=PATH   libdvdread headers and libraries])
+  case "x$with_dvdread" in
+  x)
+    AC_CHECK_HEADERS(dvdread/dvd_reader.h,
+      [ PLUGINS="${PLUGINS} dvdread"
+        dvdread_LDFLAGS="${dvdread_LDFLAGS} -ldvdread" ])
+  ;;
+  *)
+    AC_MSG_CHECKING(for dvdread headers in ${withval})
+    if test -f ${withval}/include/dvdread/dvd_reader.h
+    then
+      AC_MSG_RESULT(yes)
+      PLUGINS="${PLUGINS} dvdread"
+      dvdread_LDFLAGS="${dvdread_LDFLAGS} -L${withval}/lib -ldvdread"
+      dvdread_CFLAGS="${dvdread_CFLAGS} -I${withval}/include"
+    else
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([Cannot find ${withval}/dvdread/dvd_reader.h])
+    fi
+  ;;
+  esac
+fi
 
 dnl
 dnl  VCD module
 dnl
 AC_ARG_ENABLE(vcd,
 
 dnl
 dnl  VCD module
 dnl
 AC_ARG_ENABLE(vcd,
-  [  --enable-vcd            VCD support for Linux (default enabled)])
+  [  --enable-vcd            VCD support for Linux and MacOS X (default enabled)])
 
 if test x$enable_vcd != xno
 then
   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
 
 if test x$enable_vcd != xno
 then
   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
-    BUILTINS="${BUILTINS} vcd"
+    PLUGINS="${PLUGINS} vcd"
   ])
   ])
-fi
 
 
-if test x$enable_vcd != xno -a "${SYS}" = "bsdi"
-then
-  BUILTINS="${BUILTINS} vcd"
+  if test "x${SYS}" = "xbsdi"
+  then
+    PLUGINS="${PLUGINS} vcd"
+  fi
+
+  if test "x${SYS}" = "xdarwin"
+  then
+    PLUGINS="${PLUGINS} vcd"
+    vcd_LDFLAGS="${vcd_LDFLAGS} -framework IOKit -framework CoreFoundation" 
+  fi
 fi
 
 dnl
 fi
 
 dnl
-dnl  dummy plugin
+dnl  Satellite input module
 dnl
 dnl
-AC_ARG_ENABLE(dummy,
-  [  --disable-dummy         dummy module (default enabled)])
-
-if test x$enable_dummy != xno
-then
-  BUILTINS="${BUILTINS} dummy"
-fi
+AC_ARG_ENABLE(satellite,
+  [  --enable-satellite      satellite card support (default disabled)],
+  [ if test x$enable_satellite = xyes
+    then
+      BUILTINS="${BUILTINS} satellite"
+      AC_DEFINE(HAVE_SATELLITE, 1, define if compiling with satellite card support)
+    fi])
 
 dnl
 
 dnl
-dnl  null plugin
+dnl  ipv6 plugin
 dnl
 dnl
-AC_ARG_ENABLE(null,
-  [  --disable-null          Null module (default enabled)])
-
-if test x$enable_null != xno
-then
-  BUILTINS="${BUILTINS} null"
-fi
+AC_CHECK_FUNC(inet_pton,[PLUGINS="${PLUGINS} ipv6"])
 
 dnl
 
 dnl
-dnl  rc plugin
+dnl  Codec plugins
 dnl
 dnl
-AC_ARG_ENABLE(rc,
-  [  --disable-rc            Remote Control module (default enabled)])
 
 
-if test x$enable_rc != xno
-then
-  BUILTINS="${BUILTINS} rc"
-fi
+AC_ARG_WITH(,[Codec plugins:])
 
 dnl
 dnl  mad plugin
 dnl
 
 dnl
 dnl  mad plugin
 dnl
-AC_ARG_WITH(mad,
-  [  --with-mad[=PATH]       libmad module (default disabled)],
-  [ if test "x$with_val" != "xno"; then
-      if test -n $with_val; then
-           CFLAGS_MAD="-I$with_val/include"
-        LIB_MAD="-L$with_val/lib -lmad"
-      else
-        LIB_MAD="-lmad"
-      fi
-      save_CFLAGS=$CFLAGS
-      save_LDFLAGS=$LDFLAGS
-      CFLAGS="$CFLAGS $CFLAGS_MAD"
-      LDFLAGS="$LDFLAGS $LIB_MAD"
-      AC_CHECK_HEADERS(mad.h, ,
-      [ echo "Cannot find development headers for libmad..."
-        exit 1
-      ])
-      AC_CHECK_LIB(mad, mad_bit_init, ,
-      [ echo "Cannot find libmad library..."
-        exit 1
-      ])
-      CFLAGS=$save_CFLAGS
-      LDFLAGS=$save_LDFLAGS
-      PLUGINS="${PLUGINS} mad"
-    fi ])
+AC_ARG_ENABLE(mad,
+  [  --enable-mad            libmad module (default disabled)])
+if test x$enable_mad = xyes
+then
+  PLUGINS="${PLUGINS} mad"
+  mad_LDFLAGS="${mad_LDFLAGS} -lmad"
+  AC_ARG_WITH(mad,
+    [    --with-mad=PATH       path to libmad],
+    [ if test "x$with_val" != "xno" -a "x$with_val" != "x"
+      then
+        mad_CFLAGS="${mad_CFLAGS} -I$with_val/include"
+        mad_LDFLAGS="${mad_LDFLAGS} -L$with_val/lib"
+      fi ])
+  save_CFLAGS=$CFLAGS
+  save_LDFLAGS=$LDFLAGS
+  CFLAGS="$CFLAGS $mad_CFLAGS"
+  LDFLAGS="$LDFLAGS $mad_LDFLAGS"
+  AC_CHECK_HEADERS(mad.h, ,
+  [ echo "Cannot find development headers for libmad..."
+    exit 1
+  ])
+  AC_CHECK_LIB(mad, mad_bit_init, ,
+  [ echo "Cannot find libmad library..."
+    exit 1
+  ])
+  CFLAGS=$save_CFLAGS
+  LDFLAGS=$save_LDFLAGS
+fi
 
 dnl special case for BeOS
 if test x$SYS = xbeos
 then
 
 dnl special case for BeOS
 if test x$SYS = xbeos
 then
-    BUILTINS="${BUILTINS} beos"
-    LIB_BEOS="-lbe -lgame -lroot -ltracker"
-    PLCFLAGS="${PLCFLAGS} -nostart"
-
-dnl default case
-else
+    PLUGINS="${PLUGINS} beos"
+fi
 
 dnl
 
 dnl
-dnl  OSS /dev/dsp module
-dnl  (enabled by default except on win32)
+dnl  a52 AC3 decoder plugin
 dnl
 dnl
-AC_ARG_ENABLE(dsp,
-  [  --disable-dsp           Linux /dev/dsp support (default enabled)])
-
-if test x$enable_dsp != xno &&
-  (test $SYS != mingw32 || test x$enable_dsp = xyes)
-then
-  if test -c /dev/dsp
+AC_ARG_ENABLE(a52,
+  [  --enable-a52            AC3 support with liba52 (default enabled)])
+if test "x$enableval" != "xno" -a x$SYS != xmingw32
   then
   then
-    PLUGINS="${PLUGINS} dsp"
-  fi
+    AC_CHECK_HEADERS(a52dec/a52.h, [
+      BUILTINS="${BUILTINS} a52"
+      a52_LDFLAGS="${a52_LDFLAGS} -la52 -lm"
+     ],[])
 fi
 
 dnl
 fi
 
 dnl
-dnl  Esound module
+dnl  ogg vorbis plugin
 dnl
 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"
-       CFLAGS_ESD="`${ESD_CONFIG} --cflags`"
-       LIB_ESD="`${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"
-       CFLAGS_ARTS="`${ARTS_CONFIG} --cflags`"
-       LIB_ARTS="`${ARTS_CONFIG} --libs `"
-     fi
-   fi])
+AC_ARG_ENABLE(vorbis,
+  [  --enable-vorbis         Ogg/Vorbis decoder support (default enabled)])
+if test "x$enableval" != "xno"
+then
+  AC_CHECK_HEADERS(ogg/ogg.h, [
+    PLUGINS="${PLUGINS} vorbis"
+    vorbis_LDFLAGS="${vorbis_LDFLAGS} -lvorbis"
+   ],[])
+fi
 
 dnl
 
 dnl
-dnl  MacOS X module
+dnl  Video plugins
 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 Cocoa -framework AGL -framework QuickTime"
-     LIB="${LIB} -ObjC"
-   fi],
-  [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
-     BUILTINS="${BUILTINS} macosx"
-     LIB_MACOSX="-framework CoreAudio -framework Cocoa -framework AGL -framework QuickTime"
-     LIB="${LIB} -ObjC"
-   )])
 
 
-dnl
-dnl  QNX RTOS module
-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)],
+    [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
     [ if test "x$withval" != "xno"
       then
         SDL_PATH=$withval:$PATH
     [ if test "x$withval" != "xno"
       then
         SDL_PATH=$withval:$PATH
@@ -962,17 +875,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.
@@ -991,60 +903,263 @@ dnl
 dnl  Windows DirectX module
 dnl
 AC_ARG_ENABLE(directx,
 dnl  Windows DirectX module
 dnl
 AC_ARG_ENABLE(directx,
-  [  --disable-directx       Windows DirectX support (default enabled on WIN32)])
+  [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
 if test "x$enableval" != "xno"
 then
 if test "x$enableval" != "xno"
 then
-  if test $SYS = mingw32
+  if test x$SYS = xmingw32
   then
   then
-    AC_ARG_WITH(directx-path
-    [  --with-directx-path=path Windows DirectX headers and libraries])
-    if test "x$with_directx_path" = "x"
+    AC_ARG_WITH(directx, 
+    [    --with-directx=PATH   Win32 DirectX headers and libraries])
+    if test "x$with_directx" = "x"
     then
     then
-      AC_CHECK_HEADERS(directx.h,
+      AC_CHECK_HEADERS(ddraw.h,
       [ PLUGINS="${PLUGINS} directx"
       [ PLUGINS="${PLUGINS} directx"
-        LIB_DIRECTX="-lgdi32 -ldxguid" ])
+        directx_LDFLAGS="${directx_LDFLAGS} -lgdi32" ])
     else
       AC_MSG_CHECKING(for directX headers in ${withval})
     else
       AC_MSG_CHECKING(for directX headers in ${withval})
-      if test -f ${withval}/include/directx.h
+      if test -f ${withval}/ddraw.h
       then
         PLUGINS="${PLUGINS} directx"
       then
         PLUGINS="${PLUGINS} directx"
-        LIB_DIRECTX="-L${withval}/lib -lgdi32 -ldxguid"
-        INCLUDE="${INCLUDE} -I${withval}/include"
+        directx_LDFLAGS="${directx_LDFLAGS} -L${withval}/lib -lgdi32"
+        directx_CFLAGS="${directx_CFLAGS} -I${withval}"
         AC_MSG_RESULT(yes)
       else
         AC_MSG_RESULT(no)
         AC_MSG_RESULT(yes)
       else
         AC_MSG_RESULT(no)
-        AC_MSG_ERROR([Cannot find ${withval}/include/directx.h!])
+        AC_MSG_ERROR([Cannot find ${withval}/ddraw.h!])
       fi
     fi
   fi
 fi
 
 dnl
       fi
     fi
   fi
 fi
 
 dnl
-dnl  Glide module
+dnl  Linux framebuffer module
 dnl
 dnl
-AC_ARG_WITH(glide,
-  [  --with-glide[=name]     Glide (3dfx) support (default disabled)],
-  [ if test "x$withval" != "xno"
+AC_ARG_ENABLE(fb,
+  [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
+    if test x$enable_fb != xno
     then
     then
-      PLUGINS="${PLUGINS} glide"
-      if test "x$withval" != "xyes"
-      then
-        LIB_GLIDE="-l"$withval" -lm"
-      else
-        LIB_GLIDE="-lglide2x -lm"
-      fi
+      AC_CHECK_HEADERS(linux/fb.h, [
+        PLUGINS="${PLUGINS} fb"
+      ])
+    fi
+
+dnl
+dnl  Linux MGA module
+dnl
+AC_ARG_ENABLE(mga,
+  [  --enable-mga            Linux kernel Matrox support (default disabled)],
+  [ if test x$enable_mga = xyes
+    then
+      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_val" != "xno" -a "x$with_val" != "x"
+      then
+        CFLAGS_GGI="${CFLAGS_GGI} -I$with_val/include"
+        ggi_LDFLAGS="${ggi_LDFLAGS} -L$with_val/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_val" != "xno" -a "x$with_val" != "x"
+      then
+        glide_CFLAGS="${glide_CFLAGS} -I$with_val/include"
+        glide_LDFLAGS="${glide_LDFLAGS} -L$with_val/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])
 
    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])
+
+dnl
+dnl  win32 waveOut plugin
+dnl
+AC_ARG_ENABLE(waveout,
+  [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
+if test "x$enableval" != "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$withval" != "xno"
+      then
+        GTK_PATH=$withval:$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  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
@@ -1053,7 +1168,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
@@ -1070,7 +1186,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
@@ -1080,147 +1198,222 @@ AC_ARG_ENABLE(kde,
    fi])
 
 dnl
    fi])
 
 dnl
-dnl  Gnome module
+dnl  MacOS X 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(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 Cocoa -framework AGL -framework QuickTime -lobjc"
+     macosx_CFLAGS="${macosx_CFLAGS} -ObjC"
+     LDFLAGS="${LDFLAGS} -ObjC"
+   fi],
+  [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
+     BUILTINS="${BUILTINS} macosx"
+     macosx_LDFLAGS="${macosx_LDFLAGS} -framework CoreAudio -framework AudioToolbox -framework Cocoa -framework AGL -framework QuickTime -lobjc"
+     macosx_CFLAGS="${macosx_CFLAGS} -ObjC"
+     LDFLAGS="${LDFLAGS} -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$enableval" != "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
-  GTK_PATH=$PATH
-  AC_ARG_WITH(gtk-config-path,
-    [  --with-gtk-config-path=path gtk-config path (default search in \$PATH)],
-    [ if test "x$withval" != "xno"
-      then
-        GTK_PATH=$withval:$PATH
-      fi ])
-  # look for gtk-config
-  AC_PATH_PROG(GTK_CONFIG, gtk-config, no, $GTK_PATH)
-  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,,'`"
-  fi
-  # now look for the gtk.h header
-  saved_CPPFLAGS=$CPPFLAGS
-  CPPFLAGS="$CPPFLAGS $CFLAGS_GTK"
-  FOUND=
-  AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, ,
-  [
-    FOUND=no
-       echo "Cannot find gtk development headers."
-  ])
-  if test -z $FOUND; then
-    PLUGINS="${PLUGINS} gtk"
-    ALIASES="${ALIASES} gvlc"
+    PLUGINS="${PLUGINS} lirc"
+    lirc_LDFLAGS="${lirc_LDFLAGS} -llirc_client"
   fi
   fi
-  CPPFLAGS=$saved_CPPFLAGS
 fi
 
 fi
 
+AC_ARG_WITH(,[Misc options:])
+
 dnl
 dnl
-dnl  X11 module
-dnl  (enabled by default except on win32)
+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 &&
-  (test $SYS != mingw32 || 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
-  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$withval" 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} 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  (enabled by default except on win32)
+dnl  Profiling
 dnl
 dnl
-AC_ARG_ENABLE(xvideo,
-  [  --disable-xvideo        XVideo support (default enabled)])
-if test x$enable_xvideo != xno &&
-  (test $SYS != mingw32 || 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
+GPROF=0
+AC_ARG_ENABLE(gprof,
+[  --enable-gprof          gprof profiling (default disabled)],
+[ if test x$enableval = xyes; then GPROF=1; fi ])
+
+CPROF=0
+AC_ARG_ENABLE(cprof,
+[  --enable-cprof          cprof profiling (default disabled)],
+[ if test x$enableval = xyes;
+  then
+    LDFLAGS="${LDFLAGS} -lcprof"
+    CPROF=1
   fi
   fi
-  saved_CPPFLAGS=$CPPFLAGS
-  CPPFLAGS="$CPPFLAGS -I$x_includes"
-  AC_CHECK_HEADERS(X11/extensions/Xv.h, [
-    BUILTINS="${BUILTINS} 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(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"
-       LIB_ALSA="-lasound"
-     fi
-   fi])
+AC_ARG_ENABLE(pth,
+  [  --enable-pth            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])
+])
 
 
-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$enableval = 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\n", [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
@@ -1230,124 +1423,110 @@ 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(RELEASE)
 AC_SUBST(CPROF)
 AC_SUBST(GPROF)
 AC_SUBST(OPTIMS)
 AC_SUBST(TUNING)
 AC_SUBST(RELEASE)
-AC_SUBST(NEED_GETOPT)
 AC_SUBST(MOC)
 AC_SUBST(WINDRES)
 AC_SUBST(MOC)
 AC_SUBST(WINDRES)
-AC_SUBST(PACKAGE)
-AC_SUBST(VERSION)
-
-AC_SUBST(LCFLAGS)
-AC_SUBST(PLCFLAGS)
-AC_SUBST(SOFLAGS)
-
-AC_SUBST(LIB)
-AC_SUBST(LIB_ALSA)
-AC_SUBST(LIB_ALTIVEC)
-AC_SUBST(LIB_ARTS)
-AC_SUBST(LIB_BEOS)
-AC_SUBST(LIB_DARWIN)
-AC_SUBST(LIB_DIRECTX)
-AC_SUBST(LIB_DVD)
-AC_SUBST(LIB_DVD_PLUGIN)
-AC_SUBST(LIB_DVDREAD)
-AC_SUBST(LIB_DVDREAD_PLUGIN)
-AC_SUBST(LIB_ESD)
-AC_SUBST(LIB_GGI)
-AC_SUBST(LIB_GLIDE)
-AC_SUBST(LIB_GNOME)
-AC_SUBST(LIB_GTK)
-AC_SUBST(LIB_KDE)
-AC_SUBST(LIB_LIBDVDCSS)
-AC_SUBST(LIB_MACOSX)
-AC_SUBST(LIB_MAD)
-AC_SUBST(LIB_MPEG_TS)
-AC_SUBST(LIB_NCURSES)
-AC_SUBST(LIB_QNX)
-AC_SUBST(LIB_QT)
-AC_SUBST(LIB_RC)
-AC_SUBST(LIB_SDL)
-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_DVDREAD)
-AC_SUBST(CFLAGS_LIBDVDCSS)
-AC_SUBST(CFLAGS_ARTS)
-AC_SUBST(CFLAGS_ESD)
-AC_SUBST(CFLAGS_GTK)
-AC_SUBST(CFLAGS_MAD)
-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 po/Makefile.in])
-#AC_OUTPUT([Makefile.opts include/config.h intl/Makefile po/Makefile.in])
+AC_SUBST(BCBUILDER)
+AC_SUBST(VLC_PACKAGE)
+AC_SUBST(VLC_VERSION)
+AC_SUBST(NEED_GETOPT)
+
+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(arts_CFLAGS)
+AC_SUBST(dvd_CFLAGS)
+AC_SUBST(dvdread_CFLAGS)
+AC_SUBST(directx_CFLAGS)
+AC_SUBST(esd_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(qt_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(esd_LDFLAGS)
+AC_SUBST(filter_distort_LDFLAGS)
+AC_SUBST(ggi_LDFLAGS)
+AC_SUBST(glide_LDFLAGS)
+AC_SUBST(gnome_LDFLAGS)
+AC_SUBST(gtk_LDFLAGS)
+AC_SUBST(idctaltivec_LDFLAGS)
+AC_SUBST(imdct_LDFLAGS)
+AC_SUBST(imdct3dn_LDFLAGS)
+AC_SUBST(imdctsse_LDFLAGS)
+AC_SUBST(ipv4_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(qnx_LDFLAGS)
+AC_SUBST(qt_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.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}
-release:              : ${RELEASE}"
-
-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 ""