]> git.sesse.net Git - vlc/blobdiff - configure.ac.in
* all: added a new function (sout_BufferChain) and allowed dummy
[vlc] / configure.ac.in
index f1f762ecb9e429302ea057d4f7c7ea3d0a1aedb4..683d22ba1f448ef88305db153409dda0170f31bc 100644 (file)
@@ -1,6 +1,6 @@
 dnl Autoconf settings for vlc
 
-AC_INIT(vlc,0.5.0-cvs)
+AC_INIT(vlc,0.5.0-test2)
 
 CONFIGURE_LINE="$0 $*"
 CODENAME="Natalya"
@@ -11,7 +11,7 @@ AC_CANONICAL_SYSTEM
 
 dnl XXX: we don't put any flags here, because automake 1.5 doesn't support
 dnl them. And we need the comma otherwize automake will choke on it.
-AM_INIT_AUTOMAKE(vlc,0.5.0-cvs)
+AM_INIT_AUTOMAKE(vlc,0.5.0-test2)
 AM_CONFIG_HEADER(config.h)
 
 dnl
@@ -33,6 +33,9 @@ AC_PROG_CXX
 AC_PROG_MAKE_SET
 AC_PROG_INSTALL
 
+dnl AC_PROG_EGREP only exists in autoconf 2.54+
+AC_EGREP_CPP(foo,foo)
+
 dnl AC_PROG_OBJC doesn't seem to exist, this is the KDE workaround
 AC_MSG_CHECKING(for an Objective-C compiler)
 OBJC="${CXX}"
@@ -48,18 +51,8 @@ AC_MSG_RESULT(not implemented yet)
 dnl Find the right ranlib, even when cross-compiling
 AC_CHECK_TOOL(RANLIB, ranlib, :)
 AC_CHECK_TOOL(STRIP, strip, :)
-
-dnl
-dnl Gettext stuff
-dnl
-ALL_LINGUAS="de en_GB fr ja no ru nl pl se"
-AM_GNU_GETTEXT_VERSION(0.10.40)
-AM_GNU_GETTEXT
-if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
-  AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
-  INCLUDES="${INCLUDES} -I\\\$(top_srcdir)/intl"
-fi
-AM_CONDITIONAL(BUILD_INTL, test "${nls_cv_force_use_gnu_gettext}" = "yes")
+AC_CHECK_TOOL(AR, ar, :)
+AC_CHECK_TOOL(LD, ld, :)
 
 dnl AM_PROG_LIBTOOL
 AC_PROG_INSTALL
@@ -88,6 +81,7 @@ case "x${target_os}" in
     SYS=bsdi
     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
     LDFLAGS_dvd="${LDFLAGS_dvd} -ldvd"
+    LDFLAGS_dvdcss="${LDFLAGS_dvdcss} -ldvd"
     LDFLAGS_vcd="${LDFLAGS_vcd} -ldvd"
     ;;
   x*bsd*)
@@ -96,9 +90,9 @@ case "x${target_os}" in
     ;;
   xdarwin*)
     SYS=darwin
-    CFLAGS_save="${CFLAGS_save} -no-cpp-precomp"; CFLAGS="${CFLAGS_save}"
-    CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp"; CXXFLAGS="${CXXFLAGS_save}"
-    OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp"; OBJCFLAGS="${OBJCFLAGS_save}"
+    CFLAGS_save="${CFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
+    CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
+    OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
     LDFLAGS_vlc="${LDFLAGS_vlc} -all_load"
     LIBEXT=".dylib"
     ;;
@@ -130,9 +124,11 @@ case "x${target_os}" in
         LDFLAGS_ipv6="${LDFLAGS_ipv6} -lws2_32"
         LDFLAGS_access_http="${LDFLAGS_access_http} -lws2_32"
         LDFLAGS_access_mms="${LDFLAGS_access_mms} -lws2_32"
-        LDFLAGS_access_rtp="${LDFLAGS_access_rtp} -lws2_32"
         LDFLAGS_access_udp="${LDFLAGS_access_udp} -lws2_32"
