[Tux4kids-tuxtype-dev] Status of tuxtype and tuxmath Windows builds

David Bruce davidstuartbruce at gmail.com
Tue Apr 27 16:17:50 UTC 2010


Hi,

One "off-season" goal I had for tuxmath and tuxtype was to set up a
more easily-reproducible way to make Windows builds for tuxmath and
tuxtype.  I'm partial to the idea of cross-compilation under Linux, in
large part because I don't have any Windows machines at my home, and
don't want to buy any.  The old setup I used for all our previous
releases worked OK, but had some limitations:

1.  I was never able to get SDL_Pango support set up.
2.  The crossbuild enviroment was a real pain to get up and running -
it required building about a dozen libraries individually, and several
of them had issues that required additional work to get built.

(my old crossbuild setup also no longer exists, due to some hardware
problems with my home desktop that required rebuilding it).

So, I eventually found a project called "mingw-cross-env"
(http://nongnu.org/mingw-cross-env) which is aimed at supporting
crossbuilds systematically.  mingw-cross-env is extremely simple to
set up - basically just check out the project with Mercurial, then go
to the new mingw-cross-env directory and type "make".  It then builds
a boatload of libs, including everything we need for tuxmath, tuxtype,
and tuxpaint.  The mingw-cross-env maintainer has been very helpful,
even to the point of adding SDL_Pango and librsvg for us, and helping
me make our configure.ac files more correct and robust.

To make the actual crossbuild, we just do a configure/make with a
couple simple switches, and we get a win32 executable with all the
needed libs statically linked.  I've put a couple of (extremely)
simple scripts into the tuxmath and tuxtype git repositories to
automate this.  However, there are still a couple of show-stopper
problems that prevent public releases of mingw-cross-env-based builds:

1.  Unless sound is disabled, the programs exit unexpectedly at the
first call to SDL_mixers's Mix_OpenAudio().  From what I can tell on
mailing lists and my own testing, it seems to be a problem with use of
pthreads by the SDL_mixer code.
2.  With SDL_Pango enabled, the program builds and runs without
crashing, but it doesn't actually display any text.  If SDL_Pango is
disabled at configure time, SDL_ttf doesn't get detected and the
program won't build without some special hacking measures.

However, once I get tuxtype built with SDL_ttf and turn off sound, the
resultant binary works perfectly in Windows.

For tuxmath, we also need to use SDL_net (and also use libtool in the
build), which generate some errors that I haven't really figured out
yet.

All of the above is most of what I have been doing with my available
Tux4Kids time in recent months.

So, we are tantalizingly close to having a straightforward, automated
way to make Windows builds.

Regards,

David



More information about the Tux4kids-tuxtype-dev mailing list