[Mono-list] Building Tao
Terry L. Triplett
terry at triplett.org
Mon May 16 11:24:41 EDT 2005
[This should have gone to the list earlier today. Note to self: check reply addresses before sending]
Ok Lab wrote:
>Upgrading to mono 1.1 on linux gets me much further through the build
>process but it still fails. I noted that it tries to build against the
>mono 1.0 framework and has no option for building against the 1.1
Tao currently can't be built entirely on Linux for reasons I won't
describe in detail (there is a little info in the readme files). The
prime culprits are Tao.OpenGl and Tao.Sdl - everything else builds fine
on my machine. Tao.OpenGl requires ILMerge which isn't available on
Linux. Tao.Sdl requires Ildasm/Ilasm in order to apply some tweaks to
the IL after compilation. Currently, monodis and ilasm aren't able to
make the full roundtrip from assembly->IL->assembly, so only the ildasm
and ilasm on windows can do the job.
If you have access to a Windows machine or can dualboot, it's not that
hard to build the Tao bindings on linux. There a just a few points at
which you need to pop over to Windows, then everything else can happen
on Linux. Because some of the other Tao bindings depend on Tao.OpenGl,
that has to be built properly first otherwise the build doesn't
succeed. My process goes something like this:
1. On Linux, call the build target for Tao.OpenGl. You'll end up with
2 assemblies in the build directory.
2. Copy them over to a Windows machine and use ILMerge to generate a
single assembly called Tao.OpenGl.dll (use the NAnt build script as a
3. Copy that back to your build directory on Linux.
4. Build Tao.Sdl on Windows. Copy the assemblies over to your build
directory on Linux.
5. Build everything else - the build should complete now.
>Are there precompiled libraries for Linux that I can use?
I'll send you my current versions via email.
> What I'm hoping to accomplish is to see if C#/.NET is a viable
> platform to develop cross platform
> games on that can be rolled out on Windows, Linux and maybe even OSX.
> Am I barking up
> the wrong tree? Is Mono/Tao nowhere near where I need it to be? Am I
> still stuck with C++?
No. Once you get around the build problems, the crossplatform bindings
work really well. Some of the bindings are further along than others,
but Tao.OpenGl and Tao.Sdl in particular are solid. The Axiom engine is
a C# port of the Ogre engine that uses the Tao bindings. The project is
currently foundering because the project leader pulled a Dave Chapelle
and is currently incommunicado, but the code is solid and available via
CVS. More active is RealmForge, a game development system using Axiom
as it's rendering engine. Links: http://www.axiom3d.org and
More information about the Mono-list