ODE has two new build systems, one for *nix systems and another for
just about everything else.

1. Building with Visual Studio
2. Building with Autotools (Linux, OS X, MSYS, etc.)
3. Building with Code::Blocks
4. Building with Something Else
5. Building with CMake



 
1. BUILDING WITH VISUAL STUDIO (2002 and up)
============================================

 If you downloaded this source code from Subversion you must first use
 the Premake build system to generate project files.

 Open a command prompt and enter into the build directory. Then run the
 premake4.exe program with the appropriate options to generate the
 project files. For example, to generate a project for VS2008:

   > premake4.exe --with-tests --with-demos vs2008

 To see a complete list of options use:
 
   > premake4.exe --help

 Note that Visual Studio 6 is not supported and users are advised to upgrade
 to at least Visual Studio 2005 Express (it's free!)

 Using CMake is another option for generating project files for Visual Studio.
 See section 5 below for more details on this.



 
2. BUILDING WITH AUTOTOOLS (Linux, OS X, MSYS, etc.)
====================================================

2.1 FROM SUBVERSION REPOSITORY
------------------------------

 If you downloaded the source code from Subversion you must bootstrap the
 process by running the command:
 
   $ ./bootstrap
 
 For this command to work you need a set of tools typically available
 on BSD and Linux distributions with development packages installed. OS X
 users may need to manually install libtool, autoconf, automake,
 pkg-config, and maybe some more.
 
 If you downloaded a source code package from SourceForge this has 
 already been done for you. You may see some "underquoted definition" 
 warnings depending on your platform, these are (for now) harmless 
 warnings regarding scripts from other m4 installed packages.
 
2.2 FROM A RELEASED TARBALL
---------------------------

 First extract the archive (e.g. tar xvfz <filename.tar.gz>) and enter
 the created directory (ode-x.y).

 Run the configure script to autodetect your build environment:
 
   $ ./configure
    
 By default this will build ODE as a static library with single-precision
 math, trimesh support with OPCODE, and debug symbols enabled. You can
 modify these defaults by passing additional parameters to
 configure. For a full list of available options, type:
 
   $ ./configure --help
   
 Some of the more popular options are
 
   --enable-double-precision    enable double-precision math
   --with-trimesh=none          disables the trimesh support
   --with-trimesh=opcode        use OPCODE for trimesh code
   --with-trimesh=gimpact       use GIMPACT for trimesh code

   --enabled-shared             builds a shared library

 To pass specific flags for an optimized build, you must do so
 in the CFLAGS and CXXFLAGS enviroment variables, or as arguments
 to ./configure. For example if you are building for an athlon xp processor
 and you want the compiler to use SSE instructions you can run configure as
 follows:

 $ ./configure CFLAGS="-msse -march=atlon-xp" CXXFLAGS="-msse -march=atlon-xp"

 Note that you must set both CFLAGS and CXXFLAGS as ODE contains a mixture of
 C and C++ files.

 Once configure has run successfully, build and install ODE:

   $ make
   $ make install

 The latter command will also create a pkg-config script that provides
 compilation and linking flags for programs. The old stand-alone
 "ode-config" script is also installed for compatibility.




3. BUILDING WITH Code::Blocks
=============================

 Because Code::Blocks supports so many different platforms, we do not
 provide workspaces. Instead, use Premake to create a workspace tailored
 for your platform and project. Like so:
 
   $ cd build
   $ premake4 --with-tests --with-demos codeblocks
   
 To see a complete list of options:
 
   $ cd build
   $ premake4 --help

 Using CMake is another option for generating project files for Code::Blocks.
 See section 5 below for more details on this.




4. BUILDING WITH SOMETHING ELSE
===============================

 ODE uses the Premake tool to provide support for several different toolsets.
 Premake adds support for new toolsets on a regular basis, so yours might be
 supported. Check the Premake website at http://premake.sourceforge.net/, 
 and then follow the directions for Code::Blocks above, substituting your
 toolset target in place of `codeblocks`.

 Using CMake is another option for generating project files for other
 toolsets. See section 5 below for more details on this.




5. BUILDING WITH CMAKE
======================

 ODE includes support for CMake to generate project files for various platforms
 and IDEs including Unix Makefiles, Ninja, Code::Blocks, Visual Studio. A full
 overview of all supported generators can be found at the latest version of the
 manual at https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html

 CMake supports and encourages out-of-source builds. In order to generate build
 files for your platform, create a build directory at your preferred location
 and then call CMake with the path to ODE's source directory as argument, e.g.,
 one level above the source directory:
 
   $ cd ..
   $ mkdir ode-build 
   $ cmake ../ode-src

 The existing build directory in the source directory can also be used as a
 location for the project files. A different generator than the default one
 for the system can be specified as well:

   $ cd build
   $ cmake -G"Visual Studio 15 2017 Win64" ..

 QtCreator, CLion, and Visual Studio 2017 also offer the option to open the
 source directory with the CMakeLists.txt file directly in the IDE.