+        LDFLAGS_access_ftp="${LDFLAGS_access_ftp} -lws2_32"
+        LDFLAGS_access_output_udp="${LDFLAGS_access_output_udp} -lws2_32"
         LDFLAGS_rc="${LDFLAGS_rc} -lws2_32"
+        LDFLAGS_sap="${LDFLAGS_sap} -lws2_32"
     fi
     ;;
   x*nto*)
@@ -154,7 +150,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}"
@@ -164,6 +164,26 @@ AM_CONDITIONAL(HAVE_BEOS, test "x${SYS}" = "xbeos")
 AM_CONDITIONAL(HAVE_DARWIN, test "x${SYS}" = "xdarwin")
 AM_CONDITIONAL(HAVE_WIN32, test "x${SYS}" = "xmingw32")
 
+dnl
+dnl Gettext stuff
+dnl
+ALL_LINGUAS="de en_GB fr it ja no ru nl pl se"
+AM_GNU_GETTEXT_VERSION(0.10.40)
+AM_GNU_GETTEXT
+if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
+  AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
+  INCLUDES="${INCLUDES} -I\\\$(top_srcdir)/intl"
+else
+  AC_CHECK_FUNCS(textdomain,,[
+    AC_CHECK_LIB(intl,textdomain,
+      LDFLAGS_vlc="${LDFLAGS_vlc} -lintl"
+      LDFLAGS_plugins="${LDFLAGS_plugins} -lintl"
+    )
+  ])
+fi
+AM_CONDITIONAL(BUILD_INTL, test "${nls_cv_force_use_gnu_gettext}" = "yes")
+XGETTEXT="${XGETTEXT} --keyword=_NS"
+
 AC_MSG_CHECKING(for suffix of libraries)
 AC_MSG_RESULT(${LIBEXT})
 
@@ -243,36 +263,33 @@ 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=:])])
+AC_CHECK_FUNCS(strdup strndup atof lseek)
+AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
+AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
 
