gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] [SCM] Gnash branch, master, updated. release_0_8_9_final-


From: Rob Savoye
Subject: [Gnash-commit] [SCM] Gnash branch, master, updated. release_0_8_9_final-1596-gc852af2
Date: Fri, 01 Feb 2013 01:08:01 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Gnash".

The branch, master has been updated
       via  c852af29ce6a51200ee436ddfd550c6134e16f4c (commit)
       via  b447dbb816d665a543c579436bb9bcb1ed79f418 (commit)
       via  6a8ef1a656af72fc95bf5eb0f4f4831ea2a184cd (commit)
       via  e2a11fa30c0bdad78aa88e7ba6cc231ca831654e (commit)
       via  9f900706be88625c31b3b717cd2879c6654a07c3 (commit)
       via  bdeb4c612955c2ed9e42b7aedc66afd2312c70d9 (commit)
       via  8f862b53f43439a38a2c5a2886f6bb12b9f08674 (commit)
       via  e3a3bbdf8929e656517104d88dfbb5998dbbba3e (commit)
       via  1d4d116fed2bb67c6fdb2f8ad59d6dd4f70d8967 (commit)
       via  075f7ce456bff859a19a811f89314b7c69cb7aa0 (commit)
       via  3e3d376fae54fd74f2067de98f9f1bcdb2ebdc6c (commit)
       via  d73500d865f1e8323eb5fdc4ffeea631fd229a9e (commit)
       via  f2ea2e23bffc5a869b1bec4987bba6b6efd0e1af (commit)
       via  9a9ba5f38710cb0b63aaea7d0f53b5c6fbff20c0 (commit)
       via  f9b71b2ecd9cef8b65172894a656485f2c97e719 (commit)
       via  727716dbe0e2372a6294684318e26c175149998a (commit)
       via  5bcb813bac7d46e8fc1c634df80c1c6ac4afa3d2 (commit)
       via  166101f4a76a2121a7eb077a498fca8456284400 (commit)
       via  24072cc929992a652ecdaf6bb87f2746ec8c1f47 (commit)
       via  c996129e407f4c9f6b14dcd27fc07ceb4abdaae6 (commit)
       via  e6d891eb112495e7a8aa63ec5a246acaad436d80 (commit)
       via  44255b4d1dbe0fd3380145004c5bd1a17d70f2cf (commit)
       via  f927f48071dcc318085ca0e5e6d635c00ed99152 (commit)
       via  f4238f5fe51394f90f51ea7389089e963b8675ef (commit)
       via  4f1d3744e4c7be75ced6291280679df0e8e2cc6f (commit)
       via  46954e006cb071dac0fc796d50577947d6c7804a (commit)
       via  b443f057db6c07a51cc245c1ab17578781d01a04 (commit)
       via  ec9ffbee64877e8d143ccc4c0d65a9ddbaab52bb (commit)
       via  c4c19c7f49210ce8f5724962bf341ad7c9ec8695 (commit)
       via  c1a885d5ec91e4aff0e4b7b282f6a784fde9e090 (commit)
       via  b39312e9fe4a2d0d46b118245e38e67532934d3a (commit)
       via  6451809ff0262e326132ff20bc2e8b6eccb91fa5 (commit)
       via  6e8881330c3f7b03270abbeaa94b60a08acd1ce5 (commit)
       via  037f23961107956e66798c1f48dde5d505f4e888 (commit)
       via  29b02a8e6cdbb9483abd462e7c19664a5bacfcfb (commit)
       via  811d7754499a61bdbcde03b7dc4c5feb83704c9e (commit)
       via  72e9743c0804f089609c3e5ff1c5c0e27f4d3396 (commit)
       via  e0c54559559d1cee915c1d07046c88e01562cf64 (commit)
       via  ceaea748d0e71b64c704e0b9d3698e90d1cea539 (commit)
       via  4983f70a09318ef97a861bfa0d2267ad9e423759 (commit)
       via  e3b571b53dcb6ddf71a754837bc82caaea939da1 (commit)
       via  4022d8cfefb4d5448ac6b99dcfdb96f0d3532d33 (commit)
       via  052e2def9d7245de53c0efd1f66f7b10433e19a2 (commit)
       via  3aafd13a1296d82349f48d5ad131971abc0ae5f0 (commit)
       via  276f897099d54b452f2912769a49faca9f204057 (commit)
       via  a8ab691ed1e8bb291820b6d9505317ef12519380 (commit)
       via  04a47bd8aafdbb560f152ce34e559f62b33e9487 (commit)
       via  ec25d309b26b94a5a084362d8bd8594942764dd7 (commit)
       via  1113019d3614a1a2d61d05f61e68f8574bf01d18 (commit)
       via  181b94db5f4b938907a2beb70e904988fd2e0e7e (commit)
       via  a98754316f3f51558234b1314dafcd3bfe370225 (commit)
       via  7617e40d1b6f8266667cb72920a4fc1bd60b6d61 (commit)
       via  b74f2bf8dad36977e27b4711192754d94cdac752 (commit)
       via  5185de95b6d2226b8aeaec27968f5565dc9fe052 (commit)
       via  5d86eec7b74a5c6710b6e1f886a857478ee402eb (commit)
       via  2a8924cb515ba415190522d336eea1c8792c00f4 (commit)
       via  bb51ea56aaaa442e494dfbf72a5ec23d6342ec69 (commit)
       via  7faad99ef43d423dab7680b4a4612746d129aa4e (commit)
       via  aa6897ed4b11bdf166ed66ddb405f12a4923c111 (commit)
       via  e89fede3484d79599d8f80c742fa22232e86c116 (commit)
       via  622e7e908b5e9cb82653f305a04c3a19e2e581c5 (commit)
       via  c52aae056a7651a7c83c5cc1cbb4a4f2c0847538 (commit)
       via  8696fc4f474eda9be8c58f059b15cd04f3986476 (commit)
       via  4ddc7446e3f0eb6eec623a1bb7c8f583cd618775 (commit)
       via  47c980f9a34050330cf13a9b5b6a3b2fde395e5c (commit)
       via  ceb559c493b466cb3785346776e044dc6c974242 (commit)
       via  143a09d9c2258cf5b8e8b8ae074be41341a114e1 (commit)
      from  a5c8d01a8b836f8ffbd8aa1d2582000052a98dbf (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit//commit/?id=c852af29ce6a51200ee436ddfd550c6134e16f4c


commit c852af29ce6a51200ee436ddfd550c6134e16f4c
Merge: b447dbb a5c8d01
Author: Rob Savoye <address@hidden>
Date:   Wed Jan 30 15:44:07 2013 -0700

    Merge branch 'master' of git.sv.gnu.org:/srv/git/gnash


http://git.savannah.gnu.org/cgit//commit/?id=b447dbb816d665a543c579436bb9bcb1ed79f418


commit b447dbb816d665a543c579436bb9bcb1ed79f418
Merge: 6a8ef1a d58d080
Author: Rob Savoye <address@hidden>
Date:   Wed Jan 30 15:03:17 2013 -0700

    Merge branch 'master' of git.sv.gnu.org:/srv/git/gnash


http://git.savannah.gnu.org/cgit//commit/?id=6a8ef1a656af72fc95bf5eb0f4f4831ea2a184cd


commit 6a8ef1a656af72fc95bf5eb0f4f4831ea2a184cd
Author: Rob Savoye <address@hidden>
Date:   Mon Jan 28 11:34:09 2013 -0700

    Don't append CXXFLAGS to CFLAGS.

diff --git a/configure.ac b/configure.ac
index 2d37110..fa43a0c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2907,7 +2907,7 @@ AC_ARG_ENABLE([harden],
 
 if test x"$harden" = x"yes" -a x"${host_cpu}" != mips -a x"${android}" != 
xyes; then
     CPPFLAGS="${CPPFLAGS} -D_FORTIFY_SOURCE=2"
-    CFLAGS="${CXXFLAGS} -fPIE -fstack-protector --param ssp-buffer-size=4 
-Wformat -Werror=format-security"
+    CFLAGS="${CFLAGS} -fPIE -fstack-protector --param ssp-buffer-size=4 
-Wformat -Werror=format-security"
     CXXFLAGS="${CXXFLAGS} -fPIE -fstack-protector --param ssp-buffer-size=4 
-Wformat -Werror=format-security"
     LDFLAGS="${LDFLAGS} -fPIE -pie -Wl,-z,relro -Wl,-z,now"
 fi

http://git.savannah.gnu.org/cgit//commit/?id=e2a11fa30c0bdad78aa88e7ba6cc231ca831654e


commit e2a11fa30c0bdad78aa88e7ba6cc231ca831654e
Author: Rob Savoye <address@hidden>
Date:   Mon Jan 28 11:33:44 2013 -0700

    be less verbose, it's screwing up test results

diff --git a/libbase/extension.cpp b/libbase/extension.cpp
index ad5541e..45fab1d 100644
--- a/libbase/extension.cpp
+++ b/libbase/extension.cpp
@@ -152,7 +152,7 @@ bool
 Extension::initModuleWithFunc(const std::string& module,
         const std::string& func, as_object &obj)
 {
-    GNASH_REPORT_FUNCTION;
+//    GNASH_REPORT_FUNCTION;
 
     SharedLib *sl;
 
@@ -188,7 +188,7 @@ Extension::scanDir()
 bool
 Extension::scanDir(const std::string& dirlist)
 {
-    GNASH_REPORT_FUNCTION;
+//    GNASH_REPORT_FUNCTION;
     
     Tok t(dirlist, Sep(":"));
     for (Tok::iterator i = t.begin(), e = t.end(); i != e; ++i) {
@@ -241,7 +241,7 @@ Extension::scanDir(const std::string& dirlist)
 void
 Extension::dumpModules()
 {
-    GNASH_REPORT_FUNCTION;
+//   GNASH_REPORT_FUNCTION;
     
     std::cerr << _modules.size() << " plugin(s) for Gnash installed" << 
std::endl;    
     std::vector<std::string>::iterator it;

http://git.savannah.gnu.org/cgit//commit/?id=9f900706be88625c31b3b717cd2879c6654a07c3


commit 9f900706be88625c31b3b717cd2879c6654a07c3
Merge: e3a3bbd bdeb4c6
Author: Rob Savoye <address@hidden>
Date:   Sat Jan 26 10:56:20 2013 -0700

    Merge branch 'master' of ssh://build/home/rob/projects/gnu/gnash-git/master


http://git.savannah.gnu.org/cgit//commit/?id=bdeb4c612955c2ed9e42b7aedc66afd2312c70d9


commit bdeb4c612955c2ed9e42b7aedc66afd2312c70d9
Author: Rob Savoye <address@hidden>
Date:   Sat Jan 26 10:56:00 2013 -0700

    Don't use -fvisibility-inlines-hidden for C code.

diff --git a/configure.ac b/configure.ac
index aeb53e3..2d37110 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2837,7 +2837,7 @@ AC_DEFUN([CHECK_VISIBILITY_GCC_BUG],
         AC_LANG_PUSH(C++)
         save_CXXFLAGS=$CXXFLAGS
         save_LDFLAGS=$LDFLAGS
-        CFLAGS="-fPIC -fvisibility-inlines-hidden -O0"
+        CFLAGS="-fPIC -O0"
         CXXFLAGS="-fPIC -fvisibility-inlines-hidden -O0"
         LDFLAGS="$LDFLAGS -shared -fPIC"
 

http://git.savannah.gnu.org/cgit//commit/?id=8f862b53f43439a38a2c5a2886f6bb12b9f08674


commit 8f862b53f43439a38a2c5a2886f6bb12b9f08674
Author: Rob Savoye <address@hidden>
Date:   Sat Jan 26 10:53:19 2013 -0700

    use shared flags for CFLAGS in addition to CXXFLAGS. This is needed so the 
C testcases wll build with new GNU tools.

diff --git a/configure.ac b/configure.ac
index e886f5e..aeb53e3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2837,6 +2837,7 @@ AC_DEFUN([CHECK_VISIBILITY_GCC_BUG],
         AC_LANG_PUSH(C++)
         save_CXXFLAGS=$CXXFLAGS
         save_LDFLAGS=$LDFLAGS
+        CFLAGS="-fPIC -fvisibility-inlines-hidden -O0"
         CXXFLAGS="-fPIC -fvisibility-inlines-hidden -O0"
         LDFLAGS="$LDFLAGS -shared -fPIC"
 
@@ -2906,6 +2907,7 @@ AC_ARG_ENABLE([harden],
 
 if test x"$harden" = x"yes" -a x"${host_cpu}" != mips -a x"${android}" != 
xyes; then
     CPPFLAGS="${CPPFLAGS} -D_FORTIFY_SOURCE=2"
+    CFLAGS="${CXXFLAGS} -fPIE -fstack-protector --param ssp-buffer-size=4 
-Wformat -Werror=format-security"
     CXXFLAGS="${CXXFLAGS} -fPIE -fstack-protector --param ssp-buffer-size=4 
-Wformat -Werror=format-security"
     LDFLAGS="${LDFLAGS} -fPIE -pie -Wl,-z,relro -Wl,-z,now"
 fi

http://git.savannah.gnu.org/cgit//commit/?id=e3a3bbdf8929e656517104d88dfbb5998dbbba3e


commit e3a3bbdf8929e656517104d88dfbb5998dbbba3e
Merge: 075f7ce 673c5de
Author: Rob Savoye <address@hidden>
Date:   Sat Jan 26 09:26:51 2013 -0700

    Merge branch 'master' of git.sv.gnu.org:/srv/git/gnash


http://git.savannah.gnu.org/cgit//commit/?id=1d4d116fed2bb67c6fdb2f8ad59d6dd4f70d8967


commit 1d4d116fed2bb67c6fdb2f8ad59d6dd4f70d8967
Merge: 075f7ce 673c5de
Author: Rob Savoye <address@hidden>
Date:   Fri Jan 25 21:49:04 2013 -0700

    Merge branch 'master' of git://git.savannah.gnu.org/gnash
    
    Sync with master for more testing.


http://git.savannah.gnu.org/cgit//commit/?id=075f7ce456bff859a19a811f89314b7c69cb7aa0


commit 075f7ce456bff859a19a811f89314b7c69cb7aa0
Author: Rob Savoye <address@hidden>
Date:   Mon Jan 21 22:31:19 2013 -0700

    the qt4 gui needs libboost_program_options.

diff --git a/gui/qt/qt4.am b/gui/qt/qt4.am
index 5366a8e..d6793bd 100644
--- a/gui/qt/qt4.am
+++ b/gui/qt/qt4.am
@@ -54,6 +54,7 @@ qt4_gnash_LDFLAGS = -export-dynamic
 qt4_gnash_LDADD = \
        $(GNASH_LIBS) \
        $(AM_LDFLAGS) \
+    $(BOOST_LIBS) \
        $(X11_LIBS) \
        $(NULL)
 

http://git.savannah.gnu.org/cgit//commit/?id=3e3d376fae54fd74f2067de98f9f1bcdb2ebdc6c


commit 3e3d376fae54fd74f2067de98f9f1bcdb2ebdc6c
Author: Rob Savoye <address@hidden>
Date:   Mon Jan 21 22:26:45 2013 -0700

    include iostream so std::cerr is defined.

diff --git a/libcore/SWFMatrix.cpp b/libcore/SWFMatrix.cpp
index 4246faa..220c9ef 100644
--- a/libcore/SWFMatrix.cpp
+++ b/libcore/SWFMatrix.cpp
@@ -24,6 +24,7 @@
 
 #include <cmath>
 #include <iomanip>
+#include <iostream>
 
 #include "log.h"
 #include "GnashNumeric.h"

http://git.savannah.gnu.org/cgit//commit/?id=d73500d865f1e8323eb5fdc4ffeea631fd229a9e


commit d73500d865f1e8323eb5fdc4ffeea631fd229a9e
Author: Rob Savoye <address@hidden>
Date:   Mon Jan 21 22:26:09 2013 -0700

    the dump gui needs libboost_program_options.

diff --git a/gui/dump/dump.am b/gui/dump/dump.am
index 73b1a5e..2c16e73 100644
--- a/gui/dump/dump.am
+++ b/gui/dump/dump.am
@@ -33,4 +33,5 @@ dump_gnash_LDADD = \
        $(GNASH_LIBS) \
        $(top_builddir)/libdevice/libgnashdevice.la \
        $(AGG_LIBS) \
+    $(BOOST_LIBS) \
        $(NULL)

http://git.savannah.gnu.org/cgit//commit/?id=f2ea2e23bffc5a869b1bec4987bba6b6efd0e1af


commit f2ea2e23bffc5a869b1bec4987bba6b6efd0e1af
Merge: 9a9ba5f 166101f
Author: Rob Savoye <address@hidden>
Date:   Mon Jan 21 21:42:09 2013 -0700

    merge in improved Android support

diff --cc configure.ac
index acc8425,960b015..e886f5e
--- a/configure.ac
+++ b/configure.ac
@@@ -296,7 -282,8 +296,7 @@@ els
    ANDROID_NDK=
  fi
  AC_SUBST(ANDROID_NDK)
--AM_CONDITIONAL(ANDROID, [ test x"${android_ndk}" != xno ])
 -
++AM_CONDITIONAL(ANDROID, [ test x"${android}" = xyes ])
  AC_SUBST(CROSS_LDFLAGS)
  AC_SUBST(CROSS_CXXFLAGS)
  
@@@ -1059,7 -1061,7 +1059,7 @@@ if test x"${build_fb}" = xyes -o x"${bu
    build_fb_agg=yes
  fi
  dnl AGG support for the framebuffer requires the rawfb device
--if test x"${build_fb_agg}" = xyes -a x"${build_agg}" = xyes; then
++if test x"${build_fb_agg}" = xyes -o x"${build_agg}" = xyes; then
    build_rawfb_device=yes
    device_list="RawFB"
    ndevice=1
@@@ -2534,7 -2523,7 +2534,7 @@@ if test x"${build_gles1}"; the
  fi
  
  dnl only Linux supports /dev/fb0
--if test x"${build_rawfb_device}" = xyes -a x"${linux}" = xyes; then
++if test x"${build_rawfb_device}" = xyes; then
     AC_DEFINE([BUILD_RAWFB_DEVICE], [1], [Use raw Framebuffer device support])
  fi
  
@@@ -2894,22 -2882,6 +2894,22 @@@ if test x"$ac_cv_gcc_visibility" = xye
    CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
  fi
  
 +AC_ARG_ENABLE([harden],
 +  AC_HELP_STRING([--disable-harden],[Disable hardening]),
 +  [case "${enableval}" in
 +    yes) harden=yes ;;
 +    no)  harden=no ;;
 +    *) AC_MSG_ERROR([bad value ${enableval} for --enable-harden option]) ;;
 +  esac],
 +  [harden=yes]
 +)
 +
- if test x"$harden" = x"yes" -a x"${host_cpu}" != mips; then
++if test x"$harden" = x"yes" -a x"${host_cpu}" != mips -a x"${android}" != 
xyes; then
 +    CPPFLAGS="${CPPFLAGS} -D_FORTIFY_SOURCE=2"
 +    CXXFLAGS="${CXXFLAGS} -fPIE -fstack-protector --param ssp-buffer-size=4 
-Wformat -Werror=format-security"
 +    LDFLAGS="${LDFLAGS} -fPIE -pie -Wl,-z,relro -Wl,-z,now"
 +fi
 +
  dnl Define convenience constants so Gnash can print out the
  dnl default configuration of the build.
  RENDERER_CONFIG="${renderer_list}"
diff --cc gui/fb/fb.cpp
index f5020da,cac458a..336fb6e
--- a/gui/fb/fb.cpp
+++ b/gui/fb/fb.cpp
@@@ -1,5 -1,5 +1,5 @@@
  //
--//   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
++//   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free 
Software
  //   Foundation, Inc
  //
  // This program is free software; you can redistribute it and/or modify
@@@ -126,8 -126,8 +126,12 @@@
  
  #ifdef RENDERER_GLES1
  # include "fb_glue_gles1.h"
++# include "opengles1/Renderer_gles1.h"
  #endif
  
++// We need to declare the std::, as the boost header files want to use 
ptrdiff_t.
++using namespace std;
++
  namespace gnash {
  
  namespace gui {
@@@ -207,6 -209,27 +213,28 @@@ FBGui::init(int argc, char *** argv
      }
  #endif
  
+ #ifdef RENDERER_GLES1
+     if ((renderer == "opengles1") || (renderer == "gles1")) {
+         renderer = "opengles1";
+         _glue.reset(new FBgles1Glue(0));
+         // Initialize the glue layer between the renderer and the gui toolkit
+         if (!_glue->init(argc, argv)) {
+             return false;
+         }
+         
+         FBgles1Glue *gles1 = reinterpret_cast<FBgles1Glue *>(_glue.get());
+         // Set "window" size
+         _width =  gles1->getWidth();
+         _height = gles1->getHeight();
+         log_debug("Width:%d, Height:%d", _width, _height);
 -        _renderer.reset(renderer::openvg::create_handler(0));     
++        //_renderer.reset(create_render_handler_gles1(true, _glue));
++        _renderer.reset(renderer::gles1::create_handler(""));
+         // renderer::openvg::Renderer_gles1 *rend = reinterpret_cast
+         //     <renderer::openvg::Renderer_ovg *>(_renderer.get());
+         // rend->init(_width, _height);
+     }
+ #endif
+     
      // map framebuffer into memory
      // Create a new Glue layer
  #ifdef RENDERER_AGG
diff --cc libbase/jemalloc.c
index 077dead,077dead..b1db3e2
--- a/libbase/jemalloc.c
+++ b/libbase/jemalloc.c
@@@ -1826,7 -1826,7 +1826,7 @@@ RETURN
        if (pfd != -1)
                pagefile_close(pfd);
  #endif
--      return (false);
++      return (ret);
  }
  
  static bool
@@@ -2275,7 -2275,7 +2275,7 @@@ pages_map_align(size_t size, int pfd, s
        aligned_ret &= ~(alignment - 1);
        extra_size = aligned_ret - (uintptr_t)ret;
        munmap(ret, extra_size);
--      munmap(ret + extra_size + size, alignment - extra_size);
++      munmap((char *)ret + extra_size + size, alignment - extra_size);
        ret = (void*)aligned_ret;
  #endif /* ifdef MOZ_MEMORY_SOLARIS*/
        return (ret);

http://git.savannah.gnu.org/cgit//commit/?id=9a9ba5f38710cb0b63aaea7d0f53b5c6fbff20c0


commit 9a9ba5f38710cb0b63aaea7d0f53b5c6fbff20c0
Author: Rob Savoye <address@hidden>
Date:   Sun Dec 30 08:49:57 2012 -0700

    fix spelling mistake

diff --git a/configure.ac b/configure.ac
index bc590ff..acc8425 100644
--- a/configure.ac
+++ b/configure.ac
@@ -67,7 +67,7 @@ case "${host}" in
     DEFAULT_FLASH_PLATFORM_ID="BSD"
     DEFAULT_FLASH_SYSTEM_OS="NetBSD"
     ;;
-  *-amdroid*)
+  *-android*)
     DEFAULT_FLASH_PLATFORM_ID="AND"
     DEFAULT_FLASH_SYSTEM_OS="Linux"
     ;;

http://git.savannah.gnu.org/cgit//commit/?id=f9b71b2ecd9cef8b65172894a656485f2c97e719


commit f9b71b2ecd9cef8b65172894a656485f2c97e719
Author: Rob Savoye <address@hidden>
Date:   Sat Dec 29 22:54:08 2012 -0700

    improve cross compiling support, especially for Android.

diff --git a/configure.ac b/configure.ac
index 5da7aae..bc590ff 100644
--- a/configure.ac
+++ b/configure.ac
@@ -67,6 +67,10 @@ case "${host}" in
     DEFAULT_FLASH_PLATFORM_ID="BSD"
     DEFAULT_FLASH_SYSTEM_OS="NetBSD"
     ;;
+  *-amdroid*)
+    DEFAULT_FLASH_PLATFORM_ID="AND"
+    DEFAULT_FLASH_SYSTEM_OS="Linux"
+    ;;
   *-linux-gnu)
     DEFAULT_FLASH_PLATFORM_ID="LNX"
     DEFAULT_FLASH_SYSTEM_OS="GNU/Linux"
@@ -165,6 +169,10 @@ case "${host}" in
     solaris=yes
     AC_DEFINE([SOLARIS_HOST], [1], [this is a Solaris platform])
     ;;
+  *-android*)
+    android=yes
+    AC_DEFINE([ANDROID_HOST], [1], [this is an Android platform])
+    ;;
   *-*linux*)
     linux=yes
     AC_DEFINE([LINUX_HOST], [1], [this is a Linux platform])
@@ -198,10 +206,6 @@ case "${host}" in
     AC_DEFINE([WINCE_HOST], [1], [this is a WINCE platform])
     AC_DEFINE([WINCE6_HOST], [1], [this is a WINCE6 platform])
     ;;
-  *-android*)
-    android=yes
-    AC_DEFINE([ANDROID_HOST], [1], [this is an Android platform])
-    ;;
 esac
 
 
@@ -274,24 +278,27 @@ AC_ARG_WITH([android],
         android_ndk=${withval}
         if test x"${withval}" != x; then
           android_ndk=${withval}
-        else
-          android_ndk=/opt/android-ndk-r3/build/platforms/android-5/arch-arm
         fi
 )
 CROSS_CXXFLAGS=
-if test x"${android_ndk}" != xno; then
-  CROSS_CXXFLAGS=-mandroid -fexceptions
+if test x"${android}" = xyes; then
+  CROSS_CXXFLAGS='-fexceptions -frtti -I${prefix}/include'
+  CROSS_LDFLAGS='-all-static -L${prefix}/lib'
   if test x"${with_top_level}" = x; then
     with_top_level=/usr/local/android-arm/sysroot/usr
     cross_compiling=yes
   fi
   ANDROID_NDK=${android_ndk}
   AC_DEFINE(ANDROID, [1], [This is an Android build])
+  CXXFLAGS="${CXXFLAGS} ${CROSS_CXXFLAGS}"
 else
+  CROSS_CXXFLAGS=
   ANDROID_NDK=
 fi
 AC_SUBST(ANDROID_NDK)
 AM_CONDITIONAL(ANDROID, [ test x"${android_ndk}" != xno ])
+AC_SUBST(CROSS_LDFLAGS)
+AC_SUBST(CROSS_CXXFLAGS)
 
 AC_C_BIGENDIAN
 AC_C_CONST
@@ -742,6 +749,11 @@ AC_ARG_ENABLE(sound,
    fi]
 )
 
+AM_CONDITIONAL(BUILD_LIBSOUND, test x${build_sound_none} != xyes)
+if test x${build_sound_none} != xyes; then
+  AC_DEFINE(USE_SOUND, [1], [Build any sound code])
+fi
+
 dnl --------------------------------------------------------
 dnl  Media handler selection
 dnl --------------------------------------------------------
@@ -794,6 +806,11 @@ AC_ARG_ENABLE(media,
     fi]
 )
 
+AM_CONDITIONAL(BUILD_LIBMEDIA, test x${build_media_none} != xyes)
+if test x${build_media_none} != xyes; then
+  AC_DEFINE(USE_MEDIA, [1], [Build any media code])
+fi
+
 dnl If no render is selected, and media handling isn't disabled, them enable 
gst
 if test x${build_media_none} = xno -a x${build_media_gst} = xno -a 
x${build_media_ffmpeg} = xno; then
   build_media_gst=yes
@@ -1030,7 +1047,12 @@ dnl GMA500 but you currently will have to build the AGG 
renderer
 dnl instead of the OGL (OpenGL) one. 
 build_vaapi_device=no
 build_openmax_device=no
-build_egl_device=no
+dnl These renders always require EGL support
+if test x${build_gles1} = xyes -o x${build_ovg} = xyes; then
+  build_egl_device=yes
+else
+  build_egl_device=no
+fi
 build_x11_device=no
 build_directfb_device=no
 if test x"${build_fb}" = xyes -o x"${build_fb}" = xauto; then
@@ -1875,14 +1897,14 @@ fi
 dnl Check possibility to build FB gui, if requested
 dnl FB dependency is a linux system (linux/fb.h)
 if test x"${build_fb}" != xno; then
-  if test x"${linux}" = xyes; then
+  if test x"${linux}" = xyes -o x"${android}" = xyes; then
       build_fb=yes
   else
     if test x"${build_fb}" = xyes; then
       dnl SHOULD we just check at the end of file instead ?
-      AC_MSG_ERROR(fb GUI cannot be built on non-linux platforms);
+      AC_MSG_ERROR(framebuffer GUI cannot be built on non-linux platforms);
     fi
