[ODE] compiled libs

John Miles jmiles at pop.net
Sun Apr 4 14:04:31 MST 2004


Well, the problem stems from the fact that ODE's platform-specific
configuration process is driven by an insanely-obfuscated C program known as
"configurator.c", which is intended to autogenerate a config.h file that's
optimized for the compiler/platform combination in question.  The
compilation errors you get when you first build the ODE library result from
configurator.c building different versions of config.h until it compiles
successfully.

Maintaining configurator.c is non-trivial to say the least.  I probably
spent two hours futzing with it to eliminate the DLL export declaration
problems in the MSVC build, but the problem is, being strictly a Win32 guy,
I can't be sure that my changes are still compatible with the other
platforms and compilers that ODE supports.  It doesn't make sense for me to
submit my build to CVS, because it will likely make the Linux/GCC folks'
lives as annoying as the current snapshot makes MSVC users' lives.

The right thing to do (IMHO) would be for the ODE maintainers to ditch both
configurator.c and msvcdefs.def, and hand-author config.h files and
makefiles for the various supported compilers and platforms, using macros
correctly to supply the appropriate __declspec declarations for Win32 DLL
builds.  ODE is not a large library, and it doesn't have to support *that*
many configurations.  It is ludicrous to use 500 lines of unreadable C code
to generate a 50-line header file, but only a multiplatform-literate
maintainer will be able to remedy the situation.

(No offense to anyone intended, by the way.  I don't usually launch into
wild-eyed drooling rants about free software, but my development time is
*not* free, and sorting out the various build problems with ODE has cost me
a fair bit of it.  I wish I could do more to help.)

-- jm

> -----Original Message-----
> From: Ian McMeans [mailto:imcmeans at telus.net]
> Sent: Sunday, April 04, 2004 1:43 PM
> To: John Miles; ode at q12.org
> Subject: Re: [ODE] compiled libs
>
>
> Yes, when I copy over the single-precision ode\config.h header file, I no
> longer get that "ODE Message 2" runtime error. I'm guessing what was
> happening was my code was passing doubles as parameters, the code was
> expecting floats, and something broke.
>
> Now it works, thanks :) Since this was so handy for me, maybe you
> could make
> the things you built more official? I guess future versions of ode will be
> more cleanly integrated with opcode so it might not be a problem.
>
>



More information about the ODE mailing list