-AM_CONDITIONAL(BUILD_LIBC, ${need_libc})
-
-AC_CHECK_FUNC(connect,,[
+AC_CHECK_FUNCS(connect,,[
   AC_CHECK_LIB(socket,connect,
     LDFLAGS_ipv4="${LDFLAGS_ipv4} -lsocket"
     LDFLAGS_vlc="${LDFLAGS_vlc} -lsocket"
 )])
 
-AC_CHECK_FUNC(send,,[
+AC_CHECK_FUNCS(send,,[
   AC_CHECK_LIB(socket,send,
     LDFLAGS_access_http="${LDFLAGS_access_http} -lsocket"
     LDFLAGS_access_mms="${LDFLAGS_access_mms} -lsocket"
-    LDFLAGS_access_rtp="${LDFLAGS_access_rtp} -lsocket"
     LDFLAGS_access_udp="${LDFLAGS_access_udp} -lsocket"
+    LDFLAGS_access_ftp="${LDFLAGS_access_ftp} -lsocket"
+    LDFLAGS_sap="${LDFLAGS_sap} -lsocket"
+    LDFLAGS_access_output_udp="${LDFLAGS_access_output_udp} -lsocket"
 )])
 
-AC_CHECK_FUNC(gethostbyname,,[
+AC_CHECK_FUNCS(gethostbyname,,[
   AC_CHECK_LIB(nsl,gethostbyname,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lnsl",[
     AC_CHECK_LIB(bind,gethostbyname,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lbind")])
 ])
 
 have_nanosleep=false
-AC_CHECK_FUNC(nanosleep,have_nanosleep=:,[
+AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
   AC_CHECK_LIB(rt,nanosleep,
     [LDFLAGS_vlc="${LDFLAGS_vlc} -lrt"; have_nanosleep=:],
     [AC_CHECK_LIB(posix4,nanosleep,
@@ -300,19 +317,13 @@ fi
 dnl HP/UX port
 AC_CHECK_LIB(rt,sem_init, [LDFLAGS_vlc="${LDFLAGS_vlc} -lrt"])
 
-AC_CHECK_FUNC(inet_aton,,[
+AC_CHECK_FUNCS(inet_aton,,[
   AC_CHECK_LIB(resolv,inet_aton,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lresolv")
 ])
-AC_CHECK_FUNC(textdomain,,[
-  AC_CHECK_LIB(intl,textdomain,
-    LDFLAGS_vlc="${LDFLAGS_vlc} -lintl"
-    LDFLAGS_plugins="${LDFLAGS_plugins} -lintl"
-  )
-])
 
 dnl Check for getopt
 need_getopt=false
-AC_CHECK_FUNC(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
+AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
 [ # FreeBSD has a gnugetopt library for this:
   AC_CHECK_LIB([gnugetopt],[getopt_long],
     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) LDFLAGS_vlc="${LDFLAGS_vlc} -lgnugetopt"],
@@ -346,7 +357,7 @@ if test "x${THREAD_LIB}" = "xerror"; then
   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
 fi
 if test "x${THREAD_LIB}" = "xerror"; then
-  AC_CHECK_FUNC(pthread_mutex_lock)
+  AC_CHECK_FUNCS(pthread_mutex_lock)
   THREAD_LIB=""
 fi
 
@@ -354,15 +365,26 @@ dnl Check for cthreads under GNU/Hurd for instance
 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
 
 dnl Check for misc headers
+AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
+  AC_MSG_RESULT(yes)
   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
-            Define if <pthread.h> defines pthread_cond_t.)])
+            Define if <pthread.h> defines pthread_cond_t.)],[
+  AC_MSG_RESULT(no)])
+
+AC_MSG_CHECKING(for pthread_once in pthread.h)
 AC_EGREP_HEADER(pthread_once,pthread.h,[
+  AC_MSG_RESULT(yes)
   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
-            Define if <pthread.h> defines pthread_once.)])
+            Define if <pthread.h> defines pthread_once.)],[
+  AC_MSG_RESULT(no)])
+
+AC_MSG_CHECKING(for strncasecmp in strings.h)
 AC_EGREP_HEADER(strncasecmp,strings.h,[
+  AC_MSG_RESULT(yes)
   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
-            Define if <strings.h> defines strncasecmp.)])
+            Define if <strings.h> defines strncasecmp.)],[
+  AC_MSG_RESULT(no)])
 
 dnl Check for headers
 AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h getopt.h strings.h inttypes.h sys/int_types.h)
@@ -380,15 +402,23 @@ AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
 
 dnl Mac OS X and other OSes don't have declaration for nanosleep
+AC_MSG_CHECKING(for nanosleep in time.h)
 AC_EGREP_HEADER(nanosleep,time.h,[
+  AC_MSG_RESULT(yes)
   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
             Define if <time.h> defines nanosleep.)
+],[
+  AC_MSG_RESULT(no)
 ])
 
 dnl Make sure we have timespecs
+AC_MSG_CHECKING(for timespec in sys/time.h)
 AC_EGREP_HEADER(timespec,sys/time.h,[
+  AC_MSG_RESULT(yes)
   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
             Define if <sys/time.h> defines struct timespec.)
+],[
+  AC_MSG_RESULT(no)
 ])
 
 dnl Check for threads library
@@ -411,10 +441,16 @@ if test "x${SYS}" != "xmingw32"
 then
   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
+    AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
+      AC_MSG_RESULT(yes)
       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
+    ],[
+      AC_MSG_RESULT(no)
     ])
+  ],,[
+    #include <X11/Xlib.h>
   ])
   CPPFLAGS="${CPPFLAGS_save}"
 fi