-    AC_MSG_NOTICE([fb GUI won't be built (non-linux platform)])
+    AC_MSG_NOTICE([framebuffer GUI won't be built (non-linux platform)])
     build_fb=no
   fi
 fi
@@ -2103,9 +2125,12 @@ AC_CHECK_HEADERS(sys/utsname.h)
 AC_CHECK_HEADERS(signal.h)
 AC_CHECK_HEADERS(unistd.h)
 AC_CHECK_HEADERS(sys/time.h)
+AC_CHECK_HEADERS(linux/uinput.h, [uinput=yes], [uinput=no])
 AC_CHECK_LIB(bz2, BZ2_bzopen, [AC_SUBST(BZ2_LIBS, -lbz2)])
 AC_CHECK_LIB(c, getpwnam, AC_DEFINE(HAVE_GETPWNAM, 1, [Has getpwnam] ))
 
+AM_CONDITIONAL(HAS_UINPUT, [test x$uinput = xyes])
+
 dnl X11 is needed for fltk (at least),
 dnl and probably for many other guis too ...
 dnl if ! test x$build_fb = xyes; then # <--- this is wrong as build_x is 
non-exclusive
@@ -2753,7 +2778,6 @@ if test x"$GCC" = x"yes"; then
     $CROSS_CXXFLAGS \
     -W \
     -Wall \
-    -Wcast-align \
     -Wcast-qual \
     -Wpointer-arith \
     -Wreturn-type \
@@ -4202,30 +4226,32 @@ yast_err="`cat $yast_err`"
 yast_war="`cat $yast_war`"
 yast_rec="`cat $yast_rec`"
 
-# Pipe stderr to /dev/null since Fedora complains when target isn't there.
-if test x`which apt-get 2>/dev/null` != x; then
-  if test x"$deb_err" != x -o x"$deb_war" != x -o x"$deb_rec" != x; then
-    echo "#!/bin/sh" > deb-attempt-install-dependencies.sh
-    echo "packages=\"$deb_err $deb_war $deb_rec\"" >> 
deb-attempt-install-dependencies.sh
-    echo "PKGCOMMAND=\"apt-get install -y -q\"" >> 
deb-attempt-install-dependencies.sh
-    cat ${srcdir}/base-attempter.sh >> deb-attempt-install-dependencies.sh
-    chmod +x deb-attempt-install-dependencies.sh
-    echo ""
-    echo ".deb users might be able to install most dependencies by executing:"
-    echo "sudo ./deb-attempt-install-dependencies.sh"
+if test x"${linux}" -a x"${android}" = xno; then
+  # Pipe stderr to /dev/null since Fedora complains when target isn't there.
+  if test x`which apt-get 2>/dev/null` != x; then
+    if test x"$deb_err" != x -o x"$deb_war" != x -o x"$deb_rec" != x; then
+      echo "#!/bin/sh" > deb-attempt-install-dependencies.sh
+      echo "packages=\"$deb_err $deb_war $deb_rec\"" >> 
deb-attempt-install-dependencies.sh
+      echo "PKGCOMMAND=\"apt-get install -y -q\"" >> 
deb-attempt-install-dependencies.sh
+      cat ${srcdir}/base-attempter.sh >> deb-attempt-install-dependencies.sh
+      chmod +x deb-attempt-install-dependencies.sh
+      echo ""
+      echo ".deb users might be able to install most dependencies by 
executing:"
+      echo "sudo ./deb-attempt-install-dependencies.sh"
+    fi
   fi
-fi
 
-if test x`which yum 2>/dev/null` != x; then
-  if test x"$rpm_err" != x -o x"$rpm_war" != x -o x"$deb_rec" != x; then
-    echo "#!/bin/sh" > rpm-attempt-install-dependencies.sh
-    echo "packages=\"$rpm_err $rpm_war  $rpm_rec\"" >> 
rpm-attempt-install-dependencies.sh
-    echo "PKGCOMMAND=\"yum install -y \""    >> 
rpm-attempt-install-dependencies.sh
-    cat ${srcdir}/base-attempter.sh >> rpm-attempt-install-dependencies.sh
-    chmod +x rpm-attempt-install-dependencies.sh
-    echo ""
-    echo ".rpm users might be able to install most dependencies by executing:"
-    echo "sudo ./rpm-attempt-install-dependencies.sh"
+  if test x`which yum 2>/dev/null` != x; then
+    if test x"$rpm_err" != x -o x"$rpm_war" != x -o x"$deb_rec" != x; then
+      echo "#!/bin/sh" > rpm-attempt-install-dependencies.sh
+      echo "packages=\"$rpm_err $rpm_war  $rpm_rec\"" >> 
rpm-attempt-install-dependencies.sh
+      echo "PKGCOMMAND=\"yum install -y \""    >> 
rpm-attempt-install-dependencies.sh
+      cat ${srcdir}/base-attempter.sh >> rpm-attempt-install-dependencies.sh
+      chmod +x rpm-attempt-install-dependencies.sh
+      echo ""
+      echo ".rpm users might be able to install most dependencies by 
executing:"
+      echo "sudo ./rpm-attempt-install-dependencies.sh"
+    fi
   fi
 fi
 

http://git.savannah.gnu.org/cgit//commit/?id=727716dbe0e2372a6294684318e26c175149998a


commit 727716dbe0e2372a6294684318e26c175149998a
Author: Rob Savoye <address@hidden>
Date:   Sat Dec 29 22:21:46 2012 -0700

    add VG to path when looking for the heade is --with-openvg-incl is used.

diff --git a/macros/openvg.m4 b/macros/openvg.m4
index 8bd23bb..93b2823 100644
--- a/macros/openvg.m4
+++ b/macros/openvg.m4
@@ -22,8 +22,8 @@ AC_DEFUN([GNASH_PATH_OPENVG],
   AC_ARG_WITH(openvg_includes, AC_HELP_STRING([--with-openvg-includes], 
[directory where Openvg headers are]), with_openvg_includes=${withval})
   AC_CACHE_VAL(ac_cv_path_openvg_includes,[
     if test x"${with_openvg_includes}" != x; then
-      if test -f ${with_openvg_includes}/openvg.h; then
-        ac_cv_path_openvg_includes="`(cd ${with_openvg_includes}; pwd)`"
+      if test -f ${with_openvg_includes}/VG/openvg.h; then
+        ac_cv_path_openvg_includes="-I`(cd ${with_openvg_includes}; pwd)`"
       else
         AC_MSG_ERROR([${with_openvg_includes} directory doesn't contain 
VG/openvg.h])
       fi
@@ -77,7 +77,7 @@ AC_DEFUN([GNASH_PATH_OPENVG],
     fi
   ])
 
-  if test x"${ac_cv_path_openvg_lib}" -o x"${has_openvg}" = xyes; then
+  if test x"${ac_cv_path_openvg_lib}" = x; then
     for i in $libslist; do
       if test -f $i/libOpenVG.${shlibext} -o -f $i/libOpenVG.a; then
         if test ! x"$i" = x"/usr/lib" -a ! x"$i" = x"/usr/lib64"; then

http://git.savannah.gnu.org/cgit//commit/?id=5bcb813bac7d46e8fc1c634df80c1c6ac4afa3d2


commit 5bcb813bac7d46e8fc1c634df80c1c6ac4afa3d2
Author: Rob Savoye <address@hidden>
Date:   Sat Dec 29 21:54:08 2012 -0700

    add libgnashmingutils.la to LDADD

diff --git a/testsuite/misc-ming.all/Makefile.am 
b/testsuite/misc-ming.all/Makefile.am
index fbbae8b..771941a 100644
--- a/testsuite/misc-ming.all/Makefile.am
+++ b/testsuite/misc-ming.all/Makefile.am
@@ -1478,10 +1478,12 @@ instanceNameTestRunner: 
$(srcdir)/../generic-testrunner.sh instanceNameTest.swf
        sh $(srcdir)/../generic-testrunner.sh $(top_builddir) 
instanceNameTest.swf > $@
        chmod 755 $@
 
-Dejagnu_SOURCES =      \
-       Dejagnu.c       \
+Dejagnu_SOURCES = Dejagnu.c
+Dejagnu_LDADD = \
+       $(top_builddir)/testsuite/libtestsuite.la \
+       libgnashmingutils.la \
+       $(AM_LDFLAGS) \
        $(NULL)
-Dejagnu_LDADD = libgnashmingutils.la
 
 Dejagnu.swf: Dejagnu
        ./Dejagnu $(abs_mediadir)

http://git.savannah.gnu.org/cgit//commit/?id=166101f4a76a2121a7eb077a498fca8456284400


commit 166101f4a76a2121a7eb077a498fca8456284400
Author: Rob Savoye <address@hidden>
Date:   Wed Aug 22 07:58:17 2012 -0600

    The chrono lib was added as of boost 1.47

diff --git a/macros/boost.m4 b/macros/boost.m4
index 5788f57..9a83f99 100644
--- a/macros/boost.m4
+++ b/macros/boost.m4
@@ -39,6 +39,8 @@ AC_DEFUN([GNASH_PATH_BOOST],
   dnl test will return a failure, and Gnash won't build.
   boost_libs="thread program_options iostreams system"
 
+  dnl 1.47 adds libchrono
+
   dnl this is a list of *recommended* libraries. If any of these are missing, 
this
   dnl test will return a warning, and Gnash will build, but testing won't work.
   cygnal_boost_libs="serialization date_time"
@@ -82,7 +84,7 @@ AC_DEFUN([GNASH_PATH_BOOST],
        gnash_boost_subdir="`dirname ${gnash_boost_topdir}`"
        gnash_boost_version="`echo ${gnash_boost_topdir} | sed -e 
's:.*boost-::'`"
        dnl Fix for packaging systems not adding extra fluff to the path-name.
-       for k in ${boost_headers}; do
+         for k in ${boost_headers}; do
                        if test ! -f ${gnash_boost_topdir}/boost/$k; then
                  if test ! -f ${gnash_boost_subdir}/boost/$k; then
                            missing_headers="${missing_headers} $k"
@@ -103,6 +105,11 @@ AC_DEFUN([GNASH_PATH_BOOST],
     done
   done
 
+  dnl As of boost 1.47, the chrono library is required.
+  gnash_boost_version=`grep "define.*BOOST_VERSION " 
${gnash_boost_topdir}/boost/version.hpp | cut -d ' ' -f 3`
+  if test ${gnash_boost_version} -ge 104700; then
+    boost_libs="${boost_libs} chrono"
+  fi
   dnl this is the default list for paths to search. This gets
   dnl redefined if --with-boost-lib= is specified.
   newlist=$libslist

http://git.savannah.gnu.org/cgit//commit/?id=24072cc929992a652ecdaf6bb87f2746ec8c1f47


commit 24072cc929992a652ecdaf6bb87f2746ec8c1f47
Author: Rob Savoye <address@hidden>
Date:   Sun Aug 19 16:16:36 2012 -0600

    initialize GLES1

diff --git a/gui/fb/fb.cpp b/gui/fb/fb.cpp
index 4e44843..cac458a 100644
--- a/gui/fb/fb.cpp
+++ b/gui/fb/fb.cpp
@@ -171,7 +171,7 @@ FBGui::~FBGui()
     // GNASH_REPORT_FUNCTION;
     
     if (_fd > 0) {
-        enable_terminal();
+        disable_terminal();
         // log_debug("Closing framebuffer device");
         close(_fd);
     }
@@ -193,7 +193,9 @@ FBGui::init(int argc, char *** argv)
         renderer = "openvg";
         _glue.reset(new FBOvgGlue(0));
         // Initialize the glue layer between the renderer and the gui toolkit
-        _glue->init(argc, argv);
+        if (!_glue->init(argc, argv)) {
+            return false;
+        }
         
         FBOvgGlue *ovg = reinterpret_cast<FBOvgGlue *>(_glue.get());
         // Set "window" size
@@ -207,6 +209,27 @@ FBGui::init(int argc, char *** argv)
     }
 #endif
 
+#ifdef RENDERER_GLES1
+    if ((renderer == "opengles1") || (renderer == "gles1")) {
+        renderer = "opengles1";
+        _glue.reset(new FBgles1Glue(0));
+        // Initialize the glue layer between the renderer and the gui toolkit
+        if (!_glue->init(argc, argv)) {
+            return false;
+        }
+        
+        FBgles1Glue *gles1 = reinterpret_cast<FBgles1Glue *>(_glue.get());
+        // Set "window" size
+        _width =  gles1->getWidth();
+        _height = gles1->getHeight();
+        log_debug("Width:%d, Height:%d", _width, _height);
+        _renderer.reset(renderer::openvg::create_handler(0));     
+        // renderer::openvg::Renderer_gles1 *rend = reinterpret_cast
+        //     <renderer::openvg::Renderer_ovg *>(_renderer.get());
+        // rend->init(_width, _height);
+    }
+#endif
+    
     // map framebuffer into memory
     // Create a new Glue layer
 #ifdef RENDERER_AGG
@@ -316,11 +339,11 @@ FBGui::init(int argc, char *** argv)
     // should be able to support this, but right now it just gets in
     // the way of debugging.
     
-    if ( _xpos < 0 ) _xpos += _var_screeninfo.xres - _width;
-    _xpos = clamp<int>(_xpos, 0, _var_screeninfo.xres-_width);
+    if ( _xpos < 0 ) _xpos += _varinfo.xres - _width;
+    _xpos = clamp<int>(_xpos, 0, _varinfo.xres-_width);
 
-    if ( _ypos < 0 ) _ypos += _var_screeninfo.yres - _height;
-    _ypos = clamp<int>(_ypos, 0, _var_screeninfo.yres-_height);
+    if ( _ypos < 0 ) _ypos += _varinfo.yres - _height;
+    _ypos = clamp<int>(_ypos, 0, _varinfo.yres-_height);
 
     log_debug("X:%d, Y:%d", _xpos, _ypos);
 #endif
@@ -367,7 +390,7 @@ FBGui::run()
         // 10ms per heart beat
         delay = 10000;
     }
-    // log_debug(_("Movie Frame Rate is %g, adjusting delay to %dms"), fps,
+    // log_debug(_("Movie Frame Rate is %d, adjusting delay to %dms"), fps,
     //           _interval * delay);
     
     // This loops endlessly at the frame rate
@@ -502,7 +525,7 @@ FBGui::find_accessible_tty(int no)
     fn = find_accessible_tty("/dev/tty%x", no);   if (fn) return fn;
     fn = find_accessible_tty("/dev/tty%02d", no); if (fn) return fn;
   
-    if (no==0) {
+    if (no == 0) {
         fn = find_accessible_tty("/dev/tty", no);  // just "/dev/tty" 
         if (fn) return fn;
     }
@@ -534,6 +557,8 @@ FBGui::disable_terminal()
     // Find the TTY device name
     
     char* tty = find_accessible_tty(0);
+
+    log_debug("Disabling terminal %s", tty);
     
     int fd;
   
@@ -663,6 +688,8 @@ FBGui::enable_terminal()
     // log_debug("Restoring terminal...");
 
     char* tty = find_accessible_tty(_own_vt);
+    log_debug("Enabling terminal %s", tty);
+
     if (!tty) {
         log_error(_("Could not find device for VT number %d"), _own_vt);
         return false;

http://git.savannah.gnu.org/cgit//commit/?id=c996129e407f4c9f6b14dcd27fc07ceb4abdaae6


commit c996129e407f4c9f6b14dcd27fc07ceb4abdaae6
Author: Rob Savoye <address@hidden>
Date:   Sun Aug 19 16:14:56 2012 -0600

    make GLES1 compile

diff --git a/gui/fb/fb.am b/gui/fb/fb.am
index b444fb7..2182f1b 100644
--- a/gui/fb/fb.am
+++ b/gui/fb/fb.am
@@ -53,6 +53,15 @@ fb_gnash_CPPFLAGS += \
 fb_gnash_LDADD += $(OPENVG_LIBS) $(EGL_LIBS)
 endif  # BUILD_OVG_RENDERER
 
+# Build support for OpenGLES1.
+if BUILD_GLES1_RENDERER
+fb_gnash_SOURCES += fb/fb_glue_gles1.cpp fb/fb_glue_gles1.h
+fb_gnash_CPPFLAGS += \
+       $(GLES1_CFLAGS) \
+       $(EGL_CFLAGS)
+fb_gnash_LDADD += $(GLES1_LIBS) $(EGL_LIBS)
+endif  # BUILD_OVG_RENDERER
+
 if ANDROID
 fb_gnash_LDADD +=  -lui -llog
 endif  # ANDROID
diff --git a/gui/fb/fb_glue_gles1.cpp b/gui/fb/fb_glue_gles1.cpp
index 16ea2f1..28e183d 100644
--- a/gui/fb/fb_glue_gles1.cpp
+++ b/gui/fb/fb_glue_gles1.cpp
@@ -100,34 +100,42 @@ FBgles1Glue::init(int /*argc*/, char *** /*argv*/)
     result = eglInitialize(_display, &majorVersion, &minorVersion);
     if (result == EGL_FALSE) {
         return false;
+    } else {
+        log_trace(_("EGL: initialize ok"));
     }
-    log_trace(_("EGL: initialize ok"));
     
     result = eglChooseConfig(_display, main_attrib_list, &_config, 1,
                              &numOfConfigs);
     if (result == EGL_FALSE || numOfConfigs != 1) {
         return false;
+    } else {
+        log_trace(_("EGL: config ok"));
     }
-    log_trace(_("EGL: config ok"));
     
     _surface = eglCreateWindowSurface(_display, _config, (NativeWindowType)0,
                                       NULL);
     if (eglGetError () != EGL_SUCCESS) {
-        return false;
+        log_error("FIXME: eglCreateWindowSurface failed! %d", eglGetError());
+        // return false;
+    } else {
+        log_trace(_("EGL: surface ok"));
     }
-    log_trace(_("EGL: surface ok"));
     
     _context = eglCreateContext(_display, _config, NULL, NULL);
     if (eglGetError () != EGL_SUCCESS) {
-        return false;
+        log_error("FIXME: eglCreateContext failed! %d", eglGetError());
+        // return false;
+    } else {
+        log_trace(_("EGL: context ok"));
     }
-    log_trace(_("EGL: context ok"));
     
     eglMakeCurrent(_display, _surface, _surface, _context);
     if (eglGetError () != EGL_SUCCESS) {
-        return false;
+        log_error("FIXME: eglMakeCurrent failed! %d", eglGetError());
+        // return false;
+    } else {
+        log_trace(_("EGL: current ok"));
     }
-    log_trace(_("EGL: current ok"));
     
     const EGLint pbuffer_config_list[] = {
         EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
@@ -158,8 +166,9 @@ FBgles1Glue::init(int /*argc*/, char *** /*argv*/)
                                        pbuffer_attrib_list);
     if (eglGetError () != EGL_SUCCESS) {
         return false;
+    } else {
+        log_trace("EGL: pbuffer surface ok");
     }
-    log_trace("EGL: pbuffer surface ok");
     
     return true;
 }
@@ -203,6 +212,15 @@ FBgles1Glue::render_to_display () {
         eglMakeCurrent(_display, _surface, _surface, _context);
 }
 
+void
+FBgles1Glue::prepDrawingArea(void * /*drawing_area */)
+{
+    // GNASH_REPORT_FUNCTION;
+
+    // _device->attachWindow(reinterpret_cast
+    //         <renderer::GnashDevice::native_window_t>(drawing_area));
+}
+
 } // end of namespace gui
 } // namespace gnash
 
diff --git a/gui/fb/fb_glue_gles1.h b/gui/fb/fb_glue_gles1.h
index b984703..b7e7daa 100644
--- a/gui/fb/fb_glue_gles1.h
+++ b/gui/fb/fb_glue_gles1.h
@@ -43,6 +43,13 @@
 #endif
 #endif
 
+#include "fbsup.h"
+#include "fb_glue.h"
+
+#ifdef BUILD_EGL_DEVICE
+# include "egl/eglDevice.h"
+#endif
+
 #include <boost/scoped_ptr.hpp>
 
 #include "fbsup.h"
@@ -70,6 +77,13 @@ public:
     void render_to_pbuffer ();
     void prepare_copy_from_pbuffer ();
     void render_to_display ();
+       /// \brief
+    ///  Hand off a handle to the native drawing area to the renderer
+    void prepDrawingArea(void *drawing_area);
+    
+    void initBuffer(int width, int height);
+    void resize(int width, int height);
+    // void render(geometry::Range2d<int>& bounds);
     
 protected:
     int         _fd;

http://git.savannah.gnu.org/cgit//commit/?id=e6d891eb112495e7a8aa63ec5a246acaad436d80


commit e6d891eb112495e7a8aa63ec5a246acaad436d80
Author: Rob Savoye <address@hidden>
Date:   Mon Aug 6 13:02:32 2012 -0600

    sound support also needs media support

diff --git a/utilities/processor.cpp b/utilities/processor.cpp
index 4cdf98e..c482c19 100644
--- a/utilities/processor.cpp
+++ b/utilities/processor.cpp
@@ -335,7 +335,7 @@ main(int argc, char *argv[])
     std::string mh = rcfile.getMediaHandler();
     mediaHandler.reset(media::MediaFactory::instance().get(mh));
 #endif
-#ifdef USE_SOUND
+#if defined(USE_SOUND) && defined(USE_MEDIA)
     boost::shared_ptr<sound::sound_handler> soundHandler;
     soundHandler.reset(new sound::NullSoundHandler(mediaHandler.get()));
 #endif
@@ -360,7 +360,7 @@ main(int argc, char *argv[])
     {
 
         RunResources runResources;
-#ifdef USE_SOUND
+#if defined(USE_SOUND) && defined(USE_MEDIA)
         runResources.setSoundHandler(soundHandler);
 #endif
 #ifdef USE_MEDIA

http://git.savannah.gnu.org/cgit//commit/?id=44255b4d1dbe0fd3380145004c5bd1a17d70f2cf


commit 44255b4d1dbe0fd3380145004c5bd1a17d70f2cf
Author: Rob Savoye <address@hidden>
Date:   Sun Aug 5 16:09:19 2012 -0600

    move host test for Android to above the linux test

diff --git a/configure.ac b/configure.ac
index d0bdfa3..960b015 100644
--- a/configure.ac
+++ b/configure.ac
@@ -131,7 +131,6 @@ DEFAULT_SOL_SAFEDIR="~/.gnash/SharedObjects"
 AC_SUBST(DEFAULT_SOL_SAFEDIR)
 AC_DEFINE_UNQUOTED([DEFAULT_SOL_SAFEDIR], ["${DEFAULT_SOL_SAFEDIR}"], [Default 
SharedObject base directory])
 
-
 dnl Some things you can only do by looking at the platform name.
 case "${host}" in
   powerpc-apple-darwin*)
@@ -165,6 +164,12 @@ case "${host}" in
     solaris=yes
     AC_DEFINE([SOLARIS_HOST], [1], [this is a Solaris platform])
     ;;
+  *-android*)
+    android=yes
+    linux=yes
+    AC_DEFINE([LINUX_HOST], [1], [this is a Linux platform])
+    AC_DEFINE([ANDROID_HOST], [1], [this is an Android platform])
+    ;;
   *-*linux*)
     linux=yes
     AC_DEFINE([LINUX_HOST], [1], [this is a Linux platform])
@@ -198,10 +203,6 @@ case "${host}" in
     AC_DEFINE([WINCE_HOST], [1], [this is a WINCE platform])
     AC_DEFINE([WINCE6_HOST], [1], [this is a WINCE6 platform])
     ;;
-  *-android*)
-    android=yes
-    AC_DEFINE([ANDROID_HOST], [1], [this is an Android platform])
-    ;;
 esac
 
 

http://git.savannah.gnu.org/cgit//commit/?id=f927f48071dcc318085ca0e5e6d635c00ed99152


commit f927f48071dcc318085ca0e5e6d635c00ed99152
Author: Rob Savoye <address@hidden>
Date:   Thu Aug 2 07:19:10 2012 -0600

    moved to testsuite directory

diff --git a/libdevice/directfb/test_dfb.cpp b/libdevice/directfb/test_dfb.cpp
deleted file mode 100644
index 41be446..0000000
--- a/libdevice/directfb/test_dfb.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-// 
-//   Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc
-// 
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-//
-
-#ifdef HAVE_CONFIG_H
-#include "gnashconfig.h"
-#endif
-
-#include <iostream>
-#include <string>
-#include <cstdlib>
-#include <vector>
-#include <map>
-#include <cassert>
-#include <regex.h>
-#include <boost/assign/list_of.hpp>
-
-#include "log.h"
-#include "dejagnu.h"
-#include "DirectFBDevice.h"
-
-TestState runtest;
-
-using namespace gnash;
-using namespace std;
-using namespace renderer;
-
-// The debug log used by all the gnash libraries.
-static LogFile& dbglogfile = LogFile::getDefaultInstance();
-
-int
-main(int argc, char *argv[])
-{
-    // FIXME: for now, always run verbose till this supports command line args
-    dbglogfile.setVerbosity();
-
-    directfb::DirectFBDevice dfb;
-
-#if 0
-    string result = "The buffer is empty";
-    DFBResult code = DR_BUFFEREMPTY;
-    if (dfb.getErrorString(code) == result) {
-        runtest.pass("DirectFBDevice::getErrorString()");
-    } else {
-        runtest.fail("DirectFBDevice::getErrorString()");
-    }    
-#endif
-
-    bool ret = dfb.initDevice(argc, argv);
-    if (ret <= 0) {
-        exit(0);
-    }
-    
-    if (ret) {
-        runtest.pass("DirectFBDevice:InitDevice()");
-    } else {
-        runtest.fail("DirectFBDevice:InitDevice()");
-    }
-
-    if (dfb.getWidth()) {
-        runtest.pass("DirectFBDevice::getWidth()");
-    } else {
-        runtest.fail("DirectFBDevice::getWidth()");
-    }
-    
-    if (dfb.getHeight()) {
-        runtest.pass("DirectFBDevice::getHeight()");
-    } else {
-        runtest.fail("DirecTFBDevice::getHeight()");
-    }
-    
-    if (dfb.getVerticalRes()) {
-        runtest.pass("DirectFBDevice::getVerticalRes()");
-    } else {
-        runtest.fail("DirectFBDevice::getVerticalRes()");
-    }
-    
-    if (dfb.getHorzRes()) {
-        runtest.pass("DirectFBDevice::getHorzRes()");
-    } else {
-        runtest.fail("DirectFBDevice::getHorzRes()");
-    }    
-
-    // DirectFB is double buffered by default
-    if (dfb.isSingleBuffered() == false) {
-        runtest.pass("DirectFBDevice::is*Buffered()");
-    } else {
-        runtest.fail("DirectFBDevice::is*Buffered()");
-    }
-
-#if 0
-    if (dfb.isContextSingleBuffered() != dfb.isContextBackBuffered()) {
-        runtest.pass("DirectFBDevice::isContextBuffered()");
-    } else {
-        runtest.fail("DirectFBDevice::isContextBuffered()");
-    }
-#endif
-    
-    // Context accessor tests
-    if (dfb.getContextID() >= 0) {
-        runtest.pass("DirectFBDevice::getContextID()");
-    } else {
-        runtest.fail("DirectFBDevice::getContextID()");
-    }    
-
-    if (dfb.getSurfaceID() >= 0) {
-        runtest.pass("DirectFBDevice::getSurfaceID()");
-    } else {
-        runtest.fail("DirectFBDevice::getSurfaceID()");
-    }
-
-    if (dfb.getDepth()) {
-        runtest.pass("DirectFBDevice::getDepth()");
-    } else {
-        runtest.fail("DirectFBDevice::getDepth()");
-    }    
-    
-#if 0
-    dfb.printDirectFB();
-    dfb.printFBSurface();
-    dfb.printFBFont();
-    dfb.printFBDisplay();
-    dfb.printFBScreen();
-
-    std::cerr << "----------------------" << std::endl;
-#endif
-
-}
-
-// Local Variables:
-// mode: C++
-// indent-tabs-mode: nil
-// End:
diff --git a/libdevice/egl/test_egl.cpp b/libdevice/egl/test_egl.cpp
deleted file mode 100644
index d399c85..0000000
--- a/libdevice/egl/test_egl.cpp
+++ /dev/null
@@ -1,476 +0,0 @@
-// 
-//   Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc
-// 
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-//
-
-#ifdef HAVE_CONFIG_H
-#include "gnashconfig.h"
-#endif
-
-#include <iostream>
-#include <string>
-#include <cstdlib>
-#include <vector>
-#include <map>
-#include <cassert>
-#include <regex.h>
-#include <boost/assign/list_of.hpp>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#include "log.h"
-#include "dejagnu.h"
-#include "eglDevice.h"
-#include "configTemplates.h"
-#include "GnashDevice.h"
-
-#ifdef BUILD_X11_DEVICE
-# include "x11/X11Device.h"
-#endif
-
-#ifdef HAVE_EGL_EGL_H
-# include <EGL/egl.h>
-#else
-# error "This file needs EGL, which is part of OpenGL-ES"
-#endif
-
-TestState runtest;
-
-using namespace gnash;
-using namespace std;
-using namespace renderer;
-
-void test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int argc, char 
*argv[]);
-
-// The debug log used by all the gnash libraries.
-static LogFile& dbglogfile = LogFile::getDefaultInstance();
-
-const char *estrs[] = {
-    "OpenVG",
-    "OpenGLES1",
-    "X11",
-    "VAAPI"
-};
-    
-int
-main(int argc, char *argv[])
-{
-    // FIXME: for now, always run verbose till this supports command line args
-    dbglogfile.setVerbosity();
-    
-#ifdef RENDERER_OPENVG
-    EGLDevice egl1;
-    std::cerr << "== OpenVG tests ==" << std::endl;
-    test_egl(egl1, GnashDevice::OPENVG, argc, argv);
-    egl1.printEGLConfig();
-    egl1.printEGLContext();
-    egl1.printEGLSurface();
-#endif
-    
-#if 0
-    // FIXME: we can only have one EGL device per process until it
-    // handles this better
-#ifdef RENDERER_GLES1 
-    EGLDevice egl2;
-    std::cerr << "== OpenGLES1 tests ==" << std::endl;
-    test_egl(egl2, GnashDevice::OPENGLES1, argc, argv);
-//    egl2.printEGLConfig();
-#endif
-    
-#endif
-}
-
-void
-test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int argc, char *argv[])
-{
-    bool hwinit = false;
-
-    if (EGLDevice::getRenderableTypes()) {
-        runtest.pass("EGLDevice::getRenderableTypes()");
-    } else {
-        runtest.fail("EGLDevice::getRenderableTypes()");
-    }
-    
-    // This is a utility method for converting integer error codes to
-    // something human readable for debugging.
-    string result = "EGL_BAD_CONFIG";
-    if (egl.getErrorString(EGL_BAD_CONFIG) == result) {
-        runtest.pass("EGLDevice::getErrorString()");
-    } else {
-        runtest.fail("EGLDevice::getErrorString()");
-    }
-
-    if (egl.initDevice(argc, argv)) {
-        runtest.pass("EGLDevice::initDevice()");
-        hwinit = true;
-    } else {
-        runtest.fail("EGLDevice::initDevice()");
-    }
-
-    if (hwinit) {
-        if (egl.bindClient(rtype)) {
-            runtest.pass("EGLDevice::bindClient()");
-        } else {
-            runtest.fail("EGLDevice::bindClient()");
-        }
-    } else {
-        runtest.untested("EGLDevice::bindClient()");
-    }
-
-//    egl.printEGLConfig();
-    
-    // If there are more than zero configurations, something beyond
-    // initializing is working
-    if (hwinit) {
-        if (egl.queryEGLConfig()) {
-            runtest.pass("EGLDevice::queryEGLConfig()");
-        } else {
-            runtest.fail("EGLDevice::queryEGLConfig()");
-        }
-    } else {
-        runtest.untested("EGLDevice::queryEGLConfig()");
-    }
-
-    // Init'ing to zero uses the root screen as the display. Otherwise
-    // the argument should be an EGLNativeWindowType.
-    int win = 0;
-#ifdef ENABLE_FAKE_FRAMEBUFFER
-    win = open("/tmp/fbe_buffer", O_RDWR);
-#else
-# ifdef BUILD_RAWFB_DEVICE
-    win = open("/dev/fb0", O_RDWR);
-    if (win <= 0) {
-        win = open("/dev/graphicsfb0", O_RDWR);
-    }    
-# endif
-# ifdef BUILD_X11_DEVICE
-    x11::X11Device x11(egl.getNativeVisual());
-    win = x11.getHandle();
-# endif
-#endif
-    if (egl.attachWindow(win)) {
-        runtest.pass("EGLDevice::attachWindow()");
-    } else {
-        runtest.fail("EGLDevice::attachWindow()");
-        hwinit = false;
-    }
-    
-    if (hwinit) {
-        if (egl.supportsRenderer(rtype)) {
-            runtest.pass("EGLDevice::supportsRenderer()");
-        } else {
-            runtest.fail("EGLDevice::supportsRenderer()");
-        }
-    } else {
-        runtest.untested("EGLDevice::supportsRenderer()");
-    }
-
-    // pixel formats are either 8,8,8 or 5,6,5
-    if (hwinit) {    
-        if ((egl.getRedSize() == 8) || (egl.getRedSize() == 5)) {
-            runtest.pass("EGLDevice::getRedSize()");
-        } else {
-            runtest.fail("EGLDevice::getRedSize()");
-        }    
-    } else {
-        runtest.untested("EGLDevice::getRedSize()");
-    }
-    
-    if (hwinit) {
-        if ((egl.getGreenSize() == 8) || (egl.getGreenSize() == 6)) {
-            runtest.pass("EGLDevice::getGreenSize()");
-        } else {
-            runtest.fail("EGLDevice::getGreenSize()");
-        }    
-    } else {
-        runtest.untested("EGLDevice::getGreenSize()");
-    }
-    
-    if (hwinit) {
-        if ((egl.getBlueSize() == 8) || (egl.getBlueSize() == 5)) {
-            runtest.pass("EGLDevice::getBlueSize()");
-        } else {
-            runtest.fail("EGLDevice::getBlueSize()");
-        }
-    } else {
-        runtest.untested("EGLDevice::getBlueSize()");
-    }
-
-    // Surface config info tests
-    if (hwinit) {
-        if ((egl.getSurfaceID() > 0) && (egl.getSurfaceID() <= 10)) {
-            runtest.pass("EGLDevice::getSurfaceID()");
-        } else {
-            runtest.fail("EGLDevice::getSurfaceID()");
-        }
-    } else {
-        runtest.untested("EGLDevice::getSurfaceID()");
-    }
-    
-    if (hwinit) {
-        if (egl.getWidth() < 16000) {
-            runtest.pass("EGLDevice::getWidth()");
-        } else {
-            runtest.fail("EGLDevice::getWidth()");
-        }
-    } else {
-        runtest.untested("EGLDevice::getWidth()");
-    }
-    
-    if (hwinit) {
-        if (egl.getHeight() < 16000) {
-            runtest.pass("EGLDevice::getHeigth()");
-        } else {
-            runtest.fail("EGLDevice::getHeigth()");
-        }
-    } else {
-        runtest.untested("EGLDevice::getHeigth()");
-    }
-
-    if (hwinit) {
-        if (egl.isSingleBuffered() != egl.isBackBuffered()) {
-            runtest.pass("EGLDevice::is*Buffered()");
-        } else {
-            runtest.fail("EGLDevice::is*Buffered()");
-        }
-    } else {
-        runtest.untested("EGLDevice::is*Buffered()");
-    }
-
-    // these are often the same as width and height, but not on all
-    // displays. When EGL is back buffered, the size of the display
-    // horizontally is doubled.
-    if (hwinit) {
-        if (egl.getVerticalRes() == 480) {
-            runtest.pass("EGLDevice::getVerticalRes()");
-        } else {
-            runtest.fail("EGLDevice::getVerticalRes()");
-        }
-    } else {
-        runtest.untested("EGLDevice::getVerticalRes()");
-    }
-
-    
-    if (hwinit) {
-        int newval = 800;
-        if (egl.isBackBuffered()) {
-            newval += newval;
-        }
-        if (egl.getHorzRes() == 1600) {
-            runtest.pass("EGLDevice::getHorzRes()");
-        } else {
-            runtest.fail("EGLDevice::getHorzRes()");
-        }
-    } else {
-        runtest.untested("EGLDevice::getHorzRes()");
-    }
-    
-    // When running in a framebuffer, EGL_SWAP_BEHAVIOR is EGL_BUFFER_PRESERVED
-    if (hwinit) {
-        if (egl.isBufferDestroyed()) {
-            runtest.fail("EGLDevice::isBufferDestroyed()");
-        } else {
-            runtest.pass("EGLDevice::isBufferDestroyed()");
-        }
-    } else {
-        runtest.untested("EGLDevice::isBufferDestroyed()");
-    }
-    
-    if (hwinit) {
-        if (!egl.isMultiSample()) {
-            runtest.pass("EGLDevice::isMultiSample()");
-        } else {
-            runtest.fail("EGLDevice::isMultiSample()");
-        }
-    } else {
-        runtest.untested("EGLDevice::isMultiSample()");
-    }
-
-    // Context accessor tests
-    if (hwinit) {
-        if (egl.getContextID() < 10) {
-            runtest.pass("EGLDevice::getContextID()");
-        } else {
-            runtest.fail("EGLDevice::getContextID()");
-        }
-    } else {
-        runtest.untested("EGLDevice::getContextID()");
-    }
-
-#if 0
-    if (egl.supportsClient(rtype)) {
-        runtest.pass("EGLDevice::supportsClient()");
-    } else {
-        runtest.fail("EGLDevice::supportsClient()");
-    }
-#endif
-    
-    if (hwinit) {
-        if (egl.isContextSingleBuffered() != egl.isContextBackBuffered()) {
-            runtest.pass("EGLDevice::isContext*Buffered()");
-        } else {
-            runtest.fail("EGLDevice::isContext*Buffered()");
-        }
-    } else {
-        runtest.untested("EGLDevice::isContext*Buffered()");
-    }
-
-    // When running in a framebuffer, EGL_NATIVE_RENDERABLE is false
-    if (hwinit) {
-        if (egl.isNativeRender()) {
-            runtest.fail("EGLDevice::isNativeRender()");
-        } else {
-            runtest.pass("EGLDevice::isNativeRender()");
-        }
-    } else {
-        runtest.untested("EGLDevice::isNativeRender()");
-    }
-
-    if (hwinit) {
-        if (egl.getSamples() == 0) {
-            runtest.pass("EGLDevice::getSamples()");
-        } else {
-            runtest.fail("EGLDevice::getSamples()");
-        }
-    } else {
-        runtest.untested("EGLDevice::getSamples()");
-    }
-    
-    if (hwinit) {
-        if (egl.getSampleBuffers() == 0) {
-            runtest.pass("EGLDevice::getSampleBuffers()");
-        } else {
-            runtest.fail("EGLDevice::getSampleBuffers()");
-        }
-    } else {
-        runtest.untested("EGLDevice::getSampleBuffers()");
-    }
-    
-    if (hwinit) {
-        if ((egl.getDepth() == 32) || (egl.getDepth() == 16)) {
-            runtest.pass("EGLDevice::getDepth()");
-        } else {
-            runtest.fail("EGLDevice::getDepth()");
-        }
-    } else {
-        runtest.untested("EGLDevice::getDepth()");
-    }
-    
-    if (hwinit) {
-        if (egl.getMaxSwapInterval() == 1) {
-            runtest.pass("EGLDevice::getMaxSwapInterval()");
-        } else {
-            runtest.fail("EGLDevice::getMaxSwapInterval()");
-        }
-    } else {
-        runtest.untested("EGLDevice::getMaxSwapInterval()");
-    }
-    
-    if (hwinit) {
-        if (egl.getMinSwapInterval() == 1) {
-            runtest.pass("EGLDevice::getMinSwapInterval()");
-        } else {
-            runtest.fail("EGLDevice::getMinSwapInterval()");
-        }
-    } else {
-        runtest.untested("EGLDevice::getMinSwapInterval()");
-    }
-
-    // Test Pbuffers
-    if (hwinit) {
-        EGLSurface surf = egl.createPbuffer(200, 200);
-        if ((egl.getWidth(surf) == 200) && (egl.getHeight(surf) == 200)) {
-            runtest.pass("EGLDevice::createPbuffer(int, int)");
-        } else {
-            runtest.fail("EGLDevice::createPbuffer(int, int)");
-        }
-    } else {
-        runtest.untested("EGLDevice::createPbuffer(int, int)");
-    }
-    
-    // EGLSurface surf1 = egl[0];
-    // if ((surf1 != EGL_NO_SURFACE) && (egl.getWidth(surf1) == 200)
-    //     && (egl.getHeight(surf1) == 200)) {
-    //     runtest.pass("EGLDevice::operator[]()");
-    // } else {
-    //     runtest.fail("EGLDevice::operator[]()");
-    // }
-
-    if (hwinit) {
-        if (egl.totalPbuffers() == 3) {
-            runtest.pass("EGLDevice::totalPbuffers(2)");
-        } else {
-            runtest.fail("EGLDevice::totalPbuffers(2)");
-        }
-    }
-
-    // Since we're EGL_SINGLE_BUFFER'd, this is a nop
-    if (hwinit) {
-        if (egl.swapBuffers()) {
-            runtest.pass("EGLDevice::swapBuffers()");
-        } else {
-            runtest.fail("EGLDevice::swapBuffers()");
-        }
-    } else {
-        runtest.untested("EGLDevice::swapBuffers()");
-    }
-
-    egl.makePbufferCurrent(1);
-    // The current surface is fullscreen
-    EGLSurface surf4 = eglGetCurrentSurface(EGL_DRAW);
-    if (hwinit) {
-        if ((egl.getWidth(surf4) == 800) && ((egl.getHeight(surf4) == 480))) {
-            runtest.pass("EGLDevice::makePbufferCurrent(int)");
-        } else {
-            runtest.fail("EGLDevice::makePbufferCurrent(int)");
-        }
-    } else {
-        runtest.untested("EGLDevice::makePbufferCurrent(int)");
-    }
-
-    // This should trigger an error as the number is more than we
-    // have created
-    if (hwinit) {
-        if (!egl.makePbufferCurrent(10)) {
-            runtest.pass("EGLDevice::makePbufferCurrent(maxed)");
-        } else {
-            runtest.fail("EGLDevice::makePbufferCurrent(maxed)");
-        }
-    } else {
-        runtest.untested("EGLDevice::makePbufferCurrent(maxed)");
-    }
-    
-#if 0
-    if (!egl.copyPbuffers(1)) {
-        runtest.pass("EGLDevice::copyPbuffers()");
-    } else {
-        runtest.fail("EGLDevice::copyPbuffers()");
-    }
-#endif
-    
-    // EGLSurface surf5 = eglGetCurrentSurface(EGL_DRAW);
-    // egl.printEGLSurface(surf5);
-#ifndef BUILD_X11_DEVICE
-    close(win);
-#endif
-}
-
-// Local Variables:
-// mode: C++
-// indent-tabs-mode: nil
-// End:
diff --git a/libdevice/events/test_events.cpp b/libdevice/events/test_events.cpp
deleted file mode 100644
index b23ae7b..0000000
--- a/libdevice/events/test_events.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-// 
-//   Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc
-// 
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-//
-
-#ifdef HAVE_CONFIG_H
-#include "gnashconfig.h"
-#endif
-
-#include <iostream>
-#include <string>
-#include <cstdlib>
-#include <vector>
-#include <map>
-#include <cassert>
-#include <regex.h>
-#include <unistd.h>
-#include <signal.h>
-
-#include <boost/assign/list_of.hpp>
-
-#include "log.h"
-#include "dejagnu.h"
-
-#include "GnashDevice.h"
-#include "InputDevice.h"
-
-TestState runtest;
-
-using namespace gnash;
-using namespace std;
-
-// The debug log used by all the gnash libraries.
-static LogFile& dbglogfile = LogFile::getDefaultInstance();
-
-// Trap a Sig Alarm, so this test doesn't hang forever if there
-// is no input.
-static void
-alarm_handler (int sig)
-{
-    cerr << endl << "Ending test beacuse of no input. This is normal if" << 
endl
-         << "running this in an automated fashion, ie... \"make check\"" << 
endl
-         << "This is an interactive test, not a unit or regression test" << 
endl;
-    exit(0);
-}
-
-int
-main(int argc, char *argv[])
-{
-    dbglogfile.setVerbosity();
-    
-    struct sigaction act;
-    act.sa_handler = alarm_handler;
-    sigaction (SIGALRM, &act, NULL);
-
-    bool loop = false;
-    std::vector<boost::shared_ptr<InputDevice> > inputs
-        = InputDevice::scanForDevices();
-    cerr << "Found " << inputs.size() << " input devices" << endl;
-    if (inputs.empty()) {
-        runtest.fail("InputDevice::scanForDevices()");
-    } else {
-        runtest.pass("InputDevice::scanForDevices()");
-        loop = true;
-    }    
-    
-    std::vector<boost::shared_ptr<InputDevice> >::iterator it;
-    
-    // check input devices
-    for (it = inputs.begin(); it != inputs.end(); ++it) {
-        boost::shared_ptr<InputDevice> id = *it;
-        cerr << "Found " << id->id() << " device" << endl;
-        if (id->init()) {
-            runtest.pass("InputDevice::init()");
-            id->setScreenSize(1024, 768);        
-        } else {
-            runtest.fail("InputDevice::init()()");
-        }
-    }
-
-    cerr << "Starting inactivity timeout to 10 seconds..." << endl;
-    alarm(10);
-    
-    // This loops endlessly at the frame rate
-    while (loop) {  
-        std::vector<boost::shared_ptr<InputDevice> >::iterator it;
-        // // check input devices
-        for (it = inputs.begin(); it != inputs.end(); ++it) {
-            boost::shared_ptr<InputDevice> id = *it;
-            if (id->check()) {
-                // FIXME: process the input data
-                boost::shared_ptr<InputDevice::input_data_t> ie = 
id->popData();
-#if 0
-                if (ie) {
-                    cerr << "Got data: " << ie->pressed;
-                    cerr << ", " << ie->key << ", " << ie->modifier;
-                    cerr << ", " << ie->x << ", " << ie->y << endl;
-                    // Range check and convert the position
-                    boost::shared_array<int> coords =
-                        MouseDevice::convertCoordinates(ie->x, ie->y, 1024, 
768);
-                    cerr << "X = " << coords[0] << endl;
-                    cerr << "Y = " << coords[1] << endl;
-                }
-#endif
-            } else {
-                std::cerr << ".";
-            }
-        }
-        
-        // wait the "heartbeat" interval. The default mouse update rate is
-        // only 100 samples/sec. so why rush...
-        usleep(1000000);
-    }
-    
-    std::cerr << std::endl;
-}
-
-// Local Variables:
-// mode: C++
-// indent-tabs-mode: nil
-// End:
diff --git a/libdevice/rawfb/test_rawfb.cpp b/libdevice/rawfb/test_rawfb.cpp
deleted file mode 100644
index 2058389..0000000
--- a/libdevice/rawfb/test_rawfb.cpp
+++ /dev/null
@@ -1,185 +0,0 @@
-// 
-//   Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc
-// 
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-//
-
-#ifdef HAVE_CONFIG_H
-#include "gnashconfig.h"
-#endif
-
-#include <iostream>
-#include <string>
-#include <cstdlib>
-#include <vector>
-#include <map>
-#include <cassert>
-#include <regex.h>
-#include <boost/assign/list_of.hpp>
-
-#include "log.h"
-#include "dejagnu.h"
-#include "GnashDevice.h"
-#include "RawFBDevice.h"
-
-TestState runtest;
-
-using namespace gnash;
-using namespace std;
-using namespace renderer;
-
-// The debug log used by all the gnash libraries.
-static LogFile& dbglogfile = LogFile::getDefaultInstance();
-
-
-unsigned short red[256], green[256], blue[256];
-struct fb_cmap map332 = {0, 256, red, green, blue, NULL};
-unsigned short red_b[256], green_b[256], blue_b[256];
-struct fb_cmap map_back = {0, 256, red_b, green_b, blue_b, NULL};
-
-int
-main(int argc, char *argv[])
-{
-    // FIXME: for now, always run verbose till this supports command line args
-    dbglogfile.setVerbosity();
-
-    rawfb::RawFBDevice rfb;
-    
-    if (!rfb.initDevice(argc, argv)) {
-        runtest.fail("RawFBDevice:InitDevice()");
-    } else {
-        runtest.pass("RawFBDevice:InitDevice()");
-    }
-
-    bool ret = rfb.attachWindow(rfb.getHandle());
-    if (rfb.getFBMemory()) {
-        runtest.pass("RawFBDevice::attachWindow()");
-    } else {
-        runtest.fail("RawFBDevice::attachWindow()");
-    }
-    
-#ifdef ENABLE_DOUBLE_BUFFERING
-    if (rfb.getOffscreenBuffer()) {
-        runtest.pass("RawFBDevice::getOffscreenBuffer()");
-    } else {
-        runtest.fail("RawFBDevice::getOffscreenBuffer()");
-    }
-#else
-    runtest.untested("RawFBDevice::getOffscreenBuffer()");
-#endif
-    
-    if (ret && rfb.getStride()) {
-        runtest.pass("RawFBDevice::getStride()");
-    } else {
-        runtest.fail("RawFBDevice::getStride()");
-    }
-    
-    if (ret && rfb.getWidth()) {
-        runtest.pass("RawFBDevice::getWidth()");
-    } else {
-        runtest.fail("RawFBDevice::getWidth()");
-    }
-    
-    if (ret && rfb.getHeight()) {
-        runtest.pass("RawFBDevice::getHeight()");
-    } else {
-        runtest.fail("DirecTFBDevice::getHeight()");
-    }
-
-    if (ret && rfb.isSingleBuffered()) {
-        runtest.pass("RawFBDevice::is*Buffered()");
-    } else {
-        runtest.fail("RawFBDevice::is*Buffered()");
-    }
-    
-    if (ret && rfb.getDepth()) {
-        runtest.pass("RawFBDevice::getDepth()");
-    } else {
-        runtest.fail("RawFBDevice::getDepth()");
-    }
-    
-    if (ret && rfb.getRedSize() > 0) {
-        runtest.pass("RawFBDevice::getRedSize()");
-    } else {
-        runtest.fail("RawFBDevice::getRedSize()");
-    }
-
-    if (ret && rfb.getGreenSize() > 0) {
-        runtest.pass("RawFBDevice::getGreenSize()");
-    } else {
-        runtest.fail("RawFBDevice::getGreenSize()");
-    }
-
-    if (ret && rfb.getBlueSize() > 0) {
-        runtest.pass("RawFBDevice::getBlueSize()");
-    } else {
-        runtest.fail("RawFBDevice::getBlueSize()");
-    }
-
-#if 0
-    if (rfb.setGrayscaleLUT8()) {
-        runtest.pass("RawFBDevice::setGrayscaleLUT8()");
-    } else {
-        runtest.fail("RawFBDevice::setGrayscaleLUT8()");
-    }
-#endif
-    
-    // AGG uses these to calculate the poixel format
-#ifdef RENDERER_AGG
-    if (ret && rfb.getRedOffset() > 0) {
-        runtest.pass("RawFBDevice::getRedOffset()");
-    } else {
-        runtest.fail("RawFBDevice::getRedOffset()");
-    }
-    
-    if (ret && rfb.getGreenOffset() > 0) {
-        runtest.pass("RawFBDevice::getGreenOffset()");
-    } else {
-        runtest.fail("RawFBDevice::getGreenOffset()");
-    }
-    
-    if (ret && rfb.getBlueOffset() == 0) {
-        runtest.pass("RawFBDevice::getBlueOffset()");
-    } else {
-        runtest.fail("RawFBDevice::getBlueOffset()");
-    }
-#endif
-
-    // This is a manual test to see if we can draw a line on the
-    // raw framebuffer to make sure it got initialized correctly.
-    int x = 0, y = 0;
-    long location = 0;
-    int line_length = rfb.getStride();
-
-    boost::uint8_t *fbp = 0;
-    fbp = rfb.getFBMemory();
-    
-    for(y=100; y<102; y++);            /* Where we are going to put the pixel 
*/
-    
-    for(x=0; x<200; x++) {
-        /* Figure out where in memory to put the pixel */
-        location = x * (rfb.getDepth()/8) + y * line_length;
-        
-        *(fbp + location) = 89;    /* Some blue */
-        *(fbp + location + 1) = 40; /* A little green */
-        *(fbp + location + 2) = 200; /* A lot of red */
-        *(fbp + location + 3) = 0; /* No transparency */
-    }
-}
-
-// Local Variables:
-// mode: C++
-// indent-tabs-mode: nil
-// End:
diff --git a/libdevice/vaapi/test_vaapi.cpp b/libdevice/vaapi/test_vaapi.cpp
deleted file mode 100644
index 290ac54..0000000
--- a/libdevice/vaapi/test_vaapi.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-// 
-//   Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc
-// 
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-//
-
-#ifdef HAVE_CONFIG_H
-#include "gnashconfig.h"
-#endif
-
-#include <iostream>
-#include <string>
-#include <cstdlib>
-#include <vector>
-#include <map>
-#include <cassert>
-#include <regex.h>
-#include <boost/assign/list_of.hpp>
-
-#include "log.h"
-#include "dejagnu.h"
-#include "VaapiDevice.h"
-
-TestState runtest;
-
-using namespace gnash;
-using namespace std;
-using namespace renderer;
-
-// The debug log used by all the gnash libraries.
-static LogFile& dbglogfile = LogFile::getDefaultInstance();
-
-int
-main(int argc, char *argv[])
-{
-    // FIXME: for now, always run verbose till this supports command line args
-    dbglogfile.setVerbosity();
-
-    vaapi::VaapiDevice vfb;
-
-#if 0
-    string result = "The buffer is empty";
-    VFBResult code = DR_BUFFEREMPTY;
-    if (vfb.getErrorString(code) == result) {
-        runtest.pass("VaapiDevice::getErrorString()");
-    } else {
-        runtest.fail("VaapiDevice::getErrorString()");
-    }    
-#endif
-
-    if (vfb.initDevice(argc, argv)) {
-        runtest.pass("VaapiDevice:InitDevice()");
-    } else {
-        runtest.fail("VaapiDevice:InitDevice()");
-    }
-
-    if (vfb.getWidth()) {
-        runtest.pass("VaapiDevice::getWidth()");
-    } else {
-        runtest.fail("VaapiDevice::getWidth()");
-    }
-    
-    if (vfb.getHeigth()) {
-        runtest.pass("VaapiDevice::getHeigth()");
-    } else {
-        runtest.fail("VaapiDevice::getHeigth()");
-    }
-    
-    if (vfb.getVerticalRes()) {
-        runtest.pass("VaapiDevice::getVerticalRes()");
-    } else {
-        runtest.fail("VaapiDevice::getVerticalRes()");
-    }
-    
-    if (vfb.getHorzRes()) {
-        runtest.pass("VaapiDevice::getHorzRes()");
-    } else {
-        runtest.fail("VaapiDevice::getHorzRes()");
-    }    
-    
-    if (vfb.isSurfaceSingleBuffered() != vfb.isSurfaceBackBuffered()) {
-        runtest.pass("VaapiDevice::isSurface*Buffered()");
-    } else {
-        runtest.fail("VaapiDevice::isSurface*Buffered()");
-    }
-
-    if (vfb.isContextSingleBuffered() != vfb.isContextBackBuffered()) {
-        runtest.pass("VaapiDevice::iisContextBuffered()");
-    } else {
-        runtest.fail("VaapiDevice::isContextBuffered()");
-    }
-
-    // Context accessor tests
-    if (vfb.getContextID() >= 0) {
-        runtest.pass("VaapiDevice::getContextID()");
-    } else {
-        runtest.fail("VaapiDevice::getContextID()");
-    }    
-
-    if (vfb.getSurfaceID() >= 0) {
-        runtest.pass("VaapiDevice::getSurfaceID()");
-    } else {
-        runtest.fail("VaapiDevice::getSurfaceID()");
-    }
-
-    if (vfb.getDepth()) {
-        runtest.pass("VaapiDevice::getDepth()");
-    } else {
-        runtest.fail("VaapiDevice::getDepth()");
-    }    
-    
-}
-
-// Local Variables:
-// mode: C++
-// indent-tabs-mode: nil
-// End:
diff --git a/libdevice/x11/test_x11.cpp b/libdevice/x11/test_x11.cpp
deleted file mode 100644
index 1adaadd..0000000
--- a/libdevice/x11/test_x11.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-// 
-//   Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc
-// 
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-//
-
-#ifdef HAVE_CONFIG_H
-#include "gnashconfig.h"
-#endif
-
-#include <iostream>
-#include <string>
-#include <cstdlib>
-#include <vector>
-#include <map>
-#include <cassert>
-#include <regex.h>
-#include <boost/assign/list_of.hpp>
-
-#include "log.h"
-#include "dejagnu.h"
-#include "GnashDevice.h"
-#include "X11Device.h"
-
-#include <X11/X.h>
-
-TestState runtest;
-
-using namespace gnash;
-using namespace std;
-using namespace renderer;
-
-// The debug log used by all the gnash libraries.
-static LogFile& dbglogfile = LogFile::getDefaultInstance();
-
-int
-main(int argc, char *argv[])
-{
-    // FIXME: for now, always run verbose till this supports command line args
-    dbglogfile.setVerbosity();
-
-    x11::X11Device x11;
-
-    if (x11.initDevice(argc, argv)) {
-        runtest.pass("X11Device:InitDevice()");
-    } else {
-        runtest.fail("X11Device:InitDevice()");
-    }
-
-    string result = "BadDrawable (invalid Pixmap or Window parameter)";
-    int code = BadDrawable;
-    if (x11.getErrorString(code) == result) {
-        runtest.pass("X11Device::getErrorString()");
-    } else {
-        runtest.fail("X11Device::getErrorString()");
-    }    
-
-    if (x11.getDepth() > 0) {
-        runtest.pass("X11Device::getDepth()");
-    } else {
-        runtest.fail("X11Device::getDepth()");
-    }    
-
-    if (x11.getWidth()) {
-        runtest.pass("X11Device::getWidth()");
-    } else {
-        runtest.fail("X11Device::getWidth()");
-    }
-    
-    if (x11.getHeight()) {
-        runtest.pass("X11Device::getHeight()");
-    } else {
-        runtest.fail("X11Device::getHeight()");
-    }
-    
-    if (x11.isSingleBuffered() >= 0) {
-        runtest.pass("X11Device::isSingleBuffered()");
-    } else {
-        runtest.fail("X11Device::isSingleBuffered()");
-    }
-
-    // Context accessor tests
-    // std::cerr << "FIXME: " << x11.getContextID() << std::endl;
-
-    if (x11.getID() > 0) {
-        runtest.pass("X11Device::getID()");
-    } else {
-        runtest.fail("X11Device::getID()");
-    }    
-
-#if 0
-    if (x11.getRedSize() > 0) {
-        runtest.pass("X11Device::getRedSize()");
-    } else {
-        runtest.fail("X11Device::getRedSize()");
-    }    
-
-    if (x11.getGreenSize() > 0) {
-        runtest.pass("X11Device::getGreenSize()");
-    } else {
-        runtest.fail("X11Device::getGreenSize()");
-    }    
-    
-    if (x11.getBlueSize() > 0) {
-        runtest.pass("X11Device::getBlueSize()");
-    } else {
-        runtest.fail("X11Device::getBlueSize()");
-    }    
-#endif
-}
-
-// Local Variables:
-// mode: C++
-// indent-tabs-mode: nil
-// End:

http://git.savannah.gnu.org/cgit//commit/?id=f4238f5fe51394f90f51ea7389089e963b8675ef


commit f4238f5fe51394f90f51ea7389089e963b8675ef
Author: Rob Savoye <address@hidden>
Date:   Thu Aug 2 07:10:45 2012 -0600

    add testsuite/libdevice.all/Makefile

diff --git a/configure.ac b/configure.ac
index 45efa42..d0bdfa3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3004,6 +3004,7 @@ doc/Doxyfile
 testsuite/Makefile
 testsuite/media/Makefile
 testsuite/libbase.all/Makefile
+testsuite/libdevice.all/Makefile
 testsuite/as3compile.all/Makefile
 testsuite/actionscript.all/Makefile
 testsuite/samples/Makefile

http://git.savannah.gnu.org/cgit//commit/?id=4f1d3744e4c7be75ced6291280679df0e8e2cc6f


commit 4f1d3744e4c7be75ced6291280679df0e8e2cc6f
Author: Rob Savoye <address@hidden>
Date:   Wed Aug 1 09:35:24 2012 -0600

    add Makefile for test cases

diff --git a/testsuite/libdevice.all/Makefile.am 
b/testsuite/libdevice.all/Makefile.am
new file mode 100644
index 0000000..1ac78c1
--- /dev/null
+++ b/testsuite/libdevice.all/Makefile.am
@@ -0,0 +1,138 @@
+## Process this fill with automake to generate Makefile.in
+# 
+#   Copyright (C) 2005, 2006,2007, 2008, 2009, 2010, 2011, 2012
+#   Free Software Foundation, Inc.
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 3 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, write to the Free Software
+#   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+AUTOMAKE_OPTIONS = dejagnu
+
+LDADD = \
+       $(top_builddir)/libbase/libgnashbase.la \
+       $(LIBINTL) \
+       $(NULL)
+
+if ANDROID
+LDADD +=  -lui -llog
+endif  # ANDROID
+
+AM_LDFLAGS = $(CROSS_LDFLAGS)
+AM_CXXFLAGS = $(CROSS_CXXFLAGS)
+
+# AM_CPPFLAGS isn't right here since per-program *_CPPFLAGS override global
+# AM_CPPFLAGS
+AM_CPPFLAGS = \
+        -I$(top_srcdir)/libbase \
+        -I$(top_srcdir)/libdevice \
+        -I$(top_srcdir)/testsuite \
+       $(DEJAGNU_CFLAGS) \
+       $(NULL)
+
+abs_builddir=`(cd $(top_builddir)/testsuite/libbase; pwd)`
+
+CLEANFILES = \
+       testrun.sum \
+       testrun.log \
+       gnash-dbg.log \
+       site.exp.bak \
+       NoSeekFileTestCache \
+       $(NULL)
+
+check_PROGRAMS = 
+
+if BUILD_EGL_DEVICE
+# this tests the low level EGL interface, used by OpenVG, OpenGLES1, and 
OpenGLES2.
+check_PROGRAMS += test_egl 
+
+test_egl_SOURCES = test_egl.cpp
+test_egl_CPPFLAGS = $(AM_CPPFLAGS) $(EGL_CFLAGS) -I$(top_srcdir)/libdevice/egl
+test_egl_LDADD = \
+       ../../libdevice/libgnashdevice.la \
+       ../../libbase/libgnashbase.la \
+       $(EXTRA_EGL_LIBS) \
+       $(EGL_LIBS) \
+       $(BOOST_LIBS) \
+       $(NULL)
+endif
+
+# if BUILD_X11_DEVICE
+# check_PROGRAMS += test_x11
+# endif
+
+if BUILD_DIRECTFB_DEVICE
+check_PROGRAMS += test_directfb
+endif
+
+if ENABLE_INPUT_EVENTS
+check_PROGRAMS += test_events
+
+test_events_SOURCES = test_events.cpp
+test_events_CPPFLAGS = $(AM_CPPFLAGS) \
+       -I$(top_srcdir)/libdevice/events \
+       -I$(top_srcdir)/libcore
+test_events_LDADD = \
+       ../../libdevice/libgnashdevice.la \
+       ../../libbase/libgnashbase.la \
+        $(EXTRA_EVENTS_LIBS) \
+        $(TS_LIBS) \
+        $(CURL_LIBS) \
+        $(EVENTS_LIBS) \
+        $(NULL)
+endif
+
+if BUILD_RAWFB_DEVICE
+check_PROGRAMS += test_rawfb
+
+# this tests the low level EGL interface, used by OpenVG, OpenGLES1,
+# and OpenGLES2.
+test_rawfb_SOURCES = test_rawfb.cpp
+test_rawfb_CPPFLAGS = $(AM_CPPFLAGS) \
+        -I$(top_srcdir)/libbase \
+        -I$(top_srcdir)/libdevice/rawfb
+test_rawfb_LDADD = \
+       ../../libdevice/libgnashdevice.la \
+       ../../libbase/libgnashbase.la \
+       $(NULL)
+endif
+
+if BUILD_VAAPI_DEVICE
+check_PROGRAMS += test_vaapi
+endif
+
+#
+# Testing stuff
+#
+TEST_DRIVERS = ../simple.exp
+TEST_CASES = \
+        $(check_PROGRAMS) \
+       $(NULL)
+
+check-DEJAGNU: site-update $(TEST_CASES)
+       @runtest=$(RUNTEST); \
+       if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
+           $$runtest $(RUNTESTFLAGS) $(TEST_DRIVERS); \
+       else \
+         echo "WARNING: could not find \`runtest'" 1>&2; \
+          for i in "$(TEST_CASES)"; do \
+           $(SHELL) $$i; \
+         done; \
+       fi
+
+site-update: site.exp
+       @rm -fr site.exp.bak
+       @cp site.exp site.exp.bak
+       @sed -e '/testcases/d' site.exp.bak > site.exp
+       @echo "# This is a list of the pre-compiled testcases" >> site.exp
+       @echo "set testcases \"$(TEST_CASES)\"" >> site.exp

http://git.savannah.gnu.org/cgit//commit/?id=46954e006cb071dac0fc796d50577947d6c7804a


commit 46954e006cb071dac0fc796d50577947d6c7804a
Author: Rob Savoye <address@hidden>
Date:   Mon Jul 30 20:54:57 2012 -0600

    move testcases

diff --git a/libdevice/egl/egl.am b/libdevice/egl/egl.am
index 145e9d1..7b1ac85 100644
--- a/libdevice/egl/egl.am
+++ b/libdevice/egl/egl.am
@@ -27,23 +27,6 @@ eglinfo_LDADD = \
        $(EGL_LIBS) \
        $(NULL)
 
-if ENABLE_DEVELOPER_TESTS
-# this tests the low level EGL interface, used by OpenVG, OpenGLES1, and 
OpenGLES2.
-bin_PROGRAMS += test_egl 
-test_egl_SOURCES = egl/test_egl.cpp
-test_egl_CPPFLAGS = $(AM_CPPFLAGS) $(EGL_CFLAGS)
-test_egl_LDADD = \
-       libgnashdevice.la \
-       $(EXTRA_EGL_LIBS) \
-       $(TS_LIBS) \
-       $(CURL_LIBS) \
-       $(EGL_LIBS) \
-       $(GNASH_LIBS) \
-       $(LTDL_LIBS) \
-       $(top_builddir)/libbase/libgnashbase.la \
-       $(NULL)
-endif
-
 libgnashdevice_la_CPPFLAGS += $(EGL_CFLAGS)
 libgnashdevice_la_SOURCES += \
        egl/eglDevice.cpp \
diff --git a/libdevice/events/events.am b/libdevice/events/events.am
index 4117ced..29149d7 100644
--- a/libdevice/events/events.am
+++ b/libdevice/events/events.am
@@ -47,17 +47,7 @@ libgnashdevice_la_SOURCES += events/UinputDevice.cpp
 endif
 
 if ENABLE_DEVELOPER_TESTS
-check_PROGRAMS += test_events evtest
-test_events_SOURCES = events/test_events.cpp
-test_events_CPPFLAGS = $(AM_CPPFLAGS)
-test_events_LDADD = \
-       libgnashdevice.la \
-       $(EXTRA_EVENTS_LIBS) \
-       $(TS_LIBS) \
-       $(CURL_LIBS) \
-       $(EVENTS_LIBS) \
-       $(GNASH_LIBS)
-
+check_PROGRAMS += evtest
 evtest_SOURCES = events/evtest.c
 evtest_CPPFLAGS = $(AM_CPPFLAGS)
 evtest_LDADD = \
diff --git a/libdevice/rawfb/rawfb.am b/libdevice/rawfb/rawfb.am
index d3511f2..bbe2998 100644
--- a/libdevice/rawfb/rawfb.am
+++ b/libdevice/rawfb/rawfb.am
@@ -9,18 +9,4 @@ libgnashdevice_la_SOURCES += \
 libgnashdevice_la_LIBADD += \
        $(TSLIB_LIBS) \
        $(EXTRA_EGL_LIBS)
-
-
-if ENABLE_DEVELOPER_TESTS
-check_PROGRAMS += test_rawfb
-
-# this tests the low level EGL interface, used by OpenVG, OpenGLES1,
-# and OpenGLES2.
-test_rawfb_SOURCES = rawfb/test_rawfb.cpp
-test_rawfb_CPPFLAGS = $(AM_CPPFLAGS)
-test_rawfb_LDADD = \
-       libgnashdevice.la \
-       $(TS_LIBS) \
-       $(GNASH_LIBS)
-endif
 endif
\ No newline at end of file
diff --git a/testsuite/libdevice.all/test_egl.cpp 
b/testsuite/libdevice.all/test_egl.cpp
index d399c85..cf25a07 100644
--- a/testsuite/libdevice.all/test_egl.cpp
+++ b/testsuite/libdevice.all/test_egl.cpp
@@ -34,13 +34,12 @@
 #include <fcntl.h>
 
 #include "log.h"
-#include "dejagnu.h"
 #include "eglDevice.h"
 #include "configTemplates.h"
 #include "GnashDevice.h"
 
-#ifdef BUILD_X11_DEVICE
-# include "x11/X11Device.h"
+#ifdef HAVE_DEJAGNU_H
+#include "dejagnu.h"
 #endif
 
 #ifdef HAVE_EGL_EGL_H
@@ -52,7 +51,6 @@
 TestState runtest;
 
 using namespace gnash;
-using namespace std;
 using namespace renderer;
 
 void test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int argc, char 
*argv[]);
@@ -108,7 +106,7 @@ test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int 
argc, char *argv[])
     
     // This is a utility method for converting integer error codes to
     // something human readable for debugging.
-    string result = "EGL_BAD_CONFIG";
+    std::string result = "EGL_BAD_CONFIG";
     if (egl.getErrorString(EGL_BAD_CONFIG) == result) {
         runtest.pass("EGLDevice::getErrorString()");
     } else {
diff --git a/testsuite/libdevice.all/test_rawfb.cpp 
b/testsuite/libdevice.all/test_rawfb.cpp
index 2058389..93d4614 100644
--- a/testsuite/libdevice.all/test_rawfb.cpp
+++ b/testsuite/libdevice.all/test_rawfb.cpp
@@ -165,6 +165,13 @@ main(int argc, char *argv[])
 
     boost::uint8_t *fbp = 0;
     fbp = rfb.getFBMemory();
+
+    if (fbp > 0) {
+        runtest.pass("RawFBDevice::getFBMemory()");
+    } else {
+        runtest.fail("RawFBDevice::getFBMemory()");
+        exit;
+    }
     
     for(y=100; y<102; y++);            /* Where we are going to put the pixel 
*/
     

http://git.savannah.gnu.org/cgit//commit/?id=b443f057db6c07a51cc245c1ab17578781d01a04


commit b443f057db6c07a51cc245c1ab17578781d01a04
Author: Rob Savoye <address@hidden>
Date:   Mon Jul 30 18:05:18 2012 -0600

    move testcases to here as they require libgnashbase.

diff --git a/testsuite/libdevice.all/test_dfb.cpp 
b/testsuite/libdevice.all/test_dfb.cpp
new file mode 100644
index 0000000..41be446
--- /dev/null
+++ b/testsuite/libdevice.all/test_dfb.cpp
@@ -0,0 +1,147 @@
+// 
+//   Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc
+// 
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#include <iostream>
+#include <string>
+#include <cstdlib>
+#include <vector>
+#include <map>
+#include <cassert>
+#include <regex.h>
+#include <boost/assign/list_of.hpp>
+
+#include "log.h"
+#include "dejagnu.h"
+#include "DirectFBDevice.h"
+
+TestState runtest;
+
+using namespace gnash;
+using namespace std;
+using namespace renderer;
+
+// The debug log used by all the gnash libraries.
+static LogFile& dbglogfile = LogFile::getDefaultInstance();
+
+int
+main(int argc, char *argv[])
+{
+    // FIXME: for now, always run verbose till this supports command line args
+    dbglogfile.setVerbosity();
+
+    directfb::DirectFBDevice dfb;
+
+#if 0
+    string result = "The buffer is empty";
+    DFBResult code = DR_BUFFEREMPTY;
+    if (dfb.getErrorString(code) == result) {
+        runtest.pass("DirectFBDevice::getErrorString()");
+    } else {
+        runtest.fail("DirectFBDevice::getErrorString()");
+    }    
+#endif
+
+    bool ret = dfb.initDevice(argc, argv);
+    if (ret <= 0) {
+        exit(0);
+    }
+    
+    if (ret) {
+        runtest.pass("DirectFBDevice:InitDevice()");
+    } else {
+        runtest.fail("DirectFBDevice:InitDevice()");
+    }
+
+    if (dfb.getWidth()) {
+        runtest.pass("DirectFBDevice::getWidth()");
+    } else {
+        runtest.fail("DirectFBDevice::getWidth()");
+    }
+    
+    if (dfb.getHeight()) {
+        runtest.pass("DirectFBDevice::getHeight()");
+    } else {
+        runtest.fail("DirecTFBDevice::getHeight()");
+    }
+    
+    if (dfb.getVerticalRes()) {
+        runtest.pass("DirectFBDevice::getVerticalRes()");
+    } else {
+        runtest.fail("DirectFBDevice::getVerticalRes()");
+    }
+    
+    if (dfb.getHorzRes()) {
+        runtest.pass("DirectFBDevice::getHorzRes()");
+    } else {
+        runtest.fail("DirectFBDevice::getHorzRes()");
+    }    
+
+    // DirectFB is double buffered by default
+    if (dfb.isSingleBuffered() == false) {
+        runtest.pass("DirectFBDevice::is*Buffered()");
+    } else {
+        runtest.fail("DirectFBDevice::is*Buffered()");
+    }
+
+#if 0
+    if (dfb.isContextSingleBuffered() != dfb.isContextBackBuffered()) {
+        runtest.pass("DirectFBDevice::isContextBuffered()");
+    } else {
+        runtest.fail("DirectFBDevice::isContextBuffered()");
+    }
+#endif
+    
+    // Context accessor tests
+    if (dfb.getContextID() >= 0) {
+        runtest.pass("DirectFBDevice::getContextID()");
+    } else {
+        runtest.fail("DirectFBDevice::getContextID()");
+    }    
+
+    if (dfb.getSurfaceID() >= 0) {
+        runtest.pass("DirectFBDevice::getSurfaceID()");
+    } else {
+        runtest.fail("DirectFBDevice::getSurfaceID()");
+    }
+
+    if (dfb.getDepth()) {
+        runtest.pass("DirectFBDevice::getDepth()");
+    } else {
+        runtest.fail("DirectFBDevice::getDepth()");
+    }    
+    
+#if 0
+    dfb.printDirectFB();
+    dfb.printFBSurface();
+    dfb.printFBFont();
+    dfb.printFBDisplay();
+    dfb.printFBScreen();
+
+    std::cerr << "----------------------" << std::endl;
+#endif
+
+}
+
+// Local Variables:
+// mode: C++
+// indent-tabs-mode: nil
+// End:
diff --git a/testsuite/libdevice.all/test_egl.cpp 
b/testsuite/libdevice.all/test_egl.cpp
new file mode 100644
index 0000000..d399c85
--- /dev/null
+++ b/testsuite/libdevice.all/test_egl.cpp
@@ -0,0 +1,476 @@
+// 
+//   Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc
+// 
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#include <iostream>
+#include <string>
+#include <cstdlib>
+#include <vector>
+#include <map>
+#include <cassert>
+#include <regex.h>
+#include <boost/assign/list_of.hpp>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+#include "log.h"
+#include "dejagnu.h"
+#include "eglDevice.h"
+#include "configTemplates.h"
+#include "GnashDevice.h"
+
+#ifdef BUILD_X11_DEVICE
+# include "x11/X11Device.h"
+#endif
+
+#ifdef HAVE_EGL_EGL_H
+# include <EGL/egl.h>
+#else
+# error "This file needs EGL, which is part of OpenGL-ES"
+#endif
+
+TestState runtest;
+
+using namespace gnash;
+using namespace std;
+using namespace renderer;
+
+void test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int argc, char 
*argv[]);
+
+// The debug log used by all the gnash libraries.
+static LogFile& dbglogfile = LogFile::getDefaultInstance();
+
+const char *estrs[] = {
+    "OpenVG",
+    "OpenGLES1",
+    "X11",
+    "VAAPI"
+};
+    
+int
+main(int argc, char *argv[])
+{
+    // FIXME: for now, always run verbose till this supports command line args
+    dbglogfile.setVerbosity();
+    
+#ifdef RENDERER_OPENVG
+    EGLDevice egl1;
+    std::cerr << "== OpenVG tests ==" << std::endl;
+    test_egl(egl1, GnashDevice::OPENVG, argc, argv);
+    egl1.printEGLConfig();
+    egl1.printEGLContext();
+    egl1.printEGLSurface();
+#endif
+    
+#if 0
+    // FIXME: we can only have one EGL device per process until it
+    // handles this better
+#ifdef RENDERER_GLES1 
+    EGLDevice egl2;
+    std::cerr << "== OpenGLES1 tests ==" << std::endl;
+    test_egl(egl2, GnashDevice::OPENGLES1, argc, argv);
+//    egl2.printEGLConfig();
+#endif
+    
+#endif
+}
+
+void
+test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int argc, char *argv[])
+{
+    bool hwinit = false;
+
+    if (EGLDevice::getRenderableTypes()) {
+        runtest.pass("EGLDevice::getRenderableTypes()");
+    } else {
+        runtest.fail("EGLDevice::getRenderableTypes()");
+    }
+    
+    // This is a utility method for converting integer error codes to
+    // something human readable for debugging.
+    string result = "EGL_BAD_CONFIG";
+    if (egl.getErrorString(EGL_BAD_CONFIG) == result) {
+        runtest.pass("EGLDevice::getErrorString()");
+    } else {
+        runtest.fail("EGLDevice::getErrorString()");
+    }
+
+    if (egl.initDevice(argc, argv)) {
+        runtest.pass("EGLDevice::initDevice()");
+        hwinit = true;
+    } else {
+        runtest.fail("EGLDevice::initDevice()");
+    }
+
+    if (hwinit) {
+        if (egl.bindClient(rtype)) {
+            runtest.pass("EGLDevice::bindClient()");
+        } else {
+            runtest.fail("EGLDevice::bindClient()");
+        }
+    } else {
+        runtest.untested("EGLDevice::bindClient()");
+    }
+
+//    egl.printEGLConfig();
+    
+    // If there are more than zero configurations, something beyond
+    // initializing is working
+    if (hwinit) {
+        if (egl.queryEGLConfig()) {
+            runtest.pass("EGLDevice::queryEGLConfig()");
+        } else {
+            runtest.fail("EGLDevice::queryEGLConfig()");
+        }
+    } else {
+        runtest.untested("EGLDevice::queryEGLConfig()");
+    }
+
+    // Init'ing to zero uses the root screen as the display. Otherwise
+    // the argument should be an EGLNativeWindowType.
+    int win = 0;
+#ifdef ENABLE_FAKE_FRAMEBUFFER
+    win = open("/tmp/fbe_buffer", O_RDWR);
+#else
+# ifdef BUILD_RAWFB_DEVICE
+    win = open("/dev/fb0", O_RDWR);
+    if (win <= 0) {
+        win = open("/dev/graphicsfb0", O_RDWR);
+    }    
+# endif
+# ifdef BUILD_X11_DEVICE
+    x11::X11Device x11(egl.getNativeVisual());
+    win = x11.getHandle();
+# endif
+#endif
+    if (egl.attachWindow(win)) {
+        runtest.pass("EGLDevice::attachWindow()");
+    } else {
+        runtest.fail("EGLDevice::attachWindow()");
+        hwinit = false;
+    }
+    
+    if (hwinit) {
+        if (egl.supportsRenderer(rtype)) {
+            runtest.pass("EGLDevice::supportsRenderer()");
+        } else {
+            runtest.fail("EGLDevice::supportsRenderer()");
+        }
+    } else {
+        runtest.untested("EGLDevice::supportsRenderer()");
+    }
+
+    // pixel formats are either 8,8,8 or 5,6,5
+    if (hwinit) {    
+        if ((egl.getRedSize() == 8) || (egl.getRedSize() == 5)) {
+            runtest.pass("EGLDevice::getRedSize()");
+        } else {
+            runtest.fail("EGLDevice::getRedSize()");
+        }    
+    } else {
+        runtest.untested("EGLDevice::getRedSize()");
+    }
+    
+    if (hwinit) {
+        if ((egl.getGreenSize() == 8) || (egl.getGreenSize() == 6)) {
+            runtest.pass("EGLDevice::getGreenSize()");
+        } else {
+            runtest.fail("EGLDevice::getGreenSize()");
+        }    
+    } else {
+        runtest.untested("EGLDevice::getGreenSize()");
+    }
+    
+    if (hwinit) {
+        if ((egl.getBlueSize() == 8) || (egl.getBlueSize() == 5)) {
+            runtest.pass("EGLDevice::getBlueSize()");
+        } else {
+            runtest.fail("EGLDevice::getBlueSize()");
+        }
+    } else {
+        runtest.untested("EGLDevice::getBlueSize()");
+    }
+
+    // Surface config info tests
+    if (hwinit) {
+        if ((egl.getSurfaceID() > 0) && (egl.getSurfaceID() <= 10)) {
+            runtest.pass("EGLDevice::getSurfaceID()");
+        } else {
+            runtest.fail("EGLDevice::getSurfaceID()");
+        }
+    } else {
+        runtest.untested("EGLDevice::getSurfaceID()");
+    }
+    
+    if (hwinit) {
+        if (egl.getWidth() < 16000) {
+            runtest.pass("EGLDevice::getWidth()");
+        } else {
+            runtest.fail("EGLDevice::getWidth()");
+        }
+    } else {
+        runtest.untested("EGLDevice::getWidth()");
+    }
+    
+    if (hwinit) {
+        if (egl.getHeight() < 16000) {
+            runtest.pass("EGLDevice::getHeigth()");
+        } else {
+            runtest.fail("EGLDevice::getHeigth()");
+        }
+    } else {
+        runtest.untested("EGLDevice::getHeigth()");
+    }
+
+    if (hwinit) {
+        if (egl.isSingleBuffered() != egl.isBackBuffered()) {
+            runtest.pass("EGLDevice::is*Buffered()");
+        } else {
+            runtest.fail("EGLDevice::is*Buffered()");
+        }
+    } else {
+        runtest.untested("EGLDevice::is*Buffered()");
+    }
+
+    // these are often the same as width and height, but not on all
+    // displays. When EGL is back buffered, the size of the display
+    // horizontally is doubled.
+    if (hwinit) {
+        if (egl.getVerticalRes() == 480) {
+            runtest.pass("EGLDevice::getVerticalRes()");
+        } else {
+            runtest.fail("EGLDevice::getVerticalRes()");
+        }
+    } else {
+        runtest.untested("EGLDevice::getVerticalRes()");
+    }
+
+    
+    if (hwinit) {
+        int newval = 800;
+        if (egl.isBackBuffered()) {
+            newval += newval;
+        }
+        if (egl.getHorzRes() == 1600) {
+            runtest.pass("EGLDevice::getHorzRes()");
+        } else {
+            runtest.fail("EGLDevice::getHorzRes()");
+        }
+    } else {
+        runtest.untested("EGLDevice::getHorzRes()");
+    }
+    
+    // When running in a framebuffer, EGL_SWAP_BEHAVIOR is EGL_BUFFER_PRESERVED
+    if (hwinit) {
+        if (egl.isBufferDestroyed()) {
+            runtest.fail("EGLDevice::isBufferDestroyed()");
+        } else {
+            runtest.pass("EGLDevice::isBufferDestroyed()");
+        }
+    } else {
+        runtest.untested("EGLDevice::isBufferDestroyed()");
+    }
+    
+    if (hwinit) {
+        if (!egl.isMultiSample()) {
+            runtest.pass("EGLDevice::isMultiSample()");
+        } else {
+            runtest.fail("EGLDevice::isMultiSample()");
+        }
+    } else {
+        runtest.untested("EGLDevice::isMultiSample()");
+    }
+
+    // Context accessor tests
+    if (hwinit) {
+        if (egl.getContextID() < 10) {
+            runtest.pass("EGLDevice::getContextID()");
+        } else {
+            runtest.fail("EGLDevice::getContextID()");
+        }
+    } else {
+        runtest.untested("EGLDevice::getContextID()");
+    }
+
+#if 0
+    if (egl.supportsClient(rtype)) {
+        runtest.pass("EGLDevice::supportsClient()");
+    } else {
+        runtest.fail("EGLDevice::supportsClient()");
+    }
+#endif
+    
+    if (hwinit) {
+        if (egl.isContextSingleBuffered() != egl.isContextBackBuffered()) {
+            runtest.pass("EGLDevice::isContext*Buffered()");
+        } else {
+            runtest.fail("EGLDevice::isContext*Buffered()");
+        }
+    } else {
+        runtest.untested("EGLDevice::isContext*Buffered()");
+    }
+
+    // When running in a framebuffer, EGL_NATIVE_RENDERABLE is false
+    if (hwinit) {
+        if (egl.isNativeRender()) {
+            runtest.fail("EGLDevice::isNativeRender()");
+        } else {
+            runtest.pass("EGLDevice::isNativeRender()");
+        }
+    } else {
+        runtest.untested("EGLDevice::isNativeRender()");
+    }
+
+    if (hwinit) {
+        if (egl.getSamples() == 0) {
+            runtest.pass("EGLDevice::getSamples()");
+        } else {
+            runtest.fail("EGLDevice::getSamples()");
+        }
+    } else {
+        runtest.untested("EGLDevice::getSamples()");
+    }
+    
+    if (hwinit) {
+        if (egl.getSampleBuffers() == 0) {
+            runtest.pass("EGLDevice::getSampleBuffers()");
+        } else {
+            runtest.fail("EGLDevice::getSampleBuffers()");
+        }
+    } else {
+        runtest.untested("EGLDevice::getSampleBuffers()");
+    }
+    
+    if (hwinit) {
+        if ((egl.getDepth() == 32) || (egl.getDepth() == 16)) {
+            runtest.pass("EGLDevice::getDepth()");
+        } else {
+            runtest.fail("EGLDevice::getDepth()");
+        }
+    } else {
+        runtest.untested("EGLDevice::getDepth()");
+    }
+    
+    if (hwinit) {
+        if (egl.getMaxSwapInterval() == 1) {
+            runtest.pass("EGLDevice::getMaxSwapInterval()");
+        } else {
+            runtest.fail("EGLDevice::getMaxSwapInterval()");
+        }
+    } else {
+        runtest.untested("EGLDevice::getMaxSwapInterval()");
+    }
+    
+    if (hwinit) {
+        if (egl.getMinSwapInterval() == 1) {
+            runtest.pass("EGLDevice::getMinSwapInterval()");
+        } else {
+            runtest.fail("EGLDevice::getMinSwapInterval()");
+        }
+    } else {
+        runtest.untested("EGLDevice::getMinSwapInterval()");
+    }
+
+    // Test Pbuffers
+    if (hwinit) {
+        EGLSurface surf = egl.createPbuffer(200, 200);
+        if ((egl.getWidth(surf) == 200) && (egl.getHeight(surf) == 200)) {
+            runtest.pass("EGLDevice::createPbuffer(int, int)");
+        } else {
+            runtest.fail("EGLDevice::createPbuffer(int, int)");
+        }
+    } else {
+        runtest.untested("EGLDevice::createPbuffer(int, int)");
+    }
+    
+    // EGLSurface surf1 = egl[0];
+    // if ((surf1 != EGL_NO_SURFACE) && (egl.getWidth(surf1) == 200)
+    //     && (egl.getHeight(surf1) == 200)) {
+    //     runtest.pass("EGLDevice::operator[]()");
+    // } else {
+    //     runtest.fail("EGLDevice::operator[]()");
+    // }
+
+    if (hwinit) {
+        if (egl.totalPbuffers() == 3) {
+            runtest.pass("EGLDevice::totalPbuffers(2)");
+        } else {
+            runtest.fail("EGLDevice::totalPbuffers(2)");
+        }
+    }
+
+    // Since we're EGL_SINGLE_BUFFER'd, this is a nop
+    if (hwinit) {
+        if (egl.swapBuffers()) {
+            runtest.pass("EGLDevice::swapBuffers()");
+        } else {
+            runtest.fail("EGLDevice::swapBuffers()");
+        }
+    } else {
+        runtest.untested("EGLDevice::swapBuffers()");
+    }
+
+    egl.makePbufferCurrent(1);
+    // The current surface is fullscreen
+    EGLSurface surf4 = eglGetCurrentSurface(EGL_DRAW);
+    if (hwinit) {
+        if ((egl.getWidth(surf4) == 800) && ((egl.getHeight(surf4) == 480))) {
+            runtest.pass("EGLDevice::makePbufferCurrent(int)");
+        } else {
+            runtest.fail("EGLDevice::makePbufferCurrent(int)");
+        }
+    } else {
+        runtest.untested("EGLDevice::makePbufferCurrent(int)");
+    }
+
+    // This should trigger an error as the number is more than we
+    // have created
+    if (hwinit) {
+        if (!egl.makePbufferCurrent(10)) {
+            runtest.pass("EGLDevice::makePbufferCurrent(maxed)");
+        } else {
+            runtest.fail("EGLDevice::makePbufferCurrent(maxed)");
+        }
+    } else {
+        runtest.untested("EGLDevice::makePbufferCurrent(maxed)");
+    }
+    
+#if 0
+    if (!egl.copyPbuffers(1)) {
+        runtest.pass("EGLDevice::copyPbuffers()");
+    } else {
+        runtest.fail("EGLDevice::copyPbuffers()");
+    }
+#endif
+    
+    // EGLSurface surf5 = eglGetCurrentSurface(EGL_DRAW);
+    // egl.printEGLSurface(surf5);
+#ifndef BUILD_X11_DEVICE
+    close(win);
+#endif
+}
+
+// Local Variables:
+// mode: C++
+// indent-tabs-mode: nil
+// End:
diff --git a/testsuite/libdevice.all/test_events.cpp 
b/testsuite/libdevice.all/test_events.cpp
new file mode 100644
index 0000000..b23ae7b
--- /dev/null
+++ b/testsuite/libdevice.all/test_events.cpp
@@ -0,0 +1,134 @@
+// 
+//   Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc
+// 
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#include <iostream>
+#include <string>
+#include <cstdlib>
+#include <vector>
+#include <map>
+#include <cassert>
+#include <regex.h>
+#include <unistd.h>
+#include <signal.h>
+
+#include <boost/assign/list_of.hpp>
+
+#include "log.h"
+#include "dejagnu.h"
+
+#include "GnashDevice.h"
+#include "InputDevice.h"
+
+TestState runtest;
+
+using namespace gnash;
+using namespace std;
+
+// The debug log used by all the gnash libraries.
+static LogFile& dbglogfile = LogFile::getDefaultInstance();
+
+// Trap a Sig Alarm, so this test doesn't hang forever if there
+// is no input.
+static void
+alarm_handler (int sig)
+{
+    cerr << endl << "Ending test beacuse of no input. This is normal if" << 
endl
+         << "running this in an automated fashion, ie... \"make check\"" << 
endl
+         << "This is an interactive test, not a unit or regression test" << 
endl;
+    exit(0);
+}
+
+int
+main(int argc, char *argv[])
+{
+    dbglogfile.setVerbosity();
+    
+    struct sigaction act;
+    act.sa_handler = alarm_handler;
+    sigaction (SIGALRM, &act, NULL);
+
+    bool loop = false;
+    std::vector<boost::shared_ptr<InputDevice> > inputs
+        = InputDevice::scanForDevices();
+    cerr << "Found " << inputs.size() << " input devices" << endl;
+    if (inputs.empty()) {
+        runtest.fail("InputDevice::scanForDevices()");
+    } else {
+        runtest.pass("InputDevice::scanForDevices()");
+        loop = true;
+    }    
+    
+    std::vector<boost::shared_ptr<InputDevice> >::iterator it;
+    
+    // check input devices
+    for (it = inputs.begin(); it != inputs.end(); ++it) {
+        boost::shared_ptr<InputDevice> id = *it;
+        cerr << "Found " << id->id() << " device" << endl;
+        if (id->init()) {
+            runtest.pass("InputDevice::init()");
+            id->setScreenSize(1024, 768);        
+        } else {
+            runtest.fail("InputDevice::init()()");
+        }
+    }
+
+    cerr << "Starting inactivity timeout to 10 seconds..." << endl;
+    alarm(10);
+    
+    // This loops endlessly at the frame rate
+    while (loop) {  
+        std::vector<boost::shared_ptr<InputDevice> >::iterator it;
+        // // check input devices
+        for (it = inputs.begin(); it != inputs.end(); ++it) {
+            boost::shared_ptr<InputDevice> id = *it;
+            if (id->check()) {
+                // FIXME: process the input data
+                boost::shared_ptr<InputDevice::input_data_t> ie = 
id->popData();
+#if 0
+                if (ie) {
+                    cerr << "Got data: " << ie->pressed;
+                    cerr << ", " << ie->key << ", " << ie->modifier;
+                    cerr << ", " << ie->x << ", " << ie->y << endl;
+                    // Range check and convert the position
+                    boost::shared_array<int> coords =
+                        MouseDevice::convertCoordinates(ie->x, ie->y, 1024, 
768);
+                    cerr << "X = " << coords[0] << endl;
+                    cerr << "Y = " << coords[1] << endl;
+                }
+#endif
+            } else {
+                std::cerr << ".";
+            }
+        }
+        
+        // wait the "heartbeat" interval. The default mouse update rate is
+        // only 100 samples/sec. so why rush...
+        usleep(1000000);
+    }
+    
+    std::cerr << std::endl;
+}
+
+// Local Variables:
+// mode: C++
+// indent-tabs-mode: nil
+// End:
diff --git a/testsuite/libdevice.all/test_rawfb.cpp 
b/testsuite/libdevice.all/test_rawfb.cpp
new file mode 100644
index 0000000..2058389
--- /dev/null
+++ b/testsuite/libdevice.all/test_rawfb.cpp
@@ -0,0 +1,185 @@
+// 
+//   Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc
+// 
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#include <iostream>
+#include <string>
+#include <cstdlib>
+#include <vector>
+#include <map>
+#include <cassert>
+#include <regex.h>
+#include <boost/assign/list_of.hpp>
+
+#include "log.h"
+#include "dejagnu.h"
+#include "GnashDevice.h"
+#include "RawFBDevice.h"
+
+TestState runtest;
+
+using namespace gnash;
+using namespace std;
+using namespace renderer;
+
+// The debug log used by all the gnash libraries.
+static LogFile& dbglogfile = LogFile::getDefaultInstance();
+
+
+unsigned short red[256], green[256], blue[256];
+struct fb_cmap map332 = {0, 256, red, green, blue, NULL};
+unsigned short red_b[256], green_b[256], blue_b[256];
+struct fb_cmap map_back = {0, 256, red_b, green_b, blue_b, NULL};
+
+int
+main(int argc, char *argv[])
+{
+    // FIXME: for now, always run verbose till this supports command line args
+    dbglogfile.setVerbosity();
+
+    rawfb::RawFBDevice rfb;
+    
+    if (!rfb.initDevice(argc, argv)) {
+        runtest.fail("RawFBDevice:InitDevice()");
+    } else {
+        runtest.pass("RawFBDevice:InitDevice()");
+    }
+
+    bool ret = rfb.attachWindow(rfb.getHandle());
+    if (rfb.getFBMemory()) {
+        runtest.pass("RawFBDevice::attachWindow()");
+    } else {
+        runtest.fail("RawFBDevice::attachWindow()");
+    }
+    
+#ifdef ENABLE_DOUBLE_BUFFERING
+    if (rfb.getOffscreenBuffer()) {
+        runtest.pass("RawFBDevice::getOffscreenBuffer()");
+    } else {
+        runtest.fail("RawFBDevice::getOffscreenBuffer()");
+    }
+#else
+    runtest.untested("RawFBDevice::getOffscreenBuffer()");
+#endif
+    
+    if (ret && rfb.getStride()) {
+        runtest.pass("RawFBDevice::getStride()");
+    } else {
+        runtest.fail("RawFBDevice::getStride()");
+    }
+    
+    if (ret && rfb.getWidth()) {
+        runtest.pass("RawFBDevice::getWidth()");
+    } else {
+        runtest.fail("RawFBDevice::getWidth()");
+    }
+    
+    if (ret && rfb.getHeight()) {
+        runtest.pass("RawFBDevice::getHeight()");
+    } else {
+        runtest.fail("DirecTFBDevice::getHeight()");
+    }
+
+    if (ret && rfb.isSingleBuffered()) {
+        runtest.pass("RawFBDevice::is*Buffered()");
+    } else {
+        runtest.fail("RawFBDevice::is*Buffered()");
+    }
+    
+    if (ret && rfb.getDepth()) {
+        runtest.pass("RawFBDevice::getDepth()");
+    } else {
+        runtest.fail("RawFBDevice::getDepth()");
+    }
+    
+    if (ret && rfb.getRedSize() > 0) {
+        runtest.pass("RawFBDevice::getRedSize()");
+    } else {
+        runtest.fail("RawFBDevice::getRedSize()");
+    }
+
+    if (ret && rfb.getGreenSize() > 0) {
+        runtest.pass("RawFBDevice::getGreenSize()");
+    } else {
+        runtest.fail("RawFBDevice::getGreenSize()");
+    }
+
+    if (ret && rfb.getBlueSize() > 0) {
+        runtest.pass("RawFBDevice::getBlueSize()");
+    } else {
+        runtest.fail("RawFBDevice::getBlueSize()");
+    }
+
+#if 0
+    if (rfb.setGrayscaleLUT8()) {
+        runtest.pass("RawFBDevice::setGrayscaleLUT8()");
+    } else {
+        runtest.fail("RawFBDevice::setGrayscaleLUT8()");
+    }
+#endif
+    
+    // AGG uses these to calculate the poixel format
+#ifdef RENDERER_AGG
+    if (ret && rfb.getRedOffset() > 0) {
+        runtest.pass("RawFBDevice::getRedOffset()");
+    } else {
+        runtest.fail("RawFBDevice::getRedOffset()");
+    }
+    
+    if (ret && rfb.getGreenOffset() > 0) {
+        runtest.pass("RawFBDevice::getGreenOffset()");
+    } else {
+        runtest.fail("RawFBDevice::getGreenOffset()");
+    }
+    
+    if (ret && rfb.getBlueOffset() == 0) {
+        runtest.pass("RawFBDevice::getBlueOffset()");
+    } else {
+        runtest.fail("RawFBDevice::getBlueOffset()");
+    }
+#endif
+
+    // This is a manual test to see if we can draw a line on the
+    // raw framebuffer to make sure it got initialized correctly.
+    int x = 0, y = 0;
+    long location = 0;
+    int line_length = rfb.getStride();
+
+    boost::uint8_t *fbp = 0;
+    fbp = rfb.getFBMemory();
+    
+    for(y=100; y<102; y++);            /* Where we are going to put the pixel 
*/
+    
+    for(x=0; x<200; x++) {
+        /* Figure out where in memory to put the pixel */
+        location = x * (rfb.getDepth()/8) + y * line_length;
+        
+        *(fbp + location) = 89;    /* Some blue */
+        *(fbp + location + 1) = 40; /* A little green */
+        *(fbp + location + 2) = 200; /* A lot of red */
+        *(fbp + location + 3) = 0; /* No transparency */
+    }
+}
+
+// Local Variables:
+// mode: C++
+// indent-tabs-mode: nil
+// End:
diff --git a/testsuite/libdevice.all/test_vaapi.cpp 
b/testsuite/libdevice.all/test_vaapi.cpp
new file mode 100644
index 0000000..290ac54
--- /dev/null
+++ b/testsuite/libdevice.all/test_vaapi.cpp
@@ -0,0 +1,129 @@
+// 
+//   Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc
+// 
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#include <iostream>
+#include <string>
+#include <cstdlib>
+#include <vector>
+#include <map>
+#include <cassert>
+#include <regex.h>
+#include <boost/assign/list_of.hpp>
+
+#include "log.h"
+#include "dejagnu.h"
+#include "VaapiDevice.h"
+
+TestState runtest;
+
+using namespace gnash;
+using namespace std;
+using namespace renderer;
+
+// The debug log used by all the gnash libraries.
+static LogFile& dbglogfile = LogFile::getDefaultInstance();
+
+int
+main(int argc, char *argv[])
+{
+    // FIXME: for now, always run verbose till this supports command line args
+    dbglogfile.setVerbosity();
+
+    vaapi::VaapiDevice vfb;
+
+#if 0
+    string result = "The buffer is empty";
+    VFBResult code = DR_BUFFEREMPTY;
+    if (vfb.getErrorString(code) == result) {
+        runtest.pass("VaapiDevice::getErrorString()");
+    } else {
+        runtest.fail("VaapiDevice::getErrorString()");
+    }    
+#endif
+
+    if (vfb.initDevice(argc, argv)) {
+        runtest.pass("VaapiDevice:InitDevice()");
+    } else {
+        runtest.fail("VaapiDevice:InitDevice()");
+    }
+
+    if (vfb.getWidth()) {
+        runtest.pass("VaapiDevice::getWidth()");
+    } else {
+        runtest.fail("VaapiDevice::getWidth()");
+    }
+    
+    if (vfb.getHeigth()) {
+        runtest.pass("VaapiDevice::getHeigth()");
+    } else {
+        runtest.fail("VaapiDevice::getHeigth()");
+    }
+    
+    if (vfb.getVerticalRes()) {
+        runtest.pass("VaapiDevice::getVerticalRes()");
+    } else {
+        runtest.fail("VaapiDevice::getVerticalRes()");
+    }
+    
+    if (vfb.getHorzRes()) {
+        runtest.pass("VaapiDevice::getHorzRes()");
+    } else {
+        runtest.fail("VaapiDevice::getHorzRes()");
+    }    
+    
+    if (vfb.isSurfaceSingleBuffered() != vfb.isSurfaceBackBuffered()) {
+        runtest.pass("VaapiDevice::isSurface*Buffered()");
+    } else {
+        runtest.fail("VaapiDevice::isSurface*Buffered()");
+    }
+
+    if (vfb.isContextSingleBuffered() != vfb.isContextBackBuffered()) {
+        runtest.pass("VaapiDevice::iisContextBuffered()");
+    } else {
+        runtest.fail("VaapiDevice::isContextBuffered()");
+    }
+
+    // Context accessor tests
+    if (vfb.getContextID() >= 0) {
+        runtest.pass("VaapiDevice::getContextID()");
+    } else {
+        runtest.fail("VaapiDevice::getContextID()");
+    }    
+
+    if (vfb.getSurfaceID() >= 0) {
+        runtest.pass("VaapiDevice::getSurfaceID()");
+    } else {
+        runtest.fail("VaapiDevice::getSurfaceID()");
+    }
+
+    if (vfb.getDepth()) {
+        runtest.pass("VaapiDevice::getDepth()");
+    } else {
+        runtest.fail("VaapiDevice::getDepth()");
+    }    
+    
+}
+
+// Local Variables:
+// mode: C++
+// indent-tabs-mode: nil
+// End:
diff --git a/testsuite/libdevice.all/test_x11.cpp 
b/testsuite/libdevice.all/test_x11.cpp
new file mode 100644
index 0000000..1adaadd
--- /dev/null
+++ b/testsuite/libdevice.all/test_x11.cpp
@@ -0,0 +1,127 @@
+// 
+//   Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc
+// 
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#include <iostream>
+#include <string>
+#include <cstdlib>
+#include <vector>
+#include <map>
+#include <cassert>
+#include <regex.h>
+#include <boost/assign/list_of.hpp>
+
+#include "log.h"
+#include "dejagnu.h"
+#include "GnashDevice.h"
+#include "X11Device.h"
+
+#include <X11/X.h>
+
+TestState runtest;
+
+using namespace gnash;
+using namespace std;
+using namespace renderer;
+
+// The debug log used by all the gnash libraries.
+static LogFile& dbglogfile = LogFile::getDefaultInstance();
+
+int
+main(int argc, char *argv[])
+{
+    // FIXME: for now, always run verbose till this supports command line args
+    dbglogfile.setVerbosity();
+
+    x11::X11Device x11;
+
+    if (x11.initDevice(argc, argv)) {
+        runtest.pass("X11Device:InitDevice()");
+    } else {
+        runtest.fail("X11Device:InitDevice()");
+    }
+
+    string result = "BadDrawable (invalid Pixmap or Window parameter)";
+    int code = BadDrawable;
+    if (x11.getErrorString(code) == result) {
+        runtest.pass("X11Device::getErrorString()");
+    } else {
+        runtest.fail("X11Device::getErrorString()");
+    }    
+
+    if (x11.getDepth() > 0) {
+        runtest.pass("X11Device::getDepth()");
+    } else {
+        runtest.fail("X11Device::getDepth()");
+    }    
+
+    if (x11.getWidth()) {
+        runtest.pass("X11Device::getWidth()");
+    } else {
+        runtest.fail("X11Device::getWidth()");
+    }
+    
+    if (x11.getHeight()) {
+        runtest.pass("X11Device::getHeight()");
+    } else {
+        runtest.fail("X11Device::getHeight()");
+    }
+    
+    if (x11.isSingleBuffered() >= 0) {
+        runtest.pass("X11Device::isSingleBuffered()");
+    } else {
+        runtest.fail("X11Device::isSingleBuffered()");
+    }
+
+    // Context accessor tests
+    // std::cerr << "FIXME: " << x11.getContextID() << std::endl;
+
+    if (x11.getID() > 0) {
+        runtest.pass("X11Device::getID()");
+    } else {
+        runtest.fail("X11Device::getID()");
+    }    
+
+#if 0
+    if (x11.getRedSize() > 0) {
+        runtest.pass("X11Device::getRedSize()");
+    } else {
+        runtest.fail("X11Device::getRedSize()");
+    }    
+
+    if (x11.getGreenSize() > 0) {
+        runtest.pass("X11Device::getGreenSize()");
+    } else {
+        runtest.fail("X11Device::getGreenSize()");
+    }    
+    
+    if (x11.getBlueSize() > 0) {
+        runtest.pass("X11Device::getBlueSize()");
+    } else {
+        runtest.fail("X11Device::getBlueSize()");
+    }    
+#endif
+}
+
+// Local Variables:
+// mode: C++
+// indent-tabs-mode: nil
+// End:

http://git.savannah.gnu.org/cgit//commit/?id=ec9ffbee64877e8d143ccc4c0d65a9ddbaab52bb


commit ec9ffbee64877e8d143ccc4c0d65a9ddbaab52bb
Author: Rob Savoye <address@hidden>
Date:   Fri Jul 27 10:24:19 2012 -0600

    fix --with-openvg-incl option by adding -I

diff --git a/macros/openvg.m4 b/macros/openvg.m4
index f3a5fd6..93b2823 100644
--- a/macros/openvg.m4
+++ b/macros/openvg.m4
@@ -23,7 +23,7 @@ AC_DEFUN([GNASH_PATH_OPENVG],
   AC_CACHE_VAL(ac_cv_path_openvg_includes,[
     if test x"${with_openvg_includes}" != x; then
       if test -f ${with_openvg_includes}/VG/openvg.h; then
-        ac_cv_path_openvg_includes="`(cd ${with_openvg_includes}; pwd)`"
+        ac_cv_path_openvg_includes="-I`(cd ${with_openvg_includes}; pwd)`"
       else
         AC_MSG_ERROR([${with_openvg_includes} directory doesn't contain 
VG/openvg.h])
       fi

http://git.savannah.gnu.org/cgit//commit/?id=c4c19c7f49210ce8f5724962bf341ad7c9ec8695


commit c4c19c7f49210ce8f5724962bf341ad7c9ec8695
Author: Rob Savoye <address@hidden>
Date:   Fri Jul 27 09:23:03 2012 -0600

    fix --with-openvg-** options

diff --git a/macros/openvg.m4 b/macros/openvg.m4
index 8bd23bb..f3a5fd6 100644
--- a/macros/openvg.m4
+++ b/macros/openvg.m4
@@ -22,7 +22,7 @@ AC_DEFUN([GNASH_PATH_OPENVG],
   AC_ARG_WITH(openvg_includes, AC_HELP_STRING([--with-openvg-includes], 
[directory where Openvg headers are]), with_openvg_includes=${withval})
   AC_CACHE_VAL(ac_cv_path_openvg_includes,[
     if test x"${with_openvg_includes}" != x; then
-      if test -f ${with_openvg_includes}/openvg.h; then
+      if test -f ${with_openvg_includes}/VG/openvg.h; then
         ac_cv_path_openvg_includes="`(cd ${with_openvg_includes}; pwd)`"
       else
         AC_MSG_ERROR([${with_openvg_includes} directory doesn't contain 
VG/openvg.h])
@@ -77,7 +77,7 @@ AC_DEFUN([GNASH_PATH_OPENVG],
     fi
   ])
 
-  if test x"${ac_cv_path_openvg_lib}" -o x"${has_openvg}" = xyes; then
+  if test x"${ac_cv_path_openvg_lib}" = x; then
     for i in $libslist; do
       if test -f $i/libOpenVG.${shlibext} -o -f $i/libOpenVG.a; then
         if test ! x"$i" = x"/usr/lib" -a ! x"$i" = x"/usr/lib64"; then

http://git.savannah.gnu.org/cgit//commit/?id=c1a885d5ec91e4aff0e4b7b282f6a784fde9e090


commit c1a885d5ec91e4aff0e4b7b282f6a784fde9e090
Author: Rob Savoye <address@hidden>
Date:   Mon Jul 23 09:16:02 2012 -0600

    improve comment about EGL

diff --git a/gui/fb/fb_glue_ovg.cpp b/gui/fb/fb_glue_ovg.cpp
index 1c9b797..13e2175 100644
--- a/gui/fb/fb_glue_ovg.cpp
+++ b/gui/fb/fb_glue_ovg.cpp
@@ -109,7 +109,7 @@ FBOvgGlue::init(int argc, char **argv[])
     _device.reset(new renderer::EGLDevice(argc, *argv));
 
     // Initialize the display device
-    // EGL still reqires us to open the framebuffer
+    // EGL still reqires us to open the framebuffer, except on Android
     _device->bindClient(renderer::GnashDevice::OPENVG);
 
 #ifndef __ANDROID__

http://git.savannah.gnu.org/cgit//commit/?id=b39312e9fe4a2d0d46b118245e38e67532934d3a


commit b39312e9fe4a2d0d46b118245e38e67532934d3a
Author: Rob Savoye <address@hidden>
Date:   Mon Jul 23 09:15:27 2012 -0600

    drop bogus NDK include

diff --git a/libmedia/Makefile.am b/libmedia/Makefile.am
index 33f6d25..2508049 100644
--- a/libmedia/Makefile.am
+++ b/libmedia/Makefile.am
@@ -129,10 +129,6 @@ libgnashmedia_la_CPPFLAGS = \
        $(BOOST_CFLAGS) \
        $(NULL)
 
-if ANDROID
-libgnashmedia_la_CPPFLAGS += $(ANDROID_NDK)/usr/include
-endif
-
 if USE_GST_ENGINE
 libgnashmedia_la_CPPFLAGS += \
        $(GSTREAMER_CFLAGS) \

http://git.savannah.gnu.org/cgit//commit/?id=6451809ff0262e326132ff20bc2e8b6eccb91fa5


commit 6451809ff0262e326132ff20bc2e8b6eccb91fa5
Author: Rob Savoye <address@hidden>
Date:   Sat Jul 21 16:14:47 2012 -0600

    Don't initialize the framebuffer for Android.

diff --git a/gui/fb/fb_glue_ovg.cpp b/gui/fb/fb_glue_ovg.cpp
index f723476..1c9b797 100644
--- a/gui/fb/fb_glue_ovg.cpp
+++ b/gui/fb/fb_glue_ovg.cpp
@@ -111,12 +111,13 @@ FBOvgGlue::init(int argc, char **argv[])
     // Initialize the display device
     // EGL still reqires us to open the framebuffer
     _device->bindClient(renderer::GnashDevice::OPENVG);
-    
+
+#ifndef __ANDROID__
     _display.initDevice(0, 0);
 
     _width = getWidth();
     _height = getHeight();
-
+    
     // Some linux distros like ltib have more information available
     // about the framebuffer
     int fd = ::open("/sys/class/graphics/fb0/stride", O_RDONLY);
@@ -136,6 +137,9 @@ FBOvgGlue::init(int argc, char **argv[])
     // framebuffer when creating a window. Under X11, this is
     // actually the XID of the created window.
     return _device->attachWindow(_display.getHandle());
+#else
+    return _device->attachWindow(0);
+#endif    
 }
 
 Renderer*

http://git.savannah.gnu.org/cgit//commit/?id=6e8881330c3f7b03270abbeaa94b60a08acd1ce5


commit 6e8881330c3f7b03270abbeaa94b60a08acd1ce5
Author: Rob Savoye <address@hidden>
Date:   Sat Jul 21 11:56:48 2012 -0600

    add Framebuffer debug info

diff --git a/libdevice/rawfb/RawFBDevice.h b/libdevice/rawfb/RawFBDevice.h
index 47313a4..2a1ffc7 100644
--- a/libdevice/rawfb/RawFBDevice.h
+++ b/libdevice/rawfb/RawFBDevice.h
@@ -138,7 +138,8 @@ class RawFBDevice : public GnashDevice
     }
 
     bool swapBuffers();
-    
+
+    void dump();
 protected:
     /// Clear the framebuffer memory
     void clear();

http://git.savannah.gnu.org/cgit//commit/?id=037f23961107956e66798c1f48dde5d505f4e888


commit 037f23961107956e66798c1f48dde5d505f4e888
Author: Rob Savoye <address@hidden>
Date:   Sat Jul 21 11:50:36 2012 -0600

    add Framebuffer debug info

diff --git a/libdevice/rawfb/RawFBDevice.cpp b/libdevice/rawfb/RawFBDevice.cpp
index bdfed74..bce2333 100644
--- a/libdevice/rawfb/RawFBDevice.cpp
+++ b/libdevice/rawfb/RawFBDevice.cpp
@@ -77,6 +77,7 @@ void
 RawFBDevice::clear()
 {
     GNASH_REPORT_FUNCTION;
+    
     if (_fbmem) {
         memset(_fbmem, 0, _fixinfo.smem_len);
     }
@@ -148,13 +149,18 @@ RawFBDevice::initDevice(int /* argc */, char **/* argv[] 
*/)
     ioctl(_fd, FBIOGET_VSCREENINFO, &_varinfo);
     ioctl(_fd, FBIOGET_FSCREENINFO, &_fixinfo);
 #endif
-    log_debug(_("Framebuffer device uses %d bytes of memory."),
-              _fixinfo.smem_len);
-    log_debug(_("Video mode: %dx%d with %d bits per pixel."),
+
+    // dump();
+    
+    log_debug("Framebuffer device uses %d bytes of memory.",
+               _fixinfo.smem_len);
+    log_debug("Video mode: %dx%d with %d bits per pixel. (Virtual: %dx%d)",
               _varinfo.xres, _varinfo.yres,
-              _varinfo.bits_per_pixel);
+              _varinfo.bits_per_pixel,
+              _varinfo.xres_virtual, _varinfo.yres_virtual
+        );
 
-    log_debug(_("Framebuffer stride is: %d."),  _fixinfo.line_length);    
+    log_debug("Framebuffer stride is: %d.",  _fixinfo.line_length);
 
     return true;
 }
@@ -273,6 +279,27 @@ RawFBDevice::eventLoop(size_t /* passes */)
     GNASH_REPORT_FUNCTION;    
 }
 
+void
+RawFBDevice::dump()
+{
+    // dump the fb_var_screeninfo data
+    std::cerr << "X res visible  = " << _varinfo.xres << std::endl;
+    std::cerr << "Y res visible  = " << _varinfo.yres << std::endl;
+    std::cerr << "X res virtual  = " << _varinfo.xres_virtual << std::endl;
+    std::cerr << "Y res virtual  = " << _varinfo.yres_virtual << std::endl;
+    std::cerr << "X offset       = " << _varinfo.xoffset << std::endl;
+    std::cerr << "Y offset       = " << _varinfo.yoffset << std::endl;
+    std::cerr << "bits per pixel = " << _varinfo.bits_per_pixel << std::endl;
+
+    // dump the fb_fix_screeninfo data    
+    std::cerr << "Screen Memory = " << _fixinfo.smem_len << std::endl;
+    std::cerr << "Screen Type   = " << _fixinfo.type << std::endl;
+    std::cerr << "X Pan step    = " << _fixinfo.xpanstep << std::endl;
+    std::cerr << "Y Pan step    = " << _fixinfo.ypanstep << std::endl;
+    std::cerr << "Y wrap step   = " << _fixinfo.ywrapstep << std::endl;
+    std::cerr << "line length   = " << _fixinfo.line_length << std::endl;
+}
+
 #ifdef ENABLE_FAKE_FRAMEBUFFER
 // Simulate the ioctls used to get information from the framebuffer
 // driver. Since this is an emulator, we have to set these fields

http://git.savannah.gnu.org/cgit//commit/?id=29b02a8e6cdbb9483abd462e7c19664a5bacfcfb


commit 29b02a8e6cdbb9483abd462e7c19664a5bacfcfb
Author: Rob Savoye <address@hidden>
Date:   Sat Jul 21 11:49:30 2012 -0600

    add Android specific hack for sincos() as it seems to work differently on 
Android, which produces a segfault for some cases.

diff --git a/libcore/SWFMatrix.cpp b/libcore/SWFMatrix.cpp
index 46749c6..4246faa 100644
--- a/libcore/SWFMatrix.cpp
+++ b/libcore/SWFMatrix.cpp
@@ -30,6 +30,24 @@
 #include "SWFRect.h"
 #include "Point2d.h"
 
+// The Bionic libm doesn't build sincos for ARM, but older versions
+// of boost want it. It also turns out AGG using this causes a
+// segfault by passing in 0 as an argument for x, so for now we
+// ignore that error so debugging can continue.
+#ifdef __ANDROID__
+void
+sincos(double x, double *psin, double *pcos)
+{
+    if (x > 0) {
+        *psin = sin(x);
+        *pcos = cos(x);
+    } else {
+        std::cerr << "FIXME: sincos(0) will segfault!" << std::endl;
+        // *psin = 0.244287;
+        // *pcos = 0.969703;
+    }
+}
+#endif
 
 // This class intentionally uses overflows, which are not allowed in
 // signed types; apart from being UB always, in practice it produces
@@ -206,7 +224,11 @@ void
 SWFMatrix::set_scale(double xscale, double yscale)
 {
     const double rotation = get_rotation();
-    set_scale_rotation(xscale, yscale, rotation); 
+    if ((xscale == 0.0) || (yscale == 0.0)) {
+        std::cerr << "FIXME: sincos(0) will segfault!" << std::endl;
+    } else {
+        set_scale_rotation(xscale, yscale, rotation);
+    }
 }
 
 void
@@ -352,7 +374,5 @@ operator<<(std::ostream& o, const SWFMatrix& m)
 
 // Local Variables:
 // mode: C++
-// c-basic-offset: 8 
-// tab-width: 8
-// indent-tabs-mode: t
+// indent-tabs-mode: nil
 // End:

http://git.savannah.gnu.org/cgit//commit/?id=811d7754499a61bdbcde03b7dc4c5feb83704c9e


commit 811d7754499a61bdbcde03b7dc4c5feb83704c9e
Author: Rob Savoye <address@hidden>
Date:   Sat Jul 21 11:47:12 2012 -0600

    Define MAXHOSTNAMELEN if it doesn't exist.

diff --git a/libbase/URL.cpp b/libbase/URL.cpp
index 5ffdb70..9455215 100644
--- a/libbase/URL.cpp
+++ b/libbase/URL.cpp
@@ -86,7 +86,6 @@ URL::normalize_path(std::string& path)
          i!=e; ++i) {
         path += "/" + *i;
     }
-    
 }
 
 void
diff --git a/libbase/URLAccessManager.cpp b/libbase/URLAccessManager.cpp
index 0187390..43b58f1 100644
--- a/libbase/URLAccessManager.cpp
+++ b/libbase/URLAccessManager.cpp
@@ -32,6 +32,11 @@
 #include <vector>
 #include <cassert>
 
+// Android fails to define this constant
+#ifndef MAXHOSTNAMELEN
+# define MAXHOSTNAMELEN 256
+#endif
+
 namespace gnash {
 namespace URLAccessManager {
 

http://git.savannah.gnu.org/cgit//commit/?id=72e9743c0804f089609c3e5ff1c5c0e27f4d3396


commit 72e9743c0804f089609c3e5ff1c5c0e27f4d3396
Author: Rob Savoye <address@hidden>
Date:   Sat Jul 21 11:45:34 2012 -0600

    tweak emacs settings block

diff --git a/libbase/zlib_adapter.cpp b/libbase/zlib_adapter.cpp
index f40ff11..1ef03d5 100644
--- a/libbase/zlib_adapter.cpp
+++ b/libbase/zlib_adapter.cpp
@@ -324,7 +324,5 @@ std::auto_ptr<IOChannel> 
make_inflater(std::auto_ptr<IOChannel> in)
 
 // Local Variables:
 // mode: C++
-// c-basic-offset: 8 
-// tab-width: 8
 // indent-tabs-mode: nil
 // End:

http://git.savannah.gnu.org/cgit//commit/?id=e0c54559559d1cee915c1d07046c88e01562cf64


commit e0c54559559d1cee915c1d07046c88e01562cf64
Author: Rob Savoye <address@hidden>
Date:   Sat Jul 21 11:24:52 2012 -0600

    Use appropriate tags with Android log messages.

diff --git a/configure.ac b/configure.ac
index c519d18..45efa42 100644
--- a/configure.ac
+++ b/configure.ac
@@ -267,8 +267,8 @@ AC_ARG_WITH([android],
 )
 dnl -fshort-wchar
 if test x"${android_ndk}" != xno; then
-  CROSS_CXXFLAGS='-mandroid -fexceptions -frtti'
-  CROSS_LDFLAGS=-all-static
+  CROSS_CXXFLAGS='-mandroid -fexceptions -frtti -I${prefix}/include'
+  CROSS_LDFLAGS=-all-static -L${prefix}/lib
   if test x"${with_top_level}" = x; then
     with_top_level=/usr/local/android-arm/sysroot/usr
     cross_compiling=yes
diff --git a/libbase/log.cpp b/libbase/log.cpp
index 629cba6..2920bdd 100644
--- a/libbase/log.cpp
+++ b/libbase/log.cpp
@@ -123,6 +123,11 @@ void
 processLog_trace(const boost::format& fmt)
 {
     dbglogfile.log(N_("TRACE"), fmt.str());
+    // Print messages to the Android log, where they can be retrieved with
+    // logcat.    
+#ifdef __ANDROID__
+    __android_log_print(ANDROID_LOG_INFO, "Gnash", fmt.str().c_str());
+#endif    
 }
 
 void
@@ -130,6 +135,11 @@ processLog_debug(const boost::format& fmt)
 {
     if (dbglogfile.getVerbosity() < LogFile::LOG_DEBUG) return;
     dbglogfile.log(N_("DEBUG"), fmt.str());
+    // Print messages to the Android log, where they can be retrieved with
+    // logcat.    
+#ifdef __ANDROID__
+    __android_log_print(ANDROID_LOG_DEBUG, "Gnash", fmt.str().c_str());
+#endif    
 }
 
 void
@@ -137,48 +147,88 @@ processLog_abc(const boost::format& fmt)
 {
     if (dbglogfile.getVerbosity() < LogFile::LOG_EXTRA) return;
     dbglogfile.log(N_("ABC"), fmt.str());
+    // Print messages to the Android log, where they can be retrieved with
+    // logcat.    
+#ifdef __ANDROID__
+    __android_log_print(ANDROID_LOG_VERBOSE, "Gnash", fmt.str().c_str());
+#endif    
 }
 
 void
 processLog_parse(const boost::format& fmt)
 {
     dbglogfile.log(fmt.str());
+    // Print messages to the Android log, where they can be retrieved with
+    // logcat.    
+#ifdef __ANDROID__
+    __android_log_print(ANDROID_LOG_VERBOSE, "Gnash", fmt.str().c_str());
+#endif    
 }
 
 void
 processLog_network(const boost::format& fmt)
 {
     dbglogfile.log(N_("NETWORK"), fmt.str());
+    // Print messages to the Android log, where they can be retrieved with
+    // logcat.    
+#ifdef __ANDROID__
+    __android_log_print(ANDROID_LOG_DEBUG, "Gnash", fmt.str().c_str());
+#endif    
 }
 
 void
 processLog_error(const boost::format& fmt)
 {
     dbglogfile.log(N_("ERROR"), fmt.str());
+    // Print messages to the Android log, where they can be retrieved with
+    // logcat.    
+#ifdef __ANDROID__
+    __android_log_print(ANDROID_LOG_ERROR, "Gnash", fmt.str().c_str());
+#endif    
 }
 
 void
 processLog_unimpl(const boost::format& fmt)
 {
     dbglogfile.log(N_("UNIMPLEMENTED"), fmt.str());
+    // Print messages to the Android log, where they can be retrieved with
+    // logcat.    
+#ifdef __ANDROID__
+    __android_log_print(ANDROID_LOG_WARN, "Gnash", fmt.str().c_str());
+#endif    
 }
 
 void
 processLog_security(const boost::format& fmt)
 {
     dbglogfile.log(N_("SECURITY"), fmt.str());
+    // Print messages to the Android log, where they can be retrieved with
+    // logcat.    
+#ifdef __ANDROID__
+    __android_log_print(ANDROID_LOG_WARN, "Gnash", fmt.str().c_str());
+#endif    
 }
 
 void
 processLog_swferror(const boost::format& fmt)
 {
     dbglogfile.log(N_("MALFORMED SWF"), fmt.str());
+    // Print messages to the Android log, where they can be retrieved with
+    // logcat.    
+#ifdef __ANDROID__
+    __android_log_print(ANDROID_LOG_WARN, "Gnash", fmt.str().c_str());
+#endif    
 }
 
 void
 processLog_aserror(const boost::format& fmt)
 {
     dbglogfile.log(N_("ACTIONSCRIPT ERROR"), fmt.str());
+    // Print messages to the Android log, where they can be retrieved with
+    // logcat.    
+#ifdef __ANDROID__
+    __android_log_print(ANDROID_LOG_WARN, "Gnash", fmt.str().c_str());
+#endif    
 }
 
 void
@@ -196,12 +246,6 @@ LogFile::log(const std::string& msg)
 
     boost::mutex::scoped_lock lock(_ioMutex);
 
-    // Print messages to the Android log, where they can be retrieved with
-    // logcat.
-#ifdef __ANDROID__
-    __android_log_print(ANDROID_LOG_DEBUG, "Gnash", msg.c_str());
-#endif
-    
     if ( !_verbose ) return; // nothing to do if not verbose
 
     if (openLogIfNeeded()) {

http://git.savannah.gnu.org/cgit//commit/?id=ceaea748d0e71b64c704e0b9d3698e90d1cea539


commit ceaea748d0e71b64c704e0b9d3698e90d1cea539
Author: Rob Savoye <address@hidden>
Date:   Thu Jul 19 17:30:52 2012 -0600

    add libraries so test cases build for Android.

diff --git a/gui/fb/fb.am b/gui/fb/fb.am
index 9bae09c..b444fb7 100644
--- a/gui/fb/fb.am
+++ b/gui/fb/fb.am
@@ -53,6 +53,10 @@ fb_gnash_CPPFLAGS += \
 fb_gnash_LDADD += $(OPENVG_LIBS) $(EGL_LIBS)
 endif  # BUILD_OVG_RENDERER
 
+if ANDROID
+fb_gnash_LDADD +=  -lui -llog
+endif  # ANDROID
+
 # # This supports only OpenGLES 1.1 with EGL support.
 # if BUILD_GLES1_RENDERER
 # fb_gnash_SOURCES += fb/fb_glue_gles1.cpp fb/fb_glue_gles1.h
diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
index 6216979..57b21aa 100644
--- a/testsuite/Makefile.am
+++ b/testsuite/Makefile.am
@@ -135,6 +135,10 @@ libtestsuite_la_LIBADD = \
        $(top_builddir)/librender/libgnashrender.la \
        $(NULL)
 
+if ANDROID
+libtestsuite_la_LIBADD += -lui -llog
+endif  # ANDROID
+
 if BUILD_LIBMEDIA
 libtestsuite_la_LIBADD += $(top_builddir)/libmedia/libgnashmedia.la
 endif
diff --git a/testsuite/libbase.all/Makefile.am 
b/testsuite/libbase.all/Makefile.am
index ad64bfb..0f0015e 100644
--- a/testsuite/libbase.all/Makefile.am
+++ b/testsuite/libbase.all/Makefile.am
@@ -22,7 +22,15 @@ AUTOMAKE_OPTIONS = dejagnu
 LDADD = \
        $(top_builddir)/libbase/libgnashbase.la \
        $(top_builddir)/librender/libgnashrender.la \
-       $(LIBINTL)
+       $(LIBINTL) \
+       $(AGG_LIBS) \
+       $(OPENVG_LIBS) \
+       $(EGL_LIBS) \
+       $(NULL)
+
+if ANDROID
+LDADD +=  -lui -llog
+endif  # ANDROID
 
 AM_LDFLAGS = $(CROSS_LDFLAGS)
 AM_CXXFLAGS = $(CROSS_CXXFLAGS)
@@ -70,30 +78,40 @@ check_PROGRAMS = \
 NoSeekFileTest_SOURCES = NoSeekFileTest.cpp
 NoSeekFileTest_CPPFLAGS = $(AM_CPPFLAGS) \
        '-DINPUT="$(srcdir)/NoSeekFileTest.cpp"'
+NoSeekFileTest_LDADD = $(LDADD)
 
 URLTest_SOURCES = URLTest.cpp
 URLTest_CPPFLAGS =  $(AM_CPPFLAGS) \
        '-DBUILDDIR="$(abs_builddir)"'
+URLTest_LDADD = $(LDADD)
 
 RcTest_SOURCES = RcTest.cpp
 RcTest_CPPFLAGS =  $(AM_CPPFLAGS) \
        -DSRCDIR="$(srcdir)"
+RcTest_LDADD = $(LDADD)
 
 IntTypesTest_SOURCES = IntTypesTest.cpp
 IntTypesTest_CPPFLAGS =  $(AM_CPPFLAGS) \
        -DSRCDIR="$(srcdir)"
+IntTypesTest_LDADD = $(LDADD)
 
 # Test the Memory class
 #memtest_SOURCES = memtest.cpp
 
 Point2dTest_SOURCES = Point2dTest.cpp
+Point2dTest_LDADD = $(LDADD)
+
 Range2dTest_SOURCES = Range2dTest.cpp
+Range2dTest_LDADD = $(LDADD)
+
 snappingrangetest_SOURCES = snappingrangetest.cpp
+snappingrangetest_LDADD= $(LDADD)
 
 string_tableTest_SOURCES = string_tableTest.cpp
 string_tableTest_CPPFLAGS =  $(AM_CPPFLAGS) \
        -DSRCDIR="$(srcdir)"
 string_tableTest_LDFLAGS = $(BOOST_LIBS)
+string_tableTest_LDADD = $(LDADD)
 
 TEST_DRIVERS = ../simple.exp
 TEST_CASES = \
diff --git a/testsuite/libcore.all/Makefile.am 
b/testsuite/libcore.all/Makefile.am
index 7a900ea..537959e 100644
--- a/testsuite/libcore.all/Makefile.am
+++ b/testsuite/libcore.all/Makefile.am
@@ -62,61 +62,69 @@ CLEANFILES = \
        gnash-dbg.log \
        $(NULL)
 
-AM_LDFLAGS = \
+LDADD = \
        $(top_builddir)/libcore/libgnashcore.la \
        $(top_builddir)/libbase/libgnashbase.la \
        $(CROSS_LDFLAGS) \
-       $(BOOST_LIBS) 
+       $(BOOST_LIBS) \
+       $(AGG_LIBS) \
+       $(OPENVG_LIBS) \
+       $(EGL_LIBS) \
+       $(NULL)
+
+if ANDROID
+LDADD += -lui -llog
+endif  # ANDROID
 
 if BUILD_LIBMEDIA
-AM_LDFLAGS += $(top_builddir)/libmedia/libgnashmedia.la
+LDADD += $(top_builddir)/libmedia/libgnashmedia.la
 endif
 if BUILD_LIBSOUND
-AM_LDFLAGS += $(top_builddir)/libsound/libgnashsound.la
+LDADD += $(top_builddir)/libsound/libgnashsound.la
 endif
 
 BitsReaderTest_SOURCES = BitsReaderTest.cpp
-BitsReaderTest_LDADD = $(AM_LDFLAGS)
+BitsReaderTest_LDADD = $(LDADD)
 
 StreamTest_SOURCES = StreamTest.cpp
-StreamTest_LDADD = $(AM_LDFLAGS)
+StreamTest_LDADD = $(LDADD)
 
 MatrixTest_SOURCES = MatrixTest.cpp
-MatrixTest_LDADD = $(AM_LDFLAGS)
+MatrixTest_LDADD = $(LDADD)
 
 PointTest_SOURCES = PointTest.cpp
-PointTest_LDADD = $(AM_LDFLAGS)
+PointTest_LDADD = $(LDADD)
 
 EdgeTest_SOURCES = EdgeTest.cpp
-EdgeTest_LDADD = $(AM_LDFLAGS)
+EdgeTest_LDADD = $(LDADD)
 
 PropertyListTest_SOURCES = PropertyListTest.cpp
-PropertyListTest_LDADD = $(AM_LDFLAGS)
+PropertyListTest_LDADD = $(LDADD)
 
 PropFlagsTest_SOURCES = PropFlagsTest.cpp
-PropFlagsTest_LDADD = $(AM_LDFLAGS)
+PropFlagsTest_LDADD = $(LDADD)
 
 DisplayListTest_SOURCES = DisplayListTest.cpp
-DisplayListTest_LDADD = $(AM_LDFLAGS)
+DisplayListTest_LDADD = $(LDADD)
 
 # if CYGNAL
 check_PROGRAMS += AsValueTest
 AsValueTest_SOURCES = AsValueTest.cpp
-AsValueTest_LDADD = $(AM_LDFLAGS)
+AsValueTest_LDADD = $(LDADD)
 # endif
 
 ClassSizes_SOURCES = ClassSizes.cpp
-ClassSizes_LDADD = $(AM_LDFLAGS)
+ClassSizes_LDADD = $(LDADD)
 
 SafeStackTest_SOURCES = SafeStackTest.cpp
-SafeStackTest_LDADD = $(AM_LDFLAGS)
+SafeStackTest_LDADD = $(LDADD)
 
 CxFormTest_SOURCES = CxFormTest.cpp
-CxFormTest_LDADD = $(AM_LDFLAGS)
+CxFormTest_LDADD = $(LDADD)
 
 CodeStreamTest_SOURCES = CodeStreamTest.cpp
-CodeStreamTest_LDADD = $(AM_LDFLAGS)
-CodeStreamTest_DEPENDENCIES = $(AM_LDFLAGS)
+CodeStreamTest_LDADD = $(LDADD)
+CodeStreamTest_DEPENDENCIES = $(LDADD)
 
 TEST_DRIVERS = ../simple.exp
 TEST_CASES = $(check_PROGRAMS)
diff --git a/testsuite/libmedia.all/Makefile.am 
b/testsuite/libmedia.all/Makefile.am
index 6100486..b651342 100644
--- a/testsuite/libmedia.all/Makefile.am
+++ b/testsuite/libmedia.all/Makefile.am
@@ -30,8 +30,13 @@ AM_LDFLAGS = \
        $(GSTREAMER_APP_LIBS) \
        $(GSTREAMER_LIBS) \
        $(BOOST_LIBS) \
+       $(EGL_LIBS) \
        $(NULL)
 
+if ANDROID
+AM_LDFLAGS +=  -lui -llog
+endif  # ANDROID
+
 localedir = $(datadir)/locale
 
 INCLUDES = \
diff --git a/testsuite/misc-ming.all/Makefile.am 
b/testsuite/misc-ming.all/Makefile.am
index fbbae8b..65b978e 100644
--- a/testsuite/misc-ming.all/Makefile.am
+++ b/testsuite/misc-ming.all/Makefile.am
@@ -93,6 +93,10 @@ AM_LDFLAGS = \
        $(top_builddir)/libcore/libgnashcore.la \
        $(NULL)
 
+if ANDROID
+AM_LDFLAGS +=  -lui -llog
+endif  # ANDROID
+
 check_PROGRAMS = \
        ResolveEventsTest \
        ResolveEventsTest-Runner \
diff --git a/testsuite/movies.all/Makefile.am b/testsuite/movies.all/Makefile.am
index c2d5144..4968a72 100644
--- a/testsuite/movies.all/Makefile.am
+++ b/testsuite/movies.all/Makefile.am
@@ -53,6 +53,10 @@ AM_LDFLAGS = \
        $(OPENGL_LIBS) \
        $(NULL)
 
+if ANDROID
+AM_LDFLAGS +=  -lui -llog
+endif  # ANDROID
+
 gravity_embedded_TestRunner_SOURCES = \
        gravity_embedded-TestRunner.cpp \
        $(NULL)
diff --git a/testsuite/samples/Makefile.am b/testsuite/samples/Makefile.am
index 0f36685..5c59ef8 100644
--- a/testsuite/samples/Makefile.am
+++ b/testsuite/samples/Makefile.am
@@ -44,8 +44,13 @@ AM_CPPFLAGS = \
 AM_LDFLAGS = \
        $(CROSS_LDFLAGS) \
        $(OPENGL_LIBS) \
+       $(EGL_LIBS) \
        $(NULL)
 
+if ANDROID
+LDADD =  -lui -llog
+endif  # ANDROID
+
 AM_CXXFLAGS = $(CROSS_CXXFLAGS)
 
 GNASH_LIBS = \
@@ -72,6 +77,7 @@ clip_as_button2_TestRunner_SOURCES = \
        $(NULL)
 clip_as_button2_TestRunner_LDADD = \
        $(GNASH_LIBS) \
+       $(LDADD) \
        $(NULL)
 clip_as_button2_TestRunner_CXXFLAGS = \
        -DSRCDIR=\"$(srcdir)\" \
@@ -83,6 +89,7 @@ subshapes_TestRunner_SOURCES = \
        $(NULL)
 subshapes_TestRunner_LDADD = \
        $(GNASH_LIBS) \
+       $(LDADD) \
        $(NULL)
 subshapes_TestRunner_CXXFLAGS = \
        -DSRCDIR=\"$(srcdir)\" \
@@ -94,6 +101,7 @@ gotoFrameOnKeyEvent_TestRunner_SOURCES = \
        $(NULL)
 gotoFrameOnKeyEvent_TestRunner_LDADD = \
        $(GNASH_LIBS) \
+       $(LDADD) \
        $(NULL)
 gotoFrameOnKeyEvent_TestRunner_CXXFLAGS = \
        -DSRCDIR=\"$(srcdir)\" \
@@ -113,6 +121,7 @@ test_15bpp_bitmap_TestRunner_SOURCES = \
        $(NULL)
 test_15bpp_bitmap_TestRunner_LDADD = \
        $(GNASH_LIBS) \
+       $(LDADD) \
        $(NULL)
 test_15bpp_bitmap_TestRunner_CXXFLAGS = \
        -DSRCDIR=\"$(srcdir)\" \
diff --git a/utilities/Makefile.am b/utilities/Makefile.am
index 6bd37eb..768a111 100644
--- a/utilities/Makefile.am
+++ b/utilities/Makefile.am
@@ -46,6 +46,10 @@ AM_LDFLAGS = \
        $(GNASH_LIBS) \
        $(NULL)
 
+if ANDROID
+AM_LDFLAGS +=  -lui -llog
+endif  # ANDROID
+
 localedir = $(datadir)/locale
 
 AM_CPPFLAGS = \

http://git.savannah.gnu.org/cgit//commit/?id=4983f70a09318ef97a861bfa0d2267ad9e423759


commit 4983f70a09318ef97a861bfa0d2267ad9e423759
Author: Rob Savoye <address@hidden>
Date:   Thu Jul 19 13:09:46 2012 -0600

    add OpenVG and EGL libs so we can statically link. Remove bogus include 
path for Android.

diff --git a/libbase/Makefile.am b/libbase/Makefile.am
index 84ad937..8be9015 100644
--- a/libbase/Makefile.am
+++ b/libbase/Makefile.am
@@ -167,10 +167,6 @@ libgnashbase_la_CPPFLAGS = -DPLUGINSDIR=\"$(pluginsdir)\" \
        -I$(top_srcdir)/librender \
        $(NULL)
 
-if ANDROID
-libgnashbase_la_CPPFLAGS += $(ANDROID_NDK)/usr/include
-endif
-
 libgnashbase_la_LIBADD = \
        $(JPEG_LIBS) \
        $(PNG_LIBS) \
@@ -180,10 +176,16 @@ libgnashbase_la_LIBADD = \
        $(LIBINTL) \
        $(BOOST_LIBS) \
        $(OPENGL_LIBS) \
+       $(OPENVG_LIBS) \
+       $(EGL_LIBS) \
        $(PTHREAD_LIBS) \
        $(LTDL_LIBS) \
        $(NULL)
 
+if ANDROID
+libgnashbase_la_LIBADD += -lui -llog
+endif  # ANDROID
+
 if HAIKU
   libgnashbase_la_LIBADD += $(HAIKU_LIBS)
 endif

http://git.savannah.gnu.org/cgit//commit/?id=e3b571b53dcb6ddf71a754837bc82caaea939da1


commit e3b571b53dcb6ddf71a754837bc82caaea939da1
Author: Rob Savoye <address@hidden>
Date:   Thu Jul 19 12:56:33 2012 -0600

    add support for Android logging system

diff --git a/libbase/log.cpp b/libbase/log.cpp
index 14ef03c..629cba6 100644
--- a/libbase/log.cpp
+++ b/libbase/log.cpp
@@ -196,6 +196,12 @@ LogFile::log(const std::string& msg)
 
     boost::mutex::scoped_lock lock(_ioMutex);
 
+    // Print messages to the Android log, where they can be retrieved with
+    // logcat.
+#ifdef __ANDROID__
+    __android_log_print(ANDROID_LOG_DEBUG, "Gnash", msg.c_str());
+#endif
+    
     if ( !_verbose ) return; // nothing to do if not verbose
 
     if (openLogIfNeeded()) {
@@ -374,6 +380,6 @@ inline unsigned long int /* pthread_t */ get_thread_id(void)
 
 // Local Variables:
 // mode: C++
-// indent-tabs-mode: t
+// indent-tabs-mode: nil
 // End:
 
diff --git a/libbase/log.h b/libbase/log.h
index 5a6a041..67ceff2 100644
--- a/libbase/log.h
+++ b/libbase/log.h
@@ -30,6 +30,12 @@
 #include <boost/thread/mutex.hpp>
 #include <boost/format.hpp>
 
+// This is needed so we can print to the Android log file, which can
+// be retrieved with logcat.
+#ifdef __ANDROID__
+#include <android/log.h>
+#endif
+
 // the default name for the debug log
 #define DEFAULT_LOGFILE "gnash-dbg.log"
 
@@ -392,19 +398,19 @@ public:
     // Only print function tracing messages when multiple -v
     // options have been supplied. 
     HostFunctionReport() : _func(0) {
-        log_debug("entering");
+        log_trace("entering");
     }
 
     HostFunctionReport(const char* func) : _func(func) {
         if (func) {
-            log_debug("%s enter", func);
+            log_trace("%s enter", func);
         }
         else {
-            log_debug("No Function Name! enter");
+            log_trace("No Function Name! enter");
         }
     }
     ~HostFunctionReport() {
-        log_debug("%s returning", _func);
+        log_trace("%s returning", _func);
     }
 private:
     const char* _func;
@@ -430,15 +436,14 @@ private:
 #define GNASH_REPORT_RETURN
 #else
 #define GNASH_REPORT_FUNCTION \
-    gnash::log_debug("entering")
+    gnash::log_trace"entering")
 
 #define GNASH_REPORT_RETURN \
-    gnash::log_debug("returning")
+    gnash::log_trace("returning")
 #endif
 
 }
 
-
 #endif // GNASH_LOG_H
 
 

http://git.savannah.gnu.org/cgit//commit/?id=4022d8cfefb4d5448ac6b99dcfdb96f0d3532d33


commit 4022d8cfefb4d5448ac6b99dcfdb96f0d3532d33
Author: Rob Savoye <address@hidden>
Date:   Fri Jul 6 08:57:07 2012 -0600

    comment out frame rate debugging messages for now.

diff --git a/gui/Player.cpp b/gui/Player.cpp
index 9781e5a..59149b7 100644
--- a/gui/Player.cpp
+++ b/gui/Player.cpp
@@ -544,7 +544,7 @@ Player::run(int argc, char* argv[], const std::string& 
infile,
 
     if (! _delay) {
         float fps = _movieDef->get_frame_rate();
-        log_debug("Movie Frame Rate is %d, adjusting delay", fps);
+        // log_debug("Movie Frame Rate is %g, adjusting delay", fps);
         // FIXME: this value is arbitrary, and will make any movie with
         // less than 12 frames eat up more of the cpu. It should probably
         // be a much lower value, like 2.
diff --git a/gui/fb/fb.cpp b/gui/fb/fb.cpp
index f387ca4..4e44843 100644
--- a/gui/fb/fb.cpp
+++ b/gui/fb/fb.cpp
@@ -367,8 +367,8 @@ FBGui::run()
         // 10ms per heart beat
         delay = 10000;
     }
-    log_debug(_("Movie Frame Rate is %d, adjusting delay to %dms"), fps,
-              _interval * delay);
+    // log_debug(_("Movie Frame Rate is %g, adjusting delay to %dms"), fps,
+    //           _interval * delay);
     
     // This loops endlessly at the frame rate
     while (!terminate_request) {  
diff --git a/gui/gui.cpp b/gui/gui.cpp
index 53da8ed..e5a20c5 100644
--- a/gui/gui.cpp
+++ b/gui/gui.cpp
@@ -922,8 +922,8 @@ Gui::start()
         }
         s->unpause();
     }
-    _started = true;
 #endif  // USE_SOUND
+    _started = true;
     
     // log_debug("Starting virtual clock");
     _virtualClock.resume();

http://git.savannah.gnu.org/cgit//commit/?id=052e2def9d7245de53c0efd1f66f7b10433e19a2


commit 052e2def9d7245de53c0efd1f66f7b10433e19a2
Author: Rob Savoye <address@hidden>
Date:   Fri Jul 6 08:29:59 2012 -0600

    don't need to use gettext for debug messages

diff --git a/gui/Player.cpp b/gui/Player.cpp
index 92e50cd..9781e5a 100644
--- a/gui/Player.cpp
+++ b/gui/Player.cpp
@@ -544,7 +544,7 @@ Player::run(int argc, char* argv[], const std::string& 
infile,
 
     if (! _delay) {
         float fps = _movieDef->get_frame_rate();
-        log_debug(_("Movie Frame Rate is %d, adjusting delay"), fps);
+        log_debug("Movie Frame Rate is %d, adjusting delay", fps);
         // FIXME: this value is arbitrary, and will make any movie with
         // less than 12 frames eat up more of the cpu. It should probably
         // be a much lower value, like 2.

http://git.savannah.gnu.org/cgit//commit/?id=3aafd13a1296d82349f48d5ad131971abc0ae5f0


commit 3aafd13a1296d82349f48d5ad131971abc0ae5f0
Author: Rob Savoye <address@hidden>
Date:   Thu Jul 5 07:45:58 2012 -0600

    getopt returns an int, not a char

diff --git a/gui/fb/fb.cpp b/gui/fb/fb.cpp
index 2504a70..f387ca4 100644
--- a/gui/fb/fb.cpp
+++ b/gui/fb/fb.cpp
@@ -293,7 +293,7 @@ FBGui::init(int argc, char *** argv)
     }
 
     // Let -j -k override "window" size
-    optind = 0; opterr = 0; char c;
+    optind = 0; opterr = 0; int c;
     while ((c = getopt (argc, *argv, "j:k:X:Y:")) != -1) {
         switch (c) {
             case 'j':

http://git.savannah.gnu.org/cgit//commit/?id=276f897099d54b452f2912769a49faca9f204057


commit 276f897099d54b452f2912769a49faca9f204057
Author: Rob Savoye <address@hidden>
Date:   Tue Jul 3 17:19:29 2012 -0600

    Don't put AM_LDFLAGS in *_LDLFAGS, they need to be in LDADD instead.

diff --git a/gui/Makefile.am b/gui/Makefile.am
index a76ff06..a3933c3 100644
--- a/gui/Makefile.am
+++ b/gui/Makefile.am
@@ -108,11 +108,6 @@ GUI_CPPFLAGS =
 
 AM_CXXFLAGS = $(CROSS_CXXFLAGS)
 
-AM_LDFLAGS =  \
-       $(INTLLIBS) \
-       $(BOOST_LIBS) \
-       $(NULL)
-
 GNASH_LIBS = \
        $(top_builddir)/libcore/libgnashcore.la \
        $(top_builddir)/libdevice/libgnashdevice.la \
diff --git a/gui/fb/fb.am b/gui/fb/fb.am
index ff43fd3..9bae09c 100644
--- a/gui/fb/fb.am
+++ b/gui/fb/fb.am
@@ -29,11 +29,13 @@ fb_gnash_CPPFLAGS = \
        -DGUI_CONFIG=\"FB\" \
        -DFAKEFB=\"$(FAKEFB)\" \
        $(AM_CPPFLAGS) 
-fb_gnash_LDFLAGS = $(LIBLTDL) -export-dynamic $(AM_LDFLAGS)
+fb_gnash_LDFLAGS = $(LIBLTDL) -export-dynamic
 fb_gnash_LDADD = \
+       $(INTLLIBS) \
        $(GNASH_LIBS) \
        $(TS_LIBS) \
-       $(BOOST_LIBS)
+       $(BOOST_LIBS) \
+       $(NULL)
 
 # Build support for AntiGrain.
 if BUILD_AGG_RENDERER
diff --git a/gui/gtk/gtk.am b/gui/gtk/gtk.am
index b4e3604..2ea9b84 100644
--- a/gui/gtk/gtk.am
+++ b/gui/gtk/gtk.am
@@ -28,12 +28,14 @@ gtk_gnash_SOURCES = $(GUI_SRCS) $(GTK_CANVAS) \
        gtk/gtk.cpp gtk/gtksup.h gtk/gtk_glue.h gtk/gui_gtk.cpp
 gtk_gnash_CPPFLAGS = -DGUI_GTK -DGUI_CONFIG=\"GTK\" \
        $(AM_CPPFLAGS) $(GTK_CFLAGS) $(X11_CFLAGS)
-gtk_gnash_LDFLAGS = -export-dynamic $(AM_LDFLAGS)
+gtk_gnash_LDFLAGS = -export-dynamic
 gtk_gnash_LDADD = \
        $(top_builddir)/librender/libgnashrender.la \
        $(GNASH_LIBS) \
        $(GTK_LIBS) \
        $(BZ2_LIBS) \
+       $(INTLLIBS) \
+       $(BOOST_LIBS) \
        $(NULL)
 
 #gtk_gnash_DEPENDENCIES = .configline
diff --git a/gui/sdl/sdl.am b/gui/sdl/sdl.am
index 9c256ff..5f94b07 100644
--- a/gui/sdl/sdl.am
+++ b/gui/sdl/sdl.am
@@ -33,7 +33,10 @@ sdl_gnash_LDFLAGS = -export-dynamic
 sdl_gnash_LDADD = \
        $(GNASH_LIBS) \
        $(AM_LDFLAGS) \
-       $(SDL_LIBS)
+       $(SDL_LIBS) \
+       $(INTLLIBS) \
+       $(BOOST_LIBS) \
+       $(NULL)
 
 if BUILD_OGL_RENDERER
 sdl_gnash_CPPFLAGS += $(OPENGL_CFLAGS)

http://git.savannah.gnu.org/cgit//commit/?id=a8ab691ed1e8bb291820b6d9505317ef12519380


commit a8ab691ed1e8bb291820b6d9505317ef12519380
Author: Rob Savoye <address@hidden>
Date:   Tue Jun 26 11:38:25 2012 -0600

    Try /dev/graphics/fb0 on Android

diff --git a/libdevice/rawfb/RawFBDevice.cpp b/libdevice/rawfb/RawFBDevice.cpp
index 59cbf02..bdfed74 100644
--- a/libdevice/rawfb/RawFBDevice.cpp
+++ b/libdevice/rawfb/RawFBDevice.cpp
@@ -124,7 +124,11 @@ RawFBDevice::initDevice(int /* argc */, char **/* argv[] 
*/)
         // lets us redefine this at runtime.
         devname = getenv("FAKE_FRAMEBUFFER");
         if (!devname) {
+#ifdef __ANDROID__
+            devname = "/dev/graphics/fb0";
+#else
             devname = "/dev/fb0";
+#endif
         }
     }
     _fd = open(devname, O_RDWR);

http://git.savannah.gnu.org/cgit//commit/?id=04a47bd8aafdbb560f152ce34e559f62b33e9487


commit 04a47bd8aafdbb560f152ce34e559f62b33e9487
Author: Rob Savoye <address@hidden>
Date:   Tue Jun 26 11:38:01 2012 -0600

    also try /dev/graphics/fb0

diff --git a/libdevice/egl/test_egl.cpp b/libdevice/egl/test_egl.cpp
index b17c9d6..d399c85 100644
--- a/libdevice/egl/test_egl.cpp
+++ b/libdevice/egl/test_egl.cpp
@@ -154,6 +154,9 @@ test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int 
argc, char *argv[])
 #else
 # ifdef BUILD_RAWFB_DEVICE
     win = open("/dev/fb0", O_RDWR);
+    if (win <= 0) {
+        win = open("/dev/graphicsfb0", O_RDWR);
+    }    
 # endif
 # ifdef BUILD_X11_DEVICE
     x11::X11Device x11(egl.getNativeVisual());

http://git.savannah.gnu.org/cgit//commit/?id=ec25d309b26b94a5a084362d8bd8594942764dd7


commit ec25d309b26b94a5a084362d8bd8594942764dd7
Author: Rob Savoye <address@hidden>
Date:   Tue Jun 26 11:37:41 2012 -0600

    Android needs reinterpret_cast instead of static_cast

diff --git a/libdevice/egl/eglDevice.cpp b/libdevice/egl/eglDevice.cpp
index 263361b..cd6596a 100644
--- a/libdevice/egl/eglDevice.cpp
+++ b/libdevice/egl/eglDevice.cpp
@@ -380,7 +380,7 @@ EGLDevice::attachWindow(GnashDevice::native_window_t window)
     if (!window) {
         throw GnashException("bogus window handle!");
     } else {
-        _nativeWindow = static_cast<EGLNativeWindowType>(window);
+        _nativeWindow = reinterpret_cast<EGLNativeWindowType>(window);
     }
 
     if (_eglSurface != EGL_NO_SURFACE) {

http://git.savannah.gnu.org/cgit//commit/?id=1113019d3614a1a2d61d05f61e68f8574bf01d18


commit 1113019d3614a1a2d61d05f61e68f8574bf01d18
Author: Rob Savoye <address@hidden>
Date:   Tue Jun 26 11:37:12 2012 -0600

    don't use CROSS_FLAGS for executables, as -all-staic prevents Android from 
looking up system libraries

diff --git a/libdevice/Makefile.am b/libdevice/Makefile.am
index b5eab46..5230a0c 100644
--- a/libdevice/Makefile.am
+++ b/libdevice/Makefile.am
@@ -98,7 +98,7 @@ clean-hook:
        -rm -f core.*
 
 AM_CXXFLAGS = $(CROSS_CXXFLAGS)
-AM_LDFLAGS = $(CROSS_LDFLAGS)
+# AM_LDFLAGS = $(CROSS_LDFLAGS)
 
 if ENABLE_PCH
 AM_CXXFLAGS += $(PCH_FLAGS)

http://git.savannah.gnu.org/cgit//commit/?id=181b94db5f4b938907a2beb70e904988fd2e0e7e


commit 181b94db5f4b938907a2beb70e904988fd2e0e7e
Author: Rob Savoye <address@hidden>
Date:   Tue Jun 26 11:36:40 2012 -0600

    don't use CROSS_FLAGS for executables, as -all-staic prevents Android from 
looking up system libraries

diff --git a/gui/Makefile.am b/gui/Makefile.am
index 5d462f2..a76ff06 100644
--- a/gui/Makefile.am
+++ b/gui/Makefile.am
@@ -111,7 +111,6 @@ AM_CXXFLAGS = $(CROSS_CXXFLAGS)
 AM_LDFLAGS =  \
        $(INTLLIBS) \
        $(BOOST_LIBS) \
-       $(CROSS_LDFLAGS) \
        $(NULL)
 
 GNASH_LIBS = \
diff --git a/utilities/Makefile.am b/utilities/Makefile.am
index ddff2b7..6bd37eb 100644
--- a/utilities/Makefile.am
+++ b/utilities/Makefile.am
@@ -44,7 +44,6 @@ AM_LDFLAGS = \
        $(LIBADD_DL) \
        $(PTHREAD_LIBS) \
        $(GNASH_LIBS) \
-       $(CROSS_LDFLAGS) \
        $(NULL)
 
 localedir = $(datadir)/locale

http://git.savannah.gnu.org/cgit//commit/?id=a98754316f3f51558234b1314dafcd3bfe370225


commit a98754316f3f51558234b1314dafcd3bfe370225
Author: Rob Savoye <address@hidden>
Date:   Mon Jun 25 19:06:34 2012 -0600

    always enable the EGL device for any Open* renderers.

diff --git a/configure.ac b/configure.ac
index f67a29b..c519d18 100644
--- a/configure.ac
+++ b/configure.ac
@@ -936,6 +936,7 @@ dnl compile anymore, it was all hardcoded into the 
framebuffer
 dnl code. This version compiles with the latest internal rendering
 dnl API, and works properly with the glue code for the Gnash GUIs.
 build_gles1=no
+build_gles2=no
 dnl OpenGL works, but suffers from performance and rendering quality
 dnl problems. This should eventually be replacd by the OpenGLES1 and
 dnl OpenVG renders.
@@ -986,12 +987,18 @@ AC_ARG_ENABLE(renderer,
         renderer_list="${renderer_list} opengl"
         build_ogl=yes
         ;;
-      gles|GLES|gles1|GLES1)
+      gles1|GLES1)
         renderer_list="${renderer_list} opengles1"
         build_gles1=yes
         build_ogl=no
         nrender=$((nrender+1))
         ;;
+      gles2|GLES2)
+        renderer_list="${renderer_list} opengles1"
+        build_gles2=yes
+        build_ogl=no
+        nrender=$((nrender+1))
+        ;;
       ovg|OVG|OpenVG|openvg)
         renderer_list="${renderer_list} openvg"
         build_ovg=yes
@@ -1041,7 +1048,12 @@ dnl GMA500 but you currently will have to build the AGG 
renderer
 dnl instead of the OGL (OpenGL) one. 
 build_vaapi_device=no
 build_openmax_device=no
+dnl These renders always require EGL support
+if test x${build_gles1} = xyes -o x${build_gles2} = xyes -o x${build_ovg} = 
xyes; then
+build_egl_device=yes
+else
 build_egl_device=no
+fi
 build_x11_device=no
 build_directfb_device=no
 if test x"${build_fb}" = xyes -o x"${build_fb}" = xauto; then

http://git.savannah.gnu.org/cgit//commit/?id=7617e40d1b6f8266667cb72920a4fc1bd60b6d61


commit 7617e40d1b6f8266667cb72920a4fc1bd60b6d61
Author: Rob Savoye <address@hidden>
Date:   Mon Jun 25 10:36:37 2012 -0600

    add CROSS_CXXFLAGS and CROSS_LDFLAGS, add defines for when sound or media 
is disabled.

diff --git a/configure.ac b/configure.ac
index 8b530ba..f67a29b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -268,6 +268,7 @@ AC_ARG_WITH([android],
 dnl -fshort-wchar
 if test x"${android_ndk}" != xno; then
   CROSS_CXXFLAGS='-mandroid -fexceptions -frtti'
+  CROSS_LDFLAGS=-all-static
   if test x"${with_top_level}" = x; then
     with_top_level=/usr/local/android-arm/sysroot/usr
     cross_compiling=yes
@@ -282,6 +283,9 @@ fi
 AC_SUBST(ANDROID_NDK)
 AM_CONDITIONAL(ANDROID, [ test x"${android_ndk}" != xno ])
 
+AC_SUBST(CROSS_LDFLAGS)
+AC_SUBST(CROSS_CXXFLAGS)
+
 dnl Android needs this test
 dnl #include <wchar_t> 
 dnl const std::wstring& wstr
@@ -739,6 +743,11 @@ AC_ARG_ENABLE(sound,
    fi]
 )
 
+AM_CONDITIONAL(BUILD_LIBSOUND, test x${build_sound_none} != xyes)
+if test x${build_sound_none} != xyes; then
+  AC_DEFINE(USE_SOUND, [1], [Build any sound code])
+fi
+
 dnl --------------------------------------------------------
 dnl  Media handler selection
 dnl --------------------------------------------------------
@@ -791,6 +800,11 @@ AC_ARG_ENABLE(media,
     fi]
 )
 
+AM_CONDITIONAL(BUILD_LIBMEDIA, test x${build_media_none} != xyes)
+if test x${build_media_none} != xyes; then
+  AC_DEFINE(USE_MEDIA, [1], [Build any media code])
+fi
+
 dnl If no render is selected, and media handling isn't disabled, them enable 
gst
 if test x${build_media_none} = xno -a x${build_media_gst} = xno -a 
x${build_media_ffmpeg} = xno; then
   build_media_gst=yes

http://git.savannah.gnu.org/cgit//commit/?id=b74f2bf8dad36977e27b4711192754d94cdac752


commit b74f2bf8dad36977e27b4711192754d94cdac752
Author: Rob Savoye <address@hidden>
Date:   Mon Jun 25 10:34:17 2012 -0600

    use CROSS_* flags, make libmedia and libsound optional.

diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
index 152a103..6216979 100644
--- a/testsuite/Makefile.am
+++ b/testsuite/Makefile.am
@@ -18,6 +18,9 @@
 
 AUTOMAKE_OPTIONS = -Wno-portability
 
+AM_CXXFLAGS = $(CROSS_CXXFLAGS)
+AM_LDFLAGS = $(CROSS_LDFLAGS)
+
 DIR_MING=
 
 if ENABLE_MING
@@ -86,10 +89,13 @@ SUBDIRS = \
        $(DIR_SWFC) \
        movies.all \
        libbase.all     \
-       libmedia.all \
        libcore.all \
        $(NULL)
 
+if BUILD_LIBMEDIA
+SUBDIRS += libmedia.all
+endif
+
 EXTRA_DIST = check.h \
        DummyMovieDefinition.h \
        DummyCharacter.h \
@@ -124,13 +130,18 @@ libtestsuite_la_SOURCES = \
        $(NULL)
 libtestsuite_la_LIBADD = \
        $(RENDERER_LIBS) \
-       $(top_builddir)/libmedia/libgnashmedia.la \
-       $(top_builddir)/libsound/libgnashsound.la \
        $(top_builddir)/libcore/libgnashcore.la \
        $(top_builddir)/libbase/libgnashbase.la \
        $(top_builddir)/librender/libgnashrender.la \
        $(NULL)
 
+if BUILD_LIBMEDIA
+libtestsuite_la_LIBADD += $(top_builddir)/libmedia/libgnashmedia.la
+endif
+if BUILD_LIBSOUND
+libtestsuite_la_LIBADD += $(top_builddir)/libsound/libgnashsound.la
+endif
+
 libtestsuite_la_CXXFLAGS = \
        -I$(top_srcdir)/libbase \
        -I$(top_srcdir)/libmedia \
@@ -146,6 +157,7 @@ libtestsuite_la_CXXFLAGS = \
        -I$(top_srcdir)/libcore/vm  \
        $(BOOST_CFLAGS) \
        $(CAIRO_CFLAGS) \
+       $(CROSS_CXXFLAGS) \
        $(NULL)
 
 tmpSharedObject: 
diff --git a/testsuite/MovieTester.cpp b/testsuite/MovieTester.cpp
index 8cea0e8..5066983 100644
--- a/testsuite/MovieTester.cpp
+++ b/testsuite/MovieTester.cpp
@@ -38,8 +38,6 @@
 #include "swf/TagLoadersTable.h"
 #include "swf/DefaultTagLoaders.h"
 
-#include "MediaHandler.h"
-
 #ifdef RENDERER_CAIRO
 # include "Renderer_cairo.h"
 #endif
@@ -92,15 +90,20 @@ MovieTester::MovieTester(const std::string& url)
     _samplesFetched(0)
 {
     
+#ifdef USE_MEDIA
     // Initialize the testing media handlers
     initTestingMediaHandlers();
+#endif
     
+    _runResources.reset(new RunResources());
+#ifdef USE_SOUND
     // Initialize the sound handler(s)
     initTestingSoundHandlers();
-    
-    _runResources.reset(new RunResources());
     _runResources->setSoundHandler(_sound_handler);
+#endif
+#ifdef USE_MEDIA
     _runResources->setMediaHandler(_mediaHandler);
+#endif
     
     boost::shared_ptr<SWF::TagLoadersTable> loaders(new 
SWF::TagLoadersTable());
     addDefaultLoaders(*loaders);
@@ -509,14 +512,18 @@ bool
 MovieTester::streamingSound() const
 {
     if (!_sound_handler.get()) return false;
+#ifdef USE_SOUND
     return _sound_handler->streamingSound();
+#endif
 }
 
 int
 MovieTester::soundsStarted()
 {
     if ( ! _sound_handler.get() ) return 0;
+#ifdef USE_SOUND
     return _sound_handler->numSoundsStarted();
+#endif
 }
 
 int
@@ -611,6 +618,7 @@ MovieTester::canTestVideo() const
 void
 MovieTester::initTestingSoundHandlers()
 {
+#ifdef USE_SOUND
     // Currently, SoundHandler can't be constructed
     // w/out a registered MediaHandler .
     // Should be fixed though...
@@ -620,13 +628,16 @@ MovieTester::initTestingSoundHandlers()
         log_error("No media handler available, "
             "could not construct sound handler");
     }
+#endif  // USE_SOUND
 }
 
 void
 MovieTester::initTestingMediaHandlers()
 {
+#ifdef USE_SOUND
     // TODO: allow selection.
     _mediaHandler.reset(media::MediaFactory::instance().get(""));
+#endif
 }
 
 void
diff --git a/testsuite/libbase.all/Makefile.am 
b/testsuite/libbase.all/Makefile.am
index ca5b165..ad64bfb 100644
--- a/testsuite/libbase.all/Makefile.am
+++ b/testsuite/libbase.all/Makefile.am
@@ -24,6 +24,9 @@ LDADD = \
        $(top_builddir)/librender/libgnashrender.la \
        $(LIBINTL)
 
+AM_LDFLAGS = $(CROSS_LDFLAGS)
+AM_CXXFLAGS = $(CROSS_CXXFLAGS)
+
 # AM_CPPFLAGS isn't right here since per-program *_CPPFLAGS override global
 # AM_CPPFLAGS
 AM_CPPFLAGS = \
diff --git a/testsuite/libcore.all/Makefile.am 
b/testsuite/libcore.all/Makefile.am
index 32059f8..7a900ea 100644
--- a/testsuite/libcore.all/Makefile.am
+++ b/testsuite/libcore.all/Makefile.am
@@ -19,6 +19,8 @@
 
 AUTOMAKE_OPTIONS = dejagnu
 
+AM_CXXFLAGS = $(CROSS_CXXFLAGS)
+
 AM_CPPFLAGS = \
         -I$(top_srcdir)/testsuite  \
         -I$(top_srcdir)/librender  \
@@ -63,10 +65,16 @@ CLEANFILES = \
 AM_LDFLAGS = \
        $(top_builddir)/libcore/libgnashcore.la \
        $(top_builddir)/libbase/libgnashbase.la \
-       $(top_builddir)/libmedia/libgnashmedia.la \
-       $(top_builddir)/libsound/libgnashsound.la \
+       $(CROSS_LDFLAGS) \
        $(BOOST_LIBS) 
 
+if BUILD_LIBMEDIA
+AM_LDFLAGS += $(top_builddir)/libmedia/libgnashmedia.la
+endif
+if BUILD_LIBSOUND
+AM_LDFLAGS += $(top_builddir)/libsound/libgnashsound.la
+endif
+
 BitsReaderTest_SOURCES = BitsReaderTest.cpp
 BitsReaderTest_LDADD = $(AM_LDFLAGS)
 
diff --git a/testsuite/movies.all/Makefile.am b/testsuite/movies.all/Makefile.am
index 82dcf0a..c2d5144 100644
--- a/testsuite/movies.all/Makefile.am
+++ b/testsuite/movies.all/Makefile.am
@@ -62,6 +62,7 @@ gravity_embedded_TestRunner_LDADD = \
        $(NULL)
 gravity_embedded_TestRunner_CXXFLAGS = \
        -DSRCDIR='"$(srcdir)"' \
+       $(CROSS_CXXFLAGS) \
        $(NULL)
 gravity_embedded_TestRunner_DEPENDENCIES = \
        $(top_builddir)/testsuite/libtestsuite.la \
@@ -78,6 +79,7 @@ tic_tac2_TestRunner_LDADD = \
        $(NULL)
 tic_tac2_TestRunner_CXXFLAGS = \
        -DSRCDIR='"$(srcdir)"' \
+       $(CROSS_CXXFLAGS) \
        $(NULL)
 tic_tac2_TestRunner_DEPENDENCIES = \
        $(top_builddir)/testsuite/libtestsuite.la \
diff --git a/testsuite/samples/Makefile.am b/testsuite/samples/Makefile.am
index ceca58c..0f36685 100644
--- a/testsuite/samples/Makefile.am
+++ b/testsuite/samples/Makefile.am
@@ -42,9 +42,12 @@ AM_CPPFLAGS = \
         $(NULL)
 
 AM_LDFLAGS = \
+       $(CROSS_LDFLAGS) \
        $(OPENGL_LIBS) \
        $(NULL)
 
+AM_CXXFLAGS = $(CROSS_CXXFLAGS)
+
 GNASH_LIBS = \
        $(top_builddir)/testsuite/libtestsuite.la \
        $(top_builddir)/libcore/libgnashcore.la \
@@ -72,6 +75,7 @@ clip_as_button2_TestRunner_LDADD = \
        $(NULL)
 clip_as_button2_TestRunner_CXXFLAGS = \
        -DSRCDIR=\"$(srcdir)\" \
+       $(CROSS_CXXFLAGS) \
        $(NULL)
 
 subshapes_TestRunner_SOURCES = \
@@ -82,6 +86,7 @@ subshapes_TestRunner_LDADD = \
        $(NULL)
 subshapes_TestRunner_CXXFLAGS = \
        -DSRCDIR=\"$(srcdir)\" \
+       $(CROSS_CXXFLAGS) \
        $(NULL)
 
 gotoFrameOnKeyEvent_TestRunner_SOURCES = \
@@ -92,6 +97,7 @@ gotoFrameOnKeyEvent_TestRunner_LDADD = \
        $(NULL)
 gotoFrameOnKeyEvent_TestRunner_CXXFLAGS = \
        -DSRCDIR=\"$(srcdir)\" \
+       $(CROSS_CXXFLAGS) \
        $(NULL)
 
 GotoAndPlayTestRunner: Makefile $(srcdir)/../generic-testrunner.sh 
$(srcdir)/GotoAndPlayTest.swf
@@ -110,6 +116,7 @@ test_15bpp_bitmap_TestRunner_LDADD = \
        $(NULL)
 test_15bpp_bitmap_TestRunner_CXXFLAGS = \
        -DSRCDIR=\"$(srcdir)\" \
+       $(CROSS_CXXFLAGS) \
        $(NULL)
 
 clean-local: 

http://git.savannah.gnu.org/cgit//commit/?id=5185de95b6d2226b8aeaec27968f5565dc9fe052


commit 5185de95b6d2226b8aeaec27968f5565dc9fe052
Author: Rob Savoye <address@hidden>
Date:   Mon Jun 25 09:22:46 2012 -0600

    make using libsound and libmedia optonal.

diff --git a/gui/Player.cpp b/gui/Player.cpp
index 84b9e7d..92e50cd 100644
--- a/gui/Player.cpp
+++ b/gui/Player.cpp
@@ -427,8 +427,10 @@ Player::run(int argc, char* argv[], const std::string& 
infile,
     // Set the Renderer resource, opengl, openvg, agg, or cairo
     _runResources->setRenderBackend(_renderer);
 
+#ifdef USE_MEDIA
     _mediaHandler.reset(media::MediaFactory::instance().get(_media));
-
+#endif
+    
     if (!_media.empty() && !_mediaHandler.get()) {
         boost::format fmt =
             boost::format(_("Non-existent media handler %1% specified"))
diff --git a/gui/gnash.cpp b/gui/gnash.cpp
index b1e05f4..b7a65a3 100644
--- a/gui/gnash.cpp
+++ b/gui/gnash.cpp
@@ -311,8 +311,9 @@ getSupportedOptions(gnash::Player& p)
     using gnash::RcInitFile;
 
     std::vector<std::string> handlers;
+#ifdef USE_MEDIA
     gnash::media::MediaFactory::instance().listKeys(back_inserter(handlers));
-
+#endif
     std::vector<std::string> renderers;
     boost::split(renderers, RENDERER_CONFIG,
         boost::is_any_of(" "), boost::token_compress_on);
diff --git a/gui/gui.cpp b/gui/gui.cpp
index 73f78cc..53da8ed 100644
--- a/gui/gui.cpp
+++ b/gui/gui.cpp
@@ -455,15 +455,16 @@ Gui::toggleSound()
     assert (_stage);
     // @todo since we registered the sound handler, shouldn't we know
     //       already what it is ?!
+#ifdef USE_SOUND
     sound::sound_handler* s = _stage->runResources().soundHandler();
-
+    
     if (!s) return;
 
     if (s->is_muted()) s->unmute();
     else s->mute();
+#endif  // USE_SOUND
 }
 
-
 void
 Gui::notifyMouseMove(int ux, int uy) 
 {
@@ -834,11 +835,12 @@ Gui::play()
         start();
     } else {
         assert (_stage);
+#ifdef USE_SOUND
         // @todo since we registered the sound handler, shouldn't we know
         //       already what it is ?!
         sound::sound_handler* s = _stage->runResources().soundHandler();
         if ( s ) s->unpause();
-
+#endif  // USE_SOUND
         // log_debug("Starting virtual clock");
         _virtualClock.resume();
     }
@@ -912,6 +914,7 @@ Gui::start()
 
     // @todo since we registered the sound handler, shouldn't we know
     //       already what it is ?!
+#ifdef USE_SOUND
     sound::sound_handler* s = _stage->runResources().soundHandler();
     if ( s ) {
         if ( ! _audioDump.empty() ) {
@@ -920,7 +923,8 @@ Gui::start()
         s->unpause();
     }
     _started = true;
-
+#endif  // USE_SOUND
+    
     // log_debug("Starting virtual clock");
     _virtualClock.resume();
 
diff --git a/libcore/Button.cpp b/libcore/Button.cpp
index 761a0ea..94cdd7c 100644
--- a/libcore/Button.cpp
+++ b/libcore/Button.cpp
@@ -512,7 +512,7 @@ Button::mouseEvent(const event_id& event)
 
         // no sound for this transition
         if (bi < 0) break;
-
+#ifdef USE_SOUND
         const SWF::DefineButtonSoundTag::ButtonSound& bs = 
             _def->buttonSound(bi);
 
@@ -539,7 +539,8 @@ Button::mouseEvent(const event_id& event)
                     sinfo.outPoint
                     );
         }
-
+#endif  // USE_SOUND
+        
     } while(0);
 
     // From: "ActionScript - The Definitive Guide" by Colin Moock
diff --git a/libcore/TextField.cpp b/libcore/TextField.cpp
index e943af3..a220471 100644
--- a/libcore/TextField.cpp
+++ b/libcore/TextField.cpp
@@ -71,6 +71,7 @@
 // Define this to get debugging info about text formatting
 //#define GNASH_DEBUG_TEXT_FORMATTING 1
 
+
 namespace gnash {
 
 TextField::TextField(as_object* object, DisplayObject* parent,
diff --git a/libcore/asobj/NetStream_as.cpp b/libcore/asobj/NetStream_as.cpp
index 40cb6a8..1ecbca9 100644
--- a/libcore/asobj/NetStream_as.cpp
+++ b/libcore/asobj/NetStream_as.cpp
@@ -18,6 +18,10 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
 #include "NetStream_as.h"
 
 #include <functional>
@@ -181,8 +185,10 @@ NetStream_as::setBufferTime(boost::uint32_t time)
 long
 NetStream_as::bufferLength()
 {
+#ifdef USE_MEDIA
     if (_parser.get() == NULL) return 0;
     return _parser->getBufferLength();
+#endif  // USE_MEDIA
 }
 
 std::auto_ptr<image::GnashImage>
@@ -535,20 +541,23 @@ NetStream_as::startPlayback()
 std::auto_ptr<image::GnashImage> 
 NetStream_as::getDecodedVideoFrame(boost::uint32_t ts)
 {
-    assert(_videoDecoder.get()); 
-
+    assert(_videoDecoder.get());
+    
     std::auto_ptr<image::GnashImage> video;
 
+#ifdef USE_MEDIA
     assert(_parser.get());
     if (!_parser.get()) {
         log_error(_("getDecodedVideoFrame: no parser available"));
         return video; 
     }
 
+#if MEDIA_CONFIG == none
     boost::uint64_t nextTimestamp;
     bool parsingComplete = _parser->parsingCompleted();
     if (!_parser->nextVideoFrameTimestamp(nextTimestamp)) {
-
+#endif
+        
 #ifdef GNASH_DEBUG_DECODING
         log_debug(_("getDecodedVideoFrame(%d): "
                     "no more video frames in input "
@@ -609,7 +618,8 @@ NetStream_as::getDecodedVideoFrame(boost::uint32_t ts)
             break; 
         }
     }
-
+#endif  // USE_MEDIA
+    
     return video;
 }
 
@@ -618,6 +628,7 @@ NetStream_as::decodeNextVideoFrame()
 {
     std::auto_ptr<image::GnashImage> video;
 
+#ifdef USE_MEDIA
     if (!_parser.get()) {
         log_error(_("decodeNextVideoFrame: no parser available"));
         return video; 
@@ -644,7 +655,8 @@ NetStream_as::decodeNextVideoFrame()
         // TODO: tell more about the failure
         log_error(_("Error decoding encoded video frame in NetStream input"));
     }
-
+#endif  // USE_MEDIA
+    
     return video;
 }
 
@@ -653,6 +665,11 @@ NetStream_as::decodeNextAudioFrame()
 {
     assert (_parser.get());
 
+    // TODO: make the buffer cursored later ?
+    BufferedAudioStreamer::CursoredBuffer* raw =
+        new BufferedAudioStreamer::CursoredBuffer();
+
+#ifdef USE_MEDIA
     std::auto_ptr<media::EncodedAudioFrame> frame = _parser->nextAudioFrame(); 
     if (!frame.get()) {
 #ifdef GNASH_DEBUG_DECODING
@@ -663,9 +680,6 @@ NetStream_as::decodeNextAudioFrame()
         return 0;
     }
 
-    // TODO: make the buffer cursored later ?
-    BufferedAudioStreamer::CursoredBuffer* raw =
-        new BufferedAudioStreamer::CursoredBuffer();
     raw->m_data = _audioDecoder->decode(*frame, raw->m_size);
 
     // TODO: let the sound_handler do this .. sounds cleaner
@@ -693,7 +707,8 @@ NetStream_as::decodeNextAudioFrame()
 #endif 
 
     raw->m_ptr = raw->m_data;
-
+#endif  // USE_MEDIA
+    
     return raw;
 }
 
@@ -764,6 +779,8 @@ NetStream_as::refreshAudioBuffer()
 {
     assert (_parser.get());
 
+#ifdef USE_MEDIA
+    
 #ifdef GNASH_DEBUG_DECODING
     // bufferLength() would lock the mutex (which we already hold),
     // so this is to avoid that.
@@ -804,13 +821,15 @@ NetStream_as::refreshAudioBuffer()
     // timestamp >= curPos and push them into the buffer to be 
     // consumed by audio_streamer
     pushDecodedAudioFrames(curPos);
+#endif  // USE_MEDIA
 }
 
 void
 NetStream_as::pushDecodedAudioFrames(boost::uint32_t ts)
 {
     assert(_parser.get());
-
+    
+#ifdef USE_MEDIA
     if (!_audioDecoder.get()) {
 
         // There are 3 possible reasons for _audioDecoder to not be here:
@@ -1028,10 +1047,9 @@ NetStream_as::pushDecodedAudioFrames(boost::uint32_t ts)
 
         _playHead.setAudioConsumed();
     }
-
+#endif  // USE_MEDIA
 }
 
-
 void
 NetStream_as::refreshVideoFrame(bool alsoIfPaused)
 {
@@ -1125,7 +1143,7 @@ NetStream_as::refreshVideoFrame(bool alsoIfPaused)
 #ifdef GNASH_DEBUG_DECODING
             log_debug(_("%p.refreshVideoFrame(): "
                 "no more video frames to decode "
-                        "(DEC_STOPPED, null from getDecodedVideoFrame)"),
+                        "(DEC_STOPPED, null from getDeodedVideoFrame)"),
                 this);
 #endif
         }
@@ -1178,6 +1196,8 @@ NetStream_as::videoWidth() const
 void
 NetStream_as::update()
 {
+    
+#ifdef USE_MEDIA
     // Check if there are any new status messages, and if we should
     // pass them to a event handler
     processStatusNotifications();
@@ -1341,6 +1361,7 @@ NetStream_as::update()
             e = tags.end(); i != e; ++i) {
         executeTag(**i, owner());
     }
+#endif  // USE_MEDIA
 }
 
 boost::int32_t
diff --git a/libcore/asobj/Sound_as.cpp b/libcore/asobj/Sound_as.cpp
index 66e1fc5..0ffe7d0 100644
--- a/libcore/asobj/Sound_as.cpp
+++ b/libcore/asobj/Sound_as.cpp
@@ -17,6 +17,10 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
 #include "Sound_as.h"
 
 #include <string>
@@ -349,6 +353,7 @@ Sound_as::update()
 void
 Sound_as::probeAudio()
 {
+#ifdef USE_SOUND
     if ( ! externalSound ) {
         // Only probe for sound complete
         assert(_soundHandler);
@@ -436,6 +441,7 @@ Sound_as::probeAudio()
             assert(_audioDecoder.get());
         }
     }
+#endif  // USE_SOUND
 }
 
 void
@@ -677,6 +683,7 @@ Sound_as::start(double secOff, int loops)
         return;
     }
 
+#ifdef USE_SOUND
     if (externalSound) {
         if ( ! _mediaParser ) {
             log_error(_("No MediaParser initialized, can't start an external 
sound"));
@@ -726,6 +733,7 @@ Sound_as::start(double secOff, int loops)
 
         startProbeTimer(); // to dispatch onSoundComplete
     }
+#endif  // USE_SOUND
 }
 
 void
@@ -736,6 +744,7 @@ Sound_as::stop(int si)
         return;
     }
 
+#ifdef USE_SOUND
     // stop the sound
     if (si < 0) {
         if (externalSound) {
@@ -754,6 +763,7 @@ Sound_as::stop(int si)
     } else {
         _soundHandler->stopEventSound(si);
     }
+#endif  // USE_SOUND
 }
 
 size_t
@@ -789,7 +799,7 @@ Sound_as::getPosition() const
                     "likely not playing anyway)..."));
         return 0;
     }
-
+#ifdef USE_SOUND
     // If this is a event sound get the info from the soundhandler
     if (!externalSound) {
         return _soundHandler->tell(soundId);
@@ -801,9 +811,9 @@ Sound_as::getPosition() const
             return ts;
         }
     }
-
+#endif  // USE_SOUND
+    
     return 0;
-
 }
 
 
@@ -813,6 +823,7 @@ Sound_as::getAudio(boost::int16_t* samples, unsigned int 
nSamples, bool& atEOF)
     boost::uint8_t* stream = reinterpret_cast<boost::uint8_t*>(samples);
     int len = nSamples*2;
 
+#ifdef USE_SOUND
     //GNASH_REPORT_FUNCTION;
 
     while (len) {
@@ -884,6 +895,7 @@ Sound_as::getAudio(boost::int16_t* samples, unsigned int 
nSamples, bool& atEOF)
 
     atEOF=false;
     return nSamples-(len/2);
+#endif  // USE_SOUND
 }
 
 // audio callback is running in sound handler thread
diff --git a/libcore/asobj/flash.am b/libcore/asobj/flash.am
index 7aef095..b931ad3 100644
--- a/libcore/asobj/flash.am
+++ b/libcore/asobj/flash.am
@@ -45,11 +45,13 @@ libgnashasobjs_la_SOURCES = \
        asobj/MovieClip_as.cpp \
        asobj/Stage_as.cpp \
        asobj/Accessibility_as.cpp \
+       asobj/Sound_as.cpp \
        asobj/Video_as.cpp \
        asobj/Microphone_as.cpp \
        asobj/Camera_as.cpp \
        asobj/LocalConnection_as.cpp \
        asobj/NetConnection_as.cpp \
+       asobj/NetStream_as.cpp \
        asobj/SharedObject_as.cpp \
        asobj/XMLSocket_as.cpp \
        asobj/XML_as.cpp \
@@ -64,13 +66,6 @@ libgnashasobjs_la_SOURCES = \
        asobj/TextSnapshot_as.cpp \
        asobj/Object.cpp
 
-if BUILD_LIBSOUND
-  libgnashasobjs_la_SOURCES += asobj/Sound_as.cpp
-endif
-if BUILD_LIBMEDIA
-  libgnashasobjs_la_SOURCES += asobj/NetStream_as.cpp
-endif
-
 inst_HEADERS = \
        asobj/ASConversions.h \
        asobj/AsBroadcaster.h \
diff --git a/libcore/movie_root.cpp b/libcore/movie_root.cpp
index ce0d50c..c8a9280 100644
--- a/libcore/movie_root.cpp
+++ b/libcore/movie_root.cpp
@@ -854,8 +854,9 @@ movie_root::advance()
 
     bool advanced = false;
 
+#ifdef USE_SOUND
     try {
-
+        
         sound::sound_handler* s = _runResources.soundHandler();
 
         if (s && _timelineSound) {
@@ -948,7 +949,8 @@ movie_root::advance()
         log_error(_("Buffer overread during advance: %s"), e.what());
         clear(_actionQueue);
     }
-
+#endif  // USE_SOUND
+    
     return advanced;
 }
     
diff --git a/libcore/swf/SoundStreamHeadTag.cpp 
b/libcore/swf/SoundStreamHeadTag.cpp
index c148716..516393f 100644
--- a/libcore/swf/SoundStreamHeadTag.cpp
+++ b/libcore/swf/SoundStreamHeadTag.cpp
@@ -38,6 +38,8 @@ void
 SoundStreamHeadTag::loader(SWFStream& in, TagType tag, movie_definition& m,
                const RunResources& r)
 {
+#ifdef USE_SOUND
+    
     // 18 || 45
     assert(tag == SWF::SOUNDSTREAMHEAD || tag == SWF::SOUNDSTREAMHEAD2);
 
@@ -157,6 +159,7 @@ SoundStreamHeadTag::loader(SWFStream& in, TagType tag, 
movie_definition& m,
     const int handler_id = handler->createStreamingSound(sinfo);
 
     m.set_loading_sound_stream_id(handler_id);
+#endif  // USE_SOUND
 }
 
 } // namespace SWF
diff --git a/libcore/swf/StartSoundTag.cpp b/libcore/swf/StartSoundTag.cpp
index ad5dc5e..b6a9eb2 100644
--- a/libcore/swf/StartSoundTag.cpp
+++ b/libcore/swf/StartSoundTag.cpp
@@ -82,6 +82,7 @@ StartSoundTag::executeActions(MovieClip* m, DisplayList& /* 
dlist */) const
     sound::sound_handler* handler = 
         getRunResources(*getObject(m)).soundHandler();
 
+#ifdef USE_SOUND
     if (handler) {
         if (_soundInfo.stopPlayback) {
             //log_debug("Execute StartSoundTag with 'stop playback' flag on");
@@ -101,6 +102,7 @@ StartSoundTag::executeActions(MovieClip* m, DisplayList& /* 
dlist */) const
                 );
         }
     }
+#endif // USE_SOUND
 }
 
 void
diff --git a/libcore/swf/StreamSoundBlockTag.cpp 
b/libcore/swf/StreamSoundBlockTag.cpp
index cb9d59a..ce3510a 100644
--- a/libcore/swf/StreamSoundBlockTag.cpp
+++ b/libcore/swf/StreamSoundBlockTag.cpp
@@ -43,12 +43,14 @@ StreamSoundBlockTag::executeActions(MovieClip* m, 
DisplayList& /*dlist*/) const
     sound::sound_handler* handler =
         getRunResources(*getObject(m)).soundHandler(); 
 
+#ifdef USE_SOUND
     if (handler) {
         // This makes it possible to stop only the stream when framejumping.
         m->setStreamSoundId(_handler_id);
         handler->playStream(_handler_id, _blockId);
         getRoot(*getObject(m)).setStreamBlock(_handler_id, _blockId);
     }
+#endif  // USE_SOUND
 }
 
 void
diff --git a/libcore/swf/tag_loaders.cpp b/libcore/swf/tag_loaders.cpp
index c756e6f..0d2418c 100644
--- a/libcore/swf/tag_loaders.cpp
+++ b/libcore/swf/tag_loaders.cpp
@@ -158,6 +158,7 @@ define_sound_loader(SWFStream& in, TagType tag, 
movie_definition& m,
 
     const boost::uint16_t id = in.read_u16();
 
+#ifdef USE_SOUND
     media::audioCodecType format = static_cast<media::audioCodecType>(
             in.read_uint(4));
 
@@ -237,6 +238,7 @@ define_sound_loader(SWFStream& in, TagType tag, 
movie_definition& m,
             "so DisplayObject with id %d will not be added to "
             "the dictionary"), id);
     }
+#endif // USE_SOUND
 }
 
 
diff --git a/utilities/processor.cpp b/utilities/processor.cpp
index e11b375..4cdf98e 100644
--- a/utilities/processor.cpp
+++ b/utilities/processor.cpp
@@ -61,6 +61,7 @@
 #endif
 
 extern "C"{
+
 #ifdef HAVE_GETOPT_H
        #include <getopt.h>
 #endif
@@ -82,6 +83,7 @@ namespace boost
 }
 #endif
 
+
 // How many seconds to wait for a frame advancement 
 // before kicking the movie (forcing it to next frame)
 static const double waitforadvance = 5;
@@ -328,12 +330,15 @@ main(int argc, char *argv[])
            return EXIT_FAILURE;
     }
 
+#ifdef USE_MEDIA
     boost::shared_ptr<gnash::media::MediaHandler> mediaHandler;
-    boost::shared_ptr<sound::sound_handler> soundHandler;
-
     std::string mh = rcfile.getMediaHandler();
     mediaHandler.reset(media::MediaFactory::instance().get(mh));
+#endif
+#ifdef USE_SOUND
+    boost::shared_ptr<sound::sound_handler> soundHandler;
     soundHandler.reset(new sound::NullSoundHandler(mediaHandler.get()));
+#endif
 
     boost::shared_ptr<SWF::TagLoadersTable> loaders(new 
SWF::TagLoadersTable());
     addDefaultLoaders(*loaders);
@@ -355,8 +360,12 @@ main(int argc, char *argv[])
     {
 
         RunResources runResources;
+#ifdef USE_SOUND
         runResources.setSoundHandler(soundHandler);
+#endif
+#ifdef USE_MEDIA
         runResources.setMediaHandler(mediaHandler);
+#endif
         runResources.setTagLoaders(loaders);
         boost::shared_ptr<StreamProvider> sp(new StreamProvider(*i, *i));
         runResources.setStreamProvider(sp);

http://git.savannah.gnu.org/cgit//commit/?id=5d86eec7b74a5c6710b6e1f886a857478ee402eb


commit 5d86eec7b74a5c6710b6e1f886a857478ee402eb
Author: Rob Savoye <address@hidden>
Date:   Mon Jun 25 08:52:43 2012 -0600

    make linking libsound and libmedia optional, add CROSS_* flags.

diff --git a/Makefile.am b/Makefile.am
index ce78d68..96ada64 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -24,6 +24,9 @@ AUTOMAKE_OPTIONS = 1.6.0 -Wno-portability
 ACLOCAL_AMFLAGS = -I macros -I cygnal
 noinst_SCRIPT = autogen.sh
 
+CXXFLAGS += $(CROSS_CXXFLAGS)
+LDFLAGS += $(CROSS_LDFLAGS)
+
 ##
 ## Any custom ./configure switch we want to be
 ## given at 'make distcheck' time should go here
@@ -70,12 +73,20 @@ if BUILD_EXTENSIONS
 EXT_DIR = extensions
 endif
 
+if BUILD_LIBSOUND
+SOUND_DIR = libsound
+endif
+
+if BUILD_LIBMEDIA
+MEDIA_DIR = libmedia
+endif
+
 SUBDIRS = \
        desktop \
        $(DEVICES_DIR) \
        libbase \
-       libmedia \
-       libsound \
+       $(MEDIA_DIR) \
+       $(SOUND_DIR) \
        libcore \
        librender \
        gui \
@@ -218,6 +229,7 @@ dumpconfig:
        @uname -a
        $(CXX) -v
        @echo "CXXFLAGS: $(CXXFLAGS)"
+       @echo "LDFLAGS: $(LDFLAGS)"
        @echo ""
        @echo "Image decoding support..."
        @echo " JPEG_CFLAGS is $(JPEG_CFLAGS)"
@@ -520,6 +532,6 @@ package:
 
 packageclean:
        -test -z "$(CLEANFILES)" || rm -rf $(CLEANFILES)
- 
+
 # these files are created when building packages
 CLEANFILES += *.deb *.dsc *.gz *.bz2 *.changes deb-copy-stamp gnash*git* 
gnash-* rpmbuild gnash.spec .rpmmacros
diff --git a/cygnal/Makefile.am b/cygnal/Makefile.am
index defc16a..30fbba6 100644
--- a/cygnal/Makefile.am
+++ b/cygnal/Makefile.am
@@ -51,8 +51,6 @@ AM_LDFLAGS = \
        libamf/libgnashamf.la \
        $(top_builddir)/libbase/libgnashbase.la \
        $(top_builddir)/libcore/libgnashcore.la \
-       $(top_builddir)/libmedia/libgnashmedia.la \
-       $(top_builddir)/libsound/libgnashsound.la \
        $(top_builddir)/librender/libgnashrender.la \
        $(GLIB_LIBS) \
        $(LIBINTL) \
@@ -61,6 +59,13 @@ AM_LDFLAGS = \
        $(BOOST_CYGNAL_LIBS) \
        $(NULL)
 
+if BUILD_LIBMEDIA
+AM_LDFLAGS += $(top_builddir)/libmedia/libgnashmedia.la
+endif
+if BUILD_LIBSOUND
+AM_LDFLAGS += $(top_builddir)/libsound/libgnashsound.la
+endif
+
 localedir = $(datadir)/locale
 
 INCLUDES = -I.. \
diff --git a/gui/Makefile.am b/gui/Makefile.am
index f6a1b63..5d462f2 100644
--- a/gui/Makefile.am
+++ b/gui/Makefile.am
@@ -106,20 +106,27 @@ GTK_LIBS =  \
 # The following will be filled up later
 GUI_CPPFLAGS = 
 
+AM_CXXFLAGS = $(CROSS_CXXFLAGS)
+
 AM_LDFLAGS =  \
        $(INTLLIBS) \
        $(BOOST_LIBS) \
+       $(CROSS_LDFLAGS) \
        $(NULL)
 
-
 GNASH_LIBS = \
        $(top_builddir)/libcore/libgnashcore.la \
        $(top_builddir)/libdevice/libgnashdevice.la \
        $(top_builddir)/librender/libgnashrender.la \
-       $(top_builddir)/libsound/libgnashsound.la \
-       $(top_builddir)/libmedia/libgnashmedia.la \
        $(top_builddir)/libbase/libgnashbase.la
 
+if BUILD_LIBMEDIA
+GNASH_LIBS += $(top_builddir)/libmedia/libgnashmedia.la
+endif
+if BUILD_LIBSOUND
+GNASH_LIBS += $(top_builddir)/libsound/libgnashsound.la
+endif
+
 if HAVE_VAAPI
 GNASH_LIBS += \
        $(top_builddir)/libdevice/libgnashvaapi.la \
diff --git a/libbase/Makefile.am b/libbase/Makefile.am
index ae1b505..84ad937 100644
--- a/libbase/Makefile.am
+++ b/libbase/Makefile.am
@@ -278,8 +278,11 @@ if WIN32
   libgnashbase_la_LIBADD += -lws2_32 -lwinmm
 endif
 
+AM_CXXFLAGS = $(CROSS_CXXFLAGS)
+AM_LDFLAGS = $(CROSS_LDFLAGS)
+
 if ENABLE_PCH
-AM_CXXFLAGS = $(PCH_FLAGS)
+AM_CXXFLAGS += $(PCH_FLAGS)
 endif
 
 edit = sed \
diff --git a/libcore/Makefile.am b/libcore/Makefile.am
index 43e8449..edce528 100644
--- a/libcore/Makefile.am
+++ b/libcore/Makefile.am
@@ -20,8 +20,11 @@ AUTOMAKE_OPTIONS =
 
 SUBDIRS = parser vm
 
+AM_CXXFLAGS = $(CROSS_CXXFLAGS)
+AM_LDFLAGS = $(CROSS_LDFLAGS)
+
 if ENABLE_PCH
-AM_CXXFLAGS = $(PCH_FLAGS)
+AM_CXXFLAGS += $(PCH_FLAGS)
 endif
 
 pkglib_LTLIBRARIES = libgnashcore.la
@@ -289,14 +292,19 @@ inst_HEADERS += $(EXTENSIONS_API)
 libgnashcore_la_LIBADD = \
        $(top_builddir)/libcore/parser/libgnashparser.la \
        $(top_builddir)/libcore/vm/libgnashvm.la \
-       $(top_builddir)/libmedia/libgnashmedia.la \
-       $(top_builddir)/libsound/libgnashsound.la \
        $(top_builddir)/libbase/libgnashbase.la \
        $(BOOST_LIBS) \
        $(FREETYPE2_LIBS) \
        $(FONTCONFIG_LIBS) \
        $(NULL)
 
+if BUILD_LIBMEDIA
+libgnashcore_la_LIBADD += $(top_builddir)/libmedia/libgnashmedia.la
+endif
+if BUILD_LIBSOUND
+libgnashcore_la_LIBADD += $(top_builddir)/libsound/libgnashsound.la
+endif
+
 libgnashcore_la_LDFLAGS = -release $(VERSION) -export-dynamic
 
 if HAIKU
diff --git a/libcore/parser/Makefile.am b/libcore/parser/Makefile.am
index 378d331..5eaeeac 100644
--- a/libcore/parser/Makefile.am
+++ b/libcore/parser/Makefile.am
@@ -88,7 +88,10 @@ if WIN32
   libgnashparser_la_LDFLAGS += -no-undefined 
 endif
 
+AM_CXXFLAGS = $(CROSS_CXXFLAGS)
+AM_LDFLAGS = $(CROSS_LDFLAGS)
+
 if ENABLE_PCH
-AM_CXXFLAGS = $(PCH_FLAGS)
+AM_CXXFLAGS += $(PCH_FLAGS)
 endif
 
diff --git a/libcore/vm/Makefile.am b/libcore/vm/Makefile.am
index b984c06..6497cea 100644
--- a/libcore/vm/Makefile.am
+++ b/libcore/vm/Makefile.am
@@ -88,7 +88,10 @@ if WIN32
   libgnashvm_la_LDFLAGS += -no-undefined
 endif
 
+AM_CXXFLAGS = $(CROSS_CXXFLAGS)
+AM_LDFLAGS = $(CROSS_LDFLAGS)
+
 if ENABLE_PCH
-AM_CXXFLAGS = $(PCH_FLAGS)
+AM_CXXFLAGS += $(PCH_FLAGS)
 endif
 
diff --git a/libdevice/Makefile.am b/libdevice/Makefile.am
index 991526e..b5eab46 100644
--- a/libdevice/Makefile.am
+++ b/libdevice/Makefile.am
@@ -97,8 +97,11 @@ mudflap:
 clean-hook:
        -rm -f core.*
 
+AM_CXXFLAGS = $(CROSS_CXXFLAGS)
+AM_LDFLAGS = $(CROSS_LDFLAGS)
+
 if ENABLE_PCH
-AM_CXXFLAGS = $(PCH_FLAGS)
+AM_CXXFLAGS += $(PCH_FLAGS)
 endif
 
 bin_PROGRAMS =
diff --git a/libmedia/Makefile.am b/libmedia/Makefile.am
index 2d740ad..33f6d25 100644
--- a/libmedia/Makefile.am
+++ b/libmedia/Makefile.am
@@ -16,7 +16,8 @@
 
 AUTOMAKE_OPTIONS = foreign
 
-AM_CXXFLAGS = -DREGISTER_MEDIA_HANDLERS
+AM_CXXFLAGS = $(CROSS_CXXFLAGS) -DREGISTER_MEDIA_HANDLERS
+AM_LDFLAGS = $(CROSS_LDFLAGS)
 
 # If we are using an installable libltdl, then it needs to be built
 # before libgnash, as libgnash depends on it for extensions.
diff --git a/librender/Makefile.am b/librender/Makefile.am
index 3c86153..970d78d 100644
--- a/librender/Makefile.am
+++ b/librender/Makefile.am
@@ -44,10 +44,13 @@ AM_CPPFLAGS = -I.. \
 
 GNASH_LIBS = \
        $(top_builddir)/libcore/libgnashcore.la \
-       $(top_builddir)/libmedia/libgnashmedia.la \
        $(top_builddir)/libbase/libgnashbase.la \
        $(NULL)
 
+if BUILD_LIBMEDIA
+GNASH_LIBS += $(top_builddir)/libmedia/libgnashmedia.la
+endif
+
 instdir = $(includedir)/gnash
 
 noinst_HEADERS = \
@@ -125,8 +128,11 @@ endif
 clean-hook:
        -rm -f core.*
 
+AM_CXXFLAGS = $(CROSS_CXXFLAGS)
+AM_LDFLAGS = $(CROSS_LDFLAGS)
+
 if ENABLE_PCH
-AM_CXXFLAGS = $(PCH_FLAGS)
+AM_CXXFLAGS += $(PCH_FLAGS)
 endif
 
 # Remove libtool .la files
diff --git a/libsound/Makefile.am b/libsound/Makefile.am
index 83474c4..a771188 100644
--- a/libsound/Makefile.am
+++ b/libsound/Makefile.am
@@ -91,8 +91,11 @@ libgnashsound_la_LDFLAGS += -no-undefined
 libgnashsound_la_LIBADD += -lintl
 endif
 
+AM_CXXFLAGS = $(CROSS_CXXFLAGS)
+AM_LDFLAGS = $(CROSS_LDFLAGS)
+
 if ENABLE_PCH
-AM_CXXFLAGS = $(PCH_FLAGS)
+AM_CXXFLAGS += $(PCH_FLAGS)
 endif
 
 # Remove libtool .la files
diff --git a/utilities/Makefile.am b/utilities/Makefile.am
index 9aceb12..ddff2b7 100644
--- a/utilities/Makefile.am
+++ b/utilities/Makefile.am
@@ -27,16 +27,24 @@ AUTOMAKE_OPTIONS = # dejagnu
 GNASH_LIBS = \
        $(top_builddir)/libcore/libgnashcore.la \
        $(top_builddir)/libbase/libgnashbase.la \
-       $(top_builddir)/libmedia/libgnashmedia.la \
-       $(top_builddir)/libsound/libgnashsound.la \
        $(top_builddir)/librender/libgnashrender.la \
        $(NULL)
 
+if BUILD_LIBMEDIA
+GNASH_LIBS += $(top_builddir)/libmedia/libgnashmedia.la
+endif
+if BUILD_LIBSOUND
+GNASH_LIBS += $(top_builddir)/libsound/libgnashsound.la
+endif
+
+AM_CXXFLAGS = $(CROSS_CXXFLAGS)
+
 AM_LDFLAGS = \
        $(LIBINTL) \
        $(LIBADD_DL) \
        $(PTHREAD_LIBS) \
        $(GNASH_LIBS) \
+       $(CROSS_LDFLAGS) \
        $(NULL)
 
 localedir = $(datadir)/locale

http://git.savannah.gnu.org/cgit//commit/?id=2a8924cb515ba415190522d336eea1c8792c00f4


commit 2a8924cb515ba415190522d336eea1c8792c00f4
Author: Rob Savoye <address@hidden>
Date:   Sun Jun 24 10:43:34 2012 -0600

    make building NetStream and Sounds classes optional, so Gnash builds when 
there is no libsound or libmedia.

diff --git a/libcore/asobj/flash.am b/libcore/asobj/flash.am
index b931ad3..7aef095 100644
--- a/libcore/asobj/flash.am
+++ b/libcore/asobj/flash.am
@@ -45,13 +45,11 @@ libgnashasobjs_la_SOURCES = \
        asobj/MovieClip_as.cpp \
        asobj/Stage_as.cpp \
        asobj/Accessibility_as.cpp \
-       asobj/Sound_as.cpp \
        asobj/Video_as.cpp \
        asobj/Microphone_as.cpp \
        asobj/Camera_as.cpp \
        asobj/LocalConnection_as.cpp \
        asobj/NetConnection_as.cpp \
-       asobj/NetStream_as.cpp \
        asobj/SharedObject_as.cpp \
        asobj/XMLSocket_as.cpp \
        asobj/XML_as.cpp \
@@ -66,6 +64,13 @@ libgnashasobjs_la_SOURCES = \
        asobj/TextSnapshot_as.cpp \
        asobj/Object.cpp
 
+if BUILD_LIBSOUND
+  libgnashasobjs_la_SOURCES += asobj/Sound_as.cpp
+endif
+if BUILD_LIBMEDIA
+  libgnashasobjs_la_SOURCES += asobj/NetStream_as.cpp
+endif
+
 inst_HEADERS = \
        asobj/ASConversions.h \
        asobj/AsBroadcaster.h \

http://git.savannah.gnu.org/cgit//commit/?id=bb51ea56aaaa442e494dfbf72a5ec23d6342ec69


commit bb51ea56aaaa442e494dfbf72a5ec23d6342ec69
Author: Rob Savoye <address@hidden>
Date:   Fri Jun 22 15:40:42 2012 -0600

    add Android to the list of tests for ctype support.

diff --git a/libcore/asobj/String_as.cpp b/libcore/asobj/String_as.cpp
index 9f668f3..a7631fb 100644
--- a/libcore/asobj/String_as.cpp
+++ b/libcore/asobj/String_as.cpp
@@ -634,7 +634,7 @@ string_toUpperCase(const fn_call& fn)
 
     std::wstring wstr = utf8::decodeCanonicalString(str, version);
 
-#if !defined(__HAIKU__) && !defined(__amigaos4__)
+#if !defined(__HAIKU__) && !defined(__amigaos4__) && !defined(__ANDROID__)
     static const std::locale swfLocale((std::locale()), new SWFCtype());
     boost::to_upper(wstr, swfLocale);
 #else
@@ -660,7 +660,7 @@ string_toLowerCase(const fn_call& fn)
 
     std::wstring wstr = utf8::decodeCanonicalString(str, version);
 
-#if !defined(__HAIKU__) && !defined(__amigaos4__)
+#if !defined(__HAIKU__) && !defined(__amigaos4__) && !defined(__ANDROID__)
     static const std::locale swfLocale((std::locale()), new SWFCtype());
     boost::to_lower(wstr, swfLocale);
 #else

http://git.savannah.gnu.org/cgit//commit/?id=7faad99ef43d423dab7680b4a4612746d129aa4e


commit 7faad99ef43d423dab7680b4a4612746d129aa4e
Author: Rob Savoye <address@hidden>
Date:   Fri Jun 22 15:40:11 2012 -0600

    add the boost library system to the essential list.

diff --git a/macros/boost.m4 b/macros/boost.m4
index 845aaae..5788f57 100644
--- a/macros/boost.m4
+++ b/macros/boost.m4
@@ -37,7 +37,7 @@ AC_DEFUN([GNASH_PATH_BOOST],
   boost_headers="detail/lightweight_mutex.hpp thread/thread.hpp 
multi_index_container.hpp multi_index/key_extractors.hpp thread/mutex.hpp 
program_options/options_description.hpp iostreams/stream.hpp"
   dnl this is a list of *required* libraries. If any of these are missing, this
   dnl test will return a failure, and Gnash won't build.
-  boost_libs="thread program_options iostreams"
+  boost_libs="thread program_options iostreams system"
 
   dnl this is a list of *recommended* libraries. If any of these are missing, 
this
   dnl test will return a warning, and Gnash will build, but testing won't work.

http://git.savannah.gnu.org/cgit//commit/?id=aa6897ed4b11bdf166ed66ddb405f12a4923c111


commit aa6897ed4b11bdf166ed66ddb405f12a4923c111
Author: Rob Savoye <address@hidden>
Date:   Fri Jun 22 15:37:08 2012 -0600

    Make using uinput devices optional, Android doesn't support it.

diff --git a/gui/fb/fb.cpp b/gui/fb/fb.cpp
index f5020da..2504a70 100644
--- a/gui/fb/fb.cpp
+++ b/gui/fb/fb.cpp
@@ -230,7 +230,8 @@ FBGui::init(int argc, char *** argv)
     }
     
     disable_terminal();
-
+    
+#ifdef HAVE_LINUX_UINPUT_H
     // Look for the User Mode Input (Uinput) device, which is used to
     // control the movement and coordinates of the mouse cursor.
     if (_uinput.scanForDevice()) {
@@ -239,7 +240,8 @@ FBGui::init(int argc, char *** argv)
     } else {
         log_error(_("Found no accessible User mode input event device"));
     }
-        
+#endif
+    
     // Initialize all the input devices
 
     // Look for Mice that use the PS/2 mouse protocol
@@ -724,11 +726,13 @@ FBGui::checkForData()
                 InputDevice::convertAbsCoords(ie->x, ie->y,
                                               getStage()->getStageWidth(),
                                               getStage()->getStageHeight());
+#ifdef HAVE_LINUX_UINPUT_H
             // The mouse was moved
             _uinput.moveTo(coords[0], coords[1]);
             if (coords) {
                 notifyMouseMove(coords[0], coords[1]);
             }
+#endif
             
             // See if a mouse button was clicked
             if (ie->pressed) {
diff --git a/gui/fb/fbsup.h b/gui/fb/fbsup.h
index f505403..eeb5e8d 100644
--- a/gui/fb/fbsup.h
+++ b/gui/fb/fbsup.h
@@ -202,7 +202,9 @@ private:
     std::vector<boost::shared_ptr<InputDevice> > _inputs;
 
     boost::shared_ptr<Renderer> _renderer;
+#ifdef HAVE_LINUX_UINPUT_H
     UinputDevice                _uinput;
+#endif
 };
 
 } // end of namespace gui

http://git.savannah.gnu.org/cgit//commit/?id=e89fede3484d79599d8f80c742fa22232e86c116


commit e89fede3484d79599d8f80c742fa22232e86c116
Author: Rob Savoye <address@hidden>
Date:   Fri Jun 22 13:46:56 2012 -0600

    don't put -fshort-wchar in CROSS_CXXFLAGS

diff --git a/configure.ac b/configure.ac
index 2199791..8b530ba 100644
--- a/configure.ac
+++ b/configure.ac
@@ -265,8 +265,9 @@ AC_ARG_WITH([android],
           android_ndk=/opt/android-ndk-r8/build/platforms/android-9/arch-arm
         fi
 )
+dnl -fshort-wchar
 if test x"${android_ndk}" != xno; then
-  CROSS_CXXFLAGS="-mandroid -fexceptions -frtti" dnl -fshort-wchar
+  CROSS_CXXFLAGS='-mandroid -fexceptions -frtti'
   if test x"${with_top_level}" = x; then
     with_top_level=/usr/local/android-arm/sysroot/usr
     cross_compiling=yes

http://git.savannah.gnu.org/cgit//commit/?id=622e7e908b5e9cb82653f305a04c3a19e2e581c5


commit 622e7e908b5e9cb82653f305a04c3a19e2e581c5
Author: Rob Savoye <address@hidden>
Date:   Fri Jun 22 13:37:48 2012 -0600

    define wstring for Android, which doesn't support wide characters

diff --git a/libbase/utf8.h b/libbase/utf8.h
index 6b28d57..2be2711 100644
--- a/libbase/utf8.h
+++ b/libbase/utf8.h
@@ -27,6 +27,17 @@
 
 #include "dsodefs.h" // For DSOEXPORT
 
+// Android doesn't have any support for wide characters at all.
+#ifdef __ANDROID__
+namespace std {
+typedef basic_string
+   <wchar_t
+   ,std::char_traits<wchar_t>
+   ,std::allocator<wchar_t> >
+wstring;
+}
+#endif
+
 namespace gnash {
 
 /// Utilities to convert between std::string and std::wstring.
diff --git a/libcore/TextField.h b/libcore/TextField.h
index 4c19477..582b015 100644
--- a/libcore/TextField.h
+++ b/libcore/TextField.h
@@ -40,6 +40,16 @@ namespace gnash {
     class Font;
 }
 
+#ifdef __ANDROID__
+namespace std {
+typedef basic_string
+   <wchar_t
+   ,std::char_traits<wchar_t>
+   ,std::allocator<wchar_t> >
+wstring;
+}
+#endif
+
 namespace gnash {
 
 /// An instance of a DefineEditTextTag 

http://git.savannah.gnu.org/cgit//commit/?id=c52aae056a7651a7c83c5cc1cbb4a4f2c0847538


commit c52aae056a7651a7c83c5cc1cbb4a4f2c0847538
Author: Rob Savoye <address@hidden>
Date:   Fri Jun 22 13:35:04 2012 -0600

    Don't redefine MAXHOSTNAMELEN

diff --git a/libbase/URLAccessManager.cpp b/libbase/URLAccessManager.cpp
index 227da42..0187390 100644
--- a/libbase/URLAccessManager.cpp
+++ b/libbase/URLAccessManager.cpp
@@ -204,7 +204,7 @@ host_check(const std::string& host)
     // Get hostname
     //
 
-    #define MAXHOSTNAMELEN 200
+//  #define MAXHOSTNAMELEN 200
     char name[MAXHOSTNAMELEN];
     if (::gethostname(name, MAXHOSTNAMELEN) == -1)
     {

http://git.savannah.gnu.org/cgit//commit/?id=8696fc4f474eda9be8c58f059b15cd04f3986476


commit 8696fc4f474eda9be8c58f059b15cd04f3986476
Author: Rob Savoye <address@hidden>
Date:   Fri Jun 22 13:34:28 2012 -0600

    don't use MSC_CNT in a case, it doesn't exist in Android, and will be 
covered by the default anyway.

diff --git a/libdevice/events/EventDevice.cpp b/libdevice/events/EventDevice.cpp
index b5b93e4..5351dcf 100644
--- a/libdevice/events/EventDevice.cpp
+++ b/libdevice/events/EventDevice.cpp
@@ -524,7 +524,7 @@ EventDevice::check()
                 activity = true;
                 break;
             case MSC_MAX:
-            case MSC_CNT:
+//            case MSC_CNT:
             default:
                 log_unimpl(_("Misc event from Input Event Device"));
           }

http://git.savannah.gnu.org/cgit//commit/?id=4ddc7446e3f0eb6eec623a1bb7c8f583cd618775


commit 4ddc7446e3f0eb6eec623a1bb7c8f583cd618775
Author: Rob Savoye <address@hidden>
Date:   Fri Jun 22 13:32:41 2012 -0600

    remove -Wcast-align, it generates too many warnings that we can safely 
ignore.

diff --git a/configure.ac b/configure.ac
index 8789651..2199791 100644
--- a/configure.ac
+++ b/configure.ac
@@ -266,7 +266,7 @@ AC_ARG_WITH([android],
         fi
 )
 if test x"${android_ndk}" != xno; then
-  CROSS_CXXFLAGS="-mandroid -fexceptions -frtti"
+  CROSS_CXXFLAGS="-mandroid -fexceptions -frtti" dnl -fshort-wchar
   if test x"${with_top_level}" = x; then
     with_top_level=/usr/local/android-arm/sysroot/usr
     cross_compiling=yes
@@ -281,6 +281,14 @@ fi
 AC_SUBST(ANDROID_NDK)
 AM_CONDITIONAL(ANDROID, [ test x"${android_ndk}" != xno ])
 
+dnl Android needs this test
+dnl #include <wchar_t> 
+dnl const std::wstring& wstr
+dnl namespace std {
+dnl typedef basic_string<wchar_t> wstring;
+dnl };
+
+
 AC_C_BIGENDIAN
 AC_C_CONST
 AC_C_INLINE
@@ -2725,13 +2733,12 @@ fi
 #
 # -ansi was actually dropped because it hides 'fileno', which
 # is used in a few places
-#
+#    -Wcast-align 
 if test x"$GCC" = x"yes"; then
   CXXFLAGS="$CXXFLAGS \
     ${CROSS_CXXFLAGS} \
     -W \
     -Wall \
-    -Wcast-align \
     -Wcast-qual \
     -Wpointer-arith \
     -Wreturn-type \
@@ -2742,7 +2749,6 @@ if test x"$GCC" = x"yes"; then
     ${CROSS_CXXFLAGS} \
     -W \
     -Wall \
-    -Wcast-align \
     -Wcast-qual \
     -Wpointer-arith \
     -Wreturn-type \

http://git.savannah.gnu.org/cgit//commit/?id=47c980f9a34050330cf13a9b5b6a3b2fde395e5c


commit 47c980f9a34050330cf13a9b5b6a3b2fde395e5c
Author: Rob Savoye <address@hidden>
Date:   Mon Jun 18 16:32:46 2012 -0600

    add conditional for uinput

diff --git a/configure.ac b/configure.ac
index 0f999be..8789651 100644
--- a/configure.ac
+++ b/configure.ac
@@ -241,7 +241,7 @@ dnl different development libraries.
 AC_ARG_WITH(sysroot,
   AC_HELP_STRING([--with-sysroot],
   [system root directory for cross compiling]),
-  with_top_level=${withval} ;
+  if test -d ${withval}/usr; then with_top_level=${withval}/usr; fi ;
   cross_compiling=yes)
 
 dnl Android is a little different when using a standard cross toolchain,
@@ -262,19 +262,20 @@ AC_ARG_WITH([android],
         if test x"${withval}" != x; then
           android_ndk=${withval}
         else
-          android_ndk=/opt/android-ndk-r3/build/platforms/android-5/arch-arm
+          android_ndk=/opt/android-ndk-r8/build/platforms/android-9/arch-arm
         fi
 )
-CROSS_CXXFLAGS=
 if test x"${android_ndk}" != xno; then
-  CROSS_CXXFLAGS=-mandroid -fexceptions
+  CROSS_CXXFLAGS="-mandroid -fexceptions -frtti"
   if test x"${with_top_level}" = x; then
     with_top_level=/usr/local/android-arm/sysroot/usr
     cross_compiling=yes
   fi
   ANDROID_NDK=${android_ndk}
   AC_DEFINE(ANDROID, [1], [This is an Android build])
+  CXXFLAGS="${CXXFLAGS} ${SROSS_CXXFLAGS}"
 else
+  CROSS_CXXFLAGS=
   ANDROID_NDK=
 fi
 AC_SUBST(ANDROID_NDK)
@@ -2076,6 +2077,10 @@ AC_CHECK_HEADERS(sys/utsname.h)
 AC_CHECK_HEADERS(signal.h)
 AC_CHECK_HEADERS(unistd.h)
 AC_CHECK_HEADERS(sys/time.h)
+AC_CHECK_HEADERS(linux/uinput.h, [uinput=yes], [uinput=no])
+
+AM_CONDITIONAL(HAS_UINPUT, [test x$uinput = xyes])
+
 AC_CHECK_LIB(bz2, BZ2_bzopen, [AC_SUBST(BZ2_LIBS, -lbz2)])
 AC_CHECK_LIB(c, getpwnam, AC_DEFINE(HAVE_GETPWNAM, 1, [Has getpwnam] ))
 
@@ -2723,7 +2728,7 @@ fi
 #
 if test x"$GCC" = x"yes"; then
   CXXFLAGS="$CXXFLAGS \
-    $CROSS_CXXFLAGS \
+    ${CROSS_CXXFLAGS} \
     -W \
     -Wall \
     -Wcast-align \
@@ -2734,7 +2739,7 @@ if test x"$GCC" = x"yes"; then
     -Wunused \
     "
   CFLAGS="$CFLAGS \
-    $CROSS_CXXFLAGS \
+    ${CROSS_CXXFLAGS} \
     -W \
     -Wall \
     -Wcast-align \

http://git.savannah.gnu.org/cgit//commit/?id=ceb559c493b466cb3785346776e044dc6c974242


commit ceb559c493b466cb3785346776e044dc6c974242
Author: Rob Savoye <address@hidden>
Date:   Tue Jun 12 14:01:56 2012 -0600

    Conditionally build the uinput support

diff --git a/libdevice/events/events.am b/libdevice/events/events.am
index 9eff369..4117ced 100644
--- a/libdevice/events/events.am
+++ b/libdevice/events/events.am
@@ -42,7 +42,9 @@ endif
 
 # The Uinput device is write only, and is used to control the mouse
 # movements.
+if HAS_UINPUT
 libgnashdevice_la_SOURCES += events/UinputDevice.cpp
+endif
 
 if ENABLE_DEVELOPER_TESTS
 check_PROGRAMS += test_events evtest

http://git.savannah.gnu.org/cgit//commit/?id=143a09d9c2258cf5b8e8b8ae074be41341a114e1


commit 143a09d9c2258cf5b8e8b8ae074be41341a114e1
Author: Rob Savoye <address@hidden>
Date:   Tue Jun 12 14:01:35 2012 -0600

    Conditionally include uinput.h

diff --git a/libdevice/events/InputDevice.h b/libdevice/events/InputDevice.h
index 253c6b7..1417f0a 100644
--- a/libdevice/events/InputDevice.h
+++ b/libdevice/events/InputDevice.h
@@ -30,7 +30,9 @@
 #include <vector>
 #include <queue>
 #include <linux/input.h>
+#ifdef HAVE_LINUX_UINPUT_H
 #include <linux/uinput.h>
+#endif
 
 #include "GnashKey.h"
 

-----------------------------------------------------------------------

Summary of changes:
 Makefile.am                                        |   18 +++-
 configure.ac                                       |  105 +++++++++++-------
 cygnal/Makefile.am                                 |    9 +-
 gui/Makefile.am                                    |   15 ++-
 gui/Player.cpp                                     |    6 +-
 gui/dump/dump.am                                   |    1 +
 gui/fb/fb.am                                       |   19 +++-
 gui/fb/fb.cpp                                      |   62 ++++++++--
 gui/fb/fb_glue_gles1.cpp                           |   36 +++++--
 gui/fb/fb_glue_gles1.h                             |   14 +++
 gui/fb/fb_glue_ovg.cpp                             |   10 +-
 gui/fb/fbsup.h                                     |    2 +
 gui/gnash.cpp                                      |    3 +-
 gui/gtk/gtk.am                                     |    4 +-
 gui/gui.cpp                                        |   12 ++-
 gui/qt/qt4.am                                      |    1 +
 gui/sdl/sdl.am                                     |    5 +-
 libbase/Makefile.am                                |   15 ++-
 libbase/URL.cpp                                    |    1 -
 libbase/URLAccessManager.cpp                       |    7 +-
 libbase/extension.cpp                              |    6 +-
 libbase/jemalloc.c                                 |    4 +-
 libbase/log.cpp                                    |   52 +++++++++-
 libbase/log.h                                      |   19 ++-
 libbase/utf8.h                                     |   11 ++
 libbase/zlib_adapter.cpp                           |    2 -
 libcore/Button.cpp                                 |    5 +-
 libcore/Makefile.am                                |   14 ++-
 libcore/SWFMatrix.cpp                              |   29 ++++-
 libcore/TextField.cpp                              |    1 +
 libcore/TextField.h                                |   10 ++
 libcore/asobj/NetStream_as.cpp                     |   47 ++++++--
 libcore/asobj/Sound_as.cpp                         |   18 +++-
 libcore/asobj/String_as.cpp                        |    4 +-
 libcore/movie_root.cpp                             |    6 +-
 libcore/parser/Makefile.am                         |    5 +-
 libcore/swf/SoundStreamHeadTag.cpp                 |    3 +
 libcore/swf/StartSoundTag.cpp                      |    2 +
 libcore/swf/StreamSoundBlockTag.cpp                |    2 +
 libcore/swf/tag_loaders.cpp                        |    2 +
 libcore/vm/Makefile.am                             |    5 +-
 libdevice/Makefile.am                              |    5 +-
 libdevice/egl/egl.am                               |   17 ---
 libdevice/events/EventDevice.cpp                   |    2 +-
 libdevice/events/InputDevice.h                     |    2 +
 libdevice/events/events.am                         |   14 +--
 libdevice/rawfb/RawFBDevice.cpp                    |   41 ++++++-
 libdevice/rawfb/RawFBDevice.h                      |    3 +-
 libdevice/rawfb/rawfb.am                           |   14 ---
 libmedia/Makefile.am                               |    7 +-
 librender/Makefile.am                              |   10 ++-
 libsound/Makefile.am                               |    5 +-
 macros/openvg.m4                                   |    6 +-
 testsuite/Makefile.am                              |   22 +++-
 testsuite/MovieTester.cpp                          |   19 +++-
 testsuite/libbase.all/Makefile.am                  |   23 ++++-
 testsuite/libcore.all/Makefile.am                  |   52 ++++++---
 .../{libbase.all => libdevice.all}/Makefile.am     |  118 ++++++++++++--------
 .../libdevice.all}/test_dfb.cpp                    |    0
 .../egl => testsuite/libdevice.all}/test_egl.cpp   |   11 +-
 .../libdevice.all}/test_events.cpp                 |    0
 .../libdevice.all}/test_rawfb.cpp                  |    7 +
 .../libdevice.all}/test_vaapi.cpp                  |    0
 .../x11 => testsuite/libdevice.all}/test_x11.cpp   |    0
 testsuite/libmedia.all/Makefile.am                 |    5 +
 testsuite/misc-ming.all/Makefile.am                |   12 ++-
 testsuite/movies.all/Makefile.am                   |    6 +
 testsuite/samples/Makefile.am                      |   16 +++
 utilities/Makefile.am                              |   15 ++-
 utilities/processor.cpp                            |   13 ++-
 70 files changed, 750 insertions(+), 287 deletions(-)
 copy testsuite/{libbase.all => libdevice.all}/Makefile.am (56%)
 rename {libdevice/directfb => testsuite/libdevice.all}/test_dfb.cpp (100%)
 rename {libdevice/egl => testsuite/libdevice.all}/test_egl.cpp (98%)
 rename {libdevice/events => testsuite/libdevice.all}/test_events.cpp (100%)
 rename {libdevice/rawfb => testsuite/libdevice.all}/test_rawfb.cpp (97%)
 rename {libdevice/vaapi => testsuite/libdevice.all}/test_vaapi.cpp (100%)
 rename {libdevice/x11 => testsuite/libdevice.all}/test_x11.cpp (100%)


hooks/post-receive
-- 
Gnash



reply via email to

[Prev in Thread] Current Thread [Next in Thread]