1 -----------------------------
2 ODE - Mac CFM Carbon Port
3 (contact Frank Condello <pox@planetquake.com> with questions regarding this port)
5 Although ODE contains a MacOSX makefile, and some individuals have implemented ODE in
6 Cocoa, I opted to use (and prefer) CodeWarrior. This also opens up ODE to MacOS8 & 9
7 users, without scarfing functionality in MacOSX (same binaries run on both platforms).
9 The 'ode_CW7.mcp' project contains release and debug targets to create static ODE and
12 'examples_CW7.mcp' contains targets for the entire ODE test suite, plus a couple other
13 test programs which were posted to the ODE mailing list.
16 -----------------------------
19 You'll need to extract the CodeWarrior projects from the 'CW7_projects.sit.bin' archive
20 (They're nearly a meg uncompressed so this was done to be bandwith friendly on the CVS).
22 Projects require CodeWarrior 7 or above (recreating them with earlier versions shouldn't
23 be too difficult). The projects use relative paths and are meant to be compiled from
24 'contrib/Mac_CFMCarbon/'. Don't move them!
26 All the libraries build into the 'lib/' directory, all test applications build into
27 'contrib/Mac_CFMCarbon/mac_testbin/' (and must be run from that directory since the
28 texture path is hard-coded).
30 You'll need to compile the release ODE library, and the DrawStuff library before
31 compiling the examples.
33 The ODE 'configurator' has not been ported, but a Mac-friendly 'config.h' header has been
34 manually hacked together (all PPC Macs should be fine with this header). Single or double
35 precision can be defined in the 'CommonPrefix.h' header found in
36 'contrib/Mac_CFMCarbon/mac_source/'.
38 'contrib/Mac_CFMCarbon/mac_source/' also contains any mac specific additions to the main source.
39 The directory structure here matches the main source tree, and I would recommend that this
40 format is maintained when making additions, since the access paths are touchy (more below...)
42 Some issues were encountered with duplicate header names. CodeWarrior tends to be
43 unforgiving about this sort of thing but fudging with the access paths eventually
44 cleared up the problem. If ODE fails to compile, make sure the <ode/objects.h> and
45 "objects.h" or <timer.h> and <Timer.h> are actually pointing to the correct header.
47 You'll need Apple's OpenGL SDK (with GLUT) in your compiler path to build DrawStuff. I've
48 added redirection headers in 'contrib/Mac_CFMCarbon/mac_source/include/GL/' to properly
49 link with the Apple headers (since the projects are set to follow DOS paths).
51 The examples link against a crapload of static libraries, but my initial builds using
52 ODE, MSL, GLUT, and DrawStuff shared/merged DLL's proved unstable (mostly problems with
53 SIOUX spawning multiple sessions, and crashes in Classic). Static libs just worked better
54 in the end, but the test apps are a little bloated as a result, and need to be re-linked
55 whenever a change to a library is made.
57 IMPORTANT: You must use the same 'CommonPrefix.h' settings for libraries, and test apps
58 (i.e. double or single precision).
61 -----------------------------
62 Running the test apps:
64 The test apps will show the SIOUX CLI prompt when run. Just hit OK to ignore it, or add any
65 DrawStuff arguments. You'll want to log output to a file for 'test_ode'.
67 There are two extra test programs in the 'mac_source' directory. Both were posted to the ODE
68 mailing list by OSX users. 'test_stability1' visualizes some internal issues with ODE, and
69 'test_stacktest' is a standalone GLUT program (doesn't use DrawStuff) that can be useful
70 to stress test the library, and give you an idea of just how much stack memory you're
71 going to need for large systems.
75 The carbon DrawStuff lib uses GLUT to make life easy, but GLUT isn't exactly bug-free
76 or stable on the Mac... Try moving the mouse around if a simulation is running slowly
77 on OS9 (it's not ODE's fault, but rather a poor carbon GLUT implementation - seems GLUT stalls
78 when it's not getting system events - I haven't seen this problem on OSX).
80 The 3D view may not update if typing in the SIOUX console window.
82 You cannot pass startup args to GLUT due to the way the DrawStuff library initializes.
84 'Write Frames' doesn't actually do anything at the moment.
86 The 'test_joints' app seems broken (though I don't know what the intended effect should be)
89 -----------------------------
92 - Re-add shared library targets (if stability issues are resolved).
93 - Implement 'Write Frames' in DrawStuff.
94 - Write a Carbon compatible configurator
95 - Create CodeWarrior 8 projects (once I scrounge up enough dough for the update).