@@ -441,25 +477,90 @@ 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 ${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}"
+# 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 -Wall],
+    [ac_cv_c_Wall],
+    [CFLAGS="-Wall ${CFLAGS_save}"
+     AC_TRY_COMPILE([],,ac_cv_c_Wall=yes, ac_cv_c_Wall=no)])
+
+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)])
+
+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)])
+
+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)])
+
+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)])
+
+AC_CACHE_CHECK([if \$CC accepts -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_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
+
+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}"
+
+    dnl -Wunreachable-code means gcc-3.x, we can use -Wconversion and we can
+    dnl activate -Winline for C++, it won't choke on system headers.
+#    if test "x${ac_cv_c_Wconversion}" != "xno"; then
+#        CFLAGS_save="-Wconversion ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
+#        CXXFLAGS_save="-Wconversion ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
+#        OBJCFLAGS_save="-Wconversion ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
+#    fi
+    if test "x${ac_cv_c_Winline}" != "xno"; then
+        CXXFLAGS_save="-Winline ${CXXFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
     fi
+
+fi
+
+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
+
+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
+
+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
@@ -585,6 +686,19 @@ if test "x${ac_cv_c_attribute_aligned}" != "x0"; then
         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
 fi
 
+dnl Checks for __attribute__(format()) directive
+AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
+    [ac_cv_c_attribute_format],
+    [ac_cv_c_attribute_format=no
+        CFLAGS="${CFLAGS_save} -Werror"
+        AC_TRY_COMPILE([],
+        [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
+        [ac_cv_c_attribute_format=yes])
+        CFLAGS="${CFLAGS_save}"])
+if test "x${ac_cv_c_attribute_format}" != "xno"; then
+    AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
+fi
+
 dnl
 dnl  Check the CPU
 dnl
@@ -609,38 +723,29 @@ dnl
 PLUGINS="${PLUGINS} dummy rc logger access_file memcpy"
 PLUGINS="${PLUGINS} es audio mpeg_system ps ts"
 PLUGINS="${PLUGINS} idct idctclassic motion mpeg_video spudec mpeg_audio"
-#PLUGINS="${PLUGINS} a52old imdct downmix"
+#PLUGINS="${PLUGINS} a52old imdct downmix imdct3dn downmix3dn imdctsse downmixsse"
 PLUGINS="${PLUGINS} lpcm a52"
 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_channel_mixer headphone_channel_mixer"
 PLUGINS="${PLUGINS} trivial_mixer spdif_mixer float32_mixer"
 PLUGINS="${PLUGINS} aout_file"
 #PLUGINS="${PLUGINS} scope"
 PLUGINS="${PLUGINS} i420_rgb i420_yuy2 i422_yuy2 i420_ymga"
 PLUGINS="${PLUGINS} id3 m3u"
-PLUGINS="${PLUGINS} wav araw demuxdump demuxsub"
-
-dnl
-dnl  Network modules
-dnl
-NETWORK_MODULES="access_udp access_http access_rtp ipv4 access_mms"
+PLUGINS="${PLUGINS} wav araw demuxdump demuxsub adpcm"
+PLUGINS="${PLUGINS} access_udp access_http ipv4 access_mms access_ftp sap"
 
 dnl
 dnl  Accelerated modules
 dnl
 MMX_MODULES="memcpymmx idctmmx motionmmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx"
 MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext"
-THREEDNOW_MODULES="memcpy3dn imdct3dn downmix3dn"
-SSE_MODULES="imdctsse downmixsse"
+THREEDNOW_MODULES="memcpy3dn"
+SSE_MODULES=""
 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}"
@@ -800,6 +905,20 @@ AC_ARG_ENABLE(release,
 [  --enable-release        activate extra optimizations (default disabled)])
 AM_CONDITIONAL(RELEASE, test "x${enable_release}" = "xyes")
 
+dnl
+dnl Stream output
+dnl
+AC_ARG_ENABLE(sout,
+  [  --enable-sout           Stream output modules (default enabled)])
+if test "x${enable_sout}" != "xno"
+then
+  PLUGINS="${PLUGINS} access_output_dummy access_output_udp access_output_file"
+  PLUGINS="${PLUGINS} mux_ts mux_ps mux_dummy"
+  PLUGINS="${PLUGINS} packetizer_mpegaudio packetizer_mpegvideo packetizer_a52"
+  PLUGINS="${PLUGINS} packetizer_mpeg4video packetizer_copy"
+fi
+
+
 dnl
 dnl  Input plugins
 dnl
