I have made very little progress since the last report, mainly due to the little time that was available to me. Only two things were done:
In the short term I will not work on ETOTP anymore but perhaps for ILGE 2011 or another challenge or expo I'll continue where I left off.
Making wrapper functions in C for Ogre's C++ methods and adding them to ECL from C using ECL's API. I used this approach because the inverse (making the C wrapper code from Lisp) gave me segmentation faults and didn't get me very far about 2 years ago. (Note: this was using ECL functionality, not CFFI for which there's Okra.)
Compiling a C program on both Linux and Windows that was (dynamically)
linked to ECL, Ogre and OIS. This C program can, for example, start a
game right away and quit back to the OS but it can also provide a CL
REPL (like ECL's
si:toplevel) so one can interactively play with a
3D scene. Since it's just a plain CL one can load extra packages and
perhaps start Slime.
Compiling a statically linked binary on Linux. This didn't go as easily as I had hoped and was starting to eat into my time budget.
-static" to a build rule and be done with it :-)
The source code and the Windows binary are available here http://www.aerique.net/software/etotp/.
I have not given the source code its separate GitHub repository since it will be added to Okra.
ECL (10.4.1) configured "
--with-cxx". (Feel free to try without it, I
Debian: libogre-dev libois-dev ogre-plugins-cgprogrammanager
I develop on Linux but the build is checked and tested on Windows using MinGW and MSYS. Either MSYS 1.10 or 1.11 was used, it doesn't really matter. The MinGW release that was used is TDM-GCC 4.4.1 but I see there's a 4.5.0 release out now.
Ogre SDK 1.6.1 for MinGW (there's no later 1.6.x SDK for MinGW). You can try the 1.7.x SDK for MinGW since the Ogre API is pretty stable, but I can make no guarantees that it will work.