On 6/12/07, Eric Hughes <[EMAIL PROTECTED]> wrote:
At 01:14 PM 6/12/2007, Bastiaan Jacques wrote: >>I.e. the hand-made config.h could be put in the Win32 folder, > >That doesn't seem a very elegant solution, but if we can't make the build >system work normally on Windows, that may be our only option. It's not elegant at all--downright ugly, in fact. But short of rewriting the whole autoconf system so that it can output both makefiles and Visual Studio project file based on abstractions that don't yet exist within that system, it's easier to duplicate effort and provide parallel support.
An alternative build system with excellent Windows (and Unix) support would be cmake. http://www.cmake.org CMake is used by the KDE project, as well as LyX, and many others. It is much faster than autoconf+friends, much easier to understand, and has broader platform support. However, having a hand-made config.h for Windows is hardly a big problem, since as far as I can tell, config.h would be pretty static on Windows. ** In my efforts to compile Gnash on Windows, I've encountered a file which need to #include "tu_types.h": amf.cpp. snprintf is sometimes #define snprintf _snprintf, but why not put this in config.h? rint is used in character.cpp and sprite_instance.cpp, and round in sprite_instance.cpp. Maybe those uses can be replaced with floor or ceil which should be portable? Also, strcasecmp is used directly in sprite_instance.cpp. I assume this should have been STRCASECMP, as defined in container.h. Sometimes, #include <unistd.h> is guarded like this: #if !defined(_WIN32) && !defined(WIN32) # include <unistd.h> #endif but other times, it's not. I guess all places should be updated. Alternatively, an empty unistd.h file could be put in win32/vc8. These look like a genuine errors: tu_file_SDL.cpp ..\..\libbase\tu_file_SDL.cpp(111) : error C2065: 'm_error' : undeclared identifier shape.cpp ..\..\server\shape.cpp(644) : error C2326: 'void gnash::mesh_set::{ctor}::collect_traps::accept_trapezoid(int,const gnash::tesselate::trapezoid &)' : function cannot access 'gnash::operator ==' xml.cpp ..\..\server\asobj\xml.cpp(160) : error C2440: '<function-style-cast>' : cannot convert from 'double' to 'gnash::XML::Status' Conversions between enumeration and floating point values are no longer allowed backend\render_handler_tri.cpp(347) : error C4716: 'gnash::triangulating_render_handler::world_to_pixel' : must return a value In date.cpp, there is an #include <sys/time.h>, which I guess only exists in Mingw. If this is the only reference that needs Mingw headers, maybe it's better to just reimplement the needed functionality using Win32 API directly instead? With these changes, I'm down to problems due to missing dependencies, which I have not tracked down yet. Just 15 compilation errors to go. After that, I guess linking will be a nightmare. Stay tuned. Regards, Asger
_______________________________________________ Gnash-dev mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnash-dev