@@ -877,47 +996,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/dvd_reader.h,
+        [ PLUGINS="${PLUGINS} dvdread"
+          LDFLAGS_dvdread="${LDFLAGS_dvdread} -ldvdread ${LDFLAGS_dvdcss}" ],
+        [ 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
+        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
-        AC_MSG_ERROR([Cannot find dvdread/dvd_reader.h in ${with_dvdread}/include])
+        dnl  Use a custom libdvdread
+        AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
+        BUILTINS="${BUILTINS} dvdread"
+        LDFLAGS_dvdread="${LDFLAGS_dvdread} ${real_dvdread_tree}/dvdread/.libs/libdvdread.a ${LDFLAGS_dvdcss}"
+        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/dvd_reader.h
+    then
+      dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
+      AC_MSG_RESULT(yes)
+      PLUGINS="${PLUGINS} dvdread"
+      LDFLAGS_dvdread="${LDFLAGS_dvdread} -L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}"
+      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/dvd_reader.h])
+    fi
+  fi
 fi
 
 dnl
@@ -928,35 +1065,61 @@ 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} -ldvdplay ${LDFLAGS_dvdread} ${LDFLAGS_dvdcss}"
+          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
-        AC_MSG_ERROR([Cannot find dvdplay/dvdplay.h in ${with_dvdplay}/include])
+        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
+        dnl  Use a custom libdvdplay
+        AC_MSG_RESULT(${real_dvdplay_tree}/src/.libs/libdvdplay.a)
+        BUILTINS="${BUILTINS} dvdplay"
+        LDFLAGS_dvdplay="${LDFLAGS_dvdplay} ${real_dvdplay_tree}/src/.libs/libdvdplay.a ${LDFLAGS_dvdread} ${LDFLAGS_dvdcss}"
+        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} -L${with_dvdplay}/lib -ldvdplay ${LDFLAGS_dvdread} ${LDFLAGS_dvdcss}"
+      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
@@ -1053,18 +1216,30 @@ AC_ARG_ENABLE(vcd,
 
 if test "x${enable_vcd}" != "xno"
 then
+  AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
+    AC_MSG_RESULT(yes)
     PLUGINS="${PLUGINS} vcd"
+  ],[
+    AC_MSG_RESULT(no)
   ])
 
+  AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
+    AC_MSG_RESULT(yes)
     PLUGINS="${PLUGINS} vcd"
     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
+  ],[
+    AC_MSG_RESULT(no)
   ])
 
+  AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
+    AC_MSG_RESULT(yes)
     PLUGINS="${PLUGINS} vcd"
     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
+  ],[
+    AC_MSG_RESULT(no)
   ])
 
   if test "x${SYS}" = "xbsdi" -o "x${SYS}" = "xmingw32"
@@ -1095,7 +1270,7 @@ dnl
 if test "x${SYS}" != "xnto" && test "x${SYS}" != "xmingw32"
 then
   have_ipv6=false
-  AC_CHECK_FUNC(inet_pton,[have_ipv6=:],[
+  AC_CHECK_FUNCS(inet_pton,[have_ipv6=:],[
     AC_CHECK_LIB(resolv,inet_pton,
       [have_ipv6=:
        LDFLAGS_ipv6="${LDFLAGS_ipv6} -lresolv"])
@@ -1160,6 +1335,16 @@ then
    ],[])
 fi
 
+dnl
+dnl  raw dv demux plugin
+dnl
+AC_ARG_ENABLE(rawdv,
+  [  --enable-rawdv          raw dv demux module (default enabled)])
+if test "x${enable_rawdv}" != "xno"
+then
+  PLUGINS="${PLUGINS} rawdv"
+fi
+
 dnl
 dnl  Codec plugins
 dnl
@@ -1242,7 +1427,7 @@ then
     [    --with-ffmpeg=PATH    path to ffmpeg installation],[],[])
   if test "x${with_ffmpeg}" != "xno" -a "x${with_ffmpeg}" != "x"
   then
-    CPPFLAGS_ffmpeg="${CPPFLAGS_ffmpeg} -I${with_ffmpeg}/include/libffmpeg"
+    CPPFLAGS_ffmpeg="${CPPFLAGS_ffmpeg} -I${with_ffmpeg}/include/ffmpeg"
     LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} -L${with_ffmpeg}/lib"
   fi
 
@@ -1664,20 +1849,32 @@ then
     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
     SDL_HEADER="SDL/SDL.h"
   fi
