]> git.sesse.net Git - vlc/blobdiff - configure.ac.in
* ./ipkg/Makefile.in: removed a file handled by automake.
[vlc] / configure.ac.in
index f2bf49357bb2c46edfa278794ba3b60f67407334..ce208b7cc26693909436ed00bc1950035ab95bd5 100644 (file)
@@ -122,12 +122,16 @@ case "x${target_os}" in
     esac
 
     if test "x$SYS" = "xmingw32"; then
+        # add ws2_32 for closesocket, select, recv
         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"
         CPPFLAGS="${CPPFLAGS_save}"
         LDFLAGS_vlc="${LDFLAGS_vlc} -lws2_32 -lnetapi32 -mwindows"
         LDFLAGS_ipv4="${LDFLAGS_ipv4} -lws2_32"
         LDFLAGS_ipv6="${LDFLAGS_ipv6} -lws2_32"
-        LDFLAGS_access_http="${LDFLAGS_http} -lws2_32"
+        LDFLAGS_access_http="${LDFLAGS_access_http} -lws2_32"
+        LDFLAGS_access_mms="${LDFLAGS_access_mms} -lws2_32"
+        LDFLAGS_access_rtp="${LDFLAGS_access_rtp} -lws2_32"
+        LDFLAGS_access_udp="${LDFLAGS_access_udp} -lws2_32"
         LDFLAGS_rc="${LDFLAGS_rc} -lws2_32"
     fi
     ;;
@@ -150,7 +154,11 @@ case "x${target_os}" in
     LDFLAGS_vlc="${LDFLAGS_vlc} -lbe"
     LDFLAGS_plugins="${LDFLAGS_plugins} -nostart"
     LDFLAGS_beos="${LDFLAGS_beos} -lbe -lmedia -lroot -ltracker -lstdc++.r4 -ltranslation"
-    LDFLAGS_ipv4="${LDFLAGS_ipv4} -lbind"
+    dnl BONE or not BONE ?
+    AC_CHECK_LIB( bind, inet_ntoa,
+        [ LDFLAGS_access_mms="${LDFLAGS_access_mms} -lbind"
+          LDFLAGS_ipv4="${LDFLAGS_ipv4} -lbind"],
+        [])
     ;;
   x*)
     SYS="${target_os}"
@@ -186,17 +194,37 @@ then
         CFLAGS_mingw32_special="-fnative-struct"
     fi
 
-    CFLAGS_save="${CFLAGS_save} ${CFLAGS_mingw32_special}"; CFLAGS="${CFLAGS_save}"
+    CFLAGS_save="${CFLAGS_save} ${CFLAGS_mingw32_special}";
+    CXXFLAGS_save="${CXXFLAGS_save} ${CFLAGS_mingw32_special}";
+    CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
+fi
+
+dnl Check for fvtable-thunks support for mingw32
+if test x$SYS = xmingw32
+then
+AC_LANG_PUSH(C++)
+    AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
+        [ac_cv_cxx_fvtable_thunks],
+        [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
+         AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
+                        ac_cv_cxx_fvtable_thunks=no)])
+    if test x"$ac_cv_cxx_fvtable_thunks" = x"yes"; then
+        CXXFLAGS_mingw32_special="-fvtable-thunks"
+    fi
+
+    CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"
+    CXXFLAGS="${CXXFLAGS_save}"
+AC_LANG_POP(C++)
 fi
 
 dnl Flags for plugin compilation
 case "x${SYS}" in
   xmingw32|xcygwin)
     CFLAGS_pics="${CFLAGS_pics} ${CFLAGS_mingw32_special}"
-    CXXFLAGS_pics="${CXXFLAGS_pics} ${CFLAGS_mingw32_special}"
+    CXXFLAGS_pics="${CXXFLAGS_pics} ${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}"
     OBJCFLAGS_pics="${OBJCFLAGS_pics} ${CFLAGS_mingw32_special}"
     CFLAGS_plugins="${CFLAGS_plugins} ${CFLAGS_mingw32_special}"
-    CXXFLAGS_plugins="${CXXFLAGS_plugins} ${CFLAGS_mingw32_special}"
+    CXXFLAGS_plugins="${CXXFLAGS_plugins} ${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}"
     OBJCFLAGS_plugins="${OBJCFLAGS_plugins} ${CFLAGS_mingw32_special}"
     ;;
   x*)
@@ -214,12 +242,19 @@ dnl The -DSYS_FOO flag
 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
 
 dnl Check for system libs needed
-AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol isatty vasprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 atoll)
+need_libc=false
+
+AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol isatty vasprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 atoll getenv putenv setenv)
+
+dnl Check for usual libc functions
+AC_CHECK_FUNCS(strdup,,[need_libc=:])
+AC_CHECK_FUNCS(strndup,,[need_libc=:])
+AC_CHECK_FUNCS(atof,,[need_libc=:])
+AC_CHECK_FUNCS(lseek,,[need_libc=:])
+AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp,,[need_libc=:])])
+AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp,,[need_libc=:])])
 
-dnl Check for strndup
-need_strndup=false
-AC_CHECK_FUNC(strndup,,[need_strndup=:])
-AM_CONDITIONAL(BUILD_STRNDUP, ${need_strndup})
+AM_CONDITIONAL(BUILD_LIBC, ${need_libc})
 
 AC_CHECK_FUNC(connect,,[
   AC_CHECK_LIB(socket,connect,
@@ -229,7 +264,10 @@ AC_CHECK_FUNC(connect,,[
 
 AC_CHECK_FUNC(send,,[
   AC_CHECK_LIB(socket,send,
-    LDFLAGS_http="${LDFLAGS_http} -lsocket"
+    LDFLAGS_access_http="${LDFLAGS_access_http} -lsocket"
+    LDFLAGS_access_mms="${LDFLAGS_access_mms} -lsocket"
+    LDFLAGS_access_rtp="${LDFLAGS_access_rtp} -lsocket"
+    LDFLAGS_access_udp="${LDFLAGS_access_udp} -lsocket"
 )])
 
 AC_CHECK_FUNC(gethostbyname,,[
@@ -249,7 +287,21 @@ if ${have_nanosleep}; then
   AC_DEFINE(HAVE_NANOSLEEP, 1,
             Define if nanosleep is available.)
 fi
-# HP/UX port
+
+dnl Check for socklen_t
+AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
+  [AC_TRY_COMPILE(
+     [#include <sys/types.h>
+      #include <sys/socket.h>],
+     [socklen_t len = 42; return len;],
+     ac_cv_type_socklen_t=yes,
+     ac_cv_type_socklen_t=no)])
+if test x$ac_cv_type_socklen_t != xno; then
+  AC_DEFINE(HAVE_SOCKLEN_T, 1,
+            Define if <sys/socket.h> defines socklen_t.)
+fi
+
+dnl HP/UX port
 AC_CHECK_LIB(rt,sem_init, [LDFLAGS_vlc="${LDFLAGS_vlc} -lrt"])
 
 AC_CHECK_FUNC(inet_aton,,[
@@ -275,7 +327,8 @@ AC_TYPE_SIGNAL
 AC_CHECK_LIB(dl,dlopen,LDFLAGS_vlc="${LDFLAGS_vlc} -ldl")
 AC_CHECK_LIB(m,cos,
   LDFLAGS_imdct="${LDFLAGS_imdct} -lm"
-  LDFLAGS_filter_distort="${LDFLAGS_filter_distort} -lm")
+  LDFLAGS_filter_distort="${LDFLAGS_filter_distort} -lm"
+  LDFLAGS_a52tofloat32="${LDFLAGS_a52tofloat32} -lm")
 AC_CHECK_LIB(m,pow,
   LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} -lm"
   LDFLAGS_imdct="${LDFLAGS_imdct} -lm"
@@ -316,8 +369,8 @@ AC_EGREP_HEADER(strncasecmp,strings.h,[
             Define if <strings.h> defines strncasecmp.)])
 
 dnl Check for headers
-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 sys/ioctl.h)
+AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h getopt.h strings.h inttypes.h sys/int_types.h)
+AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
 AC_CHECK_HEADERS(dlfcn.h image.h)
 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
@@ -327,7 +380,7 @@ AC_HEADER_TIME
 
 dnl Check for dirent
 need_dirent=false
-AC_CHECK_HEADER(dirent.h,,[need_dirent=:])
+AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
 
 dnl Mac OS X and other OSes don't have declaration for nanosleep
@@ -392,25 +445,89 @@ if test "x${ac_cv_c_inline_limit}" != "xno"; then
     OBJCFLAGS_save="${OBJCFLAGS_save} -finline-limit-30000"; OBJCFLAGS="${OBJCFLAGS_save}"
 fi
 
-dnl Check for -W or -w flags
-AC_CACHE_CHECK([if \$CC accepts -Wall -Winline],
-    [ac_cv_c_Wall_Winline],
-    [CFLAGS="-Wall -Winline ${CFLAGS_save}"
-     AC_TRY_COMPILE([],,ac_cv_c_Wall_Winline=yes, ac_cv_c_Wall_Winline=no)])
-if test "x${ac_cv_c_Wall_Winline}" != "xno"; then
-    CFLAGS_save="-Wall -Winline ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
-    CXXFLAGS_save="-Wall -Winline ${CXXFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
-    OBJCFLAGS_save="-Wall -Winline ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
-else
-    AC_CACHE_CHECK([if \$CC accepts -wall -winline],
-        [ac_cv_c_wall_winline],
-        [CFLAGS="-wall -winline ${CFLAGS_save}"
-         AC_TRY_COMPILE([],,ac_cv_c_wall_winline=yes, ac_cv_c_wall_winline=no)])
-    if test "x${ac_cv_c_wall_winline}" != "xno"; then
-        CFLAGS_save="-wall -winline ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
-        CXXFLAGS_save="-wall -winline ${CXXFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
-        OBJCFLAGS_save="-wall -winline ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
-    fi
+# XXX: do this with an M4 macro?
+#dnl Check for various -W flags
+#for flag in "" all unreachable-code conversion sign-compare disabled-optimization
+#do
+#    AC_CACHE_CHECK([if \$CC accepts -W${flag}],
+#        [ac_cv_c_W${flag}],
+#        [CFLAGS="-W${flag} ${CFLAGS_save}"
+#         AC_TRY_COMPILE([],,ac_cv_c_W${flag}=yes, ac_cv_c_W${flag}=no)])
+#    if test "x${ac_cv_c_W${flag}}" != "xno"; then
+#        CFLAGS_save="-W${flag} ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
+#        CXXFLAGS_save="-W${flag} ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
+#        OBJCFLAGS_save="-W${flag} ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
+#    fi
+#done
+
+AC_CACHE_CHECK([if \$CC accepts -W],
+    [ac_cv_c_W],
+    [CFLAGS="-W ${CFLAGS_save}"
+     AC_TRY_COMPILE([],,ac_cv_c_W=yes, ac_cv_c_W=no)])
+if test "x${ac_cv_c_W}" != "xno"; then
+    CFLAGS_save="-W ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
+    CXXFLAGS_save="-W ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
+    OBJCFLAGS_save="-W ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
+fi
+
+AC_CACHE_CHECK([if \$CC accepts -Wall],
+    [ac_cv_c_Wall],
+    [CFLAGS="-Wall ${CFLAGS_save}"
+     AC_TRY_COMPILE([],,ac_cv_c_Wall=yes, ac_cv_c_Wall=no)])
+if test "x${ac_cv_c_Wall}" != "xno"; then
+    CFLAGS_save="-Wall ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
+    CXXFLAGS_save="-Wall ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
+    OBJCFLAGS_save="-Wall ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
+fi
+
+AC_CACHE_CHECK([if \$CC accepts -Wunreachable-code],
+    [ac_cv_c_Wunreachable_code],
+    [CFLAGS="-Wunreachable-code ${CFLAGS_save}"
+     AC_TRY_COMPILE([],,ac_cv_c_Wunreachable_code=yes, ac_cv_c_Wunreachable_code=no)])
+if test "x${ac_cv_c_Wunreachable_code}" != "xno"; then
+    CFLAGS_save="-Wunreachable-code ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
+    CXXFLAGS_save="-Wunreachable-code ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
+    OBJCFLAGS_save="-Wunreachable-code ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
+fi
+
+AC_CACHE_CHECK([if \$CC accepts -Wconversion],
+    [ac_cv_c_Wconversion],
+    [CFLAGS="-Wconversion ${CFLAGS_save}"
+     AC_TRY_COMPILE([],,ac_cv_c_Wconversion=yes, ac_cv_c_Wconversion=no)])
+if test "x${ac_cv_c_Wconversion}" != "xno"; then
+    CFLAGS_save="-Wconversion ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
+    CXXFLAGS_save="-Wconversion ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
+    OBJCFLAGS_save="-Wconversion ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
+fi
+
+AC_CACHE_CHECK([if \$CC accepts -Wsign-compare],
+    [ac_cv_c_Wsign_compare],
+    [CFLAGS="-Wsign-compare ${CFLAGS_save}"
+     AC_TRY_COMPILE([],,ac_cv_c_Wsign_compare=yes, ac_cv_c_Wsign_compare=no)])
+if test "x${ac_cv_c_Wsign_compare}" != "xno"; then
+    CFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
+    CXXFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
+    OBJCFLAGS_save="-Wsign-compare ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
+fi
+
+AC_CACHE_CHECK([if \$CC accepts -Wdisabled-optimization],
+    [ac_cv_c_Wdisabled_optimization],
+    [CFLAGS="-Wdisabled-optimization ${CFLAGS_save}"
+     AC_TRY_COMPILE([],,ac_cv_c_Wdisabled_optimization=yes, ac_cv_c_Wdisabled_optimization=no)])
+if test "x${ac_cv_c_Wdisabled_optimization}" != "xno"; then
+    CFLAGS_save="-Wdisabled-optimization ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
+    CXXFLAGS_save="-Wdisabled-optimization ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
+    OBJCFLAGS_save="-Wdisabled-optimization ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
+fi
+
+dnl Check for the -Winline flag
+AC_CACHE_CHECK([if \$CC accepts -W -Winline],
+    [ac_cv_c_Winline],
+    [CFLAGS="-Winline ${CFLAGS_save}"
+     AC_TRY_COMPILE([],,ac_cv_c_Winline=yes, ac_cv_c_Winline=no)])
+if test "x${ac_cv_c_Winline}" != "xno"; then
+    CFLAGS_save="-Winline ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
+    OBJCFLAGS_save="-Winline ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
 fi
 
 dnl Check for -pipe
@@ -484,7 +601,8 @@ AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
 if test "x${ac_cv_c_dynamic_no_pic}" != "xno"; then
-    CFLAGS_builtins="${CFLAGS_OPTIM} -mdynamic-no-pic"
+    CFLAGS_builtins="${CFLAGS_builtins} -mdynamic-no-pic"
+    CFLAGS_libvlc="${CFLAGS_libvlc} -mdynamic-no-pic"
 fi
 
 dnl Check for Darwin plugin linking flags
@@ -561,21 +679,17 @@ PLUGINS="${PLUGINS} es audio mpeg_system ps ts"
 PLUGINS="${PLUGINS} idct idctclassic motion mpeg_video spudec mpeg_audio"
 #PLUGINS="${PLUGINS} a52old imdct downmix"
 PLUGINS="${PLUGINS} lpcm a52"
-PLUGINS="${PLUGINS} deinterlace invert yuv wall transform distort clone crop motionblur"
-PLUGINS="${PLUGINS} float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif fixed32tofloat32 fixed32tos16 s16tofloat32 s16tofloat32swab s8tofloat32 u8tofloat32"
+PLUGINS="${PLUGINS} deinterlace invert adjust wall transform distort clone crop motionblur"
+PLUGINS="${PLUGINS} float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif fixed32tofloat32 fixed32tos16 s16tofloat32 s16tofloat32swab s8tofloat32 u8tofixed32 u8tofloat32"
 PLUGINS="${PLUGINS} trivial_resampler ugly_resampler linear_resampler"
 PLUGINS="${PLUGINS} trivial_channel_mixer"
-PLUGINS="${PLUGINS} trivial_mixer spdif_mixer"
+PLUGINS="${PLUGINS} trivial_mixer spdif_mixer float32_mixer"
 PLUGINS="${PLUGINS} aout_file"
 #PLUGINS="${PLUGINS} scope"
 PLUGINS="${PLUGINS} i420_rgb i420_yuy2 i422_yuy2 i420_ymga"
-PLUGINS="${PLUGINS} id3"
-PLUGINS="${PLUGINS} wav araw"
-
-dnl
-dnl  Network modules
-dnl
-NETWORK_MODULES="access_udp access_http access_rtp ipv4"
+PLUGINS="${PLUGINS} id3 m3u"
+PLUGINS="${PLUGINS} wav araw demuxdump demuxsub adpcm"
+PLUGINS="${PLUGINS} access_udp access_http access_rtp ipv4 access_mms sap"
 
 dnl
 dnl  Accelerated modules
@@ -586,11 +700,6 @@ THREEDNOW_MODULES="memcpy3dn imdct3dn downmix3dn"
 SSE_MODULES="imdctsse downmixsse"
 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],
     [CFLAGS="${CFLAGS_save}"
@@ -827,47 +936,65 @@ then
 fi
 
 dnl
-dnl dvdread module: check for libdvdread plugin
+dnl dvdread module: check for libdvdread
 dnl
 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"
+  [    --with-dvdread=PATH    libdvdread headers and libraries])
+  AC_ARG_WITH(dvdread-tree,
+  [    --with-dvdread-tree=PATH libdvdread tree for static linking])
+  if test "x${with_dvdread}" = x
   then
-    LDFLAGS_test=""
-    CPPFLAGS_test=""
-  else
-    LDFLAGS_test="-L${with_dvdread}/lib"
-    CPPFLAGS_test="-I${with_dvdread}/include"
-  fi
-  CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
-  AC_CHECK_HEADERS(dvdread/dvd_reader.h, [
-     AC_TRY_COMPILE([#include <dvdread/dvd_reader.h>],
-        [int foo() { return DVD_VIDEO_LB_LEN; }],[
-          PLUGINS="${PLUGINS} dvdread"
-          LDFLAGS_dvdread="${LDFLAGS_dvdread} ${LDFLAGS_test} -ldvdread ${LDFLAGS_dvdcss}"
-          CPPFLAGS_dvdread="${CPPFLAGS_dvdread} ${CPPFLAGS_test}"
-        ],[
-          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"
+    if test "x${with_dvdread_tree}" = x
     then
-      if test "x${with_dvdread}" != "x"
+      AC_CHECK_HEADERS(dvdread/dvdread.h,
+        [ PLUGINS="${PLUGINS} dvdread"
+          LDFLAGS_dvdread="${LDFLAGS_dvdread} -ldvdread" ],
+        [ if test "x${enable_dvdread}" != "x"
+          then
+            AC_MSG_WARN([Please get libdvdread from http://www.dtek.chalmers.se/groups/dvd/downloads.shtml])
+            AC_MSG_ERROR([cannot find libdvdread headers])
+          fi ])
+    else
+      AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
+      real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
+      if test "x${real_dvdread_tree}" = "x"
       then
-        AC_MSG_ERROR([Cannot find dvdread/dvd_reader.h in ${with_dvdread}/include])
+        dnl  The given directory can't be found
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
+      fi
+      if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
+      then
+        dnl  Use a custom libdvdread
+        AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
+        BUILTINS="${BUILTINS} dvdread"
+        LDFLAGS_dvdread="${LDFLAGS_dvdread} ${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
+        CPPFLAGS_dvdread="${CPPFLAGS_dvdread} -I${real_dvdread_tree}"
       else
-        AC_MSG_ERROR([Cannot find dvdread/dvd_reader.h])
+        dnl  The given libdvdread wasn't built
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
       fi
     fi
-  ])
-  CPPFLAGS="${CPPFLAGS_save}"
+  else
+    AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
+    if test -f ${with_dvdread}/include/dvdread/dvdread.h
+    then
+      dnl  Use ${with_dvdread}/include/dvdread/dvdread.h
+      AC_MSG_RESULT(yes)
+      PLUGINS="${PLUGINS} dvdread"
+      LDFLAGS_dvdread="${LDFLAGS_dvdread} -L${with_dvdread}/lib -ldvdread"
+      CPPFLAGS_dvdread="${CPPFLAGS_dvdread} -I${with_dvdread}/include"
+    else
+      dnl  No libdvdread could be found, sorry
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvdread.h])
+    fi
+  fi
 fi
 
 dnl
@@ -878,40 +1005,66 @@ AC_ARG_ENABLE(dvdplay,
 if test "x${enable_dvdplay}" != "xno"
 then
   AC_ARG_WITH(dvdplay,
-  [    --with-dvdplay=PATH   libdvdplay headers and libraries])
+  [    --with-dvdplay=PATH    libdvdplay headers and libraries])
+  AC_ARG_WITH(dvdplay-tree,
+  [    --with-dvdplay-tree=PATH libdvdplay tree for static linking])
   if test "x${with_dvdplay}" = x
   then
-    LDFLAGS_test=""
-    CPPFLAGS_test=""
-  else
-    LDFLAGS_test="-L${with_dvdplay}/lib"
-    CPPFLAGS_test="-I${with_dvdplay}/include"
-  fi
-  CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
-  AC_CHECK_HEADERS(dvdplay/dvdplay.h, [
-      PLUGINS="${PLUGINS} dvdplay"
-      LDFLAGS_dvdplay="${LDFLAGS_dvdplay} ${LDFLAGS_test} -ldvdplay -ldvdread ${LDFLAGS_dvdcss}"
-      CPPFLAGS_dvdplay="${CPPFLAGS_dvdplay} ${CPPFLAGS_test}"
-    ],[
-    if test "x${enable_dvdplay}" != x
+    if test "x${with_dvdplay_tree}" = x
     then
-      if test "x${with_dvdplay}" != x
+      AC_CHECK_HEADERS(dvdplay/dvdplay.h,
+        [ PLUGINS="${PLUGINS} dvdplay"
+          LDFLAGS_dvdplay="${LDFLAGS_dvdplay} ${LDFLAGS_dvd} ${LDFLAGS_dvdread} -ldvdplay"
+          CPPFLAGS_dvdplay = "${CPPFLAGS_dvdplay} ${CPPFLAGS_dvdread}" ],
+        [ if test "x${enable_dvdplay}" != "x"
+          then
+            AC_MSG_WARN([Please get libdvdplay from http://www.videolan.org/.])
+            AC_MSG_ERROR([cannot find libdvdplay headers])
+          fi ])
+    else
+      AC_MSG_CHECKING(for libdvdplay.a in ${with_dvdplay_tree})
+      real_dvdplay_tree="`cd ${with_dvdplay_tree} 2>/dev/null && pwd`"
+      if test "x${real_dvdplay_tree}" = "x"
+      then
+        dnl  The given directory can't be found
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot cd to ${with_dvdplay_tree}])
+      fi
+      if test -f "${real_dvdplay_tree}/src/.libs/libdvdplay.a"
       then
-        AC_MSG_ERROR([Cannot find dvdplay/dvdplay.h in ${with_dvdplay}/include])
+        dnl  Use a custom libdvdplay
+        AC_MSG_RESULT(${real_dvdplay_tree}/src/.libs/libdvdplay.a)
+        BUILTINS="${BUILTINS} dvdplay"
+        LDFLAGS_dvdplay="${LDFLAGS_dvdplay} ${LDFLAGS_dvd} ${LDFLAGS_dvdread} ${real_dvdplay_tree}/src/.libs/libdvdplay.a"
+        CPPFLAGS_dvdplay="${CPPFLAGS_dvdplay} ${CPPFLAGS_dvdread} -I${real_dvdplay_tree}/src"
       else
-        AC_MSG_ERROR([Cannot find dvdplay/dvdplay.h])
+        dnl  The given libdvdplay wasn't built
+        AC_MSG_RESULT(no)
+        AC_MSG_ERROR([cannot find ${real_dvdplay_tree}/src/.libs/libdvdplay.a, make sure you compiled libdvdplay in ${with_dvdplay_tree}])
       fi
     fi
-  ])
-  CPPFLAGS="${CPPFLAGS_save}"
+  else
+    AC_MSG_CHECKING(for dvdplay headers in ${with_dvdplay})
+    if test -f ${with_dvdplay}/include/dvdplay/dvdplay.h
+    then
+      dnl  Use ${with_dvdplay}/include/dvdplay/dvdplay.h
+      AC_MSG_RESULT(yes)
+      PLUGINS="${PLUGINS} dvdplay"
+      LDFLAGS_dvdplay="${LDFLAGS_dvdplay} ${LDFLAGS_dvd} ${LDFLAGS_dvdread} -L${with_dvdplay}/lib -ldvdplay"
+      CPPFLAGS_dvdplay="${CPPFLAGS_dvdplay} ${CPPFLAGS_dvdread} -I${with_dvdplay}/include"
+    else
+      dnl  No libdvdplay could be found, sorry
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${with_dvdplay}/include/dvdplay/dvdplay.h])
+    fi
+  fi
 fi
 
-
 dnl
 dnl  libdvbpsi ts demux
 dnl
 AC_ARG_ENABLE(dvbpsi,
-[  --enable-dvbpsi        dvbpsi ts demux module (default disabled)])
+[  --enable-dvbpsi         dvbpsi ts demux module (default enabled)])
 if test "x${enable_dvbpsi}" != "xno"
 then
   AC_ARG_WITH(dvbpsi,
@@ -924,8 +1077,13 @@ then
     then
       AC_CHECK_HEADERS(dvbpsi/dr.h,
         [ PLUGINS="${PLUGINS} ts_dvbpsi"
-          LDFLAGS_ts_dvbpsi="${LDFLAGS_ts_dvbpsi} -ldvbpsi" ], [],
-        [  AC_MSG_ERROR([cannot find libdvbpsi headers]) ])
+          LDFLAGS_ts_dvbpsi="${LDFLAGS_ts_dvbpsi} -ldvbpsi" ],
+        [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
+        [#include <stdint.h>
+#include <dvbpsi/dvbpsi.h>
+#include <dvbpsi/descriptor.h>
+#include <dvbpsi/pat.h>
+#include <dvbpsi/pmt.h>])
     else
       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
@@ -1002,6 +1160,11 @@ then
     PLUGINS="${PLUGINS} vcd"
   ])
 
+  AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
+    PLUGINS="${PLUGINS} vcd"
+    AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
+  ])
+
   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)
@@ -1092,8 +1255,11 @@ AC_ARG_ENABLE(ogg,
 if test "x${enable_ogg}" != "xno"
 then
   AC_CHECK_HEADERS(ogg/ogg.h, [
-    PLUGINS="${PLUGINS} ogg"
-    LDFLAGS_ogg="${LDFLAGS_ogg} -logg"
+    AC_CHECK_LIB( ogg, oggpack_read, [
+      PLUGINS="${PLUGINS} ogg"
+      LDFLAGS_ogg="${LDFLAGS_ogg} -logg"
+      AC_CHECK_LIB( ogg, oggpackB_read, [
+        CPPFLAGS_ogg="${CPPFLAGS_ogg} -DHAVE_OGGPACKB"])])
    ],[])
 fi
 
@@ -1383,7 +1549,7 @@ then
       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
       AC_CHECK_LIB(a52, a52_free, [
         BUILTINS="${BUILTINS} a52tofloat32"
-        LDFLAGS_a52tofloat32="${LDFLAGS_a52tofloat32} -la52 -lm"
+        LDFLAGS_a52tofloat32="-la52 ${LDFLAGS_a52tofloat32}"
         CPPFLAGS_a52tofloat32="${CPPFLAGS_a52tofloat32} -DUSE_A52DEC_TREE"
         ],[
         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
@@ -1392,7 +1558,7 @@ then
         else
           AC_MSG_ERROR([the specified tree hasn't been compiled])
         fi
-      ],[-lm])
+      ])
       LDFLAGS="${LDFLAGS_save}"
     else
       AC_MSG_RESULT(no)
@@ -1412,14 +1578,14 @@ then
     AC_CHECK_HEADERS(a52dec/a52.h, [
       AC_CHECK_LIB(a52, a52_free, [
         PLUGINS="${PLUGINS} a52tofloat32"
-        LDFLAGS_a52tofloat32="${LDFLAGS_a52tofloat32} ${LDFLAGS_test} -la52 -lm"
+        LDFLAGS_a52tofloat32="${LDFLAGS_test} -la52 ${LDFLAGS_a52tofloat32}"
         CPPFLAGS_a52tofloat32="${CPPFLAGS_a52tofloat32} ${CPPFLAGS_test}"
       ],[
         if test "x${enable_dvbpsi}" != "x"
         then
           AC_MSG_ERROR([Could not find a52 on your system: you may get it from http://liba52.sf.net])
         fi
-      ],[-lm])
+      ])
     ])
     CPPFLAGS="${CPPFLAGS_save}"
     LDFLAGS="${LDFLAGS_save}"
@@ -1453,7 +1619,7 @@ dnl
 dnl  Vorbis plugin
 dnl
 AC_ARG_ENABLE(vorbis,
-  [  --enable-vorbis            Vorbis decoder support (default enabled)])
+  [  --enable-vorbis         Vorbis decoder support (default enabled)])
 if test "x${enable_vorbis}" != "xno"
 then
   AC_CHECK_HEADERS(vorbis/codec.h, [
@@ -1462,6 +1628,64 @@ then
    ],[])
 fi
 
+dnl
+dnl  Tremor plugin
+dnl
+AC_ARG_ENABLE(tremor,
+  [  --enable-tremor         Tremor decoder support (default disabled)])
+if test "x${enable_tremor}" = "xyes"
+then
+  AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
+    PLUGINS="${PLUGINS} tremor"
+    LDFLAGS_tremor="${LDFLAGS_tremor} -lvorbisidec -logg"
+   ],[])
+fi
+
+dnl
+dnl  tarkin decoder plugin
+dnl
+AC_ARG_ENABLE(tarkin,
+[  --enable-tarkin         experimental tarkin codec (default disabled)])
+if test "x${enable_tarkin}" = "xyes"
+then
+  AC_ARG_WITH(tarkin-tree,
+  [    --with-tarkin-tree=PATH tarkin tree for static linking])
+  if test "x${with_tarkin_tree}" != "x"
+  then
+    AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
+    real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
+    if test -f "${real_tarkin_tree}/tarkin.o"
+    then
+      BUILTINS="${BUILTINS} tarkin"
+      CPPFLAGS_tarkin="${CPPFLAGS_tarkin} -I${real_tarkin_tree}"
+      LDFLAGS_tarkin="${LDFLAGS_tarkin} ${real_tarkin_tree}/mem.o ${real_tarkin_tree}/pnm.o ${real_tarkin_tree}/wavelet.o ${real_tarkin_tree}/wavelet_xform.o ${real_tarkin_tree}/wavelet_coeff.o ${real_tarkin_tree}/yuv.o ${real_tarkin_tree}/tarkin.o ${real_tarkin_tree}/info.o -logg"
+      AC_MSG_RESULT(yes)
+    else
+      dnl  The given tarkin tree wasn't built
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
+                    make sure you compiled tarkin in ${with_tarkin_tree}])
+    fi
+  fi
+fi
+
+dnl
+dnl  theora decoder plugin
+dnl
+AC_ARG_ENABLE(theora,
+[  --enable-theora         experimental theora codec (default disabled)])
+if test "x${enable_theora}" = "xyes"
+then
+  AC_CHECK_HEADERS(theora/theora.h, [
+    AC_CHECK_LIB(theora, theora_granule_time, [
+      BUILTINS="${BUILTINS} theora"
+      LDFLAGS_theora="${LDFLAGS_theora} -ltheora -logg" ],[
+      AC_MSG_ERROR([libtheora doesn't appear to be installed on you system.
+You also need to check that you have a libogg posterior to the 1.0 release.])],
+      [-logg])
+  ])
+fi
+
 dnl
 dnl  Video plugins
 dnl
