Author: Marcus Walther 02.07.2015

============================
BUILD THE SIMULATION RUNTIME
============================
Building the c++ simulation runtime with OpenModelica is slightly different for
Linux/Mac and Windows. The following lines explain how to build the runtime with
it's default configuration. All commands should be executed in the
“superproject”-folder of OpenModelica, which contains the OMCompiler-folder.

  Linux/Mac:
    configure --with-cppruntime --with-cppruntime-args
    make omc

  Windows:
    make -f Makefile.omdev.mingw runtimeCPPinstall

    (if the visual studio compiler should be used):
    make -f Makefile.omdev.mingw runtimeCPPmsvcinstall


==============================================
CONFIGURING THE SIMULATION RUNTIME (Linux/Mac)
==============================================
It is possible to configure the behavior of the simulation
runtime with the autoconf-script of OpenModelica. This can be done
by passing the --with-cppruntime-args=[comma separated list of arguments]
to configure. The following arguments are available at the moment:

  BOOST_STATIC_LINKING
  BOOST_REALPATHS
  RUNTIME_PROFILING
  SCOREP
  SCOREP_HOME=[path]
  FMU_KINSOL
  PARALLEL_OUTPUT
  SUNDIALS_LAPACK

For further details, see the description below.


============================================
CONFIGURING THE SIMULATION RUNTIME (Windows)
============================================
If you want to change the behaviour of cpp runtime, you can pass
arguments directly to the makefile. Multiple arguments are separated through
spaces as usual.

  BOOST_STATIC_LINKING="true"
  BOOST_REALPATHS="true"
  RUNTIME_PROFILING="true"
  SCOREP_SUPPORT="true" SCOREP_HOME=”...”
  BUILD_DOCUMENTATION="true"
  PARALLEL_OUTPUT="true"
  SUNDIALS_LAPACK="true"

For further details, see the description below.


==================================
CONFIGURATION ARGUMENT DESCRIPTION
==================================
The following section explains the arguments that can be passed in more detail.

  The boost static libraries can be used for the build, by passing the
  BOOST_STATIC_LINKING argument to make.

  Sometimes it's necessary to link boost against it's real path libraries.
  This means for example, that instead of linking against “-lboost_system”, the
  makefiles will link against “-lboost1.55_system”. Use the BOOST_REALPATHS
  argument for this purpose.

  If profiling informations for the runtime are required, they can be turned on
  with the RUNTIME_PROFILING command.

  Profiling can additionally be handled by Score-P. This gives the possibility
  to use tracing besides profiling for performance analysis. Maybe it's
  necessary to give the SCOREP_HOME directory to make as well. This is the
  directory containing “include/scorep/SCOREP_User.h”. Turn the Score-P support
  on, by passing the SCOREP argument.

  The FMU export usually creates executables that use the Newton algorithm to
  solve equation systems. The kinsol solver can be used as well, by passing the
  FMU_KINSOL argument to configure.

  Simulation results can be written asynchronously with the help of boost
  threads and a consumer producer algorithm (experimental). This feature is
  available after passing PARALLEL_OUTPUT to configure.

  The sundials solver suite has additional lapack support. It can be used by
  setting the SUNDIALS_LAPACK argument (experimental).