+  # check for cross-compiling
+  SDL_PREFIX=
+  AC_ARG_WITH(sdl-prefix,
+    [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
+                               e.g use as:
+                               --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
+  if test "x${with_sdl_prefix}" != "xno" -a "x${with_sdl_prefix}" != "x"
+  then
+    SDL_PREFIX="--prefix=${with_sdl_prefix}"
+  fi
   if test "x${SDL_CONFIG}" != "xno"
   then
     PLUGINS="${PLUGINS} vout_sdl aout_sdl"
-    CFLAGS_vout_sdl="${CFLAGS_vout_sdl} `${SDL_CONFIG} --cflags`"
-    LDFLAGS_vout_sdl="${LDFLAGS_vout_sdl} `${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`"
-    CFLAGS_aout_sdl="${CFLAGS_aout_sdl} `${SDL_CONFIG} --cflags`"
-    LDFLAGS_aout_sdl="${LDFLAGS_aout_sdl} `${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`"
+    CFLAGS_vout_sdl="${CFLAGS_vout_sdl} `${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`"
+    LDFLAGS_vout_sdl="${LDFLAGS_vout_sdl} `${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`"
+    CFLAGS_aout_sdl="${CFLAGS_aout_sdl} `${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`"
+    LDFLAGS_aout_sdl="${LDFLAGS_aout_sdl} `${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`"
     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
+      [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
+          As a last resort we also test for SDL.h presence),
       [ AC_MSG_ERROR([The development package for SDL is not installed.
 Please install it and try again. Alternatively you can also configure with
 --disable-sdl.])
-      ])
+      ])])
     CPPFLAGS="${CPPFLAGS_save}"
     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
     then
@@ -1699,31 +1896,23 @@ dnl  (disabled by default)
 dnl
 AC_ARG_ENABLE(qte,
   [  --enable-qte            QT Embedded support (default disabled)])
-if test "x${enable_qte}" != "xno"
+if test "x${enable_qte}" = "xyes"
 then
   AC_ARG_WITH(qte,
-  [    --with-qte=PATH    Qt Embedded headers and libraries])
-  if test "x${with_qte}" = "x"
+  [    --with-qte=PATH       Qt Embedded headers and libraries])
+  if test "x${with_qte}" != "xno" -a "x${with_qte}" != "x"
   then
-    LDFLAGS_test="-L${QTDIR}/lib"
-    CPPFLAGS_test="-I${QTDIR}/include"
+    LDFLAGS_qte="${LDFLAGS_qte} -L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte"
+    CPPFLAGS_qte="${CPPFLAGS_qte} -I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti"
   else
-    LDFLAGS_test="-L${with_qte}/lib"
-    CPPFLAGS_test="-I${with_qte}/include"
+    LDFLAGS_qte="${LDFLAGS_qte} -L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte"
+    CPPFLAGS_qte="${CPPFLAGS_qte} -I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti"
   fi
-
-  CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
-  AC_CHECK_HEADERS(qt.h, [
-    CPPFLAGS_qte="${CPPFLAGS_qte} ${CPPFLAGS_test} -DQT_QWS_IPAQ -DQWS"
-    CXXFLAGS_qte="${CXXFLAGS_qte} -fno-exceptions -fno-rtti"
-    LDFLAGS_qte="${LDFLAGS_qte} ${LDFLAGS_test} -lqte"
-    if test "x${with_qte}" = "x"
-    then
-      PLUGINS="${PLUGINS} qte"
-    else
-      BUILTINS="${BUILTINS} qte"
-    fi
-  ])
+  PLUGINS="${PLUGINS} qte"
+  CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_qte}"
+  AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
+    AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
+  ] )
   CPPFLAGS="${CPPFLAGS_save}"
 fi
 
@@ -1920,7 +2109,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])
@@ -2023,14 +2212,24 @@ then
   then
     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
   fi
