Before getting into a spot of games programming I thought I would buy a book which covered a few of the relevant topics. Wanting something a bit deeper and not likely to be outdated in the too-near future, I plumped for Van Verth and Bishop's Essential Mathematics for Games and Interactive Applications: A Programmer's Guide[Amazon Associates link]. Seems fairly good so far, mainly because it establishes why a certain approach is most applicable, rather than just telling you 'the' way to do things.
Anyway, the point of this blog post is to share some minor modifications required to the code included on the CD (which seems not available on-line) to get it building on Mac OS X 10.6 (Snow Leopard). From the documentation it seems the code was tested against OS X 10.4 and 10.5. It fails to build out-of-the-CD on 10.6, and I didn't find any updates on the website (www.essentialmath.com), but perhaps in time that will get updated.
Required changes are:
- in common/MakefileCommon, change lines 15-17 from:
ifeq ($(PLATFORM), OSX) CFLAGS_EXT = -fvisibility-inlines-hidden endif
toifeq ($(PLATFORM), OSX) CFLAGS_EXT = -fvisibility-inlines-hidden -ffriend-injection endif
-
change the equivalent line 12 CFLAGS_EXT setting in Examples/MakefileExamples in the same way, i.e. adding
-ffriend-injection
. Presumably this is a requirement of a more recent version of GCC in Snow Leopard. - In common/Graphics/OGL/IvRendererOGL.cpp line 204, remove the GLvoid in the InitGL definition, i.e. change from
int IvRendererOGL::InitGL(GLvoid)
toint IvRendererOGL::InitGL()
To build it (this is all in the relevant README files, as is the basic requirement of having the Mac Developer tools - i.e. XCode - installed):
cd <root of directory structure> chmod -R +w * # only required once, files/directories copied from CD are read-only pushd common make PLATFORM=OSX popd pushd Examples make PLATFORM=OSX popdAnd then the example executables are available under the relevant chapter/section directory as
./Example
, e.g. Examples/Ch13-Simulation/Simulation-02-Integration/Example
. Note some of the examples seem to segfault if not started from the working directory...
Anyway, hope this helps someone. Now, on to developing some games...!
Wow, thanks a lot. This was driving me nuts
ReplyDeleteSame, this is fantastic thank you so much! Just got the book yesterday and I've was desperatley trying to get some demos running.
ReplyDelete