# (C) Copyright 2010 : Karsten Ahnert, Mario Mulansky
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

import os ;
import modules ;
import path ; 

project
    : requirements
      <define>BOOST_ALL_NO_LIB=1
      <include>../../../..
    : default-build release
    ;
    
    
lib libgsl : : <name>gsl ;
lib libgslcblas : : <name>gslcblas ;

lib libmkl : : <name>mkl_intel_lp64 <link>shared ;
lib libmkl_core : : <name>mkl_core <link>shared ;
lib libmkl_intel_thread : : <name>mkl_intel_thread ;
lib libiomp5 : : <name>iomp5 ;
lib libpthread : : <name>pthread ;

exe odeint_rk4_lorenz_array
    : odeint_rk4_lorenz_array.cpp
    ;
    
exe odeint_rk4_lorenz_range
    : odeint_rk4_lorenz_range.cpp
    ;

# exe odeint_rk4_lorenz_fusion
#     : odeint_rk4_lorenz_fusion.cpp
#     ;

exe generic_odeint_rk4_lorenz 
    : generic_odeint_rk4_lorenz.cpp
    : <toolset>intel:<cxxflags>-inline-forceinline
    ;

exe nr_rk4_lorenz
    : nr_rk4_lorenz.cpp
    ;

exe rt_generic_rk4_lorenz
    : rt_generic_rk4_lorenz.cpp
    ;
    
exe gsl_rk4_lorenz
    : gsl_rk4_lorenz.cpp libgslcblas libgsl
    ;
    
exe odeint_rk4_phase_lattice
    : odeint_rk4_phase_lattice.cpp
    ;
    
exe odeint_rk4_phase_lattice_mkl
    : odeint_rk4_phase_lattice_mkl.cpp libpthread libiomp5 libmkl_core libmkl_intel_thread libmkl
    ;
    
exe nr_rk4_phase_lattice
    : nr_rk4_phase_lattice.cpp
    ;

exe rt_generic_rk4_phase_lattice
    : rt_generic_rk4_phase_lattice.cpp
    ;


exe const_step_iterator
    : const_step_iterator.cpp
    : <cxxflags>-std=c++0x
    ;