+  # check for cross-compiling
+  GTK_PREFIX=
+  AC_ARG_WITH(gtk-prefix,
+    [    --with-gtk-prefix=PATH path to libgtk (needed for cross-compiling),
+                          e.g use as:
+                          --with-gtk-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
+  if test "x${with_gtk_prefix}" != "xno" -a "x${with_gtk_prefix}" != "x"
+  then
+    GTK_PREFIX="--prefix=$with_gtk_prefix"
+  fi
   if test "x${GTK_CONFIG}" != "xno"
   then
     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
     then
       AC_MSG_ERROR([Your development package for Gtk+ is too old, you need at least version 1.2.0. Please upgrade and try again. Alternatively you can also configure with --disable-familiar.])
     fi
-    CFLAGS_familiar="${CFLAGS_familiar} `${GTK_CONFIG} --cflags gtk gthread`"
-    LDFLAGS_familiar="${LDFLAGS_familiar} `${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`"
+    CFLAGS_familiar="${CFLAGS_familiar} `${GTK_CONFIG} ${GTK_PREFIX} --cflags gtk gthread`"
+    LDFLAGS_familiar="${LDFLAGS_familiar} `${GTK_CONFIG} ${GTK_PREFIX} --libs gtk gthread | sed 's,-rdynamic,,'`"
     # now look for the gtk.h header
     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_familiar}"
     ac_cv_gtk_headers=yes
@@ -2041,10 +2240,37 @@ then
     if test "x${ac_cv_gtk_headers}" = "xyes"
     then
       PLUGINS="${PLUGINS} familiar"
-      NEED_GTK_MAIN=yes
     fi
     CPPFLAGS="${CPPFLAGS_save}"
-  fi
+
+    # now look for gpe support
+    AC_ARG_WITH(gpe-prefix,
+    [    --with-gpe-prefix=PATH gpe installation path prefix (default search in \$PATH)],[],[])
+    if test "x$with_gpe_prefix" != "xno"  -a "x$with_gpe_prefix" != "x"
+    then
+      CFLAGS_gpe="-I$with_gpe_prefix/include"
+      LDFLAGS_gpe="-lXi -lgdk_pixbuf -L$with_gpe_prefix/lib -lgpewidget"
+      # now look for gpe/init.h header file
+      CFLAGS_save=$CFLAGS
+      LDFLAGS_save=$LDFLAGS
+      CFLAGS="${CFLAGS_familiar} ${CFLAGS_gpe}"
+      LDFLAGS="${LDFLAGS_familiar} ${LDFLAGS_gpe}"
+      CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_familiar} ${CFLAGS_gpe}"
+      ac_cv_gpe_headers=yes
+      AC_CHECK_HEADERS(gpe/init.h, ,
+        [ ac_cv_gpe_headers=no
+          AC_MSG_ERROR([Cannot find development headers for libgpewidget...]) ])
+      CFLAGS=$CFLAGS_save
+      LDFLAGS=$LDFLAG_save
+      if test "x${ac_cv_gpe_headers}" = "xyes"
+      then
+        CFLAGS_familiar="${CFLAGS_familiar} ${CFLAGS_gpe}"
+        LDFLAGS_familiar="${LDFLAGS_familiar} ${LDFLAGS_gpe}"
+      fi
+    else
+         NEED_GTK_MAIN=yes
+    fi # end gpe support
+  fi # end gtk+ support
 fi
 
 dnl
@@ -2096,10 +2322,10 @@ then
     then
       AC_MSG_ERROR([Your development package for wxWindows is too old, you need at least version 2.3.0. Please upgrade and try again. Alternatively you can also configure with --disable-wxwindows.])
     fi
-    CXXFLAGS_wxwindows="${CXXFLAGS_wxwindows} `${WX_CONFIG} --cflags`"
+    CXXFLAGS_wxwindows="${CXXFLAGS_wxwindows} `${WX_CONFIG} --cxxflags`"
     LDFLAGS_wxwindows="${LDFLAGS_wxwindows} `${WX_CONFIG} --libs`"
     # now look for the wxprec.h header
