| [216] | 1 | As of version 0.6, ODE has two new build systems, one for Visual Studio | 
|---|
 | 2 | and another for just about everything else.  | 
|---|
 | 3 |  | 
|---|
 | 4 | 1. Building with Visual Studio | 
|---|
 | 5 | 2. Building with Autotools (Linux, OS X, etc.) | 
|---|
 | 6 | 3. Building with Code::Blocks | 
|---|
 | 7 | 4. Building with Something Else | 
|---|
 | 8 |  | 
|---|
 | 9 |   | 
|---|
 | 10 | 1. BUILDING WITH VISUAL STUDIO (2002 and up) | 
|---|
 | 11 |  | 
|---|
 | 12 |  If you downloaded the source code from Subversion you must first copy  | 
|---|
 | 13 |  the file build/config-default.h to include/ode/config.h. If you  | 
|---|
 | 14 |  downloaded a source code package from SourceForge this has already  | 
|---|
 | 15 |  been done for you. | 
|---|
 | 16 |   | 
|---|
 | 17 |  The directory ode/build contains project files for all supported versions | 
|---|
 | 18 |  of Visual Studio. Open the appropriate solution for your version, build, | 
|---|
 | 19 |  and go!  | 
|---|
 | 20 |   | 
|---|
 | 21 |  Single-precision math is used by default. If you would like to switch to | 
|---|
 | 22 |  doubles instead, edit ode/include/ode/config.h and replace  | 
|---|
 | 23 |   | 
|---|
 | 24 |    #define dSINGLE 1 | 
|---|
 | 25 |     | 
|---|
 | 26 |  with the line | 
|---|
 | 27 |   | 
|---|
 | 28 |    #define dDOUBLE 1 | 
|---|
 | 29 |     | 
|---|
 | 30 |  and the rebuild everything. | 
|---|
 | 31 |   | 
|---|
 | 32 |  Note that Visual Studio 6 is no longer supported; please upgrade to  | 
|---|
 | 33 |  Visual Studio 2005 C++ Express (it's free!). | 
|---|
 | 34 |    | 
|---|
 | 35 |   | 
|---|
 | 36 | 2. BUILDING WITH AUTOTOOLS (Linux, OS X, etc.) | 
|---|
 | 37 |  | 
|---|
 | 38 |  If you downloaded the source code from Subversion you must bootstrap the | 
|---|
 | 39 |  process by running the command: | 
|---|
 | 40 |   | 
|---|
 | 41 |    $ sh autogen.sh | 
|---|
 | 42 |     | 
|---|
 | 43 |  If you downloaded a source code package from SourceForge this has  | 
|---|
 | 44 |  already been done for you. You may see some "underquoted definition"  | 
|---|
 | 45 |  warnings depending on your platform, these are (for now) harmless  | 
|---|
 | 46 |  warnings regarding scripts from other m4 installed packages. | 
|---|
 | 47 |   | 
|---|
 | 48 |  Run the configure script to autodetect your build environment. | 
|---|
 | 49 |   | 
|---|
 | 50 |    $ ./configure | 
|---|
 | 51 |      | 
|---|
 | 52 |  By default this will build ODE as a static library with single-precision | 
|---|
 | 53 |  math, trimesh support, and debug symbols enabled. You can modify these  | 
|---|
 | 54 |  defaults by passing additional parameters to configure. For a full list  | 
|---|
 | 55 |  of available options, type | 
|---|
 | 56 |   | 
|---|
 | 57 |    $ ./configure --help | 
|---|
 | 58 |     | 
|---|
 | 59 |  Some of the more popular options are | 
|---|
 | 60 |   | 
|---|
 | 61 |    --enable-double-precision enable double-precision math | 
|---|
 | 62 |    --with-trimesh=none disables the trimesh support | 
|---|
 | 63 |    --with-trimesh=opcode use OPCODE for trimesh code | 
|---|
 | 64 |    --with-trimesh=gimpact use GIMPACT for trimesh code | 
|---|
 | 65 |  | 
|---|
 | 66 |    --enable-release builds an optimized library | 
|---|
 | 67 |    --enabled-shared builds a shared library | 
|---|
 | 68 |      | 
|---|
 | 69 |  Once configure has run successfully, build and install ODE: | 
|---|
 | 70 |   | 
|---|
 | 71 |    $ make | 
|---|
 | 72 |    $ make install | 
|---|
 | 73 |      | 
|---|
 | 74 |  The latter command will also create an `ode-config` script which you can | 
|---|
 | 75 |  use to pass cflags and ldflags to your projects. run `ode-config` from a | 
|---|
 | 76 |  command prompt to find out how it works. | 
|---|
 | 77 |   | 
|---|
 | 78 |  In addition the option `--with-arch=` allows the user to pass the -march | 
|---|
 | 79 |  flag to GCC, in order to tune the library for a particular architecture. | 
|---|
 | 80 |  The arguments for --with-arch are listed on this page for -mtune:  | 
|---|
 | 81 |      | 
|---|
 | 82 |  http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/i386-and-x86-64-Options.html#i386%20and%20x86-64%20Options | 
|---|
 | 83 |   | 
|---|
 | 84 |  Note that the link points to posible values for Intel processors, but  | 
|---|
 | 85 |  other processors are also supported, check the page for your particular | 
|---|
 | 86 |  processor to see what parameters can be passed to -march in your case. | 
|---|
 | 87 |  | 
|---|
 | 88 |   | 
|---|
 | 89 | 3. Building with Code::Blocks | 
|---|
 | 90 |  | 
|---|
 | 91 |  Because Code::Blocks supports so many different platforms, we do not | 
|---|
 | 92 |  provide workspaces. Instead, use Premake (http://www.premake.sourceforge.net/) | 
|---|
 | 93 |  to create a workspace tailored for your platform and project. | 
|---|
 | 94 |   | 
|---|
 | 95 |  Download Premake and place it on your system path (or anywhere convenient). | 
|---|
 | 96 |  Then create a workspace like so: | 
|---|
 | 97 |   | 
|---|
 | 98 |    $ cd ode/build | 
|---|
 | 99 |    $ premake --with-tests --target cb-gcc | 
|---|
 | 100 |     | 
|---|
 | 101 |  To see a complete list of options: | 
|---|
 | 102 |   | 
|---|
 | 103 |    $ cd ode/build | 
|---|
 | 104 |    $ premake --help | 
|---|
 | 105 |     | 
|---|
 | 106 |     | 
|---|
 | 107 | 4. Building with Something Else | 
|---|
 | 108 |  | 
|---|
 | 109 |  ODE uses the Premake tool to provide support for several different toolsets. | 
|---|
 | 110 |  Premake adds support for new toolsets on a regular basis, so yours might be | 
|---|
 | 111 |  supported. Check the Premake website at http://premake.sourceforge.net/,  | 
|---|
 | 112 |  and then follow the directions for Code::Blocks above, substituting your | 
|---|
 | 113 |  toolset target in place of `cb-gcc`. | 
|---|
 | 114 |   | 
|---|
 | 115 |   | 
|---|
 | 116 |   | 
|---|
 | 117 |  | 
|---|
 | 118 |   | 
|---|