[Scummvm-devel] About announcing backend changes & build machine

Max Horn max at quendi.de
Tue Jan 1 20:51:22 CET 2008


Hi folks,

we have so many ports, yet so few porters. Whenever I or somebody  
make a change to the backends API, that often causes backends to  
break. Either the compilation breaks, or the functionality (in a  
sense, the latter is worse, because it can go unnoticed).

In the past, we (esp. me) often still made those changes, and did not  
always inform porters actively about this. That was and is bad. So,  
for the future, we'll try to be a bit more vocal about such changes.  
They'll still happen, though: Our philosophy there really is a bit  
similar to the Linux kernel one, where we prefer to replace bad APIs  
by better ones instead of trying to follow the compatibility road  
like Microsoft does. (Note that this is not meant to imply either  
approach is "better", both have their pros and cons).
However, we will try to notify porters more actively about changes  
they may have to make and why, and even warn them a bit beforehand if  
possible. I am not yet quite sure how that will work, but we'll try  
our best.

One problem with at least keeping ports compiling is that it's  
difficult for most of us to test that, as not all of us have all the  
required (cross) compilers setup.

So, wouldn't it be cool if we had a build server on which we setup  
cross compile chains for as many systems as we can?

This would allow multiple things:
* Generate automatic daily builds for all these platforms (with some  
extra work, the resulting binaries need to be "packaged) after all)
* a nice build status web page (like e.g. <http://www.kegel.com/ 
crosstool/crosstool-0.43/buildlogs/>)
* optionally, a "trigger rebuild now" feature, which one can use to  
get an immediate build test (password protected, of course).

For this, it would be really nice if all porters could take something  
like 15 minutes and add at least some minimal information about how  
their port is built to <http://wiki.scummvm.org/index.php/ 
Compiling_ScummVM> (I am serious about those 15 minutes -- just write  
down some keywords, naming the tools you use and maybe an URL. Of  
course you are welcome to write more if you feel like it :).


Still, as I understand it, with a suitable (Linux?) machine, that  
could include
* Linux (and other UNIX systems) (see e.g. <http://www.kegel.com/ 
crosstool/>),
* Windows <http://www.wxwidgets.org/docs/technote/crosscmp.htm>
* WinCE <http://wiki.scummvm.org/index.php/Compiling_ScummVM/Windows_CE>
* Dreamcast <http://wiki.scummvm.org/index.php/Compiling_ScummVM/ 
Dreamcast>
* Playstation Portable <http://wiki.scummvm.org/index.php/ 
Compiling_ScummVM/PlayStation_Portable>
* iPhone <http://wiki.scummvm.org/index.php/Compiling_ScummVM/iPhone>

And maybe also these (but I know not enough about how they are  
built): GP2x, Nintendo DS, Playstation 2, SymbianOS, Maemo,  
XBox360... Potentially helpful: devkitPro <http://www.devkitpro.org/>  
which apparently is used by the DS port.

I have no idea how the PalmOS port is built. The Symbian port  
contains build instructions in its README (somebody volunteering to  
put them into the Wiki?) note that the link to the Symbian SDK in it  
is outdated), but I am not sure whether it can be built under Linux  
(but see also <http://www.symbian.com/developer/techlib/v9.2docs/ 
doc_source/faqsdk/faq_0956.html>).

Still, even if can only build some ports, it would already be a big  
improvement


Things required for this:
* Getting a server: should not be a major issue: we have some money,  
and maybe we can even find a sponsor for this.
* Setting it up: This would probably require some help from the resp.  
porters (at least to test the build chains, ideally also to help  
setting them up).
* Maintain it: If a porter switches to a new tool chain, we'll have  
to update, but my hope is that otherwise, this machine would not  
require that much maintenance, and that we could find some members of  
the team willing to have an eye on it.

Thoughts, comments, remarks, criticism, volunteers,... ? :-)


Bye,
Max




More information about the Scummvm-devel mailing list