-    CPPFLAGS="${save_CPPFLAGS} ${CXXFLAGS_wxwindows}"
+    CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwindows}"
     ac_cv_wx_headers=yes
     AC_CHECK_HEADERS(wx/wxprec.h, , [
       ac_cv_wx_headers=no
@@ -2110,7 +2336,7 @@ then
       PLUGINS="${PLUGINS} wxwindows"
       ALIASES="${ALIASES} wxvlc"
     fi
-    CPPFLAGS="${save_CPPFLAGS}"
+    CPPFLAGS="${CPPFLAGS_save}"
   fi
 fi
 
@@ -2158,24 +2384,29 @@ AC_ARG_ENABLE(opie,
   [  --enable-opie           Qt embedded interface support (default disabled)],
   [if test "x${enable_opie}" = "xyes"; then
      AC_ARG_WITH(qte,
-     [    --with-qte=PATH    Qt Embedded headers and libraries])
-     if test "x${with_qte}" = "x"
+     [    --with-qte=PATH       Qt Embedded headers and libraries])
+     if test "x${with_qte}" != "xno" -a "x${with_qte}" != "x"
      then
-       LDFLAGS_test="-L${QTDIR}/lib"
-       CPPFLAGS_test="-I${QTDIR}/include"
+       LDFLAGS_qte="-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte"
+       CPPFLAGS_qte="-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti"
      else
-       LDFLAGS_test="-L${with_qte}/lib"
-       CPPFLAGS_test="-I${with_qte}/include"
+       LDFLAGS_qte="-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`"
+       CPPFLAGS_qte="-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`"
      fi
+     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_qte}"
+     AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
+       AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
+     ] )
+     CPPFLAGS="${CPPFLAGS_save}"
 
      PLUGINS="${PLUGINS} opie"
-     LDFLAGS_opie="${LDFLAGS_opie} ${LDFLAGS_test} -lqte"
-     CPPFLAGS_opie="${CPPFLAGS_opie} ${CPPFLAGS_test}"
-     if test -x ${QTEDIR}/bin/moc
+     LDFLAGS_opie="${LDFLAGS_opie} -lqpe ${LDFLAGS_qte}"
+     CPPFLAGS_opie="${CPPFLAGS_opie} ${CPPFLAGS_qte}"
+     if test "x${with_qte}" != "xno" -a "x${with_qte}" != "x"
      then
-       MOC=${QTEDIR}/bin/moc
+       MOC=${with_qte}/bin/moc
      else
-       MOC=moc
+       MOC=${QTDIR}/bin/moc
      fi
    fi])
 
@@ -2344,11 +2575,16 @@ AC_ARG_ENABLE(pth,
   [  --enable-pth            GNU Pth support (default disabled)],
   [ if test "x${enable_pth}" = "xyes"; then
     AC_CHECK_LIB(pth,pth_init)
+    AC_MSG_CHECKING(for pth_init in pth.h)
     AC_EGREP_HEADER(pth_init,pth.h,[
+      AC_MSG_RESULT(yes)
       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
                 Define if <pth.h> defines pth_init)
-    THREAD_LIB="-lpth"
-    fi])
+      THREAD_LIB="-lpth"
+    ],[
+      AC_MSG_RESULT(no)
+    ])
+    fi
 ])
 
 dnl
@@ -2358,11 +2594,16 @@ AC_ARG_ENABLE(st,
   [  --enable-st             State Threads (default disabled)],
   [ if test "x${enable_st}" = "xyes"; then
     AC_CHECK_LIB(st,st_init)
+    AC_MSG_CHECKING(for st_init in st.h)
     AC_EGREP_HEADER(st_init,st.h,[
+      AC_MSG_RESULT(yes)
       AC_DEFINE(ST_INIT_IN_ST_H, 1,
                 Define if <st.h> defines st_init)
-    THREAD_LIB="-lst"
-    fi])
+      THREAD_LIB="-lst"
+    ],[
+      AC_MSG_RESULT(yes)
+    ])
+    fi
 ])
 
 if test "x${SYS}" != "xmingw32"; then
@@ -2428,6 +2669,7 @@ if test "x${NEED_GTK_MAIN}" != "xno"
 then
     PLUGINS="${PLUGINS} gtk_main"
     CFLAGS_gtk="${CFLAGS_gtk} -DNEED_GTK_MAIN"
+       CFLAGS_familiar="${CFLAGS_familiar} -DNEED_GTK_MAIN"
     CFLAGS_gtk_main="${CFLAGS_gtk_main} ${CFLAGS_gtk} ${CFLAGS_familiar}"
     LDFLAGS_gtk_main="${LDFLAGS_gtk_main} ${LDFLAGS_gtk} ${LDFLAGS_familiar}"
 fi