@@ -1724,6 +1948,18 @@ then
   fi
 fi
 
+dnl
+dnl  win32 GDI plugin
+dnl
+AC_ARG_ENABLE(wingdi,
+  [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
+if test "x${enable_wingdi}" != "xno"; then
+  if test "x${SYS}" = "xmingw32" -o "x${SYS}" = "xcygwin"; then
+    PLUGINS="${PLUGINS} wingdi"
+    LDFLAGS_wingdi="${LDFLAGS_wingdi} -lgdi32"
+  fi
+fi
+
 dnl
 dnl  Audio plugins
 dnl
@@ -1787,7 +2023,7 @@ AC_ARG_ENABLE(alsa,
      AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
      if test "x${have_alsa}" = "xtrue"
      then
-       PLUGINS="${PLUGINS} alsa"
+       #PLUGINS="${PLUGINS} alsa"
        LDFLAGS_alsa="${LDFLAGS_alsa} -lasound -lm -ldl"
      fi
    fi])
@@ -1941,6 +2177,46 @@ developement tools or remove the --enable-gnome option])
     CPPFLAGS="${CPPFLAGS_save}"
   fi])
 
+dnl
+dnl  wxWindows module
+dnl
+AC_ARG_ENABLE(wxwindows,
+  [  --enable-wxwindows      wxWindows support (default enabled)])
+if test "x${enable_wxwindows}" != "xno"
+then
+  WXWINDOWS_PATH="${PATH}"
+  AC_ARG_WITH(wx-config-path,
+    [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
+    [ if test "x${with_wx_config_path}" != "xno"
+      then
+        WXWINDOWS_PATH="${with_wx_config_path}:${PATH}"
+      fi ])
+  # look for wx-config
+  AC_PATH_PROG(WX_CONFIG, wx-config, no, ${WXWINDOWS_PATH})
+  if test "x${WX_CONFIG}" != "xno"
+  then
+    if expr 2.3.0 \> `${WX_CONFIG} --version` >/dev/null
+    then
+      AC_MSG_ERROR([Your development package for wxWindows is too old, you need at least version 2.3.0. Please upgrade and try again. Alternatively you can also configure with --disable-wxwindows.])
+    fi
+    CXXFLAGS_wxwindows="${CXXFLAGS_wxwindows} `${WX_CONFIG} --cflags`"
+    LDFLAGS_wxwindows="${LDFLAGS_wxwindows} `${WX_CONFIG} --libs`"
+    # now look for the wxprec.h header
+    CPPFLAGS="${save_CPPFLAGS} ${CXXFLAGS_wxwindows}"
+    ac_cv_wx_headers=yes
+    AC_CHECK_HEADERS(wx/wxprec.h, , [
+      ac_cv_wx_headers=no
+      echo "Cannot find wxWindows development headers."
+    ])
+    if test "x${ac_cv_wx_headers}" = "xyes"
+    then
+      PLUGINS="${PLUGINS} wxwindows"
+      ALIASES="${ALIASES} wxvlc"
+    fi
+    CPPFLAGS="${save_CPPFLAGS}"
+  fi
+fi
+
 dnl
 dnl  Qt module
 dnl
@@ -2014,11 +2290,11 @@ AC_ARG_ENABLE(macosx,
   [if test "x${enable_macosx}" = "xyes"
    then
      BUILTINS="${BUILTINS} macosx"
-     LDFLAGS_macosx="${LDFLAGS_macosx} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework Carbon -framework AGL -framework QuickTime -lobjc -ObjC"
+     LDFLAGS_macosx="${LDFLAGS_macosx} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC"
    fi],
   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
      BUILTINS="${BUILTINS} macosx"
-     LDFLAGS_macosx="${LDFLAGS_macosx} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework Carbon -framework AGL -framework QuickTime -lobjc -ObjC"
+     LDFLAGS_macosx="${LDFLAGS_macosx} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC"
    )])
 
 dnl
@@ -2377,7 +2653,9 @@ AC_SUBST(LDFLAGS)
 
 AC_SUBST(CFLAGS_vlc)
 AC_SUBST(CFLAGS_pics)
+AC_SUBST(CXXFLAGS_pics)
 AC_SUBST(CFLAGS_plugins)
+AC_SUBST(CXXFLAGS_plugins)
 AC_SUBST(CFLAGS_builtins)
 AC_SUBST(CPPFLAGS_mozilla)